{"version":3,"sources":["webpack://libphonenumber/webpack/universalModuleDefinition","webpack://libphonenumber/webpack/bootstrap","webpack://libphonenumber/./es6/metadata.js","webpack://libphonenumber/./es6/constants.js","webpack://libphonenumber/./es6/parse_.js","webpack://libphonenumber/./es6/parsePhoneNumber.js","webpack://libphonenumber/./es6/getNumberType_.js","webpack://libphonenumber/./es6/util.js","webpack://libphonenumber/./es6/findNumbers/util.js","webpack://libphonenumber/./es6/validate_.js","webpack://libphonenumber/./es6/PhoneNumber.js","webpack://libphonenumber/./es6/extension.js","webpack://libphonenumber/./es6/isViablePhoneNumber.js","webpack://libphonenumber/./es6/PhoneNumberMatcher.js","webpack://libphonenumber/./es6/getNumberType.js","webpack://libphonenumber/./es6/format_.js","webpack://libphonenumber/./es6/RFC3966.js","webpack://libphonenumber/./es6/isPossibleNumber_.js","webpack://libphonenumber/./es6/ParseError.js","webpack://libphonenumber/./es6/parseDigits.js","webpack://libphonenumber/./es6/parseIncompletePhoneNumber.js","webpack://libphonenumber/./es6/AsYouType.js","webpack://libphonenumber/./es6/findNumbers/utf-8.js","webpack://libphonenumber/./es6/findNumbers/isValidCandidate.js","webpack://libphonenumber/./es6/findNumbers/isValidPreCandidate.js","webpack://libphonenumber/./es6/findNumbers/parsePreCandidate.js","webpack://libphonenumber/./es6/findPhoneNumbers_.js","webpack://libphonenumber/./es6/parsePhoneNumber_.js","webpack://libphonenumber/./es6/isValidNumberForRegion_.js","webpack://libphonenumber/./es6/IDD.js","webpack://libphonenumber/./es6/getCountryCallingCode.js","webpack://libphonenumber/./es6/formatIncompletePhoneNumber.js","webpack://libphonenumber/./es6/searchNumbers.js","webpack://libphonenumber/./es6/findNumbers/Leniency.js","webpack://libphonenumber/./es6/findNumbers_.js","webpack://libphonenumber/./es6/findNumbers.js","webpack://libphonenumber/./es6/isValidNumberForRegion.js","webpack://libphonenumber/./es6/isPossibleNumber.js","webpack://libphonenumber/./es6/getExampleNumber.js","webpack://libphonenumber/./es6/parsePhoneNumberFromString_.js","webpack://libphonenumber/./es6/parsePhoneNumberFromString.js","webpack://libphonenumber/./es6/findPhoneNumbers.js","webpack://libphonenumber/./es6/validate.js","webpack://libphonenumber/./es6/format.js","webpack://libphonenumber/./es6/parse.js","webpack://libphonenumber/./node_modules/semver-compare/index.js","webpack://libphonenumber/./index.es6.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","validateMetadata","getExtPrefix","country","metadata","Metadata","hasCountry","ext","DEFAULT_EXT_PREFIX","getCountryCallingCode","countryCallingCode","Error","isSupportedCountry","undefined","countries","_semverCompare","_typeof","Symbol","_typeof2","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","V3","this","v1","version","v2","_semverCompare2","default","v3","_country","country_metadata","countryCallingCodes","_this","formats","_getFormats","getDefaultCountryMetadataForRegion","map","_","Format","_getNationalPrefixFormattingRule","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type","hasTypes","getType","Type","country_phone_code_to_countries","country_calling_codes","country_calling_code","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormatting","usesNationalPrefix","test","replace","type","possibleLengths","is_object","keys","join","type_of","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","WHITESPACE","VALID_PUNCTUATION","PLUS_CHARS","text","options","arguments","_metadata2","defaultCountry","_ParseError2","_parse_input","indexOf","_RFC","parseRFC3966","number","extract_formatted_phone_number","_isViablePhoneNumber2","with_extension_stripped","_extension","extractExtension","parse_input","formatted_phone_number","_parse_phone_number","default_country","_extractCountryCallin","extractCountryCallingCode","chooseCountryByCountryCallingCode","_getCountryCallingCode2","_parse_national_numbe","national_number","_parseIncompletePhoneNumber2","carrier_code","_strip_national_prefi","strip_national_prefix_and_carrier_code","potential_national_number","carrierCode","_getNumberType_","checkNumberLengthForType","_util","matchesEntirely","nationalNumberPattern","parse_national_number","exactCountry","find_country_code","parse_phone_number","nationalNumber","selectedCountry","_constants","phoneNumber","_PhoneNumber2","valid","extended","result","phone","possible","_isPossibleNumber_","is_possible_number","_IDD","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","RegExp","AFTER_PHONE_NUMBER_END_PATTERN","starts_at","search","slice","nationalPrefixForParsing","national_prefix_pattern","national_prefix_matcher","exec","national_significant_number","captured_groups_count","nationalPrefixTransformRule","national_phone_number","possible_countries","_iterator","_isArray","Array","isArray","_i","_ref","next","done","leadingDigits","_getNumberType_2","_find_country_code","numberWithoutIDD","stripIDDPrefix","_normalizeArguments","normalizeArguments","_parsePhoneNumber_2","_parsePhoneNumber_","_extends","assign","source","_slicedToArray","arr","_arr","_n","_d","_e","_s","push","err","sliceIterator","args","_Array$prototype$slic","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","isObject","input","is_of_type","pattern","NON_FIXED_LINE_PHONE_TYPES","type_info","possible_lengths","mobile_type","mergeArrays","actual_length","minimum_length","_metadata","regular_expression","a","b","merged","element","sort","limit","lower","upper","trimAfterFirstMatch","regexp","string","index","startsWith","substring","endsWith","PhoneNumber","isCountryCode","_metadata3","_isPossibleNumber_2","_validate_2","_format_2","start","EXTN_PATTERN","number_without_extension","matches","match","RFC3966_EXTN_PREFIX","CAPTURING_EXTN_DIGITS","create_extension_pattern","purpose","single_extension_characters","EXTN_PATTERNS_FOR_PARSING","EXTN_PATTERNS_FOR_MATCHING","VALID_PHONE_NUMBER_PATTERN","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","_utf","_isValidCandidate","INNER_MATCHES","pZ","PZ","leadLimit","punctuationLimit","digitBlockLimit","blockLimit","punctuation","digitSequence","pNd","PATTERN","LEAD_CLASS","UNWANTED_END_CHAR_PATTERN","_pN","_pL","MAX_SAFE_INTEGER","Number","Math","pow","PhoneNumberMatcher","state","searchIndex","leniency","maxTries","_Leniency2","candidate","offset","_parsePreCandidate2","_isValidPreCandidate2","parseAndVerify","extractInnerMatch","startsAt","endsAt","isFirstMatch","possibleInnerMatch","_group","_match","group","_isValidCandidate2","_parse_2","lastMatch","find","hasNext","defaultOptions","addExtension","format_national_number","formatExtension","formatRFC3966","fromCountry","IDDPrefix","getIDDPrefix","humanReadable","formattedForSameCountryCallingCode","formatIDDSameCountryCallingCodeNumber","format_national_number_using_format","choose_format_for_number","changeInternationalFormatStyle","formattedNumber","extension","FIRST_GROUP_PATTERN","useInternationalFormat","includeNationalPrefixForNationalFormat","internationalFormat","format_as","available_formats","leadingDigitsPatterns","last_leading_digits_pattern","local","trim","toCountryCallingCode","toCountryMetadata","fromCountryMetadata","split","part","_part$split","_part$split2","_ref2","_isViablePhoneNumber","is_international","ParseError","code","message","stack","create","parseDigit","character","digit","DIGITS","0","1","2","3","4","5","6","7","8","9","0","1","2","3","4","5","6","7","8","9","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","۰","۱","۲","۳","۴","۵","۶","۷","۸","۹","parsePhoneNumberCharacter","_parseDigits","strip_dangling_braces","cut_stripping_dangling_braces","close_dangling_braces","template","cut_before","retained_template","opening_braces","count_occurences","closing_braces","dangling_braces","repeat","_parse_","_format_","LONGEST_DUMMY_PHONE_NUMBER","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","ELIGIBLE_FORMAT_PATTERN","VALID_INCOMPLETE_PHONE_NUMBER","VALID_INCOMPLETE_PHONE_NUMBER_PATTERN","AsYouType","reset","extracted_number","processInput","currentOutput","parsedInput","resetCountriness","isInternational","determineTheCountry","initialize_phone_number_formats_for_this_country_calling_code","resetFormat","previous_national_prefix","extractNationalPrefix","matching_formats","format_as_non_formatted_number","match_formats_by_leading_digits","formatted_national_phone_number","formatNationalNumber","formatFullNumber","next_digits","national_number_formatted_with_previous_format","chosenFormat","formatNextNationalNumberDigits","formatted_number","attempt_to_format_complete_phone_number","chooseAnotherFormat","reformatNationalNumber","resetCountry","partially_populated_template","last_match_position","filter","leading_digits","index_of_leading_digits_pattern","had_enough_leading_digits","shouldFormat","leading_digits_patterns_count","leading_digits_pattern_index","min","leading_digits_pattern","isFormatApplicable","createFormattingTemplate","full_number","formattedNationalNumber","isPossibleNumber","_iterator2","_isArray2","_i2","nationalPrefixIsMandatoryWhenFormatting","getTemplateForNumberFormatPattern","number_pattern","dummy_phone_number_matching_format_pattern","number_format","getFormatFormat","strict_pattern","national_number_dummy_digits","digits","_iterator3","_isArray3","_i3","_ref3","pop","cleared_string","_iterator4","_isArray4","_i4","_ref4","cut_before_index","symbol","count","_iterator5","_isArray5","_i5","_ref5","times","isLatinLetter","letter","pL_regexp","pMn_regexp","latinLetterRegexp","isInvalidPunctuationSymbol","pSc_regexp","_pZ","MATCHING_BRACKETS_ENTIRE","PUB_PAGES","LEAD_CLASS_LEADING","previousChar","lastCharIndex","nextChar","BRACKET_PAIR_LIMIT","SLASH_SEPARATED_DATES","TIME_STAMPS","followingText","TIME_STAMPS_SUFFIX_LEADING","SECOND_NUMBER_START_PATTERN","PhoneNumberSearch","phones","searchPhoneNumbers","_defineProperty","WHITESPACE_IN_THE_BEGINNING_PATTERN","PUNCTUATION_IN_THE_END_PATTERN","parseCandidate","last_match","_validate_","countryMetadata","SINGLE_IDD_PREFIX","defaultIDDPrefix","IDDPrefixPattern","matchedGroups","CAPTURING_DIGIT_PATTERN","_AsYouType2","_AsYouType","_parsePhoneNumber","matcher","_PhoneNumberMatcher2","_PhoneNumberMatcher","containsMoreThanOneSlashInNationalNumber","containsOnlyValidXChars","charAtIndex","charAt","charAtNextIndex","util","isNumberMatch","MatchType","NSN_MATCH","_parseDigits2","isNationalPrefixPresentIfRequired","getCountryCodeSource","phoneNumberRegion","getRegionCodeForCountryCode","getCountryCode","getMetadataForRegion","getNationalSignificantNumber","formatRule","chooseFormattingPatternForNumber","numberFormats","getNationalPrefixFormattingRule","getNationalPrefixOptionalWhenFormatting","PhoneNumberUtil","formattingRuleHasFirstGroupOnly","rawInputCopy","normalizeDigitsOnly","getRawInput","maybeStripNationalPrefixAndCarrierCode","firstSlashInBodyIndex","secondSlashInBodyIndex","CountryCodeSource","FROM_NUMBER_WITH_PLUS_SIGN","FROM_NUMBER_WITHOUT_PLUS_SIGN","String","checkNumberGroupingIsValid","checkGroups","normalizedCandidate","normalizeDigits","formattedNumberGroups","getNationalNumberGroups","alternateFormats","MetadataManager","getAlternateFormatsForCountry","formattingPattern","nationalSignificantNumber","formatNsnUsingPattern","rfc3966Format","formatNumber","endIndex","startIndex","allNumberGroupsAreExactlyPresent","candidateGroups","NON_DIGITS_PATTERN","candidateNumberGroupIndex","hasExtension","contains","formattedNumberGroupIndex","allNumberGroupsRemainGrouped","fromIndex","FROM_DEFAULT_COUNTRY","countryCode","region","getNddPrefixForRegion","Character","isDigit","getExtension","POSSIBLE","VALID","toString","STRICT_GROUPING","candidateString","EXACT_GROUPING","results","_findNumbers_2","_findNumbers_","_isValidNumberForRegion_2","_getNumberType","examples","_PhoneNumber","error","_parsePhoneNumberFromString_2","_parsePhoneNumberFromString_","_findPhoneNumbers_2","_normalizeArguments2","_findPhoneNumbers_","arg_5","pa","pb","na","nb","isNaN","parsePhoneNumber","parameters","_metadataMin2","_parsePhoneNumber2","apply","parsePhoneNumberFromString","_parsePhoneNumberFromString2","parseNumber","_parse2","parse","_format2","getNumberType","_getNumberType2","getExampleNumber","_getExampleNumber2","_isPossibleNumber2","isValidNumber","_validate2","isValidNumberForRegion","_isValidNumberForRegion2","findPhoneNumbers","_findPhoneNumbers2","_findPhoneNumbers","findNumbers","_findNumbers2","searchNumbers","_searchNumbers2","formatIncompletePhoneNumber","_formatIncompletePhoneNumber2","_parse","_validate","_getCountryCallingCode","getPhoneCode","getPhoneCodeCustom"],"mappings":"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","file":"libphonenumber-js.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"libphonenumber\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"libphonenumber\"] = factory();\n\telse\n\t\troot[\"libphonenumber\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 45);\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport compare from 'semver-compare';\n\n// Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\nvar V2 = '1.0.18';\n\n// Added \"idd_prefix\" and \"default_idd_prefix\".\nvar V3 = '1.2.0';\n\nvar DEFAULT_EXT_PREFIX = ' ext. ';\n\nvar Metadata = function () {\n\tfunction Metadata(metadata) {\n\t\t_classCallCheck(this, Metadata);\n\n\t\tvalidateMetadata(metadata);\n\n\t\tthis.metadata = metadata;\n\n\t\tthis.v1 = !metadata.version;\n\t\tthis.v2 = metadata.version !== undefined && compare(metadata.version, V3) === -1;\n\t\tthis.v3 = metadata.version !== undefined; // && compare(metadata.version, V4) === -1\n\t}\n\n\t_createClass(Metadata, [{\n\t\tkey: 'hasCountry',\n\t\tvalue: function hasCountry(country) {\n\t\t\treturn this.metadata.countries[country] !== undefined;\n\t\t}\n\t}, {\n\t\tkey: 'country',\n\t\tvalue: function country(_country) {\n\t\t\tif (!_country) {\n\t\t\t\tthis._country = undefined;\n\t\t\t\tthis.country_metadata = undefined;\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (!this.hasCountry(_country)) {\n\t\t\t\tthrow new Error('Unknown country: ' + _country);\n\t\t\t}\n\n\t\t\tthis._country = _country;\n\t\t\tthis.country_metadata = this.metadata.countries[_country];\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: 'getDefaultCountryMetadataForRegion',\n\t\tvalue: function getDefaultCountryMetadataForRegion() {\n\t\t\treturn this.metadata.countries[this.countryCallingCodes()[this.countryCallingCode()][0]];\n\t\t}\n\t}, {\n\t\tkey: 'countryCallingCode',\n\t\tvalue: function countryCallingCode() {\n\t\t\treturn this.country_metadata[0];\n\t\t}\n\t}, {\n\t\tkey: 'IDDPrefix',\n\t\tvalue: function IDDPrefix() {\n\t\t\tif (this.v1 || this.v2) return;\n\t\t\treturn this.country_metadata[1];\n\t\t}\n\t}, {\n\t\tkey: 'defaultIDDPrefix',\n\t\tvalue: function defaultIDDPrefix() {\n\t\t\tif (this.v1 || this.v2) return;\n\t\t\treturn this.country_metadata[12];\n\t\t}\n\t}, {\n\t\tkey: 'nationalNumberPattern',\n\t\tvalue: function nationalNumberPattern() {\n\t\t\tif (this.v1 || this.v2) return this.country_metadata[1];\n\t\t\treturn this.country_metadata[2];\n\t\t}\n\t}, {\n\t\tkey: 'possibleLengths',\n\t\tvalue: function possibleLengths() {\n\t\t\tif (this.v1) return;\n\t\t\treturn this.country_metadata[this.v2 ? 2 : 3];\n\t\t}\n\t}, {\n\t\tkey: '_getFormats',\n\t\tvalue: function _getFormats(country_metadata) {\n\t\t\treturn country_metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n\t\t}\n\n\t\t// For countries of the same region (e.g. NANPA)\n\t\t// formats are all stored in the \"main\" country for that region.\n\t\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n\t}, {\n\t\tkey: 'formats',\n\t\tvalue: function formats() {\n\t\t\tvar _this = this;\n\n\t\t\tvar formats = this._getFormats(this.country_metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n\t\t\treturn formats.map(function (_) {\n\t\t\t\treturn new Format(_, _this);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'nationalPrefix',\n\t\tvalue: function nationalPrefix() {\n\t\t\treturn this.country_metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n\t\t}\n\t}, {\n\t\tkey: '_getNationalPrefixFormattingRule',\n\t\tvalue: function _getNationalPrefixFormattingRule(country_metadata) {\n\t\t\treturn country_metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n\t\t}\n\n\t\t// For countries of the same region (e.g. NANPA)\n\t\t// national prefix formatting rule is stored in the \"main\" country for that region.\n\t\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n\t}, {\n\t\tkey: 'nationalPrefixFormattingRule',\n\t\tvalue: function nationalPrefixFormattingRule() {\n\t\t\treturn this._getNationalPrefixFormattingRule(this.country_metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n\t\t}\n\t}, {\n\t\tkey: 'nationalPrefixForParsing',\n\t\tvalue: function nationalPrefixForParsing() {\n\t\t\t// If `national_prefix_for_parsing` is not set explicitly,\n\t\t\t// then infer it from `national_prefix` (if any)\n\t\t\treturn this.country_metadata[this.v1 ? 5 : this.v2 ? 6 : 7] || this.nationalPrefix();\n\t\t}\n\t}, {\n\t\tkey: 'nationalPrefixTransformRule',\n\t\tvalue: function nationalPrefixTransformRule() {\n\t\t\treturn this.country_metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n\t\t}\n\t}, {\n\t\tkey: '_getNationalPrefixIsOptionalWhenFormatting',\n\t\tvalue: function _getNationalPrefixIsOptionalWhenFormatting() {\n\t\t\treturn !!this.country_metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n\t\t}\n\n\t\t// For countries of the same region (e.g. NANPA)\n\t\t// \"national prefix is optional when parsing\" flag is\n\t\t// stored in the \"main\" country for that region.\n\t\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n\t}, {\n\t\tkey: 'nationalPrefixIsOptionalWhenFormatting',\n\t\tvalue: function nationalPrefixIsOptionalWhenFormatting() {\n\t\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.country_metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n\t\t}\n\t}, {\n\t\tkey: 'leadingDigits',\n\t\tvalue: function leadingDigits() {\n\t\t\treturn this.country_metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n\t\t}\n\t}, {\n\t\tkey: 'types',\n\t\tvalue: function types() {\n\t\t\treturn this.country_metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n\t\t}\n\t}, {\n\t\tkey: 'hasTypes',\n\t\tvalue: function hasTypes() {\n\t\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\n\t\t\t/* istanbul ignore next */\n\t\t\tif (this.types() && this.types().length === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Versions <= 1.2.4: can be `undefined`.\n\t\t\t// Version >= 1.2.5: can be `0`.\n\t\t\treturn !!this.types();\n\t\t}\n\t}, {\n\t\tkey: 'type',\n\t\tvalue: function type(_type) {\n\t\t\tif (this.hasTypes() && getType(this.types(), _type)) {\n\t\t\t\treturn new Type(getType(this.types(), _type), this);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'ext',\n\t\tvalue: function ext() {\n\t\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n\t\t\treturn this.country_metadata[13] || DEFAULT_EXT_PREFIX;\n\t\t}\n\t}, {\n\t\tkey: 'countryCallingCodes',\n\t\tvalue: function countryCallingCodes() {\n\t\t\tif (this.v1) return this.metadata.country_phone_code_to_countries;\n\t\t\treturn this.metadata.country_calling_codes;\n\t\t}\n\n\t\t// Formatting information for regions which share\n\t\t// a country calling code is contained by only one region\n\t\t// for performance reasons. For example, for NANPA region\n\t\t// (\"North American Numbering Plan Administration\",\n\t\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\n\t\t// it will be contained in the metadata for `US`.\n\t\t//\n\t\t// `country_calling_code` is always valid.\n\t\t// But the actual country may not necessarily be part of the metadata.\n\t\t//\n\n\t}, {\n\t\tkey: 'chooseCountryByCountryCallingCode',\n\t\tvalue: function chooseCountryByCountryCallingCode(country_calling_code) {\n\t\t\tvar country = this.countryCallingCodes()[country_calling_code][0];\n\n\t\t\t// Do not want to test this case.\n\t\t\t// (custom metadata, not all countries).\n\t\t\t/* istanbul ignore else */\n\t\t\tif (this.hasCountry(country)) {\n\t\t\t\tthis.country(country);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'selectedCountry',\n\t\tvalue: function selectedCountry() {\n\t\t\treturn this._country;\n\t\t}\n\t}]);\n\n\treturn Metadata;\n}();\n\nexport default Metadata;\n\nvar Format = function () {\n\tfunction Format(format, metadata) {\n\t\t_classCallCheck(this, Format);\n\n\t\tthis._format = format;\n\t\tthis.metadata = metadata;\n\t}\n\n\t_createClass(Format, [{\n\t\tkey: 'pattern',\n\t\tvalue: function pattern() {\n\t\t\treturn this._format[0];\n\t\t}\n\t}, {\n\t\tkey: 'format',\n\t\tvalue: function format() {\n\t\t\treturn this._format[1];\n\t\t}\n\t}, {\n\t\tkey: 'leadingDigitsPatterns',\n\t\tvalue: function leadingDigitsPatterns() {\n\t\t\treturn this._format[2] || [];\n\t\t}\n\t}, {\n\t\tkey: 'nationalPrefixFormattingRule',\n\t\tvalue: function nationalPrefixFormattingRule() {\n\t\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule();\n\t\t}\n\t}, {\n\t\tkey: 'nationalPrefixIsOptionalWhenFormatting',\n\t\tvalue: function nationalPrefixIsOptionalWhenFormatting() {\n\t\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormatting();\n\t\t}\n\t}, {\n\t\tkey: 'nationalPrefixIsMandatoryWhenFormatting',\n\t\tvalue: function nationalPrefixIsMandatoryWhenFormatting() {\n\t\t\t// National prefix is omitted if there's no national prefix formatting rule\n\t\t\t// set for this country, or when the national prefix formatting rule\n\t\t\t// contains no national prefix itself, or when this rule is set but\n\t\t\t// national prefix is optional for this phone number format\n\t\t\t// (and it is not enforced explicitly)\n\t\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormatting();\n\t\t}\n\n\t\t// Checks whether national prefix formatting rule contains national prefix.\n\n\t}, {\n\t\tkey: 'usesNationalPrefix',\n\t\tvalue: function usesNationalPrefix() {\n\t\t\treturn this.nationalPrefixFormattingRule() &&\n\t\t\t// Check that national prefix formatting rule is not a dummy one.\n\t\t\tthis.nationalPrefixFormattingRule() !== '$1' &&\n\t\t\t// Check that national prefix formatting rule actually has national prefix digit(s).\n\t\t\t/\\d/.test(this.nationalPrefixFormattingRule().replace('$1', ''));\n\t\t}\n\t}, {\n\t\tkey: 'internationalFormat',\n\t\tvalue: function internationalFormat() {\n\t\t\treturn this._format[5] || this.format();\n\t\t}\n\t}]);\n\n\treturn Format;\n}();\n\nvar Type = function () {\n\tfunction Type(type, metadata) {\n\t\t_classCallCheck(this, Type);\n\n\t\tthis.type = type;\n\t\tthis.metadata = metadata;\n\t}\n\n\t_createClass(Type, [{\n\t\tkey: 'pattern',\n\t\tvalue: function pattern() {\n\t\t\tif (this.metadata.v1) return this.type;\n\t\t\treturn this.type[0];\n\t\t}\n\t}, {\n\t\tkey: 'possibleLengths',\n\t\tvalue: function possibleLengths() {\n\t\t\tif (this.metadata.v1) return;\n\t\t\treturn this.type[1] || this.metadata.possibleLengths();\n\t\t}\n\t}]);\n\n\treturn Type;\n}();\n\nfunction getType(types, type) {\n\tswitch (type) {\n\t\tcase 'FIXED_LINE':\n\t\t\treturn types[0];\n\t\tcase 'MOBILE':\n\t\t\treturn types[1];\n\t\tcase 'TOLL_FREE':\n\t\t\treturn types[2];\n\t\tcase 'PREMIUM_RATE':\n\t\t\treturn types[3];\n\t\tcase 'PERSONAL_NUMBER':\n\t\t\treturn types[4];\n\t\tcase 'VOICEMAIL':\n\t\t\treturn types[5];\n\t\tcase 'UAN':\n\t\t\treturn types[6];\n\t\tcase 'PAGER':\n\t\t\treturn types[7];\n\t\tcase 'VOIP':\n\t\t\treturn types[8];\n\t\tcase 'SHARED_COST':\n\t\t\treturn types[9];\n\t}\n}\n\nexport function validateMetadata(metadata) {\n\tif (!metadata) {\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n\t}\n\n\t// `country_phone_code_to_countries` was renamed to\n\t// `country_calling_codes` in `1.0.18`.\n\tif (!is_object(metadata) || !is_object(metadata.countries) || !is_object(metadata.country_calling_codes) && !is_object(metadata.country_phone_code_to_countries)) {\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument was passed but it\\'s not a valid metadata. Must be an object having `.countries` and `.country_calling_codes` child object properties. Got ' + (is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata) + '.');\n\t}\n}\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nvar is_object = function is_object(_) {\n\treturn (typeof _ === 'undefined' ? 'undefined' : _typeof(_)) === 'object';\n};\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nvar type_of = function type_of(_) {\n\treturn typeof _ === 'undefined' ? 'undefined' : _typeof(_);\n};\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 */\nexport function getExtPrefix(country, metadata) {\n\tmetadata = new Metadata(metadata);\n\tif (metadata.hasCountry(country)) {\n\t\treturn metadata.country(country).ext();\n\t}\n\treturn DEFAULT_EXT_PREFIX;\n}\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 */\nexport function getCountryCallingCode(country, metadata) {\n\tmetadata = new Metadata(metadata);\n\tif (metadata.hasCountry(country)) {\n\t\treturn metadata.country(country).countryCallingCode();\n\t}\n\tthrow new Error('Unknown country: ' + country);\n}\n\nexport function isSupportedCountry(country, metadata) {\n\t// metadata = new Metadata(metadata)\n\t// return metadata.hasCountry(country)\n\treturn metadata.countries[country] !== undefined;\n}\n//# sourceMappingURL=metadata.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2;\n\n// The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\nexport var MAX_LENGTH_FOR_NSN = 17;\n\n// The maximum length of the country calling code.\nexport var MAX_LENGTH_COUNTRY_CODE = 3;\n\n// Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\nexport var VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9';\n\n// `DASHES` will be right after the opening square bracket of the \"character class\"\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\\\\[\\\\]';\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\nvar TILDES = '~\\u2053\\u223C\\uFF5E';\n\n// 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.\nexport var VALID_PUNCTUATION = '' + DASHES + SLASHES + DOTS + WHITESPACE + BRACKETS + TILDES;\n\nexport var PLUS_CHARS = '+\\uFF0B';\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.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\n\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN, MAX_LENGTH_COUNTRY_CODE } from './constants';\n\nimport { matchesEntirely } from './util';\nimport ParseError from './ParseError';\nimport Metadata from './metadata';\nimport isViablePhoneNumber from './isViablePhoneNumber';\nimport { extractExtension } from './extension';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\nimport getCountryCallingCode from './getCountryCallingCode';\nimport getNumberType, { checkNumberLengthForType } from './getNumberType_';\nimport { is_possible_number } from './isPossibleNumber_';\nimport { stripIDDPrefix } from './IDD';\nimport { parseRFC3966 } from './RFC3966';\nimport PhoneNumber from './PhoneNumber';\n\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;\n\n// This consists of the plus symbol, digits, and arabic-indic digits.\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']');\n\n// Regular expression of trailing characters that we want to remove.\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + ']+$');\n\n// `options`:\n// {\n// country:\n// {\n// restrict - (a two-letter country code)\n// the phone number must be in this country\n//\n// default - (a two-letter country code)\n// default country to use for phone number parsing and validation\n// (if no country code could be derived from the phone number)\n// }\n// }\n//\n// Returns `{ country, number }`\n//\n// Example use cases:\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//\nexport default function parse(text) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\tvar metadata = arguments[2];\n\n\tmetadata = new Metadata(metadata);\n\n\t// Validate `defaultCountry`.\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('INVALID_COUNTRY');\n\t\t}\n\t\tthrow new Error('Unknown country: ' + options.defaultCountry);\n\t}\n\n\t// Parse the phone number.\n\n\tvar _parse_input = parse_input(text, options.v2),\n\t formatted_phone_number = _parse_input.number,\n\t ext = _parse_input.ext;\n\n\t// If the phone number is not viable then return nothing.\n\n\n\tif (!formatted_phone_number) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('NOT_A_NUMBER');\n\t\t}\n\t\treturn {};\n\t}\n\n\tvar _parse_phone_number = parse_phone_number(formatted_phone_number, options.defaultCountry, metadata),\n\t country = _parse_phone_number.country,\n\t nationalNumber = _parse_phone_number.national_number,\n\t countryCallingCode = _parse_phone_number.countryCallingCode,\n\t carrierCode = _parse_phone_number.carrierCode;\n\n\tif (!metadata.selectedCountry()) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('INVALID_COUNTRY');\n\t\t}\n\t\treturn {};\n\t}\n\n\t// Validate national (significant) number length.\n\tif (nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n\t\t// Won't throw here because the regexp already demands length > 1.\n\t\t/* istanbul ignore if */\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('TOO_SHORT');\n\t\t}\n\t\t// Google's demo just throws an error in this case.\n\t\treturn {};\n\t}\n\n\t// Validate national (significant) number length.\n\t//\n\t// A sidenote:\n\t//\n\t// They say that sometimes national (significant) numbers\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n\t// Such numbers will just be discarded.\n\t//\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n\t\tif (options.v2) {\n\t\t\tthrow new ParseError('TOO_LONG');\n\t\t}\n\t\t// Google's demo just throws an error in this case.\n\t\treturn {};\n\t}\n\n\tif (options.v2) {\n\t\tvar phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n\t\tif (country) {\n\t\t\tphoneNumber.country = country;\n\t\t}\n\t\tif (carrierCode) {\n\t\t\tphoneNumber.carrierCode = carrierCode;\n\t\t}\n\t\tif (ext) {\n\t\t\tphoneNumber.ext = ext;\n\t\t}\n\n\t\treturn phoneNumber;\n\t}\n\n\t// Check if national phone number pattern matches the number.\n\t// National number pattern is different for each country,\n\t// even for those ones which are part of the \"NANPA\" group.\n\tvar valid = country && matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) ? true : false;\n\n\tif (!options.extended) {\n\t\treturn valid ? result(country, nationalNumber, ext) : {};\n\t}\n\n\treturn {\n\t\tcountry: country,\n\t\tcountryCallingCode: countryCallingCode,\n\t\tcarrierCode: carrierCode,\n\t\tvalid: valid,\n\t\tpossible: valid ? true : options.extended === true && metadata.possibleLengths() && is_possible_number(nationalNumber, countryCallingCode !== undefined, metadata),\n\t\tphone: nationalNumber,\n\t\text: ext\n\t};\n}\n\n/**\r\n * Extracts a parseable phone number.\r\n * @param {string} text - Input.\r\n * @return {string}.\r\n */\nexport function extract_formatted_phone_number(text, v2) {\n\tif (!text) {\n\t\treturn;\n\t}\n\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\n\t\tif (v2) {\n\t\t\tthrow new ParseError('TOO_LONG');\n\t\t}\n\t\treturn;\n\t}\n\n\t// Attempt to extract a possible number from the string passed in\n\n\tvar starts_at = text.search(PHONE_NUMBER_START_PATTERN);\n\n\tif (starts_at < 0) {\n\t\treturn;\n\t}\n\n\treturn text\n\t// Trim everything to the left of the phone number\n\t.slice(starts_at)\n\t// Remove trailing non-numerical characters\n\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n\n// Strips any national prefix (such as 0, 1) present in the number provided.\n// \"Carrier codes\" are only used in Colombia and Brazil,\n// and only when dialing within those countries from a mobile phone to a fixed line number.\nexport function strip_national_prefix_and_carrier_code(number, metadata) {\n\tif (!number || !metadata.nationalPrefixForParsing()) {\n\t\treturn { number: number };\n\t}\n\n\t// Attempt to parse the first digits as a national prefix\n\tvar national_prefix_pattern = new RegExp('^(?:' + metadata.nationalPrefixForParsing() + ')');\n\tvar national_prefix_matcher = national_prefix_pattern.exec(number);\n\n\t// If no national prefix is present in the phone number,\n\t// but the national prefix is optional for this country,\n\t// then consider this phone number valid.\n\t//\n\t// Google's reference `libphonenumber` implementation\n\t// wouldn't recognize such phone numbers as valid,\n\t// but I think it would perfectly make sense\n\t// to consider such phone numbers as valid\n\t// because if a national phone number was originally\n\t// formatted without the national prefix\n\t// then it must be parseable back into the original national number.\n\t// In other words, `parse(format(number))`\n\t// must always be equal to `number`.\n\t//\n\tif (!national_prefix_matcher) {\n\t\treturn { number: number };\n\t}\n\n\tvar national_significant_number = void 0;\n\n\t// `national_prefix_for_parsing` capturing groups\n\t// (used only for really messy cases: Argentina, Brazil, Mexico, Somalia)\n\tvar captured_groups_count = national_prefix_matcher.length - 1;\n\n\t// If the national number tranformation is needed then do it.\n\t//\n\t// `national_prefix_matcher[captured_groups_count]` means that\n\t// the corresponding captured group is not empty.\n\t// It can be empty if it's optional.\n\t// Example: \"0?(?:...)?\" for Argentina.\n\t//\n\tif (metadata.nationalPrefixTransformRule() && national_prefix_matcher[captured_groups_count]) {\n\t\tnational_significant_number = number.replace(national_prefix_pattern, metadata.nationalPrefixTransformRule());\n\t}\n\t// Else, no transformation is necessary,\n\t// and just strip the national prefix.\n\telse {\n\t\t\tnational_significant_number = number.slice(national_prefix_matcher[0].length);\n\t\t}\n\n\tvar carrierCode = void 0;\n\tif (captured_groups_count > 0) {\n\t\tcarrierCode = national_prefix_matcher[1];\n\t}\n\n\t// The following is done in `get_country_and_national_number_for_local_number()` instead.\n\t//\n\t// // Verify the parsed national (significant) number for this country\n\t// const national_number_rule = new RegExp(metadata.nationalNumberPattern())\n\t// //\n\t// // If the original number (before stripping national prefix) was viable,\n\t// // and the resultant number is not, then prefer the original phone number.\n\t// // This is because for some countries (e.g. Russia) the same digit could be both\n\t// // a national prefix and a leading digit of a valid national phone number,\n\t// // like `8` is the national prefix for Russia and both\n\t// // `8 800 555 35 35` and `800 555 35 35` are valid numbers.\n\t// if (matchesEntirely(number, national_number_rule) &&\n\t// \t\t!matchesEntirely(national_significant_number, national_number_rule))\n\t// {\n\t// \treturn number\n\t// }\n\n\t// Return the parsed national (significant) number\n\treturn {\n\t\tnumber: national_significant_number,\n\t\tcarrierCode: carrierCode\n\t};\n}\n\nexport function find_country_code(country_calling_code, national_phone_number, metadata) {\n\t// Is always non-empty, because `country_calling_code` is always valid\n\tvar possible_countries = metadata.countryCallingCodes()[country_calling_code];\n\n\t// If there's just one country corresponding to the country code,\n\t// then just return it, without further phone number digits validation.\n\tif (possible_countries.length === 1) {\n\t\treturn possible_countries[0];\n\t}\n\n\treturn _find_country_code(possible_countries, national_phone_number, metadata.metadata);\n}\n\n// Changes `metadata` `country`.\nfunction _find_country_code(possible_countries, national_phone_number, metadata) {\n\tmetadata = new Metadata(metadata);\n\n\tfor (var _iterator = possible_countries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n\t\tvar _ref;\n\n\t\tif (_isArray) {\n\t\t\tif (_i >= _iterator.length) break;\n\t\t\t_ref = _iterator[_i++];\n\t\t} else {\n\t\t\t_i = _iterator.next();\n\t\t\tif (_i.done) break;\n\t\t\t_ref = _i.value;\n\t\t}\n\n\t\tvar country = _ref;\n\n\t\tmetadata.country(country);\n\n\t\t// Leading digits check would be the simplest one\n\t\tif (metadata.leadingDigits()) {\n\t\t\tif (national_phone_number && national_phone_number.search(metadata.leadingDigits()) === 0) {\n\t\t\t\treturn country;\n\t\t\t}\n\t\t}\n\t\t// Else perform full validation with all of those\n\t\t// fixed-line/mobile/etc regular expressions.\n\t\telse if (getNumberType({ phone: national_phone_number, country: country }, undefined, metadata.metadata)) {\n\t\t\t\treturn country;\n\t\t\t}\n\t}\n}\n\n/**\r\n * @param {string} text - Input.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nfunction parse_input(text, v2) {\n\t// Parse RFC 3966 phone number URI.\n\tif (text && text.indexOf('tel:') === 0) {\n\t\treturn parseRFC3966(text);\n\t}\n\n\tvar number = extract_formatted_phone_number(text, v2);\n\n\t// If the phone number is not viable, then abort.\n\tif (!number || !isViablePhoneNumber(number)) {\n\t\treturn {};\n\t}\n\n\t// Attempt to parse extension first, since it doesn't require region-specific\n\t// data and we want to have the non-normalised number here.\n\tvar with_extension_stripped = extractExtension(number);\n\tif (with_extension_stripped.ext) {\n\t\treturn with_extension_stripped;\n\t}\n\n\treturn { number: number };\n}\n\n/**\r\n * Creates `parse()` result object.\r\n */\nfunction result(country, national_number, ext) {\n\tvar result = {\n\t\tcountry: country,\n\t\tphone: national_number\n\t};\n\n\tif (ext) {\n\t\tresult.ext = ext;\n\t}\n\n\treturn result;\n}\n\n/**\r\n * Parses a viable phone number.\r\n * Returns `{ country, countryCallingCode, national_number }`.\r\n */\nfunction parse_phone_number(formatted_phone_number, default_country, metadata) {\n\tvar _extractCountryCallin = extractCountryCallingCode(formatted_phone_number, default_country, metadata.metadata),\n\t countryCallingCode = _extractCountryCallin.countryCallingCode,\n\t number = _extractCountryCallin.number;\n\n\tif (!number) {\n\t\treturn { countryCallingCode: countryCallingCode };\n\t}\n\n\tvar country = void 0;\n\n\tif (countryCallingCode) {\n\t\tmetadata.chooseCountryByCountryCallingCode(countryCallingCode);\n\t} else if (default_country) {\n\t\tmetadata.country(default_country);\n\t\tcountry = default_country;\n\t\tcountryCallingCode = getCountryCallingCode(default_country, metadata.metadata);\n\t} else return {};\n\n\tvar _parse_national_numbe = parse_national_number(number, metadata),\n\t national_number = _parse_national_numbe.national_number,\n\t carrier_code = _parse_national_numbe.carrier_code;\n\n\t// Sometimes there are several countries\n\t// corresponding to the same country phone code\n\t// (e.g. NANPA countries all having `1` country phone code).\n\t// Therefore, to reliably determine the exact country,\n\t// national (significant) number should have been parsed first.\n\t//\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\n\t// get their countries populated with the full set of\n\t// \"phone number type\" regular expressions.\n\t//\n\n\n\tvar exactCountry = find_country_code(countryCallingCode, national_number, metadata);\n\tif (exactCountry) {\n\t\tcountry = exactCountry;\n\t\tmetadata.country(country);\n\t}\n\n\treturn {\n\t\tcountry: country,\n\t\tcountryCallingCode: countryCallingCode,\n\t\tnational_number: national_number,\n\t\tcarrierCode: carrier_code\n\t};\n}\n\nfunction parse_national_number(number, metadata) {\n\tvar national_number = parseIncompletePhoneNumber(number);\n\tvar carrier_code = void 0;\n\n\t// Parsing national prefixes and carrier codes\n\t// is only required for local phone numbers\n\t// but some people don't understand that\n\t// and sometimes write international phone numbers\n\t// with national prefixes (or maybe even carrier codes).\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n\t// Google's original library forgives such mistakes\n\t// and so does this library, because it has been requested:\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\n\n\tvar _strip_national_prefi = strip_national_prefix_and_carrier_code(national_number, metadata),\n\t potential_national_number = _strip_national_prefi.number,\n\t carrierCode = _strip_national_prefi.carrierCode;\n\n\t// If metadata has \"possible lengths\" then employ the new algorythm.\n\n\n\tif (metadata.possibleLengths()) {\n\t\t// We require that the NSN remaining after stripping the national prefix and\n\t\t// carrier code be long enough to be a possible length for the region.\n\t\t// Otherwise, we don't do the stripping, since the original number could be\n\t\t// a valid short number.\n\t\tswitch (checkNumberLengthForType(potential_national_number, undefined, metadata)) {\n\t\t\tcase 'TOO_SHORT':\n\t\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\n\t\t\tcase 'INVALID_LENGTH':\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tnational_number = potential_national_number;\n\t\t\t\tcarrier_code = carrierCode;\n\t\t}\n\t} else {\n\t\t// If the original number (before stripping national prefix) was viable,\n\t\t// and the resultant number is not, then prefer the original phone number.\n\t\t// This is because for some countries (e.g. Russia) the same digit could be both\n\t\t// a national prefix and a leading digit of a valid national phone number,\n\t\t// like `8` is the national prefix for Russia and both\n\t\t// `8 800 555 35 35` and `800 555 35 35` are valid numbers.\n\t\tif (matchesEntirely(national_number, metadata.nationalNumberPattern()) && !matchesEntirely(potential_national_number, metadata.nationalNumberPattern())) {\n\t\t\t// Keep the number without stripping national prefix.\n\t\t} else {\n\t\t\tnational_number = potential_national_number;\n\t\t\tcarrier_code = carrierCode;\n\t\t}\n\t}\n\n\treturn {\n\t\tnational_number: national_number,\n\t\tcarrier_code: carrier_code\n\t};\n}\n\n// Determines the country for a given (possibly incomplete) phone number.\n// export function get_country_from_phone_number(number, metadata)\n// {\n// \treturn parse_phone_number(number, null, metadata).country\n// }\n\n// Parses a formatted phone number\n// and returns `{ countryCallingCode, number }`\n// where `number` is just the \"number\" part\n// which is left after extracting `countryCallingCode`\n// and is not necessarily a \"national (significant) number\"\n// and might as well contain national prefix.\n//\nexport function extractCountryCallingCode(number, country, metadata) {\n\tnumber = parseIncompletePhoneNumber(number);\n\n\tif (!number) {\n\t\treturn {};\n\t}\n\n\t// If this is not an international phone number,\n\t// then don't extract country phone code.\n\tif (number[0] !== '+') {\n\t\t// Convert an \"out-of-country\" dialing phone number\n\t\t// to a proper international phone number.\n\t\tvar numberWithoutIDD = stripIDDPrefix(number, country, metadata);\n\n\t\t// If an IDD prefix was stripped then\n\t\t// convert the number to international one\n\t\t// for subsequent parsing.\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\n\t\t\tnumber = '+' + numberWithoutIDD;\n\t\t} else {\n\t\t\treturn { number: number };\n\t\t}\n\t}\n\n\t// Fast abortion: country codes do not begin with a '0'\n\tif (number[1] === '0') {\n\t\treturn {};\n\t}\n\n\tmetadata = new Metadata(metadata);\n\n\t// The thing with country phone codes\n\t// is that they are orthogonal to each other\n\t// i.e. there's no such country phone code A\n\t// for which country phone code B exists\n\t// where B starts with A.\n\t// Therefore, while scanning digits,\n\t// if a valid country code is found,\n\t// that means that it is the country code.\n\t//\n\tvar i = 2;\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n\t\tvar countryCallingCode = number.slice(1, i);\n\n\t\tif (metadata.countryCallingCodes()[countryCallingCode]) {\n\t\t\treturn {\n\t\t\t\tcountryCallingCode: countryCallingCode,\n\t\t\t\tnumber: number.slice(i)\n\t\t\t};\n\t\t}\n\n\t\ti++;\n\t}\n\n\treturn {};\n}\n//# sourceMappingURL=parse_.js.map","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport parsePhoneNumber_ from './parsePhoneNumber_';\n\nexport default function parsePhoneNumber() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t text = _normalizeArguments.text,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn parsePhoneNumber_(text, options, metadata);\n}\n\nexport function normalizeArguments(args) {\n\tvar _Array$prototype$slic = Array.prototype.slice.call(args),\n\t _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n\t arg_1 = _Array$prototype$slic2[0],\n\t arg_2 = _Array$prototype$slic2[1],\n\t arg_3 = _Array$prototype$slic2[2],\n\t arg_4 = _Array$prototype$slic2[3];\n\n\tvar text = void 0;\n\tvar options = void 0;\n\tvar metadata = void 0;\n\n\t// If the phone number is passed as a string.\n\t// `parsePhoneNumber('88005553535', ...)`.\n\tif (typeof arg_1 === 'string') {\n\t\ttext = arg_1;\n\t} else throw new TypeError('A text for parsing must be a string.');\n\n\t// If \"default country\" argument is being passed then move it to `options`.\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\tif (!arg_2 || typeof arg_2 === 'string') {\n\t\tif (arg_4) {\n\t\t\toptions = arg_3;\n\t\t\tmetadata = arg_4;\n\t\t} else {\n\t\t\toptions = undefined;\n\t\t\tmetadata = arg_3;\n\t\t}\n\n\t\tif (arg_2) {\n\t\t\toptions = _extends({ defaultCountry: arg_2 }, options);\n\t\t}\n\t}\n\t// `defaultCountry` is not passed.\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n\telse if (isObject(arg_2)) {\n\t\t\tif (arg_3) {\n\t\t\t\toptions = arg_2;\n\t\t\t\tmetadata = arg_3;\n\t\t\t} else {\n\t\t\t\tmetadata = arg_2;\n\t\t\t}\n\t\t} else throw new Error('Invalid second argument: ' + arg_2);\n\n\treturn {\n\t\ttext: text,\n\t\toptions: options,\n\t\tmetadata: metadata\n\t};\n}\n\n// Otherwise istanbul would show this as \"branch not covered\".\n/* istanbul ignore next */\nvar isObject = function isObject(_) {\n\treturn (typeof _ === 'undefined' ? 'undefined' : _typeof(_)) === 'object';\n};\n//# sourceMappingURL=parsePhoneNumber.js.map","import Metadata from './metadata';\nimport { matchesEntirely, mergeArrays } from './util';\n\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL'];\n\n// Finds out national phone number type (fixed line, mobile, etc)\nexport default function getNumberType(input) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\tvar metadata = arguments[2];\n\n\t// When `parse()` returned `{}`\n\t// meaning that the phone number is not a valid one.\n\tif (!input.country) {\n\t\treturn;\n\t}\n\n\tmetadata = new Metadata(metadata);\n\n\tif (!metadata.hasCountry(input.country)) {\n\t\tthrow new Error('Unknown country: ' + input.country);\n\t}\n\n\tvar nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\tmetadata.country(input.country);\n\n\t// The following is copy-pasted from the original function:\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n\n\t// Is this national number even valid for this country\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n\t\treturn;\n\t}\n\n\t// Is it fixed line number\n\tif (is_of_type(nationalNumber, 'FIXED_LINE', metadata)) {\n\t\t// Because duplicate regular expressions are removed\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\n\t\t//\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n\t\t\treturn 'FIXED_LINE_OR_MOBILE';\n\t\t}\n\n\t\t// v1 metadata.\n\t\t// Legacy.\n\t\t// Deprecated.\n\t\tif (!metadata.type('MOBILE')) {\n\t\t\treturn 'FIXED_LINE_OR_MOBILE';\n\t\t}\n\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\n\t\t// (no such country in the minimal metadata set)\n\t\t/* istanbul ignore if */\n\t\tif (is_of_type(nationalNumber, 'MOBILE', metadata)) {\n\t\t\treturn 'FIXED_LINE_OR_MOBILE';\n\t\t}\n\n\t\treturn 'FIXED_LINE';\n\t}\n\n\tfor (var _iterator = NON_FIXED_LINE_PHONE_TYPES, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n\t\tvar _ref;\n\n\t\tif (_isArray) {\n\t\t\tif (_i >= _iterator.length) break;\n\t\t\t_ref = _iterator[_i++];\n\t\t} else {\n\t\t\t_i = _iterator.next();\n\t\t\tif (_i.done) break;\n\t\t\t_ref = _i.value;\n\t\t}\n\n\t\tvar _type = _ref;\n\n\t\tif (is_of_type(nationalNumber, _type, metadata)) {\n\t\t\treturn _type;\n\t\t}\n\t}\n}\n\nexport function is_of_type(nationalNumber, type, metadata) {\n\ttype = metadata.type(type);\n\n\tif (!type || !type.pattern()) {\n\t\treturn false;\n\t}\n\n\t// Check if any possible number lengths are present;\n\t// if so, we use them to avoid checking\n\t// the validation pattern if they don't match.\n\t// If they are absent, this means they match\n\t// the general description, which we have\n\t// already checked before a specific number type.\n\tif (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n\t\treturn false;\n\t}\n\n\treturn matchesEntirely(nationalNumber, type.pattern());\n}\n\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n\tvar type_info = metadata.type(type);\n\n\t// There should always be \"
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 = function () {\n\n /**\r\n * Creates a new instance. See the factory methods in {@link PhoneNumberUtil} on how to obtain a\r\n * new instance.\r\n *\r\n * @param util the phone number util to use\r\n * @param text the character sequence that we will search, null for no text\r\n * @param country the country to assume for phone numbers not written in international format\r\n * (with a leading plus, or with the international dialing prefix of the specified region).\r\n * May be null or \"ZZ\" if only numbers with a leading plus should be\r\n * considered.\r\n * @param leniency the leniency to use when evaluating candidate phone numbers\r\n * @param maxTries the maximum number of invalid numbers to try before giving up on the text.\r\n * This is to cover degenerate cases where the text has a lot of false positives in it. Must\r\n * be {@code >= 0}.\r\n */\n\n /** The iteration tristate. */\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[2];\n\n _classCallCheck(this, PhoneNumberMatcher);\n\n this.state = 'NOT_READY';\n this.searchIndex = 0;\n\n options = _extends({}, options, {\n defaultCountry: options.defaultCountry && isSupportedCountry(options.defaultCountry, metadata) ? options.defaultCountry : undefined,\n leniency: options.leniency || options.extended ? 'POSSIBLE' : 'VALID',\n maxTries: options.maxTries || MAX_SAFE_INTEGER\n });\n\n if (!options.leniency) {\n throw new TypeError('`Leniency` not supplied');\n }\n\n if (options.maxTries < 0) {\n throw new TypeError('`maxTries` not supplied');\n }\n\n this.text = text;\n this.options = options;\n this.metadata = metadata;\n\n /** The degree of validation requested. */\n this.leniency = Leniency[options.leniency];\n\n if (!this.leniency) {\n throw new TypeError('Unknown leniency: ' + options.leniency + '.');\n }\n\n /** The maximum number of retries after matching an invalid number. */\n this.maxTries = options.maxTries;\n\n this.PATTERN = new RegExp(PATTERN, 'ig');\n }\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 /** The next index to start searching at. Undefined in {@link State#DONE}. */\n\n\n _createClass(PhoneNumberMatcher, [{\n key: 'find',\n value: function find() // (index)\n {\n // // Reset the regular expression.\n // this.PATTERN.lastIndex = index\n\n var matches = void 0;\n while (this.maxTries > 0 && (matches = this.PATTERN.exec(this.text)) !== null) {\n var candidate = matches[0];\n var offset = matches.index;\n\n candidate = parsePreCandidate(candidate);\n\n if (isValidPreCandidate(candidate, offset, this.text)) {\n var match =\n // Try to come up with a valid match given the entire candidate.\n this.parseAndVerify(candidate, offset, this.text)\n // 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 var phoneNumber = new PhoneNumber(match.country, match.phone, this.metadata);\n if (match.ext) {\n phoneNumber.ext = match.ext;\n }\n return {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n number: phoneNumber\n };\n }\n return match;\n }\n }\n\n this.maxTries--;\n }\n }\n\n /**\r\n * Attempts to extract a match from `candidate`\r\n * if the whole candidate does not qualify as a match.\r\n */\n\n }, {\n key: 'extractInnerMatch',\n value: function extractInnerMatch(candidate, offset, text) {\n for (var _iterator = INNER_MATCHES, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var innerMatchPattern = _ref;\n\n var isFirstMatch = true;\n var matches = void 0;\n var possibleInnerMatch = new RegExp(innerMatchPattern, 'g');\n while ((matches = possibleInnerMatch.exec(candidate)) !== null && this.maxTries > 0) {\n if (isFirstMatch) {\n // We should handle any group before this one too.\n var _group = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, candidate.slice(0, matches.index));\n\n var _match = this.parseAndVerify(_group, offset, text);\n if (_match) {\n return _match;\n }\n\n this.maxTries--;\n isFirstMatch = false;\n }\n\n var group = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, matches[1]);\n\n // Java code does `groupMatcher.start(1)` here,\n // but there's no way in javascript to get a group match start index,\n // therefore using the overall match start index `matches.index`.\n var match = this.parseAndVerify(group, offset + matches.index, text);\n if (match) {\n return match;\n }\n\n this.maxTries--;\n }\n }\n }\n\n /**\r\n * Parses a phone number from the `candidate` using `parseNumber` 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 (!isValidCandidate(candidate, offset, text, this.options.leniency)) {\n return;\n }\n\n var number = parseNumber(candidate, {\n extended: true,\n defaultCountry: this.options.defaultCountry\n }, this.metadata);\n\n if (!number.possible) {\n return;\n }\n\n if (this.leniency(number, candidate, this.metadata)) {\n // // We used parseAndKeepRawInput to create this number,\n // // but for now we don't return the extra values parsed.\n // // TODO: stop clearing all values here and switch all users over\n // // to using rawInput() rather than the rawString() of PhoneNumberMatch.\n // number.clearCountryCodeSource()\n // number.clearRawInput()\n // number.clearPreferredDomesticCarrierCode()\n\n var result = {\n startsAt: offset,\n endsAt: offset + candidate.length,\n country: number.country,\n phone: number.phone\n };\n\n if (number.ext) {\n result.ext = number.ext;\n }\n\n return result;\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 }\n\n // Don't retain that memory any longer than necessary.\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\nexport default PhoneNumberMatcher;\n//# sourceMappingURL=PhoneNumberMatcher.js.map","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport isViablePhoneNumber from './isViablePhoneNumber';\nimport _getNumberType from './getNumberType_';\nimport parse from './parse_';\n\n// Finds out national phone number type (fixed line, mobile, etc)\nexport default function getNumberType() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t input = _normalizeArguments.input,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn _getNumberType(input, options, metadata);\n}\n\n// Sort out arguments\nexport function normalizeArguments(args) {\n\tvar _Array$prototype$slic = Array.prototype.slice.call(args),\n\t _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n\t arg_1 = _Array$prototype$slic2[0],\n\t arg_2 = _Array$prototype$slic2[1],\n\t arg_3 = _Array$prototype$slic2[2],\n\t arg_4 = _Array$prototype$slic2[3];\n\n\tvar input = void 0;\n\tvar options = {};\n\tvar metadata = void 0;\n\n\t// If the phone number is passed as a string.\n\t// `getNumberType('88005553535', ...)`.\n\tif (typeof arg_1 === 'string') {\n\t\t// If \"default country\" argument is being passed\n\t\t// then convert it to an `options` object.\n\t\t// `getNumberType('88005553535', 'RU', metadata)`.\n\t\tif ((typeof arg_2 === 'undefined' ? 'undefined' : _typeof(arg_2)) !== 'object') {\n\t\t\tif (arg_4) {\n\t\t\t\toptions = arg_3;\n\t\t\t\tmetadata = arg_4;\n\t\t\t} else {\n\t\t\t\tmetadata = arg_3;\n\t\t\t}\n\n\t\t\t// `parse` extracts phone numbers from raw text,\n\t\t\t// therefore it will cut off all \"garbage\" characters,\n\t\t\t// while this `validate` function needs to verify\n\t\t\t// that the phone number contains no \"garbage\"\n\t\t\t// therefore the explicit `isViablePhoneNumber` check.\n\t\t\tif (isViablePhoneNumber(arg_1)) {\n\t\t\t\tinput = parse(arg_1, { defaultCountry: arg_2 }, metadata);\n\t\t\t} else {\n\t\t\t\tinput = {};\n\t\t\t}\n\t\t}\n\t\t// No \"resrict country\" argument is being passed.\n\t\t// International phone number is passed.\n\t\t// `getNumberType('+78005553535', metadata)`.\n\t\telse {\n\t\t\t\tif (arg_3) {\n\t\t\t\t\toptions = arg_2;\n\t\t\t\t\tmetadata = arg_3;\n\t\t\t\t} else {\n\t\t\t\t\tmetadata = arg_2;\n\t\t\t\t}\n\n\t\t\t\t// `parse` extracts phone numbers from raw text,\n\t\t\t\t// therefore it will cut off all \"garbage\" characters,\n\t\t\t\t// while this `validate` function needs to verify\n\t\t\t\t// that the phone number contains no \"garbage\"\n\t\t\t\t// therefore the explicit `isViablePhoneNumber` check.\n\t\t\t\tif (isViablePhoneNumber(arg_1)) {\n\t\t\t\t\tinput = parse(arg_1, undefined, metadata);\n\t\t\t\t} else {\n\t\t\t\t\tinput = {};\n\t\t\t\t}\n\t\t\t}\n\t}\n\t// If the phone number is passed as a parsed phone number.\n\t// `getNumberType({ phone: '88005553535', country: 'RU' }, ...)`.\n\telse if (is_object(arg_1)) {\n\t\t\tinput = arg_1;\n\n\t\t\tif (arg_3) {\n\t\t\t\toptions = arg_2;\n\t\t\t\tmetadata = arg_3;\n\t\t\t} else {\n\t\t\t\tmetadata = arg_2;\n\t\t\t}\n\t\t} else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.');\n\n\treturn {\n\t\tinput: input,\n\t\toptions: options,\n\t\tmetadata: metadata\n\t};\n}\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nvar is_object = function is_object(_) {\n\treturn (typeof _ === 'undefined' ? 'undefined' : _typeof(_)) === 'object';\n};\n//# sourceMappingURL=getNumberType.js.map","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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\nimport { VALID_PUNCTUATION } from './constants';\nimport { matchesEntirely } from './util';\nimport Metadata from './metadata';\nimport { getIDDPrefix } from './IDD';\nimport { formatRFC3966 } from './RFC3966';\n\nvar defaultOptions = {\n\tformatExtension: function formatExtension(formattedNumber, extension, metadata) {\n\t\treturn '' + formattedNumber + metadata.ext() + extension;\n\t}\n\n\t// Formats a phone number\n\t//\n\t// Example use cases:\n\t//\n\t// ```js\n\t// formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n\t// formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n\t// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n\t// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n\t// formatNumber('+78005553535', 'NATIONAL')\n\t// formatNumber('+78005553535', 'NATIONAL', metadata)\n\t// ```\n\t//\n};export default function formatNumber(input, format, options, metadata) {\n\t// Apply default options.\n\tif (options) {\n\t\toptions = _extends({}, defaultOptions, options);\n\t} else {\n\t\toptions = defaultOptions;\n\t}\n\n\tmetadata = new Metadata(metadata);\n\n\tif (input.country) {\n\t\t// Validate `input.country`.\n\t\tif (!metadata.hasCountry(input.country)) {\n\t\t\tthrow new Error('Unknown country: ' + input.country);\n\t\t}\n\t\tmetadata.country(input.country);\n\t} else if (input.countryCallingCode) {\n\t\tmetadata.chooseCountryByCountryCallingCode(input.countryCallingCode);\n\t} else return input.phone || '';\n\n\tvar countryCallingCode = metadata.countryCallingCode();\n\n\tvar nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\n\t// This variable should have been declared inside `case`s\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\n\tvar number = void 0;\n\n\tswitch (format) {\n\t\tcase 'NATIONAL':\n\t\t\t// Legacy argument support.\n\t\t\t// (`{ country: ..., phone: '' }`)\n\t\t\tif (!nationalNumber) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tnumber = format_national_number(nationalNumber, 'NATIONAL', metadata);\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension);\n\n\t\tcase 'INTERNATIONAL':\n\t\t\t// Legacy argument support.\n\t\t\t// (`{ country: ..., phone: '' }`)\n\t\t\tif (!nationalNumber) {\n\t\t\t\treturn '+' + countryCallingCode;\n\t\t\t}\n\t\t\tnumber = format_national_number(nationalNumber, 'INTERNATIONAL', metadata);\n\t\t\tnumber = '+' + countryCallingCode + ' ' + number;\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension);\n\n\t\tcase 'E.164':\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\n\t\t\treturn '+' + countryCallingCode + nationalNumber;\n\n\t\tcase 'RFC3966':\n\t\t\treturn formatRFC3966({\n\t\t\t\tnumber: '+' + countryCallingCode + nationalNumber,\n\t\t\t\text: input.ext\n\t\t\t});\n\n\t\tcase 'IDD':\n\t\t\tif (!options.fromCountry) {\n\t\t\t\treturn;\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n\t\t\t}\n\t\t\tvar IDDPrefix = getIDDPrefix(options.fromCountry, metadata.metadata);\n\t\t\tif (!IDDPrefix) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (options.humanReadable) {\n\t\t\t\tvar formattedForSameCountryCallingCode = countryCallingCode && formatIDDSameCountryCallingCodeNumber(nationalNumber, metadata.countryCallingCode(), options.fromCountry, metadata);\n\t\t\t\tif (formattedForSameCountryCallingCode) {\n\t\t\t\t\tnumber = formattedForSameCountryCallingCode;\n\t\t\t\t} else {\n\t\t\t\t\tnumber = IDDPrefix + ' ' + countryCallingCode + ' ' + format_national_number(nationalNumber, 'INTERNATIONAL', metadata);\n\t\t\t\t}\n\t\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension);\n\t\t\t}\n\t\t\treturn '' + IDDPrefix + countryCallingCode + nationalNumber;\n\n\t\tdefault:\n\t\t\tthrow new Error('Unknown \"format\" argument passed to \"formatNumber()\": \"' + format + '\"');\n\t}\n}\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.\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\n\nexport function format_national_number_using_format(number, format, useInternationalFormat, includeNationalPrefixForNationalFormat, metadata) {\n\tvar formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : format.nationalPrefixFormattingRule() && (!format.nationalPrefixIsOptionalWhenFormatting() || includeNationalPrefixForNationalFormat) ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n\tif (useInternationalFormat) {\n\t\treturn changeInternationalFormatStyle(formattedNumber);\n\t}\n\n\treturn formattedNumber;\n}\n\nfunction format_national_number(number, format_as, metadata) {\n\tvar format = choose_format_for_number(metadata.formats(), number);\n\tif (!format) {\n\t\treturn number;\n\t}\n\treturn format_national_number_using_format(number, format, format_as === 'INTERNATIONAL', true, metadata);\n}\n\nexport function choose_format_for_number(available_formats, national_number) {\n\tfor (var _iterator = available_formats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n\t\tvar _ref;\n\n\t\tif (_isArray) {\n\t\t\tif (_i >= _iterator.length) break;\n\t\t\t_ref = _iterator[_i++];\n\t\t} else {\n\t\t\t_i = _iterator.next();\n\t\t\tif (_i.done) break;\n\t\t\t_ref = _i.value;\n\t\t}\n\n\t\tvar format = _ref;\n\n\t\t// Validate leading digits\n\t\tif (format.leadingDigitsPatterns().length > 0) {\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\n\t\t\tvar last_leading_digits_pattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1];\n\n\t\t\t// If leading digits don't match then move on to the next phone number format\n\t\t\tif (national_number.search(last_leading_digits_pattern) !== 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\t// Check that the national number matches the phone number format regular expression\n\t\tif (matchesEntirely(national_number, format.pattern())) {\n\t\t\treturn format;\n\t\t}\n\t}\n}\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 ` \r\n * Warning: This level might result in lower coverage especially for regions outside of country\r\n * 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(number, candidate, metadata) {\n var candidateString = candidate.toString();\n\n if (!isValidNumber(number, undefined, metadata) || !containsOnlyValidXChars(number, candidateString, metadata) || containsMoreThanOneSlashInNationalNumber(number, candidateString) || !isNationalPrefixPresentIfRequired(number, metadata)) {\n return false;\n }\n\n return checkNumberGroupingIsValid(number, candidate, metadata, allNumberGroupsAreExactlyPresent);\n }\n};\n\nfunction containsOnlyValidXChars(number, 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 if (util.isNumberMatch(number, candidate.substring(index)) != MatchType.NSN_MATCH) {\n return false;\n }\n // This is the extension sign case, in which the 'x' or 'X' should always precede the\n // extension number.\n } else if (parseDigits(candidate.substring(index)) !== number.ext) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nfunction isNationalPrefixPresentIfRequired(number, _metadata) {\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 (number.getCountryCodeSource() != 'FROM_DEFAULT_COUNTRY') {\n return true;\n }\n\n var phoneNumberRegion = util.getRegionCodeForCountryCode(number.getCountryCode());\n\n var metadata = util.getMetadataForRegion(phoneNumberRegion);\n if (metadata == null) {\n return true;\n }\n\n // Check if a national prefix should be present when formatting this number.\n var nationalNumber = util.getNationalSignificantNumber(number);\n var formatRule = util.chooseFormattingPatternForNumber(metadata.numberFormats(), nationalNumber);\n\n // 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 if (formatRule && formatRule.getNationalPrefixFormattingRule().length > 0) {\n if (formatRule.getNationalPrefixOptionalWhenFormatting()) {\n // The national-prefix is optional in these cases, so we don't need to check if it was\n // present.\n return true;\n }\n\n if (PhoneNumberUtil.formattingRuleHasFirstGroupOnly(formatRule.getNationalPrefixFormattingRule())) {\n // National Prefix not needed for this number.\n return true;\n }\n\n // Normalize the remainder.\n var rawInputCopy = PhoneNumberUtil.normalizeDigitsOnly(number.getRawInput());\n\n // Check if we found a national prefix and/or carrier code at the start of the raw input, and\n // return the result.\n return util.maybeStripNationalPrefixAndCarrierCode(rawInputCopy, metadata, null);\n }\n\n return true;\n}\n\nexport function containsMoreThanOneSlashInNationalNumber(number, candidate) {\n var firstSlashInBodyIndex = candidate.indexOf('/');\n if (firstSlashInBodyIndex < 0) {\n // No slashes, this is okay.\n return false;\n }\n\n // Now look for a second one.\n var secondSlashInBodyIndex = candidate.indexOf('/', firstSlashInBodyIndex + 1);\n if (secondSlashInBodyIndex < 0) {\n // Only one slash, this is okay.\n return false;\n }\n\n // If the first slash is after the country calling code, this is permitted.\n var candidateHasCountryCode = number.getCountryCodeSource() === CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN || number.getCountryCodeSource() === CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN;\n\n if (candidateHasCountryCode && PhoneNumberUtil.normalizeDigitsOnly(candidate.substring(0, firstSlashInBodyIndex)) === String(number.getCountryCode())) {\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) {\n // TODO: Evaluate how this works for other locales (testing has been limited to NANPA regions)\n // and optimise if necessary.\n var normalizedCandidate = normalizeDigits(candidate, true /* keep non-digits */);\n var formattedNumberGroups = getNationalNumberGroups(metadata, number, null);\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n }\n\n // If this didn't pass, see if there are any alternate formats, and try them instead.\n var alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode());\n\n if (alternateFormats) {\n for (var _iterator = alternateFormats.numberFormats(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var alternateFormat = _ref;\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\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.\r\n */\nfunction getNationalNumberGroups(metadata, number, formattingPattern) {\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 }\n\n // This will be in the format +CC-DG;ext=EXT where DG represents groups of digits.\n var rfc3966Format = formatNumber(number, 'RFC3966', metadata);\n\n // We remove the extension part from the formatted string before splitting it into different\n // groups.\n var endIndex = rfc3966Format.indexOf(';');\n if (endIndex < 0) {\n endIndex = rfc3966Format.length;\n }\n\n // The country-code will have a '-' following it.\n var startIndex = rfc3966Format.indexOf('-') + 1;\n return rfc3966Format.slice(startIndex, endIndex).split('-');\n}\n\nfunction allNumberGroupsAreExactlyPresent(metadata, number, normalizedCandidate, formattedNumberGroups) {\n var candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN);\n\n // Set this to the last group, skipping it if the number has an extension.\n var candidateNumberGroupIndex = number.hasExtension() ? candidateGroups.length - 2 : candidateGroups.length - 1;\n\n // 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 if (candidateGroups.length == 1 || candidateGroups[candidateNumberGroupIndex].contains(util.getNationalSignificantNumber(number))) {\n return true;\n }\n\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 var formattedNumberGroupIndex = formattedNumberGroups.length - 1;\n while (formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0) {\n if (candidateGroups[candidateNumberGroupIndex] !== formattedNumberGroups[formattedNumberGroupIndex]) {\n return false;\n }\n formattedNumberGroupIndex--;\n candidateNumberGroupIndex--;\n }\n\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 return candidateNumberGroupIndex >= 0 && endsWith(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]);\n}\n\nfunction allNumberGroupsRemainGrouped(metadata, number, normalizedCandidate, formattedNumberGroups) {\n var fromIndex = 0;\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 }\n\n // Check each group of consecutive digits are not broken into separate groupings in the\n // {@code normalizedCandidate} string.\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 if (fromIndex < 0) {\n return false;\n }\n // Moves {@code fromIndex} forward.\n fromIndex += formattedNumberGroups[i].length();\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 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 startsWith(normalizedCandidate.slice(fromIndex - formattedNumberGroups[i].length), nationalSignificantNumber);\n }\n }\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 return normalizedCandidate.slice(fromIndex).contains(number.getExtension());\n}\n//# sourceMappingURL=Leniency.js.map","import PhoneNumberMatcher from './PhoneNumberMatcher';\n\nexport default function findNumbers(text, options, metadata) {\n\tvar matcher = new PhoneNumberMatcher(text, options, metadata);\n\tvar results = [];\n\twhile (matcher.hasNext()) {\n\t\tresults.push(matcher.next());\n\t}\n\treturn results;\n}\n//# sourceMappingURL=findNumbers_.js.map","import _findNumbers from './findNumbers_';\nimport { normalizeArguments } from './parsePhoneNumber';\n\nexport default function findNumbers() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t text = _normalizeArguments.text,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn _findNumbers(text, options, metadata);\n}\n//# sourceMappingURL=findNumbers.js.map","import isViablePhoneNumber from './isViablePhoneNumber';\nimport parseNumber from './parse_';\nimport _isValidNumberForRegion from './isValidNumberForRegion_';\n\nexport default function isValidNumberForRegion(number, country, metadata) {\n\tif (typeof number !== 'string') {\n\t\tthrow new TypeError('number must be a string');\n\t}\n\n\tif (typeof country !== 'string') {\n\t\tthrow new TypeError('country must be a string');\n\t}\n\n\t// `parse` extracts phone numbers from raw text,\n\t// therefore it will cut off all \"garbage\" characters,\n\t// while this `validate` function needs to verify\n\t// that the phone number contains no \"garbage\"\n\t// therefore the explicit `isViablePhoneNumber` check.\n\tvar input = void 0;\n\tif (isViablePhoneNumber(number)) {\n\t\tinput = parseNumber(number, { defaultCountry: country }, metadata);\n\t} else {\n\t\tinput = {};\n\t}\n\n\treturn _isValidNumberForRegion(input, country, undefined, metadata);\n}\n//# sourceMappingURL=isValidNumberForRegion.js.map","import { normalizeArguments } from './getNumberType';\nimport _isPossibleNumber from './isPossibleNumber_';\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 */\nexport default function isPossibleNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n input = _normalizeArguments.input,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return _isPossibleNumber(input, options, metadata);\n}\n//# sourceMappingURL=isPossibleNumber.js.map","import PhoneNumber from './PhoneNumber';\n\nexport default function getExampleNumber(country, examples, metadata) {\n\tif (examples[country]) {\n\t\treturn new PhoneNumber(country, examples[country], metadata);\n\t}\n}\n//# sourceMappingURL=getExampleNumber.js.map","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport parsePhoneNumber from './parsePhoneNumber_';\nimport ParseError from './ParseError';\nimport { isSupportedCountry } from './metadata';\n\nexport default function parsePhoneNumberFromString(text, options, metadata) {\n\t// Validate `defaultCountry`.\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n\t\toptions = _extends({}, options, {\n\t\t\tdefaultCountry: undefined\n\t\t});\n\t}\n\t// Parse phone number.\n\ttry {\n\t\treturn parsePhoneNumber(text, options, metadata);\n\t} catch (error) {\n\t\t/* istanbul ignore else */\n\t\tif (error instanceof ParseError) {\n\t\t\t//\n\t\t} else {\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n//# sourceMappingURL=parsePhoneNumberFromString_.js.map","import { normalizeArguments } from './parsePhoneNumber';\nimport parsePhoneNumberFromString_ from './parsePhoneNumberFromString_';\n\nexport default function parsePhoneNumberFromString() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t text = _normalizeArguments.text,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn parsePhoneNumberFromString_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberFromString.js.map","// This is a legacy function.\n// Use `findNumbers()` instead.\n\nimport _findPhoneNumbers, { searchPhoneNumbers as _searchPhoneNumbers } from './findPhoneNumbers_';\nimport { normalizeArguments } from './parsePhoneNumber';\n\nexport default function findPhoneNumbers() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t text = _normalizeArguments.text,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn _findPhoneNumbers(text, options, metadata);\n}\n\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\nexport function searchPhoneNumbers() {\n\tvar _normalizeArguments2 = normalizeArguments(arguments),\n\t text = _normalizeArguments2.text,\n\t options = _normalizeArguments2.options,\n\t metadata = _normalizeArguments2.metadata;\n\n\treturn _searchPhoneNumbers(text, options, metadata);\n}\n//# sourceMappingURL=findPhoneNumbers.js.map","import _isValidNumber from './validate_';\nimport { normalizeArguments } from './getNumberType';\n\n// Finds out national phone number type (fixed line, mobile, etc)\nexport default function isValidNumber() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t input = _normalizeArguments.input,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn _isValidNumber(input, options, metadata);\n}\n//# sourceMappingURL=validate.js.map","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nimport _formatNumber from './format_';\nimport parse from './parse_';\n\nexport default function formatNumber() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t input = _normalizeArguments.input,\n\t format = _normalizeArguments.format,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn _formatNumber(input, format, options, metadata);\n}\n\n// Sort out arguments\nfunction normalizeArguments(args) {\n\tvar _Array$prototype$slic = Array.prototype.slice.call(args),\n\t _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 5),\n\t arg_1 = _Array$prototype$slic2[0],\n\t arg_2 = _Array$prototype$slic2[1],\n\t arg_3 = _Array$prototype$slic2[2],\n\t arg_4 = _Array$prototype$slic2[3],\n\t arg_5 = _Array$prototype$slic2[4];\n\n\tvar input = void 0;\n\tvar format = void 0;\n\tvar options = void 0;\n\tvar metadata = void 0;\n\n\t// Sort out arguments.\n\n\t// If the phone number is passed as a string.\n\t// `format('8005553535', ...)`.\n\tif (typeof arg_1 === 'string') {\n\t\t// If country code is supplied.\n\t\t// `format('8005553535', 'RU', 'NATIONAL', [options], metadata)`.\n\t\tif (typeof arg_3 === 'string') {\n\t\t\tformat = arg_3;\n\n\t\t\tif (arg_5) {\n\t\t\t\toptions = arg_4;\n\t\t\t\tmetadata = arg_5;\n\t\t\t} else {\n\t\t\t\tmetadata = arg_4;\n\t\t\t}\n\n\t\t\tinput = parse(arg_1, { defaultCountry: arg_2, extended: true }, metadata);\n\t\t}\n\t\t// Just an international phone number is supplied\n\t\t// `format('+78005553535', 'NATIONAL', [options], metadata)`.\n\t\telse {\n\t\t\t\tif (typeof arg_2 !== 'string') {\n\t\t\t\t\tthrow new Error('`format` argument not passed to `formatNumber(number, format)`');\n\t\t\t\t}\n\n\t\t\t\tformat = arg_2;\n\n\t\t\t\tif (arg_4) {\n\t\t\t\t\toptions = arg_3;\n\t\t\t\t\tmetadata = arg_4;\n\t\t\t\t} else {\n\t\t\t\t\tmetadata = arg_3;\n\t\t\t\t}\n\n\t\t\t\tinput = parse(arg_1, { extended: true }, metadata);\n\t\t\t}\n\t}\n\t// If the phone number is passed as a parsed number object.\n\t// `format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', [options], metadata)`.\n\telse if (is_object(arg_1)) {\n\t\t\tinput = arg_1;\n\t\t\tformat = arg_2;\n\n\t\t\tif (arg_4) {\n\t\t\t\toptions = arg_3;\n\t\t\t\tmetadata = arg_4;\n\t\t\t} else {\n\t\t\t\tmetadata = arg_3;\n\t\t\t}\n\t\t} else throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.');\n\n\t// Legacy lowercase formats.\n\tif (format === 'International') {\n\t\tformat = 'INTERNATIONAL';\n\t} else if (format === 'National') {\n\t\tformat = 'NATIONAL';\n\t}\n\n\treturn {\n\t\tinput: input,\n\t\tformat: format,\n\t\toptions: options,\n\t\tmetadata: metadata\n\t};\n}\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nvar is_object = function is_object(_) {\n\treturn (typeof _ === 'undefined' ? 'undefined' : _typeof(_)) === 'object';\n};\n//# sourceMappingURL=format.js.map","import _parseNumber from './parse_';\nimport { normalizeArguments } from './parsePhoneNumber';\n\n// `options`:\n// {\n// country:\n// {\n// restrict - (a two-letter country code)\n// the phone number must be in this country\n//\n// default - (a two-letter country code)\n// default country to use for phone number parsing and validation\n// (if no country code could be derived from the phone number)\n// }\n// }\n//\n// Returns `{ country, number }`\n//\n// Example use cases:\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//\nexport default function parseNumber() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t text = _normalizeArguments.text,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\treturn _parseNumber(text, options, metadata);\n}\n//# sourceMappingURL=parse.js.map","module.exports = function cmp (a, b) {\n var pa = a.split('.');\n var pb = b.split('.');\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 return 0;\n};\n","// Deprecated.\r\n// Use `libphonenumber-js/min` or `libphonenumber-js/max` or `libphonenumber-js/core` instead.\r\n\r\nimport metadata from './metadata.min.json'\r\n\r\nimport parsePhoneNumberCustom from './es6/parsePhoneNumber'\r\nimport parsePhoneNumberFromStringCustom from './es6/parsePhoneNumberFromString'\r\n\r\nimport parseNumberCustom from './es6/parse'\r\nimport formatNumberCustom from './es6/format'\r\nimport getNumberTypeCustom from './es6/getNumberType'\r\nimport getExampleNumberCustom from './es6/getExampleNumber'\r\nimport isPossibleNumberCustom from './es6/isPossibleNumber'\r\nimport isValidNumberCustom from './es6/validate'\r\nimport isValidNumberForRegionCustom from './es6/isValidNumberForRegion'\r\n\r\n// Deprecated\r\nimport findPhoneNumbersCustom, { searchPhoneNumbers as searchPhoneNumbersCustom } from './es6/findPhoneNumbers'\r\nimport { PhoneNumberSearch as PhoneNumberSearchCustom } from './es6/findPhoneNumbers_'\r\n\r\nimport findNumbersCustom from './es6/findNumbers'\r\nimport searchNumbersCustom from './es6/searchNumbers'\r\nimport PhoneNumberMatcherCustom from './es6/PhoneNumberMatcher'\r\n\r\nimport AsYouTypeCustom from './es6/AsYouType'\r\n\r\nimport getCountryCallingCodeCustom from './es6/getCountryCallingCode'\r\nexport { default as Metadata } from './es6/metadata'\r\nimport { getExtPrefix as getExtPrefixCustom, isSupportedCountry as isSupportedCountryCustom } from './es6/metadata'\r\nimport { parseRFC3966 as parseRFC3966Custom, formatRFC3966 as formatRFC3966Custom } from './es6/RFC3966'\r\nimport formatIncompletePhoneNumberCustom from './es6/formatIncompletePhoneNumber'\r\nexport { default as parseIncompletePhoneNumber, parsePhoneNumberCharacter } from './es6/parseIncompletePhoneNumber'\r\n// Deprecated: remove DIGITS export in 2.0.0.\r\n// (it was used in `react-phone-number-input`)\r\nexport { DIGITS, default as parseDigits } from './es6/parseDigits'\r\nexport { default as ParseError } from './es6/ParseError'\r\n\r\nexport function parsePhoneNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn parsePhoneNumberCustom.apply(this, parameters)\r\n}\r\n\r\nexport function parsePhoneNumberFromString()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn parsePhoneNumberFromStringCustom.apply(this, parameters)\r\n}\r\n\r\nexport function parseNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn parseNumberCustom.apply(this, parameters)\r\n}\r\n\r\n// Deprecated: remove `parse()` export in 2.0.0.\r\n// (renamed to `parseNumber()`)\r\nexport function parse()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn parseNumberCustom.apply(this, parameters)\r\n}\r\n\r\nexport function formatNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn formatNumberCustom.apply(this, parameters)\r\n}\r\n\r\n// Deprecated: remove `format()` export in 2.0.0.\r\n// (renamed to `formatNumber()`)\r\nexport function format()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn formatNumberCustom.apply(this, parameters)\r\n}\r\n\r\nexport function getNumberType()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn getNumberTypeCustom.apply(this, parameters)\r\n}\r\n\r\nexport function getExampleNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn getExampleNumberCustom.apply(this, parameters)\r\n}\r\n\r\nexport function isPossibleNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn isPossibleNumberCustom.apply(this, parameters)\r\n}\r\n\r\nexport function isValidNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn isValidNumberCustom.apply(this, parameters)\r\n}\r\n\r\nexport function isValidNumberForRegion()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn isValidNumberForRegionCustom.apply(this, parameters)\r\n}\r\n\r\n// Deprecated.\r\nexport function findPhoneNumbers()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn findPhoneNumbersCustom.apply(this, parameters)\r\n}\r\n\r\n// Deprecated.\r\nexport function searchPhoneNumbers()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn searchPhoneNumbersCustom.apply(this, parameters)\r\n}\r\n\r\n// Deprecated.\r\nexport function PhoneNumberSearch(text, options)\r\n{\r\n\tPhoneNumberSearchCustom.call(this, text, options, metadata)\r\n}\r\n\r\n// Deprecated.\r\nPhoneNumberSearch.prototype = Object.create(PhoneNumberSearchCustom.prototype, {})\r\nPhoneNumberSearch.prototype.constructor = PhoneNumberSearch\r\n\r\nexport function findNumbers()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn findNumbersCustom.apply(this, parameters)\r\n}\r\n\r\nexport function searchNumbers()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn searchNumbersCustom.apply(this, parameters)\r\n}\r\n\r\nexport function PhoneNumberMatcher(text, options)\r\n{\r\n\tPhoneNumberMatcherCustom.call(this, text, options, metadata)\r\n}\r\n\r\nPhoneNumberMatcher.prototype = Object.create(PhoneNumberMatcherCustom.prototype, {})\r\nPhoneNumberMatcher.prototype.constructor = PhoneNumberMatcher\r\n\r\nexport function AsYouType(country)\r\n{\r\n\tAsYouTypeCustom.call(this, country, metadata)\r\n}\r\n\r\nAsYouType.prototype = Object.create(AsYouTypeCustom.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType\r\n\r\nexport function isSupportedCountry()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn isSupportedCountryCustom.apply(this, parameters)\r\n}\r\n\r\nexport function getExtPrefix()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn getExtPrefixCustom.apply(this, parameters)\r\n}\r\n\r\nexport function parseRFC3966()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn parseRFC3966Custom.apply(this, parameters)\r\n}\r\n\r\nexport function formatRFC3966()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn formatRFC3966Custom.apply(this, parameters)\r\n}\r\n\r\nexport function formatIncompletePhoneNumber()\r\n{\r\n\tvar parameters = Array.prototype.slice.call(arguments)\r\n\tparameters.push(metadata)\r\n\treturn formatIncompletePhoneNumberCustom.apply(this, parameters)\r\n}\r\n\r\n// Deprecated: remove this in 2.0.0 and make `custom.js` in ES6\r\n// (the old `custom.js` becomes `custom.commonjs.js`).\r\nexport { default as parseCustom } from './es6/parse'\r\nexport { default as formatCustom } from './es6/format'\r\nexport { default as isValidNumberCustom } from './es6/validate'\r\nexport { default as findPhoneNumbersCustom } from './es6/findPhoneNumbers'\r\nexport { searchPhoneNumbers as searchPhoneNumbersCustom } from './es6/findPhoneNumbers'\r\nexport { PhoneNumberSearch as PhoneNumberSearchCustom } from './es6/findPhoneNumbers_'\r\nexport { default as getNumberTypeCustom } from './es6/getNumberType'\r\nexport { default as getCountryCallingCodeCustom } from './es6/getCountryCallingCode'\r\n\r\nexport\r\n{\r\n\tdefault as AsYouTypeCustom,\r\n\t// Deprecated: `DIGIT_PLACEHOLDER` was used by `react-phone-number-input`.\r\n\t// Seems to be not used anymore.\r\n\tDIGIT_PLACEHOLDER\r\n}\r\nfrom './es6/AsYouType'\r\n\r\nexport function getCountryCallingCode(country)\r\n{\r\n\treturn getCountryCallingCodeCustom(country, metadata)\r\n}\r\n\r\n// `getPhoneCode` name is deprecated, use `getCountryCallingCode` instead.\r\nexport function getPhoneCode(country)\r\n{\r\n\treturn getCountryCallingCode(country)\r\n}\r\n\r\n// `getPhoneCodeCustom` name is deprecated, use `getCountryCallingCodeCustom` instead.\r\nexport function getPhoneCodeCustom(country, metadata)\r\n{\r\n\treturn getCountryCallingCodeCustom(country, metadata)\r\n}"],"sourceRoot":""}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 */\nvar PUB_PAGES = /\\d{1,5}-+\\d{1,5}\\s{0,4}\\(\\d{1,4}/;\n\nexport default function isValidCandidate(candidate, offset, text, leniency) {\n\t// Check the candidate doesn't contain any formatting\n\t// which would indicate that it really isn't a phone number.\n\tif (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {\n\t\treturn;\n\t}\n\n\t// If leniency is set to VALID or stricter, we also want to skip numbers that are surrounded\n\t// by Latin alphabetic characters, to skip cases like abc8005001234 or 8005001234def.\n\tif (leniency !== 'POSSIBLE') {\n\t\t// If the candidate is not at the start of the text,\n\t\t// and does not start with phone-number punctuation,\n\t\t// check the previous character.\n\t\tif (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) {\n\t\t\tvar previousChar = text[offset - 1];\n\t\t\t// We return null if it is a latin letter or an invalid punctuation symbol.\n\t\t\tif (isInvalidPunctuationSymbol(previousChar) || isLatinLetter(previousChar)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar lastCharIndex = offset + candidate.length;\n\t\tif (lastCharIndex < text.length) {\n\t\t\tvar nextChar = text[lastCharIndex];\n\t\t\tif (isInvalidPunctuationSymbol(nextChar) || isLatinLetter(nextChar)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}\n//# sourceMappingURL=isValidCandidate.js.map","// 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}/;\n\n// 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.\nvar TIME_STAMPS = /[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d +[0-2]\\d$/;\nvar TIME_STAMPS_SUFFIX_LEADING = /^:[0-5]\\d/;\n\nexport default function isValidPreCandidate(candidate, offset, text) {\n\t// Skip a match that is more likely to be a date.\n\tif (SLASH_SEPARATED_DATES.test(candidate)) {\n\t\treturn false;\n\t}\n\n\t// Skip potential time-stamps.\n\tif (TIME_STAMPS.test(candidate)) {\n\t\tvar followingText = text.slice(offset + candidate.length);\n\t\tif (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n//# sourceMappingURL=isValidPreCandidate.js.map","import { trimAfterFirstMatch } from './util';\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\nexport default function parsePreCandidate(candidate) {\n\t// Check for extra numbers at the end.\n\t// TODO: This is the place to start when trying to support extraction of multiple phone number\n\t// from split notations (+41 79 123 45 67 / 68).\n\treturn trimAfterFirstMatch(SECOND_NUMBER_START_PATTERN, candidate);\n}\n//# sourceMappingURL=parsePreCandidate.js.map","var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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 legacy function.\n// Use `findNumbers()` instead.\n\nimport { PLUS_CHARS, VALID_PUNCTUATION, VALID_DIGITS, WHITESPACE } from './constants';\n\nimport { EXTN_PATTERNS_FOR_PARSING } from './extension';\n\nimport parse from './parse_';\n\nimport parsePreCandidate from './findNumbers/parsePreCandidate';\nimport isValidPreCandidate from './findNumbers/isValidPreCandidate';\nimport isValidCandidate from './findNumbers/isValidCandidate';\n\n// Copy-pasted from `./parse.js`.\nvar VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*';\n\nvar WHITESPACE_IN_THE_BEGINNING_PATTERN = new RegExp('^[' + WHITESPACE + ']+');\nvar PUNCTUATION_IN_THE_END_PATTERN = new RegExp('[' + VALID_PUNCTUATION + ']+$');\n\n// // 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\nexport default function findPhoneNumbers(text, options, metadata) {\n\t/* istanbul ignore if */\n\tif (options === undefined) {\n\t\toptions = {};\n\t}\n\n\tvar search = new PhoneNumberSearch(text, options, metadata);\n\tvar phones = [];\n\twhile (search.hasNext()) {\n\t\tphones.push(search.next());\n\t}\n\treturn phones;\n}\n\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\nexport function searchPhoneNumbers(text, options, metadata) {\n\t/* istanbul ignore if */\n\tif (options === undefined) {\n\t\toptions = {};\n\t}\n\n\tvar search = new PhoneNumberSearch(text, options, metadata);\n\n\treturn _defineProperty({}, Symbol.iterator, function () {\n\t\treturn {\n\t\t\tnext: function next() {\n\t\t\t\tif (search.hasNext()) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: search.next()\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: true\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t});\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 */\nexport var PhoneNumberSearch = function () {\n\tfunction PhoneNumberSearch(text) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\tvar metadata = arguments[2];\n\n\t\t_classCallCheck(this, PhoneNumberSearch);\n\n\t\tthis.state = 'NOT_READY';\n\n\t\tthis.text = text;\n\t\tthis.options = options;\n\t\tthis.metadata = metadata;\n\n\t\tthis.regexp = new RegExp(VALID_PHONE_NUMBER +\n\t\t// Phone number extensions\n\t\t'(?:' + EXTN_PATTERNS_FOR_PARSING + ')?', 'ig');\n\n\t\t// this.searching_from = 0\n\t}\n\t// Iteration tristate.\n\n\n\t_createClass(PhoneNumberSearch, [{\n\t\tkey: 'find',\n\t\tvalue: function find() {\n\t\t\tvar matches = this.regexp.exec(this.text);\n\n\t\t\tif (!matches) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar number = matches[0];\n\t\t\tvar startsAt = matches.index;\n\n\t\t\tnumber = number.replace(WHITESPACE_IN_THE_BEGINNING_PATTERN, '');\n\t\t\tstartsAt += matches[0].length - number.length;\n\t\t\t// Fixes not parsing numbers with whitespace in the end.\n\t\t\t// Also fixes not parsing numbers with opening parentheses in the end.\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/252\n\t\t\tnumber = number.replace(PUNCTUATION_IN_THE_END_PATTERN, '');\n\n\t\t\tnumber = parsePreCandidate(number);\n\n\t\t\tvar result = this.parseCandidate(number, startsAt);\n\n\t\t\tif (result) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\t// Tail recursion.\n\t\t\t// Try the next one if this one is not a valid phone number.\n\t\t\treturn this.find();\n\t\t}\n\t}, {\n\t\tkey: 'parseCandidate',\n\t\tvalue: function parseCandidate(number, startsAt) {\n\t\t\tif (!isValidPreCandidate(number, startsAt, this.text)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Don't parse phone numbers which are non-phone numbers\n\t\t\t// due to being part of something else (e.g. a UUID).\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/213\n\t\t\t// Copy-pasted from Google's `PhoneNumberMatcher.js` (`.parseAndValidate()`).\n\t\t\tif (!isValidCandidate(number, startsAt, this.text, this.options.extended ? 'POSSIBLE' : 'VALID')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// // Prepend any opening brackets left behind by the\n\t\t\t// // `PHONE_NUMBER_START_PATTERN` regexp.\n\t\t\t// const text_before_number = text.slice(this.searching_from, startsAt)\n\t\t\t// const full_number_starts_at = text_before_number.search(BEFORE_NUMBER_DIGITS_PUNCTUATION)\n\t\t\t// if (full_number_starts_at >= 0)\n\t\t\t// {\n\t\t\t// \tnumber = text_before_number.slice(full_number_starts_at) + number\n\t\t\t// \tstartsAt = full_number_starts_at\n\t\t\t// }\n\t\t\t//\n\t\t\t// this.searching_from = matches.lastIndex\n\n\t\t\tvar result = parse(number, this.options, this.metadata);\n\n\t\t\tif (!result.phone) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult.startsAt = startsAt;\n\t\t\tresult.endsAt = startsAt + number.length;\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: 'hasNext',\n\t\tvalue: function hasNext() {\n\t\t\tif (this.state === 'NOT_READY') {\n\t\t\t\tthis.last_match = this.find();\n\n\t\t\t\tif (this.last_match) {\n\t\t\t\t\tthis.state = 'READY';\n\t\t\t\t} else {\n\t\t\t\t\tthis.state = 'DONE';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.state === 'READY';\n\t\t}\n\t}, {\n\t\tkey: 'next',\n\t\tvalue: function next() {\n\t\t\t// Check the state and find the next match as a side-effect if necessary.\n\t\t\tif (!this.hasNext()) {\n\t\t\t\tthrow new Error('No next element');\n\t\t\t}\n\n\t\t\t// Don't retain that memory any longer than necessary.\n\t\t\tvar result = this.last_match;\n\t\t\tthis.last_match = null;\n\t\t\tthis.state = 'NOT_READY';\n\t\t\treturn result;\n\t\t}\n\t}]);\n\n\treturn PhoneNumberSearch;\n}();\n//# sourceMappingURL=findPhoneNumbers_.js.map","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport parseNumber from './parse_';\n\nexport default function parsePhoneNumber(text, options, metadata) {\n\treturn parseNumber(text, _extends({}, options, { v2: true }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","import isValidNumber from './validate_';\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 */\nexport default function isValidNumberForRegion(input, country) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var metadata = arguments[3];\n\n return input.country === country && isValidNumber(input, options, metadata);\n}\n//# sourceMappingURL=isValidNumberForRegion_.js.map","import Metadata from './metadata';\nimport { VALID_DIGITS } from './constants';\n\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\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 = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/;\n\n// For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\nexport function getIDDPrefix(country, metadata) {\n\tvar countryMetadata = new Metadata(metadata);\n\tcountryMetadata.country(country);\n\n\tif (SINGLE_IDD_PREFIX.test(countryMetadata.IDDPrefix())) {\n\t\treturn countryMetadata.IDDPrefix();\n\t}\n\n\treturn countryMetadata.defaultIDDPrefix();\n}\n\nexport function stripIDDPrefix(number, country, metadata) {\n\tif (!country) {\n\t\treturn;\n\t}\n\n\t// Check if the number is IDD-prefixed.\n\n\tvar countryMetadata = new Metadata(metadata);\n\tcountryMetadata.country(country);\n\n\tvar IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n\tif (number.search(IDDPrefixPattern) !== 0) {\n\t\treturn;\n\t}\n\n\t// Strip IDD prefix.\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length);\n\n\t// Some kind of a weird edge case.\n\t// No explanation from Google given.\n\tvar matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\t/* istanbul ignore next */\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n\t\tif (matchedGroups[1] === '0') {\n\t\t\treturn;\n\t\t}\n\t}\n\n\treturn number;\n}\n//# sourceMappingURL=IDD.js.map","// Deprecated. Import from 'metadata.js' directly instead.\nexport { getCountryCallingCode as default } from './metadata';\n//# sourceMappingURL=getCountryCallingCode.js.map","import AsYouType from './AsYouType';\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?} country - Two-letter (\"ISO 3166-1 alpha-2\") country code.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\nexport default function formatIncompletePhoneNumber(value, country, metadata) {\n if (!metadata) {\n metadata = country;\n country = undefined;\n }\n return new AsYouType(country, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","function _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\nimport { normalizeArguments } from './parsePhoneNumber';\nimport PhoneNumberMatcher from './PhoneNumberMatcher';\n\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\nexport default function searchNumbers() {\n\tvar _normalizeArguments = normalizeArguments(arguments),\n\t text = _normalizeArguments.text,\n\t options = _normalizeArguments.options,\n\t metadata = _normalizeArguments.metadata;\n\n\tvar matcher = new PhoneNumberMatcher(text, options, metadata);\n\n\treturn _defineProperty({}, Symbol.iterator, function () {\n\t\treturn {\n\t\t\tnext: function next() {\n\t\t\t\tif (matcher.hasNext()) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\tvalue: matcher.next()\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: true\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t});\n}\n//# sourceMappingURL=searchNumbers.js.map","import isValidNumber from '../validate_';\nimport parseDigits from '../parseDigits';\n\nimport { startsWith, endsWith } from './util';\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 */\nexport default {\n /**\r\n * Phone numbers accepted are \"possible\", but not necessarily \"valid\".\r\n */\n POSSIBLE: function POSSIBLE(number, candidate, metadata) {\n return true;\n },\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(number, candidate, metadata) {\n if (!isValidNumber(number, undefined, metadata) || !containsOnlyValidXChars(number, candidate.toString(), metadata)) {\n return false;\n }\n\n // Skipped for simplicity.\n // return isNationalPrefixPresentIfRequired(number, metadata)\n return true;\n },\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(number, candidate, metadata) {\n var candidateString = candidate.toString();\n\n if (!isValidNumber(number, undefined, metadata) || !containsOnlyValidXChars(number, candidateString, metadata) || containsMoreThanOneSlashInNationalNumber(number, candidateString) || !isNationalPrefixPresentIfRequired(number, metadata)) {\n return false;\n }\n\n return checkNumberGroupingIsValid(number, candidate, metadata, allNumberGroupsRemainGrouped);\n },\n\n\n /**\r\n * Phone numbers accepted are {@linkplain PhoneNumberUtil#isValidNumber(PhoneNumber) valid} and\r\n * are grouped in the same way that we would have formatted it, or as a single block. For\r\n * example, a US number written as \"650 2530000\" is not accepted at this leniency level, whereas\r\n * \"650 253 0000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol are also dropped at this level.\r\n *