{"version":3,"file":"npm.libphonenumber-js.js?version=0a94d89c4943a69d5a9a","mappings":"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","sources":["webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js","webpack://garage-app/./node_modules/libphonenumber-js/build/PhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/max/index.cjs","webpack://garage-app/./node_modules/libphonenumber-js/build/validatePhoneNumberLength.js","webpack://garage-app/./node_modules/libphonenumber-js/build/getExampleNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouType.js","webpack://garage-app/./node_modules/libphonenumber-js/build/ParseError.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/parseDigits.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternMatcher.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/getIddPrefix.js","webpack://garage-app/./node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/isPossible.js","webpack://garage-app/./node_modules/libphonenumber-js/build/legacy/searchNumbers.js","webpack://garage-app/./node_modules/libphonenumber-js/build/parsePhoneNumber_.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js","webpack://garage-app/./node_modules/libphonenumber-js/build/parse.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeParser.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extractPhoneContext.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js","webpack://garage-app/./node_modules/libphonenumber-js/build/parsePhoneNumberWithError.js","webpack://garage-app/./node_modules/libphonenumber-js/build/isValidPhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findPhoneNumbersInText.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeState.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/matchesEntirely.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/getCountryByNationalNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/parsePhoneNumberWithError_.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/utf-8.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/LRUCache.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js","webpack://garage-app/./node_modules/libphonenumber-js/build/format.js","webpack://garage-app/./node_modules/libphonenumber-js/build/getCountries.js","webpack://garage-app/./node_modules/libphonenumber-js/build/isValid.js","webpack://garage-app/./node_modules/libphonenumber-js/build/tools/semver-compare.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/util.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/getNumberType.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/RFC3966.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/isObject.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js","webpack://garage-app/./node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/PhoneNumberMatcher.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/getPossibleCountriesForNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/parsePhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/constants.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://garage-app/./node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js","webpack://garage-app/./node_modules/libphonenumber-js/core/index.cjs","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/matchPhoneNumberStringAgainstPhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js","webpack://garage-app/./node_modules/libphonenumber-js/build/legacy/findNumbers.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/mergeArrays.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js","webpack://garage-app/./node_modules/libphonenumber-js/build/normalizeArguments.js","webpack://garage-app/./node_modules/libphonenumber-js/build/getCountryCallingCode.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.js","webpack://garage-app/./node_modules/libphonenumber-js/build/metadata.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js","webpack://garage-app/./node_modules/libphonenumber-js/build/findNumbers/Leniency.js","webpack://garage-app/./node_modules/libphonenumber-js/build/AsYouTypeFormatter.PatternParser.js","webpack://garage-app/./node_modules/libphonenumber-js/build/helpers/checkNumberLength.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = stripIddPrefix;\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nvar _constants = require(\"../constants.js\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + _constants.VALID_DIGITS + '])');\nfunction stripIddPrefix(number, country, callingCode, metadata) {\n  if (!country) {\n    return;\n  }\n  // Check if the number is IDD-prefixed.\n  var countryMetadata = new _metadata[\"default\"](metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n  var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n  if (number.search(IDDPrefixPattern) !== 0) {\n    return;\n  }\n  // Strip IDD prefix.\n  number = number.slice(number.match(IDDPrefixPattern)[0].length);\n  // If there're any digits after an IDD prefix,\n  // then those digits are a country calling code.\n  // Since no country code starts with a `0`,\n  // the code below validates that the next digit (if present) is not `0`.\n  var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n  if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n    if (matchedGroups[1] === '0') {\n      return;\n    }\n  }\n  return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _metadata = _interopRequireWildcard(require(\"./metadata.js\"));\nvar _isPossible = _interopRequireDefault(require(\"./isPossible.js\"));\nvar _isValid = _interopRequireDefault(require(\"./isValid.js\"));\nvar _getNumberType = _interopRequireDefault(require(\"./helpers/getNumberType.js\"));\nvar _getPossibleCountriesForNumber = _interopRequireDefault(require(\"./helpers/getPossibleCountriesForNumber.js\"));\nvar _extractCountryCallingCode = _interopRequireDefault(require(\"./helpers/extractCountryCallingCode.js\"));\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\nvar _format2 = _interopRequireDefault(require(\"./format.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar PhoneNumber = exports[\"default\"] = /*#__PURE__*/function () {\n  /**\r\n   * @param  {string} countryOrCountryCallingCode\r\n   * @param  {string} nationalNumber\r\n   * @param  {object} metadata — Metadata JSON\r\n   * @return {PhoneNumber}\r\n   */\n  function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n    _classCallCheck(this, PhoneNumber);\n    // Validate `countryOrCountryCallingCode` argument.\n    if (!countryOrCountryCallingCode) {\n      throw new TypeError('First argument is required');\n    }\n    if (typeof countryOrCountryCallingCode !== 'string') {\n      throw new TypeError('First argument must be a string');\n    }\n\n    // In case of public API use: `constructor(number, metadata)`.\n    // Transform the arguments from `constructor(number, metadata)` to\n    // `constructor(countryOrCountryCallingCode, nationalNumber, metadata)`.\n    if (countryOrCountryCallingCode[0] === '+' && !nationalNumber) {\n      throw new TypeError('`metadata` argument not passed');\n    }\n    if ((0, _isObject[\"default\"])(nationalNumber) && (0, _isObject[\"default\"])(nationalNumber.countries)) {\n      metadata = nationalNumber;\n      var e164Number = countryOrCountryCallingCode;\n      if (!E164_NUMBER_REGEXP.test(e164Number)) {\n        throw new Error('Invalid `number` argument passed: must consist of a \"+\" followed by digits');\n      }\n      var _extractCountryCallin = (0, _extractCountryCallingCode[\"default\"])(e164Number, undefined, undefined, undefined, metadata),\n        _countryCallingCode = _extractCountryCallin.countryCallingCode,\n        number = _extractCountryCallin.number;\n      nationalNumber = number;\n      countryOrCountryCallingCode = _countryCallingCode;\n      if (!nationalNumber) {\n        throw new Error('Invalid `number` argument passed: too short');\n      }\n    }\n\n    // Validate `nationalNumber` argument.\n    if (!nationalNumber) {\n      throw new TypeError('`nationalNumber` argument is required');\n    }\n    if (typeof nationalNumber !== 'string') {\n      throw new TypeError('`nationalNumber` argument must be a string');\n    }\n\n    // Validate `metadata` argument.\n    (0, _metadata.validateMetadata)(metadata);\n\n    // Initialize properties.\n    var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n      country = _getCountryAndCountry.country,\n      countryCallingCode = _getCountryAndCountry.countryCallingCode;\n    this.country = country;\n    this.countryCallingCode = countryCallingCode;\n    this.nationalNumber = nationalNumber;\n    this.number = '+' + this.countryCallingCode + this.nationalNumber;\n    // Exclude `metadata` property output from `PhoneNumber.toString()`\n    // so that it doesn't clutter the console output of Node.js.\n    // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n    // it would output the whole internal structure of the `metadata` object.\n    this.getMetadata = function () {\n      return metadata;\n    };\n  }\n  return _createClass(PhoneNumber, [{\n    key: \"setExt\",\n    value: function setExt(ext) {\n      this.ext = ext;\n    }\n  }, {\n    key: \"getPossibleCountries\",\n    value: function getPossibleCountries() {\n      if (this.country) {\n        return [this.country];\n      }\n      return (0, _getPossibleCountriesForNumber[\"default\"])(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n    }\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      return (0, _isPossible[\"default\"])(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      return (0, _isValid[\"default\"])(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"isNonGeographic\",\n    value: function isNonGeographic() {\n      var metadata = new _metadata[\"default\"](this.getMetadata());\n      return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n    }\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(phoneNumber) {\n      return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n    }\n\n    // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n    // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n    // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n    // so eventually I simply commented out this method from the `PhoneNumber` class\n    // and just left the `validatePhoneNumberLength()` function, even though that one would require\n    // and additional step to also validate the actual country / calling code of the phone number.\n    // validateLength() {\n    // \tconst metadata = new Metadata(this.getMetadata())\n    // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n    // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n    // \tif (result !== 'IS_POSSIBLE') {\n    // \t\treturn result\n    // \t}\n    // }\n  }, {\n    key: \"getType\",\n    value: function getType() {\n      return (0, _getNumberType[\"default\"])(this, {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"format\",\n    value: function format(_format, options) {\n      return (0, _format2[\"default\"])(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n        v2: true\n      }) : {\n        v2: true\n      }, this.getMetadata());\n    }\n  }, {\n    key: \"formatNational\",\n    value: function formatNational(options) {\n      return this.format('NATIONAL', options);\n    }\n  }, {\n    key: \"formatInternational\",\n    value: function formatInternational(options) {\n      return this.format('INTERNATIONAL', options);\n    }\n  }, {\n    key: \"getURI\",\n    value: function getURI(options) {\n      return this.format('RFC3966', options);\n    }\n  }]);\n}();\nvar isCountryCode = function isCountryCode(value) {\n  return /^[A-Z]{2}$/.test(value);\n};\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n  var country;\n  var countryCallingCode;\n  var metadata = new _metadata[\"default\"](metadataJson);\n  // If country code is passed then derive `countryCallingCode` from it.\n  // Also store the country code as `.country`.\n  if (isCountryCode(countryOrCountryCallingCode)) {\n    country = countryOrCountryCallingCode;\n    metadata.selectNumberingPlan(country);\n    countryCallingCode = metadata.countryCallingCode();\n  } else {\n    countryCallingCode = countryOrCountryCallingCode;\n    /* istanbul ignore if */\n    if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n      if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n        country = '001';\n      }\n    }\n  }\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode\n  };\n}\nvar E164_NUMBER_REGEXP = /^\\+\\d+$/;\n//# sourceMappingURL=PhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parseIncompletePhoneNumber;\nexports.parsePhoneNumberCharacter = parsePhoneNumberCharacter;\nvar _parseDigits = require(\"./helpers/parseDigits.js\");\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\nfunction parseIncompletePhoneNumber(string) {\n  var result = '';\n  // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    result += parsePhoneNumberCharacter(character, result) || '';\n  }\n  return result;\n}\n\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param  {string} character - Yet another character from raw input string.\r\n * @param  {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param  {function?} eventListener - An optional \"on event\" function.\r\n * @return {string?} The parsed character.\r\n */\nfunction parsePhoneNumberCharacter(character, prevParsedCharacters, eventListener) {\n  // Only allow a leading `+`.\n  if (character === '+') {\n    // If this `+` is not the first parsed character\n    // then discard it.\n    if (prevParsedCharacters) {\n      // `eventListener` argument was added to this `export`ed function on Dec 26th, 2023.\n      // Any 3rd-party code that used to `import` and call this function before that\n      // won't be passing any `eventListener` argument.\n      //\n      // The addition of the `eventListener` argument was to fix the slightly-weird behavior\n      // of parsing an input string when the user inputs something like `\"2+7\"\n      // https://github.com/catamphetamine/react-phone-number-input/issues/437\n      //\n      // If the parser encounters an unexpected `+` in a string being parsed\n      // then it simply discards that out-of-place `+` and any following characters.\n      //\n      if (typeof eventListener === 'function') {\n        eventListener('end');\n      }\n      return;\n    }\n    return '+';\n  }\n  // Allow digits.\n  return (0, _parseDigits.parseDigit)(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","'use strict'\r\n\r\nvar metadata = require('../metadata.max.json')\r\nvar core = require('../core/index.cjs')\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nfunction parsePhoneNumberFromString() {\r\n\treturn call(core.parsePhoneNumberFromString, arguments)\r\n}\r\n\r\n// ES5 `require()` \"default\" \"interoperability\" hack.\r\n// https://github.com/babel/babel/issues/2212#issuecomment-131827986\r\n// An alternative approach:\r\n// https://www.npmjs.com/package/babel-plugin-add-module-exports\r\nexports = module.exports = parsePhoneNumberFromString\r\nexports['default'] = parsePhoneNumberFromString\r\n\r\nexports.PhoneNumber = core.PhoneNumber\r\nexports.ParseError = core.ParseError\r\n\r\nfunction parsePhoneNumberWithError() {\r\n\treturn call(core.parsePhoneNumberWithError, arguments)\r\n}\r\n\r\n// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\r\nexports.parsePhoneNumber = parsePhoneNumberWithError\r\nexports.parsePhoneNumberWithError = parsePhoneNumberWithError\r\n\r\n// `parsePhoneNumberFromString()` named export is now considered legacy:\r\n// it has been promoted to a default export due to being too verbose.\r\nexports.parsePhoneNumberFromString = parsePhoneNumberFromString\r\n\r\nexports.isValidPhoneNumber = function isValidPhoneNumber() {\r\n\treturn call(core.isValidPhoneNumber, arguments)\r\n}\r\n\r\nexports.isPossiblePhoneNumber = function isPossiblePhoneNumber() {\r\n\treturn call(core.isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexports.validatePhoneNumberLength = function validatePhoneNumberLength() {\r\n\treturn call(core.validatePhoneNumberLength, arguments)\r\n}\r\n\r\nexports.findNumbers = function findNumbers() {\r\n\treturn call(core.findNumbers, arguments)\r\n}\r\n\r\nexports.searchNumbers = function searchNumbers() {\r\n\treturn call(core.searchNumbers, arguments)\r\n}\r\n\r\nexports.findPhoneNumbersInText = function findPhoneNumbersInText() {\r\n\treturn call(core.findPhoneNumbersInText, arguments)\r\n}\r\n\r\nexports.searchPhoneNumbersInText = function searchPhoneNumbersInText() {\r\n\treturn call(core.searchPhoneNumbersInText, arguments)\r\n}\r\n\r\nexports.PhoneNumberMatcher = function PhoneNumberMatcher(text, options) {\r\n\treturn core.PhoneNumberMatcher.call(this, text, options, metadata)\r\n}\r\nexports.PhoneNumberMatcher.prototype = Object.create(core.PhoneNumberMatcher.prototype, {})\r\nexports.PhoneNumberMatcher.prototype.constructor = exports.PhoneNumberMatcher\r\n\r\nexports.AsYouType = function AsYouType(country) {\r\n\treturn core.AsYouType.call(this, country, metadata)\r\n}\r\nexports.AsYouType.prototype = Object.create(core.AsYouType.prototype, {})\r\nexports.AsYouType.prototype.constructor = exports.AsYouType\r\n\r\nexports.isSupportedCountry = function isSupportedCountry(country) {\r\n\treturn call(core.isSupportedCountry, arguments)\r\n}\r\n\r\nexports.getCountries = function getCountries() {\r\n\treturn call(core.getCountries, arguments)\r\n}\r\n\r\nexports.getCountryCallingCode = function getCountryCallingCode() {\r\n\treturn call(core.getCountryCallingCode, arguments)\r\n}\r\n\r\nexports.getExtPrefix = function getExtPrefix(country) {\r\n\treturn call(core.getExtPrefix, arguments)\r\n}\r\n\r\nexports.getExampleNumber = function getExampleNumber() {\r\n\treturn call(core.getExampleNumber, arguments)\r\n}\r\n\r\nexports.formatIncompletePhoneNumber = function formatIncompletePhoneNumber() {\r\n\treturn call(core.formatIncompletePhoneNumber, arguments)\r\n}\r\n\r\nexports.parseIncompletePhoneNumber = core.parseIncompletePhoneNumber\r\nexports.parsePhoneNumberCharacter = core.parsePhoneNumberCharacter\r\nexports.parseDigits = core.parseDigits\r\nexports.DIGIT_PLACEHOLDER = core.DIGIT_PLACEHOLDER\r\n\r\nexports.parseRFC3966 = core.parseRFC3966\r\nexports.formatRFC3966 = core.formatRFC3966\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = validatePhoneNumberLength;\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nvar _parsePhoneNumberWithError_ = _interopRequireDefault(require(\"./parsePhoneNumberWithError_.js\"));\nvar _ParseError = _interopRequireDefault(require(\"./ParseError.js\"));\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\nvar _checkNumberLength = _interopRequireDefault(require(\"./helpers/checkNumberLength.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction validatePhoneNumberLength() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  options = _objectSpread(_objectSpread({}, options), {}, {\n    extract: false\n  });\n\n  // Parse phone number.\n  try {\n    var phoneNumber = (0, _parsePhoneNumberWithError_[\"default\"])(text, options, metadata);\n    metadata = new _metadata[\"default\"](metadata);\n    metadata.selectNumberingPlan(phoneNumber.countryCallingCode);\n    var result = (0, _checkNumberLength[\"default\"])(phoneNumber.nationalNumber, phoneNumber.country, metadata);\n    if (result !== 'IS_POSSIBLE') {\n      return result;\n    }\n  } catch (error) {\n    /* istanbul ignore else */\n    if (error instanceof _ParseError[\"default\"]) {\n      return error.message;\n    } else {\n      throw error;\n    }\n  }\n}\n//# sourceMappingURL=validatePhoneNumberLength.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getExampleNumber;\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction getExampleNumber(country, examples, metadata) {\n  if (examples[country]) {\n    return new _PhoneNumber[\"default\"](country, examples[country], metadata);\n  }\n}\n//# sourceMappingURL=getExampleNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\nvar _AsYouTypeState = _interopRequireDefault(require(\"./AsYouTypeState.js\"));\nvar _AsYouTypeFormatter = _interopRequireWildcard(require(\"./AsYouTypeFormatter.js\"));\nvar _AsYouTypeParser = _interopRequireWildcard(require(\"./AsYouTypeParser.js\"));\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"./helpers/getCountryByCallingCode.js\"));\nvar _getCountryByNationalNumber = _interopRequireDefault(require(\"./helpers/getCountryByNationalNumber.js\"));\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar AsYouType = exports[\"default\"] = /*#__PURE__*/function () {\n  /**\r\n   * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n   * @param {Object} metadata\r\n   */\n  function AsYouType(optionsOrDefaultCountry, metadata) {\n    _classCallCheck(this, AsYouType);\n    this.metadata = new _metadata[\"default\"](metadata);\n    var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n      _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n      defaultCountry = _this$getCountryAndCa2[0],\n      defaultCallingCode = _this$getCountryAndCa2[1];\n    // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n    // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n    // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n    this.defaultCountry = defaultCountry;\n    this.defaultCallingCode = defaultCallingCode;\n    this.reset();\n  }\n  return _createClass(AsYouType, [{\n    key: \"getCountryAndCallingCode\",\n    value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n      // Set `defaultCountry` and `defaultCallingCode` options.\n      var defaultCountry;\n      var defaultCallingCode;\n      // Turns out `null` also has type \"object\". Weird.\n      if (optionsOrDefaultCountry) {\n        if ((0, _isObject[\"default\"])(optionsOrDefaultCountry)) {\n          defaultCountry = optionsOrDefaultCountry.defaultCountry;\n          defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n        } else {\n          defaultCountry = optionsOrDefaultCountry;\n        }\n      }\n      if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n        defaultCountry = undefined;\n      }\n      if (defaultCallingCode) {\n        /* istanbul ignore if */\n        if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n          if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n            defaultCountry = '001';\n          }\n        }\n      }\n      return [defaultCountry, defaultCallingCode];\n    }\n\n    /**\r\n     * Inputs \"next\" phone number characters.\r\n     * @param  {string} text\r\n     * @return {string} Formatted phone number characters that have been input so far.\r\n     */\n  }, {\n    key: \"input\",\n    value: function input(text) {\n      var _this$parser$input = this.parser.input(text, this.state),\n        digits = _this$parser$input.digits,\n        justLeadingPlus = _this$parser$input.justLeadingPlus;\n      if (justLeadingPlus) {\n        this.formattedOutput = '+';\n      } else if (digits) {\n        this.determineTheCountryIfNeeded();\n        // Match the available formats by the currently available leading digits.\n        if (this.state.nationalSignificantNumber) {\n          this.formatter.narrowDownMatchingFormats(this.state);\n        }\n        var formattedNationalNumber;\n        if (this.metadata.hasSelectedNumberingPlan()) {\n          formattedNationalNumber = this.formatter.format(digits, this.state);\n        }\n        if (formattedNationalNumber === undefined) {\n          // See if another national (significant) number could be re-extracted.\n          if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n            this.determineTheCountryIfNeeded();\n            // If it could, then re-try formatting the new national (significant) number.\n            var nationalDigits = this.state.getNationalDigits();\n            if (nationalDigits) {\n              formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n            }\n          }\n        }\n        this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n      }\n      return this.formattedOutput;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      var _this = this;\n      this.state = new _AsYouTypeState[\"default\"]({\n        onCountryChange: function onCountryChange(country) {\n          // Before version `1.6.0`, the official `AsYouType` formatter API\n          // included a `.country` property on an `AsYouType` instance.\n          // Since that property (along with the others) have been moved to\n          // `this.state`, `this.country` property is emulated for compatibility\n          // with the old versions.\n          _this.country = country;\n        },\n        onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n          _this.metadata.selectNumberingPlan(country, callingCode);\n          _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n          _this.parser.reset(_this.metadata.numberingPlan);\n        }\n      });\n      this.formatter = new _AsYouTypeFormatter[\"default\"]({\n        state: this.state,\n        metadata: this.metadata\n      });\n      this.parser = new _AsYouTypeParser[\"default\"]({\n        defaultCountry: this.defaultCountry,\n        defaultCallingCode: this.defaultCallingCode,\n        metadata: this.metadata,\n        state: this.state,\n        onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n          _this.determineTheCountryIfNeeded();\n          _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n        }\n      });\n      this.state.reset({\n        country: this.defaultCountry,\n        callingCode: this.defaultCallingCode\n      });\n      this.formattedOutput = '';\n      return this;\n    }\n\n    /**\r\n     * Returns `true` if the phone number is being input in international format.\r\n     * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n     * @return {boolean}\r\n     */\n  }, {\n    key: \"isInternational\",\n    value: function isInternational() {\n      return this.state.international;\n    }\n\n    /**\r\n     * Returns the \"calling code\" part of the phone number when it's being input\r\n     * in an international format.\r\n     * If no valid calling code has been entered so far, returns `undefined`.\r\n     * @return {string} [callingCode]\r\n     */\n  }, {\n    key: \"getCallingCode\",\n    value: function getCallingCode() {\n      // If the number is being input in national format and some \"default calling code\"\n      // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n      // is equal to that \"default calling code\".\n      //\n      // If the number is being input in national format and no \"default calling code\"\n      // has been passed to `AsYouType` constructor, then returns `undefined`,\n      // even if a \"default country\" has been passed to `AsYouType` constructor.\n      //\n      if (this.isInternational()) {\n        return this.state.callingCode;\n      }\n    }\n\n    // A legacy alias.\n  }, {\n    key: \"getCountryCallingCode\",\n    value: function getCountryCallingCode() {\n      return this.getCallingCode();\n    }\n\n    /**\r\n     * Returns a two-letter country code of the phone number.\r\n     * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n     * Returns `undefined` if no phone number has been input yet.\r\n     * @return {string} [country]\r\n     */\n  }, {\n    key: \"getCountry\",\n    value: function getCountry() {\n      var digits = this.state.digits;\n      // Return `undefined` if no digits have been input yet.\n      if (digits) {\n        return this._getCountry();\n      }\n    }\n\n    /**\r\n     * Returns a two-letter country code of the phone number.\r\n     * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n     * @return {string} [country]\r\n     */\n  }, {\n    key: \"_getCountry\",\n    value: function _getCountry() {\n      var country = this.state.country;\n      /* istanbul ignore if */\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        // `AsYouType.getCountry()` returns `undefined`\n        // for \"non-geographic\" phone numbering plans.\n        if (country === '001') {\n          return;\n        }\n      }\n      return country;\n    }\n  }, {\n    key: \"determineTheCountryIfNeeded\",\n    value: function determineTheCountryIfNeeded() {\n      // Suppose a user enters a phone number in international format,\n      // and there're several countries corresponding to that country calling code,\n      // and a country has been derived from the number, and then\n      // a user enters one more digit and the number is no longer\n      // valid for the derived country, so the country should be re-derived\n      // on every new digit in those cases.\n      //\n      // If the phone number is being input in national format,\n      // then it could be a case when `defaultCountry` wasn't specified\n      // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n      // and that \"calling code\" could correspond to a \"non-geographic entity\",\n      // or there could be several countries corresponding to that country calling code.\n      // In those cases, `this.country` is `undefined` and should be derived\n      // from the number. Again, if country calling code is ambiguous, then\n      // `this.country` should be re-derived with each new digit.\n      //\n      if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n        this.determineTheCountry();\n      }\n    }\n\n    // Prepends `+CountryCode ` in case of an international phone number\n  }, {\n    key: \"getFullNumber\",\n    value: function getFullNumber(formattedNationalNumber) {\n      var _this2 = this;\n      if (this.isInternational()) {\n        var prefix = function prefix(text) {\n          return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n            spacing: text ? true : false\n          }) + text;\n        };\n        var callingCode = this.state.callingCode;\n        if (!callingCode) {\n          return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n        }\n        if (!formattedNationalNumber) {\n          return prefix(callingCode);\n        }\n        return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n      }\n      return formattedNationalNumber;\n    }\n  }, {\n    key: \"getNonFormattedNationalNumberWithPrefix\",\n    value: function getNonFormattedNationalNumberWithPrefix() {\n      var _this$state = this.state,\n        nationalSignificantNumber = _this$state.nationalSignificantNumber,\n        prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _this$state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,\n        nationalPrefix = _this$state.nationalPrefix;\n      var number = nationalSignificantNumber;\n      var prefix = prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix || nationalPrefix;\n      if (prefix) {\n        number = prefix + number;\n      }\n      return number;\n    }\n  }, {\n    key: \"getNonFormattedNumber\",\n    value: function getNonFormattedNumber() {\n      var nationalSignificantNumberIsModified = this.state.nationalSignificantNumberIsModified;\n      return this.getFullNumber(nationalSignificantNumberIsModified ? this.state.getNationalDigits() : this.getNonFormattedNationalNumberWithPrefix());\n    }\n  }, {\n    key: \"getNonFormattedTemplate\",\n    value: function getNonFormattedTemplate() {\n      var number = this.getNonFormattedNumber();\n      if (number) {\n        return number.replace(/[\\+\\d]/g, _AsYouTypeFormatter.DIGIT_PLACEHOLDER);\n      }\n    }\n  }, {\n    key: \"isCountryCallingCodeAmbiguous\",\n    value: function isCountryCallingCodeAmbiguous() {\n      var callingCode = this.state.callingCode;\n      var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n      return countryCodes && countryCodes.length > 1;\n    }\n\n    // Determines the exact country of the phone number\n    // entered so far based on the country phone code\n    // and the national phone number.\n  }, {\n    key: \"determineTheCountry\",\n    value: function determineTheCountry() {\n      this.state.setCountry((0, _getCountryByCallingCode[\"default\"])(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n        nationalNumber: this.state.nationalSignificantNumber,\n        metadata: this.metadata\n      }));\n    }\n\n    /**\r\n     * Returns a E.164 phone number value for the user's input.\r\n     *\r\n     * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n     * it will return `\"+12223334444\"`.\r\n     *\r\n     * For international phone number input, it will also auto-correct\r\n     * some minor errors such as using a national prefix when writing\r\n     * an international phone number. For example, if the user inputs\r\n     * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n     * `\"+447400000000\"` phone number value.\r\n     *\r\n     * Will return `undefined` if no digits have been input,\r\n     * or when inputting a phone number in national format and no\r\n     * default country or default \"country calling code\" have been set.\r\n     *\r\n     * @return {string} [value]\r\n     */\n  }, {\n    key: \"getNumberValue\",\n    value: function getNumberValue() {\n      var _this$state2 = this.state,\n        digits = _this$state2.digits,\n        callingCode = _this$state2.callingCode,\n        country = _this$state2.country,\n        nationalSignificantNumber = _this$state2.nationalSignificantNumber;\n\n      // Will return `undefined` if no digits have been input.\n      if (!digits) {\n        return;\n      }\n      if (this.isInternational()) {\n        if (callingCode) {\n          return '+' + callingCode + nationalSignificantNumber;\n        } else {\n          return '+' + digits;\n        }\n      } else {\n        if (country || callingCode) {\n          var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n          return '+' + callingCode_ + nationalSignificantNumber;\n        }\n      }\n    }\n\n    /**\r\n     * Returns an instance of `PhoneNumber` class.\r\n     * Will return `undefined` if no national (significant) number\r\n     * digits have been entered so far, or if no `defaultCountry` has been\r\n     * set and the user enters a phone number not in international format.\r\n     */\n  }, {\n    key: \"getNumber\",\n    value: function getNumber() {\n      var _this$state3 = this.state,\n        nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n        carrierCode = _this$state3.carrierCode,\n        callingCode = _this$state3.callingCode;\n\n      // `this._getCountry()` is basically same as `this.state.country`\n      // with the only change that it return `undefined` in case of a\n      // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n      var country = this._getCountry();\n      if (!nationalSignificantNumber) {\n        return;\n      }\n\n      // `state.country` and `state.callingCode` aren't required to be in sync.\n      // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n      // So `country` and `callingCode` are totally independent.\n\n      if (!country && !callingCode) {\n        return;\n      }\n\n      // By default, if `defaultCountry` parameter was passed when\n      // creating `AsYouType` instance, `state.country` is gonna be\n      // that `defaultCountry`, which doesn't entirely conform with\n      // `parsePhoneNumber()`'s behavior where it attempts to determine\n      // the country more precisely in cases when multiple countries\n      // could correspond to the same `countryCallingCode`.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n      //\n      // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n      // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n      // then it should also behave accordingly in cases of `country` ambiguity.\n      // That's how users of this library would expect it to behave anyway.\n      //\n      if (country) {\n        if (country === this.defaultCountry) {\n          // `state.country` and `state.callingCode` aren't required to be in sync.\n          // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n          // So `state.country` and `state.callingCode` are totally independent.\n          var metadata = new _metadata[\"default\"](this.metadata.metadata);\n          metadata.selectNumberingPlan(country);\n          var _callingCode = metadata.numberingPlan.callingCode();\n          var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n          if (ambiguousCountries.length > 1) {\n            var exactCountry = (0, _getCountryByNationalNumber[\"default\"])(nationalSignificantNumber, {\n              countries: ambiguousCountries,\n              metadata: this.metadata.metadata\n            });\n            if (exactCountry) {\n              country = exactCountry;\n            }\n          }\n        }\n      }\n      var phoneNumber = new _PhoneNumber[\"default\"](country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n      if (carrierCode) {\n        phoneNumber.carrierCode = carrierCode;\n      }\n      // Phone number extensions are not supported by \"As You Type\" formatter.\n      return phoneNumber;\n    }\n\n    /**\r\n     * Returns `true` if the phone number is \"possible\".\r\n     * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n     * @return {boolean}\r\n     */\n  }, {\n    key: \"isPossible\",\n    value: function isPossible() {\n      var phoneNumber = this.getNumber();\n      if (!phoneNumber) {\n        return false;\n      }\n      return phoneNumber.isPossible();\n    }\n\n    /**\r\n     * Returns `true` if the phone number is \"valid\".\r\n     * Is just a shortcut for `PhoneNumber.isValid()`.\r\n     * @return {boolean}\r\n     */\n  }, {\n    key: \"isValid\",\n    value: function isValid() {\n      var phoneNumber = this.getNumber();\n      if (!phoneNumber) {\n        return false;\n      }\n      return phoneNumber.isValid();\n    }\n\n    /**\r\n     * @deprecated\r\n     * This method is used in `react-phone-number-input/source/input-control.js`\r\n     * in versions before `3.0.16`.\r\n     */\n  }, {\n    key: \"getNationalNumber\",\n    value: function getNationalNumber() {\n      return this.state.nationalSignificantNumber;\n    }\n\n    /**\r\n     * Returns the phone number characters entered by the user.\r\n     * @return {string}\r\n     */\n  }, {\n    key: \"getChars\",\n    value: function getChars() {\n      return (this.state.international ? '+' : '') + this.state.digits;\n    }\n\n    /**\r\n     * Returns the template for the formatted phone number.\r\n     * @return {string}\r\n     */\n  }, {\n    key: \"getTemplate\",\n    value: function getTemplate() {\n      return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n    }\n  }]);\n}();\n//# sourceMappingURL=AsYouType.js.map","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _wrapNativeSuper(t) { var r = \"function\" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }\nfunction _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf(\"[native code]\"); } catch (n) { return \"function\" == typeof t; } }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = exports[\"default\"] = /*#__PURE__*/function (_Error) {\n  function ParseError(code) {\n    var _this;\n    _classCallCheck(this, ParseError);\n    _this = _callSuper(this, ParseError, [code]);\n    // Set the prototype explicitly.\n    // Any subclass of FooError will have to manually set the prototype as well.\n    Object.setPrototypeOf(_this, ParseError.prototype);\n    _this.name = _this.constructor.name;\n    return _this;\n  }\n  _inherits(ParseError, _Error);\n  return _createClass(ParseError);\n}(/*#__PURE__*/_wrapNativeSuper(Error));\n//# sourceMappingURL=ParseError.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.DIGITS = void 0;\nexports[\"default\"] = parseDigits;\nexports.parseDigit = parseDigit;\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nvar DIGITS = exports.DIGITS = {\n  '0': '0',\n  '1': '1',\n  '2': '2',\n  '3': '3',\n  '4': '4',\n  '5': '5',\n  '6': '6',\n  '7': '7',\n  '8': '8',\n  '9': '9',\n  \"\\uFF10\": '0',\n  // Fullwidth digit 0\n  \"\\uFF11\": '1',\n  // Fullwidth digit 1\n  \"\\uFF12\": '2',\n  // Fullwidth digit 2\n  \"\\uFF13\": '3',\n  // Fullwidth digit 3\n  \"\\uFF14\": '4',\n  // Fullwidth digit 4\n  \"\\uFF15\": '5',\n  // Fullwidth digit 5\n  \"\\uFF16\": '6',\n  // Fullwidth digit 6\n  \"\\uFF17\": '7',\n  // Fullwidth digit 7\n  \"\\uFF18\": '8',\n  // Fullwidth digit 8\n  \"\\uFF19\": '9',\n  // Fullwidth digit 9\n  \"\\u0660\": '0',\n  // Arabic-indic digit 0\n  \"\\u0661\": '1',\n  // Arabic-indic digit 1\n  \"\\u0662\": '2',\n  // Arabic-indic digit 2\n  \"\\u0663\": '3',\n  // Arabic-indic digit 3\n  \"\\u0664\": '4',\n  // Arabic-indic digit 4\n  \"\\u0665\": '5',\n  // Arabic-indic digit 5\n  \"\\u0666\": '6',\n  // Arabic-indic digit 6\n  \"\\u0667\": '7',\n  // Arabic-indic digit 7\n  \"\\u0668\": '8',\n  // Arabic-indic digit 8\n  \"\\u0669\": '9',\n  // Arabic-indic digit 9\n  \"\\u06F0\": '0',\n  // Eastern-Arabic digit 0\n  \"\\u06F1\": '1',\n  // Eastern-Arabic digit 1\n  \"\\u06F2\": '2',\n  // Eastern-Arabic digit 2\n  \"\\u06F3\": '3',\n  // Eastern-Arabic digit 3\n  \"\\u06F4\": '4',\n  // Eastern-Arabic digit 4\n  \"\\u06F5\": '5',\n  // Eastern-Arabic digit 5\n  \"\\u06F6\": '6',\n  // Eastern-Arabic digit 6\n  \"\\u06F7\": '7',\n  // Eastern-Arabic digit 7\n  \"\\u06F8\": '8',\n  // Eastern-Arabic digit 8\n  \"\\u06F9\": '9' // Eastern-Arabic digit 9\n};\nfunction parseDigit(character) {\n  return DIGITS[character];\n}\n\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param  {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\nfunction parseDigits(string) {\n  var result = '';\n  // Using `.split('')` here instead of normal `for ... of`\n  // because the importing application doesn't neccessarily include an ES6 polyfill.\n  // The `.split('')` approach discards \"exotic\" UTF-8 characters\n  // (the ones consisting of four bytes) but digits\n  // (including non-European ones) don't fall into that range\n  // so such \"exotic\" characters would be discarded anyway.\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    var digit = parseDigit(character);\n    if (digit) {\n      result += digit;\n    }\n  }\n  return result;\n}\n//# sourceMappingURL=parseDigits.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _AsYouTypeFormatterPatternParser = _interopRequireDefault(require(\"./AsYouTypeFormatter.PatternParser.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PatternMatcher = exports[\"default\"] = /*#__PURE__*/function () {\n  function PatternMatcher(pattern) {\n    _classCallCheck(this, PatternMatcher);\n    this.matchTree = new _AsYouTypeFormatterPatternParser[\"default\"]().parse(pattern);\n  }\n  return _createClass(PatternMatcher, [{\n    key: \"match\",\n    value: function match(string) {\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n        allowOverflow = _ref.allowOverflow;\n      if (!string) {\n        throw new Error('String is required');\n      }\n      var result = _match(string.split(''), this.matchTree, true);\n      if (result && result.match) {\n        delete result.matchedChars;\n      }\n      if (result && result.overflow) {\n        if (!allowOverflow) {\n          return;\n        }\n      }\n      return result;\n    }\n  }]);\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param  {string[]} characters\r\n * @param  {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param  {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\nfunction _match(characters, tree, last) {\n  // If `tree` is a string, then `tree` is a single character.\n  // That's because when a pattern is parsed, multi-character-string parts\n  // of a pattern are compiled into arrays of single characters.\n  // I still wrote this piece of code for a \"general\" hypothetical case\n  // when `tree` could be a string of several characters, even though\n  // such case is not possible with the current implementation.\n  if (typeof tree === 'string') {\n    var characterString = characters.join('');\n    if (tree.indexOf(characterString) === 0) {\n      // `tree` is always a single character.\n      // If `tree.indexOf(characterString) === 0`\n      // then `characters.length === tree.length`.\n      /* istanbul ignore else */\n      if (characters.length === tree.length) {\n        return {\n          match: true,\n          matchedChars: characters\n        };\n      }\n      // `tree` is always a single character.\n      // If `tree.indexOf(characterString) === 0`\n      // then `characters.length === tree.length`.\n      /* istanbul ignore next */\n      return {\n        partialMatch: true\n        // matchedChars: characters\n      };\n    }\n    if (characterString.indexOf(tree) === 0) {\n      if (last) {\n        // The `else` path is not possible because `tree` is always a single character.\n        // The `else` case for `characters.length > tree.length` would be\n        // `characters.length <= tree.length` which means `characters.length <= 1`.\n        // `characters` array can't be empty, so that means `characters === [tree]`,\n        // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n        // that the `if (tree.indexOf(characterString) === 0)` condition before this\n        // `if` condition would be entered, and returned from there, not reaching this code.\n        /* istanbul ignore else */\n        if (characters.length > tree.length) {\n          return {\n            overflow: true\n          };\n        }\n      }\n      return {\n        match: true,\n        matchedChars: characters.slice(0, tree.length)\n      };\n    }\n    return;\n  }\n  if (Array.isArray(tree)) {\n    var restCharacters = characters.slice();\n    var i = 0;\n    while (i < tree.length) {\n      var subtree = tree[i];\n      var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n      if (!result) {\n        return;\n      } else if (result.overflow) {\n        return result;\n      } else if (result.match) {\n        // Continue with the next subtree with the rest of the characters.\n        restCharacters = restCharacters.slice(result.matchedChars.length);\n        if (restCharacters.length === 0) {\n          if (i === tree.length - 1) {\n            return {\n              match: true,\n              matchedChars: characters\n            };\n          } else {\n            return {\n              partialMatch: true\n              // matchedChars: characters\n            };\n          }\n        }\n      } else {\n        /* istanbul ignore else */\n        if (result.partialMatch) {\n          return {\n            partialMatch: true\n            // matchedChars: characters\n          };\n        } else {\n          throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n        }\n      }\n      i++;\n    }\n    // If `last` then overflow has already been checked\n    // by the last element of the `tree` array.\n    /* istanbul ignore if */\n    if (last) {\n      return {\n        overflow: true\n      };\n    }\n    return {\n      match: true,\n      matchedChars: characters.slice(0, characters.length - restCharacters.length)\n    };\n  }\n  switch (tree.op) {\n    case '|':\n      var partialMatch;\n      for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n        var branch = _step.value;\n        var _result = _match(characters, branch, last);\n        if (_result) {\n          if (_result.overflow) {\n            return _result;\n          } else if (_result.match) {\n            return {\n              match: true,\n              matchedChars: _result.matchedChars\n            };\n          } else {\n            /* istanbul ignore else */\n            if (_result.partialMatch) {\n              partialMatch = true;\n            } else {\n              throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n            }\n          }\n        }\n      }\n      if (partialMatch) {\n        return {\n          partialMatch: true\n          // matchedChars: ...\n        };\n      }\n      // Not even a partial match.\n      return;\n    case '[]':\n      for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n        var _char = _step2.value;\n        if (characters[0] === _char) {\n          if (characters.length === 1) {\n            return {\n              match: true,\n              matchedChars: characters\n            };\n          }\n          if (last) {\n            return {\n              overflow: true\n            };\n          }\n          return {\n            match: true,\n            matchedChars: [_char]\n          };\n        }\n      }\n      // No character matches.\n      return;\n\n    /* istanbul ignore next */\n    default:\n      throw new Error(\"Unsupported instruction tree: \".concat(tree));\n  }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getCountryByCallingCode;\nvar _getCountryByNationalNumber = _interopRequireDefault(require(\"./getCountryByNationalNumber.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\n// Returns the exact country for the `nationalNumber`\n// that belongs to the specified \"country calling code\".\nfunction getCountryByCallingCode(callingCode, _ref) {\n  var nationalPhoneNumber = _ref.nationalNumber,\n    metadata = _ref.metadata;\n  /* istanbul ignore if */\n  if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n    if (metadata.isNonGeographicCallingCode(callingCode)) {\n      return '001';\n    }\n  }\n  var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n  if (!possibleCountries) {\n    return;\n  }\n  // If there's just one country corresponding to the country code,\n  // then just return it, without further phone number digits validation.\n  if (possibleCountries.length === 1) {\n    return possibleCountries[0];\n  }\n  return (0, _getCountryByNationalNumber[\"default\"])(nationalPhoneNumber, {\n    countries: possibleCountries,\n    metadata: metadata.metadata\n  });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getIddPrefix;\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/;\n\n// If the `country` supports IDD calling, it returns a preferred IDD prefix.\n// If the `country` doesn't support IDD calling, it returns `undefined`.\nfunction getIddPrefix(country, callingCode, metadata) {\n  var countryMetadata = new _metadata[\"default\"](metadata);\n  countryMetadata.selectNumberingPlan(country, callingCode);\n  if (countryMetadata.defaultIDDPrefix()) {\n    return countryMetadata.defaultIDDPrefix();\n  }\n  if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n    return countryMetadata.IDDPrefix();\n  }\n}\n//# sourceMappingURL=getIddPrefix.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = formatIncompletePhoneNumber;\nvar _AsYouType = _interopRequireDefault(require(\"./AsYouType.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\nfunction formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\n  if (!metadata) {\n    metadata = optionsOrDefaultCountry;\n    optionsOrDefaultCountry = undefined;\n  }\n  return new _AsYouType[\"default\"](optionsOrDefaultCountry, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isPossiblePhoneNumber;\nexports.isPossibleNumber = isPossibleNumber;\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\nvar _checkNumberLength = _interopRequireDefault(require(\"./helpers/checkNumberLength.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\nfunction isPossiblePhoneNumber(input, options, metadata) {\n  /* istanbul ignore if */\n  if (options === undefined) {\n    options = {};\n  }\n  metadata = new _metadata[\"default\"](metadata);\n  if (options.v2) {\n    if (!input.countryCallingCode) {\n      throw new Error('Invalid phone number object passed');\n    }\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else {\n    if (!input.phone) {\n      return false;\n    }\n    if (input.country) {\n      if (!metadata.hasCountry(input.country)) {\n        throw new Error(\"Unknown country: \".concat(input.country));\n      }\n      metadata.selectNumberingPlan(input.country);\n    } else {\n      if (!input.countryCallingCode) {\n        throw new Error('Invalid phone number object passed');\n      }\n      metadata.selectNumberingPlan(input.countryCallingCode);\n    }\n  }\n\n  // Old metadata (< 1.0.18) had no \"possible length\" data.\n  if (metadata.possibleLengths()) {\n    return isPossibleNumber(input.phone || input.nationalNumber, input.country, metadata);\n  } else {\n    // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n    // were missing for \"non-geographical\" numbering plans.\n    // Just assume the number is possible in such cases:\n    // it's unlikely that anyone generated their custom metadata\n    // in that short period of time (one day).\n    // This code can be removed in some future major version update.\n    if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n      // \"Non-geographic entities\" did't have `possibleLengths`\n      // due to a bug in metadata generation process.\n      return true;\n    } else {\n      throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n    }\n  }\n}\nfunction isPossibleNumber(nationalNumber, country, metadata) {\n  //, isInternational) {\n  switch ((0, _checkNumberLength[\"default\"])(nationalNumber, country, metadata)) {\n    case 'IS_POSSIBLE':\n      return true;\n    // This library ignores \"local-only\" phone numbers (for simplicity).\n    // See the readme for more info on what are \"local-only\" phone numbers.\n    // case 'IS_POSSIBLE_LOCAL_ONLY':\n    // \treturn !isInternational\n    default:\n      return false;\n  }\n}\n//# sourceMappingURL=isPossible.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = searchNumbers;\nvar _normalizeArguments2 = _interopRequireDefault(require(\"../normalizeArguments.js\"));\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"../PhoneNumberMatcher.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\nfunction searchNumbers() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  var matcher = new _PhoneNumberMatcher[\"default\"](text, options, metadata);\n  return _defineProperty({}, Symbol.iterator, function () {\n    return {\n      next: function next() {\n        if (matcher.hasNext()) {\n          return {\n            done: false,\n            value: matcher.next()\n          };\n        }\n        return {\n          done: true\n        };\n      }\n    };\n  });\n}\n//# sourceMappingURL=searchNumbers.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parsePhoneNumber;\nvar _parsePhoneNumberWithError_ = _interopRequireDefault(require(\"./parsePhoneNumberWithError_.js\"));\nvar _ParseError = _interopRequireDefault(require(\"./ParseError.js\"));\nvar _metadata = require(\"./metadata.js\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction parsePhoneNumber(text, options, metadata) {\n  // Validate `defaultCountry`.\n  if (options && options.defaultCountry && !(0, _metadata.isSupportedCountry)(options.defaultCountry, metadata)) {\n    options = _objectSpread(_objectSpread({}, options), {}, {\n      defaultCountry: undefined\n    });\n  }\n  // Parse phone number.\n  try {\n    return (0, _parsePhoneNumberWithError_[\"default\"])(text, options, metadata);\n  } catch (error) {\n    /* istanbul ignore else */\n    if (error instanceof _ParseError[\"default\"]) {\n      //\n    } else {\n      throw error;\n    }\n  }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.FIRST_GROUP_PATTERN = void 0;\nexports[\"default\"] = formatNationalNumberUsingFormat;\nvar _applyInternationalSeparatorStyle = _interopRequireDefault(require(\"./applyInternationalSeparatorStyle.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n// This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\nvar FIRST_GROUP_PATTERN = exports.FIRST_GROUP_PATTERN = /(\\$\\d)/;\nfunction formatNationalNumberUsingFormat(number, format, _ref) {\n  var useInternationalFormat = _ref.useInternationalFormat,\n    withNationalPrefix = _ref.withNationalPrefix,\n    carrierCode = _ref.carrierCode,\n    metadata = _ref.metadata;\n  var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() :\n  // This library doesn't use `domestic_carrier_code_formatting_rule`,\n  // because that one is only used when formatting phone numbers\n  // for dialing from a mobile phone, and this is not a dialing library.\n  // carrierCode && format.domesticCarrierCodeFormattingRule()\n  // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n  // \t// Then, replace the $FG in the formatting rule with the first group\n  // \t// and the carrier code combined in the appropriate way.\n  // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n  // \t: (\n  // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n  // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n  // \t\t\t: format.format()\n  // \t)\n  withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n  if (useInternationalFormat) {\n    return (0, _applyInternationalSeparatorStyle[\"default\"])(formattedNumber);\n  }\n  return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parse;\nvar _constants = require(\"./constants.js\");\nvar _ParseError = _interopRequireDefault(require(\"./ParseError.js\"));\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\nvar _isViablePhoneNumber = _interopRequireWildcard(require(\"./helpers/isViablePhoneNumber.js\"));\nvar _extractExtension = _interopRequireDefault(require(\"./helpers/extension/extractExtension.js\"));\nvar _parseIncompletePhoneNumber = _interopRequireDefault(require(\"./parseIncompletePhoneNumber.js\"));\nvar _getCountryCallingCode = _interopRequireDefault(require(\"./getCountryCallingCode.js\"));\nvar _isPossible = require(\"./isPossible.js\");\nvar _PhoneNumber = _interopRequireDefault(require(\"./PhoneNumber.js\"));\nvar _matchesEntirely = _interopRequireDefault(require(\"./helpers/matchesEntirely.js\"));\nvar _extractCountryCallingCode = _interopRequireDefault(require(\"./helpers/extractCountryCallingCode.js\"));\nvar _extractNationalNumber = _interopRequireDefault(require(\"./helpers/extractNationalNumber.js\"));\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"./helpers/getCountryByCallingCode.js\"));\nvar _extractFormattedPhoneNumberFromPossibleRfc3966NumberUri = _interopRequireDefault(require(\"./helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js\"));\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\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\n// import { parseRFC3966 } from './helpers/RFC3966.js'\n\n// import stripIddPrefix from './helpers/stripIddPrefix.js'\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('[' + _constants.PLUS_CHARS + _constants.VALID_DIGITS + ']');\n\n// Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + _constants.VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\n// Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param  {string} input\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\nfunction parse(text, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new _metadata[\"default\"](metadata);\n\n  // Validate `defaultCountry`.\n  if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n    if (options.v2) {\n      throw new _ParseError[\"default\"]('INVALID_COUNTRY');\n    }\n    throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n  }\n\n  // Parse the phone number.\n  var _parseInput = parseInput(text, options.v2, options.extract),\n    formattedPhoneNumber = _parseInput.number,\n    ext = _parseInput.ext,\n    error = _parseInput.error;\n\n  // If the phone number is not viable then return nothing.\n  if (!formattedPhoneNumber) {\n    if (options.v2) {\n      if (error === 'TOO_SHORT') {\n        throw new _ParseError[\"default\"]('TOO_SHORT');\n      }\n      throw new _ParseError[\"default\"]('NOT_A_NUMBER');\n    }\n    return {};\n  }\n  var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n    country = _parsePhoneNumber.country,\n    nationalNumber = _parsePhoneNumber.nationalNumber,\n    countryCallingCode = _parsePhoneNumber.countryCallingCode,\n    countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n    carrierCode = _parsePhoneNumber.carrierCode;\n  if (!metadata.hasSelectedNumberingPlan()) {\n    if (options.v2) {\n      throw new _ParseError[\"default\"]('INVALID_COUNTRY');\n    }\n    return {};\n  }\n\n  // Validate national (significant) number length.\n  if (!nationalNumber || nationalNumber.length < _constants.MIN_LENGTH_FOR_NSN) {\n    // Won't throw here because the regexp already demands length > 1.\n    /* istanbul ignore if */\n    if (options.v2) {\n      throw new _ParseError[\"default\"]('TOO_SHORT');\n    }\n    // Google's demo just throws an error in this case.\n    return {};\n  }\n\n  // Validate national (significant) number length.\n  //\n  // A sidenote:\n  //\n  // They say that sometimes national (significant) numbers\n  // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n  // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n  // Such numbers will just be discarded.\n  //\n  if (nationalNumber.length > _constants.MAX_LENGTH_FOR_NSN) {\n    if (options.v2) {\n      throw new _ParseError[\"default\"]('TOO_LONG');\n    }\n    // Google's demo just throws an error in this case.\n    return {};\n  }\n  if (options.v2) {\n    var phoneNumber = new _PhoneNumber[\"default\"](countryCallingCode, nationalNumber, metadata.metadata);\n    if (country) {\n      phoneNumber.country = country;\n    }\n    if (carrierCode) {\n      phoneNumber.carrierCode = carrierCode;\n    }\n    if (ext) {\n      phoneNumber.ext = ext;\n    }\n    phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n    return phoneNumber;\n  }\n\n  // Check if national phone number pattern matches the number.\n  // National number pattern is different for each country,\n  // even for those ones which are part of the \"NANPA\" group.\n  var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? (0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern()) : false;\n  if (!options.extended) {\n    return valid ? result(country, nationalNumber, ext) : {};\n  }\n\n  // isInternational: countryCallingCode !== undefined\n\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    carrierCode: carrierCode,\n    valid: valid,\n    possible: valid ? true : options.extended === true && metadata.possibleLengths() && (0, _isPossible.isPossibleNumber)(nationalNumber, country, metadata) ? true : false,\n    phone: nationalNumber,\n    ext: ext\n  };\n}\n\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param  {string} text\r\n * @param  {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param  {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n  if (!text) {\n    return;\n  }\n  if (text.length > MAX_INPUT_STRING_LENGTH) {\n    if (throwOnError) {\n      throw new _ParseError[\"default\"]('TOO_LONG');\n    }\n    return;\n  }\n  if (extract === false) {\n    return text;\n  }\n  // Attempt to extract a possible number from the string passed in\n  var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n  if (startsAt < 0) {\n    return;\n  }\n  return text\n  // Trim everything to the left of the phone number\n  .slice(startsAt)\n  // Remove trailing non-numerical characters\n  .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n\n/**\r\n * @param  {string} text - Input.\r\n * @param  {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param  {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nfunction parseInput(text, v2, extract) {\n  // // Parse RFC 3966 phone number URI.\n  // if (text && text.indexOf('tel:') === 0) {\n  // \treturn parseRFC3966(text)\n  // }\n  // let number = extractFormattedPhoneNumber(text, extract, v2)\n  var number = (0, _extractFormattedPhoneNumberFromPossibleRfc3966NumberUri[\"default\"])(text, {\n    extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n      return _extractFormattedPhoneNumber(text, extract, v2);\n    }\n  });\n  // If the phone number is not viable, then abort.\n  if (!number) {\n    return {};\n  }\n  if (!(0, _isViablePhoneNumber[\"default\"])(number)) {\n    if ((0, _isViablePhoneNumber.isViablePhoneNumberStart)(number)) {\n      return {\n        error: 'TOO_SHORT'\n      };\n    }\n    return {};\n  }\n  // Attempt to parse extension first, since it doesn't require region-specific\n  // data and we want to have the non-normalised number here.\n  var withExtensionStripped = (0, _extractExtension[\"default\"])(number);\n  if (withExtensionStripped.ext) {\n    return withExtensionStripped;\n  }\n  return {\n    number: number\n  };\n}\n\n/**\r\n * Creates `parse()` result object.\r\n */\nfunction result(country, nationalNumber, ext) {\n  var result = {\n    country: country,\n    phone: nationalNumber\n  };\n  if (ext) {\n    result.ext = ext;\n  }\n  return result;\n}\n\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n  // Extract calling code from phone number.\n  var _extractCountryCallin = (0, _extractCountryCallingCode[\"default\"])((0, _parseIncompletePhoneNumber[\"default\"])(formattedPhoneNumber), undefined, defaultCountry, defaultCallingCode, metadata.metadata),\n    countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n    countryCallingCode = _extractCountryCallin.countryCallingCode,\n    number = _extractCountryCallin.number;\n\n  // The exact country of the phone number\n  var country;\n\n  // If `formattedPhoneNumber` is passed in \"international\" format,\n  // choose a country by `countryCallingCode`.\n  if (countryCallingCode) {\n    metadata.selectNumberingPlan(countryCallingCode);\n  }\n  // Else, if `formattedPhoneNumber` is passed in \"national\" format,\n  // then `number` is defined and `countryCallingCode` is `undefined`.\n  else if (number && (defaultCountry || defaultCallingCode)) {\n    metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n    if (defaultCountry) {\n      country = defaultCountry;\n    } else {\n      /* istanbul ignore if */\n      if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n        if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n          country = '001';\n        }\n      }\n    }\n    countryCallingCode = defaultCallingCode || (0, _getCountryCallingCode[\"default\"])(defaultCountry, metadata.metadata);\n  } else return {};\n  if (!number) {\n    return {\n      countryCallingCodeSource: countryCallingCodeSource,\n      countryCallingCode: countryCallingCode\n    };\n  }\n  var _extractNationalNumbe = (0, _extractNationalNumber[\"default\"])((0, _parseIncompletePhoneNumber[\"default\"])(number), country, metadata),\n    nationalNumber = _extractNationalNumbe.nationalNumber,\n    carrierCode = _extractNationalNumbe.carrierCode;\n\n  // Sometimes there are several countries\n  // corresponding to the same country phone code\n  // (e.g. NANPA countries all having `1` country phone code).\n  // Therefore, to reliably determine the exact country,\n  // national (significant) number should have been parsed first.\n  //\n  // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n  // get their countries populated with the full set of\n  // \"phone number type\" regular expressions.\n  //\n  var exactCountry = (0, _getCountryByCallingCode[\"default\"])(countryCallingCode, {\n    nationalNumber: nationalNumber,\n    metadata: metadata\n  });\n  if (exactCountry) {\n    country = exactCountry;\n    /* istanbul ignore if */\n    if (exactCountry === '001') {\n      // Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n      // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n      // then remove the \"istanbul ignore if\".\n    } else {\n      metadata.selectNumberingPlan(country);\n    }\n  }\n  return {\n    country: country,\n    countryCallingCode: countryCallingCode,\n    countryCallingCodeSource: countryCallingCodeSource,\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n}\n//# sourceMappingURL=parse.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nexports.extractFormattedDigitsAndPlus = extractFormattedDigitsAndPlus;\nvar _extractCountryCallingCode2 = _interopRequireDefault(require(\"./helpers/extractCountryCallingCode.js\"));\nvar _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = _interopRequireDefault(require(\"./helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js\"));\nvar _extractNationalNumberFromPossiblyIncompleteNumber = _interopRequireDefault(require(\"./helpers/extractNationalNumberFromPossiblyIncompleteNumber.js\"));\nvar _stripIddPrefix = _interopRequireDefault(require(\"./helpers/stripIddPrefix.js\"));\nvar _parseDigits = _interopRequireDefault(require(\"./helpers/parseDigits.js\"));\nvar _constants = require(\"./constants.js\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + _constants.PLUS_CHARS + ']' + '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']*' + '|' + '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']+' + '.*' + '$');\n\n// Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\nvar AsYouTypeParser = exports[\"default\"] = /*#__PURE__*/function () {\n  function AsYouTypeParser(_ref) {\n    var defaultCountry = _ref.defaultCountry,\n      defaultCallingCode = _ref.defaultCallingCode,\n      metadata = _ref.metadata,\n      onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n    _classCallCheck(this, AsYouTypeParser);\n    this.defaultCountry = defaultCountry;\n    this.defaultCallingCode = defaultCallingCode;\n    this.metadata = metadata;\n    this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n  }\n  return _createClass(AsYouTypeParser, [{\n    key: \"input\",\n    value: function input(text, state) {\n      var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n        _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n        formattedDigits = _extractFormattedDigi2[0],\n        hasPlus = _extractFormattedDigi2[1];\n      var digits = (0, _parseDigits[\"default\"])(formattedDigits);\n      // Checks for a special case: just a leading `+` has been entered.\n      var justLeadingPlus;\n      if (hasPlus) {\n        if (!state.digits) {\n          state.startInternationalNumber(undefined, undefined);\n          if (!digits) {\n            justLeadingPlus = true;\n          }\n        }\n      }\n      if (digits) {\n        this.inputDigits(digits, state);\n      }\n      return {\n        digits: digits,\n        justLeadingPlus: justLeadingPlus\n      };\n    }\n\n    /**\r\n     * Inputs \"next\" phone number digits.\r\n     * @param  {string} digits\r\n     * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n     */\n  }, {\n    key: \"inputDigits\",\n    value: function inputDigits(nextDigits, state) {\n      var digits = state.digits;\n      var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3;\n\n      // Append phone number digits.\n      state.appendDigits(nextDigits);\n\n      // Attempt to extract IDD prefix:\n      // Some users input their phone number in international format,\n      // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/185\n      // Detect such numbers as soon as there're at least 3 digits.\n      // Google's library attempts to extract IDD prefix at 3 digits,\n      // so this library just copies that behavior.\n      // I guess that's because the most commot IDD prefixes are\n      // `00` (Europe) and `011` (US).\n      // There exist really long IDD prefixes too:\n      // for example, in Australia the default IDD prefix is `0011`,\n      // and it could even be as long as `14880011`.\n      // An IDD prefix is extracted here, and then every time when\n      // there's a new digit and the number couldn't be formatted.\n      if (hasReceivedThreeLeadingDigits) {\n        this.extractIddPrefix(state);\n      }\n      if (this.isWaitingForCountryCallingCode(state)) {\n        if (!this.extractCountryCallingCode(state)) {\n          return;\n        }\n      } else {\n        state.appendNationalSignificantNumberDigits(nextDigits);\n      }\n\n      // If a phone number is being input in international format,\n      // then it's not valid for it to have a national prefix.\n      // Still, some people incorrectly input such numbers with a national prefix.\n      // In such cases, only attempt to strip a national prefix if the number becomes too long.\n      // (but that is done later, not here)\n      if (!state.international) {\n        if (!this.hasExtractedNationalSignificantNumber) {\n          this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n            return state.update(stateUpdate);\n          });\n        }\n      }\n    }\n  }, {\n    key: \"isWaitingForCountryCallingCode\",\n    value: function isWaitingForCountryCallingCode(_ref2) {\n      var international = _ref2.international,\n        callingCode = _ref2.callingCode;\n      return international && !callingCode;\n    }\n\n    // Extracts a country calling code from a number\n    // being entered in internatonal format.\n  }, {\n    key: \"extractCountryCallingCode\",\n    value: function extractCountryCallingCode(state) {\n      var _extractCountryCallin = (0, _extractCountryCallingCode2[\"default\"])('+' + state.getDigitsWithoutInternationalPrefix(), state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n        countryCallingCode = _extractCountryCallin.countryCallingCode,\n        number = _extractCountryCallin.number;\n      if (countryCallingCode) {\n        state.setCallingCode(countryCallingCode);\n        state.update({\n          nationalSignificantNumber: number\n        });\n        return true;\n      }\n    }\n  }, {\n    key: \"reset\",\n    value: function reset(numberingPlan) {\n      if (numberingPlan) {\n        this.hasSelectedNumberingPlan = true;\n        var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n        this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n      } else {\n        this.hasSelectedNumberingPlan = undefined;\n        this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n      }\n    }\n\n    /**\r\n     * Extracts a national (significant) number from user input.\r\n     * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n     * and doesn't apply `national_prefix_transform_rule` after that.\r\n     * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n     * @return {boolean} [extracted]\r\n     */\n  }, {\n    key: \"extractNationalSignificantNumber\",\n    value: function extractNationalSignificantNumber(nationalDigits, setState) {\n      if (!this.hasSelectedNumberingPlan) {\n        return;\n      }\n      var _extractNationalNumbe = (0, _extractNationalNumberFromPossiblyIncompleteNumber[\"default\"])(nationalDigits, this.metadata),\n        nationalPrefix = _extractNationalNumbe.nationalPrefix,\n        nationalNumber = _extractNationalNumbe.nationalNumber,\n        carrierCode = _extractNationalNumbe.carrierCode;\n      if (nationalNumber === nationalDigits) {\n        return;\n      }\n      this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n      return true;\n    }\n\n    /**\r\n     * In Google's code this function is called \"attempt to extract longer NDD\".\r\n     * \"Some national prefixes are a substring of others\", they say.\r\n     * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n     */\n  }, {\n    key: \"extractAnotherNationalSignificantNumber\",\n    value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n      if (!this.hasExtractedNationalSignificantNumber) {\n        return this.extractNationalSignificantNumber(nationalDigits, setState);\n      }\n      if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n        return;\n      }\n      var _extractNationalNumbe2 = (0, _extractNationalNumberFromPossiblyIncompleteNumber[\"default\"])(nationalDigits, this.metadata),\n        nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n        nationalNumber = _extractNationalNumbe2.nationalNumber,\n        carrierCode = _extractNationalNumbe2.carrierCode;\n      // If a national prefix has been extracted previously,\n      // then it's always extracted as additional digits are added.\n      // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n      // doesn't do anything different from what it currently does.\n      // So, just in case, here's this check, though it doesn't occur.\n      /* istanbul ignore if */\n      if (nationalNumber === prevNationalSignificantNumber) {\n        return;\n      }\n      this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n      return true;\n    }\n  }, {\n    key: \"onExtractedNationalNumber\",\n    value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n      // Tells if the parsed national (significant) number is present as-is in the input string.\n      // For example, when inputting \"0343515551212999\" Argentinian mobile number,\n      // the parsed national (significant) number is \"93435551212999\".\n      // There, one can see how it stripped \"0\" national prefix and prepended a \"9\",\n      // because that's how it is instructed to do in Argentina's metadata.\n      // So in the described example, the parsed national (significant) number is not present\n      // as-is in the input string. Instead, it's \"modified\" in the input string.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n      var nationalSignificantNumberIsModified = false;\n\n      // In some countries, a phone number could have a prefix that is not a \"national prefix\"\n      // but rather some other type of \"utility\" prefix.\n      // For example, when calling within Australia, one could prepend `1831` prefix to hide\n      // caller's phone number.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n      var prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix;\n\n      // `nationalSignificantNumber` could be empty. In that case, `.lastIndexOf()` still works correctly.\n      var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber);\n\n      // If the parsed national (significant) number is the last substring of the `nationalDigits`,\n      // then it means that it's present as-is in the input string.\n      // In any other case, the parsed national (significant) number is \"modified\" in the input string.\n      if (nationalSignificantNumberIndex < 0 || nationalSignificantNumberIndex !== nationalDigits.length - nationalSignificantNumber.length) {\n        nationalSignificantNumberIsModified = true;\n      } else {\n        var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex);\n        // When national (significant) number is equal to the `nationalDigits`,\n        // this `onExtractedNationalNumber()` function simply doesn't get called.\n        // This means that at this point, `prefixBeforeNationalNumber` is always non-empty.\n        // Still, added this `if` check just to prevent potential silly bugs.\n        // The `!prefixBeforeNationalNumber` case is not really testable\n        // so this line is exluded from the code coverage.\n        /* istanbul ignore if */\n        if (prefixBeforeNationalNumber) {\n          if (prefixBeforeNationalNumber !== nationalPrefix) {\n            prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = prefixBeforeNationalNumber;\n          }\n        }\n      }\n      setState({\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode,\n        nationalSignificantNumber: nationalSignificantNumber,\n        nationalSignificantNumberIsModified: nationalSignificantNumberIsModified,\n        prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix: prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix\n      });\n      // `onExtractedNationalNumber()` is only called when\n      // the national (significant) number actually did change.\n      this.hasExtractedNationalSignificantNumber = true;\n      this.onNationalSignificantNumberChange();\n    }\n  }, {\n    key: \"reExtractNationalSignificantNumber\",\n    value: function reExtractNationalSignificantNumber(state) {\n      // Attempt to extract a national prefix.\n      //\n      // Some people incorrectly input national prefix\n      // in an international phone number.\n      // For example, some people write British phone numbers as `+44(0)...`.\n      //\n      // Also, in some rare cases, it is valid for a national prefix\n      // to be a part of an international phone number.\n      // For example, mobile phone numbers in Mexico are supposed to be\n      // dialled internationally using a `1` national prefix,\n      // so the national prefix will be part of an international number.\n      //\n      // Quote from:\n      // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n      //\n      // \"Dialing a Mexican cell phone from abroad\n      // When you are calling a cell phone number in Mexico from outside Mexico,\n      // it’s necessary to dial an additional “1” after Mexico’s country code\n      // (which is “52”) and before the area code.\n      // You also ignore the 045, and simply dial the area code and the\n      // cell phone’s number.\n      //\n      // If you don’t add the “1”, you’ll receive a recorded announcement\n      // asking you to redial using it.\n      //\n      // For example, if you are calling from the USA to a cell phone\n      // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n      // (Note that this is different to calling a land line in Mexico City\n      // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n      //\n      // Google's demo output:\n      // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n      //\n      if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n        return state.update(stateUpdate);\n      })) {\n        return true;\n      }\n      // If no format matches the phone number, then it could be\n      // \"a really long IDD\" (quote from a comment in Google's library).\n      // An IDD prefix is first extracted when the user has entered at least 3 digits,\n      // and then here — every time when there's a new digit and the number\n      // couldn't be formatted.\n      // For example, in Australia the default IDD prefix is `0011`,\n      // and it could even be as long as `14880011`.\n      //\n      // Could also check `!hasReceivedThreeLeadingDigits` here\n      // to filter out the case when this check duplicates the one\n      // already performed when there're 3 leading digits,\n      // but it's not a big deal, and in most cases there\n      // will be a suitable `format` when there're 3 leading digits.\n      //\n      if (this.extractIddPrefix(state)) {\n        this.extractCallingCodeAndNationalSignificantNumber(state);\n        return true;\n      }\n      // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n      // when it \"autocorrects\" numbers that have been input for a country\n      // with that country's calling code.\n      // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      // https://github.com/catamphetamine/libphonenumber-js/issues/375\n      // https://github.com/catamphetamine/libphonenumber-js/issues/316\n      if (this.fixMissingPlus(state)) {\n        this.extractCallingCodeAndNationalSignificantNumber(state);\n        return true;\n      }\n    }\n  }, {\n    key: \"extractIddPrefix\",\n    value: function extractIddPrefix(state) {\n      // An IDD prefix can't be present in a number written with a `+`.\n      // Also, don't re-extract an IDD prefix if has already been extracted.\n      var international = state.international,\n        IDDPrefix = state.IDDPrefix,\n        digits = state.digits,\n        nationalSignificantNumber = state.nationalSignificantNumber;\n      if (international || IDDPrefix) {\n        return;\n      }\n      // Some users input their phone number in \"out-of-country\"\n      // dialing format instead of using the leading `+`.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/185\n      // Detect such numbers.\n      var numberWithoutIDD = (0, _stripIddPrefix[\"default\"])(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n      if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n        // If an IDD prefix was stripped then convert the IDD-prefixed number\n        // to international number for subsequent parsing.\n        state.update({\n          IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n        });\n        this.startInternationalNumber(state, {\n          country: undefined,\n          callingCode: undefined\n        });\n        return true;\n      }\n    }\n  }, {\n    key: \"fixMissingPlus\",\n    value: function fixMissingPlus(state) {\n      if (!state.international) {\n        var _extractCountryCallin2 = (0, _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign[\"default\"])(state.digits, state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n          newCallingCode = _extractCountryCallin2.countryCallingCode;\n        if (newCallingCode) {\n          state.update({\n            missingPlus: true\n          });\n          this.startInternationalNumber(state, {\n            country: state.country,\n            callingCode: newCallingCode\n          });\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"startInternationalNumber\",\n    value: function startInternationalNumber(state, _ref3) {\n      var country = _ref3.country,\n        callingCode = _ref3.callingCode;\n      state.startInternationalNumber(country, callingCode);\n      // If a national (significant) number has been extracted before, reset it.\n      if (state.nationalSignificantNumber) {\n        state.resetNationalSignificantNumber();\n        this.onNationalSignificantNumberChange();\n        this.hasExtractedNationalSignificantNumber = undefined;\n      }\n    }\n  }, {\n    key: \"extractCallingCodeAndNationalSignificantNumber\",\n    value: function extractCallingCodeAndNationalSignificantNumber(state) {\n      if (this.extractCountryCallingCode(state)) {\n        // `this.extractCallingCode()` is currently called when the number\n        // couldn't be formatted during the standard procedure.\n        // Normally, the national prefix would be re-extracted\n        // for an international number if such number couldn't be formatted,\n        // but since it's already not able to be formatted,\n        // there won't be yet another retry, so also extract national prefix here.\n        this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n          return state.update(stateUpdate);\n        });\n      }\n    }\n  }]);\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param  {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\nfunction extractFormattedPhoneNumber(text) {\n  // Attempt to extract a possible number from the string passed in.\n  var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n  if (startsAt < 0) {\n    return;\n  }\n  // Trim everything to the left of the phone number.\n  text = text.slice(startsAt);\n  // Trim the `+`.\n  var hasPlus;\n  if (text[0] === '+') {\n    hasPlus = true;\n    text = text.slice('+'.length);\n  }\n  // Trim everything to the right of the phone number.\n  text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '');\n  // Re-add the previously trimmed `+`.\n  if (hasPlus) {\n    text = '+' + text;\n  }\n  return text;\n}\n\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param  {string} text\r\n * @return {any[]}\r\n */\nfunction _extractFormattedDigitsAndPlus(text) {\n  // Extract a formatted phone number part from text.\n  var extractedNumber = extractFormattedPhoneNumber(text) || '';\n  // Trim a `+`.\n  if (extractedNumber[0] === '+') {\n    return [extractedNumber.slice('+'.length), true];\n  }\n  return [extractedNumber];\n}\n\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param  {string} text\r\n * @return {any[]}\r\n */\nfunction extractFormattedDigitsAndPlus(text) {\n  var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n    _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n    formattedDigits = _extractFormattedDigi4[0],\n    hasPlus = _extractFormattedDigi4[1];\n  // If the extracted phone number part\n  // can possibly be a part of some valid phone number\n  // then parse phone number characters from a formatted phone number.\n  if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n    formattedDigits = '';\n  }\n  return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = applyInternationalSeparatorStyle;\nvar _constants = require(\"../constants.js\");\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 `<intlFormat/>`s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `<intlFormat/>` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\nfunction applyInternationalSeparatorStyle(formattedNumber) {\n  return formattedNumber.replace(new RegExp(\"[\".concat(_constants.VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RFC3966_PREFIX_ = exports.RFC3966_PHONE_CONTEXT_ = exports.RFC3966_ISDN_SUBADDRESS_ = exports.PLUS_SIGN = void 0;\nexports[\"default\"] = extractPhoneContext;\nexports.isPhoneContextValid = isPhoneContextValid;\nvar _constants = require(\"../constants.js\");\n// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\n\nvar PLUS_SIGN = exports.PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + _constants.VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + _constants.VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g');\n\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\nvar ALPHANUM_ = _constants.VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nvar RFC3966_PREFIX_ = exports.RFC3966_PREFIX_ = 'tel:';\nvar RFC3966_PHONE_CONTEXT_ = exports.RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nvar RFC3966_ISDN_SUBADDRESS_ = exports.RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\nfunction extractPhoneContext(numberToExtractFrom) {\n  var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_);\n  // If no phone-context parameter is present\n  if (indexOfPhoneContext < 0) {\n    return null;\n  }\n  var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length;\n  // If phone-context parameter is empty\n  if (phoneContextStart >= numberToExtractFrom.length) {\n    return '';\n  }\n  var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart);\n  // If phone-context is not the last parameter\n  if (phoneContextEnd >= 0) {\n    return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n  } else {\n    return numberToExtractFrom.substring(phoneContextStart);\n  }\n}\n\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\nfunction isPhoneContextValid(phoneContext) {\n  if (phoneContext === null) {\n    return true;\n  }\n  if (phoneContext.length === 0) {\n    return false;\n  }\n\n  // Does phone-context value match pattern of global-number-digits or domainname.\n  return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = createExtensionPattern;\nvar _constants = require(\"../../constants.js\");\n// The RFC 3966 format for extensions.\nvar RFC3966_EXTN_PREFIX = ';ext=';\n\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n  return \"([\".concat(_constants.VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\nfunction createExtensionPattern(purpose) {\n  // We cap the maximum length of an extension based on the ambiguity of the way\n  // the extension is prefixed. As per ITU, the officially allowed length for\n  // extensions is actually 40, but we don't support this since we haven't seen real\n  // examples and this introduces many false interpretations as the extension labels\n  // are not standardized.\n  /** @type {string} */\n  var extLimitAfterExplicitLabel = '20';\n  /** @type {string} */\n  var extLimitAfterLikelyLabel = '15';\n  /** @type {string} */\n  var extLimitAfterAmbiguousChar = '9';\n  /** @type {string} */\n  var extLimitWhenNotSure = '6';\n\n  /** @type {string} */\n  var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\";\n  // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n  /** @type {string} */\n  var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n  /** @type {string} */\n  var optionalExtnSuffix = \"#?\";\n\n  // Here the extension is called out in more explicit way, i.e mentioning it obvious\n  // patterns like \"ext.\".\n  /** @type {string} */\n  var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\n  // One-character symbols that can be used to indicate an extension, and less\n  // commonly used or more ambiguous extension labels.\n  /** @type {string} */\n  var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\n  // When extension is not separated clearly.\n  /** @type {string} */\n  var ambiguousSeparator = \"[- ]+\";\n  // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n  // comma as extension label may have it.\n  /** @type {string} */\n  var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\";\n  // \",,\" is commonly used for auto dialling the extension when connected. First\n  // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n  // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n  // button with the extension number following.\n  /** @type {string} */\n  var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n\n  /** @type {string} */\n  var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n  /** @type {string} */\n  var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n  /** @type {string} */\n  var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n  /** @type {string} */\n  var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n\n  /** @type {string} */\n  var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n  /** @type {string} */\n  var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n\n  // The first regular expression covers RFC 3966 format, where the extension is added\n  // using \";ext=\". The second more generic where extension is mentioned with explicit\n  // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n  // any other extension labels. The third one captures when single character extension\n  // labels or less commonly used labels are used. In such cases we capture fewer\n  // extension digits in order to reduce the chance of falsely interpreting two\n  // numbers beside each other as a number + extension. The fourth one covers the\n  // special case of American numbers where the extension is written with a hash\n  // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n  // autodialling formats which are used when dialling and in this case we accept longer\n  // extensions. The last one is more liberal on the number of commas that acts as\n  // extension labels, so we have a strict cap on the number of digits in such extensions.\n  return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parsePhoneNumberWithError;\nvar _parsePhoneNumberWithError_ = _interopRequireDefault(require(\"./parsePhoneNumberWithError_.js\"));\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction parsePhoneNumberWithError() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  return (0, _parsePhoneNumberWithError_[\"default\"])(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isValidPhoneNumber;\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nvar _parsePhoneNumber_ = _interopRequireDefault(require(\"./parsePhoneNumber_.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction isValidPhoneNumber() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  options = _objectSpread(_objectSpread({}, options), {}, {\n    extract: false\n  });\n  var phoneNumber = (0, _parsePhoneNumber_[\"default\"])(text, options, metadata);\n  return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = findPhoneNumbersInText;\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"./PhoneNumberMatcher.js\"));\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction findPhoneNumbersInText() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  var matcher = new _PhoneNumberMatcher[\"default\"](text, _objectSpread(_objectSpread({}, options), {}, {\n    v2: true\n  }), metadata);\n  var results = [];\n  while (matcher.hasNext()) {\n    results.push(matcher.next());\n  }\n  return results;\n}\n//# sourceMappingURL=findPhoneNumbersInText.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string` — The exact country of the phone number, if it could be determined.\n//                        When inputting a phone number in \"international\" format, it will derive the `country` from \"country calling code\" and the phone number digits.\n//                        When inputting a phone number in \"national\" format, it will derive the `country` from `defaultCountry` that was specified when creating the `AsYouType` formatter.\n//                        Sidenote: If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` flag was `true`, then for \"non-geographic phone numbers\" `state.country` would've been \"001\".\n// * `callingCode?: string` — \"Country calling code\" that has been extracted from the input phone number.\n//                        When inputting a phone number in \"international\" format, it will extract the \"country calling code\" from the digits that follow the \"+\" character.\n//                        When inputting a phone number in \"national\" format, `callingCode` will be `undefined`.\n//                        Sidenote: `state.callingCode` is therefore independent from `state.country` and there could be situations when `state.country` is defined by `state.callingCode` is not — that would be when inputting a phone number not in \"international\" format.\n// * `digits: string` — Phone number digits that have been input so far, including the \"+\" character, if present. In case of inputting non-arabic digits, those will be converted to arabic ones.\n// * `international: boolean` — Whether the phone number is being input in \"international\" format, i.e. with a \"+\" character.\n// * `missingPlus: boolean` — Whether it's a phone number in \"international\" format that is missing the leading \"+\" character for some reason — apparently, Google thinks that it's a common mistake when inputting a phone number.\n// * `IDDPrefix?: string` — An \"IDD prefix\", when the phone number is being input in an \"out-of-country dialing\" format. https://wikitravel.org/en/International_dialling_prefix\n// * `carrierCode?: string` — A \"carrier code\", if the phone number contains it. Normally, those can only be present in Colombia or Brazil, and only when calling from mobile phones to fixed-line numbers.\n// * `nationalPrefix?: string` — \"National prefix\", if present in the phone number input.\n// * `nationalSignificantNumber?: string` — National (significant) number digits that have been input so far.\n// * `nationalSignificantNumberIsModified: boolean` — Tells if the parsed national (significant) number is present as-is in the input string. For example, when inputting \"0343515551212999\" Argentinian mobile number, the parsed national (significant) number is \"93435551212999\". There, one can see how it stripped \"0\" national prefix and prepended a \"9\", because that's how it is instructed to do in Argentina's metadata. So in the described example, the parsed national (significant) number is not present as-is in the input string. Instead, it's \"modified\" in the input string. https://gitlab.com/caamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n// * `prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix?: string` — In some countries, a phone number could have a prefix that is not a \"national prefix\" but rather some other type of \"utility\" prefix.\n//                                                                             For example, when calling within Australia, one could prepend `1831` prefix to hide caller's phone number.\n//                                                                             https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n//\nvar AsYouTypeState = exports[\"default\"] = /*#__PURE__*/function () {\n  function AsYouTypeState(_ref) {\n    var onCountryChange = _ref.onCountryChange,\n      onCallingCodeChange = _ref.onCallingCodeChange;\n    _classCallCheck(this, AsYouTypeState);\n    this.onCountryChange = onCountryChange;\n    this.onCallingCodeChange = onCallingCodeChange;\n  }\n  return _createClass(AsYouTypeState, [{\n    key: \"reset\",\n    value: function reset(_ref2) {\n      var country = _ref2.country,\n        callingCode = _ref2.callingCode;\n      this.international = false;\n      this.missingPlus = false;\n      this.IDDPrefix = undefined;\n      this.callingCode = undefined;\n      this.digits = '';\n      this.resetNationalSignificantNumber();\n      this.initCountryAndCallingCode(country, callingCode);\n    }\n  }, {\n    key: \"resetNationalSignificantNumber\",\n    value: function resetNationalSignificantNumber() {\n      this.nationalSignificantNumber = this.getNationalDigits();\n      this.nationalSignificantNumberIsModified = false;\n      this.nationalPrefix = undefined;\n      this.carrierCode = undefined;\n      this.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = undefined;\n    }\n  }, {\n    key: \"update\",\n    value: function update(properties) {\n      for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n        var key = _Object$keys[_i];\n        this[key] = properties[key];\n      }\n    }\n  }, {\n    key: \"initCountryAndCallingCode\",\n    value: function initCountryAndCallingCode(country, callingCode) {\n      this.setCountry(country);\n      this.setCallingCode(callingCode);\n    }\n  }, {\n    key: \"setCountry\",\n    value: function setCountry(country) {\n      this.country = country;\n      this.onCountryChange(country);\n    }\n  }, {\n    key: \"setCallingCode\",\n    value: function setCallingCode(callingCode) {\n      this.callingCode = callingCode;\n      this.onCallingCodeChange(callingCode, this.country);\n    }\n  }, {\n    key: \"startInternationalNumber\",\n    value: function startInternationalNumber(country, callingCode) {\n      // Prepend the `+` to parsed input.\n      this.international = true;\n      // If a default country was set then reset it\n      // because an explicitly international phone\n      // number is being entered.\n      this.initCountryAndCallingCode(country, callingCode);\n    }\n  }, {\n    key: \"appendDigits\",\n    value: function appendDigits(nextDigits) {\n      this.digits += nextDigits;\n    }\n  }, {\n    key: \"appendNationalSignificantNumberDigits\",\n    value: function appendNationalSignificantNumberDigits(nextDigits) {\n      this.nationalSignificantNumber += nextDigits;\n    }\n\n    /**\r\n     * Returns the part of `this.digits` that corresponds to the national number.\r\n     * Basically, all digits that have been input by the user, except for the\r\n     * international prefix and the country calling code part\r\n     * (if the number is an international one).\r\n     * @return {string}\r\n     */\n  }, {\n    key: \"getNationalDigits\",\n    value: function getNationalDigits() {\n      if (this.international) {\n        return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n      }\n      return this.digits;\n    }\n  }, {\n    key: \"getDigitsWithoutInternationalPrefix\",\n    value: function getDigitsWithoutInternationalPrefix() {\n      if (this.international) {\n        if (this.IDDPrefix) {\n          return this.digits.slice(this.IDDPrefix.length);\n        }\n      }\n      return this.digits;\n    }\n  }]);\n}();\n//# sourceMappingURL=AsYouTypeState.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = matchesEntirely;\n/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nfunction matchesEntirely(text, regularExpressionText) {\n  // If the assigning of the `''` default value is moved to the arguments above,\n  // the code coverage would decrease for some weird reason.\n  text = text || '';\n  return new RegExp('^(?:' + regularExpressionText + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getCountryByNationalNumber;\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nvar _getNumberType = _interopRequireDefault(require(\"./getNumberType.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Returns the exact country that the `nationalPhoneNumber` belongs to\n// in cases of ambiguity, i.e. when multiple countries share the same \"country calling code\".\nfunction getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n  var countries = _ref.countries,\n    metadata = _ref.metadata;\n  // Re-create `metadata` because it will be selecting a `country`.\n  metadata = new _metadata[\"default\"](metadata);\n\n  // const matchingCountries = []\n\n  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n    var country = _step.value;\n    metadata.selectNumberingPlan(country);\n    // \"Leading digits\" patterns are only defined for about 20% of all countries.\n    // By definition, matching \"leading digits\" is a sufficient but not a necessary\n    // condition for a phone number to belong to a country.\n    // The point of \"leading digits\" check is that it's the fastest one to get a match.\n    // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n    // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n    // because of the intended use of that feature.\n    if (metadata.leadingDigits()) {\n      if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n        return country;\n      }\n    }\n    // Else perform full validation with all of those\n    // fixed-line/mobile/etc regular expressions.\n    else if ((0, _getNumberType[\"default\"])({\n      phone: nationalPhoneNumber,\n      country: country\n    }, undefined, metadata.metadata)) {\n      // When multiple countries share the same \"country calling code\",\n      // type patterns aren't guaranteed to be unique among them.\n      // For example, both `US` and `CA` have the same pattern for `toll_free` numbers.\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417147572\n      //\n      // That means that this `if` condition could be `true` for multiple countries from the list.\n      // Currently, it just returns the first one, which is also the \"main\" country for the \"country calling code\".\n      // In an example with `toll_free` numbers above, `\"US\"` would be returned even though\n      // it could as well be `\"CA\"`.\n      //\n      // There was also a time when this attempted to be overly smart\n      // and kept track of all such multiple matching countries\n      // and then picked the one that matched the `defaultCountry`, if provided.\n      // For example, with `toll_free` numbers above, and with `defaultCountry: \"CA\"`,\n      // it would've returned `\"CA\"` instead of `\"US\"`.\n      // Later it turned out that such \"overly smart\" behavior turned out to be just confusing,\n      // so this \"overly smart\" country detection was reverted to returning the \"main\" country\n      // for the \"country calling code\".\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n      //\n      return country;\n      //\n      // The \"overly smart\" behavior code:\n      //\n      // if (defaultCountry) {\n      // \tif (country === defaultCountry) {\n      // \t\treturn country\n      // \t} else {\n      // \t\tmatchingCountries.push(country)\n      // \t}\n      // } else {\n      // \treturn country\n      // }\n    }\n  }\n\n  // // Return the first (\"main\") one of the `matchingCountries`.\n  // if (matchingCountries.length > 0) {\n  // \treturn matchingCountries[0]\n  // }\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parsePhoneNumberWithError;\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction parsePhoneNumberWithError(text, options, metadata) {\n  return (0, _parse[\"default\"])(text, _objectSpread(_objectSpread({}, options), {}, {\n    v2: true\n  }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports._pN = exports._pL = exports.PZ = void 0;\nexports.isInvalidPunctuationSymbol = isInvalidPunctuationSymbol;\nexports.isLatinLetter = isLatinLetter;\nexports.pZ = exports.pNd = void 0;\n// Javascript doesn't support UTF-8 regular expressions.\n// So mimicking them here.\n\n// Copy-pasted from `PhoneNumberMatcher.js`.\n\n/**\r\n * \"\\p{Z}\" is any kind of whitespace or invisible separator (\"Separator\").\r\n * http://www.regular-expressions.info/unicode.html\r\n * \"\\P{Z}\" is the reverse of \"\\p{Z}\".\r\n * \"\\p{N}\" is any kind of numeric character in any script (\"Number\").\r\n * \"\\p{Nd}\" is a digit zero through nine in any script except \"ideographic scripts\" (\"Decimal_Digit_Number\").\r\n * \"\\p{Sc}\" is a currency symbol (\"Currency_Symbol\").\r\n * \"\\p{L}\" is any kind of letter from any language (\"Letter\").\r\n * \"\\p{Mn}\" is \"non-spacing mark\".\r\n *\r\n * Javascript doesn't support Unicode Regular Expressions\r\n * so substituting it with this explicit set of characters.\r\n *\r\n * https://stackoverflow.com/questions/13210194/javascript-regex-equivalent-of-a-za-z-using-pl\r\n * https://github.com/danielberndt/babel-plugin-utf-8-regex/blob/master/src/transformer.js\r\n */\n\nvar _pZ = \" \\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\";\nvar pZ = exports.pZ = \"[\".concat(_pZ, \"]\");\nvar PZ = exports.PZ = \"[^\".concat(_pZ, \"]\");\nvar _pN = exports._pN = \"0-9\\xB2\\xB3\\xB9\\xBC-\\xBE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\";\n// const pN = `[${_pN}]`\n\nvar _pNd = \"0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\";\nvar pNd = exports.pNd = \"[\".concat(_pNd, \"]\");\nvar _pL = exports._pL = \"A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\";\nvar pL = \"[\".concat(_pL, \"]\");\nvar pL_regexp = new RegExp(pL);\nvar _pSc = \"$\\xA2-\\xA5\\u058F\\u060B\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20B9\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6\";\nvar pSc = \"[\".concat(_pSc, \"]\");\nvar pSc_regexp = new RegExp(pSc);\nvar _pMn = \"\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u08FE\\u0900-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1DC0-\\u1DE6\\u1DFC-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26\";\nvar pMn = \"[\".concat(_pMn, \"]\");\nvar pMn_regexp = new RegExp(pMn);\nvar _InBasic_Latin = \"\\0-\\x7F\";\nvar _InLatin_1_Supplement = \"\\x80-\\xFF\";\nvar _InLatin_Extended_A = \"\\u0100-\\u017F\";\nvar _InLatin_Extended_Additional = \"\\u1E00-\\u1EFF\";\nvar _InLatin_Extended_B = \"\\u0180-\\u024F\";\nvar _InCombining_Diacritical_Marks = \"\\u0300-\\u036F\";\nvar latinLetterRegexp = new RegExp('[' + _InBasic_Latin + _InLatin_1_Supplement + _InLatin_Extended_A + _InLatin_Extended_Additional + _InLatin_Extended_B + _InCombining_Diacritical_Marks + ']');\n\n/**\r\n * Helper method to determine if a character is a Latin-script letter or not.\r\n * For our purposes, combining marks should also return true since we assume\r\n * they have been added to a preceding Latin character.\r\n */\nfunction isLatinLetter(letter) {\n  // Combining marks are a subset of non-spacing-mark.\n  if (!pL_regexp.test(letter) && !pMn_regexp.test(letter)) {\n    return false;\n  }\n  return latinLetterRegexp.test(letter);\n}\nfunction isInvalidPunctuationSymbol(character) {\n  return character === '%' || pSc_regexp.test(character);\n}\n//# sourceMappingURL=utf-8.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = extractNationalNumber;\nvar _extractNationalNumberFromPossiblyIncompleteNumber = _interopRequireDefault(require(\"./extractNationalNumberFromPossiblyIncompleteNumber.js\"));\nvar _matchesEntirely = _interopRequireDefault(require(\"./matchesEntirely.js\"));\nvar _checkNumberLength = _interopRequireDefault(require(\"./checkNumberLength.js\"));\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"./getCountryByCallingCode.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param  {string} number — Complete phone number digits.\r\n * @param  {string?} country — Country, if known.\r\n * @param  {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\nfunction extractNationalNumber(number, country, metadata) {\n  // Parsing national prefixes and carrier codes\n  // is only required for local phone numbers\n  // but some people don't understand that\n  // and sometimes write international phone numbers\n  // with national prefixes (or maybe even carrier codes).\n  // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n  // Google's original library forgives such mistakes\n  // and so does this library, because it has been requested:\n  // https://github.com/catamphetamine/libphonenumber-js/issues/127\n  var _extractNationalNumbe = (0, _extractNationalNumberFromPossiblyIncompleteNumber[\"default\"])(number, metadata),\n    carrierCode = _extractNationalNumbe.carrierCode,\n    nationalNumber = _extractNationalNumbe.nationalNumber;\n  if (nationalNumber !== number) {\n    if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n      // Don't strip the national prefix.\n      return {\n        nationalNumber: number\n      };\n    }\n    // Check the national (significant) number length after extracting national prefix and carrier code.\n    // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n    if (metadata.numberingPlan.possibleLengths()) {\n      // If an exact `country` is not specified, attempt to detect it from the assumed national number.\n      if (!country) {\n        country = (0, _getCountryByCallingCode[\"default\"])(metadata.numberingPlan.callingCode(), {\n          nationalNumber: nationalNumber,\n          metadata: metadata\n        });\n      }\n\n      // The number remaining after stripping the national prefix and carrier code\n      // should be long enough to have a possible length for the country.\n      // Otherwise, don't strip the national prefix and carrier code,\n      // since the original number could be a valid number.\n      // This check has been copy-pasted \"as is\" from Google's original library:\n      // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n      // It doesn't check for the \"possibility\" of the original `number`.\n      // I guess it's fine not checking that one. It works as is anyway.\n      if (!isPossibleIncompleteNationalNumber(nationalNumber, country, metadata)) {\n        // Don't strip the national prefix.\n        return {\n          nationalNumber: number\n        };\n      }\n    }\n  }\n  return {\n    nationalNumber: nationalNumber,\n    carrierCode: carrierCode\n  };\n}\n\n// In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n  // The equivalent in Google's code is:\n  // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n  if ((0, _matchesEntirely[\"default\"])(nationalNumberBefore, metadata.nationalNumberPattern()) && !(0, _matchesEntirely[\"default\"])(nationalNumberAfter, metadata.nationalNumberPattern())) {\n    return false;\n  }\n  // This \"is possible\" national number (length) check has been commented out\n  // because it's superceded by the (effectively) same check done in the\n  // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n  // In other words, why run the same check twice if it could only be run once.\n  // // Check the national (significant) number length after extracting national prefix and carrier code.\n  // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n  // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n  // if (metadata.possibleLengths()) {\n  // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n  // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n  // \t\treturn false\n  // \t}\n  // }\n  return true;\n}\nfunction isPossibleIncompleteNationalNumber(nationalNumber, country, metadata) {\n  switch ((0, _checkNumberLength[\"default\"])(nationalNumber, country, metadata)) {\n    case 'TOO_SHORT':\n    case 'INVALID_LENGTH':\n      // This library ignores \"local-only\" phone numbers (for simplicity).\n      // See the readme for more info on what are \"local-only\" phone numbers.\n      // case 'IS_POSSIBLE_LOCAL_ONLY':\n      return false;\n    default:\n      return true;\n  }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\n// https://medium.com/dsinjs/implementing-lru-cache-in-javascript-94ba6755cda9\nvar Node = /*#__PURE__*/_createClass(function Node(key, value) {\n  var next = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  var prev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n  _classCallCheck(this, Node);\n  this.key = key;\n  this.value = value;\n  this.next = next;\n  this.prev = prev;\n});\nvar LRUCache = exports[\"default\"] = /*#__PURE__*/function () {\n  //set default limit of 10 if limit is not passed.\n  function LRUCache() {\n    var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n    _classCallCheck(this, LRUCache);\n    this.size = 0;\n    this.limit = limit;\n    this.head = null;\n    this.tail = null;\n    this.cache = {};\n  }\n\n  // Write Node to head of LinkedList\n  // update cache with Node key and Node reference\n  return _createClass(LRUCache, [{\n    key: \"put\",\n    value: function put(key, value) {\n      this.ensureLimit();\n      if (!this.head) {\n        this.head = this.tail = new Node(key, value);\n      } else {\n        var node = new Node(key, value, this.head);\n        this.head.prev = node;\n        this.head = node;\n      }\n\n      //Update the cache map\n      this.cache[key] = this.head;\n      this.size++;\n    }\n\n    // Read from cache map and make that node as new Head of LinkedList\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      if (this.cache[key]) {\n        var value = this.cache[key].value;\n\n        // node removed from it's position and cache\n        this.remove(key);\n        // write node again to the head of LinkedList to make it most recently used\n        this.put(key, value);\n        return value;\n      }\n      console.log(\"Item not available in cache for key \".concat(key));\n    }\n  }, {\n    key: \"ensureLimit\",\n    value: function ensureLimit() {\n      if (this.size === this.limit) {\n        this.remove(this.tail.key);\n      }\n    }\n  }, {\n    key: \"remove\",\n    value: function remove(key) {\n      var node = this.cache[key];\n      if (node.prev !== null) {\n        node.prev.next = node.next;\n      } else {\n        this.head = node.next;\n      }\n      if (node.next !== null) {\n        node.next.prev = node.prev;\n      } else {\n        this.tail = node.prev;\n      }\n      delete this.cache[key];\n      this.size--;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = null;\n      this.tail = null;\n      this.size = 0;\n      this.cache = {};\n    }\n\n    // // Invokes the callback function with every node of the chain and the index of the node.\n    // forEach(fn) {\n    //   let node = this.head;\n    //   let counter = 0;\n    //   while (node) {\n    //     fn(node, counter);\n    //     node = node.next;\n    //     counter++;\n    //   }\n    // }\n\n    // // To iterate over LRU with a 'for...of' loop\n    // *[Symbol.iterator]() {\n    //   let node = this.head;\n    //   while (node) {\n    //     yield node;\n    //     node = node.next;\n    //   }\n    // }\n  }]);\n}();\n//# sourceMappingURL=LRUCache.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = extractNationalNumberFromPossiblyIncompleteNumber;\n/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used  in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nfunction extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n  if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n    // See METADATA.md for the description of\n    // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n    // Attempt to parse the first digits as a national prefix.\n    var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n    var prefixMatch = prefixPattern.exec(number);\n    if (prefixMatch) {\n      var nationalNumber;\n      var carrierCode;\n      // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n      // If a `national_prefix_for_parsing` has any \"capturing groups\"\n      // then it means that the national (significant) number is equal to\n      // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n      // and nothing could be said about the actual national prefix:\n      // what is it and was it even there.\n      // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n      // then everything it matches is a national prefix.\n      // To determine whether `national_prefix_for_parsing` matched any\n      // \"capturing groups\", the value of the result of calling `.exec()`\n      // is looked at, and if it has non-undefined values where there're\n      // \"capturing groups\" in the regular expression, then it means\n      // that \"capturing groups\" have been matched.\n      // It's not possible to tell whether there'll be any \"capturing gropus\"\n      // before the matching process, because a `national_prefix_for_parsing`\n      // could exhibit both behaviors.\n      var capturedGroupsCount = prefixMatch.length - 1;\n      var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n      if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n        nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule());\n        // If there's more than one captured group,\n        // then carrier code is the second one.\n        if (capturedGroupsCount > 1) {\n          carrierCode = prefixMatch[1];\n        }\n      }\n      // If there're no \"capturing groups\",\n      // or if there're \"capturing groups\" but no\n      // `national_prefix_transform_rule`,\n      // then just strip the national prefix from the number,\n      // and possibly a carrier code.\n      // Seems like there could be more.\n      else {\n        // `prefixBeforeNationalNumber` is the whole substring matched by\n        // the `national_prefix_for_parsing` regular expression.\n        // There seem to be no guarantees that it's just a national prefix.\n        // For example, if there's a carrier code, it's gonna be a\n        // part of `prefixBeforeNationalNumber` too.\n        var prefixBeforeNationalNumber = prefixMatch[0];\n        nationalNumber = number.slice(prefixBeforeNationalNumber.length);\n        // If there's at least one captured group,\n        // then carrier code is the first one.\n        if (hasCapturedGroups) {\n          carrierCode = prefixMatch[1];\n        }\n      }\n      // Tries to guess whether a national prefix was present in the input.\n      // This is not something copy-pasted from Google's library:\n      // they don't seem to have an equivalent for that.\n      // So this isn't an \"officially approved\" way of doing something like that.\n      // But since there seems no other existing method, this library uses it.\n      var nationalPrefix;\n      if (hasCapturedGroups) {\n        var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n        var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup);\n        // Example: an Argentinian (AR) phone number `0111523456789`.\n        // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n        // and the rest of the phone number is `23456789`.\n        // The national number is transformed via `9$1` to `91123456789`.\n        // National prefix `0` is detected being present at the start.\n        // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n        if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n          nationalPrefix = metadata.numberingPlan.nationalPrefix();\n        }\n      } else {\n        nationalPrefix = prefixMatch[0];\n      }\n      return {\n        nationalNumber: nationalNumber,\n        nationalPrefix: nationalPrefix,\n        carrierCode: carrierCode\n      };\n    }\n  }\n  return {\n    nationalNumber: number\n  };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.DIGIT_PLACEHOLDER = void 0;\nexports.closeNonPairedParens = closeNonPairedParens;\nexports.countOccurences = countOccurences;\nexports.cutAndStripNonPairedParens = cutAndStripNonPairedParens;\nexports.populateTemplateWithDigits = populateTemplateWithDigits;\nexports.repeat = repeat;\nexports.stripNonPairedParens = stripNonPairedParens;\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nvar DIGIT_PLACEHOLDER = exports.DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER);\n\n// Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\nfunction countOccurences(symbol, string) {\n  var count = 0;\n  // Using `.split('')` to iterate through a string here\n  // to avoid requiring `Symbol.iterator` polyfill.\n  // `.split('')` is generally not safe for Unicode,\n  // but in this particular case for counting brackets it is safe.\n  // for (const character of string)\n  for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n    var character = _step.value;\n    if (character === symbol) {\n      count++;\n    }\n  }\n  return count;\n}\n\n// Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\nfunction repeat(string, times) {\n  if (times < 1) {\n    return '';\n  }\n  var result = '';\n  while (times > 1) {\n    if (times & 1) {\n      result += string;\n    }\n    times >>= 1;\n    string += string;\n  }\n  return result + string;\n}\nfunction cutAndStripNonPairedParens(string, cutBeforeIndex) {\n  if (string[cutBeforeIndex] === ')') {\n    cutBeforeIndex++;\n  }\n  return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nfunction closeNonPairedParens(template, cut_before) {\n  var retained_template = template.slice(0, cut_before);\n  var opening_braces = countOccurences('(', retained_template);\n  var closing_braces = countOccurences(')', retained_template);\n  var dangling_braces = opening_braces - closing_braces;\n  while (dangling_braces > 0 && cut_before < template.length) {\n    if (template[cut_before] === ')') {\n      dangling_braces--;\n    }\n    cut_before++;\n  }\n  return template.slice(0, cut_before);\n}\nfunction stripNonPairedParens(string) {\n  var dangling_braces = [];\n  var i = 0;\n  while (i < string.length) {\n    if (string[i] === '(') {\n      dangling_braces.push(i);\n    } else if (string[i] === ')') {\n      dangling_braces.pop();\n    }\n    i++;\n  }\n  var start = 0;\n  var cleared_string = '';\n  dangling_braces.push(string.length);\n  for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n    var index = _dangling_braces[_i];\n    cleared_string += string.slice(start, index);\n    start = index + 1;\n  }\n  return cleared_string;\n}\nfunction populateTemplateWithDigits(template, position, digits) {\n  // Using `.split('')` to iterate through a string here\n  // to avoid requiring `Symbol.iterator` polyfill.\n  // `.split('')` is generally not safe for Unicode,\n  // but in this particular case for `digits` it is safe.\n  // for (const digit of digits)\n  for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n    var digit = _step2.value;\n    // If there is room for more digits in current `template`,\n    // then set the next digit in the `template`,\n    // and return the formatted digits so far.\n    // If more digits are entered than the current format could handle.\n    if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n      return;\n    }\n    position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n    template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n  }\n  return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _LRUCache = _interopRequireDefault(require(\"./LRUCache.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n// countries being used for the same doc with ~10 patterns for each country. Some pages will have\n// a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n// that use-case won't have a lot of benefit.\nvar RegExpCache = exports[\"default\"] = /*#__PURE__*/function () {\n  function RegExpCache(size) {\n    _classCallCheck(this, RegExpCache);\n    this.cache = new _LRUCache[\"default\"](size);\n  }\n  return _createClass(RegExpCache, [{\n    key: \"getPatternForRegExp\",\n    value: function getPatternForRegExp(pattern) {\n      var regExp = this.cache.get(pattern);\n      if (!regExp) {\n        regExp = new RegExp('^' + pattern);\n        this.cache.put(pattern, regExp);\n      }\n      return regExp;\n    }\n  }]);\n}();\n//# sourceMappingURL=RegExpCache.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parsePreCandidate;\nvar _util = require(\"./util.js\");\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/;\nfunction parsePreCandidate(candidate) {\n  // Check for extra numbers at the end.\n  // TODO: This is the place to start when trying to support extraction of multiple phone number\n  // from split notations (+41 79 123 45 67 / 68).\n  return (0, _util.trimAfterFirstMatch)(SECOND_NUMBER_START_PATTERN, candidate);\n}\n//# sourceMappingURL=parsePreCandidate.js.map","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.chooseFormatForNumber = chooseFormatForNumber;\nexports[\"default\"] = formatNumber;\nvar _matchesEntirely = _interopRequireDefault(require(\"./helpers/matchesEntirely.js\"));\nvar _formatNationalNumberUsingFormat = _interopRequireDefault(require(\"./helpers/formatNationalNumberUsingFormat.js\"));\nvar _metadata = _interopRequireWildcard(require(\"./metadata.js\"));\nvar _getIddPrefix = _interopRequireDefault(require(\"./helpers/getIddPrefix.js\"));\nvar _RFC = require(\"./helpers/RFC3966.js\");\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\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\nvar DEFAULT_OPTIONS = {\n  formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n    return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n  }\n};\n\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param  {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param  {string} format\r\n * @param  {object} [options]\r\n * @param  {object} metadata\r\n * @return {string}\r\n */\nfunction formatNumber(input, format, options, metadata) {\n  // Apply default options.\n  if (options) {\n    // Using ES6 \"rest spread\" syntax here didn't work with `babel`/`istanbul`\n    // for some weird reason: this line of code would cause the code coverage\n    // to show as not 100%. That's because `babel`/`istanbul`, for some weird reason,\n    // apparently doesn't know how to properly exclude Babel polyfills from code coverage.\n    //\n    // options = { ...DEFAULT_OPTIONS, ...options }\n    //\n    options = merge({}, DEFAULT_OPTIONS, options);\n  } else {\n    options = DEFAULT_OPTIONS;\n  }\n  metadata = new _metadata[\"default\"](metadata);\n\n  // Normally, the `input` object is supposed to be a `PhoneNumber` class instance.\n  // Also, according to the `PhoneNumber` class source code, `country` can't be \"001\".\n  // It means that normally `input.country` or `input.countryCallingCode` is supposed\n  // to be present because either of the two is always required to exist in a `PhoneNumber` instance.\n  // This means that realistically, it's gonna step into either the first `if`\n  // or the following `else if`, and normally it won't even reach the legacy-compatibility\n  // `else return input.phone || ''` part.\n  // So normally, it won't ever return an empty string here.\n  if (input.country && input.country !== '001') {\n    // Validate `input.country`.\n    if (!metadata.hasCountry(input.country)) {\n      throw new Error(\"Unknown country: \".concat(input.country));\n    }\n    metadata.selectNumberingPlan(input.country);\n  } else if (input.countryCallingCode) {\n    metadata.selectNumberingPlan(input.countryCallingCode);\n  } else return input.phone || '';\n  var countryCallingCode = metadata.countryCallingCode();\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\n  // This variable should have been declared inside `case`s\n  // but Babel has a bug and it says \"duplicate variable declaration\".\n  var number;\n  switch (format) {\n    case 'NATIONAL':\n      // Normally, the `input` object is supposed to be a `PhoneNumber` class instance,\n      // and a `PhoneNumber` class instance is always required to have a `nationalNumber`.\n      // This means that the `if (!nationalNumber)` below is just for legacy-compatibility\n      // and it normally can't really happen, so normally it won't ever return an empty string here.\n      if (!nationalNumber) {\n        return '';\n      }\n      number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n    case 'INTERNATIONAL':\n      // Legacy argument support.\n      // (`{ country: ..., phone: '' }`)\n      if (!nationalNumber) {\n        return \"+\".concat(countryCallingCode);\n      }\n      number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n      number = \"+\".concat(countryCallingCode, \" \").concat(number);\n      return addExtension(number, input.ext, metadata, options.formatExtension);\n    case 'E.164':\n      // `E.164` doesn't define \"phone number extensions\".\n      return \"+\".concat(countryCallingCode).concat(nationalNumber);\n    case 'RFC3966':\n      return (0, _RFC.formatRFC3966)({\n        number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n        ext: input.ext\n      });\n\n    // For reference, here's Google's IDD formatter:\n    // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n    // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n    // Who would even need to format phone numbers in IDD format anyway?\n    case 'IDD':\n      // If the required `fromCountry` parameter is not passed, it will return `undefined`.\n      if (!options.fromCountry) {\n        return;\n        // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n      }\n      var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n      // If the country of the phone number doesn't support IDD calling, it will return `undefined`.\n      if (!formattedNumber) {\n        return;\n      }\n      return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n    default:\n      throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n  }\n}\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n  var format = chooseFormatForNumber(metadata.formats(), number);\n  if (!format) {\n    return number;\n  }\n  return (0, _formatNationalNumberUsingFormat[\"default\"])(number, format, {\n    useInternationalFormat: formatAs === 'INTERNATIONAL',\n    withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n    carrierCode: carrierCode,\n    metadata: metadata\n  });\n}\nfunction chooseFormatForNumber(availableFormats, nationalNumber) {\n  // Using a `for ... of` loop here didn't work with `babel`/`istanbul`:\n  // for some weird reason, it showed code coverage less than 100%.\n  // That's because `babel`/`istanbul`, for some weird reason,\n  // apparently doesn't know how to properly exclude Babel polyfills from code coverage.\n  //\n  // for (const format of availableFormats) { ... }\n  //\n  return pickFirstMatchingElement(availableFormats, function (format) {\n    // Validate leading digits.\n    // The test case for \"else path\" could be found by searching for\n    // \"format.leadingDigitsPatterns().length === 0\".\n    if (format.leadingDigitsPatterns().length > 0) {\n      // The last leading_digits_pattern is used here, as it is the most detailed\n      var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1];\n      // If leading digits don't match then move on to the next phone number format\n      if (nationalNumber.search(lastLeadingDigitsPattern) !== 0) {\n        return false;\n      }\n    }\n    // Check that the national number matches the phone number format regular expression\n    return (0, _matchesEntirely[\"default\"])(nationalNumber, format.pattern());\n  });\n}\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n  return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n  var fromCountryCallingCode = (0, _metadata.getCountryCallingCode)(fromCountry, metadata.metadata);\n  // When calling within the same country calling code.\n  if (fromCountryCallingCode === countryCallingCode) {\n    var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata);\n    // For NANPA regions, return the national format for these regions\n    // but prefix it with the country calling code.\n    if (countryCallingCode === '1') {\n      return countryCallingCode + ' ' + formattedNumber;\n    }\n    // If regions share a country calling code, the country calling code need\n    // not be dialled. This also applies when dialling within a region, so this\n    // if clause covers both these cases. Technically this is the case for\n    // dialling from La Reunion to other overseas departments of France (French\n    // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n    // this edge case for now and for those cases return the version including\n    // country calling code. Details here:\n    // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n    //\n    return formattedNumber;\n  }\n  var iddPrefix = (0, _getIddPrefix[\"default\"])(fromCountry, undefined, metadata.metadata);\n  if (iddPrefix) {\n    return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n  }\n}\nfunction merge() {\n  var i = 1;\n  for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {\n    objects[_key] = arguments[_key];\n  }\n  while (i < objects.length) {\n    if (objects[i]) {\n      for (var key in objects[i]) {\n        objects[0][key] = objects[i][key];\n      }\n    }\n    i++;\n  }\n  return objects[0];\n}\nfunction pickFirstMatchingElement(elements, testFunction) {\n  var i = 0;\n  while (i < elements.length) {\n    if (testFunction(elements[i])) {\n      return elements[i];\n    }\n    i++;\n  }\n}\n//# sourceMappingURL=format.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getCountries;\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction getCountries(metadata) {\n  return new _metadata[\"default\"](metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isValidNumber;\nvar _metadata = _interopRequireDefault(require(\"./metadata.js\"));\nvar _matchesEntirely = _interopRequireDefault(require(\"./helpers/matchesEntirely.js\"));\nvar _getNumberType = _interopRequireDefault(require(\"./helpers/getNumberType.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\nfunction isValidNumber(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n  metadata = new _metadata[\"default\"](metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n\n  // By default, countries only have type regexps when it's required for\n  // distinguishing different countries having the same `countryCallingCode`.\n  if (metadata.hasTypes()) {\n    return (0, _getNumberType[\"default\"])(input, options, metadata.metadata) !== undefined;\n  }\n\n  // If there are no type regexps for this country in metadata then use\n  // `nationalNumberPattern` as a \"better than nothing\" replacement.\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n  return (0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = _default;\n// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nfunction _default(a, b) {\n  a = a.split('-');\n  b = b.split('-');\n  var pa = a[0].split('.');\n  var pb = b[0].split('.');\n  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  if (a[1] && b[1]) {\n    return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n  }\n  return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.endsWith = endsWith;\nexports.limit = limit;\nexports.startsWith = startsWith;\nexports.trimAfterFirstMatch = trimAfterFirstMatch;\n/** Returns a regular expression quantifier with an upper and lower limit. */\nfunction limit(lower, upper) {\n  if (lower < 0 || upper <= 0 || upper < lower) {\n    throw new TypeError();\n  }\n  return \"{\".concat(lower, \",\").concat(upper, \"}\");\n}\n\n/**\r\n * Trims away any characters after the first match of {@code pattern} in {@code candidate},\r\n * returning the trimmed version.\r\n */\nfunction trimAfterFirstMatch(regexp, string) {\n  var index = string.search(regexp);\n  if (index >= 0) {\n    return string.slice(0, index);\n  }\n  return string;\n}\nfunction startsWith(string, substring) {\n  return string.indexOf(substring) === 0;\n}\nfunction endsWith(string, substring) {\n  return string.indexOf(substring, string.length - substring.length) === string.length - substring.length;\n}\n//# sourceMappingURL=util.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getNumberType;\nexports.isNumberTypeEqualTo = isNumberTypeEqualTo;\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nvar _matchesEntirely = _interopRequireDefault(require(\"./matchesEntirely.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return 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)\nfunction getNumberType(input, options, metadata) {\n  // If assigning the `{}` default value is moved to the arguments above,\n  // code coverage would decrease for some weird reason.\n  options = options || {};\n\n  // When `parse()` returns an empty object — `{}` —\n  // that means that the phone number is malformed,\n  // so it can't possibly be valid.\n  if (!input.country && !input.countryCallingCode) {\n    return;\n  }\n  metadata = new _metadata[\"default\"](metadata);\n  metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n  var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n\n  // The following is copy-pasted from the original function:\n  // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n\n  // Is this national number even valid for this country\n  if (!(0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern())) {\n    return;\n  }\n\n  // Is it fixed line number\n  if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n    // Because duplicate regular expressions are removed\n    // to reduce metadata size, if \"mobile\" pattern is \"\"\n    // then it means it was removed due to being a duplicate of the fixed-line pattern.\n    //\n    if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n      return 'FIXED_LINE_OR_MOBILE';\n    }\n\n    // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n    // For example, for \"US\" country.\n    // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n    // that happened to be `undefined` for `MOBILE` in that case.\n    // Newer metadata (>= `1.0.18`) has another data structure that is\n    // not `undefined` for `MOBILE` in that case (it's just an empty array).\n    // So this `if` is just for backwards compatibility with old metadata.\n    if (!metadata.type('MOBILE')) {\n      return 'FIXED_LINE_OR_MOBILE';\n    }\n\n    // Check if the number happens to qualify as both fixed line and mobile.\n    // (no such country in the minimal metadata set)\n    /* istanbul ignore if */\n    if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n      return 'FIXED_LINE_OR_MOBILE';\n    }\n    return 'FIXED_LINE';\n  }\n  for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n    var type = _step.value;\n    if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n      return type;\n    }\n  }\n}\nfunction isNumberTypeEqualTo(nationalNumber, type, metadata) {\n  var typeDefinition = metadata.type(type);\n  if (!typeDefinition || !typeDefinition.pattern()) {\n    return false;\n  }\n\n  // Check if any possible number lengths are present;\n  // if so, we use them to avoid checking\n  // the validation pattern if they don't match.\n  // If they are absent, this means they match\n  // the general description, which we have\n  // already checked before a specific number type.\n  if (typeDefinition.possibleLengths() && typeDefinition.possibleLengths().indexOf(nationalNumber.length) < 0) {\n    return false;\n  }\n  return (0, _matchesEntirely[\"default\"])(nationalNumber, typeDefinition.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.formatRFC3966 = formatRFC3966;\nexports.parseRFC3966 = parseRFC3966;\nvar _isViablePhoneNumber = _interopRequireDefault(require(\"./isViablePhoneNumber.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param  {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\nfunction parseRFC3966(text) {\n  var number;\n  var ext;\n\n  // Replace \"tel:\" with \"tel=\" for parsing convenience.\n  text = text.replace(/^tel:/, 'tel=');\n  for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n    var part = _step.value;\n    var _part$split = part.split('='),\n      _part$split2 = _slicedToArray(_part$split, 2),\n      name = _part$split2[0],\n      value = _part$split2[1];\n    switch (name) {\n      case 'tel':\n        number = value;\n        break;\n      case 'ext':\n        ext = value;\n        break;\n      case 'phone-context':\n        // Only \"country contexts\" are supported.\n        // \"Domain contexts\" are ignored.\n        if (value[0] === '+') {\n          number = value + number;\n        }\n        break;\n    }\n  }\n\n  // If the phone number is not viable, then abort.\n  if (!(0, _isViablePhoneNumber[\"default\"])(number)) {\n    return {};\n  }\n  var result = {\n    number: number\n  };\n  if (ext) {\n    result.ext = ext;\n  }\n  return result;\n}\n\n/**\r\n * @param  {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\nfunction formatRFC3966(_ref) {\n  var number = _ref.number,\n    ext = _ref.ext;\n  if (!number) {\n    return '';\n  }\n  if (number[0] !== '+') {\n    throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n  }\n  return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isValidPreCandidate;\n// Matches strings that look like dates using \"/\" as a separator.\n// Examples: 3/10/2011, 31/10/96 or 08/31/95.\nvar SLASH_SEPARATED_DATES = /(?:(?:[0-3]?\\d\\/[01]?\\d)|(?:[01]?\\d\\/[0-3]?\\d))\\/(?:[12]\\d)?\\d{2}/;\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/;\nfunction isValidPreCandidate(candidate, offset, text) {\n  // Skip a match that is more likely to be a date.\n  if (SLASH_SEPARATED_DATES.test(candidate)) {\n    return false;\n  }\n\n  // Skip potential time-stamps.\n  if (TIME_STAMPS.test(candidate)) {\n    var followingText = text.slice(offset + candidate.length);\n    if (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) {\n      return false;\n    }\n  }\n  return true;\n}\n//# sourceMappingURL=isValidPreCandidate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isObject;\nvar objectConstructor = {}.constructor;\nfunction isObject(object) {\n  return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.canFormatCompleteNumber = canFormatCompleteNumber;\nexports[\"default\"] = formatCompleteNumber;\nvar _checkNumberLength = _interopRequireDefault(require(\"./helpers/checkNumberLength.js\"));\nvar _parseDigits = _interopRequireDefault(require(\"./helpers/parseDigits.js\"));\nvar _formatNationalNumberUsingFormat = _interopRequireDefault(require(\"./helpers/formatNationalNumberUsingFormat.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction formatCompleteNumber(state, format, _ref) {\n  var metadata = _ref.metadata,\n    shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n    getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n  var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n  if (matcher.test(state.nationalSignificantNumber)) {\n    return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n      metadata: metadata,\n      shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n      getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n    });\n  }\n}\nfunction canFormatCompleteNumber(nationalSignificantNumber, country, metadata) {\n  return (0, _checkNumberLength[\"default\"])(nationalSignificantNumber, country, metadata) === 'IS_POSSIBLE';\n}\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n  var metadata = _ref2.metadata,\n    shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n    getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n  // `format` has already been checked for `nationalPrefix` requirement.\n\n  var nationalSignificantNumber = state.nationalSignificantNumber,\n    international = state.international,\n    nationalPrefix = state.nationalPrefix,\n    carrierCode = state.carrierCode;\n\n  // Format the number with using `national_prefix_formatting_rule`.\n  // If the resulting formatted number is a valid formatted number, then return it.\n  //\n  // Google's AsYouType formatter is different in a way that it doesn't try\n  // to format using the \"national prefix formatting rule\", and instead it\n  // simply prepends a national prefix followed by a \" \" character.\n  // This code does that too, but as a fallback.\n  // The reason is that \"national prefix formatting rule\" may use parentheses,\n  // which wouldn't be included has it used the simpler Google's way.\n  //\n  if (shouldTryNationalPrefixFormattingRule(format)) {\n    var formattedNumber = formatNationalNumber(state, format, {\n      useNationalPrefixFormattingRule: true,\n      getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n      metadata: metadata\n    });\n    if (formattedNumber) {\n      return formattedNumber;\n    }\n  }\n\n  // Format the number without using `national_prefix_formatting_rule`.\n  return formatNationalNumber(state, format, {\n    useNationalPrefixFormattingRule: false,\n    getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n    metadata: metadata\n  });\n}\nfunction formatNationalNumber(state, format, _ref3) {\n  var metadata = _ref3.metadata,\n    useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n    getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n  var formattedNationalNumber = (0, _formatNationalNumberUsingFormat[\"default\"])(state.nationalSignificantNumber, format, {\n    carrierCode: state.carrierCode,\n    useInternationalFormat: state.international,\n    withNationalPrefix: useNationalPrefixFormattingRule,\n    metadata: metadata\n  });\n  if (!useNationalPrefixFormattingRule) {\n    if (state.nationalPrefix) {\n      // If a national prefix was extracted, then just prepend it,\n      // followed by a \" \" character.\n      formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n    } else if (state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n      formattedNationalNumber = state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix + ' ' + formattedNationalNumber;\n    }\n  }\n  if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n    return formattedNationalNumber;\n  }\n}\n\n// Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n  return (0, _parseDigits[\"default\"])(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isPossiblePhoneNumber;\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nvar _parsePhoneNumber_ = _interopRequireDefault(require(\"./parsePhoneNumber_.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction isPossiblePhoneNumber() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  options = _objectSpread(_objectSpread({}, options), {}, {\n    extract: false\n  });\n  var phoneNumber = (0, _parsePhoneNumber_[\"default\"])(text, options, metadata);\n  return phoneNumber && phoneNumber.isPossible() || false;\n}\n//# sourceMappingURL=isPossiblePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nvar _constants = require(\"./constants.js\");\nvar _createExtensionPattern = _interopRequireDefault(require(\"./helpers/extension/createExtensionPattern.js\"));\nvar _RegExpCache = _interopRequireDefault(require(\"./findNumbers/RegExpCache.js\"));\nvar _util = require(\"./findNumbers/util.js\");\nvar _utf = require(\"./findNumbers/utf-8.js\");\nvar _Leniency = _interopRequireDefault(require(\"./findNumbers/Leniency.js\"));\nvar _parsePreCandidate = _interopRequireDefault(require(\"./findNumbers/parsePreCandidate.js\"));\nvar _isValidPreCandidate = _interopRequireDefault(require(\"./findNumbers/isValidPreCandidate.js\"));\nvar _isValidCandidate = _interopRequireWildcard(require(\"./findNumbers/isValidCandidate.js\"));\nvar _metadata = require(\"./metadata.js\");\nvar _parsePhoneNumber = _interopRequireDefault(require(\"./parsePhoneNumber.js\"));\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); } /**\r\n * A port of Google's `PhoneNumberMatcher.java`.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java\r\n * Date: 08.03.2018.\r\n */\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar EXTN_PATTERNS_FOR_MATCHING = (0, _createExtensionPattern[\"default\"])('matching');\n\n/**\r\n * Patterns used to extract phone numbers from a larger phone-number-like pattern. These are\r\n * ordered according to specificity. For example, white-space is last since that is frequently\r\n * used in numbers, not just to separate two numbers. We have separate patterns since we don't\r\n * want to break up the phone-number-like text on more than one different kind of symbol at one\r\n * time, although symbols of the same type (e.g. space) can be safely grouped together.\r\n *\r\n * Note that if there is a match, we will always check any text found up to the first match as\r\n * well.\r\n */\nvar INNER_MATCHES = [\n// Breaks on the slash - e.g. \"651-234-2345/332-445-1234\"\n'/+(.*)',\n// Note that the bracket here is inside the capturing group, since we consider it part of the\n// phone number. Will match a pattern like \"(650) 223 3345 (754) 223 3321\".\n'(\\\\([^(]*)', // Breaks on a hyphen - e.g. \"12345 - 332-445-1234 is my number.\"\n// We require a space on either side of the hyphen for it to be considered a separator.\n\"(?:\".concat(_utf.pZ, \"-|-\").concat(_utf.pZ, \")\").concat(_utf.pZ, \"*(.+)\"), // Various types of wide hyphens. Note we have decided not to enforce a space here, since it's\n// possible that it's supposed to be used to break two numbers without spaces, and we haven't\n// seen many instances of it used within a number.\n\"[\\u2012-\\u2015\\uFF0D]\".concat(_utf.pZ, \"*(.+)\"), // Breaks on a full stop - e.g. \"12345. 332-445-1234 is my number.\"\n\"\\\\.+\".concat(_utf.pZ, \"*([^.]+)\"), // Breaks on space - e.g. \"3324451234 8002341234\"\n\"\".concat(_utf.pZ, \"+(\").concat(_utf.PZ, \"+)\")];\n\n// Limit on the number of leading (plus) characters.\nvar leadLimit = (0, _util.limit)(0, 2);\n\n// Limit on the number of consecutive punctuation characters.\nvar punctuationLimit = (0, _util.limit)(0, 4);\n\n/* The maximum number of digits allowed in a digit-separated block. As we allow all digits in a\r\n * single block, set high enough to accommodate the entire national number and the international\r\n * country code. */\nvar digitBlockLimit = _constants.MAX_LENGTH_FOR_NSN + _constants.MAX_LENGTH_COUNTRY_CODE;\n\n// Limit on the number of blocks separated by punctuation.\n// Uses digitBlockLimit since some formats use spaces to separate each digit.\nvar blockLimit = (0, _util.limit)(0, digitBlockLimit);\n\n/* A punctuation sequence allowing white space. */\nvar punctuation = \"[\".concat(_constants.VALID_PUNCTUATION, \"]\") + punctuationLimit;\n\n// A digits block without punctuation.\nvar digitSequence = _utf.pNd + (0, _util.limit)(1, digitBlockLimit);\n\n/**\r\n * Phone number pattern allowing optional punctuation.\r\n * The phone number pattern used by `find()`, similar to\r\n * VALID_PHONE_NUMBER, but with the following differences:\r\n * <ul>\r\n *   <li>All captures are limited in order to place an upper bound to the text matched by the\r\n *       pattern.\r\n * <ul>\r\n *   <li>Leading punctuation / plus signs are limited.\r\n *   <li>Consecutive occurrences of punctuation are limited.\r\n *   <li>Number of digits is limited.\r\n * </ul>\r\n *   <li>No whitespace is allowed at the start or end.\r\n *   <li>No alpha digits (vanity numbers such as 1-800-SIX-FLAGS) are currently supported.\r\n * </ul>\r\n */\nvar PATTERN = '(?:' + _isValidCandidate.LEAD_CLASS + punctuation + ')' + leadLimit + digitSequence + '(?:' + punctuation + digitSequence + ')' + blockLimit + '(?:' + EXTN_PATTERNS_FOR_MATCHING + ')?';\n\n// Regular expression of trailing characters that we want to remove.\n// We remove all characters that are not alpha or numerical characters.\n// The hash character is retained here, as it may signify\n// the previous block was an extension.\n//\n// // Don't know what does '&&' mean here.\n// const UNWANTED_END_CHAR_PATTERN = new RegExp(`[[\\\\P{N}&&\\\\P{L}]&&[^#]]+$`)\n//\nvar UNWANTED_END_CHAR_PATTERN = new RegExp(\"[^\".concat(_utf._pN).concat(_utf._pL, \"#]+$\"));\n\n// const NON_DIGITS_PATTERN = /(\\D+)/\n\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\n/**\r\n * A stateful class that finds and extracts telephone numbers from {@linkplain CharSequence text}.\r\n * Instances can be created using the {@linkplain PhoneNumberUtil#findNumbers factory methods} in\r\n * {@link PhoneNumberUtil}.\r\n *\r\n * <p>Vanity numbers (phone numbers using alphabetic digits such as <tt>1-800-SIX-FLAGS</tt> are\r\n * not found.\r\n *\r\n * <p>This class is not thread-safe.\r\n */\nvar PhoneNumberMatcher = exports[\"default\"] = /*#__PURE__*/function () {\n  /**\r\n   * @param {string} text — the character sequence that we will search, null for no text.\r\n   * @param {'POSSIBLE'|'VALID'|'STRICT_GROUPING'|'EXACT_GROUPING'} [options.leniency] — The leniency to use when evaluating candidate phone numbers. See `source/findNumbers/Leniency.js` for more details.\r\n   * @param {number} [options.maxTries] — The maximum number of invalid numbers to try before giving up on the text. This is to cover degenerate cases where the text has a lot of false positives in it. Must be >= 0.\r\n   */\n  function PhoneNumberMatcher() {\n    var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var metadata = arguments.length > 2 ? arguments[2] : undefined;\n    _classCallCheck(this, PhoneNumberMatcher);\n    options = {\n      v2: options.v2,\n      defaultCallingCode: options.defaultCallingCode,\n      defaultCountry: options.defaultCountry && (0, _metadata.isSupportedCountry)(options.defaultCountry, metadata) ? options.defaultCountry : undefined,\n      // Here it should've assigned a default value only if `options.leniency === undefined`.\n      leniency: options.leniency || (options.extended ? 'POSSIBLE' : 'VALID'),\n      // Here it should've assigned a default value only if `options.maxTries === undefined`.\n      maxTries: options.maxTries || MAX_SAFE_INTEGER\n    };\n\n    // Validate `leniency`.\n    // if (!options.leniency) {\n    // \tthrow new TypeError('`leniency` is required')\n    // }\n    if (!_Leniency[\"default\"][options.leniency]) {\n      throw new TypeError(\"Unknown leniency: \\\"\".concat(options.leniency, \"\\\"\"));\n    }\n    if (options.leniency !== 'POSSIBLE' && options.leniency !== 'VALID') {\n      throw new TypeError(\"Invalid `leniency`: \\\"\".concat(options.leniency, \"\\\". Supported values: \\\"POSSIBLE\\\", \\\"VALID\\\".\"));\n    }\n\n    // Validate `maxTries`.\n    if (options.maxTries < 0) {\n      throw new TypeError('`maxTries` must be `>= 0`');\n    }\n    this.text = text;\n    this.options = options;\n    this.metadata = metadata;\n\n    // The degree of phone number validation.\n    this.leniency = _Leniency[\"default\"][options.leniency];\n\n    /** The maximum number of retries after matching an invalid number. */\n    this.maxTries = options.maxTries;\n\n    // Compile regular expressions.\n    this.PATTERN = new RegExp(PATTERN, 'ig');\n    this.INNER_MATCHES = INNER_MATCHES.map(function (pattern) {\n      return new RegExp(pattern, 'g');\n    });\n\n    /** The iteration tristate. */\n    this.state = 'NOT_READY';\n\n    /** The next index to start searching at. Undefined in {@link State#DONE}. */\n    this.searchIndex = 0;\n\n    // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n    // countries being used for the same doc with ~10 patterns for each country. Some pages will have\n    // a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n    // that use-case won't have a lot of benefit.\n    this.regExpCache = new _RegExpCache[\"default\"](32);\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  return _createClass(PhoneNumberMatcher, [{\n    key: \"find\",\n    value: function find(index) {\n      // Reset the regular expression.\n      this.PATTERN.lastIndex = index;\n      var matches;\n      while (this.maxTries > 0 && (matches = this.PATTERN.exec(this.text)) !== null) {\n        var candidate = matches[0];\n        var offset = matches.index;\n        candidate = (0, _parsePreCandidate[\"default\"])(candidate);\n        if ((0, _isValidPreCandidate[\"default\"])(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          if (match) {\n            if (this.options.v2) {\n              return {\n                startsAt: match.startsAt,\n                endsAt: match.endsAt,\n                number: match.phoneNumber\n              };\n            } else {\n              var phoneNumber = match.phoneNumber;\n              var result = {\n                startsAt: match.startsAt,\n                endsAt: match.endsAt,\n                phone: phoneNumber.nationalNumber\n              };\n              if (phoneNumber.country) {\n                /* istanbul ignore if */\n                if (USE_NON_GEOGRAPHIC_COUNTRY_CODE && country === '001') {\n                  result.countryCallingCode = phoneNumber.countryCallingCode;\n                } else {\n                  result.country = phoneNumber.country;\n                }\n              } else {\n                result.countryCallingCode = phoneNumber.countryCallingCode;\n              }\n              if (phoneNumber.ext) {\n                result.ext = phoneNumber.ext;\n              }\n              return result;\n            }\n          }\n        }\n        this.maxTries--;\n      }\n    }\n\n    /**\r\n     * Attempts to extract a match from `substring`\r\n     * if the substring itself does not qualify as a match.\r\n     */\n  }, {\n    key: \"extractInnerMatch\",\n    value: function extractInnerMatch(substring, offset, text) {\n      for (var _iterator = _createForOfIteratorHelperLoose(this.INNER_MATCHES), _step; !(_step = _iterator()).done;) {\n        var innerMatchRegExp = _step.value;\n        // Reset regular expression.\n        innerMatchRegExp.lastIndex = 0;\n        var isFirstMatch = true;\n        var candidateMatch = void 0;\n        while (this.maxTries > 0 && (candidateMatch = innerMatchRegExp.exec(substring)) !== null) {\n          if (isFirstMatch) {\n            // We should handle any group before this one too.\n            var _candidate = (0, _util.trimAfterFirstMatch)(UNWANTED_END_CHAR_PATTERN, substring.slice(0, candidateMatch.index));\n            var _match = this.parseAndVerify(_candidate, offset, text);\n            if (_match) {\n              return _match;\n            }\n            this.maxTries--;\n            isFirstMatch = false;\n          }\n          var candidate = (0, _util.trimAfterFirstMatch)(UNWANTED_END_CHAR_PATTERN, candidateMatch[1]);\n\n          // Java code does `groupMatcher.start(1)` here,\n          // but there's no way in javascript to get a `candidate` start index,\n          // therefore resort to using this kind of an approximation.\n          // (`groupMatcher` is called `candidateInSubstringMatch` in this javascript port)\n          // https://stackoverflow.com/questions/15934353/get-index-of-each-capture-in-a-javascript-regex\n          var candidateIndexGuess = substring.indexOf(candidate, candidateMatch.index);\n          var match = this.parseAndVerify(candidate, offset + candidateIndexGuess, text);\n          if (match) {\n            return match;\n          }\n          this.maxTries--;\n        }\n      }\n    }\n\n    /**\r\n     * Parses a phone number from the `candidate` using `parse` and\r\n     * verifies it matches the requested `leniency`. If parsing and verification succeed,\r\n     * a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`.\r\n     *\r\n     * @param candidate  the candidate match\r\n     * @param offset  the offset of {@code candidate} within {@link #text}\r\n     * @return  the parsed and validated phone number match, or null\r\n     */\n  }, {\n    key: \"parseAndVerify\",\n    value: function parseAndVerify(candidate, offset, text) {\n      if (!(0, _isValidCandidate[\"default\"])(candidate, offset, text, this.options.leniency)) {\n        return;\n      }\n      var phoneNumber = (0, _parsePhoneNumber[\"default\"])(candidate, {\n        extended: true,\n        defaultCountry: this.options.defaultCountry,\n        defaultCallingCode: this.options.defaultCallingCode\n      }, this.metadata);\n      if (!phoneNumber) {\n        return;\n      }\n      if (!phoneNumber.isPossible()) {\n        return;\n      }\n      if (this.leniency(phoneNumber, {\n        candidate: candidate,\n        defaultCountry: this.options.defaultCountry,\n        metadata: this.metadata,\n        regExpCache: this.regExpCache\n      })) {\n        return {\n          startsAt: offset,\n          endsAt: offset + candidate.length,\n          phoneNumber: phoneNumber\n        };\n      }\n    }\n  }, {\n    key: \"hasNext\",\n    value: function hasNext() {\n      if (this.state === 'NOT_READY') {\n        this.lastMatch = this.find(this.searchIndex);\n        if (this.lastMatch) {\n          this.searchIndex = this.lastMatch.endsAt;\n          this.state = 'READY';\n        } else {\n          this.state = 'DONE';\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//# sourceMappingURL=PhoneNumberMatcher.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getPossibleCountriesForNumber;\nvar _metadata2 = _interopRequireDefault(require(\"../metadata.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param  {string} callingCode — Calling code.\r\n * @param  {string} nationalNumber — National (significant) number.\r\n * @param  {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\nfunction getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n  var _metadata = new _metadata2[\"default\"](metadata);\n  var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n  if (!possibleCountries) {\n    return [];\n  }\n  return possibleCountries.filter(function (country) {\n    return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n  });\n}\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n  var _metadata = new _metadata2[\"default\"](metadata);\n  _metadata.selectNumberingPlan(country);\n  if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n    return true;\n  }\n  return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = parsePhoneNumber;\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nvar _parsePhoneNumber_ = _interopRequireDefault(require(\"./parsePhoneNumber_.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction parsePhoneNumber() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  return (0, _parsePhoneNumber_[\"default\"])(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.WHITESPACE = exports.VALID_PUNCTUATION = exports.VALID_DIGITS = exports.PLUS_CHARS = exports.MIN_LENGTH_FOR_NSN = exports.MAX_LENGTH_FOR_NSN = exports.MAX_LENGTH_COUNTRY_CODE = void 0;\n// The minimum length of the national significant number.\nvar MIN_LENGTH_FOR_NSN = exports.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.\nvar MAX_LENGTH_FOR_NSN = exports.MAX_LENGTH_FOR_NSN = 17;\n\n// The maximum length of the country calling code.\nvar MAX_LENGTH_COUNTRY_CODE = exports.MAX_LENGTH_COUNTRY_CODE = 3;\n\n// Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\nvar VALID_DIGITS = exports.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.\";\nvar WHITESPACE = exports.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.\nvar VALID_PUNCTUATION = exports.VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nvar PLUS_CHARS = exports.PLUS_CHARS = \"+\\uFF0B\";\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign;\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nvar _matchesEntirely = _interopRequireDefault(require(\"./matchesEntirely.js\"));\nvar _extractNationalNumber = _interopRequireDefault(require(\"./extractNationalNumber.js\"));\nvar _checkNumberLength = _interopRequireDefault(require(\"./checkNumberLength.js\"));\nvar _getCountryCallingCode = _interopRequireDefault(require(\"../getCountryCallingCode.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param  {string} number — Phone number digits.\r\n * @param  {string} [country] — Exact country of the phone number.\r\n * @param  {string} [defaultCountry]\r\n * @param  {string} [defaultCallingCode]\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\nfunction extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, defaultCountry, defaultCallingCode, metadata) {\n  var countryCallingCode = country || defaultCountry ? (0, _getCountryCallingCode[\"default\"])(country || defaultCountry, metadata) : defaultCallingCode;\n  if (number.indexOf(countryCallingCode) === 0) {\n    metadata = new _metadata[\"default\"](metadata);\n    metadata.selectNumberingPlan(country || defaultCountry, countryCallingCode);\n    var possibleShorterNumber = number.slice(countryCallingCode.length);\n    var _extractNationalNumbe = (0, _extractNationalNumber[\"default\"])(possibleShorterNumber, country, metadata),\n      possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n    var _extractNationalNumbe2 = (0, _extractNationalNumber[\"default\"])(number, country, metadata),\n      nationalNumber = _extractNationalNumbe2.nationalNumber;\n\n    // If the number was not valid before but is valid now,\n    // or if it was too long before, we consider the number\n    // with the country calling code stripped to be a better result\n    // and keep that instead.\n    // For example, in Germany (+49), `49` is a valid area code,\n    // so if a number starts with `49`, it could be both a valid\n    // national German number or an international number without\n    // a leading `+`.\n    if (!(0, _matchesEntirely[\"default\"])(nationalNumber, metadata.nationalNumberPattern()) && (0, _matchesEntirely[\"default\"])(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || (0, _checkNumberLength[\"default\"])(nationalNumber, country, metadata) === 'TOO_LONG') {\n      return {\n        countryCallingCode: countryCallingCode,\n        number: possibleShorterNumber\n      };\n    }\n  }\n  return {\n    number: number\n  };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri;\nvar _extractPhoneContext = _interopRequireWildcard(require(\"./extractPhoneContext.js\"));\nvar _ParseError = _interopRequireDefault(require(\"../ParseError.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\n/**\r\n * @param  {string} numberToParse\r\n * @param  {string} nationalNumber\r\n * @return {}\r\n */\nfunction extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n  var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n  var phoneContext = (0, _extractPhoneContext[\"default\"])(numberToParse);\n  if (!(0, _extractPhoneContext.isPhoneContextValid)(phoneContext)) {\n    throw new _ParseError[\"default\"]('NOT_A_NUMBER');\n  }\n  var phoneNumberString;\n  if (phoneContext === null) {\n    // Extract a possible number from the string passed in.\n    // (this strips leading characters that could not be the start of a phone number)\n    phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n  } else {\n    phoneNumberString = '';\n\n    // If the phone context contains a phone number prefix, we need to capture\n    // it, whereas domains will be ignored.\n    if (phoneContext.charAt(0) === _extractPhoneContext.PLUS_SIGN) {\n      phoneNumberString += phoneContext;\n    }\n\n    // Now append everything between the \"tel:\" prefix and the phone-context.\n    // This should include the national number, an optional extension or\n    // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n    // missing, as we have seen in some of the phone number inputs.\n    // In that case, we append everything from the beginning.\n    var indexOfRfc3966Prefix = numberToParse.indexOf(_extractPhoneContext.RFC3966_PREFIX_);\n    var indexOfNationalNumber;\n    // RFC 3966 \"tel:\" prefix is preset at this stage because\n    // `isPhoneContextValid()` requires it to be present.\n    /* istanbul ignore else */\n    if (indexOfRfc3966Prefix >= 0) {\n      indexOfNationalNumber = indexOfRfc3966Prefix + _extractPhoneContext.RFC3966_PREFIX_.length;\n    } else {\n      indexOfNationalNumber = 0;\n    }\n    var indexOfPhoneContext = numberToParse.indexOf(_extractPhoneContext.RFC3966_PHONE_CONTEXT_);\n    phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n  }\n\n  // Delete the isdn-subaddress and everything after it if it is present.\n  // Note extension won't appear at the same time with isdn-subaddress\n  // according to paragraph 5.3 of the RFC3966 spec.\n  var indexOfIsdn = phoneNumberString.indexOf(_extractPhoneContext.RFC3966_ISDN_SUBADDRESS_);\n  if (indexOfIsdn > 0) {\n    phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n  }\n  // If both phone context and isdn-subaddress are absent but other\n  // parameters are present, the parameters are left in nationalNumber.\n  // This is because we are concerned about deleting content from a potential\n  // number string when there is no strong evidence that the number is\n  // actually written in RFC3966.\n\n  if (phoneNumberString !== '') {\n    return phoneNumberString;\n  }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = searchPhoneNumbersInText;\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"./PhoneNumberMatcher.js\"));\nvar _normalizeArguments2 = _interopRequireDefault(require(\"./normalizeArguments.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction searchPhoneNumbersInText() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  var matcher = new _PhoneNumberMatcher[\"default\"](text, _objectSpread(_objectSpread({}, options), {}, {\n    v2: true\n  }), metadata);\n  return _defineProperty({}, Symbol.iterator, function () {\n    return {\n      next: function next() {\n        if (matcher.hasNext()) {\n          return {\n            done: false,\n            value: matcher.next()\n          };\n        }\n        return {\n          done: true\n        };\n      }\n    };\n  });\n}\n//# sourceMappingURL=searchPhoneNumbersInText.js.map","'use strict'\r\n\r\nvar parsePhoneNumberFromString = require('../build/parsePhoneNumber.js').default\r\n\r\n// ES5 `require()` \"default\" \"interoperability\" hack.\r\n// https://github.com/babel/babel/issues/2212#issuecomment-131827986\r\n// An alternative approach:\r\n// https://www.npmjs.com/package/babel-plugin-add-module-exports\r\nexports = module.exports = parsePhoneNumberFromString\r\nexports['default'] = parsePhoneNumberFromString\r\n\r\nexports.PhoneNumber = require('../build/PhoneNumber.js').default\r\nexports.ParseError = require('../build/ParseError.js').default\r\nvar parsePhoneNumberWithError = require('../build/parsePhoneNumberWithError.js').default\r\n// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.\r\nexports.parsePhoneNumberWithError = parsePhoneNumberWithError\r\nexports.parsePhoneNumber = parsePhoneNumberWithError\r\n\r\n// `parsePhoneNumberFromString()` named export is now considered legacy:\r\n// it has been promoted to a default export due to being too verbose.\r\nexports.parsePhoneNumberFromString = parsePhoneNumberFromString\r\n\r\nexports.isValidPhoneNumber = require('../build/isValidPhoneNumber.js').default\r\nexports.isPossiblePhoneNumber = require('../build/isPossiblePhoneNumber.js').default\r\nexports.validatePhoneNumberLength = require('../build/validatePhoneNumberLength.js').default\r\n\r\nexports.findNumbers = require('../build/legacy/findNumbers.js').default\r\nexports.searchNumbers = require('../build/legacy/searchNumbers.js').default\r\n\r\nexports.findPhoneNumbersInText = require('../build/findPhoneNumbersInText.js').default\r\nexports.searchPhoneNumbersInText = require('../build/searchPhoneNumbersInText.js').default\r\nexports.PhoneNumberMatcher = require('../build/PhoneNumberMatcher.js').default\r\n\r\nexports.AsYouType = require('../build/AsYouType.js').default\r\n\r\nexports.Metadata = require('../build/metadata.js').default\r\nexports.isSupportedCountry = require('../build/metadata.js').isSupportedCountry\r\nexports.getCountries = require('../build/getCountries.js').default\r\nexports.getCountryCallingCode = require('../build/metadata.js').getCountryCallingCode\r\nexports.getExtPrefix = require('../build/metadata.js').getExtPrefix\r\n\r\nexports.getExampleNumber = require('../build/getExampleNumber.js').default\r\n\r\nexports.formatIncompletePhoneNumber = require('../build/formatIncompletePhoneNumber.js').default\r\n\r\nexports.parseIncompletePhoneNumber = require('../build/parseIncompletePhoneNumber.js').default\r\nexports.parsePhoneNumberCharacter = require('../build/parseIncompletePhoneNumber.js').parsePhoneNumberCharacter\r\nexports.parseDigits = require('../build/helpers/parseDigits.js').default\r\nexports.DIGIT_PLACEHOLDER = require('../build/AsYouTypeFormatter.js').DIGIT_PLACEHOLDER\r\n\r\nexports.parseRFC3966 = require('../build/helpers/RFC3966.js').parseRFC3966\r\nexports.formatRFC3966 = require('../build/helpers/RFC3966.js').formatRFC3966\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = matchPhoneNumberStringAgainstPhoneNumber;\nvar _parsePhoneNumber = _interopRequireDefault(require(\"../parsePhoneNumber.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Matches a phone number object against a phone number string.\r\n * @param  {string} phoneNumberString\r\n * @param  {PhoneNumber} phoneNumber\r\n * @param  {object} metadata — Metadata JSON\r\n * @return {'INVALID_NUMBER'|'NO_MATCH'|'SHORT_NSN_MATCH'|'NSN_MATCH'|'EXACT_MATCH'}\r\n */\nfunction matchPhoneNumberStringAgainstPhoneNumber(phoneNumberString, phoneNumber, metadata) {\n  // Parse `phoneNumberString`.\n  var phoneNumberStringContainsCallingCode = true;\n  var parsedPhoneNumber = (0, _parsePhoneNumber[\"default\"])(phoneNumberString, metadata);\n  if (!parsedPhoneNumber) {\n    // If `phoneNumberString` didn't contain a country calling code\n    // then substitute it with the `phoneNumber`'s country calling code.\n    phoneNumberStringContainsCallingCode = false;\n    parsedPhoneNumber = (0, _parsePhoneNumber[\"default\"])(phoneNumberString, {\n      defaultCallingCode: phoneNumber.countryCallingCode\n    }, metadata);\n  }\n  if (!parsedPhoneNumber) {\n    return 'INVALID_NUMBER';\n  }\n\n  // Check that the extensions match.\n  if (phoneNumber.ext) {\n    if (parsedPhoneNumber.ext !== phoneNumber.ext) {\n      return 'NO_MATCH';\n    }\n  } else {\n    if (parsedPhoneNumber.ext) {\n      return 'NO_MATCH';\n    }\n  }\n\n  // Check that country calling codes match.\n  if (phoneNumberStringContainsCallingCode) {\n    if (phoneNumber.countryCallingCode !== parsedPhoneNumber.countryCallingCode) {\n      return 'NO_MATCH';\n    }\n  }\n\n  // Check if the whole numbers match.\n  if (phoneNumber.number === parsedPhoneNumber.number) {\n    if (phoneNumberStringContainsCallingCode) {\n      return 'EXACT_MATCH';\n    } else {\n      return 'NSN_MATCH';\n    }\n  }\n\n  // Check if one national number is a \"suffix\" of the other.\n  if (phoneNumber.nationalNumber.indexOf(parsedPhoneNumber.nationalNumber) === 0 || parsedPhoneNumber.nationalNumber.indexOf(phoneNumber.nationalNumber) === 0) {\n    // \"A SHORT_NSN_MATCH occurs if there is a difference because of the\n    //  presence or absence of an 'Italian leading zero', the presence or\n    //  absence of an extension, or one NSN being a shorter variant of the\n    //  other.\"\n    return 'SHORT_NSN_MATCH';\n  }\n  return 'NO_MATCH';\n}\n//# sourceMappingURL=matchPhoneNumberStringAgainstPhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.VALID_PHONE_NUMBER_WITH_EXTENSION = exports.VALID_PHONE_NUMBER = void 0;\nexports[\"default\"] = isViablePhoneNumber;\nexports.isViablePhoneNumberStart = isViablePhoneNumberStart;\nvar _constants = require(\"../constants.js\");\nvar _createExtensionPattern = _interopRequireDefault(require(\"./extension/createExtensionPattern.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n//  Regular expression of viable phone numbers. This is location independent.\n//  Checks we have at least three leading digits, and only valid punctuation,\n//  alpha characters and digits in the phone number. Does not include extension\n//  data. The symbol 'x' is allowed here as valid punctuation since it is often\n//  used as a placeholder for carrier codes, for example in Brazilian phone\n//  numbers. We also allow multiple '+' characters at the start.\n//\n//  Corresponds to the following:\n//  [digits]{minLengthNsn}|\n//  plus_sign*\n//  (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n//  The first reg-ex is to allow short numbers (two digits long) to be parsed if\n//  they are entered as \"15\" etc, but only if there is no punctuation in them.\n//  The second expression restricts the number of digits to three or more, but\n//  then allows them to be in international form, and to have alpha-characters\n//  and punctuation. We split up the two reg-exes here and combine them when\n//  creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n//  with ^ and append $ to each branch.\n//\n//  \"Note VALID_PUNCTUATION starts with a -,\n//   so must be the first in the range\" (c) Google devs.\n//  (wtf did they mean by saying that; probably nothing)\n//\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + _constants.VALID_DIGITS + ']{' + _constants.MIN_LENGTH_FOR_NSN + '}';\n//\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\nvar VALID_PHONE_NUMBER = exports.VALID_PHONE_NUMBER = '[' + _constants.PLUS_CHARS + ']{0,1}' + '(?:' + '[' + _constants.VALID_PUNCTUATION + ']*' + '[' + _constants.VALID_DIGITS + ']' + '){3,}' + '[' + _constants.VALID_PUNCTUATION + _constants.VALID_DIGITS + ']*';\n\n// This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + _constants.PLUS_CHARS + ']{0,1}' + '(?:' + '[' + _constants.VALID_PUNCTUATION + ']*' + '[' + _constants.VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nvar VALID_PHONE_NUMBER_WITH_EXTENSION = exports.VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER +\n// Phone number extensions\n'(?:' + (0, _createExtensionPattern[\"default\"])() + ')?';\n\n// The combined regular expression for valid phone numbers:\n//\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp(\n// Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' +\n// Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i');\n\n// Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\nfunction isViablePhoneNumber(number) {\n  return number.length >= _constants.MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}\n\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\nfunction isViablePhoneNumberStart(number) {\n  return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = findNumbers;\nvar _PhoneNumberMatcher = _interopRequireDefault(require(\"../PhoneNumberMatcher.js\"));\nvar _normalizeArguments2 = _interopRequireDefault(require(\"../normalizeArguments.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction findNumbers() {\n  var _normalizeArguments = (0, _normalizeArguments2[\"default\"])(arguments),\n    text = _normalizeArguments.text,\n    options = _normalizeArguments.options,\n    metadata = _normalizeArguments.metadata;\n  var matcher = new _PhoneNumberMatcher[\"default\"](text, options, metadata);\n  var results = [];\n  while (matcher.hasNext()) {\n    results.push(matcher.next());\n  }\n  return results;\n}\n//# sourceMappingURL=findNumbers.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = mergeArrays;\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/**\r\n * Merges two arrays.\r\n * @param  {*} a\r\n * @param  {*} b\r\n * @return {*}\r\n */\nfunction mergeArrays(a, b) {\n  var merged = a.slice();\n  for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n    var element = _step.value;\n    if (a.indexOf(element) < 0) {\n      merged.push(element);\n    }\n  }\n  return merged.sort(function (a, b) {\n    return a - b;\n  });\n\n  // ES6 version, requires Set polyfill.\n  // let merged = new Set(a)\n  // for (const element of b) {\n  // \tmerged.add(i)\n  // }\n  // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = extractExtension;\nvar _createExtensionPattern = _interopRequireDefault(require(\"./createExtensionPattern.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n// Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\nvar EXTN_PATTERN = new RegExp('(?:' + (0, _createExtensionPattern[\"default\"])() + ')$', 'i');\n\n// Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\nfunction extractExtension(number) {\n  var start = number.search(EXTN_PATTERN);\n  if (start < 0) {\n    return {};\n  }\n  // If we find a potential extension, and the number preceding this is a viable\n  // number, we assume it is an extension.\n  var numberWithoutExtension = number.slice(0, start);\n  var matches = number.match(EXTN_PATTERN);\n  var i = 1;\n  while (i < matches.length) {\n    if (matches[i]) {\n      return {\n        number: numberWithoutExtension,\n        ext: matches[i]\n      };\n    }\n    i++;\n  }\n}\n//# sourceMappingURL=extractExtension.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = extractCountryCallingCode;\nvar _stripIddPrefix = _interopRequireDefault(require(\"./stripIddPrefix.js\"));\nvar _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign = _interopRequireDefault(require(\"./extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js\"));\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nvar _constants = require(\"../constants.js\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param  {string} number — Phone number digits (possibly with a `+`).\r\n * @param  {string} [country] — Country.\r\n * @param  {string} [defaultCountry] — Default country.\r\n * @param  {string} [defaultCallingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param  {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', null, 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', null, 'RU', null, metadata)\r\n */\nfunction extractCountryCallingCode(number, country, defaultCountry, defaultCallingCode, metadata) {\n  if (!number) {\n    return {};\n  }\n  var isNumberWithIddPrefix;\n\n  // If this is not an international phone number,\n  // then either extract an \"IDD\" prefix, or extract a\n  // country calling code from a number by autocorrecting it\n  // by prepending a leading `+` in cases when it starts\n  // with the country calling code.\n  // https://wikitravel.org/en/International_dialling_prefix\n  // https://github.com/catamphetamine/libphonenumber-js/issues/376\n  if (number[0] !== '+') {\n    // Convert an \"out-of-country\" dialing phone number\n    // to a proper international phone number.\n    var numberWithoutIDD = (0, _stripIddPrefix[\"default\"])(number, country || defaultCountry, defaultCallingCode, metadata);\n    // If an IDD prefix was stripped then\n    // convert the number to international one\n    // for subsequent parsing.\n    if (numberWithoutIDD && numberWithoutIDD !== number) {\n      isNumberWithIddPrefix = true;\n      number = '+' + numberWithoutIDD;\n    } else {\n      // Check to see if the number starts with the country calling code\n      // for the default country. If so, we remove the country calling code,\n      // and do some checks on the validity of the number before and after.\n      // https://github.com/catamphetamine/libphonenumber-js/issues/376\n      if (country || defaultCountry || defaultCallingCode) {\n        var _extractCountryCallin = (0, _extractCountryCallingCodeFromInternationalNumberWithoutPlusSign[\"default\"])(number, country, defaultCountry, defaultCallingCode, metadata),\n          countryCallingCode = _extractCountryCallin.countryCallingCode,\n          shorterNumber = _extractCountryCallin.number;\n        if (countryCallingCode) {\n          return {\n            countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n            countryCallingCode: countryCallingCode,\n            number: shorterNumber\n          };\n        }\n      }\n      return {\n        // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n        // countryCallingCodeSource: 'UNSPECIFIED',\n        number: number\n      };\n    }\n  }\n\n  // `number` can only be international at this point.\n\n  // Fast abortion: country codes do not begin with a '0'\n  if (number[1] === '0') {\n    return {};\n  }\n  metadata = new _metadata[\"default\"](metadata);\n\n  // The thing with country phone codes\n  // is that they are orthogonal to each other\n  // i.e. there's no such country phone code A\n  // for which country phone code B exists\n  // where B starts with A.\n  // Therefore, while scanning digits,\n  // if a valid country code is found,\n  // that means that it is the country code.\n  //\n  var i = 2;\n  while (i - 1 <= _constants.MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n    var _countryCallingCode = number.slice(1, i);\n    if (metadata.hasCallingCode(_countryCallingCode)) {\n      metadata.selectNumberingPlan(_countryCallingCode);\n      return {\n        countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n        countryCallingCode: _countryCallingCode,\n        number: number.slice(i)\n      };\n    }\n    i++;\n  }\n  return {};\n}\n\n// The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n//  // Default value returned if this is not set, because the phone number was\n//  // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n//  // return false if this is the case.\n//  UNSPECIFIED = 0;\n//\n//  // The country_code is derived based on a phone number with a leading \"+\",\n//  // e.g. the French number \"+33 1 42 68 53 00\".\n//  FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n//  // The country_code is derived based on a phone number with a leading IDD,\n//  // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n//  FROM_NUMBER_WITH_IDD = 5;\n//\n//  // The country_code is derived based on a phone number without a leading\n//  // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n//  // supplied as France.\n//  FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n//  // The country_code is derived NOT based on the phone number itself, but\n//  // from the defaultCountry parameter provided in the parsing function by the\n//  // clients. This happens mostly for numbers written in the national format\n//  // (without country code). For example, this would be set when parsing the\n//  // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n//  // France.\n//  FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = normalizeArguments;\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n// Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\nfunction normalizeArguments(args) {\n  var _Array$prototype$slic = Array.prototype.slice.call(args),\n    _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n    arg_1 = _Array$prototype$slic2[0],\n    arg_2 = _Array$prototype$slic2[1],\n    arg_3 = _Array$prototype$slic2[2],\n    arg_4 = _Array$prototype$slic2[3];\n  var text;\n  var options;\n  var metadata;\n\n  // If the phone number is passed as a string.\n  // `parsePhoneNumber('88005553535', ...)`.\n  if (typeof arg_1 === 'string') {\n    text = arg_1;\n  } else throw new TypeError('A text for parsing must be a string.');\n\n  // If \"default country\" argument is being passed then move it to `options`.\n  // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n  if (!arg_2 || typeof arg_2 === 'string') {\n    if (arg_4) {\n      options = arg_3;\n      metadata = arg_4;\n    } else {\n      options = undefined;\n      metadata = arg_3;\n    }\n    if (arg_2) {\n      options = _objectSpread({\n        defaultCountry: arg_2\n      }, options);\n    }\n  }\n  // `defaultCountry` is not passed.\n  // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n  else if ((0, _isObject[\"default\"])(arg_2)) {\n    if (arg_3) {\n      options = arg_2;\n      metadata = arg_3;\n    } else {\n      metadata = arg_2;\n    }\n  } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n  return {\n    text: text,\n    options: options,\n    metadata: metadata\n  };\n}\n//# sourceMappingURL=normalizeArguments.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function get() {\n    return _metadata.getCountryCallingCode;\n  }\n});\nvar _metadata = require(\"./metadata.js\");\n//# sourceMappingURL=getCountryCallingCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"DIGIT_PLACEHOLDER\", {\n  enumerable: true,\n  get: function get() {\n    return _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER;\n  }\n});\nexports[\"default\"] = void 0;\nvar _AsYouTypeFormatterUtil = require(\"./AsYouTypeFormatter.util.js\");\nvar _AsYouTypeFormatterComplete = _interopRequireWildcard(require(\"./AsYouTypeFormatter.complete.js\"));\nvar _AsYouTypeFormatterPatternMatcher = _interopRequireDefault(require(\"./AsYouTypeFormatter.PatternMatcher.js\"));\nvar _parseDigits = _interopRequireDefault(require(\"./helpers/parseDigits.js\"));\nvar _formatNationalNumberUsingFormat = require(\"./helpers/formatNationalNumberUsingFormat.js\");\nvar _constants = require(\"./constants.js\");\nvar _applyInternationalSeparatorStyle = _interopRequireDefault(require(\"./helpers/applyInternationalSeparatorStyle.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, \"default\": e }; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) \"default\" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// Used in phone number format template creation.\n// Could be any digit, I guess.\nvar DUMMY_DIGIT = '9';\n// I don't know why is it exactly `15`\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15;\n// Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\nvar LONGEST_DUMMY_PHONE_NUMBER = (0, _AsYouTypeFormatterUtil.repeat)(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH);\n\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/;\n\n// Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true;\n\n// A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n  return /\\[([^\\[\\]])*\\]/g;\n};\n\n// Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n  return /\\d(?=[^,}][^,}])/g;\n};\n\n// A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n//    \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n//    \"leading_digits_patterns\": [\"91\"],\n//    \"national_prefix_formatting_rule\": \"0$1\",\n//    \"format\": \"$2 15-$3-$4\",\n//    \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + _constants.VALID_PUNCTUATION + ']*' +\n// Google developers say:\n// \"We require that the first matching group is present in the\n//  output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + _constants.VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + _constants.VALID_PUNCTUATION + ']*)*' + '$');\n\n// This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\nvar MIN_LEADING_DIGITS_LENGTH = 3;\nvar AsYouTypeFormatter = exports[\"default\"] = /*#__PURE__*/function () {\n  function AsYouTypeFormatter(_ref) {\n    var state = _ref.state,\n      metadata = _ref.metadata;\n    _classCallCheck(this, AsYouTypeFormatter);\n    this.metadata = metadata;\n    this.resetFormat();\n  }\n  return _createClass(AsYouTypeFormatter, [{\n    key: \"resetFormat\",\n    value: function resetFormat() {\n      this.chosenFormat = undefined;\n      this.template = undefined;\n      this.nationalNumberTemplate = undefined;\n      this.populatedNationalNumberTemplate = undefined;\n      this.populatedNationalNumberTemplatePosition = -1;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset(numberingPlan, state) {\n      this.resetFormat();\n      if (numberingPlan) {\n        this.isNANP = numberingPlan.callingCode() === '1';\n        this.matchingFormats = numberingPlan.formats();\n        if (state.nationalSignificantNumber) {\n          this.narrowDownMatchingFormats(state);\n        }\n      } else {\n        this.isNANP = undefined;\n        this.matchingFormats = [];\n      }\n    }\n\n    /**\r\n     * Formats an updated phone number.\r\n     * @param  {string} nextDigits — Additional phone number digits.\r\n     * @param  {object} state — `AsYouType` state.\r\n     * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n     */\n  }, {\n    key: \"format\",\n    value: function format(nextDigits, state) {\n      var _this = this;\n      // See if the phone number digits can be formatted as a complete phone number.\n      // If not, use the results from `formatNationalNumberWithNextDigits()`,\n      // which formats based on the chosen formatting pattern.\n      //\n      // Attempting to format complete phone number first is how it's done\n      // in Google's `libphonenumber`, so this library just follows it.\n      // Google's `libphonenumber` code doesn't explain in detail why does it\n      // attempt to format digits as a complete phone number\n      // instead of just going with a previoulsy (or newly) chosen `format`:\n      //\n      // \"Checks to see if there is an exact pattern match for these digits.\n      //  If so, we should use this instead of any other formatting template\n      //  whose leadingDigitsPattern also matches the input.\"\n      //\n      if ((0, _AsYouTypeFormatterComplete.canFormatCompleteNumber)(state.nationalSignificantNumber, state.country, this.metadata)) {\n        for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n          var _format = _step.value;\n          var formattedCompleteNumber = (0, _AsYouTypeFormatterComplete[\"default\"])(state, _format, {\n            metadata: this.metadata,\n            shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n              return _this.shouldTryNationalPrefixFormattingRule(format, {\n                international: state.international,\n                nationalPrefix: state.nationalPrefix\n              });\n            },\n            getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n              return _this.getSeparatorAfterNationalPrefix(format);\n            }\n          });\n          if (formattedCompleteNumber) {\n            this.resetFormat();\n            this.chosenFormat = _format;\n            this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER), state);\n            this.populatedNationalNumberTemplate = formattedCompleteNumber;\n            // With a new formatting template, the matched position\n            // using the old template needs to be reset.\n            this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER);\n            return formattedCompleteNumber;\n          }\n        }\n      }\n      // Format the digits as a partial (incomplete) phone number\n      // using the previously chosen formatting pattern (or a newly chosen one).\n      return this.formatNationalNumberWithNextDigits(nextDigits, state);\n    }\n\n    // Formats the next phone number digits.\n  }, {\n    key: \"formatNationalNumberWithNextDigits\",\n    value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n      var previouslyChosenFormat = this.chosenFormat;\n\n      // Choose a format from the list of matching ones.\n      var newlyChosenFormat = this.chooseFormat(state);\n      if (newlyChosenFormat) {\n        if (newlyChosenFormat === previouslyChosenFormat) {\n          // If it can format the next (current) digits\n          // using the previously chosen phone number format\n          // then return the updated formatted number.\n          return this.formatNextNationalNumberDigits(nextDigits);\n        } else {\n          // If a more appropriate phone number format\n          // has been chosen for these \"leading digits\",\n          // then re-format the national phone number part\n          // using the newly selected format.\n          return this.formatNextNationalNumberDigits(state.getNationalDigits());\n        }\n      }\n    }\n  }, {\n    key: \"narrowDownMatchingFormats\",\n    value: function narrowDownMatchingFormats(_ref2) {\n      var _this2 = this;\n      var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n        nationalPrefix = _ref2.nationalPrefix,\n        international = _ref2.international;\n      var leadingDigits = nationalSignificantNumber;\n\n      // \"leading digits\" pattern list starts with a\n      // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n      // So, after a user inputs 3 digits of a national (significant) phone number\n      // this national (significant) number can already be formatted.\n      // The next \"leading digits\" pattern is for 4 leading digits max,\n      // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n\n      // This implementation is different from Google's\n      // in that it searches for a fitting format\n      // even if the user has entered less than\n      // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n      // Because some leading digit patterns already match for a single first digit.\n      var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n      if (leadingDigitsPatternIndex < 0) {\n        leadingDigitsPatternIndex = 0;\n      }\n      this.matchingFormats = this.matchingFormats.filter(function (format) {\n        return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n      });\n\n      // If there was a phone number format chosen\n      // and it no longer holds given the new leading digits then reset it.\n      // The test for this `if` condition is marked as:\n      // \"Reset a chosen format when it no longer holds given the new leading digits\".\n      // To construct a valid test case for this one can find a country\n      // in `PhoneNumberMetadata.xml` yielding one format for 3 `<leadingDigits>`\n      // and yielding another format for 4 `<leadingDigits>` (Australia in this case).\n      if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n        this.resetFormat();\n      }\n    }\n  }, {\n    key: \"formatSuits\",\n    value: function formatSuits(format, international, nationalPrefix) {\n      // When a prefix before a national (significant) number is\n      // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n      // In more complex cases, a prefix before national (significant) number\n      // could include a national prefix as well as some \"capturing groups\",\n      // and in that case there's no info whether a national prefix has been parsed.\n      // If national prefix is not used when formatting a phone number\n      // using this format, but a national prefix has been entered by the user,\n      // and was extracted, then discard such phone number format.\n      // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n      // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n      if (nationalPrefix && !format.usesNationalPrefix() &&\n      // !format.domesticCarrierCodeFormattingRule() &&\n      !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n        return false;\n      }\n      // If national prefix is mandatory for this phone number format\n      // and there're no guarantees that a national prefix is present in user input\n      // then discard this phone number format as not suitable.\n      // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n      // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n      if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n        return false;\n      }\n      return true;\n    }\n  }, {\n    key: \"formatMatches\",\n    value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n      var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length;\n\n      // If this format is not restricted to a certain\n      // leading digits pattern then it fits.\n      // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n      if (leadingDigitsPatternsCount === 0) {\n        return true;\n      }\n\n      // Start narrowing down the list of possible formats based on the leading digits.\n      // (only previously matched formats take part in the narrowing down process)\n\n      // `leading_digits_patterns` start with 3 digits min\n      // and then go up from there one digit at a time.\n      leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n      var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex];\n\n      // Google imposes a requirement on the leading digits\n      // to be minimum 3 digits long in order to be eligible\n      // for checking those with a leading digits pattern.\n      //\n      // Since `leading_digits_patterns` start with 3 digits min,\n      // Google's original `libphonenumber` library only starts\n      // excluding any non-matching formats only when the\n      // national number entered so far is at least 3 digits long,\n      // otherwise format matching would give false negatives.\n      //\n      // For example, when the digits entered so far are `2`\n      // and the leading digits pattern is `21` –\n      // it's quite obvious in this case that the format could be the one\n      // but due to the absence of further digits it would give false negative.\n      //\n      // Also, `leading_digits_patterns` doesn't always correspond to a single\n      // digits count. For example, `60|8` pattern would already match `8`\n      // but the `60` part would require having at least two leading digits,\n      // so the whole pattern would require inputting two digits first in order to\n      // decide on whether it matches the input, even when the input is \"80\".\n      //\n      // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n      // even when there's only 1 or 2 digits of the national (significant) number.\n      // To do that, it uses a non-strict pattern matcher written specifically for that.\n      //\n      if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n        // Before leading digits < 3 matching was implemented:\n        // return true\n        //\n        // After leading digits < 3 matching was implemented:\n        try {\n          return new _AsYouTypeFormatterPatternMatcher[\"default\"](leadingDigitsPattern).match(leadingDigits, {\n            allowOverflow: true\n          }) !== undefined;\n        } catch (error) /* istanbul ignore next */{\n          // There's a slight possibility that there could be some undiscovered bug\n          // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n          // feature is not \"essential\" for operation, it can fall back to the old way\n          // in case of any issues rather than halting the application's execution.\n          console.error(error);\n          return true;\n        }\n      }\n\n      // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n      // available then use the usual regular expression matching.\n      //\n      // The whole pattern is wrapped in round brackets (`()`) because\n      // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n      //\n      return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n    }\n  }, {\n    key: \"getFormatFormat\",\n    value: function getFormatFormat(format, international) {\n      return international ? format.internationalFormat() : format.format();\n    }\n  }, {\n    key: \"chooseFormat\",\n    value: function chooseFormat(state) {\n      var _this3 = this;\n      var _loop = function _loop() {\n          var format = _step2.value;\n          // If this format is currently being used\n          // and is still suitable, then stick to it.\n          if (_this3.chosenFormat === format) {\n            return 0; // break\n          }\n          // Sometimes, a formatting rule inserts additional digits in a phone number,\n          // and \"as you type\" formatter can't do that: it should only use the digits\n          // that the user has input.\n          //\n          // For example, in Argentina, there's a format for mobile phone numbers:\n          //\n          // {\n          //    \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n          //    \"leading_digits_patterns\": [\"91\"],\n          //    \"national_prefix_formatting_rule\": \"0$1\",\n          //    \"format\": \"$2 15-$3-$4\",\n          //    \"international_format\": \"$1 $2 $3-$4\"\n          // }\n          //\n          // In that format, `international_format` is used instead of `format`\n          // because `format` inserts `15` in the formatted number,\n          // and `AsYouType` formatter should only use the digits\n          // the user has actually input, without adding any extra digits.\n          // In this case, it wouldn't make a difference, because the `15`\n          // is first stripped when applying `national_prefix_for_parsing`\n          // and then re-added when using `format`, so in reality it doesn't\n          // add any new digits to the number, but to detect that, the code\n          // would have to be more complex: it would have to try formatting\n          // the digits using the format and then see if any digits have\n          // actually been added or removed, and then, every time a new digit\n          // is input, it should re-check whether the chosen format doesn't\n          // alter the digits.\n          //\n          // Google's code doesn't go that far, and so does this library:\n          // it simply requires that a `format` doesn't add any additonal\n          // digits to user's input.\n          //\n          // Also, people in general should move from inputting phone numbers\n          // in national format (possibly with national prefixes)\n          // and use international phone number format instead:\n          // it's a logical thing in the modern age of mobile phones,\n          // globalization and the internet.\n          //\n          /* istanbul ignore if */\n          if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n            return 1; // continue\n          }\n          if (!_this3.createTemplateForFormat(format, state)) {\n            // Remove the format if it can't generate a template.\n            _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n              return _ !== format;\n            });\n            return 1; // continue\n          }\n          _this3.chosenFormat = format;\n          return 0; // break\n        },\n        _ret;\n      // When there are multiple available formats, the formatter uses the first\n      // format where a formatting template could be created.\n      //\n      // For some weird reason, `istanbul` says \"else path not taken\"\n      // for the `for of` line below. Supposedly that means that\n      // the loop doesn't ever go over the last element in the list.\n      // That's true because there always is `this.chosenFormat`\n      // when `this.matchingFormats` is non-empty.\n      // And, for some weird reason, it doesn't think that the case\n      // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n      // So simply muting this `istanbul` warning.\n      // It doesn't skip the contents of the `for of` loop,\n      // it just skips the `for of` line.\n      //\n      /* istanbul ignore next */\n      for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n        _ret = _loop();\n        if (_ret === 0) break;\n        if (_ret === 1) continue;\n      }\n      if (!this.chosenFormat) {\n        // No format matches the national (significant) phone number.\n        this.resetFormat();\n      }\n      return this.chosenFormat;\n    }\n  }, {\n    key: \"createTemplateForFormat\",\n    value: function createTemplateForFormat(format, state) {\n      // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n      // (20|3)\\d{4}. In those cases we quickly return.\n      // (Though there's no such format in current metadata)\n      /* istanbul ignore if */\n      if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n        return;\n      }\n      // Get formatting template for this phone number format\n      var template = this.getTemplateForFormat(format, state);\n      // If the national number entered is too long\n      // for any phone number format, then abort.\n      if (template) {\n        this.setNationalNumberTemplate(template, state);\n        return true;\n      }\n    }\n  }, {\n    key: \"getSeparatorAfterNationalPrefix\",\n    value: function getSeparatorAfterNationalPrefix(format) {\n      // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n      // so the `if` condition below doesn't apply to `US`,\n      // but in reality there shoudl be a separator\n      // between a national prefix and a national (significant) number.\n      // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n      if (this.isNANP) {\n        return ' ';\n      }\n      // If a `format` has a `national_prefix_formatting_rule`\n      // and that rule has a separator after a national prefix,\n      // then it means that there should be a separator\n      // between a national prefix and a national (significant) number.\n      if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n        return ' ';\n      }\n      // At this point, there seems to be no clear evidence that\n      // there should be a separator between a national prefix\n      // and a national (significant) number. So don't insert one.\n      return '';\n    }\n  }, {\n    key: \"getInternationalPrefixBeforeCountryCallingCode\",\n    value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n      var IDDPrefix = _ref3.IDDPrefix,\n        missingPlus = _ref3.missingPlus;\n      if (IDDPrefix) {\n        return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n      }\n      if (missingPlus) {\n        return '';\n      }\n      return '+';\n    }\n  }, {\n    key: \"getTemplate\",\n    value: function getTemplate(state) {\n      if (!this.template) {\n        return;\n      }\n      // `this.template` holds the template for a \"complete\" phone number.\n      // The currently entered phone number is most likely not \"complete\",\n      // so trim all non-populated digits.\n      var index = -1;\n      var i = 0;\n      var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n        spacing: false\n      }) : '';\n      while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n        index = this.template.indexOf(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, index + 1);\n        i++;\n      }\n      return (0, _AsYouTypeFormatterUtil.cutAndStripNonPairedParens)(this.template, index + 1);\n    }\n  }, {\n    key: \"setNationalNumberTemplate\",\n    value: function setNationalNumberTemplate(template, state) {\n      this.nationalNumberTemplate = template;\n      this.populatedNationalNumberTemplate = template;\n      // With a new formatting template, the matched position\n      // using the old template needs to be reset.\n      this.populatedNationalNumberTemplatePosition = -1;\n      // For convenience, the public `.template` property\n      // contains the whole international number\n      // if the phone number being input is international:\n      // 'x' for the '+' sign, 'x'es for the country phone code,\n      // a spacebar and then the template for the formatted national number.\n      if (state.international) {\n        this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER) + (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n      } else {\n        this.template = template;\n      }\n    }\n\n    /**\r\n     * Generates formatting template for a national phone number,\r\n     * optionally containing a national prefix, for a format.\r\n     * @param  {Format} format\r\n     * @param  {string} nationalPrefix\r\n     * @return {string}\r\n     */\n  }, {\n    key: \"getTemplateForFormat\",\n    value: function getTemplateForFormat(format, _ref4) {\n      var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n        international = _ref4.international,\n        nationalPrefix = _ref4.nationalPrefix,\n        prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _ref4.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix;\n      var pattern = format.pattern();\n\n      /* istanbul ignore else */\n      if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n        pattern = pattern\n        // Replace anything in the form of [..] with \\d\n        .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\n        // Replace any standalone digit (not the one in `{}`) with \\d\n        .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n      }\n\n      // Generate a dummy national number (consisting of `9`s)\n      // that fits this format's `pattern`.\n      //\n      // This match will always succeed,\n      // because the \"longest dummy phone number\"\n      // has enough length to accomodate any possible\n      // national phone number format pattern.\n      //\n      var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0];\n\n      // If the national number entered is too long\n      // for any phone number format, then abort.\n      if (nationalSignificantNumber.length > digits.length) {\n        return;\n      }\n\n      // Get a formatting template which can be used to efficiently format\n      // a partial number where digits are added one by one.\n\n      // Below `strictPattern` is used for the\n      // regular expression (with `^` and `$`).\n      // This wasn't originally in Google's `libphonenumber`\n      // and I guess they don't really need it\n      // because they're not using \"templates\" to format phone numbers\n      // but I added `strictPattern` after encountering\n      // South Korean phone number formatting bug.\n      //\n      // Non-strict regular expression bug demonstration:\n      //\n      // this.nationalSignificantNumber : `111111111` (9 digits)\n      //\n      // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n      // format : `$1 $2 $3`\n      // digits : `9999999999` (10 digits)\n      //\n      // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n      //\n      // template : xx xxxx xxxx\n      //\n      // But the correct template in this case is `xx xxx xxxx`.\n      // The template was generated incorrectly because of the\n      // `{3,4}` variability in the `pattern`.\n      //\n      // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n      // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n      // is used instead of `digits`.\n\n      var strictPattern = new RegExp('^' + pattern + '$');\n      var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT);\n\n      // If `this.nationalSignificantNumber` has already sufficient length\n      // to satisfy the `pattern` completely then use it\n      // instead of `digits`.\n      if (strictPattern.test(nationalNumberDummyDigits)) {\n        digits = nationalNumberDummyDigits;\n      }\n      var numberFormat = this.getFormatFormat(format, international);\n      var nationalPrefixIncludedInTemplate;\n\n      // If a user did input a national prefix (and that's guaranteed),\n      // and if a `format` does have a national prefix formatting rule,\n      // then see if that national prefix formatting rule\n      // prepends exactly the same national prefix the user has input.\n      // If that's the case, then use the `format` with the national prefix formatting rule.\n      // Otherwise, use  the `format` without the national prefix formatting rule,\n      // and prepend a national prefix manually to it.\n      if (this.shouldTryNationalPrefixFormattingRule(format, {\n        international: international,\n        nationalPrefix: nationalPrefix\n      })) {\n        var numberFormatWithNationalPrefix = numberFormat.replace(_formatNationalNumberUsingFormat.FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule());\n        // If `national_prefix_formatting_rule` of a `format` simply prepends\n        // national prefix at the start of a national (significant) number,\n        // then such formatting can be used with `AsYouType` formatter.\n        // There seems to be no `else` case: everywhere in metadata,\n        // national prefix formatting rule is national prefix + $1,\n        // or `($1)`, in which case such format isn't even considered\n        // when the user has input a national prefix.\n        /* istanbul ignore else */\n        if ((0, _parseDigits[\"default\"])(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + (0, _parseDigits[\"default\"])('$1')) {\n          numberFormat = numberFormatWithNationalPrefix;\n          nationalPrefixIncludedInTemplate = true;\n          // Replace all digits of the national prefix in the formatting template\n          // with `DIGIT_PLACEHOLDER`s.\n          if (nationalPrefix) {\n            var i = nationalPrefix.length;\n            while (i > 0) {\n              numberFormat = numberFormat.replace(/\\d/, _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER);\n              i--;\n            }\n          }\n        }\n      }\n\n      // Generate formatting template for this phone number format.\n      var template = digits\n      // Format the dummy phone number according to the format.\n      .replace(new RegExp(pattern), numberFormat)\n      // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n      .replace(new RegExp(DUMMY_DIGIT, 'g'), _AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER);\n\n      // If a prefix of a national (significant) number is not as simple\n      // as just a basic national prefix, then just prepend such prefix\n      // before the national (significant) number, optionally spacing\n      // the two with a whitespace.\n      if (!nationalPrefixIncludedInTemplate) {\n        if (prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n          // Prepend the prefix to the template manually.\n          template = (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix.length) + ' ' + template;\n        } else if (nationalPrefix) {\n          // Prepend national prefix to the template manually.\n          template = (0, _AsYouTypeFormatterUtil.repeat)(_AsYouTypeFormatterUtil.DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n        }\n      }\n      if (international) {\n        template = (0, _applyInternationalSeparatorStyle[\"default\"])(template);\n      }\n      return template;\n    }\n  }, {\n    key: \"formatNextNationalNumberDigits\",\n    value: function formatNextNationalNumberDigits(digits) {\n      var result = (0, _AsYouTypeFormatterUtil.populateTemplateWithDigits)(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n      if (!result) {\n        // Reset the format.\n        this.resetFormat();\n        return;\n      }\n      this.populatedNationalNumberTemplate = result[0];\n      this.populatedNationalNumberTemplatePosition = result[1];\n\n      // Return the formatted phone number so far.\n      return (0, _AsYouTypeFormatterUtil.cutAndStripNonPairedParens)(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1);\n\n      // The old way which was good for `input-format` but is not so good\n      // for `react-phone-number-input`'s default input (`InputBasic`).\n      // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n      // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n    }\n  }, {\n    key: \"shouldTryNationalPrefixFormattingRule\",\n    value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n      var international = _ref5.international,\n        nationalPrefix = _ref5.nationalPrefix;\n      if (format.nationalPrefixFormattingRule()) {\n        // In some countries, `national_prefix_formatting_rule` is `($1)`,\n        // so it applies even if the user hasn't input a national prefix.\n        // `format.usesNationalPrefix()` detects such cases.\n        var usesNationalPrefix = format.usesNationalPrefix();\n        if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n          return true;\n        }\n      }\n    }\n  }]);\n}();\n//# sourceMappingURL=AsYouTypeFormatter.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nexports.getCountryCallingCode = getCountryCallingCode;\nexports.getExtPrefix = getExtPrefix;\nexports.isSupportedCountry = isSupportedCountry;\nexports.validateMetadata = validateMetadata;\nvar _semverCompare = _interopRequireDefault(require(\"./tools/semver-compare.js\"));\nvar _isObject = _interopRequireDefault(require(\"./helpers/isObject.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _readOnlyError(r) { throw new TypeError('\"' + r + '\" is read-only'); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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\n// Moved `001` country code to \"nonGeographic\" section of metadata.\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\nvar Metadata = exports[\"default\"] = /*#__PURE__*/function () {\n  function Metadata(metadata) {\n    _classCallCheck(this, Metadata);\n    validateMetadata(metadata);\n    this.metadata = metadata;\n    setVersion.call(this, metadata);\n  }\n  return _createClass(Metadata, [{\n    key: \"getCountries\",\n    value: function getCountries() {\n      return Object.keys(this.metadata.countries).filter(function (_) {\n        return _ !== '001';\n      });\n    }\n  }, {\n    key: \"getCountryMetadata\",\n    value: function getCountryMetadata(countryCode) {\n      return this.metadata.countries[countryCode];\n    }\n  }, {\n    key: \"nonGeographic\",\n    value: function nonGeographic() {\n      if (this.v1 || this.v2 || this.v3) return;\n      // `nonGeographical` was a typo.\n      // It's present in metadata generated from `1.7.35` to `1.7.37`.\n      // The test case could be found by searching for \"nonGeographical\".\n      return this.metadata.nonGeographic || this.metadata.nonGeographical;\n    }\n  }, {\n    key: \"hasCountry\",\n    value: function hasCountry(country) {\n      return this.getCountryMetadata(country) !== undefined;\n    }\n  }, {\n    key: \"hasCallingCode\",\n    value: function hasCallingCode(callingCode) {\n      if (this.getCountryCodesForCallingCode(callingCode)) {\n        return true;\n      }\n      if (this.nonGeographic()) {\n        if (this.nonGeographic()[callingCode]) {\n          return true;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        var countryCodes = this.countryCallingCodes()[callingCode];\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return true;\n        }\n      }\n    }\n  }, {\n    key: \"isNonGeographicCallingCode\",\n    value: function isNonGeographicCallingCode(callingCode) {\n      if (this.nonGeographic()) {\n        return this.nonGeographic()[callingCode] ? true : false;\n      } else {\n        return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n      }\n    }\n\n    // Deprecated.\n  }, {\n    key: \"country\",\n    value: function country(countryCode) {\n      return this.selectNumberingPlan(countryCode);\n    }\n  }, {\n    key: \"selectNumberingPlan\",\n    value: function selectNumberingPlan(countryCode, callingCode) {\n      // Supports just passing `callingCode` as the first argument.\n      if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n        callingCode = countryCode;\n        countryCode = null;\n      }\n      if (countryCode && countryCode !== '001') {\n        if (!this.hasCountry(countryCode)) {\n          throw new Error(\"Unknown country: \".concat(countryCode));\n        }\n        this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n      } else if (callingCode) {\n        if (!this.hasCallingCode(callingCode)) {\n          throw new Error(\"Unknown calling code: \".concat(callingCode));\n        }\n        this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n      } else {\n        this.numberingPlan = undefined;\n      }\n      return this;\n    }\n  }, {\n    key: \"getCountryCodesForCallingCode\",\n    value: function getCountryCodesForCallingCode(callingCode) {\n      var countryCodes = this.countryCallingCodes()[callingCode];\n      if (countryCodes) {\n        // Metadata before V4 included \"non-geographic entity\" calling codes\n        // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n        // Now the semantics of `country_calling_codes` has changed:\n        // it's specifically for \"countries\" now.\n        // Older versions of custom metadata will simply skip parsing\n        // \"non-geographic entity\" phone numbers with new versions\n        // of this library: it's not considered a bug,\n        // because such numbers are extremely rare,\n        // and developers extremely rarely use custom metadata.\n        if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n          return;\n        }\n        return countryCodes;\n      }\n    }\n  }, {\n    key: \"getCountryCodeForCallingCode\",\n    value: function getCountryCodeForCallingCode(callingCode) {\n      var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n      if (countryCodes) {\n        return countryCodes[0];\n      }\n    }\n  }, {\n    key: \"getNumberingPlanMetadata\",\n    value: function getNumberingPlanMetadata(callingCode) {\n      var countryCode = this.getCountryCodeForCallingCode(callingCode);\n      if (countryCode) {\n        return this.getCountryMetadata(countryCode);\n      }\n      if (this.nonGeographic()) {\n        var metadata = this.nonGeographic()[callingCode];\n        if (metadata) {\n          return metadata;\n        }\n      } else {\n        // A hacky workaround for old custom metadata (generated before V4).\n        // In that metadata, there was no concept of \"non-geographic\" metadata\n        // so metadata for `001` country code was stored along with other countries.\n        // The test case can be found by searching for:\n        // \"should work around `nonGeographic` metadata not existing\".\n        var countryCodes = this.countryCallingCodes()[callingCode];\n        if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n          return this.metadata.countries['001'];\n        }\n      }\n    }\n\n    // Deprecated.\n  }, {\n    key: \"countryCallingCode\",\n    value: function countryCallingCode() {\n      return this.numberingPlan.callingCode();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      return this.numberingPlan.IDDPrefix();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      return this.numberingPlan.defaultIDDPrefix();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      return this.numberingPlan.nationalNumberPattern();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      return this.numberingPlan.possibleLengths();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      return this.numberingPlan.formats();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      return this.numberingPlan.nationalPrefixForParsing();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.numberingPlan.nationalPrefixTransformRule();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.numberingPlan.leadingDigits();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      return this.numberingPlan.hasTypes();\n    }\n\n    // Deprecated.\n  }, {\n    key: \"type\",\n    value: function type(_type) {\n      return this.numberingPlan.type(_type);\n    }\n\n    // Deprecated.\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      return this.numberingPlan.ext();\n    }\n  }, {\n    key: \"countryCallingCodes\",\n    value: function countryCallingCodes() {\n      if (this.v1) return this.metadata.country_phone_code_to_countries;\n      return this.metadata.country_calling_codes;\n    }\n\n    // Deprecated.\n  }, {\n    key: \"chooseCountryByCountryCallingCode\",\n    value: function chooseCountryByCountryCallingCode(callingCode) {\n      return this.selectNumberingPlan(callingCode);\n    }\n  }, {\n    key: \"hasSelectedNumberingPlan\",\n    value: function hasSelectedNumberingPlan() {\n      return this.numberingPlan !== undefined;\n    }\n  }]);\n}();\nvar NumberingPlan = /*#__PURE__*/function () {\n  function NumberingPlan(metadata, globalMetadataObject) {\n    _classCallCheck(this, NumberingPlan);\n    this.globalMetadataObject = globalMetadataObject;\n    this.metadata = metadata;\n    setVersion.call(this, globalMetadataObject.metadata);\n  }\n  return _createClass(NumberingPlan, [{\n    key: \"callingCode\",\n    value: function callingCode() {\n      return this.metadata[0];\n    }\n\n    // Formatting information for regions which share\n    // a country calling code is contained by only one region\n    // for performance reasons. For example, for NANPA region\n    // (\"North American Numbering Plan Administration\",\n    //  which includes USA, Canada, Cayman Islands, Bahamas, etc)\n    // it will be contained in the metadata for `US`.\n  }, {\n    key: \"getDefaultCountryMetadataForRegion\",\n    value: function getDefaultCountryMetadataForRegion() {\n      return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n    }\n\n    // Is always present.\n  }, {\n    key: \"IDDPrefix\",\n    value: function IDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[1];\n    }\n\n    // Is only present when a country supports multiple IDD prefixes.\n  }, {\n    key: \"defaultIDDPrefix\",\n    value: function defaultIDDPrefix() {\n      if (this.v1 || this.v2) return;\n      return this.metadata[12];\n    }\n  }, {\n    key: \"nationalNumberPattern\",\n    value: function nationalNumberPattern() {\n      if (this.v1 || this.v2) return this.metadata[1];\n      return this.metadata[2];\n    }\n\n    // \"possible length\" data is always present in Google's metadata.\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.v1) return;\n      return this.metadata[this.v2 ? 2 : 3];\n    }\n  }, {\n    key: \"_getFormats\",\n    value: function _getFormats(metadata) {\n      return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n    }\n\n    // For countries of the same region (e.g. NANPA)\n    // formats are all stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n  }, {\n    key: \"formats\",\n    value: function formats() {\n      var _this = this;\n      var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n      return formats.map(function (_) {\n        return new Format(_, _this);\n      });\n    }\n  }, {\n    key: \"nationalPrefix\",\n    value: function nationalPrefix() {\n      return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n    }\n  }, {\n    key: \"_getNationalPrefixFormattingRule\",\n    value: function _getNationalPrefixFormattingRule(metadata) {\n      return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n    }\n\n    // For countries of the same region (e.g. NANPA)\n    // national prefix formatting rule is stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"_nationalPrefixForParsing\",\n    value: function _nationalPrefixForParsing() {\n      return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n    }\n  }, {\n    key: \"nationalPrefixForParsing\",\n    value: function nationalPrefixForParsing() {\n      // If `national_prefix_for_parsing` is not set explicitly,\n      // then infer it from `national_prefix` (if any)\n      return this._nationalPrefixForParsing() || this.nationalPrefix();\n    }\n  }, {\n    key: \"nationalPrefixTransformRule\",\n    value: function nationalPrefixTransformRule() {\n      return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n    }\n  }, {\n    key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n    value: function _getNationalPrefixIsOptionalWhenFormatting() {\n      return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n    }\n\n    // For countries of the same region (e.g. NANPA)\n    // \"national prefix is optional when formatting\" flag is\n    // stored in the \"main\" country for that region.\n    // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n    }\n  }, {\n    key: \"leadingDigits\",\n    value: function leadingDigits() {\n      return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n    }\n  }, {\n    key: \"types\",\n    value: function types() {\n      return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n    }\n  }, {\n    key: \"hasTypes\",\n    value: function hasTypes() {\n      // Versions 1.2.0 - 1.2.4: can be `[]`.\n      /* istanbul ignore next */\n      if (this.types() && this.types().length === 0) {\n        return false;\n      }\n      // Versions <= 1.2.4: can be `undefined`.\n      // Version >= 1.2.5: can be `0`.\n      return !!this.types();\n    }\n  }, {\n    key: \"type\",\n    value: function type(_type2) {\n      if (this.hasTypes() && getType(this.types(), _type2)) {\n        return new Type(getType(this.types(), _type2), this);\n      }\n    }\n  }, {\n    key: \"ext\",\n    value: function ext() {\n      if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n      return this.metadata[13] || DEFAULT_EXT_PREFIX;\n    }\n  }]);\n}();\nvar Format = /*#__PURE__*/function () {\n  function Format(format, metadata) {\n    _classCallCheck(this, Format);\n    this._format = format;\n    this.metadata = metadata;\n  }\n  return _createClass(Format, [{\n    key: \"pattern\",\n    value: function pattern() {\n      return this._format[0];\n    }\n  }, {\n    key: \"format\",\n    value: function format() {\n      return this._format[1];\n    }\n  }, {\n    key: \"leadingDigitsPatterns\",\n    value: function leadingDigitsPatterns() {\n      return this._format[2] || [];\n    }\n  }, {\n    key: \"nationalPrefixFormattingRule\",\n    value: function nationalPrefixFormattingRule() {\n      return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n    }\n  }, {\n    key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n      return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    }\n  }, {\n    key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n    value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n      // National prefix is omitted if there's no national prefix formatting rule\n      // set for this country, or when the national prefix formatting rule\n      // contains no national prefix itself, or when this rule is set but\n      // national prefix is optional for this phone number format\n      // (and it is not enforced explicitly)\n      return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n    }\n\n    // Checks whether national prefix formatting rule contains national prefix.\n  }, {\n    key: \"usesNationalPrefix\",\n    value: function usesNationalPrefix() {\n      return this.nationalPrefixFormattingRule() &&\n      // Check that national prefix formatting rule is not a \"dummy\" one.\n      !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\n      // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n      // when `national_prefix_formatting_rule` is not present.\n      // So, `true` or `false` are returned explicitly here, so that\n      // `0` number isn't returned.\n      ? true : false;\n    }\n  }, {\n    key: \"internationalFormat\",\n    value: function internationalFormat() {\n      return this._format[5] || this.format();\n    }\n  }]);\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\nvar Type = /*#__PURE__*/function () {\n  function Type(type, metadata) {\n    _classCallCheck(this, Type);\n    this.type = type;\n    this.metadata = metadata;\n  }\n  return _createClass(Type, [{\n    key: \"pattern\",\n    value: function pattern() {\n      if (this.metadata.v1) return this.type;\n      return this.type[0];\n    }\n  }, {\n    key: \"possibleLengths\",\n    value: function possibleLengths() {\n      if (this.metadata.v1) return;\n      return this.type[1] || this.metadata.possibleLengths();\n    }\n  }]);\n}();\nfunction getType(types, type) {\n  switch (type) {\n    case 'FIXED_LINE':\n      return types[0];\n    case 'MOBILE':\n      return types[1];\n    case 'TOLL_FREE':\n      return types[2];\n    case 'PREMIUM_RATE':\n      return types[3];\n    case 'PERSONAL_NUMBER':\n      return types[4];\n    case 'VOICEMAIL':\n      return types[5];\n    case 'UAN':\n      return types[6];\n    case 'PAGER':\n      return types[7];\n    case 'VOIP':\n      return types[8];\n    case 'SHARED_COST':\n      return types[9];\n  }\n}\nfunction validateMetadata(metadata) {\n  if (!metadata) {\n    throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n  }\n\n  // `country_phone_code_to_countries` was renamed to `country_calling_codes` in `1.0.18`.\n  // For that reason, it's not used in this detection algorithm.\n  // Instead, it detects by `countries: {}` property existence.\n  if (!(0, _isObject[\"default\"])(metadata) || !(0, _isObject[\"default\"])(metadata.countries)) {\n    throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat((0, _isObject[\"default\"])(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n  }\n}\n\n// Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n/* istanbul ignore next */\nvar typeOf = function typeOf(_) {\n  return _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 */\nfunction getExtPrefix(country, metadata) {\n  metadata = new Metadata(metadata);\n  if (metadata.hasCountry(country)) {\n    return metadata.selectNumberingPlan(country).ext();\n  }\n  return 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 */\nfunction getCountryCallingCode(country, metadata) {\n  metadata = new Metadata(metadata);\n  if (metadata.hasCountry(country)) {\n    return metadata.selectNumberingPlan(country).countryCallingCode();\n  }\n  throw new Error(\"Unknown country: \".concat(country));\n}\nfunction isSupportedCountry(country, metadata) {\n  // metadata = new Metadata(metadata)\n  // return metadata.hasCountry(country)\n  return metadata.countries.hasOwnProperty(country);\n}\nfunction setVersion(metadata) {\n  var version = metadata.version;\n  if (typeof version === 'number') {\n    this.v1 = version === 1;\n    this.v2 = version === 2;\n    this.v3 = version === 3;\n    this.v4 = version === 4;\n  } else {\n    if (!version) {\n      this.v1 = true;\n    } else if ((0, _semverCompare[\"default\"])(version, V3) === -1) {\n      this.v2 = true;\n    } else if ((0, _semverCompare[\"default\"])(version, V4) === -1) {\n      this.v3 = true;\n    } else {\n      this.v4 = true;\n    }\n  }\n}\n\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LEAD_CLASS = void 0;\nexports[\"default\"] = isValidCandidate;\nvar _constants = require(\"../constants.js\");\nvar _util = require(\"./util.js\");\nvar _utf = require(\"./utf-8.js\");\n// Copy-pasted from `PhoneNumberMatcher.js`.\n\nvar OPENING_PARENS = \"(\\\\[\\uFF08\\uFF3B\";\nvar CLOSING_PARENS = \")\\\\]\\uFF09\\uFF3D\";\nvar NON_PARENS = \"[^\".concat(OPENING_PARENS).concat(CLOSING_PARENS, \"]\");\nvar LEAD_CLASS = exports.LEAD_CLASS = \"[\".concat(OPENING_PARENS).concat(_constants.PLUS_CHARS, \"]\");\n\n// Punctuation that may be at the start of a phone number - brackets and plus signs.\nvar LEAD_CLASS_LEADING = new RegExp('^' + LEAD_CLASS);\n\n// Limit on the number of pairs of brackets in a phone number.\nvar BRACKET_PAIR_LIMIT = (0, _util.limit)(0, 3);\n\n/**\r\n * Pattern to check that brackets match. Opening brackets should be closed within a phone number.\r\n * This also checks that there is something inside the brackets. Having no brackets at all is also\r\n * fine.\r\n *\r\n * An opening bracket at the beginning may not be closed, but subsequent ones should be.  It's\r\n * also possible that the leading bracket was dropped, so we shouldn't be surprised if we see a\r\n * closing bracket first. We limit the sets of brackets in a phone number to four.\r\n */\nvar MATCHING_BRACKETS_ENTIRE = new RegExp('^' + \"(?:[\" + OPENING_PARENS + \"])?\" + \"(?:\" + NON_PARENS + \"+\" + \"[\" + CLOSING_PARENS + \"])?\" + NON_PARENS + \"+\" + \"(?:[\" + OPENING_PARENS + \"]\" + NON_PARENS + \"+[\" + CLOSING_PARENS + \"])\" + BRACKET_PAIR_LIMIT + NON_PARENS + \"*\" + '$');\n\n/**\r\n * Matches strings that look like publication pages. Example:\r\n * <pre>Computing Complete Answers to Queries in the Presence of Limited Access Patterns.\r\n * Chen Li. VLDB J. 12(3): 211-227 (2003).</pre>\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}/;\nfunction isValidCandidate(candidate, offset, text, leniency) {\n  // Check the candidate doesn't contain any formatting\n  // which would indicate that it really isn't a phone number.\n  if (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {\n    return;\n  }\n\n  // If leniency is set to VALID or stricter, we also want to skip numbers that are surrounded\n  // by Latin alphabetic characters, to skip cases like abc8005001234 or 8005001234def.\n  if (leniency !== 'POSSIBLE') {\n    // If the candidate is not at the start of the text,\n    // and does not start with phone-number punctuation,\n    // check the previous character.\n    if (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) {\n      var previousChar = text[offset - 1];\n      // We return null if it is a latin letter or an invalid punctuation symbol.\n      if ((0, _utf.isInvalidPunctuationSymbol)(previousChar) || (0, _utf.isLatinLetter)(previousChar)) {\n        return false;\n      }\n    }\n    var lastCharIndex = offset + candidate.length;\n    if (lastCharIndex < text.length) {\n      var nextChar = text[lastCharIndex];\n      if ((0, _utf.isInvalidPunctuationSymbol)(nextChar) || (0, _utf.isLatinLetter)(nextChar)) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n//# sourceMappingURL=isValidCandidate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.containsMoreThanOneSlashInNationalNumber = containsMoreThanOneSlashInNationalNumber;\nexports[\"default\"] = void 0;\nvar _parseDigits = _interopRequireDefault(require(\"../helpers/parseDigits.js\"));\nvar _matchPhoneNumberStringAgainstPhoneNumber = _interopRequireDefault(require(\"./matchPhoneNumberStringAgainstPhoneNumber.js\"));\nvar _metadata2 = _interopRequireDefault(require(\"../metadata.js\"));\nvar _getCountryByCallingCode = _interopRequireDefault(require(\"../helpers/getCountryByCallingCode.js\"));\nvar _format = require(\"../format.js\");\nvar _util = require(\"./util.js\");\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n/**\r\n * Leniency when finding potential phone numbers in text segments\r\n * The levels here are ordered in increasing strictness.\r\n */\nvar _default = exports[\"default\"] = {\n  /**\r\n   * Phone numbers accepted are \"possible\", but not necessarily \"valid\".\r\n   */\n  POSSIBLE: function POSSIBLE(phoneNumber, _ref) {\n    var candidate = _ref.candidate,\n      metadata = _ref.metadata;\n    return true;\n  },\n  /**\r\n   * Phone numbers accepted are \"possible\" and \"valid\".\r\n   * Numbers written in national format must have their national-prefix\r\n   * present if it is usually written for a number of this type.\r\n   */\n  VALID: function VALID(phoneNumber, _ref2) {\n    var candidate = _ref2.candidate,\n      defaultCountry = _ref2.defaultCountry,\n      metadata = _ref2.metadata;\n    if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata)) {\n      return false;\n    }\n\n    // Skipped for simplicity.\n    // return isNationalPrefixPresentIfRequired(phoneNumber, { defaultCountry, metadata })\n    return true;\n  },\n  /**\r\n   * Phone numbers accepted are \"valid\" and\r\n   * are grouped in a possible way for this locale. For example, a US number written as\r\n   * \"65 02 53 00 00\" and \"650253 0000\" are not accepted at this leniency level, whereas\r\n   * \"650 253 0000\", \"650 2530000\" or \"6502530000\" are.\r\n   * Numbers with more than one '/' symbol in the national significant number\r\n   * are also dropped at this level.\r\n   *\r\n   * Warning: This level might result in lower coverage especially for regions outside of\r\n   * country code \"+1\". If you are not sure about which level to use,\r\n   * email the discussion group libphonenumber-discuss@googlegroups.com.\r\n   */\n  STRICT_GROUPING: function STRICT_GROUPING(phoneNumber, _ref3) {\n    var candidate = _ref3.candidate,\n      defaultCountry = _ref3.defaultCountry,\n      metadata = _ref3.metadata,\n      regExpCache = _ref3.regExpCache;\n    if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, {\n      defaultCountry: defaultCountry,\n      metadata: metadata\n    })) {\n      return false;\n    }\n    return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsRemainGrouped, regExpCache);\n  },\n  /**\r\n   * Phone numbers accepted are \"valid\" and are grouped in the same way\r\n   * that we would have formatted it, or as a single block.\r\n   * For example, a US number written as \"650 2530000\" is not accepted\r\n   * at this leniency level, whereas \"650 253 0000\" or \"6502530000\" are.\r\n   * Numbers with more than one '/' symbol are also dropped at this level.\r\n   *\r\n   * Warning: This level might result in lower coverage especially for regions outside of\r\n   * country code \"+1\". If you are not sure about which level to use, email the discussion group\r\n   * libphonenumber-discuss@googlegroups.com.\r\n   */\n  EXACT_GROUPING: function EXACT_GROUPING(phoneNumber, _ref4) {\n    var candidate = _ref4.candidate,\n      defaultCountry = _ref4.defaultCountry,\n      metadata = _ref4.metadata,\n      regExpCache = _ref4.regExpCache;\n    if (!phoneNumber.isValid() || !containsOnlyValidXChars(phoneNumber, candidate, metadata) || containsMoreThanOneSlashInNationalNumber(phoneNumber, candidate) || !isNationalPrefixPresentIfRequired(phoneNumber, {\n      defaultCountry: defaultCountry,\n      metadata: metadata\n    })) {\n      return false;\n    }\n    return checkNumberGroupingIsValid(phoneNumber, candidate, metadata, allNumberGroupsAreExactlyPresent, regExpCache);\n  }\n};\nfunction containsOnlyValidXChars(phoneNumber, candidate, metadata) {\n  // The characters 'x' and 'X' can be (1) a carrier code, in which case they always precede the\n  // national significant number or (2) an extension sign, in which case they always precede the\n  // extension number. We assume a carrier code is more than 1 digit, so the first case has to\n  // have more than 1 consecutive 'x' or 'X', whereas the second case can only have exactly 1 'x'\n  // or 'X'. We ignore the character if it appears as the last character of the string.\n  for (var index = 0; index < candidate.length - 1; index++) {\n    var charAtIndex = candidate.charAt(index);\n    if (charAtIndex === 'x' || charAtIndex === 'X') {\n      var charAtNextIndex = candidate.charAt(index + 1);\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 ((0, _matchPhoneNumberStringAgainstPhoneNumber[\"default\"])(candidate.substring(index), phoneNumber, metadata) !== '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 {\n        var ext = (0, _parseDigits[\"default\"])(candidate.substring(index));\n        if (ext) {\n          if (phoneNumber.ext !== ext) {\n            return false;\n          }\n        } else {\n          if (phoneNumber.ext) {\n            return false;\n          }\n        }\n      }\n    }\n  }\n  return true;\n}\nfunction isNationalPrefixPresentIfRequired(phoneNumber, _ref5) {\n  var defaultCountry = _ref5.defaultCountry,\n    _metadata = _ref5.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 (phoneNumber.__countryCallingCodeSource !== 'FROM_DEFAULT_COUNTRY') {\n    return true;\n  }\n  var metadata = new _metadata2[\"default\"](_metadata);\n  metadata.selectNumberingPlan(phoneNumber.countryCallingCode);\n  var phoneNumberRegion = phoneNumber.country || (0, _getCountryByCallingCode[\"default\"])(phoneNumber.countryCallingCode, {\n    nationalNumber: phoneNumber.nationalNumber,\n    metadata: metadata\n  });\n\n  // Check if a national prefix should be present when formatting this number.\n  var nationalNumber = phoneNumber.nationalNumber;\n  var format = (0, _format.chooseFormatForNumber)(metadata.numberingPlan.formats(), 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 (format.nationalPrefixFormattingRule()) {\n    if (metadata.numberingPlan.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n      // The national-prefix is optional in these cases, so we don't need to check if it was present.\n      return true;\n    }\n    if (!format.usesNationalPrefix()) {\n      // National Prefix not needed for this number.\n      return true;\n    }\n    return Boolean(phoneNumber.nationalPrefix);\n  }\n  return true;\n}\nfunction containsMoreThanOneSlashInNationalNumber(phoneNumber, 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 = phoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITH_PLUS_SIGN' || phoneNumber.__countryCallingCodeSource === 'FROM_NUMBER_WITHOUT_PLUS_SIGN';\n  if (candidateHasCountryCode && (0, _parseDigits[\"default\"])(candidate.substring(0, firstSlashInBodyIndex)) === phoneNumber.countryCallingCode) {\n    // Any more slashes and this is illegal.\n    return candidate.slice(secondSlashInBodyIndex + 1).indexOf('/') >= 0;\n  }\n  return true;\n}\nfunction checkNumberGroupingIsValid(number, candidate, metadata, checkGroups, regExpCache) {\n  throw new Error('This part of code hasn\\'t been ported');\n  var normalizedCandidate = normalizeDigits(candidate, true /* 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 that match, and try them instead.\n  var alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode());\n  var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n  if (alternateFormats) {\n    for (var _iterator = _createForOfIteratorHelperLoose(alternateFormats.numberFormats()), _step; !(_step = _iterator()).done;) {\n      var alternateFormat = _step.value;\n      if (alternateFormat.leadingDigitsPatterns().length > 0) {\n        // There is only one leading digits pattern for alternate formats.\n        var leadingDigitsRegExp = regExpCache.getPatternForRegExp('^' + alternateFormat.leadingDigitsPatterns()[0]);\n        if (!leadingDigitsRegExp.test(nationalSignificantNumber)) {\n          // Leading digits don't match; try another one.\n          continue;\n        }\n      }\n      formattedNumberGroups = getNationalNumberGroups(metadata, number, alternateFormat);\n      if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n        return true;\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 following\r\n * standard formatting rules.\r\n */\nfunction getNationalNumberGroups(metadata, number, formattingPattern) {\n  throw new Error('This part of code hasn\\'t been ported');\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-DG1-DG2-DGX;ext=EXT where DG1..DGX 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}\nfunction allNumberGroupsAreExactlyPresent(metadata, number, normalizedCandidate, formattedNumberGroups) {\n  throw new Error('This part of code hasn\\'t been ported');\n  var candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN);\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 && (0, _util.endsWith)(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]);\n}\nfunction allNumberGroupsRemainGrouped(metadata, number, normalizedCandidate, formattedNumberGroups) {\n  throw new Error('This part of code hasn\\'t been ported');\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 (0, _util.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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PatternParser = exports[\"default\"] = /*#__PURE__*/function () {\n  function PatternParser() {\n    _classCallCheck(this, PatternParser);\n  }\n  return _createClass(PatternParser, [{\n    key: \"parse\",\n    value: function parse(pattern) {\n      this.context = [{\n        or: true,\n        instructions: []\n      }];\n      this.parsePattern(pattern);\n      if (this.context.length !== 1) {\n        throw new Error('Non-finalized contexts left when pattern parse ended');\n      }\n      var _this$context$ = this.context[0],\n        branches = _this$context$.branches,\n        instructions = _this$context$.instructions;\n      if (branches) {\n        return {\n          op: '|',\n          args: branches.concat([expandSingleElementArray(instructions)])\n        };\n      }\n\n      /* istanbul ignore if */\n      if (instructions.length === 0) {\n        throw new Error('Pattern is required');\n      }\n      if (instructions.length === 1) {\n        return instructions[0];\n      }\n      return instructions;\n    }\n  }, {\n    key: \"startContext\",\n    value: function startContext(context) {\n      this.context.push(context);\n    }\n  }, {\n    key: \"endContext\",\n    value: function endContext() {\n      this.context.pop();\n    }\n  }, {\n    key: \"getContext\",\n    value: function getContext() {\n      return this.context[this.context.length - 1];\n    }\n  }, {\n    key: \"parsePattern\",\n    value: function parsePattern(pattern) {\n      if (!pattern) {\n        throw new Error('Pattern is required');\n      }\n      var match = pattern.match(OPERATOR);\n      if (!match) {\n        if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n          throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n        }\n        this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n        return;\n      }\n      var operator = match[1];\n      var before = pattern.slice(0, match.index);\n      var rightPart = pattern.slice(match.index + operator.length);\n      switch (operator) {\n        case '(?:':\n          if (before) {\n            this.parsePattern(before);\n          }\n          this.startContext({\n            or: true,\n            instructions: [],\n            branches: []\n          });\n          break;\n        case ')':\n          if (!this.getContext().or) {\n            throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n          }\n          if (before) {\n            this.parsePattern(before);\n          }\n          if (this.getContext().instructions.length === 0) {\n            throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n          }\n          var _this$getContext = this.getContext(),\n            branches = _this$getContext.branches;\n          branches.push(expandSingleElementArray(this.getContext().instructions));\n          this.endContext();\n          this.getContext().instructions.push({\n            op: '|',\n            args: branches\n          });\n          break;\n        case '|':\n          if (!this.getContext().or) {\n            throw new Error('\"|\" operator can only be used inside \"or\" groups');\n          }\n          if (before) {\n            this.parsePattern(before);\n          }\n          // The top-level is an implicit \"or\" group, if required.\n          if (!this.getContext().branches) {\n            // `branches` are not defined only for the root implicit \"or\" operator.\n            /* istanbul ignore else */\n            if (this.context.length === 1) {\n              this.getContext().branches = [];\n            } else {\n              throw new Error('\"branches\" not found in an \"or\" group context');\n            }\n          }\n          this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n          this.getContext().instructions = [];\n          break;\n        case '[':\n          if (before) {\n            this.parsePattern(before);\n          }\n          this.startContext({\n            oneOfSet: true\n          });\n          break;\n        case ']':\n          if (!this.getContext().oneOfSet) {\n            throw new Error('\"]\" operator must be preceded by \"[\" operator');\n          }\n          this.endContext();\n          this.getContext().instructions.push({\n            op: '[]',\n            args: parseOneOfSet(before)\n          });\n          break;\n\n        /* istanbul ignore next */\n        default:\n          throw new Error(\"Unknown operator: \".concat(operator));\n      }\n      if (rightPart) {\n        this.parsePattern(rightPart);\n      }\n    }\n  }]);\n}();\nfunction parseOneOfSet(pattern) {\n  var values = [];\n  var i = 0;\n  while (i < pattern.length) {\n    if (pattern[i] === '-') {\n      if (i === 0 || i === pattern.length - 1) {\n        throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n      }\n      var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n      var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n      var value = prevValue;\n      while (value <= nextValue) {\n        values.push(String.fromCharCode(value));\n        value++;\n      }\n    } else {\n      values.push(pattern[i]);\n    }\n    i++;\n  }\n  return values;\n}\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp(\n// any of:\n'(' +\n// or operator\n'\\\\|' +\n// or\n'|' +\n// or group start\n'\\\\(\\\\?\\\\:' +\n// or\n'|' +\n// or group end\n'\\\\)' +\n// or\n'|' +\n// one-of set start\n'\\\\[' +\n// or\n'|' +\n// one-of set end\n'\\\\]' + ')');\nfunction expandSingleElementArray(array) {\n  if (array.length === 1) {\n    return array[0];\n  }\n  return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.checkNumberLengthForType = checkNumberLengthForType;\nexports[\"default\"] = checkNumberLength;\nvar _metadata = _interopRequireDefault(require(\"../metadata.js\"));\nvar _mergeArrays = _interopRequireDefault(require(\"./mergeArrays.js\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { \"default\": e }; }\nfunction checkNumberLength(nationalNumber, country, metadata) {\n  return checkNumberLengthForType(nationalNumber, country, undefined, metadata);\n}\n\n// Checks whether a number is possible for a certain `country` based on the number length.\n//\n// This function is not supported by metadata generated with ancient versions of\n// `libphonenumber-js` (before version `1.0.18`) which didn't include \"possible lengths\".\n//\n// There was also a known issue with `checkNumberLength()` function:\n// if a number is possible only in a certain `country` among several `countries`\n// that share the same \"country calling code\", that function would check\n// the possibility of the phone number only in the \"main\" `country` for the \"country calling code\"\n// and would not check if it's actually be possible in the speciifc `country`.\n//\n// For example, \"+1310xxxx\" numbers are valid in Canada.\n// However, they are not possible in the US due to being too short.\n// Since Canada and the US share the same country calling code — \"+1\" —\n// `checkNumberLength()` function used to return not \"IS_POSSIBLE\" for \"+1310xxxx\" numbers.\n//\n// In such cases, when using \"/max\" metadata, `isValid()` could output `true`\n// but at the same time `isPossible()` could output `false`, which was contradictory.\n//\n// See https://issuetracker.google.com/issues/335892662 for the discusson in Google's issues.\n//\n// The solution suggested by Google was implemented: an optional `country` argument\n// was added to `checkNumberLength()` function. If present, that `country` will be used\n// to check phone number length for that specific `country` rather than the \"main\" country\n// for the shared \"country calling code\".\n//\nfunction checkNumberLengthForType(nationalNumber, country, type, metadata) {\n  // If the exact `country` is specified, it's no necessarily already selected in `metadata`.\n  // Most likely, in cases when there're multiple countries corresponding to the same\n  // \"country calling code\", the \"main\" country for that \"country calling code\" will be selected.\n  if (country) {\n    metadata = new _metadata[\"default\"](metadata.metadata);\n    metadata.selectNumberingPlan(country);\n  }\n  var type_info = metadata.type(type);\n\n  // There should always be \"<possiblePengths/>\" set for every type element.\n  // This is declared in the XML schema.\n  // For size efficiency, where a sub-description (e.g. fixed-line)\n  // has the same \"<possiblePengths/>\" as the \"general description\", this is missing,\n  // so we fall back to the \"general description\". Where no numbers of the type\n  // exist at all, there is one possible length (-1) which is guaranteed\n  // not to match the length of any real phone number.\n  var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths();\n  // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n\n  // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n  if (!possible_lengths) {\n    return 'IS_POSSIBLE';\n  }\n  if (type === 'FIXED_LINE_OR_MOBILE') {\n    // No such country in metadata.\n    /* istanbul ignore next */\n    if (!metadata.type('FIXED_LINE')) {\n      // The rare case has been encountered where no fixedLine data is available\n      // (true for some non-geographic entities), so we just check mobile.\n      return checkNumberLengthForType(nationalNumber, country, 'MOBILE', metadata);\n    }\n    var mobile_type = metadata.type('MOBILE');\n    if (mobile_type) {\n      // Merge the mobile data in if there was any. \"Concat\" creates a new\n      // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n      // Note that when adding the possible lengths from mobile, we have\n      // to again check they aren't empty since if they are this indicates\n      // they are the same as the general desc and should be obtained from there.\n      possible_lengths = (0, _mergeArrays[\"default\"])(possible_lengths, mobile_type.possibleLengths());\n      // The current list is sorted; we need to merge in the new list and\n      // re-sort (duplicates are okay). Sorting isn't so expensive because\n      // the lists are very small.\n\n      // if (local_lengths) {\n      // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n      // } else {\n      // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n      // }\n    }\n  }\n  // If the type doesn't exist then return 'INVALID_LENGTH'.\n  else if (type && !type_info) {\n    return 'INVALID_LENGTH';\n  }\n  var actual_length = nationalNumber.length;\n\n  // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n  // // This is safe because there is never an overlap beween the possible lengths\n  // // and the local-only lengths; this is checked at build time.\n  // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n  // {\n  // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n  // }\n\n  var minimum_length = possible_lengths[0];\n  if (minimum_length === actual_length) {\n    return 'IS_POSSIBLE';\n  }\n  if (minimum_length > actual_length) {\n    return 'TOO_SHORT';\n  }\n  if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n    return 'TOO_LONG';\n  }\n\n  // We skip the first element since we've already checked it.\n  return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map"],"names":["Object","defineProperty","exports","value","number","country","callingCode","metadata","countryMetadata","_metadata","selectNumberingPlan","IDDPrefixPattern","RegExp","IDDPrefix","search","matchedGroups","slice","match","length","CAPTURING_DIGIT_PATTERN","e","__esModule","_constants","VALID_DIGITS","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","getOwnPropertyDescriptor","_interopRequireWildcard","_isPossible","_interopRequireDefault","_isValid","_getNumberType","_getPossibleCountriesForNumber","_extractCountryCallingCode","_isObject","_format2","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_defineProperties","key","toPrimitive","TypeError","String","Number","_toPrimitive","PhoneNumber","countryOrCountryCallingCode","nationalNumber","a","_classCallCheck","this","countries","e164Number","E164_NUMBER_REGEXP","test","Error","_extractCountryCallin","undefined","countryCallingCode","validateMetadata","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","ext","v2","isNonGeographicCallingCode","phoneNumber","_format","options","format","string","_step","result","_iterator","next","bind","Array","isArray","_arrayLikeToArray","toString","name","from","_unsupportedIterableToArray","done","_createForOfIteratorHelperLoose","split","parsePhoneNumberCharacter","_parseDigits","character","prevParsedCharacters","eventListener","parseDigit","core","func","_arguments","args","parsePhoneNumberFromString","parsePhoneNumberWithError","module","ParseError","parsePhoneNumber","isValidPhoneNumber","isPossiblePhoneNumber","validatePhoneNumberLength","findNumbers","searchNumbers","findPhoneNumbersInText","searchPhoneNumbersInText","PhoneNumberMatcher","text","create","AsYouType","isSupportedCountry","getCountries","getCountryCallingCode","getExtPrefix","getExampleNumber","formatIncompletePhoneNumber","parseIncompletePhoneNumber","parseDigits","DIGIT_PLACEHOLDER","parseRFC3966","formatRFC3966","_normalizeArguments","_normalizeArguments2","extract","_parsePhoneNumberWithError_","_checkNumberLength","error","_ParseError","message","examples","_PhoneNumber","_AsYouTypeState","_AsYouTypeFormatter","_AsYouTypeParser","_getCountryByCallingCode","_getCountryByNationalNumber","_slicedToArray","_arrayWithHoles","l","u","_iterableToArrayLimit","_nonIterableRest","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","defaultCountry","defaultCallingCode","reset","hasCountry","_this$parser$input","parser","input","state","digits","justLeadingPlus","formattedOutput","formattedNationalNumber","determineTheCountryIfNeeded","nationalSignificantNumber","formatter","narrowDownMatchingFormats","hasSelectedNumberingPlan","reExtractNationalSignificantNumber","nationalDigits","getNationalDigits","getFullNumber","getNonFormattedNumber","_this","onCountryChange","onCallingCodeChange","numberingPlan","onNationalSignificantNumberChange","international","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","_this2","prefix","getInternationalPrefixBeforeCountryCallingCode","spacing","concat","getDigitsWithoutInternationalPrefix","_this$state","prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix","nationalPrefix","nationalSignificantNumberIsModified","getNonFormattedNationalNumberWithPrefix","replace","countryCodes","getCountryCodesForCallingCode","setCountry","_this$state2","_this$state3","carrierCode","_callingCode","ambiguousCountries","exactCountry","getNumber","isPossible","isValid","getTemplate","getNonFormattedTemplate","_callSuper","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_wrapNativeSuper","Map","Function","indexOf","_isNativeFunction","Wrapper","p","_setPrototypeOf","_construct","Boolean","valueOf","setPrototypeOf","getPrototypeOf","_Error","code","_inherits","DIGITS","digit","_AsYouTypeFormatterPatternParser","_createClass","PatternMatcher","pattern","matchTree","parse","allowOverflow","_match","matchedChars","overflow","characters","tree","last","characterString","join","partialMatch","restCharacters","JSON","stringify","op","_result","_step2","_iterator2","_char","_ref","nationalPhoneNumber","USE_NON_GEOGRAPHIC_COUNTRY_CODE","possibleCountries","defaultIDDPrefix","SINGLE_IDD_PREFIX_REG_EXP","_AsYouType","phone","possibleLengths","isPossibleNumber","matcher","_PhoneNumberMatcher","hasNext","FIRST_GROUP_PATTERN","useInternationalFormat","withNationalPrefix","formattedNumber","internationalFormat","nationalPrefixFormattingRule","_applyInternationalSeparatorStyle","_parseInput","_extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","extractFormattedPhoneNumber","throwOnError","MAX_INPUT_STRING_LENGTH","startsAt","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_extractFormattedPhoneNumber","_isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","_extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","_parseIncompletePhoneNumber","countryCallingCodeSource","_getCountryCallingCode","_extractNationalNumbe","_extractNationalNumber","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","__countryCallingCodeSource","valid","extended","_matchesEntirely","nationalNumberPattern","possible","PLUS_CHARS","extractFormattedDigitsAndPlus","_extractCountryCallingCode2","_extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","_extractNationalNumberFromPossiblyIncompleteNumber","_stripIddPrefix","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_PUNCTUATION","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","_extractFormattedDigi2","formattedDigits","hasPlus","startInternationalNumber","inputDigits","nextDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","_ref2","setCallingCode","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","setState","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","lastIndexOf","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","newCallingCode","missingPlus","_ref3","resetNationalSignificantNumber","_extractFormattedDigitsAndPlus","extractedNumber","_extractFormattedDigi4","trim","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","PLUS_SIGN","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","substring","isPhoneContextValid","phoneContext","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","ALPHANUM_","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","rfcExtn","RFC3966_EXTN_PREFIX","getExtensionDigitsPattern","explicitExtn","ambiguousExtn","americanStyleExtnWithSuffix","autoDiallingExtn","onlyCommasExtn","maxLength","_parsePhoneNumber_","results","AsYouTypeState","initCountryAndCallingCode","properties","_i","_Object$keys","regularExpressionText","leadingDigits","_parse","_pN","_pL","PZ","isInvalidPunctuationSymbol","pSc_regexp","isLatinLetter","letter","pL_regexp","pMn_regexp","latinLetterRegexp","pZ","pNd","_pZ","pL","pSc","pMn","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","Node","prev","LRUCache","limit","size","head","tail","cache","ensureLimit","node","remove","put","console","log","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","nationalPrefixTransformRule","possiblePositionOfTheFirstCapturedGroup","closeNonPairedParens","template","cut_before","retained_template","opening_braces","countOccurences","closing_braces","dangling_braces","cutAndStripNonPairedParens","cutBeforeIndex","stripNonPairedParens","populateTemplateWithDigits","position","DIGIT_PLACEHOLDER_MATCHER","repeat","times","symbol","count","pop","start","cleared_string","_dangling_braces","index","_LRUCache","RegExpCache","regExp","candidate","_util","trimAfterFirstMatch","SECOND_NUMBER_START_PATTERN","chooseFormatForNumber","_len","objects","_key","merge","DEFAULT_OPTIONS","addExtension","formatNationalNumber","formatExtension","_RFC","fromCountry","fromCountryCallingCode","iddPrefix","_getIddPrefix","formatIDD","_formatNationalNumberUsingFormat","extension","formatAs","formats","nationalPrefixIsOptionalWhenFormattingInNationalFormat","availableFormats","elements","testFunction","pickFirstMatchingElement","leadingDigitsPatterns","lastLeadingDigitsPattern","hasTypes","b","pa","pb","na","nb","isNaN","endsWith","lower","upper","startsWith","regexp","isNumberTypeEqualTo","type","NON_FIXED_LINE_PHONE_TYPES","typeDefinition","_part$split2","offset","SLASH_SEPARATED_DATES","TIME_STAMPS","followingText","TIME_STAMPS_SUFFIX_LEADING","object","objectConstructor","canFormatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","isValidFormattedNationalNumber","_createExtensionPattern","_RegExpCache","_utf","_Leniency","_parsePreCandidate","_isValidPreCandidate","_isValidCandidate","EXTN_PATTERNS_FOR_MATCHING","INNER_MATCHES","leadLimit","punctuationLimit","digitBlockLimit","MAX_LENGTH_COUNTRY_CODE","blockLimit","punctuation","digitSequence","PATTERN","LEAD_CLASS","UNWANTED_END_CHAR_PATTERN","MAX_SAFE_INTEGER","Math","pow","leniency","maxTries","map","searchIndex","regExpCache","matches","lastIndex","parseAndVerify","extractInnerMatch","endsAt","innerMatchRegExp","isFirstMatch","candidateMatch","_candidate","candidateIndexGuess","lastMatch","find","_metadata2","couldNationalNumberBelongToCountry","WHITESPACE","possibleShorterNumber","possibleShorterNationalNumber","numberToParse","phoneNumberString","_extractPhoneContext","charAt","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","Metadata","phoneNumberStringContainsCallingCode","parsedPhoneNumber","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER_START_REG_EXP","MIN_LENGTH_PHONE_NUMBER_PATTERN","merged","element","sort","EXTN_PATTERN","numberWithoutExtension","isNumberWithIddPrefix","shorterNumber","_countryCallingCode","hasCallingCode","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","_AsYouTypeFormatterUtil","_AsYouTypeFormatterComplete","_AsYouTypeFormatterPatternMatcher","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","isNANP","matchingFormats","formattedCompleteNumber","setNationalNumberTemplate","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","leadingDigitsPatternIndex","formatSuits","formatMatches","usesNationalPrefix","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","min","leadingDigitsPattern","_this3","_loop","getFormatFormat","createTemplateForFormat","_","getTemplateForFormat","internationalPrefix","_ref4","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","_ref5","DEFAULT_EXT_PREFIX","_semverCompare","CALLING_CODE_REG_EXP","setVersion","countryCode","v1","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCallingCodes","NumberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","_type","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","FIRST_GROUP_ONLY_PREFIX_PATTERN","typeOf","version","v4","MATCHING_BRACKETS_ENTIRE","PUB_PAGES","LEAD_CLASS_LEADING","previousChar","lastCharIndex","nextChar","OPENING_PARENS","CLOSING_PARENS","NON_PARENS","BRACKET_PAIR_LIMIT","containsMoreThanOneSlashInNationalNumber","_matchPhoneNumberStringAgainstPhoneNumber","POSSIBLE","VALID","containsOnlyValidXChars","STRICT_GROUPING","isNationalPrefixPresentIfRequired","checkNumberGroupingIsValid","allNumberGroupsRemainGrouped","EXACT_GROUPING","allNumberGroupsAreExactlyPresent","charAtIndex","charAtNextIndex","firstSlashInBodyIndex","secondSlashInBodyIndex","checkGroups","normalizedCandidate","formattedNumberGroups","PatternParser","context","or","instructions","parsePattern","_this$context$","branches","expandSingleElementArray","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","values","prevValue","charCodeAt","nextValue","fromCharCode","array","checkNumberLengthForType","_mergeArrays","type_info","possible_lengths","mobile_type","actual_length","minimum_length"],"ignoreList":[],"sourceRoot":""}