{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/prop-types/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/classnames/index.js","../../source/constants.js","../../source/ParseError.js","../../../source/tools/semver-compare.js","../../source/metadata.js","../../../../source/helpers/extension/createExtensionPattern.js","../../../source/helpers/isViablePhoneNumber.js","../../../../source/helpers/extension/extractExtension.js","../../../source/helpers/parseDigits.js","../../source/parseIncompletePhoneNumber.js","../../../source/helpers/checkNumberLength.js","../../../source/helpers/mergeArrays.js","../../source/isPossibleNumber_.js","../../../source/helpers/matchesEntirely.js","../../../source/helpers/getNumberType.js","../../../source/helpers/applyInternationalSeparatorStyle.js","../../../source/helpers/formatNationalNumberUsingFormat.js","../../../source/helpers/getIddPrefix.js","../../source/format_.js","../../../source/helpers/RFC3966.js","../../source/PhoneNumber.js","../../source/validate_.js","../../../source/helpers/stripIddPrefix.js","../../../source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../../source/helpers/extractNationalNumber.js","../../../source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../../source/helpers/extractCountryCallingCode.js","../../../source/helpers/getCountryByCallingCode.js","../../source/parse_.js","../../source/parsePhoneNumber_.js","../../source/parsePhoneNumber.js","../../source/parsePhoneNumberFromString_.js","../../source/parsePhoneNumberFromString.js","../../../source/libphonenumber/formatPhoneNumber.js","../../source/isValidPhoneNumber.js","../../source/isPossiblePhoneNumber.js","../../source/getCountries.js","../../source/PropTypes.js","../../source/helpers.js","../../source/closeBraces.js","../../source/format.js","../../source/templateFormatter.js","../../source/dom.js","../../source/inputControl.js","../../source/parse.js","../../source/edit.js","../../../source/react/Input.js","../../source/AsYouTypeState.js","../../source/AsYouTypeFormatter.util.js","../../source/AsYouTypeFormatter.complete.js","../../source/AsYouTypeFormatter.js","../../source/AsYouTypeParser.js","../../source/AsYouType.js","../../../source/helpers/inputValuePrefix.js","../../source/InputSmart.js","../../source/InputBasic.js","../../source/formatIncompletePhoneNumber.js","../../source/Flag.js","../../source/InternationalIcon.js","../../../source/helpers/countries.js","../../source/CountryIcon.js","../../../source/helpers/getInternationalPhoneNumberPrefix.js","../../../source/helpers/phoneInputHelpers.js","../../source/PhoneInputWithCountry.js","../../../source/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","../../source/unicode.js","../../source/CountrySelect.js","../../source/PhoneInputWithCountryDefault.js","../node_modules/react-phone-number-input/min/index.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-dom/index.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/defineProperty.js","../../src/utils/errors.ts","../../src/utils/common.ts","../../src/utils/plugins.ts","../../src/core/scope.ts","../../src/core/finalize.ts","../../src/core/proxy.ts","../../src/core/immerClass.ts","../../src/core/current.ts","../../src/plugins/es5.ts","../../src/immer.ts","../../src/utils/env.ts","../node_modules/reselect/es/index.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js","../node_modules/i18next-http-backend/esm/getFetch.cjs","../node_modules/object-assign/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/i18next/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/webpack/buildin/global.js","../node_modules/react-scrollspy/lib/scrollspy.js","../node_modules/i18next-http-backend/esm/index.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/createClass.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-scrollspy/lib/throttle.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/react-i18next/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js"],"names":["module","exports","require","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","historyContext","name","context","createContext","createNamedContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","value","history","state","match","staticContext","HistoryContext","children","React","Component","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","push","method","createLocation","prevLocation","locationsAreEqual","matchPath","options","Array","exact","strict","sensitive","concat","matched","cacheKey","pathCache","keys","result","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","useContext","useHistory","useLocation","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","replace","href","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","isActive","locationProp","styleProp","style","toLocation","escapedPath","classnames","joinClassnames","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_arrayLikeToArray","arr","len","arr2","_slicedToArray","isArray","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","err","o","minLen","n","toString","slice","constructor","from","test","TypeError","_inheritsLoose","subClass","superClass","create","__proto__","prefix","condition","message","Error","isAbsolute","charAt","spliceOne","list","index","k","pop","resolvePathname","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","join","substr","valueOf","obj","valueEqual","a","b","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","listener","filter","notifyListeners","_len","args","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","hasOwn","classNames","classes","arg","argType","inner","default","VALID_DIGITS","VALID_PUNCTUATION","ParseError","pa","pb","na","Number","nb","isNaN","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","is_object","type_of","validateMetadata","setVersion","_","countryCode","countries","v1","nonGeographic","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","numberingPlan","type","globalMetadataObject","v2","formats","_getFormats","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","_getNationalPrefixIsOptionalWhenFormatting","types","hasTypes","getType","Type","_format","usesNationalPrefix","nationalPrefixFormattingRule","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","isSupportedCountry","version","compare","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","optionalExtnSuffix","rfcExtn","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","RegExp","isViablePhoneNumber","number","EXTN_PATTERN","DIGITS","parseDigit","character","parseDigits","string","digit","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","text","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","input","isNumberTypeEqualTo","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","carrierCode","format","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","formatNumber","countryCallingCode","addExtension","formatNationalNumber","ext","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","_metadata","isCountryCode","phoneNumber","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","nationalPrefix","extractNationalNumber","nationalSignificantNumber","shouldExtractNationalPrefix","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","numberWithoutIDD","shorterNumber","getCountryByCallingCode","nationalPhoneNumber","possibleCountries","phone","selectCountryFromList","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","extract","parseRFC3966","throwOnError","startsAt","extractFormattedPhoneNumber","withExtensionStripped","start","numberWithoutExtension","matches","extractExtension","parseInput","formattedPhoneNumber","extractCountryCallingCode","defaultCountry","defaultCallingCode","exactCountry","parsePhoneNumber","valid","possible","parseNumber","normalizeArguments","arg_1","arg_2","arg_3","arg_4","isObject","parsePhoneNumberFromString","error","parsePhoneNumberFromString_","formatPhoneNumber","formatPhoneNumberIntl","isValidPhoneNumber","getCountries","country_calling_codes","PropTypes","isRequired","labels","count_occurences","symbol","count","closeBraces","retained_template","template","placeholder","empty_placeholder","cut_before","opening_braces","closing_braces","dangling_braces","formatter","should_close_braces","characters_in_template","value_character_index","filled_in_template","close_braces","template_formatter","caret","found","possibly_last_input_character_index","getSelection","selectionEnd","Keys","setCaretPosition","caret_position","ANDROID_USER_AGENT_REG_EXP","isAndroid","setTimeout","operation","getOperation","selection","eraseSelection","formatInputText","_parse","on_change","focused_input_character_index","parse_character","parse","newValueAndCaret","edit","formatted","InputComponent","inputComponent","onChange","onKeyDown","internalRef","useRef","setRef","useCallback","ref","_onChange","_onKeyDown","onInputKeyDown","isEmptyValue","Input","onCut","onPaste","func","AsYouTypeState","onCountryChange","onCallingCodeChange","properties","nextDigits","digits","IDDPrefix","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","repeat","times","cutAndStripNonPairedParens","cutBeforeIndex","cleared_string","stripNonPairedParens","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","matcher","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","isValidFormattedNationalNumber","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","international","formattedCompleteNumber","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","leadingDigits","leadingDigitsPatternIndex","matchingFormats","chosenFormat","leadingDigitsPatternsCount","leadingDigitsPattern","getTemplateForFormat","missingPlus","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","spacing","complexPrefixBeforeNationalSignificantNumber","pattern","strictPattern","nationalNumberDummyDigits","numberFormat","getFormatFormat","numberFormatWithNationalPrefix","nationalPrefixIncludedInTemplate","position","populateTemplateWithDigits","populatedNationalNumberTemplatePosition","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","extractedNumber","hasPlus","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","justLeadingPlus","hasReceivedThreeLeadingDigits","isWaitingForCountryCallingCode","nationalPrefixForParsing","nationalDigits","prevNationalSignificantNumber","extractNationalSignificantNumber","nationalSignificantNumberIndex","nationalSignificantNumberMatchesInput","extractAnotherNationalSignificantNumber","extractIddPrefix","fixMissingPlus","newCallingCode","AsYouType","getCountryAndCallingCode","optionsOrDefaultCountry","parser","reExtractNationalSignificantNumber","getFullNumber","isInternational","getTemplate","getInputValuePrefix","withCountryCallingCode","removeInputValuePrefix","createInput","defaultMetadata","InputSmart","newValue","newValueFormatted","InputBasic","formatIncompletePhoneNumber","countryName","flags","flagUrl","title","alt","role","src","aspectRatio","InternationalIcon3x2","xmlns","viewBox","stroke","fill","strokeWidth","strokeMiterlimit","strokeLinecap","d","x1","y1","x2","y2","InternationalIcon1x1","isCountrySupportedWithError","console","getSupportedCountries","createCountryIconComponent","FlagComponent","flagComponent","InternationalIcon","internationalIcon","label","_aspectRatio","CountryIcon","DefaultInternationalIcon","ONLY_DIGITS_REGEXP","getInternationalPhoneNumberPrefix","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","countryCallingCodePrefix","country_calling_code","stripCountryCallingCode","newCountryPrefix","defaultValue","e164","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","required","derived_country","getCountryFromPossiblyIncompleteInternationalPhoneNumber","couldNumberBelongToCountry","convertInternationalPhoneDigitsToNational","compareStrings","locales","String","intlPhoneNumberPrefix","getInitialPhoneDigits","generateNationalNumberDigits","PhoneNumberInput_","focusInputOnCountrySelection","newPhoneDigits","hasUserSelectedACountry","addInternationalOption","limitMaxLength","countryCallingCodeEditable","prevPhoneDigits","countryRequired","getAnyCountry","onPhoneDigitsChange","_phoneDigits","stateUpdate","isFocused","onFocus","onBlur","countrySelectProps","displayInitialValueAsLocalNumber","initialValueFormat","preSelectedCountry","getPreSelectedCountry","newDefaultCountry","newReset","prevDefaultCountry","prevValue","prevReset","_getInitialPhoneDigits","parameters","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","supportedCountries","parsedCountry","hasUserSelectedACountryUpdate","getPhoneInputWithCountryStateUpdateFromNewProps","selectedCountry","prevState","dependencies","countryOptionsOrder","order","optionsOnTop","optionsOnBottom","appendTo","divider","option","sortCountryOptions","countryNames","compareStringsLocales","_compareStrings","countrySelectOptions","ZZ","getCountrySelectOptions","countryOptions","getSupportedCountryOptions","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","disabled","autoComplete","numberInputProps","smartCaret","CountrySelectComponent","ContainerComponent","iconComponent","PureComponent","PhoneNumberInput","inputRef","labelsPropType","countrySelectComponent","containerComponent","metadataPropType","reset","getRegionalIndicatorSymbol","letter","CountrySelect","onChange_","useMemo","getSelectedOption","DIVIDER_STYLE","bool","fontSize","backgroundColor","color","CountrySelectWithIcon","Icon","Arrow","getIconAspectRatio","arrowComponent","unicodeFlags","selectedOption","createPhoneInput","PhoneInputDefault","_arguments","_parsePhoneNumber","_formatPhoneNumberIntl","_isValidPhoneNumber","isPossiblePhoneNumber","_isPossiblePhoneNumber","_typeof","each","defaults","prop","hasXMLHttpRequest","XMLHttpRequest","makePromise","maybePromise","then","isPromise","Promise","resolve","_classCallCheck","instance","Constructor","asyncGeneratorStep","gen","reject","_next","_throw","info","_asyncToGenerator","self","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","ReactReduxContext","batch","nullListeners","notify","createListenerCollection","first","clear","get","subscribe","isSubscribed","prev","Subscription","store","parentSub","unsubscribe","handleChangeWrapper","bind","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","Provider","contextValue","subscription","previousState","getState","Context","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","createDispatchHook","useDefaultStore","dispatch","useDispatch","refEquality","createSelectorHook","selector","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","useReducer","s","latestSubscriptionCallbackError","latestSelector","latestStoreState","latestSelectedState","storeState","current","newSelectedState","stack","checkForUpdates","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","useSelector","ownKeys","object","enumerableOnly","symbols","sym","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","_createClass","namespaces","_this","ns","getI18n","initReactI18next","init","setDefaults","react","setI18n","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","configurable","writable","__esModule","die","msg","isDraft","DRAFT_STATE","isDraftable","proto","Ctor","Function","objectCtorString","DRAFTABLE","isMap","isSet","iter","getArchtype","thing","type_","has","set","propOrOldValue","t","delete","add","is","x","y","hasMap","Map","hasSet","Set","latest","copy_","base_","shallowCopy","descriptors","desc","freeze","deep","isFrozen","dontMutateFrozenCollections","getPlugin","pluginKey","plugin","plugins","loadPlugin","implementation","getCurrentScope","currentScope","usePatchesInScope","scope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","isReplaced","useProxies_","willFinalizeES5_","modified_","finalize","maybeFreeze","generateReplacementPatches_","NOTHING","rootScope","childValue","finalizeProperty","scope_","finalized_","draft_","generatePatches_","parentState","targetObject","rootPath","res","assigned_","autoFreeze_","peek","getDescriptorFromProto","markChanged","prepareCopy","createProxy","parent","proxyMap_","proxySet_","isManual_","traps","objectTraps","arrayTraps","Proxy","revocable","revoke","proxy","createES5Proxy_","currentImpl","copy","archType","hasChanges_","copyHelper","enableES5","proxyProperty","markChangesSweep","drafts","hasArrayChanges","hasObjectChanges","baseValue","baseIsDraft","markChangesRecursively","hasSymbol","hasProxies","Reflect","for","currentState","deleteProperty","owner","setPrototypeOf","config","recipe","defaultBase","produce","_this2","hasError","arg1","arg2","produceWithPatches","p","ip","patches","inversePatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","patch","op","applyPatchesImpl","applyPatches_","defaultEqualityCheck","areArgumentsShallowlyEqual","equalityCheck","getDependencies","funcs","dep","dependencyTypes","memoize","memoizeOptions","createSelectorCreator","lastArgs","lastResult","_objectSpread2","formatProdErrorMessage","code","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","combineReducers","reducers","reducerKeys","finalReducers","process","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","reduce","applyMiddleware","middlewares","_dispatch","middlewareAPI","chain","middleware","createThunkMiddleware","extraArgument","thunk","withExtraArgument","__extends","extendStatics","__","__spreadArray","il","j","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","propertyIsEnumerable","__defNormalProp","__spreadValues","_b","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","MiddlewareArray","_super","species","prepend","curryGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","isBoolean","thunkMiddleware","getDefaultMiddleware","configureStore","rootReducer","curriedGetDefaultMiddleware","_c","devTools","_f","_g","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","compose2","trace","storeEnhancers","createAction","prepareAction","actionCreator","prepared","payload","meta","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","addDefaultCase","createSlice","initialState","extraReducers","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","reducerName","caseReducer","prepareCallback","maybeReducerWithPrepare","prepare","mapOrBuilderCallback","finalActionMatchers","finalDefaultCaseReducer","frozenInitialState","createNextState","caseReducers","cr","isDraft2","createReducer","actions","propIsEnumerable","toObject","val","test1","test2","fromCharCode","test3","shouldUseNative","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","createEventEmitter","handlers","on","handler","off","h","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","emitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","Consumer","_Component2","getValue","observedBits","_proto2","isarray","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","exec","m","escaped","offset","capture","group","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","c","charCodeAt","toUpperCase","opts","data","encode","encodeURIComponent","token","segment","JSON","stringify","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","_defineProperties","protoProps","staticProps","_assertThisInitialized","ReferenceError","_setPrototypeOf","_inherits","_possibleConstructorReturn","_getPrototypeOf","_toArray","consoleLogger","log","output","warn","baseLogger","Logger","concreteLogger","logger","debug","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","EventEmitter","observers","events","l","cloned","_cloned","defer","rej","promise","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","shift","setPath","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","escape","isIE10","chars","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","_isNativeReflectConstruct","Super","NewTarget","deepFind","keySeparator","paths","mix","endsWith","joinedPath","ResourceStore","_EventEmitter","defaultNS","ignoreJSONStructure","lng","silent","addNamespaces","emit","resources","addResource","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","find","v","postProcessor","processors","addPostProcessor","handle","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","language","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","r","ki","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","rule","getRule","resolvedOptions","pluralCategories","sort","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","idx","noAbs","abs","simplifyPluralSuffix","returnSuffix","includes","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","ownKeys$4","_objectSpread$4","Formatter","NumberFormat","currency","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","ListFormat","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split2","parseInt","parseFormatStr","valOptions","formatParams","locale","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","backend","queue","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","addResourceBundle","q","_getLastOfPath2","pushPath","what","remove","fcName","tried","wait","read","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","resolvedLanguage","setResolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","membersToCopy","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","g","_interopRequireDefault","_extends2","_defineProperty2","_toConsumableArray2","_classCallCheck2","_possibleConstructorReturn2","_getPrototypeOf2","_assertThisInitialized2","_createClass2","_inherits2","_propTypes","_react","_classnames","_throttle","Scrollspy","_React$Component","targetItems","inViewState","isScrolledPast","_handleSpy","items","arrayOf","currentClassName","scrolledPastClassName","componentTag","oneOfType","elementType","rootEl","getElementById","array","newArray","_getScrollDimension","scrollTop","doc","documentElement","body","parentNode","scrollHeight","targets","elemsInView","elemsOutView","viewStatusList","hasInViewAlready","currentContent","isInView","_isInView","isLastItem","isScrolled","_isScrolled","_isAtBottom","_fillArray","inView","outView","scrolledPast","_getScrolledPast","el","rootRect","_this$props","getBoundingClientRect","rect","winH","height","innerHeight","scrollBottom","elTop","top","elBottom","offsetHeight","_this$_getScrollDimen2","some","hasFoundInView","elemensViewState","_getElemsViewState","currentStatuses","_update","prevStatuses","_spy","_initSpyTarget","_initFromProps","onEvent","offEvent","Tag","_this$props2","counter","Children","_classNames","ChildTag","childClass","itemClass","loadPath","addPath","allowMultiLoading","parsePayload","request","reloadInterval","customHeaders","queryStringParams","crossDomain","withCredentials","overrideMimeType","requestOptions","mode","credentials","Backend","allOptions","setInterval","_readAny","loadUrlLanguages","loadUrlNamespaces","resolvedLoadPath","loadUrl","status","parseErr","finished","dataArray","resArray","_this$services","currentLanguage","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","fetch","ActiveXObject","fetchNode","addQueryString","queryString","paramName","headers","response","statusText","catch","requestWithFetch","open","setRequestHeader","onreadystatechange","readyState","responseText","requestWithXmlHttpRequest","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","fieldContentRegExp","serializeCookie","maxAge","floor","domain","expires","toUTCString","httpOnly","secure","sameSite","cookie","minutes","cookieOptions","Date","setTime","getTime","nameEQ","ca","cookie$1","lookup","lookupCookie","cookieMinutes","cookieDomain","querystring","pos","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","localStorage","testKey","setItem","removeItem","lookupLocalStorage","getItem","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","Fragment","StrictMode","Profiler","Suspense","u","w","z","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","refs","updater","D","E","isReactComponent","forceUpdate","F","isPureReactComponent","G","H","I","__self","__source","J","$$typeof","_owner","L","M","N","O","K","P","Q","_status","_result","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","toArray","only","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_payload","_init","useImperativeHandle","useState","aa","ba","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","qa","ma","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","tag","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","db","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","ob","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeOpacity","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","img","keygen","link","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","id","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","which","Td","width","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","email","month","password","tel","time","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","node","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","anchorNode","defaultView","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","onCommitFiberRoot","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","jsx","jsxs","arrayWithoutHoles","iterableToArray","nonIterableSpread","arrayLikeToArray","assertThisInitialized","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","any","instanceOf","objectOf","oneOf","shape","checkPropTypes","_default","timer","threshold","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","reverse","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_console","alreadyWarned","warnOnce","i18n","initialized","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","ready","addUsedNamespaces","getT","nsMode","_useState","_useState2","setT","boundReset","isInitial"],"mappings":"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","file":"static/js/2.8c5e93a5.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","module.exports = require(\"regenerator-runtime\");\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The minimum length of the national significant number.\r\nexport const MIN_LENGTH_FOR_NSN = 2\r\n\r\n// The ITU says the maximum length should be 15,\r\n// but one can find longer numbers in Germany.\r\nexport const MAX_LENGTH_FOR_NSN = 17\r\n\r\n// The maximum length of the country calling code.\r\nexport const MAX_LENGTH_COUNTRY_CODE = 3\r\n\r\n// Digits accepted in phone numbers\r\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\r\nexport const VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9'\r\n\r\n// `DASHES` will be right after the opening square bracket of the \"character class\"\r\nconst DASHES = '-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D'\r\nconst SLASHES = '\\uFF0F/'\r\nconst DOTS = '\\uFF0E.'\r\nexport const WHITESPACE = ' \\u00A0\\u00AD\\u200B\\u2060\\u3000'\r\nconst BRACKETS = '()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]'\r\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\r\nconst TILDES = '~\\u2053\\u223C\\uFF5E'\r\n\r\n// Regular expression of acceptable punctuation found in phone numbers. This\r\n// excludes punctuation found as a leading character only. This consists of dash\r\n// characters, white space characters, full stops, slashes, square brackets,\r\n// parentheses and tildes. Full-width variants are also present.\r\nexport const VALID_PUNCTUATION = `${DASHES}${SLASHES}${DOTS}${WHITESPACE}${BRACKETS}${TILDES}`\r\n\r\nexport const PLUS_CHARS = '+\\uFF0B'\r\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","// https://stackoverflow.com/a/46971044/970769\r\nexport default class ParseError {\r\n constructor(code) {\r\n this.name = this.constructor.name\r\n this.message = code\r\n this.stack = (new Error(code)).stack\r\n }\r\n}\r\n\r\nParseError.prototype = Object.create(Error.prototype)\r\nParseError.prototype.constructor = ParseError","// Copy-pasted from:\r\n// https://github.com/substack/semver-compare/blob/master/index.js\r\n//\r\n// Inlining this function because some users reported issues with\r\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\r\n//\r\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\r\nexport default function(a, b) {\r\n a = a.split('-')\r\n b = b.split('-')\r\n var pa = a[0].split('.')\r\n var pb = b[0].split('.')\r\n for (var i = 0; i < 3; i++) {\r\n var na = Number(pa[i])\r\n var nb = Number(pb[i])\r\n if (na > nb) return 1\r\n if (nb > na) return -1\r\n if (!isNaN(na) && isNaN(nb)) return 1\r\n if (isNaN(na) && !isNaN(nb)) return -1\r\n }\r\n if (a[1] && b[1]) {\r\n return a[1] > b[1] ? 1 : (a[1] < b[1] ? -1 : 0)\r\n }\r\n return !a[1] && b[1] ? 1 : (a[1] && !b[1] ? -1 : 0)\r\n}","import compare from './tools/semver-compare'\r\n\r\n// Added \"possibleLengths\" and renamed\r\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\r\nconst V2 = '1.0.18'\r\n\r\n// Added \"idd_prefix\" and \"default_idd_prefix\".\r\nconst V3 = '1.2.0'\r\n\r\n// Moved `001` country code to \"nonGeographic\" section of metadata.\r\nconst V4 = '1.7.35'\r\n\r\nconst DEFAULT_EXT_PREFIX = ' ext. '\r\n\r\nconst CALLING_CODE_REG_EXP = /^\\d+$/\r\n\r\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\r\nexport default class Metadata {\r\n\tconstructor(metadata) {\r\n\t\tvalidateMetadata(metadata)\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, metadata)\r\n\t}\r\n\r\n\tgetCountries() {\r\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\r\n\t}\r\n\r\n\tgetCountryMetadata(countryCode) {\r\n\t\treturn this.metadata.countries[countryCode]\r\n\t}\r\n\r\n\tnonGeographic() {\r\n\t\tif (this.v1 || this.v2 || this.v3) return\r\n\t\t// `nonGeographical` was a typo.\r\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\r\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\r\n\t}\r\n\r\n\thasCountry(country) {\r\n\t\treturn this.getCountryMetadata(country) !== undefined\r\n\t}\r\n\r\n\thasCallingCode(callingCode) {\r\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tif (this.nonGeographic()[callingCode]) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisNonGeographicCallingCode(callingCode) {\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\r\n\t\t} else {\r\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountry(countryCode) {\r\n\t\treturn this.selectNumberingPlan(countryCode)\r\n\t}\r\n\r\n\tselectNumberingPlan(countryCode, callingCode) {\r\n\t\t// Supports just passing `callingCode` as the first argument.\r\n\t\tif (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\r\n\t\t\tcallingCode = countryCode\r\n\t\t\tcountryCode = null\r\n\t\t}\r\n\t\tif (countryCode && countryCode !== '001') {\r\n\t\t\tif (!this.hasCountry(countryCode)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this)\r\n\t\t} else if (callingCode) {\r\n\t\t\tif (!this.hasCallingCode(callingCode)) {\r\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\r\n\t\t} else {\r\n\t\t\tthis.numberingPlan = undefined\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\tgetCountryCodesForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\tif (countryCodes) {\r\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\r\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\r\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\r\n\t\t\t// it's specifically for \"countries\" now.\r\n\t\t\t// Older versions of custom metadata will simply skip parsing\r\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\r\n\t\t\t// of this library: it's not considered a bug,\r\n\t\t\t// because such numbers are extremely rare,\r\n\t\t\t// and developers extremely rarely use custom metadata.\r\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn countryCodes\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountryCodeForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\r\n\t\tif (countryCodes) {\r\n\t\t\treturn countryCodes[0]\r\n\t\t}\r\n\t}\r\n\r\n\tgetNumberingPlanMetadata(callingCode) {\r\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\r\n\t\tif (countryCode) {\r\n\t\t\treturn this.getCountryMetadata(countryCode)\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\r\n\t\t\tif (metadata) {\r\n\t\t\t\treturn metadata\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn this.metadata.countries['001']\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountryCallingCode() {\r\n\t\treturn this.numberingPlan.callingCode()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tIDDPrefix() {\r\n\t\treturn this.numberingPlan.IDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tdefaultIDDPrefix() {\r\n\t\treturn this.numberingPlan.defaultIDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalNumberPattern() {\r\n\t\treturn this.numberingPlan.nationalNumberPattern()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tpossibleLengths() {\r\n\t\treturn this.numberingPlan.possibleLengths()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tformats() {\r\n\t\treturn this.numberingPlan.formats()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixForParsing() {\r\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tleadingDigits() {\r\n\t\treturn this.numberingPlan.leadingDigits()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\thasTypes() {\r\n\t\treturn this.numberingPlan.hasTypes()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\ttype(type) {\r\n\t\treturn this.numberingPlan.type(type)\r\n\t}\r\n\r\n\t// Deprecated.\r\n\text() {\r\n\t\treturn this.numberingPlan.ext()\r\n\t}\r\n\r\n\tcountryCallingCodes() {\r\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\r\n\t\treturn this.metadata.country_calling_codes\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tchooseCountryByCountryCallingCode(callingCode) {\r\n\t\treturn this.selectNumberingPlan(callingCode)\r\n\t}\r\n\r\n\thasSelectedNumberingPlan() {\r\n\t\treturn this.numberingPlan !== undefined\r\n\t}\r\n}\r\n\r\nclass NumberingPlan {\r\n\tconstructor(metadata, globalMetadataObject) {\r\n\t\tthis.globalMetadataObject = globalMetadataObject\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\r\n\t}\r\n\r\n\tcallingCode() {\r\n\t\treturn this.metadata[0]\r\n\t}\r\n\r\n\t// Formatting information for regions which share\r\n\t// a country calling code is contained by only one region\r\n\t// for performance reasons. For example, for NANPA region\r\n\t// (\"North American Numbering Plan Administration\",\r\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\r\n\t// it will be contained in the metadata for `US`.\r\n\tgetDefaultCountryMetadataForRegion() {\r\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\r\n\t}\r\n\r\n\tIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[1]\r\n\t}\r\n\r\n\tdefaultIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[12]\r\n\t}\r\n\r\n\tnationalNumberPattern() {\r\n\t\tif (this.v1 || this.v2) return this.metadata[1]\r\n\t\treturn this.metadata[2]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.v1) return\r\n\t\treturn this.metadata[this.v2 ? 2 : 3]\r\n\t}\r\n\r\n\t_getFormats(metadata) {\r\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// formats are all stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tformats() {\r\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []\r\n\t\treturn formats.map(_ => new Format(_, this))\r\n\t}\r\n\r\n\tnationalPrefix() {\r\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\r\n\t}\r\n\r\n\t_getNationalPrefixFormattingRule(metadata) {\r\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\t_nationalPrefixForParsing() {\r\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\r\n\t}\r\n\r\n\tnationalPrefixForParsing() {\r\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\r\n\t\t// then infer it from `national_prefix` (if any)\r\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\r\n\t}\r\n\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\r\n\t}\r\n\r\n\t_getNationalPrefixIsOptionalWhenFormatting() {\r\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// \"national prefix is optional when formatting\" flag is\r\n\t// stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\r\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\tleadingDigits() {\r\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\r\n\t}\r\n\r\n\ttypes() {\r\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\r\n\t}\r\n\r\n\thasTypes() {\r\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (this.types() && this.types().length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// Versions <= 1.2.4: can be `undefined`.\r\n\t\t// Version >= 1.2.5: can be `0`.\r\n\t\treturn !!this.types()\r\n\t}\r\n\r\n\ttype(type) {\r\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\r\n\t\t\treturn new Type(getType(this.types(), type), this)\r\n\t\t}\r\n\t}\r\n\r\n\text() {\r\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\r\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\r\n\t}\r\n}\r\n\r\nclass Format {\r\n\tconstructor(format, metadata) {\r\n\t\tthis._format = format\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\treturn this._format[0]\r\n\t}\r\n\r\n\tformat() {\r\n\t\treturn this._format[1]\r\n\t}\r\n\r\n\tleadingDigitsPatterns() {\r\n\t\treturn this._format[2] || []\r\n\t}\r\n\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\r\n\t}\r\n\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\r\n\t\t// National prefix is omitted if there's no national prefix formatting rule\r\n\t\t// set for this country, or when the national prefix formatting rule\r\n\t\t// contains no national prefix itself, or when this rule is set but\r\n\t\t// national prefix is optional for this phone number format\r\n\t\t// (and it is not enforced explicitly)\r\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\t// Checks whether national prefix formatting rule contains national prefix.\r\n\tusesNationalPrefix() {\r\n\t\treturn this.nationalPrefixFormattingRule() &&\r\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\r\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\r\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\r\n\t\t\t// when `national_prefix_formatting_rule` is not present.\r\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\r\n\t\t\t// `0` number isn't returned.\r\n\t\t\t? true\r\n\t\t\t: false\r\n\t}\r\n\r\n\tinternationalFormat() {\r\n\t\treturn this._format[5] || this.format()\r\n\t}\r\n}\r\n\r\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 */\r\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\r\n\r\nclass Type {\r\n\tconstructor(type, metadata) {\r\n\t\tthis.type = type\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\tif (this.metadata.v1) return this.type\r\n\t\treturn this.type[0]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.metadata.v1) return\r\n\t\treturn this.type[1] || this.metadata.possibleLengths()\r\n\t}\r\n}\r\n\r\nfunction getType(types, type) {\r\n\tswitch (type) {\r\n\t\tcase 'FIXED_LINE':\r\n\t\t\treturn types[0]\r\n\t\tcase 'MOBILE':\r\n\t\t\treturn types[1]\r\n\t\tcase 'TOLL_FREE':\r\n\t\t\treturn types[2]\r\n\t\tcase 'PREMIUM_RATE':\r\n\t\t\treturn types[3]\r\n\t\tcase 'PERSONAL_NUMBER':\r\n\t\t\treturn types[4]\r\n\t\tcase 'VOICEMAIL':\r\n\t\t\treturn types[5]\r\n\t\tcase 'UAN':\r\n\t\t\treturn types[6]\r\n\t\tcase 'PAGER':\r\n\t\t\treturn types[7]\r\n\t\tcase 'VOIP':\r\n\t\t\treturn types[8]\r\n\t\tcase 'SHARED_COST':\r\n\t\t\treturn types[9]\r\n\t}\r\n}\r\n\r\nexport function validateMetadata(metadata) {\r\n\tif (!metadata) {\r\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\r\n\t}\r\n\r\n\t// `country_phone_code_to_countries` was renamed to\r\n\t// `country_calling_codes` in `1.0.18`.\r\n\tif (!is_object(metadata) || !is_object(metadata.countries)) {\r\n\t\tthrow 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 ${is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata}.`)\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst is_object = _ => typeof _ === 'object'\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst type_of = _ => typeof _\r\n\r\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 */\r\nexport function getExtPrefix(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).ext()\r\n\t}\r\n\treturn DEFAULT_EXT_PREFIX\r\n}\r\n\r\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 */\r\nexport function getCountryCallingCode(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).countryCallingCode()\r\n\t}\r\n\tthrow new Error(`Unknown country: ${country}`)\r\n}\r\n\r\nexport function isSupportedCountry(country, metadata) {\r\n\t// metadata = new Metadata(metadata)\r\n\t// return metadata.hasCountry(country)\r\n\treturn metadata.countries[country] !== undefined\r\n}\r\n\r\nfunction setVersion(metadata) {\r\n\tconst { version } = metadata\r\n\tif (typeof version === 'number') {\r\n\t\tthis.v1 = version === 1\r\n\t\tthis.v2 = version === 2\r\n\t\tthis.v3 = version === 3\r\n\t\tthis.v4 = version === 4\r\n\t} else {\r\n\t\tif (!version) {\r\n\t\t\tthis.v1 = true\r\n\t\t} else if (compare(version, V3) === -1) {\r\n\t\t\tthis.v2 = true\r\n\t\t} else if (compare(version, V4) === -1) {\r\n\t\t\tthis.v3 = true\r\n\t\t} else {\r\n\t\t\tthis.v4 = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\r\n// function isCountryCode(countryCode) {\r\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\r\n// }","import { VALID_DIGITS } from '../../constants'\r\n\r\n// The RFC 3966 format for extensions.\r\nconst RFC3966_EXTN_PREFIX = ';ext='\r\n\r\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 */\r\nconst getExtensionDigitsPattern = (maxLength) => `([${VALID_DIGITS}]{1,${maxLength}})`\r\n\r\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 */\r\nexport default function createExtensionPattern(purpose) {\r\n\t// We cap the maximum length of an extension based on the ambiguity of the way\r\n\t// the extension is prefixed. As per ITU, the officially allowed length for\r\n\t// extensions is actually 40, but we don't support this since we haven't seen real\r\n\t// examples and this introduces many false interpretations as the extension labels\r\n\t// are not standardized.\r\n\t/** @type {string} */\r\n\tvar extLimitAfterExplicitLabel = '20';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterLikelyLabel = '15';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterAmbiguousChar = '9';\r\n\t/** @type {string} */\r\n\tvar extLimitWhenNotSure = '6';\r\n\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\u00A0\\\\t,]*\";\r\n\t// Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\r\n\t/** @type {string} */\r\n\tvar possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\u00A0\\\\t,-]*\";\r\n\t/** @type {string} */\r\n\tvar optionalExtnSuffix = \"#?\";\r\n\r\n\t// Here the extension is called out in more explicit way, i.e mentioning it obvious\r\n\t// patterns like \"ext.\".\r\n\t/** @type {string} */\r\n\tvar explicitExtLabels =\r\n\t \"(?:e?xt(?:ensi(?:o\\u0301?|\\u00F3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\r\n\t// One-character symbols that can be used to indicate an extension, and less\r\n\t// commonly used or more ambiguous extension labels.\r\n\t/** @type {string} */\r\n\tvar ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\r\n\t// When extension is not separated clearly.\r\n\t/** @type {string} */\r\n\tvar ambiguousSeparator = \"[- ]+\";\r\n\t// This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\r\n\t// comma as extension label may have it.\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsNumberExtLabelNoComma = \"[ \\u00A0\\\\t]*\";\r\n\t// \",,\" is commonly used for auto dialling the extension when connected. First\r\n\t// comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\r\n\t// not repeat it here. Semi-colon works in Iphone and Android also to pop up a\r\n\t// button with the extension number following.\r\n\t/** @type {string} */\r\n\tvar autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\r\n\r\n\t/** @type {string} */\r\n\tvar rfcExtn = RFC3966_EXTN_PREFIX\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\r\n\t/** @type {string} */\r\n\tvar explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel)\r\n\t + optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t+ getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar americanStyleExtnWithSuffix = ambiguousSeparator\r\n\t+ getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\r\n\r\n\t/** @type {string} */\r\n\tvar autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterLikelyLabel)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + \"(?:,)+\" + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t + optionalExtnSuffix;\r\n\r\n\t// The first regular expression covers RFC 3966 format, where the extension is added\r\n\t// using \";ext=\". The second more generic where extension is mentioned with explicit\r\n\t// labels like \"ext:\". In both the above cases we allow more numbers in extension than\r\n\t// any other extension labels. The third one captures when single character extension\r\n\t// labels or less commonly used labels are used. In such cases we capture fewer\r\n\t// extension digits in order to reduce the chance of falsely interpreting two\r\n\t// numbers beside each other as a number + extension. The fourth one covers the\r\n\t// special case of American numbers where the extension is written with a hash\r\n\t// at the end, such as \"- 503#\". The fifth one is exclusively for extension\r\n\t// autodialling formats which are used when dialling and in this case we accept longer\r\n\t// extensions. The last one is more liberal on the number of commas that acts as\r\n\t// extension labels, so we have a strict cap on the number of digits in such extensions.\r\n\treturn rfcExtn + \"|\"\r\n\t + explicitExtn + \"|\"\r\n\t + ambiguousExtn + \"|\"\r\n\t + americanStyleExtnWithSuffix + \"|\"\r\n\t + autoDiallingExtn + \"|\"\r\n\t + onlyCommasExtn;\r\n}","import {\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from '../constants'\r\n\r\nimport createExtensionPattern from './extension/createExtensionPattern'\r\n\r\n// Regular expression of viable phone numbers. This is location independent.\r\n// Checks we have at least three leading digits, and only valid punctuation,\r\n// alpha characters and digits in the phone number. Does not include extension\r\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\r\n// used as a placeholder for carrier codes, for example in Brazilian phone\r\n// numbers. We also allow multiple '+' characters at the start.\r\n//\r\n// Corresponds to the following:\r\n// [digits]{minLengthNsn}|\r\n// plus_sign*\r\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\r\n//\r\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\r\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\r\n// The second expression restricts the number of digits to three or more, but\r\n// then allows them to be in international form, and to have alpha-characters\r\n// and punctuation. We split up the two reg-exes here and combine them when\r\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\r\n// with ^ and append $ to each branch.\r\n//\r\n// \"Note VALID_PUNCTUATION starts with a -,\r\n// so must be the first in the range\" (c) Google devs.\r\n// (wtf did they mean by saying that; probably nothing)\r\n//\r\nconst MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'\r\n//\r\n// And this is the second reg-exp:\r\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\r\n//\r\nexport const VALID_PHONE_NUMBER =\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){3,}' +\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']*'\r\n\r\nexport const VALID_PHONE_NUMBER_WITH_EXTENSION =\r\n\tVALID_PHONE_NUMBER +\r\n\t// Phone number extensions\r\n\t'(?:' + createExtensionPattern() + ')?'\r\n\r\n// The combined regular expression for valid phone numbers:\r\n//\r\nconst VALID_PHONE_NUMBER_PATTERN = new RegExp(\r\n\t// Either a short two-digit-only phone number\r\n\t'^' +\r\n\t\tMIN_LENGTH_PHONE_NUMBER_PATTERN +\r\n\t'$' +\r\n\t'|' +\r\n\t// Or a longer fully parsed phone number (min 3 characters)\r\n\t'^' +\r\n\t\tVALID_PHONE_NUMBER_WITH_EXTENSION +\r\n\t'$'\r\n, 'i')\r\n\r\n// Checks to see if the string of characters could possibly be a phone number at\r\n// all. At the moment, checks to see that the string begins with at least 2\r\n// digits, ignoring any punctuation commonly found in phone numbers. This method\r\n// does not require the number to be normalized in advance - but does assume\r\n// that leading non-number symbols have been removed, such as by the method\r\n// `extract_possible_number`.\r\n//\r\nexport default function isViablePhoneNumber(number) {\r\n\treturn number.length >= MIN_LENGTH_FOR_NSN &&\r\n\t\tVALID_PHONE_NUMBER_PATTERN.test(number)\r\n}","import createExtensionPattern from './createExtensionPattern'\r\n\r\n// Regexp of all known extension prefixes used by different regions followed by\r\n// 1 or more valid digits, for use when parsing.\r\nconst EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i')\r\n\r\n// Strips any extension (as in, the part of the number dialled after the call is\r\n// connected, usually indicated with extn, ext, x or similar) from the end of\r\n// the number, and returns it.\r\nexport default function extractExtension(number) {\r\n\tconst start = number.search(EXTN_PATTERN)\r\n\tif (start < 0) {\r\n\t\treturn {}\r\n\t}\r\n\t// If we find a potential extension, and the number preceding this is a viable\r\n\t// number, we assume it is an extension.\r\n\tconst numberWithoutExtension = number.slice(0, start)\r\n\tconst matches = number.match(EXTN_PATTERN)\r\n\tlet i = 1\r\n\twhile (i < matches.length) {\r\n\t\tif (matches[i]) {\r\n\t\t\treturn {\r\n\t\t\t\tnumber: numberWithoutExtension,\r\n\t\t\t\text: matches[i]\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}","// These mappings map a character (key) to a specific digit that should\r\n// replace it for normalization purposes. Non-European digits that\r\n// may be used in phone numbers are mapped to a European equivalent.\r\n//\r\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n//\r\nexport const DIGITS = {\r\n\t'0': '0',\r\n\t'1': '1',\r\n\t'2': '2',\r\n\t'3': '3',\r\n\t'4': '4',\r\n\t'5': '5',\r\n\t'6': '6',\r\n\t'7': '7',\r\n\t'8': '8',\r\n\t'9': '9',\r\n\t'\\uFF10': '0', // Fullwidth digit 0\r\n\t'\\uFF11': '1', // Fullwidth digit 1\r\n\t'\\uFF12': '2', // Fullwidth digit 2\r\n\t'\\uFF13': '3', // Fullwidth digit 3\r\n\t'\\uFF14': '4', // Fullwidth digit 4\r\n\t'\\uFF15': '5', // Fullwidth digit 5\r\n\t'\\uFF16': '6', // Fullwidth digit 6\r\n\t'\\uFF17': '7', // Fullwidth digit 7\r\n\t'\\uFF18': '8', // Fullwidth digit 8\r\n\t'\\uFF19': '9', // Fullwidth digit 9\r\n\t'\\u0660': '0', // Arabic-indic digit 0\r\n\t'\\u0661': '1', // Arabic-indic digit 1\r\n\t'\\u0662': '2', // Arabic-indic digit 2\r\n\t'\\u0663': '3', // Arabic-indic digit 3\r\n\t'\\u0664': '4', // Arabic-indic digit 4\r\n\t'\\u0665': '5', // Arabic-indic digit 5\r\n\t'\\u0666': '6', // Arabic-indic digit 6\r\n\t'\\u0667': '7', // Arabic-indic digit 7\r\n\t'\\u0668': '8', // Arabic-indic digit 8\r\n\t'\\u0669': '9', // Arabic-indic digit 9\r\n\t'\\u06F0': '0', // Eastern-Arabic digit 0\r\n\t'\\u06F1': '1', // Eastern-Arabic digit 1\r\n\t'\\u06F2': '2', // Eastern-Arabic digit 2\r\n\t'\\u06F3': '3', // Eastern-Arabic digit 3\r\n\t'\\u06F4': '4', // Eastern-Arabic digit 4\r\n\t'\\u06F5': '5', // Eastern-Arabic digit 5\r\n\t'\\u06F6': '6', // Eastern-Arabic digit 6\r\n\t'\\u06F7': '7', // Eastern-Arabic digit 7\r\n\t'\\u06F8': '8', // Eastern-Arabic digit 8\r\n\t'\\u06F9': '9' // Eastern-Arabic digit 9\r\n}\r\n\r\nexport function parseDigit(character) {\r\n\treturn DIGITS[character]\r\n}\r\n\r\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 */\r\nexport default function parseDigits(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tconst digit = parseDigit(character)\r\n\t\tif (digit) {\r\n\t\t\tresult += digit\r\n\t\t}\r\n\t}\r\n\treturn result\r\n}","import { parseDigit } from './helpers/parseDigits'\r\n\r\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 */\r\nexport default function parseIncompletePhoneNumber(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tresult += parsePhoneNumberCharacter(character, result) || ''\r\n\t}\r\n\treturn result\r\n}\r\n\r\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 {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\r\n\t// Only allow a leading `+`.\r\n\tif (character === '+') {\r\n\t\t// If this `+` is not the first parsed character\r\n\t\t// then discard it.\r\n\t\tif (prevParsedCharacters) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\t// Allow digits.\r\n\treturn parseDigit(character)\r\n}","import mergeArrays from './mergeArrays'\r\n\r\nexport default function checkNumberLength(nationalNumber, metadata) {\r\n\treturn checkNumberLengthForType(nationalNumber, undefined, metadata)\r\n}\r\n\r\n// Checks whether a number is possible for the country based on its length.\r\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\r\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\r\n\tconst type_info = metadata.type(type)\r\n\r\n\t// There should always be \"\" set for every type element.\r\n\t// This is declared in the XML schema.\r\n\t// For size efficiency, where a sub-description (e.g. fixed-line)\r\n\t// has the same \"\" as the \"general description\", this is missing,\r\n\t// so we fall back to the \"general description\". Where no numbers of the type\r\n\t// exist at all, there is one possible length (-1) which is guaranteed\r\n\t// not to match the length of any real phone number.\r\n\tlet possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths()\r\n\t// let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\r\n\r\n\t// Metadata before version `1.0.18` didn't contain `possible_lengths`.\r\n\tif (!possible_lengths) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (type === 'FIXED_LINE_OR_MOBILE') {\r\n\t\t// No such country in metadata.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (!metadata.type('FIXED_LINE')) {\r\n\t\t\t// The rare case has been encountered where no fixedLine data is available\r\n\t\t\t// (true for some non-geographic entities), so we just check mobile.\r\n\t\t\treturn checkNumberLengthForType(nationalNumber, 'MOBILE', metadata)\r\n\t\t}\r\n\r\n\t\tconst mobile_type = metadata.type('MOBILE')\r\n\t\tif (mobile_type) {\r\n\t\t\t// Merge the mobile data in if there was any. \"Concat\" creates a new\r\n\t\t\t// array, it doesn't edit possible_lengths in place, so we don't need a copy.\r\n\t\t\t// Note that when adding the possible lengths from mobile, we have\r\n\t\t\t// to again check they aren't empty since if they are this indicates\r\n\t\t\t// they are the same as the general desc and should be obtained from there.\r\n\t\t\tpossible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths())\r\n\t\t\t// The current list is sorted; we need to merge in the new list and\r\n\t\t\t// re-sort (duplicates are okay). Sorting isn't so expensive because\r\n\t\t\t// the lists are very small.\r\n\r\n\t\t\t// if (local_lengths) {\r\n\t\t\t// \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\r\n\t\t\t// } else {\r\n\t\t\t// \tlocal_lengths = mobile_type.possibleLengthsLocal()\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\t// If the type doesn't exist then return 'INVALID_LENGTH'.\r\n\telse if (type && !type_info) {\r\n\t\treturn 'INVALID_LENGTH'\r\n\t}\r\n\r\n\tconst actual_length = nationalNumber.length\r\n\r\n\t// In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\r\n\t// // This is safe because there is never an overlap beween the possible lengths\r\n\t// // and the local-only lengths; this is checked at build time.\r\n\t// if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\r\n\t// {\r\n\t// \treturn 'IS_POSSIBLE_LOCAL_ONLY'\r\n\t// }\r\n\r\n\tconst minimum_length = possible_lengths[0]\r\n\r\n\tif (minimum_length === actual_length) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (minimum_length > actual_length) {\r\n\t\treturn 'TOO_SHORT'\r\n\t}\r\n\r\n\tif (possible_lengths[possible_lengths.length - 1] < actual_length) {\r\n\t\treturn 'TOO_LONG'\r\n\t}\r\n\r\n\t// We skip the first element since we've already checked it.\r\n\treturn possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'\r\n}","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\r\nexport default function mergeArrays(a, b) {\r\n\tconst merged = a.slice()\r\n\r\n\tfor (const element of b) {\r\n\t\tif (a.indexOf(element) < 0) {\r\n\t\t\tmerged.push(element)\r\n\t\t}\r\n\t}\r\n\r\n\treturn merged.sort((a, b) => a - b)\r\n\r\n\t// ES6 version, requires Set polyfill.\r\n\t// let merged = new Set(a)\r\n\t// for (const element of b) {\r\n\t// \tmerged.add(i)\r\n\t// }\r\n\t// return Array.from(merged).sort((a, b) => a - b)\r\n}","import Metadata from './metadata'\r\nimport checkNumberLength from './helpers/checkNumberLength'\r\n\r\nexport default function isPossiblePhoneNumber(input, options, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (options === undefined) {\r\n\t\toptions = {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (options.v2) {\r\n\t\tif (!input.countryCallingCode) {\r\n\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t}\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t} else {\r\n\t\tif (!input.phone) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (input.country) {\r\n\t\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t\t}\r\n\t\t\tmetadata.country(input.country)\r\n\t\t} else {\r\n\t\t\tif (!input.countryCallingCode) {\r\n\t\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t\t}\r\n\t\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t\t}\r\n\t}\r\n\r\n\tif (metadata.possibleLengths()) {\r\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, metadata)\r\n\t} else {\r\n\t\t// There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\r\n\t\t// were missing for \"non-geographical\" numbering plans.\r\n\t\t// Just assume the number is possible in such cases:\r\n\t\t// it's unlikely that anyone generated their custom metadata\r\n\t\t// in that short period of time (one day).\r\n\t\t// This code can be removed in some future major version update.\r\n\t\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\r\n\t\t\t// \"Non-geographic entities\" did't have `possibleLengths`\r\n\t\t\t// due to a bug in metadata generation process.\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isPossibleNumber(nationalNumber, metadata) { //, isInternational) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'IS_POSSIBLE':\r\n\t\t\treturn true\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t// \treturn !isInternational\r\n\t\tdefault:\r\n\t\t\treturn false\r\n\t}\r\n}","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\r\nexport default function matchesEntirely(text, regular_expression) {\r\n\t// If assigning the `''` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\ttext = text || ''\r\n\treturn new RegExp('^(?:' + regular_expression + ')$').test(text)\r\n}","import Metadata from '../metadata'\r\nimport matchesEntirely from './matchesEntirely'\r\n\r\nconst NON_FIXED_LINE_PHONE_TYPES = [\r\n\t'MOBILE',\r\n\t'PREMIUM_RATE',\r\n\t'TOLL_FREE',\r\n\t'SHARED_COST',\r\n\t'VOIP',\r\n\t'PERSONAL_NUMBER',\r\n\t'PAGER',\r\n\t'UAN',\r\n\t'VOICEMAIL'\r\n]\r\n\r\n// Finds out national phone number type (fixed line, mobile, etc)\r\nexport default function getNumberType(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\t// When `parse()` returned `{}`\r\n\t// meaning that the phone number is not a valid one.\r\n\tif (!input.country) {\r\n\t\treturn\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// The following is copy-pasted from the original function:\r\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\r\n\r\n\t// Is this national number even valid for this country\r\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// Is it fixed line number\r\n\tif (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\r\n\t\t// Because duplicate regular expressions are removed\r\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\r\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\r\n\t\t//\r\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// v1 metadata.\r\n\t\t// Legacy.\r\n\t\t// Deprecated.\r\n\t\tif (!metadata.type('MOBILE')) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\r\n\t\t// (no such country in the minimal metadata set)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\treturn 'FIXED_LINE'\r\n\t}\r\n\r\n\tfor (const type of NON_FIXED_LINE_PHONE_TYPES) {\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\r\n\t\t\treturn type\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\r\n\ttype = metadata.type(type)\r\n\tif (!type || !type.pattern()) {\r\n\t\treturn false\r\n\t}\r\n\t// Check if any possible number lengths are present;\r\n\t// if so, we use them to avoid checking\r\n\t// the validation pattern if they don't match.\r\n\t// If they are absent, this means they match\r\n\t// the general description, which we have\r\n\t// already checked before a specific number type.\r\n\tif (type.possibleLengths() &&\r\n\t\ttype.possibleLengths().indexOf(nationalNumber.length) < 0) {\r\n\t\treturn false\r\n\t}\r\n\treturn matchesEntirely(nationalNumber, type.pattern())\r\n}","import { VALID_PUNCTUATION } from '../constants'\r\n\r\n// Removes brackets and replaces dashes with spaces.\r\n//\r\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\r\n//\r\n// For some reason Google's metadata contains ``s with brackets and dashes.\r\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\r\n//\r\n// For example, Google's `` for USA is `+1 213-373-4253`.\r\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\r\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\r\n//\r\n// \"The country calling code for all countries participating in the NANP is 1.\r\n// In international format, an NANP number should be listed as +1 301 555 01 00,\r\n// where 301 is an area code (Maryland).\"\r\n//\r\n// I personally prefer the international format without any punctuation.\r\n// For example, brackets are remnants of the old age, meaning that the\r\n// phone number part in brackets (so called \"area code\") can be omitted\r\n// if dialing within the same \"area\".\r\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\r\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\r\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\r\n// He has a couple of seconds to memorize that number until it passes by.\r\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\r\n// but with hyphens instead of spaces the grouping is more explicit.\r\n// I personally think that hyphens introduce visual clutter,\r\n// so I prefer replacing them with spaces in international numbers.\r\n// In the modern age all output is done on displays where spaces are clearly distinguishable\r\n// so hyphens can be safely replaced with spaces without losing any legibility.\r\n//\r\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\r\n\treturn formattedNumber.replace(new RegExp(`[${VALID_PUNCTUATION}]+`, 'g'), ' ').trim()\r\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle'\r\n\r\n// This was originally set to $1 but there are some countries for which the\r\n// first group is not used in the national pattern (e.g. Argentina) so the $1\r\n// group does not match correctly. Therefore, we use `\\d`, so that the first\r\n// group actually used in the pattern will be matched.\r\nexport const FIRST_GROUP_PATTERN = /(\\$\\d)/\r\n\r\nexport default function formatNationalNumberUsingFormat(\r\n\tnumber,\r\n\tformat,\r\n\t{\r\n\t\tuseInternationalFormat,\r\n\t\twithNationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tmetadata\r\n\t}\r\n) {\r\n\tconst formattedNumber = number.replace(\r\n\t\tnew RegExp(format.pattern()),\r\n\t\tuseInternationalFormat\r\n\t\t\t? format.internationalFormat()\r\n\t\t\t: (\r\n\t\t\t\t// This library doesn't use `domestic_carrier_code_formatting_rule`,\r\n\t\t\t\t// because that one is only used when formatting phone numbers\r\n\t\t\t\t// for dialing from a mobile phone, and this is not a dialing library.\r\n\t\t\t\t// carrierCode && format.domesticCarrierCodeFormattingRule()\r\n\t\t\t\t// \t// First, replace the $CC in the formatting rule with the desired carrier code.\r\n\t\t\t\t// \t// Then, replace the $FG in the formatting rule with the first group\r\n\t\t\t\t// \t// and the carrier code combined in the appropriate way.\r\n\t\t\t\t// \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\r\n\t\t\t\t// \t: (\r\n\t\t\t\t// \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t// \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t// \t\t\t: format.format()\r\n\t\t\t\t// \t)\r\n\t\t\t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t\t: format.format()\r\n\t\t\t)\r\n\t)\r\n\tif (useInternationalFormat) {\r\n\t\treturn applyInternationalSeparatorStyle(formattedNumber)\r\n\t}\r\n\treturn formattedNumber\r\n}","import Metadata from '../metadata'\r\n\r\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 */\r\nconst SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/\r\n\r\n// For regions that have multiple IDD prefixes\r\n// a preferred IDD prefix is returned.\r\nexport default function getIddPrefix(country, callingCode, metadata) {\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tif (countryMetadata.defaultIDDPrefix()) {\r\n\t\treturn countryMetadata.defaultIDDPrefix()\r\n\t}\r\n\tif (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\r\n\t\treturn countryMetadata.IDDPrefix()\r\n\t}\r\n}\r\n","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport matchesEntirely from './helpers/matchesEntirely'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat'\r\nimport Metadata, { getCountryCallingCode } from './metadata'\r\nimport getIddPrefix from './helpers/getIddPrefix'\r\nimport { formatRFC3966 } from './helpers/RFC3966'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\r\n}\r\n\r\n// Formats a phone number\r\n//\r\n// Example use cases:\r\n//\r\n// ```js\r\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL')\r\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\r\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\r\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\r\n// formatNumber('+78005553535', 'NATIONAL')\r\n// formatNumber('+78005553535', 'NATIONAL', metadata)\r\n// ```\r\n//\r\nexport default function formatNumber(input, format, options, metadata) {\r\n\t// Apply default options.\r\n\tif (options) {\r\n\t\toptions = { ...DEFAULT_OPTIONS, ...options }\r\n\t} else {\r\n\t\toptions = DEFAULT_OPTIONS\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (input.country && input.country !== '001') {\r\n\t\t// Validate `input.country`.\r\n\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t}\r\n\t\tmetadata.country(input.country)\r\n\t}\r\n\telse if (input.countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t}\r\n\telse return input.phone || ''\r\n\r\n\tconst countryCallingCode = metadata.countryCallingCode()\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// This variable should have been declared inside `case`s\r\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\r\n\tlet number\r\n\r\n\tswitch (format) {\r\n\t\tcase 'NATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options)\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'INTERNATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn `+${countryCallingCode}`\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options)\r\n\t\t\tnumber = `+${countryCallingCode} ${number}`\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'E.164':\r\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\r\n\t\t\treturn `+${countryCallingCode}${nationalNumber}`\r\n\r\n\t\tcase 'RFC3966':\r\n\t\t\treturn formatRFC3966({\r\n\t\t\t\tnumber: `+${countryCallingCode}${nationalNumber}`,\r\n\t\t\t\text: input.ext\r\n\t\t\t})\r\n\r\n\t\t// For reference, here's Google's IDD formatter:\r\n\t\t// https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\r\n\t\t// Not saying that this IDD formatter replicates it 1:1, but it seems to work.\r\n\t\t// Who would even need to format phone numbers in IDD format anyway?\r\n\t\tcase 'IDD':\r\n\t\t\tif (!options.fromCountry) {\r\n\t\t\t\treturn\r\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\r\n\t\t\t}\r\n\t\t\tconst formattedNumber = formatIDD(\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tinput.carrierCode,\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\toptions.fromCountry,\r\n\t\t\t\tmetadata\r\n\t\t\t)\r\n\t\t\treturn addExtension(formattedNumber, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unknown \"format\" argument passed to \"formatNumber()\": \"${format}\"`)\r\n\t}\r\n}\r\n\r\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\r\n\tconst format = chooseFormatForNumber(metadata.formats(), number)\r\n\tif (!format) {\r\n\t\treturn number\r\n\t}\r\n\treturn formatNationalNumberUsingFormat(\r\n\t\tnumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tuseInternationalFormat: formatAs === 'INTERNATIONAL',\r\n\t\t\twithNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && (options && options.nationalPrefix === false) ? false : true,\r\n\t\t\tcarrierCode,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n}\r\n\r\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\r\n\tfor (const format of availableFormats) {\r\n\t\t// Validate leading digits\r\n\t\tif (format.leadingDigitsPatterns().length > 0) {\r\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\r\n\t\t\tconst lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]\r\n\t\t\t// If leading digits don't match then move on to the next phone number format\r\n\t\t\tif (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Check that the national number matches the phone number format regular expression\r\n\t\tif (matchesEntirely(nationalNnumber, format.pattern())) {\r\n\t\t\treturn format\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\r\n\treturn ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber\r\n}\r\n\r\nfunction formatIDD(\r\n\tnationalNumber,\r\n\tcarrierCode,\r\n\tcountryCallingCode,\r\n\tfromCountry,\r\n\tmetadata\r\n) {\r\n\tconst fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata)\r\n\t// When calling within the same country calling code.\r\n\tif (fromCountryCallingCode === countryCallingCode) {\r\n\t\tconst formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata)\r\n\t\t// For NANPA regions, return the national format for these regions\r\n\t\t// but prefix it with the country calling code.\r\n\t\tif (countryCallingCode === '1') {\r\n\t\t\treturn countryCallingCode + ' ' + formattedNumber\r\n\t\t}\r\n\t\t// If regions share a country calling code, the country calling code need\r\n\t\t// not be dialled. This also applies when dialling within a region, so this\r\n\t\t// if clause covers both these cases. Technically this is the case for\r\n\t\t// dialling from La Reunion to other overseas departments of France (French\r\n\t\t// Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\r\n\t\t// this edge case for now and for those cases return the version including\r\n\t\t// country calling code. Details here:\r\n\t\t// http://www.petitfute.com/voyage/225-info-pratiques-reunion\r\n\t\t//\r\n\t\treturn formattedNumber\r\n\t}\r\n\tconst iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata)\r\n\tif (iddPrefix) {\r\n\t\treturn `${iddPrefix} ${countryCallingCode} ${formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)}`\r\n\t}\r\n}","import isViablePhoneNumber from './isViablePhoneNumber'\r\n\r\n// https://www.ietf.org/rfc/rfc3966.txt\r\n\r\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nexport function parseRFC3966(text) {\r\n\tlet number\r\n\tlet ext\r\n\r\n\t// Replace \"tel:\" with \"tel=\" for parsing convenience.\r\n\ttext = text.replace(/^tel:/, 'tel=')\r\n\r\n\tfor (const part of text.split(';')) {\r\n\t\tconst [name, value] = part.split('=')\r\n\t\tswitch (name) {\r\n\t\t\tcase 'tel':\r\n\t\t\t\tnumber = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'ext':\r\n\t\t\t\text = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'phone-context':\r\n\t\t\t\t// Only \"country contexts\" are supported.\r\n\t\t\t\t// \"Domain contexts\" are ignored.\r\n\t\t\t\tif (value[0] === '+') {\r\n\t\t\t\t\tnumber = value + number\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst result = { number }\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\r\nexport function formatRFC3966({ number, ext }) {\r\n\tif (!number) {\r\n\t\treturn ''\r\n\t}\r\n\tif (number[0] !== '+') {\r\n\t\tthrow new Error(`\"formatRFC3966()\" expects \"number\" to be in E.164 format.`)\r\n\t}\r\n\treturn `tel:${number}${ext ? ';ext=' + ext : ''}`\r\n}","import Metadata from './metadata'\r\nimport isPossibleNumber from './isPossibleNumber_'\r\nimport isValidNumber from './validate_'\r\nimport isValidNumberForRegion from './isValidNumberForRegion_'\r\nimport getNumberType from './helpers/getNumberType'\r\nimport formatNumber from './format_'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class PhoneNumber {\r\n\tconstructor(countryCallingCode, nationalNumber, metadata) {\r\n\t\tif (!countryCallingCode) {\r\n\t\t\tthrow new TypeError('`country` or `countryCallingCode` not passed')\r\n\t\t}\r\n\t\tif (!nationalNumber) {\r\n\t\t\tthrow new TypeError('`nationalNumber` not passed')\r\n\t\t}\r\n\t\tif (!metadata) {\r\n\t\t\tthrow new TypeError('`metadata` not passed')\r\n\t\t}\r\n\t\tconst _metadata = new Metadata(metadata)\r\n\t\t// If country code is passed then derive `countryCallingCode` from it.\r\n\t\t// Also store the country code as `.country`.\r\n\t\tif (isCountryCode(countryCallingCode)) {\r\n\t\t\tthis.country = countryCallingCode\r\n\t\t\t_metadata.country(countryCallingCode)\r\n\t\t\tcountryCallingCode = _metadata.countryCallingCode()\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\r\n\t\t\t\t\tthis.country = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.countryCallingCode = countryCallingCode\r\n\t\tthis.nationalNumber = nationalNumber\r\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tisPossible() {\r\n\t\treturn isPossibleNumber(this, { v2: true }, this.metadata)\r\n\t}\r\n\r\n\tisValid() {\r\n\t\treturn isValidNumber(this, { v2: true }, this.metadata)\r\n\t}\r\n\r\n\tisNonGeographic() {\r\n\t\tconst metadata = new Metadata(this.metadata)\r\n\t\treturn metadata.isNonGeographicCallingCode(this.countryCallingCode)\r\n\t}\r\n\r\n\tisEqual(phoneNumber) {\r\n\t\treturn this.number === phoneNumber.number && this.ext === phoneNumber.ext\r\n\t}\r\n\r\n\t// // Is just an alias for `this.isValid() && this.country === country`.\r\n\t// // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n\t// isValidForRegion(country) {\r\n\t// \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\r\n\t// }\r\n\r\n\tgetType() {\r\n\t\treturn getNumberType(this, { v2: true }, this.metadata)\r\n\t}\r\n\r\n\tformat(format, options) {\r\n\t\treturn formatNumber(\r\n\t\t\tthis,\r\n\t\t\tformat,\r\n\t\t\toptions ? { ...options, v2: true } : { v2: true },\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t}\r\n\r\n\tformatNational(options) {\r\n\t\treturn this.format('NATIONAL', options)\r\n\t}\r\n\r\n\tformatInternational(options) {\r\n\t\treturn this.format('INTERNATIONAL', options)\r\n\t}\r\n\r\n\tgetURI(options) {\r\n\t\treturn this.format('RFC3966', options)\r\n\t}\r\n}\r\n\r\nconst isCountryCode = (value) => /^[A-Z]{2}$/.test(value)","import Metadata from './metadata'\r\nimport matchesEntirely from './helpers/matchesEntirely'\r\nimport getNumberType from './helpers/getNumberType'\r\n\r\n/**\r\n * Checks if a given phone number is valid.\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 */\r\nexport default function isValidNumber(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// This is just to support `isValidNumber({})`\r\n\t// for cases when `parseNumber()` returns `{}`.\r\n\tif (!input.country)\r\n\t{\r\n\t\treturn false\r\n\t}\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\t// By default, countries only have type regexps when it's required for\r\n\t// distinguishing different countries having the same `countryCallingCode`.\r\n\tif (metadata.hasTypes())\r\n\t{\r\n\t\treturn getNumberType(input, options, metadata.metadata) !== undefined\r\n\t}\r\n\r\n\t// If there are no type regexps for this country in metadata then use\r\n\t// `nationalNumberPattern` as a \"better than nothing\" replacement.\r\n\tconst national_number = options.v2 ? input.nationalNumber : input.phone\r\n\treturn matchesEntirely(national_number, metadata.nationalNumberPattern())\r\n}","import Metadata from '../metadata'\r\nimport { VALID_DIGITS } from '../constants'\r\n\r\nconst CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')\r\n\r\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\t// Check if the number is IDD-prefixed.\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tconst IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix())\r\n\tif (number.search(IDDPrefixPattern) !== 0) {\r\n\t\treturn\r\n\t}\r\n\t// Strip IDD prefix.\r\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length)\r\n\t// If there're any digits after an IDD prefix,\r\n\t// then those digits are a country calling code.\r\n\t// Since no country code starts with a `0`,\r\n\t// the code below validates that the next digit (if present) is not `0`.\r\n\tconst matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)\r\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\r\n\t\tif (matchedGroups[1] === '0') {\r\n\t\t\treturn\r\n\t\t}\r\n\t}\r\n\treturn number\r\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? }`.\r\n */\r\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\r\n\tif (number && metadata.numberingPlan.nationalPrefixForParsing()) {\r\n\t\t// See METADATA.md for the description of\r\n\t\t// `national_prefix_for_parsing` and `national_prefix_transform_rule`.\r\n\t\t// Attempt to parse the first digits as a national prefix.\r\n\t\tconst prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')')\r\n\t\tconst prefixMatch = prefixPattern.exec(number)\r\n\t\tif (prefixMatch) {\r\n\t\t\tlet nationalNumber\r\n\t\t\tlet carrierCode\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\t\t// If a `national_prefix_for_parsing` has any \"capturing groups\"\r\n\t\t\t// then it means that the national (significant) number is equal to\r\n\t\t\t// those \"capturing groups\" transformed via `national_prefix_transform_rule`,\r\n\t\t\t// and nothing could be said about the actual national prefix:\r\n\t\t\t// what is it and was it even there.\r\n\t\t\t// If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\r\n\t\t\t// then everything it matches is a national prefix.\r\n\t\t\t// To determine whether `national_prefix_for_parsing` matched any\r\n\t\t\t// \"capturing groups\", the value of the result of calling `.exec()`\r\n\t\t\t// is looked at, and if it has non-undefined values where there're\r\n\t\t\t// \"capturing groups\" in the regular expression, then it means\r\n\t\t\t// that \"capturing groups\" have been matched.\r\n\t\t\t// It's not possible to tell whether there'll be any \"capturing gropus\"\r\n\t\t\t// before the matching process, because a `national_prefix_for_parsing`\r\n\t\t\t// could exhibit both behaviors.\r\n\t\t\tconst capturedGroupsCount = prefixMatch.length - 1\r\n\t\t\tconst hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]\r\n\t\t\tif (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\r\n\t\t\t\tnationalNumber = number.replace(\r\n\t\t\t\t\tprefixPattern,\r\n\t\t\t\t\tmetadata.nationalPrefixTransformRule()\r\n\t\t\t\t)\r\n\t\t\t\t// If there's more than one captured group,\r\n\t\t\t\t// then carrier code is the second one.\r\n\t\t\t\tif (capturedGroupsCount > 1) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If there're no \"capturing groups\",\r\n\t\t\t// or if there're \"capturing groups\" but no\r\n\t\t\t// `national_prefix_transform_rule`,\r\n\t\t\t// then just strip the national prefix from the number,\r\n\t\t\t// and possibly a carrier code.\r\n\t\t\t// Seems like there could be more.\r\n\t\t\telse {\r\n\t\t\t\t// `prefixBeforeNationalNumber` is the whole substring matched by\r\n\t\t\t\t// the `national_prefix_for_parsing` regular expression.\r\n\t\t\t\t// There seem to be no guarantees that it's just a national prefix.\r\n\t\t\t\t// For example, if there's a carrier code, it's gonna be a\r\n\t\t\t\t// part of `prefixBeforeNationalNumber` too.\r\n\t\t\t\tconst prefixBeforeNationalNumber = prefixMatch[0]\r\n\t\t\t\tnationalNumber = number.slice(prefixBeforeNationalNumber.length)\r\n\t\t\t\t// If there's at least one captured group,\r\n\t\t\t\t// then carrier code is the first one.\r\n\t\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Tries to guess whether a national prefix was present in the input.\r\n\t\t\t// This is not something copy-pasted from Google's library:\r\n\t\t\t// they don't seem to have an equivalent for that.\r\n\t\t\t// So this isn't an \"officially approved\" way of doing something like that.\r\n\t\t\t// But since there seems no other existing method, this library uses it.\r\n\t\t\tlet nationalPrefix\r\n\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\tconst possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1])\r\n\t\t\t\tconst possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup)\r\n\t\t\t\t// Example: an Argentinian (AR) phone number `0111523456789`.\r\n\t\t\t\t// `prefixMatch[0]` is `01115`, and `$1` is `11`,\r\n\t\t\t\t// and the rest of the phone number is `23456789`.\r\n\t\t\t\t// The national number is transformed via `9$1` to `91123456789`.\r\n\t\t\t\t// National prefix `0` is detected being present at the start.\r\n\t\t\t\t// if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\r\n\t\t\t\tif (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\r\n\t\t\t\t\tnationalPrefix = metadata.numberingPlan.nationalPrefix()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnationalPrefix = prefixMatch[0]\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tnationalPrefix,\r\n\t\t\t\tcarrierCode\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n return {\r\n \tnationalNumber: number\r\n }\r\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber'\r\nimport matchesEntirely from './matchesEntirely'\r\nimport checkNumberLength from './checkNumberLength'\r\n\r\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\r\nexport default function extractNationalNumber(number, metadata) {\r\n\t// Parsing national prefixes and carrier codes\r\n\t// is only required for local phone numbers\r\n\t// but some people don't understand that\r\n\t// and sometimes write international phone numbers\r\n\t// with national prefixes (or maybe even carrier codes).\r\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\r\n\t// Google's original library forgives such mistakes\r\n\t// and so does this library, because it has been requested:\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\tnumber,\r\n\t\tmetadata\r\n\t)\r\n\tif (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) {\r\n\t\t// Don't strip the national prefix.\r\n\t\treturn { nationalNumber: number }\r\n\t}\r\n\t// If a national prefix has been extracted, check to see\r\n\t// if the resultant number isn't too short.\r\n\t// Same code in Google's `libphonenumber`:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302\r\n\t// For some reason, they do this check right after the `national_number_pattern` check\r\n\t// this library does in `shouldExtractNationalPrefix()` function.\r\n\t// Why is there a second \"resultant\" number validity check?\r\n\t// They don't provide an explanation.\r\n\t// This library just copies the behavior.\r\n\tif (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) {\r\n\t\t// If not using legacy generated metadata (before version `1.0.18`)\r\n\t\t// then it has \"possible lengths\", so use those to validate the number length.\r\n\t\tif (metadata.possibleLengths()) {\r\n\t\t\t// \"We require that the NSN remaining after stripping the national prefix and\r\n\t\t\t// carrier code be long enough to be a possible length for the region.\r\n\t\t\t// Otherwise, we don't do the stripping, since the original number could be\r\n\t\t\t// a valid short number.\"\r\n\t\t\t// https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\r\n\t\t\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\t\t\tcase 'TOO_SHORT':\r\n\t\t\t\tcase 'INVALID_LENGTH':\r\n\t\t\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t\t\t\t// Don't strip the national prefix.\r\n\t\t\t\t\treturn { nationalNumber: number }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { nationalNumber, carrierCode }\r\n}\r\n\r\n// In some countries, the same digit could be a national prefix\r\n// or a leading digit of a valid phone number.\r\n// For example, in Russia, national prefix is `8`,\r\n// and also `800 555 35 35` is a valid number\r\n// in which `8` is not a national prefix, but the first digit\r\n// of a national (significant) number.\r\n// Same's with Belarus:\r\n// `82004910060` is a valid national (significant) number,\r\n// but `2004910060` is not.\r\n// To support such cases (to prevent the code from always stripping\r\n// national prefix), a condition is imposed: a national prefix\r\n// is not extracted when the original number is \"viable\" and the\r\n// resultant number is not, a \"viable\" national number being the one\r\n// that matches `national_number_pattern`.\r\nfunction shouldExtractNationalPrefix(number, nationalSignificantNumber, metadata) {\r\n\t// The equivalent in Google's code is:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\r\n\tif (matchesEntirely(number, metadata.nationalNumberPattern()) &&\r\n\t\t!matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn false\r\n\t}\r\n\t// Just \"possible\" number check would be more relaxed, so it's not used.\r\n\t// if (isPossibleNumber(number, metadata) &&\r\n\t// \t!isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) {\r\n\t// \treturn false\r\n\t// }\r\n\treturn true\r\n}","import Metadata from '../metadata'\r\nimport matchesEntirely from './matchesEntirely'\r\nimport extractNationalNumber from './extractNationalNumber'\r\nimport checkNumberLength from './checkNumberLength'\r\nimport getCountryCallingCode from '../getCountryCallingCode'\r\n\r\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\r\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tconst countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode\r\n\tif (number.indexOf(countryCallingCode) === 0) {\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(country, callingCode)\r\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\r\n\t\tconst {\r\n\t\t\tnationalNumber: possibleShorterNationalNumber,\r\n\t\t} = extractNationalNumber(\r\n\t\t\tpossibleShorterNumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tconst {\r\n\t\t\tnationalNumber\r\n\t\t} = extractNationalNumber(\r\n\t\t\tnumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\t// If the number was not valid before but is valid now,\r\n\t\t// or if it was too long before, we consider the number\r\n\t\t// with the country calling code stripped to be a better result\r\n\t\t// and keep that instead.\r\n\t\t// For example, in Germany (+49), `49` is a valid area code,\r\n\t\t// so if a number starts with `49`, it could be both a valid\r\n\t\t// national German number or an international number without\r\n\t\t// a leading `+`.\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t\t&&\r\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t)\r\n\t\t\t||\r\n\t\t\tcheckNumberLength(nationalNumber, metadata) === 'TOO_LONG'\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: possibleShorterNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { number }\r\n}","import stripIddPrefix from './stripIddPrefix'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign'\r\nimport Metadata from '../metadata'\r\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants'\r\n\r\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\r\nexport default function extractCountryCallingCode(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// If this is not an international phone number,\r\n\t// then either extract an \"IDD\" prefix, or extract a\r\n\t// country calling code from a number by autocorrecting it\r\n\t// by prepending a leading `+` in cases when it starts\r\n\t// with the country calling code.\r\n\t// https://wikitravel.org/en/International_dialling_prefix\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\tif (number[0] !== '+') {\r\n\t\t// Convert an \"out-of-country\" dialing phone number\r\n\t\t// to a proper international phone number.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata)\r\n\t\t// If an IDD prefix was stripped then\r\n\t\t// convert the number to international one\r\n\t\t// for subsequent parsing.\r\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\r\n\t\t\tnumber = '+' + numberWithoutIDD\r\n\t\t} else {\r\n\t\t\t// Check to see if the number starts with the country calling code\r\n\t\t\t// for the default country. If so, we remove the country calling code,\r\n\t\t\t// and do some checks on the validity of the number before and after.\r\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\t\tnumber,\r\n\t\t\t\t\tcountry,\r\n\t\t\t\t\tcallingCode,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t)\r\n\t\t\t\tif (countryCallingCode) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn { number }\r\n\t\t}\r\n\t}\r\n\r\n\t// Fast abortion: country codes do not begin with a '0'\r\n\tif (number[1] === '0') {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// The thing with country phone codes\r\n\t// is that they are orthogonal to each other\r\n\t// i.e. there's no such country phone code A\r\n\t// for which country phone code B exists\r\n\t// where B starts with A.\r\n\t// Therefore, while scanning digits,\r\n\t// if a valid country code is found,\r\n\t// that means that it is the country code.\r\n\t//\r\n\tlet i = 2\r\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\r\n\t\tconst countryCallingCode = number.slice(1, i)\r\n\t\tif (metadata.hasCallingCode(countryCallingCode)) {\r\n\t\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: number.slice(i)\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\r\n\treturn {}\r\n}","import Metadata from '../metadata'\r\nimport getNumberType from './getNumberType'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\r\n\t\t\treturn '001'\r\n\t\t}\r\n\t}\r\n\t// Is always non-empty, because `callingCode` is always valid\r\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn\r\n\t}\r\n\t// If there's just one country corresponding to the country code,\r\n\t// then just return it, without further phone number digits validation.\r\n\tif (possibleCountries.length === 1) {\r\n\t\treturn possibleCountries[0]\r\n\t}\r\n\treturn selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata)\r\n}\r\n\r\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\tfor (const country of possibleCountries) {\r\n\t\tmetadata.country(country)\r\n\t\t// Leading digits check would be the simplest one\r\n\t\tif (metadata.leadingDigits()) {\r\n\t\t\tif (nationalPhoneNumber &&\r\n\t\t\t\tnationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Else perform full validation with all of those\r\n\t\t// fixed-line/mobile/etc regular expressions.\r\n\t\telse if (getNumberType({ phone: nationalPhoneNumber, country }, undefined, metadata.metadata)) {\r\n\t\t\treturn country\r\n\t\t}\r\n\t}\r\n}","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tPLUS_CHARS,\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tMAX_LENGTH_FOR_NSN\r\n} from './constants'\r\n\r\nimport ParseError from './ParseError'\r\nimport Metadata from './metadata'\r\nimport isViablePhoneNumber from './helpers/isViablePhoneNumber'\r\nimport extractExtension from './helpers/extension/extractExtension'\r\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber'\r\nimport getCountryCallingCode from './getCountryCallingCode'\r\nimport { isPossibleNumber } from './isPossibleNumber_'\r\nimport { parseRFC3966 } from './helpers/RFC3966'\r\nimport PhoneNumber from './PhoneNumber'\r\nimport matchesEntirely from './helpers/matchesEntirely'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign'\r\nimport extractNationalNumber from './helpers/extractNationalNumber'\r\nimport stripIddPrefix from './helpers/stripIddPrefix'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'\r\n\r\n// We don't allow input strings for parsing to be longer than 250 chars.\r\n// This prevents malicious input from consuming CPU.\r\nconst MAX_INPUT_STRING_LENGTH = 250\r\n\r\n// This consists of the plus symbol, digits, and arabic-indic digits.\r\nconst PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']')\r\n\r\n// Regular expression of trailing characters that we want to remove.\r\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\r\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\r\nconst AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$')\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\n// Examples:\r\n//\r\n// ```js\r\n// parse('8 (800) 555-35-35', 'RU')\r\n// parse('8 (800) 555-35-35', 'RU', metadata)\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\r\n// parse('+7 800 555 35 35')\r\n// parse('+7 800 555 35 35', metadata)\r\n// ```\r\n//\r\nexport default function parse(text, options, metadata) {\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// Validate `defaultCountry`.\r\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\tthrow new Error(`Unknown country: ${options.defaultCountry}`)\r\n\t}\r\n\r\n\t// Parse the phone number.\r\n\tconst { number: formattedPhoneNumber, ext } = parseInput(text, options.v2, options.extract)\r\n\r\n\t// If the phone number is not viable then return nothing.\r\n\tif (!formattedPhoneNumber) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tnationalNumber,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode\r\n\t} = parsePhoneNumber(\r\n\t\tformattedPhoneNumber,\r\n\t\toptions.defaultCountry,\r\n\t\toptions.defaultCallingCode,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (!metadata.hasSelectedNumberingPlan()) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\tif (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\r\n\t\t// Won't throw here because the regexp already demands length > 1.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\t//\r\n\t// A sidenote:\r\n\t//\r\n\t// They say that sometimes national (significant) numbers\r\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\r\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\r\n\t// Such numbers will just be discarded.\r\n\t//\r\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\tif (options.v2) {\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountryCallingCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tmetadata.metadata\r\n\t\t)\r\n\t\tif (country) {\r\n\t\t\tphoneNumber.country = country\r\n\t\t}\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\tif (ext) {\r\n\t\t\tphoneNumber.ext = ext\r\n\t\t}\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t// Check if national phone number pattern matches the number.\r\n\t// National number pattern is different for each country,\r\n\t// even for those ones which are part of the \"NANPA\" group.\r\n\tconst valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ?\r\n\t\tmatchesEntirely(nationalNumber, metadata.nationalNumberPattern()) :\r\n\t\tfalse\r\n\r\n\tif (!options.extended) {\r\n\t\treturn valid ? result(country, nationalNumber, ext) : {}\r\n\t}\r\n\r\n\t// isInternational: countryCallingCode !== undefined\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode,\r\n\t\tvalid,\r\n\t\tpossible: valid ? true : (\r\n\t\t\toptions.extended === true &&\r\n\t\t\tmetadata.possibleLengths() &&\r\n\t\t\tisPossibleNumber(nationalNumber, metadata) ? true : false\r\n\t\t),\r\n\t\tphone: nationalNumber,\r\n\t\text\r\n\t}\r\n}\r\n\r\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 */\r\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\r\n\tif (!text) {\r\n\t\treturn\r\n\t}\r\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\r\n\t\tif (throwOnError) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\tif (extract === false) {\r\n\t\treturn text\r\n\t}\r\n\t// Attempt to extract a possible number from the string passed in\r\n\tconst startsAt = text.search(PHONE_NUMBER_START_PATTERN)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\treturn text\r\n\t\t// Trim everything to the left of the phone number\r\n\t\t.slice(startsAt)\r\n\t\t// Remove trailing non-numerical characters\r\n\t\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '')\r\n}\r\n\r\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 */\r\nfunction parseInput(text, v2, extract) {\r\n\t// Parse RFC 3966 phone number URI.\r\n\tif (text && text.indexOf('tel:') === 0) {\r\n\t\treturn parseRFC3966(text)\r\n\t}\r\n\tlet number = extractFormattedPhoneNumber(text, extract, v2)\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!number || !isViablePhoneNumber(number)) {\r\n\t\treturn {}\r\n\t}\r\n\t// Attempt to parse extension first, since it doesn't require region-specific\r\n\t// data and we want to have the non-normalised number here.\r\n\tconst withExtensionStripped = extractExtension(number)\r\n\tif (withExtensionStripped.ext) {\r\n\t\treturn withExtensionStripped\r\n\t}\r\n\treturn { number }\r\n}\r\n\r\n/**\r\n * Creates `parse()` result object.\r\n */\r\nfunction result(country, nationalNumber, ext) {\r\n\tconst result = {\r\n\t\tcountry,\r\n\t\tphone: nationalNumber\r\n\t}\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\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 */\r\nfunction parsePhoneNumber(\r\n\tformattedPhoneNumber,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\t// Extract calling code from phone number.\r\n\tlet { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\tparseIncompletePhoneNumber(formattedPhoneNumber),\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata.metadata\r\n\t)\r\n\r\n\t// Choose a country by `countryCallingCode`.\r\n\tlet country\r\n\tif (countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t}\r\n\t// If `formattedPhoneNumber` is in \"national\" format\r\n\t// then `number` is defined and `countryCallingCode` isn't.\r\n\telse if (number && (defaultCountry || defaultCallingCode)) {\r\n\t\tmetadata.selectNumberingPlan(defaultCountry, defaultCallingCode)\r\n\t\tif (defaultCountry) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tcountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcountryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata)\r\n\t}\r\n\telse return {}\r\n\r\n\tif (!number) {\r\n\t\treturn { countryCallingCode }\r\n\t}\r\n\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumber(\r\n\t\tparseIncompletePhoneNumber(number),\r\n\t\tmetadata\r\n\t)\r\n\r\n\t// Sometimes there are several countries\r\n\t// corresponding to the same country phone code\r\n\t// (e.g. NANPA countries all having `1` country phone code).\r\n\t// Therefore, to reliably determine the exact country,\r\n\t// national (significant) number should have been parsed first.\r\n\t//\r\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\r\n\t// get their countries populated with the full set of\r\n\t// \"phone number type\" regular expressions.\r\n\t//\r\n\tconst exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata)\r\n\tif (exactCountry) {\r\n\t\tcountry = exactCountry\r\n\t\t/* istanbul ignore if */\r\n\t\tif (exactCountry === '001') {\r\n\t\t\t// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\r\n\t\t\t// If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\r\n\t\t\t// then remove the \"istanbul ignore if\".\r\n\t\t} else {\r\n\t\t\tmetadata.country(country)\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t}\r\n}","import parseNumber from './parse_'\r\n\r\nexport default function parsePhoneNumber(text, options, metadata) {\r\n\treturn parseNumber(text, { ...options, v2: true }, metadata)\r\n}","import parsePhoneNumber_ from './parsePhoneNumber_'\r\n\r\nexport default function parsePhoneNumber() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumber_(text, options, metadata)\r\n}\r\n\r\nexport function normalizeArguments(args)\r\n{\r\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\r\n\r\n\tlet text\r\n\tlet options\r\n\tlet metadata\r\n\r\n\t// If the phone number is passed as a string.\r\n\t// `parsePhoneNumber('88005553535', ...)`.\r\n\tif (typeof arg_1 === 'string') {\r\n\t\ttext = arg_1\r\n\t}\r\n\telse throw new TypeError('A text for parsing must be a string.')\r\n\r\n\t// If \"default country\" argument is being passed then move it to `options`.\r\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\r\n\tif (!arg_2 || typeof arg_2 === 'string')\r\n\t{\r\n\t\tif (arg_4) {\r\n\t\t\toptions = arg_3\r\n\t\t\tmetadata = arg_4\r\n\t\t} else {\r\n\t\t\toptions = undefined\r\n\t\t\tmetadata = arg_3\r\n\t\t}\r\n\r\n\t\tif (arg_2) {\r\n\t\t\toptions = { defaultCountry: arg_2, ...options }\r\n\t\t}\r\n\t}\r\n\t// `defaultCountry` is not passed.\r\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\r\n\telse if (isObject(arg_2))\r\n\t{\r\n\t\tif (arg_3) {\r\n\t\t\toptions = arg_2\r\n\t\t\tmetadata = arg_3\r\n\t\t} else {\r\n\t\t\tmetadata = arg_2\r\n\t\t}\r\n\t}\r\n\telse throw new Error(`Invalid second argument: ${arg_2}`)\r\n\r\n\treturn {\r\n\t\ttext,\r\n\t\toptions,\r\n\t\tmetadata\r\n\t}\r\n}\r\n\r\n// Otherwise istanbul would show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst isObject = _ => typeof _ === 'object'","import parsePhoneNumber from './parsePhoneNumber_'\r\nimport ParseError from './ParseError'\r\nimport { isSupportedCountry } from './metadata'\r\n\r\nexport default function parsePhoneNumberFromString(text, options, metadata) {\r\n\t// Validate `defaultCountry`.\r\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\r\n\t\toptions = {\r\n\t\t\t...options,\r\n\t\t\tdefaultCountry: undefined\r\n\t\t}\r\n\t}\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\treturn parsePhoneNumber(text, options, metadata)\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\t//\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}\r\n","import { normalizeArguments } from './parsePhoneNumber'\r\nimport parsePhoneNumberFromString_ from './parsePhoneNumberFromString_'\r\n\r\nexport default function parsePhoneNumberFromString() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumberFromString_(text, options, metadata)\r\n}\r\n","import { parsePhoneNumberFromString } from 'libphonenumber-js/core'\r\n\r\n/**\r\n * Formats a phone number.\r\n * Is a proxy for `libphonenumber-js`'s `.format()` function of a parsed `PhoneNumber`.\r\n * @param {string} value\r\n * @param {string} [format]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\r\nexport default function formatPhoneNumber(value, format, metadata) {\r\n\tif (!metadata) {\r\n\t\tif (typeof format === 'object') {\r\n\t\t\tmetadata = format\r\n\t\t\tformat = 'NATIONAL'\r\n\t\t}\r\n\t}\r\n\tif (!value) {\r\n\t\treturn ''\r\n\t}\r\n\tconst phoneNumber = parsePhoneNumberFromString(value, metadata)\r\n\tif (!phoneNumber) {\r\n\t\treturn ''\r\n\t}\r\n\t// Deprecated.\r\n\t// Legacy `format`s.\r\n\tswitch (format) {\r\n\t\tcase 'National':\r\n\t\t\tformat = 'NATIONAL'\r\n\t\t\tbreak\r\n\t\tcase 'International':\r\n\t\t\tformat = 'INTERNATIONAL'\r\n\t\t\tbreak\r\n\t}\r\n\treturn phoneNumber.format(format)\r\n}\r\n\r\nexport function formatPhoneNumberIntl(value, metadata) {\r\n\treturn formatPhoneNumber(value, 'INTERNATIONAL', metadata)\r\n}","import { normalizeArguments } from './parsePhoneNumber'\r\nimport parsePhoneNumberFromString from './parsePhoneNumberFromString_'\r\n\r\nexport default function isValidPhoneNumber() {\r\n\tlet { text, options, metadata } = normalizeArguments(arguments)\r\n\toptions = {\r\n\t\t...options,\r\n\t\textract: false\r\n\t}\r\n\tconst phoneNumber = parsePhoneNumberFromString(text, options, metadata)\r\n\treturn phoneNumber && phoneNumber.isValid() || false\r\n}","import { normalizeArguments } from './parsePhoneNumber'\r\nimport parsePhoneNumberFromString from './parsePhoneNumberFromString_'\r\n\r\nexport default function isPossiblePhoneNumber() {\r\n\tlet { text, options, metadata } = normalizeArguments(arguments)\r\n\toptions = {\r\n\t\t...options,\r\n\t\textract: false\r\n\t}\r\n\tconst phoneNumber = parsePhoneNumberFromString(text, options, metadata)\r\n\treturn phoneNumber && phoneNumber.isPossible() || false\r\n}","import Metadata from './metadata'\r\n\r\nexport default function getCountries(metadata) {\r\n\treturn new Metadata(metadata).getCountries()\r\n}","import PropTypes from 'prop-types'\r\n\r\nexport const metadata = PropTypes.shape({\r\n\tcountry_calling_codes : PropTypes.object.isRequired,\r\n\tcountries : PropTypes.object.isRequired\r\n})\r\n\r\nexport const labels = PropTypes.objectOf(PropTypes.string)","// Counts all occurences of a symbol in a string\r\nexport function count_occurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes)\r\n\t// but template placeholder characters don't fall into that range\r\n\t// so skipping such miscellaneous \"exotic\" characters\r\n\t// won't matter here for just counting placeholder character occurrences.\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}","import { count_occurences } from './helpers'\r\n\r\nexport default function closeBraces(retained_template, template, placeholder = 'x', empty_placeholder = ' ')\r\n{\r\n\tlet cut_before = retained_template.length\r\n\r\n\tconst opening_braces = count_occurences('(', retained_template)\r\n\tconst closing_braces = count_occurences(')', retained_template)\r\n\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\r\n\twhile (dangling_braces > 0 && cut_before < template.length)\r\n\t{\r\n\t\tretained_template += template[cut_before].replace(placeholder, empty_placeholder)\r\n\r\n\t\tif (template[cut_before] === ')')\r\n\t\t{\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\r\n\t\tcut_before++\r\n\t}\r\n\r\n\treturn retained_template\r\n}\r\n","import template_formatter from './templateFormatter'\r\n\r\n// Formats `value` value preserving `caret` at the same character.\r\n//\r\n// `{ value, caret }` attribute is the result of `parse()` function call.\r\n//\r\n// Returns `{ text, caret }` where the new `caret` is the caret position\r\n// inside `text` text corresponding to the original `caret` position inside `value`.\r\n//\r\n// `formatter(value)` is a function returning `{ text, template }`.\r\n//\r\n// `text` is the `value` value formatted using `template`.\r\n// It may either cut off the non-filled right part of the `template`\r\n// or it may fill the non-filled character placeholders\r\n// in the right part of the `template` with `spacer`\r\n// which is a space (' ') character by default.\r\n//\r\n// `template` is the template used to format the `value`.\r\n// It can be either a full-length template or a partial template.\r\n//\r\n// `formatter` can also be a string — a `template`\r\n// where character placeholders are denoted by 'x'es.\r\n// In this case `formatter` function is automatically created.\r\n//\r\n// Example:\r\n//\r\n// `value` is '880',\r\n// `caret` is `2` (before the first `0`)\r\n//\r\n// `formatter` is `'880' =>\r\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\r\n//\r\n// The result is `{ text: '8 (80 )', caret: 4 }`.\r\n//\r\nexport default function format(value, caret, formatter)\r\n{\r\n\tif (typeof formatter === 'string')\r\n\t{\r\n\t\tformatter = template_formatter(formatter)\r\n\t}\r\n\r\n\tlet { text, template } = formatter(value) || {}\r\n\r\n\tif (text === undefined)\r\n\t{\r\n\t\t text = value\r\n\t}\r\n\r\n\tif (template)\r\n\t{\r\n\t\tif (caret === undefined)\r\n\t\t{\r\n\t\t\tcaret = text.length\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet index = 0\r\n\t\t\tlet found = false\r\n\r\n\t\t\tlet possibly_last_input_character_index = -1\r\n\r\n\t\t\twhile (index < text.length && index < template.length)\r\n\t\t\t{\r\n\t\t\t\t// Character placeholder found\r\n\t\t\t\tif (text[index] !== template[index])\r\n\t\t\t\t{\r\n\t\t\t\t\tif (caret === 0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = true\r\n\t\t\t\t\t\tcaret = index\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpossibly_last_input_character_index = index\r\n\r\n\t\t\t\t\tcaret--\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex++\r\n\t\t\t}\r\n\r\n\t\t\t// If the caret was positioned after last input character,\r\n\t\t\t// then the text caret index is just after the last input character.\r\n\t\t\tif (!found)\r\n\t\t\t{\r\n\t\t\t\tcaret = possibly_last_input_character_index + 1\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { text, caret }\r\n}","import { count_occurences } from './helpers'\r\nimport close_braces from './closeBraces'\r\n\r\n// Takes a `template` where character placeholders\r\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\r\n//\r\n// Returns a function which takes `value` characters\r\n// and returns the `template` filled with those characters.\r\n// If the `template` can only be partially filled\r\n// then it is cut off.\r\n//\r\n// If `should_close_braces` is `true`,\r\n// then it will also make sure all dangling braces are closed,\r\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\r\n//\r\nexport default function(template, placeholder = 'x', should_close_braces)\r\n{\r\n\tif (!template)\r\n\t{\r\n\t\treturn value => ({ text: value })\r\n\t}\r\n\r\n\tconst characters_in_template = count_occurences(placeholder, template)\r\n\r\n\treturn function(value)\r\n\t{\r\n\t\tif (!value)\r\n\t\t{\r\n\t\t\treturn { text: '', template }\r\n\t\t}\r\n\r\n\t\tlet value_character_index = 0\r\n\t\tlet filled_in_template = ''\r\n\r\n\t\t// Using `.split('')` here instead of normal `for ... of`\r\n\t\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t\t// (the ones consisting of four bytes)\r\n\t\t// but template placeholder characters don't fall into that range\r\n\t\t// and appending UTF-8 characters to a string in parts still works.\r\n\t\tfor (const character of template.split(''))\r\n\t\t{\r\n\t\t\tif (character !== placeholder)\r\n\t\t\t{\r\n\t\t\t\tfilled_in_template += character\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tfilled_in_template += value[value_character_index]\r\n\t\t\tvalue_character_index++\r\n\r\n\t\t\t// If the last available value character has been filled in,\r\n\t\t\t// then return the filled in template\r\n\t\t\t// (either trim the right part or retain it,\r\n\t\t\t// if no more character placeholders in there)\r\n\t\t\tif (value_character_index === value.length)\r\n\t\t\t{\r\n\t\t\t\t// If there are more character placeholders\r\n\t\t\t\t// in the right part of the template\r\n\t\t\t\t// then simply trim it.\r\n\t\t\t\tif (value.length < characters_in_template)\r\n\t\t\t\t{\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (should_close_braces)\r\n\t\t{\r\n\t\t\tfilled_in_template = close_braces(filled_in_template, template)\r\n\t\t}\r\n\r\n\t\treturn { text: filled_in_template, template }\r\n\t}\r\n}","// Gets selection bounds\r\nexport function getSelection(element)\r\n{\r\n\t// If no selection, return nothing\r\n\tif (element.selectionStart === element.selectionEnd)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\r\n\treturn { start: element.selectionStart, end: element.selectionEnd }\r\n}\r\n\r\n// Key codes\r\nexport const Keys =\r\n{\r\n\tBackspace : 8,\r\n\tDelete : 46\r\n}\r\n\r\n// Finds out the operation to be intercepted and performed\r\n// based on the key down event `keyCode`.\r\nexport function getOperation(event)\r\n{\r\n\tswitch (event.keyCode)\r\n\t{\r\n\t\tcase Keys.Backspace:\r\n\t\t\treturn 'Backspace'\r\n\r\n\t\tcase Keys.Delete:\r\n\t\t\treturn 'Delete'\r\n\t}\r\n}\r\n\r\n// Gets caret position\r\nexport function getCaretPosition(element)\r\n{\r\n\treturn element.selectionStart\r\n}\r\n\r\n// Sets caret position\r\nexport function setCaretPosition(element, caret_position)\r\n{\r\n\t// Sanity check\r\n\tif (caret_position === undefined)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\r\n\t// Set caret position.\r\n\t// There has been an issue with caret positioning on Android devices.\r\n\t// https://github.com/catamphetamine/input-format/issues/2\r\n\t// I was revisiting this issue and looked for similar issues in other libraries.\r\n\t// For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\r\n\t// They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\r\n\t// The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\r\n\t// https://github.com/text-mask/text-mask/issues/300\r\n\t// They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\r\n\t// https://github.com/text-mask/text-mask/pull/400/files\r\n\t// I've implemented the same workaround here.\r\n\tif (isAndroid()) {\r\n setTimeout(() => element.setSelectionRange(caret_position, caret_position), 0)\r\n\t} else {\r\n\t\telement.setSelectionRange(caret_position, caret_position)\r\n\t}\r\n}\r\n\r\nfunction isAndroid() {\r\n\t// `navigator` is not defined when running mocha tests.\r\n\tif (typeof navigator !== 'undefined') {\r\n\t\treturn ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent)\r\n\t}\r\n}\r\n\r\nconst ANDROID_USER_AGENT_REG_EXP = /Android/i","import edit from './edit'\r\nimport parse from './parse'\r\nimport format from './format'\r\n\r\nimport\r\n{\r\n\tgetOperation,\r\n\tgetSelection,\r\n\tgetCaretPosition,\r\n\tsetCaretPosition\r\n}\r\nfrom './dom'\r\n\r\n// Deprecated.\r\n// I don't know why this function exists.\r\nexport function onCut(event, input, _parse, _format, on_change)\r\n{\r\n\t// The actual cut hasn't happened just yet hence the timeout.\r\n\tsetTimeout(() => formatInputText(input, _parse, _format, undefined, on_change), 0)\r\n}\r\n\r\n// Deprecated.\r\n// I don't know why this function exists.\r\nexport function onPaste(event, input, _parse, _format, on_change)\r\n{\r\n\tconst selection = getSelection(input)\r\n\r\n\t// If selection is made,\r\n\t// just erase the selected text\r\n\t// prior to pasting\r\n\tif (selection)\r\n\t{\r\n\t\teraseSelection(input, selection)\r\n\t}\r\n\r\n\tformatInputText(input, _parse, _format, undefined, on_change)\r\n}\r\n\r\nexport function onChange(event, input, _parse, _format, on_change)\r\n{\r\n\tformatInputText(input, _parse, _format, undefined, on_change)\r\n}\r\n\r\n// \"Delete\" and \"Backspace\" keys are special\r\n// in a way that they're not handled by the regular `onChange()` handler\r\n// and instead are intercepted and re-applied manually.\r\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\r\n// results in erasing a character, but that character might be any character,\r\n// while it would be a better \"user experience\" if it erased not just any character\r\n// but the closest \"meaningful\" character.\r\n// For example, if a template is `(xxx) xxx-xxxx`,\r\n// and the `` value is `(111) 222-3333`,\r\n// then, if a user begins erasing the `3333` part via \"Backspace\"\r\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\r\n// Nothing wrong with that, but it would be a better \"user experience\"\r\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\r\n// character, which would be the rightmost `2`.\r\n// So, what this `onKeyDown()` handler does is it intercepts\r\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\r\n// following the logic described above.\r\nexport function onKeyDown(event, input, _parse, _format, on_change)\r\n{\r\n\tconst operation = getOperation(event)\r\n\tswitch (operation)\r\n\t{\r\n\t\tcase 'Delete':\r\n\t\tcase 'Backspace':\r\n\t\t\t// Intercept this operation and perform it manually.\r\n\t\t\tevent.preventDefault()\r\n\r\n\t\t\tconst selection = getSelection(input)\r\n\r\n\t\t\t// If a selection is made, just erase the selected text.\r\n\t\t\tif (selection)\r\n\t\t\t{\r\n\t\t\t\teraseSelection(input, selection)\r\n\t\t\t\treturn formatInputText(input, _parse, _format, undefined, on_change)\r\n\t\t\t}\r\n\r\n\t\t\t// Else, perform the (character erasing) operation manually.\r\n\t\t\treturn formatInputText(input, _parse, _format, operation, on_change)\r\n\r\n\t\tdefault:\r\n\t\t\t// Will be handled normally as part of the `onChange` handler.\r\n\t}\r\n}\r\n\r\n/**\r\n * Erases the selected text inside an ``.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\r\nfunction eraseSelection(input, selection)\r\n{\r\n\tlet text = input.value\r\n\ttext = text.slice(0, selection.start) + text.slice(selection.end)\r\n\r\n\tinput.value = text\r\n\tsetCaretPosition(input, selection.start)\r\n}\r\n\r\n/**\r\n * Parses and re-formats `` textual value.\r\n * E.g. when a user enters something into the ``\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\r\nfunction formatInputText(input, _parse, _format, operation, on_change)\r\n{\r\n\t// Parse `` textual value.\r\n\t// Get the `value` and `caret` position.\r\n\tlet { value, caret } = parse(input.value, getCaretPosition(input), _parse)\r\n\r\n\t// If a user performed an operation (\"Backspace\", \"Delete\")\r\n\t// then apply that operation and get the new `value` and `caret` position.\r\n\tif (operation)\r\n\t{\r\n\t\tconst newValueAndCaret = edit(value, caret, operation)\r\n\r\n\t\tvalue = newValueAndCaret.value\r\n\t\tcaret = newValueAndCaret.caret\r\n\t}\r\n\r\n\t// Format the `value`.\r\n\t// (and reposition the caret accordingly)\r\n\tconst formatted = format(value, caret, _format)\r\n\r\n\tconst text = formatted.text\r\n\tcaret = formatted.caret\r\n\r\n\t// Set `` textual value manually\r\n\t// to prevent React from resetting the caret position\r\n\t// later inside a subsequent `render()`.\r\n\t// Doesn't work for custom `inputComponent`s for some reason.\r\n\tinput.value = text\r\n\t// Position the caret properly.\r\n\tsetCaretPosition(input, caret)\r\n\r\n\t// If the `` textual value did change,\r\n\t// then the parsed `value` may have changed too.\r\n\ton_change(value)\r\n}","// Parses the `text`.\r\n//\r\n// Returns `{ value, caret }` where `caret` is\r\n// the caret position inside `value`\r\n// corresponding to the `caret_position` inside `text`.\r\n//\r\n// The `text` is parsed by feeding each character sequentially to\r\n// `parse_character(character, value)` function\r\n// and appending the result (if it's not `undefined`) to `value`.\r\n//\r\n// Example:\r\n//\r\n// `text` is `8 (800) 555-35-35`,\r\n// `caret_position` is `4` (before the first `0`).\r\n// `parse_character` is `(character, value) =>\r\n// if (character >= '0' && character <= '9') { return character }`.\r\n//\r\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\r\n//\r\nexport default function parse(text, caret_position, parse_character)\r\n{\r\n\tlet value = ''\r\n\r\n\tlet focused_input_character_index = 0\r\n\r\n\tlet index = 0\r\n\twhile (index < text.length)\r\n\t{\r\n\t\tconst character = parse_character(text[index], value)\r\n\r\n\t\tif (character !== undefined)\r\n\t\t{\r\n\t\t\tvalue += character\r\n\r\n\t\t\tif (caret_position !== undefined)\r\n\t\t\t{\r\n\t\t\t\tif (caret_position === index)\r\n\t\t\t\t{\r\n\t\t\t\t\tfocused_input_character_index = value.length - 1;\r\n\t\t\t\t}\r\n\t\t\t\telse if (caret_position > index)\r\n\t\t\t\t{\r\n\t\t\t\t\tfocused_input_character_index = value.length\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t}\r\n\r\n\t\tindex++\r\n\t}\r\n\r\n\t// If caret position wasn't specified\r\n\tif (caret_position === undefined)\r\n\t{\r\n\t\t// Then set caret position to \"after the last input character\"\r\n\t\tfocused_input_character_index = value.length\r\n\t}\r\n\r\n\tconst result =\r\n\t{\r\n\t\tvalue,\r\n\t\tcaret : focused_input_character_index\r\n\t}\r\n\r\n\treturn result\r\n}","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\r\n//\r\n// Example:\r\n//\r\n// value - '88005553535'\r\n// caret - 2 // starting from 0; is positioned before the first zero\r\n// operation - 'Backspace'\r\n//\r\n// Returns\r\n// {\r\n// \tvalue: '8005553535'\r\n// \tcaret: 1\r\n// }\r\n//\r\n// Currently supports just 'Delete' and 'Backspace' operations\r\n//\r\nexport default function edit(value, caret, operation)\r\n{\r\n\tswitch (operation)\r\n\t{\r\n\t\tcase 'Backspace':\r\n\t\t\t// If there exists the previous character,\r\n\t\t\t// then erase it and reposition the caret.\r\n\t\t\tif (caret > 0)\r\n\t\t\t{\r\n\t\t\t\t// Remove the previous character\r\n\t\t\t\tvalue = value.slice(0, caret - 1) + value.slice(caret)\r\n\t\t\t\t// Position the caret where the previous (erased) character was\r\n\t\t\t\tcaret--\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Delete':\r\n\t\t\t// Remove current digit (if any)\r\n\t\t\tvalue = value.slice(0, caret) + value.slice(caret + 1)\r\n\t\t\tbreak\r\n\t}\r\n\r\n\treturn { value, caret }\r\n}","// This is just `./ReactInput.js` rewritten in Hooks.\r\n\r\nimport React, { useCallback, useRef } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport {\r\n\tonChange as onInputChange,\r\n\tonKeyDown as onInputKeyDown\r\n} from '../inputControl'\r\n\r\n// Usage:\r\n//\r\n// this.setState({ phone })}\r\n// \tparse={character => character}\r\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\r\n//\r\nfunction Input({\r\n\tvalue,\r\n\tparse,\r\n\tformat,\r\n\tinputComponent: InputComponent,\r\n\tonChange,\r\n\tonKeyDown,\r\n\t...rest\r\n}, ref) {\r\n\tconst internalRef = useRef();\r\n\tconst setRef = useCallback((instance) => {\r\n\t\tinternalRef.current = instance;\r\n\t\tif (ref) {\r\n\t\t\tif (typeof ref === 'function') {\r\n\t\t\t\tref(instance)\r\n\t\t\t} else {\r\n\t\t\t\tref.current = instance\r\n\t\t\t}\r\n\t\t}\r\n\t}, [ref]);\r\n\tconst _onChange = useCallback((event) => {\r\n\t\treturn onInputChange(\r\n\t\t\tevent,\r\n\t\t\tinternalRef.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [internalRef, parse, format, onChange])\r\n\r\n\tconst _onKeyDown = useCallback((event) => {\r\n\t\tif (onKeyDown) {\r\n\t\t\tonKeyDown(event)\r\n\t\t}\r\n\t\treturn onInputKeyDown(\r\n\t\t\tevent,\r\n\t\t\tinternalRef.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [internalRef, parse, format, onChange, onKeyDown])\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nInput = React.forwardRef(Input)\r\n\r\nInput.propTypes = {\r\n\t// Parses a single characher of `` text.\r\n\tparse: PropTypes.func.isRequired,\r\n\r\n\t// Formats `value` into `` text.\r\n\tformat: PropTypes.func.isRequired,\r\n\r\n\t// Renders `` by default.\r\n\tinputComponent: PropTypes.elementType.isRequired,\r\n\r\n\t// `` `type` attribute.\r\n\ttype: PropTypes.string.isRequired,\r\n\r\n\t// Is parsed from text.\r\n\tvalue: PropTypes.string,\r\n\r\n\t// This handler is called each time `` text is changed.\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// Passthrough\r\n\tonKeyDown: PropTypes.func,\r\n\tonCut: PropTypes.func,\r\n\tonPaste: PropTypes.func\r\n}\r\n\r\nInput.defaultProps = {\r\n\t// Renders `` by default.\r\n\tinputComponent: 'input',\r\n\r\n\t// `` `type` attribute.\r\n\ttype: 'text'\r\n}\r\n\r\nexport default Input\r\n\r\nfunction isEmptyValue(value) {\r\n\treturn value === undefined || value === null\r\n}","export default class AsYouTypeState {\r\n\tconstructor({ onCountryChange, onCallingCodeChange }) {\r\n\t\tthis.onCountryChange = onCountryChange\r\n\t\tthis.onCallingCodeChange = onCallingCodeChange\r\n\t}\r\n\r\n\treset(defaultCountry, defaultCallingCode) {\r\n\t\tthis.international = false\r\n\t\tthis.IDDPrefix = undefined\r\n\t\tthis.missingPlus = undefined\r\n\t\tthis.callingCode = undefined\r\n\t\tthis.digits = ''\r\n\t\tthis.resetNationalSignificantNumber()\r\n\t\tthis.initCountryAndCallingCode(defaultCountry, defaultCallingCode)\r\n\t}\r\n\r\n\tresetNationalSignificantNumber() {\r\n\t\tthis.nationalSignificantNumber = this.getNationalDigits()\r\n\t\tthis.nationalSignificantNumberMatchesInput = true\r\n\t\tthis.nationalPrefix = undefined\r\n\t\tthis.carrierCode = undefined\r\n\t\tthis.complexPrefixBeforeNationalSignificantNumber = undefined\r\n\t}\r\n\r\n\tupdate = (properties) => {\r\n\t\tfor (const key of Object.keys(properties)) {\r\n\t\t\tthis[key] = properties[key]\r\n\t\t}\r\n\t}\r\n\r\n\tinitCountryAndCallingCode(country, callingCode) {\r\n\t\tthis.setCountry(country)\r\n\t\tthis.setCallingCode(callingCode)\r\n\t}\r\n\r\n\tsetCountry(country) {\r\n\t\tthis.country = country\r\n\t\tthis.onCountryChange(country)\r\n\t}\r\n\r\n\tsetCallingCode(callingCode) {\r\n\t\tthis.callingCode = callingCode\r\n\t\treturn this.onCallingCodeChange(this.country, callingCode)\r\n\t}\r\n\r\n\tstartInternationalNumber() {\r\n\t\t// Prepend the `+` to parsed input.\r\n\t\tthis.international = true\r\n\t\t// If a default country was set then reset it\r\n\t\t// because an explicitly international phone\r\n\t\t// number is being entered.\r\n\t\tthis.initCountryAndCallingCode()\r\n\t}\r\n\r\n\tappendDigits(nextDigits) {\r\n\t\tthis.digits += nextDigits\r\n\t}\r\n\r\n\tappendNationalSignificantNumberDigits(nextDigits) {\r\n\t\tthis.nationalSignificantNumber += nextDigits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the part of `this.digits` that corresponds to the national number.\r\n\t * Basically, all digits that have been input by the user, except for the\r\n\t * international prefix and the country calling code part\r\n\t * (if the number is an international one).\r\n\t * @return {string}\r\n\t */\r\n\tgetNationalDigits() {\r\n\t\tif (this.international) {\r\n\t\t\treturn this.digits.slice(\r\n\t\t\t\t(this.IDDPrefix ? this.IDDPrefix.length : 0) +\r\n\t\t\t\t(this.callingCode ? this.callingCode.length : 0)\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n\r\n\tgetDigitsWithoutInternationalPrefix() {\r\n\t\tif (this.international) {\r\n\t\t\tif (this.IDDPrefix) {\r\n\t\t\t\treturn this.digits.slice(this.IDDPrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n}","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\r\nexport const DIGIT_PLACEHOLDER = 'x' // '\\u2008' (punctuation space)\r\nconst DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER)\r\n\r\n// Counts all occurences of a symbol in a string.\r\n// Unicode-unsafe (because using `.split()`).\r\nexport function countOccurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for counting brackets it is safe.\r\n\t// for (const character of string)\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}\r\n\r\n// Repeats a string (or a symbol) N times.\r\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\r\nexport function repeat(string, times) {\r\n\tif (times < 1) {\r\n\t\treturn ''\r\n\t}\r\n\tlet result = ''\r\n\twhile (times > 1) {\r\n\t\tif (times & 1) {\r\n\t\t\tresult += string\r\n\t\t}\r\n\t\ttimes >>= 1\r\n\t\tstring += string\r\n\t}\r\n\treturn result + string\r\n}\r\n\r\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\r\n\tif (string[cutBeforeIndex] === ')') {\r\n\t\tcutBeforeIndex++\r\n\t}\r\n\treturn stripNonPairedParens(string.slice(0, cutBeforeIndex))\r\n}\r\n\r\nexport function closeNonPairedParens(template, cut_before) {\r\n\tconst retained_template = template.slice(0, cut_before)\r\n\tconst opening_braces = countOccurences('(', retained_template)\r\n\tconst closing_braces = countOccurences(')', retained_template)\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\twhile (dangling_braces > 0 && cut_before < template.length) {\r\n\t\tif (template[cut_before] === ')') {\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\t\tcut_before++\r\n\t}\r\n\treturn template.slice(0, cut_before)\r\n}\r\n\r\nexport function stripNonPairedParens(string) {\r\n\tconst dangling_braces =[]\r\n\tlet i = 0\r\n\twhile (i < string.length) {\r\n\t\tif (string[i] === '(') {\r\n\t\t\tdangling_braces.push(i)\r\n\t\t}\r\n\t\telse if (string[i] === ')') {\r\n\t\t\tdangling_braces.pop()\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\tlet start = 0\r\n\tlet cleared_string = ''\r\n\tdangling_braces.push(string.length)\r\n\tfor (const index of dangling_braces) {\r\n\t\tcleared_string += string.slice(start, index)\r\n\t\tstart = index + 1\r\n\t}\r\n\treturn cleared_string\r\n}\r\n\r\nexport function populateTemplateWithDigits(template, position, digits) {\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for `digits` it is safe.\r\n\t// for (const digit of digits)\r\n\tfor (const digit of digits.split('')) {\r\n\t\t// If there is room for more digits in current `template`,\r\n\t\t// then set the next digit in the `template`,\r\n\t\t// and return the formatted digits so far.\r\n\t\t// If more digits are entered than the current format could handle.\r\n\t\tif (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tposition = template.search(DIGIT_PLACEHOLDER_MATCHER)\r\n\t\ttemplate = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit)\r\n\t}\r\n\treturn [template, position]\r\n}","import checkNumberLength from './helpers/checkNumberLength'\r\nimport parseDigits from './helpers/parseDigits'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat'\r\n\r\nexport default function formatCompleteNumber(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tconst matcher = new RegExp(`^(?:${format.pattern()})$`)\r\n\tif (matcher.test(state.nationalSignificantNumber)) {\r\n\t\treturn formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(\r\n\t\t\tstate,\r\n\t\t\tformat,\r\n\t\t\t{\r\n\t\t\t\tmetadata,\r\n\t\t\t\tshouldTryNationalPrefixFormattingRule,\r\n\t\t\t\tgetSeparatorAfterNationalPrefix\r\n\t\t\t}\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\r\n\treturn checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE'\r\n}\r\n\r\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\t// `format` has already been checked for `nationalPrefix` requirement.\r\n\r\n\tconst {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode\r\n\t} = state\r\n\r\n\t// Format the number with using `national_prefix_formatting_rule`.\r\n\t// If the resulting formatted number is a valid formatted number, then return it.\r\n\t//\r\n\t// Google's AsYouType formatter is different in a way that it doesn't try\r\n\t// to format using the \"national prefix formatting rule\", and instead it\r\n\t// simply prepends a national prefix followed by a \" \" character.\r\n\t// This code does that too, but as a fallback.\r\n\t// The reason is that \"national prefix formatting rule\" may use parentheses,\r\n\t// which wouldn't be included has it used the simpler Google's way.\r\n\t//\r\n\tif (shouldTryNationalPrefixFormattingRule(format)) {\r\n\t\tconst formattedNumber = formatNationalNumber(state, format, {\r\n\t\t\tuseNationalPrefixFormattingRule: true,\r\n\t\t\tgetSeparatorAfterNationalPrefix,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\tif (formattedNumber) {\r\n\t\t\treturn formattedNumber\r\n\t\t}\r\n\t}\r\n\r\n\t// Format the number without using `national_prefix_formatting_rule`.\r\n\treturn formatNationalNumber(state, format, {\r\n\t\tuseNationalPrefixFormattingRule: false,\r\n\t\tgetSeparatorAfterNationalPrefix,\r\n\t\tmetadata\r\n\t})\r\n}\r\n\r\nfunction formatNationalNumber(state, format, {\r\n\tmetadata,\r\n\tuseNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tlet formattedNationalNumber = formatNationalNumberUsingFormat(\r\n\t\tstate.nationalSignificantNumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tcarrierCode: state.carrierCode,\r\n\t\t\tuseInternationalFormat: state.international,\r\n\t\t\twithNationalPrefix: useNationalPrefixFormattingRule,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n\tif (!useNationalPrefixFormattingRule) {\r\n\t\tif (state.nationalPrefix) {\r\n\t\t\t// If a national prefix was extracted, then just prepend it,\r\n\t\t\t// followed by a \" \" character.\r\n\t\t\tformattedNationalNumber = state.nationalPrefix +\r\n\t\t\t\tgetSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t} else if (state.complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\tformattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber +\r\n\t\t\t\t' ' +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t}\r\n\t}\r\n\tif (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n}\r\n\r\n// Check that the formatted phone number contains exactly\r\n// the same digits that have been input by the user.\r\n// For example, when \"0111523456789\" is input for `AR` country,\r\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\r\n// which means that the national part of `this.digits` isn't simply equal to\r\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\r\n//\r\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\r\n// being formatted via `metadata[country].national_prefix_transform_rule`.\r\n// For example, for `VI` country, it prepends `340` to the national number,\r\n// and if this check hasn't been implemented, then there would be a bug\r\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\r\n//\r\n// So, all these \"gotchas\" are filtered out.\r\n//\r\n// In the original Google's code, the comments say:\r\n// \"Check that we didn't remove nor add any extra digits when we matched\r\n// this formatting pattern. This usually happens after we entered the last\r\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\r\n// formatted but AYTF should retain all the number entered and not change\r\n// in order to match a format (of same leading digits and length) display\r\n// in that way.\"\r\n// \"If it's the same (i.e entered number and format is same), then it's\r\n// safe to return this in formatted number as nothing is lost / added.\"\r\n// Otherwise, don't use this format.\r\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\r\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\r\n//\r\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\r\n\treturn parseDigits(formattedNationalNumber) === state.getNationalDigits()\r\n}","import {\r\n\tDIGIT_PLACEHOLDER,\r\n\tcountOccurences,\r\n\trepeat,\r\n\tcutAndStripNonPairedParens,\r\n\tcloseNonPairedParens,\r\n\tstripNonPairedParens,\r\n\tpopulateTemplateWithDigits\r\n} from './AsYouTypeFormatter.util'\r\n\r\nimport formatCompleteNumber, {\r\n\tcanFormatCompleteNumber\r\n} from './AsYouTypeFormatter.complete'\r\n\r\nimport parseDigits from './helpers/parseDigits'\r\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util'\r\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat'\r\nimport { VALID_PUNCTUATION } from './constants'\r\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle'\r\n\r\n// Used in phone number format template creation.\r\n// Could be any digit, I guess.\r\nconst DUMMY_DIGIT = '9'\r\n// I don't know why is it exactly `15`\r\nconst LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15\r\n// Create a phone number consisting only of the digit 9 that matches the\r\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\r\nconst LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH)\r\n\r\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\r\n// us that we should separate the national prefix from the number when formatting.\r\nconst NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/\r\n\r\n// Deprecated: Google has removed some formatting pattern related code from their repo.\r\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\r\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\r\n// Because this library supports generating custom metadata\r\n// some users may still be using old metadata so the relevant\r\n// code seems to stay until some next major version update.\r\nconst SUPPORT_LEGACY_FORMATTING_PATTERNS = true\r\n\r\n// A pattern that is used to match character classes in regular expressions.\r\n// An example of a character class is \"[1-4]\".\r\nconst CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\[([^\\[\\]])*\\]/g)\r\n\r\n// Any digit in a regular expression that actually denotes a digit. For\r\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\r\n// (8 and 0) are standalone digits, but the rest are not.\r\n// Two look-aheads are needed because the number following \\\\d could be a\r\n// two-digit number, since the phone number can be as long as 15 digits.\r\nconst CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\d(?=[^,}][^,}])/g)\r\n\r\n// A regular expression that is used to determine if a `format` is\r\n// suitable to be used in the \"as you type formatter\".\r\n// A `format` is suitable when the resulting formatted number has\r\n// the same digits as the user has entered.\r\n//\r\n// In the simplest case, that would mean that the format\r\n// doesn't add any additional digits when formatting a number.\r\n// Google says that it also shouldn't add \"star\" (`*`) characters,\r\n// like it does in some Israeli formats.\r\n// Such basic format would only contain \"valid punctuation\"\r\n// and \"captured group\" identifiers ($1, $2, etc).\r\n//\r\n// An example of a format that adds additional digits:\r\n//\r\n// Country: `AR` (Argentina).\r\n// Format:\r\n// {\r\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n// \"leading_digits_patterns\": [\"91\"],\r\n// \"national_prefix_formatting_rule\": \"0$1\",\r\n// \"format\": \"$2 15-$3-$4\",\r\n// \"international_format\": \"$1 $2 $3-$4\"\r\n// }\r\n//\r\n// In the format above, the `format` adds `15` to the digits when formatting a number.\r\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\r\n// has previously removed `15` from a national number, so re-adding `15` in `format`\r\n// doesn't actually result in any extra digits added to user's input.\r\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\r\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\r\n//\r\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\r\n// `libphonenumber` code.\r\n//\r\nconst NON_ALTERING_FORMAT_REG_EXP = new RegExp(\r\n\t'^' +\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t'(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)+' +\r\n\t'$'\r\n)\r\n\r\n// This is the minimum length of the leading digits of a phone number\r\n// to guarantee the first \"leading digits pattern\" for a phone number format\r\n// to be preemptive.\r\nconst MIN_LEADING_DIGITS_LENGTH = 3\r\n\r\nexport default class AsYouTypeFormatter {\r\n\tconstructor({\r\n\t\tstate,\r\n\t\tmetadata\r\n\t}) {\r\n\t\tthis.metadata = metadata\r\n\t\tthis.resetFormat()\r\n\t}\r\n\r\n\tresetFormat() {\r\n\t\tthis.chosenFormat = undefined\r\n\t\tthis.template = undefined\r\n\t\tthis.nationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t}\r\n\r\n\treset(numberingPlan, state) {\r\n\t\tthis.resetFormat()\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.isNANP = numberingPlan.callingCode() === '1'\r\n\t\t\tthis.matchingFormats = numberingPlan.formats()\r\n\t\t\tif (state.nationalSignificantNumber) {\r\n\t\t\t\tthis.narrowDownMatchingFormats(state)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.isNANP = undefined\r\n\t\t\tthis.matchingFormats = []\r\n\t\t}\r\n\t}\r\n\r\n\tformat(nextDigits, state) {\r\n\t\t// See if the phone number digits can be formatted as a complete phone number.\r\n\t\t// If not, use the results from `formatNationalNumberWithNextDigits()`,\r\n\t\t// which formats based on the chosen formatting pattern.\r\n\t\t//\r\n\t\t// Attempting to format complete phone number first is how it's done\r\n\t\t// in Google's `libphonenumber`, so this library just follows it.\r\n\t\t// Google's `libphonenumber` code doesn't explain in detail why does it\r\n\t\t// attempt to format digits as a complete phone number\r\n\t\t// instead of just going with a previoulsy (or newly) chosen `format`:\r\n\t\t//\r\n\t\t// \"Checks to see if there is an exact pattern match for these digits.\r\n\t\t// If so, we should use this instead of any other formatting template\r\n\t\t// whose leadingDigitsPattern also matches the input.\"\r\n\t\t//\r\n\t\tif (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\r\n\t\t\tfor (const format of this.matchingFormats) {\r\n\t\t\t\tconst formattedCompleteNumber = formatCompleteNumber(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tformat,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmetadata: this.metadata,\r\n\t\t\t\t\t\tshouldTryNationalPrefixFormattingRule: format => this.shouldTryNationalPrefixFormattingRule(format, {\r\n\t\t\t\t\t\t\tinternational: state.international,\r\n\t\t\t\t\t\t\tnationalPrefix: state.nationalPrefix\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tgetSeparatorAfterNationalPrefix: this.getSeparatorAfterNationalPrefix\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\tif (formattedCompleteNumber) {\r\n\t\t\t\t\tthis.resetFormat()\r\n\t\t\t\t\tthis.chosenFormat = format\r\n\t\t\t\t\tthis.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state)\r\n\t\t\t\t\tthis.populatedNationalNumberTemplate = formattedCompleteNumber\r\n\t\t\t\t\t// With a new formatting template, the matched position\r\n\t\t\t\t\t// using the old template needs to be reset.\r\n\t\t\t\t\tthis.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER)\r\n\t\t\t\t\treturn formattedCompleteNumber\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Format the digits as a partial (incomplete) phone number\r\n\t\t// using the previously chosen formatting pattern (or a newly chosen one).\r\n\t\treturn this.formatNationalNumberWithNextDigits(nextDigits, state)\r\n\t}\r\n\r\n\t// Formats the next phone number digits.\r\n\tformatNationalNumberWithNextDigits(nextDigits, state) {\r\n\t\tconst previouslyChosenFormat = this.chosenFormat\r\n\t\t// Choose a format from the list of matching ones.\r\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\r\n\t\tif (newlyChosenFormat) {\r\n\t\t\tif (newlyChosenFormat === previouslyChosenFormat) {\r\n\t\t\t\t// If it can format the next (current) digits\r\n\t\t\t\t// using the previously chosen phone number format\r\n\t\t\t\t// then return the updated formatted number.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(nextDigits)\r\n\t\t\t} else {\r\n\t\t\t\t// If a more appropriate phone number format\r\n\t\t\t\t// has been chosen for these \"leading digits\",\r\n\t\t\t\t// then re-format the national phone number part\r\n\t\t\t\t// using the newly selected format.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(state.getNationalDigits())\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tnarrowDownMatchingFormats({\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalPrefix,\r\n\t\tinternational\r\n\t}) {\r\n\t\tconst leadingDigits = nationalSignificantNumber\r\n\r\n\t\t// \"leading digits\" pattern list starts with a\r\n\t\t// \"leading digits\" pattern fitting a maximum of 3 leading digits.\r\n\t\t// So, after a user inputs 3 digits of a national (significant) phone number\r\n\t\t// this national (significant) number can already be formatted.\r\n\t\t// The next \"leading digits\" pattern is for 4 leading digits max,\r\n\t\t// and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\r\n\r\n\t\t// This implementation is different from Google's\r\n\t\t// in that it searches for a fitting format\r\n\t\t// even if the user has entered less than\r\n\t\t// `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\r\n\t\t// Because some leading digit patterns already match for a single first digit.\r\n\t\tlet leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH\r\n\t\tif (leadingDigitsPatternIndex < 0) {\r\n\t\t\tleadingDigitsPatternIndex = 0\r\n\t\t}\r\n\r\n\t\tthis.matchingFormats = this.matchingFormats.filter(\r\n\t\t\tformat => this.formatSuits(format, international, nationalPrefix)\r\n\t\t\t\t&& this.formatMatches(format, leadingDigits, leadingDigitsPatternIndex)\r\n\t\t)\r\n\r\n\t\t// If there was a phone number format chosen\r\n\t\t// and it no longer holds given the new leading digits then reset it.\r\n\t\t// The test for this `if` condition is marked as:\r\n\t\t// \"Reset a chosen format when it no longer holds given the new leading digits\".\r\n\t\t// To construct a valid test case for this one can find a country\r\n\t\t// in `PhoneNumberMetadata.xml` yielding one format for 3 ``\r\n\t\t// and yielding another format for 4 `` (Australia in this case).\r\n\t\tif (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t}\r\n\r\n\tformatSuits(format, international, nationalPrefix) {\r\n\t\t// When a prefix before a national (significant) number is\r\n\t\t// simply a national prefix, then it's parsed as `this.nationalPrefix`.\r\n\t\t// In more complex cases, a prefix before national (significant) number\r\n\t\t// could include a national prefix as well as some \"capturing groups\",\r\n\t\t// and in that case there's no info whether a national prefix has been parsed.\r\n\t\t// If national prefix is not used when formatting a phone number\r\n\t\t// using this format, but a national prefix has been entered by the user,\r\n\t\t// and was extracted, then discard such phone number format.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\r\n\t\tif (nationalPrefix &&\r\n\t\t\t!format.usesNationalPrefix() &&\r\n\t\t\t// !format.domesticCarrierCodeFormattingRule() &&\r\n\t\t\t!format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// If national prefix is mandatory for this phone number format\r\n\t\t// and there're no guarantees that a national prefix is present in user input\r\n\t\t// then discard this phone number format as not suitable.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\r\n\t\tif (!international &&\r\n\t\t\t!nationalPrefix &&\r\n\t\t\tformat.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\tformatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\r\n\t\tconst leadingDigitsPatternsCount = format.leadingDigitsPatterns().length\r\n\t\t// If this format is not restricted to a certain\r\n\t\t// leading digits pattern then it fits.\r\n\t\tif (leadingDigitsPatternsCount === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// Start excluding any non-matching formats only when the\r\n\t\t// national number entered so far is at least 3 digits long,\r\n\t\t// otherwise format matching would give false negatives.\r\n\t\t// For example, when the digits entered so far are `2`\r\n\t\t// and the leading digits pattern is `21` –\r\n\t\t// it's quite obvious in this case that the format could be the one\r\n\t\t// but due to the absence of further digits it would give false negative.\r\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are available\r\n\t\t// then format matching starts narrowing down the list of possible formats\r\n\t\t// (only previously matched formats are considered for next digits).\r\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\r\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\r\n\t\t// Brackets are required for `^` to be applied to\r\n\t\t// all or-ed (`|`) parts, not just the first one.\r\n\t\treturn new RegExp(`^(${leadingDigitsPattern})`).test(leadingDigits)\r\n\t}\r\n\r\n\tgetFormatFormat(format, international) {\r\n\t\treturn international ? format.internationalFormat() : format.format()\r\n\t}\r\n\r\n\tchooseFormat(state) {\r\n\t\t// When there are multiple available formats, the formatter uses the first\r\n\t\t// format where a formatting template could be created.\r\n\t\tfor (const format of this.matchingFormats.slice()) {\r\n\t\t\t// If this format is currently being used\r\n\t\t\t// and is still suitable, then stick to it.\r\n\t\t\tif (this.chosenFormat === format) {\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\t// Sometimes, a formatting rule inserts additional digits in a phone number,\r\n\t\t\t// and \"as you type\" formatter can't do that: it should only use the digits\r\n\t\t\t// that the user has input.\r\n\t\t\t//\r\n\t\t\t// For example, in Argentina, there's a format for mobile phone numbers:\r\n\t\t\t//\r\n\t\t\t// {\r\n\t\t\t// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n\t\t\t// \"leading_digits_patterns\": [\"91\"],\r\n\t\t\t// \"national_prefix_formatting_rule\": \"0$1\",\r\n\t\t\t// \"format\": \"$2 15-$3-$4\",\r\n\t\t\t// \"international_format\": \"$1 $2 $3-$4\"\r\n\t\t\t// }\r\n\t\t\t//\r\n\t\t\t// In that format, `international_format` is used instead of `format`\r\n\t\t\t// because `format` inserts `15` in the formatted number,\r\n\t\t\t// and `AsYouType` formatter should only use the digits\r\n\t\t\t// the user has actually input, without adding any extra digits.\r\n\t\t\t// In this case, it wouldn't make a difference, because the `15`\r\n\t\t\t// is first stripped when applying `national_prefix_for_parsing`\r\n\t\t\t// and then re-added when using `format`, so in reality it doesn't\r\n\t\t\t// add any new digits to the number, but to detect that, the code\r\n\t\t\t// would have to be more complex: it would have to try formatting\r\n\t\t\t// the digits using the format and then see if any digits have\r\n\t\t\t// actually been added or removed, and then, every time a new digit\r\n\t\t\t// is input, it should re-check whether the chosen format doesn't\r\n\t\t\t// alter the digits.\r\n\t\t\t//\r\n\t\t\t// Google's code doesn't go that far, and so does this library:\r\n\t\t\t// it simply requires that a `format` doesn't add any additonal\r\n\t\t\t// digits to user's input.\r\n\t\t\t//\r\n\t\t\t// Also, people in general should move from inputting phone numbers\r\n\t\t\t// in national format (possibly with national prefixes)\r\n\t\t\t// and use international phone number format instead:\r\n\t\t\t// it's a logical thing in the modern age of mobile phones,\r\n\t\t\t// globalization and the internet.\r\n\t\t\t//\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!NON_ALTERING_FORMAT_REG_EXP.test(this.getFormatFormat(format, state.international))) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tif (!this.createTemplateForFormat(format, state)) {\r\n\t\t\t\t// Remove the format if it can't generate a template.\r\n\t\t\t\tthis.matchingFormats = this.matchingFormats.filter(_ => _ !== format)\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tthis.chosenFormat = format\r\n\t\t\tbreak\r\n\t\t}\r\n\t\tif (!this.chosenFormat) {\r\n\t\t\t// No format matches the national (significant) phone number.\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t\treturn this.chosenFormat\r\n\t}\r\n\r\n\tcreateTemplateForFormat(format, state) {\r\n\t\t// The formatter doesn't format numbers when numberPattern contains '|', e.g.\r\n\t\t// (20|3)\\d{4}. In those cases we quickly return.\r\n\t\t// (Though there's no such format in current metadata)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Get formatting template for this phone number format\r\n\t\tconst template = this.getTemplateForFormat(format, state)\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (template) {\r\n\t\t\tthis.setNationalNumberTemplate(template, state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tgetSeparatorAfterNationalPrefix = (format) => {\r\n\t\t// `US` metadata doesn't have a `national_prefix_formatting_rule`,\r\n\t\t// so the `if` condition below doesn't apply to `US`,\r\n\t\t// but in reality there shoudl be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\t// So `US` national prefix separator is a \"special\" \"hardcoded\" case.\r\n\t\tif (this.isNANP) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// If a `format` has a `national_prefix_formatting_rule`\r\n\t\t// and that rule has a separator after a national prefix,\r\n\t\t// then it means that there should be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\tif (format &&\r\n\t\t\tformat.nationalPrefixFormattingRule() &&\r\n\t\t\tNATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// At this point, there seems to be no clear evidence that\r\n\t\t// there should be a separator between a national prefix\r\n\t\t// and a national (significant) number. So don't insert one.\r\n\t\treturn ''\r\n\t}\r\n\r\n\tgetInternationalPrefixBeforeCountryCallingCode({ IDDPrefix, missingPlus }, options) {\r\n\t\tif (IDDPrefix) {\r\n\t\t\treturn options && options.spacing === false ? IDDPrefix : IDDPrefix + ' '\r\n\t\t}\r\n\t\tif (missingPlus) {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\r\n\tgetTemplate(state) {\r\n\t\tif (!this.template) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// `this.template` holds the template for a \"complete\" phone number.\r\n\t\t// The currently entered phone number is most likely not \"complete\",\r\n\t\t// so trim all non-populated digits.\r\n\t\tlet index = -1\r\n\t\tlet i = 0\r\n\t\tconst internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { spacing: false }) : ''\r\n\t\twhile (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\r\n\t\t\tindex = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1)\r\n\t\t\ti++\r\n\t\t}\r\n\t\treturn cutAndStripNonPairedParens(this.template, index + 1)\r\n\t}\r\n\r\n\tsetNationalNumberTemplate(template, state) {\r\n\t\tthis.nationalNumberTemplate = template\r\n\t\tthis.populatedNationalNumberTemplate = template\r\n\t\t// With a new formatting template, the matched position\r\n\t\t// using the old template needs to be reset.\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t\t// For convenience, the public `.template` property\r\n\t\t// contains the whole international number\r\n\t\t// if the phone number being input is international:\r\n\t\t// 'x' for the '+' sign, 'x'es for the country phone code,\r\n\t\t// a spacebar and then the template for the formatted national number.\r\n\t\tif (state.international) {\r\n\t\t\tthis.template =\r\n\t\t\t\tthis.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) +\r\n\t\t\t\trepeat(DIGIT_PLACEHOLDER, state.callingCode.length) +\r\n\t\t\t\t' ' +\r\n\t\t\t\ttemplate\r\n\t\t} else {\r\n\t\t\tthis.template = template\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Generates formatting template for a national phone number,\r\n\t * optionally containing a national prefix, for a format.\r\n\t * @param {Format} format\r\n\t * @param {string} nationalPrefix\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplateForFormat(format, {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t}) {\r\n\t\tlet pattern = format.pattern()\r\n\r\n\t\t/* istanbul ignore else */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\r\n\t\t\tpattern = pattern\r\n\t\t\t\t// Replace anything in the form of [..] with \\d\r\n\t\t\t\t.replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\r\n\t\t\t\t// Replace any standalone digit (not the one in `{}`) with \\d\r\n\t\t\t\t.replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d')\r\n\t\t}\r\n\r\n\t\t// Generate a dummy national number (consisting of `9`s)\r\n\t\t// that fits this format's `pattern`.\r\n\t\t//\r\n\t\t// This match will always succeed,\r\n\t\t// because the \"longest dummy phone number\"\r\n\t\t// has enough length to accomodate any possible\r\n\t\t// national phone number format pattern.\r\n\t\t//\r\n\t\tlet digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]\r\n\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (nationalSignificantNumber.length > digits.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Get a formatting template which can be used to efficiently format\r\n\t\t// a partial number where digits are added one by one.\r\n\r\n\t\t// Below `strictPattern` is used for the\r\n\t\t// regular expression (with `^` and `$`).\r\n\t\t// This wasn't originally in Google's `libphonenumber`\r\n\t\t// and I guess they don't really need it\r\n\t\t// because they're not using \"templates\" to format phone numbers\r\n\t\t// but I added `strictPattern` after encountering\r\n\t\t// South Korean phone number formatting bug.\r\n\t\t//\r\n\t\t// Non-strict regular expression bug demonstration:\r\n\t\t//\r\n\t\t// this.nationalSignificantNumber : `111111111` (9 digits)\r\n\t\t//\r\n\t\t// pattern : (\\d{2})(\\d{3,4})(\\d{4})\r\n\t\t// format : `$1 $2 $3`\r\n\t\t// digits : `9999999999` (10 digits)\r\n\t\t//\r\n\t\t// '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\r\n\t\t//\r\n\t\t// template : xx xxxx xxxx\r\n\t\t//\r\n\t\t// But the correct template in this case is `xx xxx xxxx`.\r\n\t\t// The template was generated incorrectly because of the\r\n\t\t// `{3,4}` variability in the `pattern`.\r\n\t\t//\r\n\t\t// The fix is, if `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then `this.nationalSignificantNumber`\r\n\t\t// is used instead of `digits`.\r\n\r\n\t\tconst strictPattern = new RegExp('^' + pattern + '$')\r\n\t\tconst nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT)\r\n\r\n\t\t// If `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then use it\r\n\t\t// instead of `digits`.\r\n\t\tif (strictPattern.test(nationalNumberDummyDigits)) {\r\n\t\t\tdigits = nationalNumberDummyDigits\r\n\t\t}\r\n\r\n\t\tlet numberFormat = this.getFormatFormat(format, international)\r\n\t\tlet nationalPrefixIncludedInTemplate\r\n\r\n\t\t// If a user did input a national prefix (and that's guaranteed),\r\n\t\t// and if a `format` does have a national prefix formatting rule,\r\n\t\t// then see if that national prefix formatting rule\r\n\t\t// prepends exactly the same national prefix the user has input.\r\n\t\t// If that's the case, then use the `format` with the national prefix formatting rule.\r\n\t\t// Otherwise, use the `format` without the national prefix formatting rule,\r\n\t\t// and prepend a national prefix manually to it.\r\n\t\tif (this.shouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix })) {\r\n\t\t\tconst numberFormatWithNationalPrefix = numberFormat.replace(\r\n\t\t\t\tFIRST_GROUP_PATTERN,\r\n\t\t\t\tformat.nationalPrefixFormattingRule()\r\n\t\t\t)\r\n\t\t\t// If `national_prefix_formatting_rule` of a `format` simply prepends\r\n\t\t\t// national prefix at the start of a national (significant) number,\r\n\t\t\t// then such formatting can be used with `AsYouType` formatter.\r\n\t\t\t// There seems to be no `else` case: everywhere in metadata,\r\n\t\t\t// national prefix formatting rule is national prefix + $1,\r\n\t\t\t// or `($1)`, in which case such format isn't even considered\r\n\t\t\t// when the user has input a national prefix.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\r\n\t\t\t\tnumberFormat = numberFormatWithNationalPrefix\r\n\t\t\t\tnationalPrefixIncludedInTemplate = true\r\n\t\t\t\t// Replace all digits of the national prefix in the formatting template\r\n\t\t\t\t// with `DIGIT_PLACEHOLDER`s.\r\n\t\t\t\tif (nationalPrefix) {\r\n\t\t\t\t\tlet i = nationalPrefix.length\r\n\t\t\t\t\twhile (i > 0) {\r\n\t\t\t\t\t\tnumberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER)\r\n\t\t\t\t\t\ti--\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Generate formatting template for this phone number format.\r\n\t\tlet template = digits\r\n\t\t\t// Format the dummy phone number according to the format.\r\n\t\t\t.replace(new RegExp(pattern), numberFormat)\r\n\t\t\t// Replace each dummy digit with a DIGIT_PLACEHOLDER.\r\n\t\t\t.replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER)\r\n\r\n\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t// as just a basic national prefix, then just prepend such prefix\r\n\t\t// before the national (significant) number, optionally spacing\r\n\t\t// the two with a whitespace.\r\n\t\tif (!nationalPrefixIncludedInTemplate) {\r\n\t\t\tif (complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\t\t// Prepend the prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) +\r\n\t\t\t\t\t' ' +\r\n\t\t\t\t\ttemplate\r\n\t\t\t} else if (nationalPrefix) {\r\n\t\t\t\t// Prepend national prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) +\r\n\t\t\t\t\tthis.getSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (international) {\r\n\t\t\ttemplate = applyInternationalSeparatorStyle(template)\r\n\t\t}\r\n\r\n\t\treturn template\r\n\t}\r\n\r\n\tformatNextNationalNumberDigits(digits) {\r\n\t\tconst result = populateTemplateWithDigits(\r\n\t\t\tthis.populatedNationalNumberTemplate,\r\n\t\t\tthis.populatedNationalNumberTemplatePosition,\r\n\t\t\tdigits\r\n\t\t)\r\n\r\n\t\tif (!result) {\r\n\t\t\t// Reset the format.\r\n\t\t\tthis.resetFormat()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.populatedNationalNumberTemplate = result[0]\r\n\t\tthis.populatedNationalNumberTemplatePosition = result[1]\r\n\r\n\t\t// Return the formatted phone number so far.\r\n\t\treturn cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\r\n\t\t// The old way which was good for `input-format` but is not so good\r\n\t\t// for `react-phone-number-input`'s default input (`InputBasic`).\r\n\t\t// return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\t\t// \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\r\n\t}\r\n\r\n\tshouldTryNationalPrefixFormattingRule = (format, { international, nationalPrefix }) => {\r\n\t\tif (format.nationalPrefixFormattingRule()) {\r\n\t\t\t// In some countries, `national_prefix_formatting_rule` is `($1)`,\r\n\t\t\t// so it applies even if the user hasn't input a national prefix.\r\n\t\t\t// `format.usesNationalPrefix()` detects such cases.\r\n\t\t\tconst usesNationalPrefix = format.usesNationalPrefix()\r\n\t\t\tif ((usesNationalPrefix && nationalPrefix) ||\r\n\t\t\t\t(!usesNationalPrefix && !international)) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import extractCountryCallingCode from './helpers/extractCountryCallingCode'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign'\r\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber'\r\nimport stripIddPrefix from './helpers/stripIddPrefix'\r\nimport parseDigits from './helpers/parseDigits'\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from './constants'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART =\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i')\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_PART =\r\n\t'(?:' +\r\n\t\t'[' + PLUS_CHARS + ']' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']*' +\r\n\t\t'|' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']+' +\r\n\t')'\r\n\r\nconst AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp(\r\n\t'[^' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+' +\r\n\t'.*' +\r\n\t'$'\r\n)\r\n\r\n// Tests whether `national_prefix_for_parsing` could match\r\n// different national prefixes.\r\n// Matches anything that's not a digit or a square bracket.\r\nconst COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/\r\n\r\nexport default class AsYouTypeParser {\r\n\tconstructor({\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata,\r\n\t\tonNationalSignificantNumberChange\r\n\t}) {\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.metadata = metadata\r\n\t\tthis.onNationalSignificantNumberChange = onNationalSignificantNumberChange\r\n\t}\r\n\r\n\tinput(text, state) {\r\n\t\tconst [formattedDigits, hasPlus] = extractFormattedDigitsAndPlus(text)\r\n\t\tconst digits = parseDigits(formattedDigits)\r\n\t\t// Checks for a special case: just a leading `+` has been entered.\r\n\t\tlet justLeadingPlus\r\n\t\tif (hasPlus) {\r\n\t\t\tif (!state.digits) {\r\n\t\t\t\tstate.startInternationalNumber()\r\n\t\t\t\tif (!digits) {\r\n\t\t\t\t\tjustLeadingPlus = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (digits) {\r\n\t\t\tthis.inputDigits(digits, state)\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number digits.\r\n\t * @param {string} digits\r\n\t * @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\t */\r\n\tinputDigits(nextDigits, state) {\r\n\t\tconst { digits } = state\r\n\t\tconst hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3\r\n\r\n\t\t// Append phone number digits.\r\n\t\tstate.appendDigits(nextDigits)\r\n\r\n\t\t// Attempt to extract IDD prefix:\r\n\t\t// Some users input their phone number in international format,\r\n\t\t// but in an \"out-of-country\" dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers as soon as there're at least 3 digits.\r\n\t\t// Google's library attempts to extract IDD prefix at 3 digits,\r\n\t\t// so this library just copies that behavior.\r\n\t\t// I guess that's because the most commot IDD prefixes are\r\n\t\t// `00` (Europe) and `011` (US).\r\n\t\t// There exist really long IDD prefixes too:\r\n\t\t// for example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t// An IDD prefix is extracted here, and then every time when\r\n\t\t// there's a new digit and the number couldn't be formatted.\r\n\t\tif (hasReceivedThreeLeadingDigits) {\r\n\t\t\tthis.extractIddPrefix(state)\r\n\t\t}\r\n\r\n\t\tif (this.isWaitingForCountryCallingCode(state)) {\r\n\t\t\tif (!this.extractCountryCallingCode(state)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tstate.appendNationalSignificantNumberDigits(nextDigits)\r\n\t\t}\r\n\r\n\t\t// If a phone number is being input in international format,\r\n\t\t// then it's not valid for it to have a national prefix.\r\n\t\t// Still, some people incorrectly input such numbers with a national prefix.\r\n\t\t// In such cases, only attempt to strip a national prefix if the number becomes too long.\r\n\t\t// (but that is done later, not here)\r\n\t\tif (!state.international) {\r\n\t\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\t\tthis.extractNationalSignificantNumber(state.getNationalDigits(), state.update)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisWaitingForCountryCallingCode({ international, callingCode }) {\r\n\t\treturn international && !callingCode\r\n\t}\r\n\r\n\t// Extracts a country calling code from a number\r\n\t// being entered in internatonal format.\r\n\textractCountryCallingCode(state) {\r\n\t\tconst { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\t\t'+' + state.getDigitsWithoutInternationalPrefix(),\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (countryCallingCode) {\r\n\t\t\tstate.setCallingCode(countryCallingCode)\r\n\t\t\tstate.update({\r\n\t\t\t\tnationalSignificantNumber: number\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\treset(numberingPlan) {\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.hasSelectedNumberingPlan = true\r\n\t\t\tconst nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing()\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing)\r\n\t\t} else {\r\n\t\t\tthis.hasSelectedNumberingPlan = undefined\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts a national (significant) number from user input.\r\n\t * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n\t * and doesn't apply `national_prefix_transform_rule` after that.\r\n\t * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n\t * @return {boolean} [extracted]\r\n\t */\r\n\textractNationalSignificantNumber(nationalDigits, setState) {\r\n\t\tif (!this.hasSelectedNumberingPlan) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\tif (nationalNumber === nationalDigits) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\t/**\r\n\t * In Google's code this function is called \"attempt to extract longer NDD\".\r\n\t * \"Some national prefixes are a substring of others\", they say.\r\n\t * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n\t */\r\n\textractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\r\n\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\treturn this.extractNationalSignificantNumber(nationalDigits, setState)\r\n\t\t}\r\n\t\tif (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\t// If a national prefix has been extracted previously,\r\n\t\t// then it's always extracted as additional digits are added.\r\n\t\t// That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\r\n\t\t// doesn't do anything different from what it currently does.\r\n\t\t// So, just in case, here's this check, though it doesn't occur.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (nationalNumber === prevNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\tonExtractedNationalNumber(\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalDigits,\r\n\t\tsetState\r\n\t) {\r\n\t\tlet complexPrefixBeforeNationalSignificantNumber\r\n\t\tlet nationalSignificantNumberMatchesInput\r\n\t\t// This check also works with empty `this.nationalSignificantNumber`.\r\n\t\tconst nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber)\r\n\t\t// If the extracted national (significant) number is the\r\n\t\t// last substring of the `digits`, then it means that it hasn't been altered:\r\n\t\t// no digits have been removed from the national (significant) number\r\n\t\t// while applying `national_prefix_transform_rule`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\tif (nationalSignificantNumberIndex >= 0 &&\r\n\t\t\tnationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\r\n\t\t\tnationalSignificantNumberMatchesInput = true\r\n\t\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t\t// as just a basic national prefix, then such prefix is stored in\r\n\t\t\t// `this.complexPrefixBeforeNationalSignificantNumber` property and will be\r\n\t\t\t// prepended \"as is\" to the national (significant) number to produce\r\n\t\t\t// a formatted result.\r\n\t\t\tconst prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex)\r\n\t\t\t// `prefixBeforeNationalNumber` is always non-empty,\r\n\t\t\t// because `onExtractedNationalNumber()` isn't called\r\n\t\t\t// when a national (significant) number hasn't been actually \"extracted\":\r\n\t\t\t// when a national (significant) number is equal to the national part of `digits`,\r\n\t\t\t// then `onExtractedNationalNumber()` doesn't get called.\r\n\t\t\tif (prefixBeforeNationalNumber !== nationalPrefix) {\r\n\t\t\t\tcomplexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetState({\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tnationalSignificantNumberMatchesInput,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t\t})\r\n\t\t// `onExtractedNationalNumber()` is only called when\r\n\t\t// the national (significant) number actually did change.\r\n\t\tthis.hasExtractedNationalSignificantNumber = true\r\n\t\tthis.onNationalSignificantNumberChange()\r\n\t}\r\n\r\n\treExtractNationalSignificantNumber(state) {\r\n\t\t// Attempt to extract a national prefix.\r\n\t\t//\r\n\t\t// Some people incorrectly input national prefix\r\n\t\t// in an international phone number.\r\n\t\t// For example, some people write British phone numbers as `+44(0)...`.\r\n\t\t//\r\n\t\t// Also, in some rare cases, it is valid for a national prefix\r\n\t\t// to be a part of an international phone number.\r\n\t\t// For example, mobile phone numbers in Mexico are supposed to be\r\n\t\t// dialled internationally using a `1` national prefix,\r\n\t\t// so the national prefix will be part of an international number.\r\n\t\t//\r\n\t\t// Quote from:\r\n\t\t// https://www.mexperience.com/dialing-cell-phones-in-mexico/\r\n\t\t//\r\n\t\t// \"Dialing a Mexican cell phone from abroad\r\n\t\t// When you are calling a cell phone number in Mexico from outside Mexico,\r\n\t\t// it’s necessary to dial an additional “1” after Mexico’s country code\r\n\t\t// (which is “52”) and before the area code.\r\n\t\t// You also ignore the 045, and simply dial the area code and the\r\n\t\t// cell phone’s number.\r\n\t\t//\r\n\t\t// If you don’t add the “1”, you’ll receive a recorded announcement\r\n\t\t// asking you to redial using it.\r\n\t\t//\r\n\t\t// For example, if you are calling from the USA to a cell phone\r\n\t\t// in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\r\n\t\t// (Note that this is different to calling a land line in Mexico City\r\n\t\t// from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\r\n\t\t//\r\n\t\t// Google's demo output:\r\n\t\t// https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\r\n\t\t//\r\n\t\tif (this.extractAnotherNationalSignificantNumber(\r\n\t\t\tstate.getNationalDigits(),\r\n\t\t\tstate.nationalSignificantNumber,\r\n\t\t\tstate.update\r\n\t\t)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// If no format matches the phone number, then it could be\r\n\t\t// \"a really long IDD\" (quote from a comment in Google's library).\r\n\t\t// An IDD prefix is first extracted when the user has entered at least 3 digits,\r\n\t\t// and then here — every time when there's a new digit and the number\r\n\t\t// couldn't be formatted.\r\n\t\t// For example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t//\r\n\t\t// Could also check `!hasReceivedThreeLeadingDigits` here\r\n\t\t// to filter out the case when this check duplicates the one\r\n\t\t// already performed when there're 3 leading digits,\r\n\t\t// but it's not a big deal, and in most cases there\r\n\t\t// will be a suitable `format` when there're 3 leading digits.\r\n\t\t//\r\n\t\tif (this.extractIddPrefix(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// Google's AsYouType formatter supports sort of an \"autocorrection\" feature\r\n\t\t// when it \"autocorrects\" numbers that have been input for a country\r\n\t\t// with that country's calling code.\r\n\t\t// Such \"autocorrection\" feature looks weird, but different people have been requesting it:\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/375\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/316\r\n\t\tif (this.fixMissingPlus(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\textractIddPrefix(state) {\r\n\t\t// An IDD prefix can't be present in a number written with a `+`.\r\n\t\t// Also, don't re-extract an IDD prefix if has already been extracted.\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tIDDPrefix,\r\n\t\t\tdigits,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = state\r\n\t\tif (international || IDDPrefix) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Some users input their phone number in \"out-of-country\"\r\n\t\t// dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(\r\n\t\t\tdigits,\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\r\n\t\t\t// If an IDD prefix was stripped then convert the IDD-prefixed number\r\n\t\t\t// to international number for subsequent parsing.\r\n\t\t\tstate.update({\r\n\t\t\t\tIDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\r\n\t\t\t})\r\n\t\t\tthis.startInternationalNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tfixMissingPlus(state) {\r\n\t\tif (!state.international) {\r\n\t\t\tconst {\r\n\t\t\t\tcountryCallingCode: newCallingCode,\r\n\t\t\t\tnumber\r\n\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\tstate.digits,\r\n\t\t\t\tthis.defaultCountry,\r\n\t\t\t\tthis.defaultCallingCode,\r\n\t\t\t\tthis.metadata.metadata\r\n\t\t\t)\r\n\t\t\tif (newCallingCode) {\r\n\t\t\t\tstate.update({\r\n\t\t\t\t\tmissingPlus: true\r\n\t\t\t\t})\r\n\t\t\t\tthis.startInternationalNumber(state)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstartInternationalNumber(state) {\r\n\t\tstate.startInternationalNumber()\r\n\t\t// If a national (significant) number has been extracted before, reset it.\r\n\t\tif (state.nationalSignificantNumber) {\r\n\t\t\tstate.resetNationalSignificantNumber()\r\n\t\t\tthis.onNationalSignificantNumberChange()\r\n\t\t\tthis.hasExtractedNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\textractCallingCodeAndNationalSignificantNumber(state) {\r\n\t\tif (this.extractCountryCallingCode(state)) {\r\n\t\t\t// `this.extractCallingCode()` is currently called when the number\r\n\t\t\t// couldn't be formatted during the standard procedure.\r\n\t\t\t// Normally, the national prefix would be re-extracted\r\n\t\t\t// for an international number if such number couldn't be formatted,\r\n\t\t\t// but since it's already not able to be formatted,\r\n\t\t\t// there won't be yet another retry, so also extract national prefix here.\r\n\t\t\tthis.extractNationalSignificantNumber(state.getNationalDigits(), state.update)\r\n\t\t}\r\n\t}\r\n}\r\n\r\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 */\r\nfunction extractFormattedPhoneNumber(text) {\r\n\t// Attempt to extract a possible number from the string passed in.\r\n\tconst startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\t// Trim everything to the left of the phone number.\r\n\ttext = text.slice(startsAt)\r\n\t// Trim the `+`.\r\n\tlet hasPlus\r\n\tif (text[0] === '+') {\r\n\t\thasPlus = true\r\n\t\ttext = text.slice('+'.length)\r\n\t}\r\n\t// Trim everything to the right of the phone number.\r\n\ttext = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '')\r\n\t// Re-add the previously trimmed `+`.\r\n\tif (hasPlus) {\r\n\t\ttext = '+' + text\r\n\t}\r\n\treturn text\r\n}\r\n\r\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 */\r\nfunction _extractFormattedDigitsAndPlus(text) {\r\n\t// Extract a formatted phone number part from text.\r\n\tconst extractedNumber = extractFormattedPhoneNumber(text) || ''\r\n\t// Trim a `+`.\r\n\tif (extractedNumber[0] === '+') {\r\n\t\treturn [extractedNumber.slice('+'.length), true]\r\n\t}\r\n\treturn [extractedNumber]\r\n}\r\n\r\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 */\r\nexport function extractFormattedDigitsAndPlus(text) {\r\n\tlet [formattedDigits, hasPlus] = _extractFormattedDigitsAndPlus(text)\r\n\t// If the extracted phone number part\r\n\t// can possibly be a part of some valid phone number\r\n\t// then parse phone number characters from a formatted phone number.\r\n\tif (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\r\n\t\tformattedDigits = ''\r\n\t}\r\n\treturn [formattedDigits, hasPlus]\r\n}","import Metadata from './metadata'\r\nimport PhoneNumber from './PhoneNumber'\r\nimport AsYouTypeState from './AsYouTypeState'\r\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter'\r\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class AsYouType {\r\n\t/**\r\n\t * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n\t * @param {Object} metadata\r\n\t */\r\n\tconstructor(optionsOrDefaultCountry, metadata) {\r\n\t\tthis.metadata = new Metadata(metadata)\r\n\t\tconst [defaultCountry, defaultCallingCode] = this.getCountryAndCallingCode(optionsOrDefaultCountry)\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.reset()\r\n\t}\r\n\r\n\tgetCountryAndCallingCode(optionsOrDefaultCountry) {\r\n\t\t// Set `defaultCountry` and `defaultCallingCode` options.\r\n\t\tlet defaultCountry\r\n\t\tlet defaultCallingCode\r\n\t\t// Turns out `null` also has type \"object\". Weird.\r\n\t\tif (optionsOrDefaultCountry) {\r\n\t\t\tif (typeof optionsOrDefaultCountry === 'object') {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry.defaultCountry\r\n\t\t\t\tdefaultCallingCode = optionsOrDefaultCountry.defaultCallingCode\r\n\t\t\t} else {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\r\n\t\t\tdefaultCountry = undefined\r\n\t\t}\r\n\t\tif (defaultCallingCode) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tdefaultCountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [defaultCountry, defaultCallingCode]\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number characters.\r\n\t * @param {string} text\r\n\t * @return {string} Formatted phone number characters that have been input so far.\r\n\t */\r\n\tinput(text) {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t} = this.parser.input(text, this.state)\r\n\t\tif (justLeadingPlus) {\r\n\t\t\tthis.formattedOutput = '+'\r\n\t\t} else if (digits) {\r\n\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t// Match the available formats by the currently available leading digits.\r\n\t\t\tif (this.state.nationalSignificantNumber) {\r\n\t\t\t\tthis.formatter.narrowDownMatchingFormats(this.state)\r\n\t\t\t}\r\n\t\t\tlet formattedNationalNumber\r\n\t\t\tif (this.metadata.hasSelectedNumberingPlan()) {\r\n\t\t\t\tformattedNationalNumber = this.formatter.format(digits, this.state)\r\n\t\t\t}\r\n\t\t\tif (formattedNationalNumber === undefined) {\r\n\t\t\t\t// See if another national (significant) number could be re-extracted.\r\n\t\t\t\tif (this.parser.reExtractNationalSignificantNumber(this.state)) {\r\n\t\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\t\t// If it could, then re-try formatting the new national (significant) number.\r\n\t\t\t\t\tconst nationalDigits = this.state.getNationalDigits()\r\n\t\t\t\t\tif (nationalDigits) {\r\n\t\t\t\t\t\tformattedNationalNumber = this.formatter.format(nationalDigits, this.state)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.formattedOutput = formattedNationalNumber\r\n\t\t\t\t? this.getFullNumber(formattedNationalNumber)\r\n\t\t\t\t: this.getNonFormattedNumber()\r\n\t\t}\r\n\t\treturn this.formattedOutput\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.state = new AsYouTypeState({\r\n\t\t\tonCountryChange: (country) => {\r\n\t\t\t\t// Before version `1.6.0`, the official `AsYouType` formatter API\r\n\t\t\t\t// included the `.country` property of an `AsYouType` instance.\r\n\t\t\t\t// Since that property (along with the others) have been moved to\r\n\t\t\t\t// `this.state`, `this.country` property is emulated for compatibility\r\n\t\t\t\t// with the old versions.\r\n\t\t\t\tthis.country = country\r\n\t\t\t},\r\n\t\t\tonCallingCodeChange: (country, callingCode) => {\r\n\t\t\t\tthis.metadata.selectNumberingPlan(country, callingCode)\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t\tthis.parser.reset(this.metadata.numberingPlan)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.formatter = new AsYouTypeFormatter({\r\n\t\t\tstate: this.state,\r\n\t\t\tmetadata: this.metadata\r\n\t\t})\r\n\t\tthis.parser = new AsYouTypeParser({\r\n\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\tdefaultCallingCode: this.defaultCallingCode,\r\n\t\t\tmetadata: this.metadata,\r\n\t\t\tstate: this.state,\r\n\t\t\tonNationalSignificantNumberChange: () => {\r\n\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.state.reset(this.defaultCountry, this.defaultCallingCode)\r\n\t\tthis.formattedOutput = ''\r\n\t\treturn this\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is being input in international format.\r\n\t * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisInternational() {\r\n\t\treturn this.state.international\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the \"country calling code\" part of the phone number.\r\n\t * Returns `undefined` if the number is not being input in international format.\r\n\t * Returns \"country calling code\" for \"non-geographic\" phone numbering plans too.\r\n\t * @return {string} [callingCode]\r\n\t */\r\n\tgetCallingCode() {\r\n\t\treturn this.state.callingCode\r\n\t}\r\n\r\n\t// A legacy alias.\r\n\tgetCountryCallingCode() {\r\n\t\treturn this.getCallingCode()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * Returns `undefined` if no phone number has been input yet.\r\n\t * @return {string} [country]\r\n\t */\r\n\tgetCountry() {\r\n\t\tconst { digits, country } = this.state\r\n\t\t// If no digits have been input yet,\r\n\t\t// then `this.country` is the `defaultCountry`.\r\n\t\t// Won't return the `defaultCountry` in such case.\r\n\t\tif (!digits) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tlet countryCode = country\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t// `AsYouType.getCountry()` returns `undefined`\r\n\t\t\t// for \"non-geographic\" phone numbering plans.\r\n\t\t\tif (countryCode === '001') {\r\n\t\t\t\tcountryCode = undefined\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn countryCode\r\n\t}\r\n\r\n\tdetermineTheCountryIfNeeded() {\r\n\t\t// Suppose a user enters a phone number in international format,\r\n\t\t// and there're several countries corresponding to that country calling code,\r\n\t\t// and a country has been derived from the number, and then\r\n\t\t// a user enters one more digit and the number is no longer\r\n\t\t// valid for the derived country, so the country should be re-derived\r\n\t\t// on every new digit in those cases.\r\n\t\t//\r\n\t\t// If the phone number is being input in national format,\r\n\t\t// then it could be a case when `defaultCountry` wasn't specified\r\n\t\t// when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\r\n\t\t// and that \"calling code\" could correspond to a \"non-geographic entity\",\r\n\t\t// or there could be several countries corresponding to that country calling code.\r\n\t\t// In those cases, `this.country` is `undefined` and should be derived\r\n\t\t// from the number. Again, if country calling code is ambiguous, then\r\n\t\t// `this.country` should be re-derived with each new digit.\r\n\t\t//\r\n\t\tif (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\r\n\t\t\tthis.determineTheCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t// Prepends `+CountryCode ` in case of an international phone number\r\n\tgetFullNumber(formattedNationalNumber) {\r\n\t\tif (this.isInternational()) {\r\n\t\t\tconst prefix = (text) => this.formatter.getInternationalPrefixBeforeCountryCallingCode(this.state, {\r\n\t\t\t\tspacing: text ? true : false\r\n\t\t\t}) + text\r\n\t\t\tconst { callingCode } = this.state\r\n\t\t\tif (!callingCode) {\r\n\t\t\t\treturn prefix(`${this.state.getDigitsWithoutInternationalPrefix()}`)\r\n\t\t\t}\r\n\t\t\tif (!formattedNationalNumber) {\r\n\t\t\t\treturn prefix(callingCode)\r\n\t\t\t}\r\n\t\t\treturn prefix(`${callingCode} ${formattedNationalNumber}`)\r\n\t\t}\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n\r\n\tgetNonFormattedNationalNumberWithPrefix() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber,\r\n\t\t\tnationalPrefix\r\n\t\t} = this.state\r\n\t\tlet number = nationalSignificantNumber\r\n\t\tconst prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix\r\n\t\tif (prefix) {\r\n\t\t\tnumber = prefix + number\r\n\t\t}\r\n\t\treturn number\r\n\t}\r\n\r\n\tgetNonFormattedNumber() {\r\n\t\tconst { nationalSignificantNumberMatchesInput } = this.state\r\n\t\treturn this.getFullNumber(\r\n\t\t\tnationalSignificantNumberMatchesInput\r\n\t\t\t\t? this.getNonFormattedNationalNumberWithPrefix()\r\n\t\t\t\t: this.state.getNationalDigits()\r\n\t\t)\r\n\t}\r\n\r\n\tgetNonFormattedTemplate() {\r\n\t\tconst number = this.getNonFormattedNumber()\r\n\t\tif (number) {\r\n\t\t\treturn number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER)\r\n\t\t}\r\n\t}\r\n\r\n\tisCountryCallingCodeAmbiguous() {\r\n\t\tconst { callingCode } = this.state\r\n\t\tconst countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\treturn countryCodes && countryCodes.length > 1\r\n\t}\r\n\r\n\t// Determines the country of the phone number\r\n\t// entered so far based on the country phone code\r\n\t// and the national phone number.\r\n\tdetermineTheCountry() {\r\n\t\tthis.state.setCountry(getCountryByCallingCode(\r\n\t\t\tthis.isInternational() ? this.state.callingCode : this.defaultCallingCode,\r\n\t\t\tthis.state.nationalSignificantNumber,\r\n\t\t\tthis.metadata\r\n\t\t))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an instance of `PhoneNumber` class.\r\n\t * Will return `undefined` if no national (significant) number\r\n\t * digits have been entered so far, or if no `defaultCountry` has been\r\n\t * set and the user enters a phone number not in international format.\r\n\t */\r\n\tgetNumber() {\r\n\t\tlet {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = this.state\r\n\t\tif (this.isInternational()) {\r\n\t\t\tif (!this.state.callingCode) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (!this.state.country && !this.defaultCallingCode) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!nationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst countryCode = this.getCountry()\r\n\t\tconst callingCode = this.getCountryCallingCode() || this.defaultCallingCode\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountryCode || callingCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\t// Phone number extensions are not supported by \"As You Type\" formatter.\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"possible\".\r\n\t * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisPossible() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isPossible()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"valid\".\r\n\t * Is just a shortcut for `PhoneNumber.isValid()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisValid() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isValid()\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t * This method is used in `react-phone-number-input/source/input-control.js`\r\n\t * in versions before `3.0.16`.\r\n\t */\r\n\tgetNationalNumber() {\r\n\t\treturn this.state.nationalSignificantNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the phone number characters entered by the user.\r\n\t * @return {string}\r\n\t */\r\n\tgetChars() {\r\n\t\treturn (this.state.international ? '+' : '') + this.state.digits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the template for the formatted phone number.\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplate() {\r\n\t\treturn this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ''\r\n\t}\r\n}","import { getCountryCallingCode } from 'libphonenumber-js/core'\r\n\r\nexport function getInputValuePrefix({\r\n\tcountry,\r\n\tinternational,\r\n\twithCountryCallingCode,\r\n\tmetadata\r\n}) {\r\n\treturn country && international && !withCountryCallingCode ?\r\n\t\t`+${getCountryCallingCode(country, metadata)}` :\r\n\t\t''\r\n}\r\n\r\nexport function removeInputValuePrefix(value, prefix) {\r\n\tif (prefix) {\r\n\t\tvalue = value.slice(prefix.length)\r\n\t\tif (value[0] === ' ') {\r\n\t\t\tvalue = value.slice(1)\r\n\t\t}\r\n\t}\r\n\treturn value\r\n}","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Input from 'input-format/react'\r\nimport { AsYouType, parsePhoneNumberCharacter } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix'\r\n\r\n/**\r\n * This input uses `input-format` library\r\n * for \"smart\" caret positioning.\r\n */\r\nexport function createInput(defaultMetadata)\r\n{\r\n\tfunction InputSmart({\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata,\r\n\t\t...rest\r\n\t}, ref) {\r\n\t\tconst format = useCallback((value) => {\r\n\t\t\t// \"As you type\" formatter.\r\n\t\t\tconst formatter = new AsYouType(country, metadata)\r\n\t\t\tconst prefix = getInputValuePrefix({\r\n\t\t\t\tcountry,\r\n\t\t\t\tinternational,\r\n\t\t\t\twithCountryCallingCode,\r\n\t\t\t\tmetadata\r\n\t\t\t})\r\n\t\t\t// Format the number.\r\n\t\t\tlet text = formatter.input(prefix + value)\r\n\t\t\tlet template = formatter.getTemplate()\r\n\t\t\tif (prefix) {\r\n\t\t\t\ttext = removeInputValuePrefix(text, prefix)\r\n\t\t\t\t// `AsYouType.getTemplate()` can be `undefined`.\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\ttemplate = removeInputValuePrefix(template, prefix)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\ttext,\r\n\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}, [country, metadata])\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tInputSmart = React.forwardRef(InputSmart)\r\n\r\n\tInputSmart.propTypes = {\r\n\t\t/**\r\n\t\t * A two-letter country code for formatting `value`\r\n\t\t * as a national phone number (e.g. `(800) 555 35 35`).\r\n\t\t * E.g. \"US\", \"RU\", etc.\r\n\t\t * If no `country` is passed then `value`\r\n\t\t * is formatted as an international phone number.\r\n\t\t * (e.g. `+7 800 555 35 35`)\r\n\t\t * Perhaps the `country` property should have been called `defaultCountry`\r\n\t\t * because if `value` is an international number then `country` is ignored.\r\n\t\t */\r\n\t\tcountry: PropTypes.string,\r\n\r\n\t\t/**\r\n\t\t * If `country` property is passed along with `international={true}` property\r\n\t\t * then the phone number will be input in \"international\" format for that `country`\r\n\t\t * (without \"country calling code\").\r\n\t\t * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n\t\t * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n\t\t * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n\t\t * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n\t\t * (without \"country calling code\" `+1`).\r\n\t\t */\r\n\t\tinternational: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * If `country` and `international` properties are set,\r\n\t\t * then by default it won't include \"country calling code\" in the input field.\r\n\t\t * To change that, pass `withCountryCallingCode` property,\r\n\t\t * and it will include \"country calling code\" in the input field.\r\n\t\t */\r\n\t\twithCountryCallingCode: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * `libphonenumber-js` metadata.\r\n\t\t */\r\n\t\tmetadata: PropTypes.object.isRequired\r\n\t}\r\n\r\n\tInputSmart.defaultProps = {\r\n\t\tmetadata: defaultMetadata\r\n\t}\r\n\r\n\treturn InputSmart\r\n}\r\n\r\nexport default createInput()","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix'\r\n\r\nexport function createInput(defaultMetadata) {\r\n\t/**\r\n\t * `InputBasic`'s caret is not as \"smart\" as the default `inputComponent`'s\r\n\t * but still works good enough. When erasing or inserting digits in the middle\r\n\t * of a phone number the caret usually jumps to the end: this is the expected\r\n\t * behaviour and it's the workaround for the [Samsung Galaxy smart caret positioning bug](https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n\t */\r\n\tfunction InputBasic({\r\n\t\tvalue,\r\n\t\tonChange,\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata,\r\n\t\tinputComponent: Input,\r\n\t\t...rest\r\n\t}, ref) {\r\n\t\tconst prefix = getInputValuePrefix({\r\n\t\t\tcountry,\r\n\t\t\tinternational,\r\n\t\t\twithCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tconst _onChange = useCallback((event) => {\r\n\t\t\tlet newValue = parseIncompletePhoneNumber(event.target.value)\r\n\t\t\t// By default, if a value is something like `\"(123)\"`\r\n\t\t\t// then Backspace would only erase the rightmost brace\r\n\t\t\t// becoming something like `\"(123\"`\r\n\t\t\t// which would give the same `\"123\"` value\r\n\t\t\t// which would then be formatted back to `\"(123)\"`\r\n\t\t\t// and so a user wouldn't be able to erase the phone number.\r\n\t\t\t// Working around this issue with this simple hack.\r\n\t\t\tif (newValue === value) {\r\n\t\t\t\tconst newValueFormatted = format(prefix, newValue, country, metadata)\r\n\t\t\t\tif (newValueFormatted.indexOf(event.target.value) === 0) {\r\n\t\t\t\t\t// Trim the last digit (or plus sign).\r\n\t\t\t\t\tnewValue = newValue.slice(0, -1)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tonChange(newValue)\r\n\t\t}, [prefix, value, onChange, country, metadata])\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tInputBasic = React.forwardRef(InputBasic)\r\n\r\n\tInputBasic.propTypes = {\r\n\t\t/**\r\n\t\t * The parsed phone number.\r\n\t\t * \"Parsed\" not in a sense of \"E.164\"\r\n\t\t * but rather in a sense of \"having only\r\n\t\t * digits and possibly a leading plus character\".\r\n\t\t * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t\t */\r\n\t\tvalue: PropTypes.string.isRequired,\r\n\r\n\t\t/**\r\n\t\t * Updates the `value`.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A two-letter country code for formatting `value`\r\n\t\t * as a national phone number (e.g. `(800) 555 35 35`).\r\n\t\t * E.g. \"US\", \"RU\", etc.\r\n\t\t * If no `country` is passed then `value`\r\n\t\t * is formatted as an international phone number.\r\n\t\t * (e.g. `+7 800 555 35 35`)\r\n\t\t * Perhaps the `country` property should have been called `defaultCountry`\r\n\t\t * because if `value` is an international number then `country` is ignored.\r\n\t\t */\r\n\t\tcountry : PropTypes.string,\r\n\r\n\t\t/**\r\n\t\t * If `country` property is passed along with `international={true}` property\r\n\t\t * then the phone number will be input in \"international\" format for that `country`\r\n\t\t * (without \"country calling code\").\r\n\t\t * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n\t\t * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n\t\t * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n\t\t * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n\t\t * (without \"country calling code\" `+1`).\r\n\t\t */\r\n\t\tinternational: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * If `country` and `international` properties are set,\r\n\t\t * then by default it won't include \"country calling code\" in the input field.\r\n\t\t * To change that, pass `withCountryCallingCode` property,\r\n\t\t * and it will include \"country calling code\" in the input field.\r\n\t\t */\r\n\t\twithCountryCallingCode: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * `libphonenumber-js` metadata.\r\n\t\t */\r\n\t\tmetadata: PropTypes.object.isRequired,\r\n\r\n\t\t/**\r\n\t\t * The `` component.\r\n\t\t */\r\n\t\tinputComponent: PropTypes.elementType.isRequired\r\n\t}\r\n\r\n\tInputBasic.defaultProps = {\r\n\t\tmetadata: defaultMetadata,\r\n\t\tinputComponent: 'input'\r\n\t}\r\n\r\n\treturn InputBasic\r\n}\r\n\r\nexport default createInput()\r\n\r\nfunction format(prefix, value, country, metadata) {\r\n\treturn removeInputValuePrefix(\r\n\t\tformatIncompletePhoneNumber(\r\n\t\t\tprefix + value,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t),\r\n\t\tprefix\r\n\t)\r\n}","import AsYouType from './AsYouType'\r\n\r\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string?} country - Two-letter (\"ISO 3166-1 alpha-2\") country code.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\r\nexport default function formatIncompletePhoneNumber(value, country, metadata) {\r\n\tif (!metadata) {\r\n\t\tmetadata = country\r\n\t\tcountry = undefined\r\n\t}\r\n\treturn new AsYouType(country, metadata).input(value)\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\n// Default country flag icon.\r\n// `` is wrapped in a `
` to prevent SVGs from exploding in size in IE 11.\r\n// https://github.com/catamphetamine/react-phone-number-input/issues/111\r\nexport default function FlagComponent({\r\n\tcountry,\r\n\tcountryName,\r\n\tflags,\r\n\tflagUrl,\r\n\t...rest\r\n}) {\r\n\tif (flags && flags[country]) {\r\n\t\treturn flags[country]({ title: countryName })\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nFlagComponent.propTypes = {\r\n\t// The country to be selected by default.\r\n\t// Two-letter country code (\"ISO 3166-1 alpha-2\").\r\n\tcountry: PropTypes.string.isRequired,\r\n\r\n\t// Will be HTML `title` attribute of the ``.\r\n\tcountryName: PropTypes.string.isRequired,\r\n\r\n\t// Country flag icon components.\r\n\t// By default flag icons are inserted as ``s\r\n\t// with their `src` pointed to `country-flag-icons` gitlab pages website.\r\n\t// There might be cases (e.g. an offline application)\r\n\t// where having a large (3 megabyte) `` flags\r\n\t// bundle is more appropriate.\r\n\t// `import flags from 'react-phone-number-input/flags'`.\r\n\tflags: PropTypes.objectOf(PropTypes.elementType),\r\n\r\n\t// A URL for a country flag icon.\r\n\t// By default it points to `country-flag-icons` gitlab pages website.\r\n\tflagUrl: PropTypes.string.isRequired\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nexport default function InternationalIcon({ aspectRatio, ...rest }) {\r\n\tif (aspectRatio === 1) {\r\n\t\treturn \r\n\t} else {\r\n\t\treturn \r\n\t}\r\n}\r\n\r\nInternationalIcon.propTypes = {\r\n\ttitle: PropTypes.string.isRequired,\r\n\taspectRatio: PropTypes.number\r\n}\r\n\r\n// 3x2.\r\n// Using `` in `<svg/>`s:\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\r\nfunction InternationalIcon3x2({ title, ...rest }) {\r\n\treturn (\r\n\t\t<svg\r\n\t\t\t{...rest}\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\tviewBox=\"0 0 75 50\">\r\n\t\t\t<title>{title}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nInternationalIcon3x2.propTypes = {\r\n\ttitle: PropTypes.string.isRequired\r\n}\r\n\r\n// 1x1.\r\n// Using `` in `<svg/>`s:\r\n// https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title\r\nfunction InternationalIcon1x1({ title, ...rest }) {\r\n\treturn (\r\n\t\t<svg\r\n\t\t\t{...rest}\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\tviewBox=\"0 0 50 50\">\r\n\t\t\t<title>{title}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nInternationalIcon1x1.propTypes = {\r\n\ttitle: PropTypes.string.isRequired\r\n}\r\n","import { isSupportedCountry } from 'libphonenumber-js/core'\r\nexport { getCountries } from 'libphonenumber-js/core'\r\n\r\n/**\r\n * Sorts country `` options\r\n * to the top of the list, for example.\r\n * @param {object[]} countryOptions — Country `` options order. Example: `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`.\r\n * @return {object[]}\r\n */\r\nexport function sortCountryOptions(options, order) {\r\n\tif (!order) {\r\n\t\treturn options\r\n\t}\r\n\tconst optionsOnTop = []\r\n\tconst optionsOnBottom = []\r\n\tlet appendTo = optionsOnTop\r\n\tfor (const element of order) {\r\n\t\tif (element === '|') {\r\n\t\t\tappendTo.push({ divider: true })\r\n\t\t} else if (element === '...' || element === '…') {\r\n\t\t\tappendTo = optionsOnBottom\r\n\t\t} else {\r\n\t\t\tlet countryCode\r\n\t\t\tif (element === '🌐') {\r\n\t\t\t\tcountryCode = undefined\r\n\t\t\t} else {\r\n\t\t\t\tcountryCode = element\r\n\t\t\t}\r\n\t\t\t// Find the position of the option.\r\n\t\t\tconst index = options.indexOf(options.filter(option => option.value === countryCode)[0])\r\n\t\t\t// Get the option.\r\n\t\t\tconst option = options[index]\r\n\t\t\t// Remove the option from its default position.\r\n\t\t\toptions.splice(index, 1)\r\n\t\t\t// Add the option on top.\r\n\t\t\tappendTo.push(option)\r\n\t\t}\r\n\t}\r\n\treturn optionsOnTop.concat(options).concat(optionsOnBottom)\r\n}\r\n\r\nexport function getSupportedCountryOptions(countryOptions, metadata) {\r\n\tif (countryOptions) {\r\n\t\tcountryOptions = countryOptions.filter((option) => {\r\n\t\t\tswitch (option) {\r\n\t\t\t\tcase '🌐':\r\n\t\t\t\tcase '|':\r\n\t\t\t\tcase '...':\r\n\t\t\t\tcase '…':\r\n\t\t\t\t\treturn true\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn isCountrySupportedWithError(option, metadata)\r\n\t\t\t}\r\n\t\t})\r\n\t\tif (countryOptions.length > 0) {\r\n\t\t\treturn countryOptions\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isCountrySupportedWithError(country, metadata) {\r\n\tif (isSupportedCountry(country, metadata)) {\r\n\t\treturn true\r\n\t} else {\r\n\t\tconsole.error(`Country not found: ${country}`)\r\n\t\treturn false\r\n\t}\r\n}\r\n\r\nexport function getSupportedCountries(countries, metadata) {\r\n\tif (countries) {\r\n\t\tcountries = countries.filter(country => isCountrySupportedWithError(country, metadata))\r\n\t\tif (countries.length === 0) {\r\n\t\t\tcountries = undefined\r\n\t\t}\r\n\t}\r\n\treturn countries\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport DefaultInternationalIcon from './InternationalIcon'\r\nimport Flag from './Flag'\r\n\r\nexport function createCountryIconComponent({\r\n\tflags,\r\n\tflagUrl,\r\n\tflagComponent: FlagComponent,\r\n\tinternationalIcon: InternationalIcon\r\n}) {\r\n\tfunction CountryIcon({\r\n\t\tcountry,\r\n\t\tlabel,\r\n\t\taspectRatio\r\n\t}) {\r\n\t\t// `aspectRatio` is currently a hack for the default \"International\" icon\r\n\t\t// to render it as a square when Unicode flag icons are used.\r\n\t\t// So `aspectRatio` property is only used with the default \"International\" icon.\r\n\t\tconst _aspectRatio = InternationalIcon === DefaultInternationalIcon ? aspectRatio : undefined\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\tcountry\r\n\t\t\t\t\t?\r\n\t\t\t\t\t\r\n\t\t\t\t\t:\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\tCountryIcon.propTypes = {\r\n\t\tcountry: PropTypes.string,\r\n\t\tlabel: PropTypes.string.isRequired,\r\n\t\taspectRatio: PropTypes.number\r\n\t}\r\n\r\n\treturn CountryIcon\r\n}\r\n\r\nexport default createCountryIconComponent({\r\n\t// Must be equal to `defaultProps.flagUrl` in `./PhoneInputWithCountry.js`.\r\n\tflagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\r\n\tflagComponent: Flag,\r\n\tinternationalIcon: DefaultInternationalIcon\r\n})","import {\r\n\tgetCountryCallingCode,\r\n\tMetadata\r\n} from 'libphonenumber-js/core'\r\n\r\nconst ONLY_DIGITS_REGEXP = /^\\d+$/\r\nexport default function getInternationalPhoneNumberPrefix(country, metadata) {\r\n\t// Standard international phone number prefix: \"+\" and \"country calling code\".\r\n\tlet prefix = '+' + getCountryCallingCode(country, metadata)\r\n\t// Get \"leading digits\" for a phone number of the country.\r\n\t// If there're \"leading digits\" then they can be part of the prefix too.\r\n\tmetadata = new Metadata(metadata)\r\n\tmetadata.country(country)\r\n\tif (metadata.numberingPlan.leadingDigits() && ONLY_DIGITS_REGEXP.test(metadata.numberingPlan.leadingDigits())) {\r\n\t\tprefix += metadata.numberingPlan.leadingDigits()\r\n\t}\r\n\treturn prefix\r\n}","import {\r\n\tparsePhoneNumberFromString,\r\n\tgetCountryCallingCode,\r\n\tAsYouType,\r\n\tMetadata\r\n} from 'libphonenumber-js/core'\r\n\r\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix'\r\n\r\n/**\r\n * Decides which country should be pre-selected\r\n * when the phone number input component is first mounted.\r\n * @param {object?} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {string?} country - Pre-defined country (two-letter code).\r\n * @param {string[]?} countries - A list of countries available.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string?}\r\n */\r\nexport function getPreSelectedCountry({\r\n\tvalue,\r\n\tphoneNumber,\r\n\tdefaultCountry,\r\n\tgetAnyCountry,\r\n\tcountries,\r\n\trequired,\r\n\tmetadata\r\n}) {\r\n\tlet country\r\n\r\n\t// If can get country from E.164 phone number\r\n\t// then it overrides the `country` passed (or not passed).\r\n\tif (phoneNumber && phoneNumber.country) {\r\n\t\t// `country` will be left `undefined` in case of non-detection.\r\n\t\tcountry = phoneNumber.country\r\n\t} else if (defaultCountry) {\r\n\t\tif (!value || couldNumberBelongToCountry(value, defaultCountry, metadata)) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t}\r\n\t}\r\n\r\n\t// Only pre-select a country if it's in the available `countries` list.\r\n\tif (countries && countries.indexOf(country) < 0) {\r\n\t\tcountry = undefined\r\n\t}\r\n\r\n\t// If there will be no \"International\" option\r\n\t// then some `country` must be selected.\r\n\t// It will still be the wrong country though.\r\n\t// But still country `` options.\r\n * @param {string[]} countries - A list of two-letter (\"ISO 3166-1 alpha-2\") country codes.\r\n * @param {object} labels - Custom country labels. E.g. `{ RU: 'Россия', US: 'США', ... }`.\r\n * @param {boolean} addInternationalOption - Whether should include \"International\" option at the top of the list.\r\n * @return {object[]} A list of objects having shape `{ value : string, label : string }`.\r\n */\r\nexport function getCountrySelectOptions({\r\n\tcountries,\r\n\tcountryNames,\r\n\taddInternationalOption,\r\n\t// `locales` are only used in country name comparator:\r\n\t// depending on locale, string sorting order could be different.\r\n\tcompareStringsLocales,\r\n\tcompareStrings: _compareStrings\r\n}) {\r\n\t// Default country name comparator uses `String.localeCompare()`.\r\n\tif (!_compareStrings) {\r\n\t\t_compareStrings = compareStrings\r\n\t}\r\n\r\n\t// Generates a `` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\r\nexport function getPhoneDigitsForNewCountry(phoneDigits, {\r\n\tprevCountry,\r\n\tnewCountry,\r\n\tmetadata,\r\n\tuseNationalFormat\r\n}) {\r\n\t// If `parsed_input` is empty\r\n\t// then no need to migrate anything.\r\n\tif (!phoneDigits) {\r\n\t\tif (useNationalFormat) {\r\n\t\t\treturn ''\r\n\t\t} else {\r\n\t\t\t// If `phoneDigits` is empty then set `phoneDigits` to\r\n\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\treturn getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\t// If switching to some country.\r\n\t// (from \"International\" or another country)\r\n\t// If switching from \"International\" then `phoneDigits` starts with a `+`.\r\n\t// Otherwise it may or may not start with a `+`.\r\n\tif (newCountry) {\r\n\t\t// If the phone number was entered in international format\r\n\t\t// then migrate it to the newly selected country.\r\n\t\t// The phone number may be incomplete.\r\n\t\t// The phone number entered not necessarily starts with\r\n\t\t// the previously selected country phone prefix.\r\n\t\tif (phoneDigits[0] === '+') {\r\n\t\t\t// If the international phone number is for the new country\r\n\t\t\t// then convert it to local if required.\r\n\t\t\tif (useNationalFormat) {\r\n\t\t\t\t// // If a phone number is being input in international form\r\n\t\t\t\t// // and the country can already be derived from it,\r\n\t\t\t\t// // and if it is the new country, then format as a national number.\r\n\t\t\t\t// const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\r\n\t\t\t\t// if (derived_country === newCountry) {\r\n\t\t\t\t// \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\r\n\t\t\t\t// }\r\n\r\n\t\t\t\t// Actually, the two countries don't necessarily need to match:\r\n\t\t\t\t// the condition could be looser here, because several countries\r\n\t\t\t\t// might share the same international phone number format\r\n\t\t\t\t// (for example, \"NANPA\" countries like US, Canada, etc).\r\n\t\t\t\t// The looser condition would be just \"same nternational phone number format\"\r\n\t\t\t\t// which would mean \"same country calling code\" in the context of `libphonenumber-js`.\r\n\t\t\t\tif (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\r\n\t\t\t\t\treturn stripCountryCallingCode(phoneDigits, newCountry, metadata)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Simply discard the previously entered international phone number,\r\n\t\t\t\t// because otherwise any \"smart\" transformation like getting the\r\n\t\t\t\t// \"national (significant) number\" part and then prepending the\r\n\t\t\t\t// newly selected country's \"country calling code\" to it\r\n\t\t\t\t// would just be confusing for a user without being actually useful.\r\n\t\t\t\treturn ''\r\n\r\n\t\t\t\t// // Simply strip the leading `+` character\r\n\t\t\t\t// // therefore simply converting all digits into a \"local\" phone number.\r\n\t\t\t\t// // https://github.com/catamphetamine/react-phone-number-input/issues/287\r\n\t\t\t\t// return phoneDigits.slice(1)\r\n\t\t\t}\r\n\r\n\t\t\tif (prevCountry) {\r\n\t\t\t\tconst newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t\tif (phoneDigits.indexOf(newCountryPrefix) === 0) {\r\n\t\t\t\t\treturn phoneDigits\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn newCountryPrefix\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t\t// If `phoneDigits`'s country calling code part is the same\r\n\t\t\t\t// as for the new `country`, then leave `phoneDigits` as is.\r\n\t\t\t\tif (phoneDigits.indexOf(defaultValue) === 0) {\r\n\t\t\t\t\treturn phoneDigits\r\n\t\t\t\t}\r\n\t\t\t\t// If `phoneDigits`'s country calling code part is not the same\r\n\t\t\t\t// as for the new `country`, then set `phoneDigits` to\r\n\t\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\treturn defaultValue\r\n\t\t\t}\r\n\r\n\t\t\t// // If the international phone number already contains\r\n\t\t\t// // any country calling code then trim the country calling code part.\r\n\t\t\t// // (that could also be the newly selected country phone code prefix as well)\r\n\t\t\t// // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\r\n\t\t\t// // (e.g. if a user enters an international number\r\n\t\t\t// // not belonging to any of the reduced `countries` list).\r\n\t\t\t// phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\r\n\r\n\t\t\t// // Prepend country calling code prefix\r\n\t\t\t// // for the newly selected country.\r\n\t\t\t// return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\r\n\t\t}\r\n\t}\r\n\t// If switching to \"International\" from a country.\r\n\telse {\r\n\t\t// If the phone number was entered in national format.\r\n\t\tif (phoneDigits[0] !== '+') {\r\n\t\t\t// Format the national phone number as an international one.\r\n\t\t\t// The phone number entered not necessarily even starts with\r\n\t\t\t// the previously selected country phone prefix.\r\n\t\t\t// Even if the phone number belongs to whole another country\r\n\t\t\t// it will still be parsed into some national phone number.\r\n\t\t\treturn e164(phoneDigits, prevCountry, metadata) || ''\r\n\t\t}\r\n\t}\r\n\r\n\treturn phoneDigits\r\n}\r\n\r\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {[object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function e164(number, country, metadata) {\r\n\tif (!number) {\r\n\t\treturn\r\n\t}\r\n\t// If the phone number is being input in international format.\r\n\tif (number[0] === '+') {\r\n\t\t// If it's just the `+` sign then return nothing.\r\n\t\tif (number === '+') {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// If there are any digits then the `value` is returned as is.\r\n\t\treturn number\r\n\t}\r\n\t// For non-international phone numbers\r\n\t// an accompanying country code is required.\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\tconst partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata)\r\n\tif (partial_national_significant_number) {\r\n\t\treturn `+${getCountryCallingCode(country, metadata)}${partial_national_significant_number}`\r\n\t}\r\n}\r\n\r\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\r\nexport function trimNumber(number, country, metadata) {\r\n\tconst nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata)\r\n\tif (nationalSignificantNumberPart) {\r\n\t\tconst overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata)\r\n\t\tif (overflowDigitsCount > 0) {\r\n\t\t\treturn number.slice(0, number.length - overflowDigitsCount)\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}\r\n\r\nfunction getMaxNumberLength(country, metadata) {\r\n\t// Get \"possible lengths\" for a phone number of the country.\r\n\tmetadata = new Metadata(metadata)\r\n\tmetadata.country(country)\r\n\t// Return the last \"possible length\".\r\n\treturn metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1]\r\n}\r\n\r\n// If the phone number being input is an international one\r\n// then tries to derive the country from the phone number.\r\n// (regardless of whether there's any country currently selected)\r\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function getCountryForPartialE164Number(partialE164Number, {\r\n\tcountry,\r\n\tcountries,\r\n\trequired,\r\n\tmetadata\r\n}) {\r\n\tif (partialE164Number === '+') {\r\n\t\t// Don't change the currently selected country yet.\r\n\t\treturn country\r\n\t}\r\n\r\n\tconst derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata)\r\n\r\n\t// If a phone number is being input in international form\r\n\t// and the country can already be derived from it,\r\n\t// then select that country.\r\n\tif (derived_country && (!countries || (countries.indexOf(derived_country) >= 0))) {\r\n\t\treturn derived_country\r\n\t}\r\n\t// If \"International\" country option has not been disabled\r\n\t// and the international phone number entered doesn't correspond\r\n\t// to the currently selected country then reset the currently selected country.\r\n\telse if (country &&\r\n\t\t!required &&\r\n\t\t!couldNumberBelongToCountry(partialE164Number, country, metadata)) {\r\n\t\treturn undefined\r\n\t}\r\n\r\n\t// Don't change the currently selected country.\r\n\treturn country\r\n}\r\n\r\n/**\r\n * Parses `` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param {string?} phoneDigits — Parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} prevPhoneDigits — Previous parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} country - Currently selected country.\r\n * @param {boolean} countryRequired - Is selecting some country required.\r\n * @param {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ input, country, value }`.\r\n */\r\nexport function onPhoneDigitsChange(phoneDigits, {\r\n\tprevPhoneDigits,\r\n\tcountry,\r\n\tdefaultCountry,\r\n\tcountryRequired,\r\n\tgetAnyCountry,\r\n\tcountries,\r\n\tinternational,\r\n\tlimitMaxLength,\r\n\tcountryCallingCodeEditable,\r\n\tmetadata\r\n}) {\r\n\tif (international && countryCallingCodeEditable === false) {\r\n\t\tconst prefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\t\t// The `` value must start with the country calling code.\r\n\t\tif (phoneDigits.indexOf(prefix) !== 0) {\r\n\t\t\tlet value\r\n\t\t\t// If a phone number input is declared as\r\n\t\t\t// `international` and `withCountryCallingCode`,\r\n\t\t\t// then it's gonna be non-empty even before the user\r\n\t\t\t// has input anything in it.\r\n\t\t\t// This will result in its contents (the country calling code part)\r\n\t\t\t// being selected when the user tabs into such field.\r\n\t\t\t// If the user then starts inputting the national part digits,\r\n\t\t\t// then `` value changes from `+xxx` to `y`\r\n\t\t\t// because inputting anything while having the `` value\r\n\t\t\t// selected results in erasing the `` value\r\n\t\t\t// So, the component handles such case by restoring\r\n\t\t\t// the intended ``` value: `+xxxy`.\r\n\t\t\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\r\n\t\t\tif (phoneDigits && phoneDigits[0] !== '+') {\r\n\t\t\t\tphoneDigits = prefix + phoneDigits\r\n\t\t\t\tvalue = phoneDigits\r\n\t\t\t} else {\r\n\t\t\t\tphoneDigits = prefix\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tphoneDigits,\r\n\t\t\t\tvalue,\r\n\t\t\t\tcountry\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If `international` property is `false`, then it means\r\n\t// \"enforce national-only format during input\",\r\n\t// so, if that's the case, then remove all `+` characters,\r\n\t// but only if some country is currently selected.\r\n\t// (not if \"International\" country is selected).\r\n\tif (international === false && country && phoneDigits && phoneDigits[0] === '+') {\r\n\t\tphoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata)\r\n\t}\r\n\r\n\t// Trim the input to not exceed the maximum possible number length.\r\n\tif (phoneDigits && country && limitMaxLength) {\r\n\t\tphoneDigits = trimNumber(phoneDigits, country, metadata)\r\n\t}\r\n\r\n\t// If this `onChange()` event was triggered\r\n\t// as a result of selecting \"International\" country,\r\n\t// then force-prepend a `+` sign if the phone number\r\n\t// `` value isn't in international format.\r\n\t// Also, force-prepend a `+` sign if international\r\n\t// phone number input format is set.\r\n\tif (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\r\n\t\tphoneDigits = '+' + phoneDigits\r\n\t}\r\n\r\n\t// If the previously entered phone number\r\n\t// has been entered in international format\r\n\t// and the user decides to erase it,\r\n\t// then also reset the `country`\r\n\t// because it was most likely automatically selected\r\n\t// while the user was typing in the phone number\r\n\t// in international format.\r\n\t// This fixes the issue when a user is presented\r\n\t// with a phone number input with no country selected\r\n\t// and then types in their local phone number\r\n\t// then discovers that the input's messed up\r\n\t// (a `+` has been prepended at the start of their input\r\n\t// and a random country has been selected),\r\n\t// decides to undo it all by erasing everything\r\n\t// and then types in their local phone number again\r\n\t// resulting in a seemingly correct phone number\r\n\t// but in reality that phone number has incorrect country.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/273\r\n\tif (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\r\n\t\tif (international) {\r\n\t\t\tcountry = undefined\r\n\t\t} else {\r\n\t\t\tcountry = defaultCountry\r\n\t\t}\r\n\t}\r\n\t// Also resets such \"randomly\" selected country\r\n\t// as soon as the user erases the number\r\n\t// digit-by-digit up to the leading `+` sign.\r\n\tif (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\r\n\t\tcountry = undefined\r\n\t}\r\n\r\n\t// Generate the new `value` property.\r\n\tlet value\r\n\tif (phoneDigits) {\r\n\t\tif (phoneDigits[0] === '+') {\r\n\t\t\tif (phoneDigits === '+') {\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else {\r\n\t\t\t\tvalue = phoneDigits\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\t// Derive the country from the phone number.\r\n\t// (regardless of whether there's any country currently selected,\r\n\t// because there could be several countries corresponding to one country calling code)\r\n\tif (value) {\r\n\t\tcountry = getCountryForPartialE164Number(value, {\r\n\t\t\tcountry,\r\n\t\t\tcountries,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\t// If `international` property is `false`, then it means\r\n\t\t// \"enforce national-only format during input\",\r\n\t\t// so, if that's the case, then remove all `+` characters,\r\n\t\t// but only if some country is currently selected.\r\n\t\t// (not if \"International\" country is selected).\r\n\t\tif (international === false && country && phoneDigits && phoneDigits[0] === '+') {\r\n\t\t\tphoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata)\r\n\t\t\t// Re-calculate `value` because `phoneDigits` has changed.\r\n\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\tif (!country && countryRequired) {\r\n\t\tcountry = defaultCountry || getAnyCountry()\r\n\t}\r\n\r\n\treturn {\r\n\t\tphoneDigits,\r\n\t\tcountry,\r\n\t\tvalue\r\n\t}\r\n}\r\n\r\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\r\n\t// Handle the case when a user might have pasted\r\n\t// a phone number in international format.\r\n\tif (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\r\n\t\t// Create \"as you type\" formatter.\r\n\t\tconst formatter = new AsYouType(country, metadata)\r\n\t\t// Input partial national phone number.\r\n\t\tformatter.input(input)\r\n\t\t// Return the parsed partial national phone number.\r\n\t\tconst phoneNumber = formatter.getNumber()\r\n\t\tif (phoneNumber) {\r\n\t\t\t// Transform the number to a national one,\r\n\t\t\t// and remove all non-digits.\r\n\t\t\treturn phoneNumber.formatNational().replace(/\\D/g, '')\r\n\t\t} else {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t} else {\r\n\t\t// Just remove the `+` sign.\r\n\t\treturn input.replace(/\\D/g, '')\r\n\t}\r\n}\r\n\r\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param {string} number - A possibly incomplete E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\r\n\tconst formatter = new AsYouType(null, metadata)\r\n\tformatter.input(number)\r\n\t// // `001` is a special \"non-geograpical entity\" code\r\n\t// // in Google's `libphonenumber` library.\r\n\t// if (formatter.getCountry() === '001') {\r\n\t// \treturn\r\n\t// }\r\n\treturn formatter.getCountry()\r\n}\r\n\r\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\r\nexport function compareStrings(a, b, locales) {\r\n // Use `String.localeCompare` if it's available.\r\n // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\r\n // Which means everyone except IE <= 10 and Safari <= 10.\r\n // `localeCompare()` is available in latest Node.js versions.\r\n /* istanbul ignore else */\r\n if (String.prototype.localeCompare) {\r\n return a.localeCompare(b, locales);\r\n }\r\n /* istanbul ignore next */\r\n return a < b ? -1 : (a > b ? 1 : 0);\r\n}\r\n\r\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\r\nexport function stripCountryCallingCode(number, country, metadata) {\r\n\t// Just an optimization, so that it\r\n\t// doesn't have to iterate through all country calling codes.\r\n\tif (country) {\r\n\t\tconst countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata)\r\n\r\n\t\t// If `country` fits the actual `number`.\r\n\t\tif (number.length < countryCallingCodePrefix.length) {\r\n\t\t\tif (countryCallingCodePrefix.indexOf(number) === 0) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (number.indexOf(countryCallingCodePrefix) === 0) {\r\n\t\t\t\treturn number.slice(countryCallingCodePrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If `country` doesn't fit the actual `number`.\r\n\t// Try all available country calling codes.\r\n\tfor (const country_calling_code of Object.keys(metadata.country_calling_codes)) {\r\n\t\tif (number.indexOf(country_calling_code) === '+'.length) {\r\n\t\t\treturn number.slice('+'.length + country_calling_code.length)\r\n\t\t}\r\n\t}\r\n\r\n\treturn ''\r\n}\r\n\r\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\r\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\r\n\t// Create \"as you type\" formatter.\r\n\tconst formatter = new AsYouType(country, metadata)\r\n\t// Input partial national phone number.\r\n\tformatter.input(number)\r\n\t// Return the parsed partial national phone number.\r\n\tconst phoneNumber = formatter.getNumber()\r\n\treturn phoneNumber && phoneNumber.nationalNumber\r\n}\r\n\r\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param {string} number\r\n * @param {string} country\r\n * @return {boolean}\r\n */\r\nexport function couldNumberBelongToCountry(number, country, metadata) {\r\n\tconst intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\tlet i = 0\r\n\twhile (i < number.length && i < intlPhoneNumberPrefix.length) {\r\n\t\tif (number[i] !== intlPhoneNumberPrefix[i]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn true\r\n}\r\n\r\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\r\nexport function getInitialPhoneDigits({\r\n\tvalue,\r\n\tphoneNumber,\r\n\tdefaultCountry,\r\n\tinternational,\r\n\tuseNationalFormat,\r\n\tmetadata\r\n}) {\r\n\t// If the `value` (E.164 phone number)\r\n\t// belongs to the currently selected country\r\n\t// and `useNationalFormat` is `true`\r\n\t// then convert `value` (E.164 phone number)\r\n\t// to a local phone number digits.\r\n\t// E.g. '+78005553535' -> '88005553535'.\r\n\tif ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\r\n\t\treturn generateNationalNumberDigits(phoneNumber)\r\n\t}\r\n\t// If `international` property is `true`,\r\n\t// meaning \"enforce international phone number format\",\r\n\t// then always show country calling code in the input field.\r\n\tif (!value && international && defaultCountry) {\r\n\t\treturn getInternationalPhoneNumberPrefix(defaultCountry, metadata)\r\n\t}\r\n\treturn value\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport InputSmart from './InputSmart'\r\nimport InputBasic from './InputBasic'\r\n\r\nimport Flag from './Flag'\r\nimport InternationalIcon from './InternationalIcon'\r\n\r\nimport {\r\n\tsortCountryOptions,\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries,\r\n\tgetSupportedCountryOptions,\r\n\tgetCountries\r\n} from './helpers/countries'\r\n\r\nimport { createCountryIconComponent } from './CountryIcon'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes'\r\n\r\nimport {\r\n\tgetPreSelectedCountry,\r\n\tgetCountrySelectOptions,\r\n\tparsePhoneNumber,\r\n\tgenerateNationalNumberDigits,\r\n\tgetPhoneDigitsForNewCountry,\r\n\tgetInitialPhoneDigits,\r\n\tonPhoneDigitsChange,\r\n\te164\r\n} from './helpers/phoneInputHelpers'\r\n\r\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps'\r\n\r\nclass PhoneNumberInput_ extends React.PureComponent {\r\n\tinputRef = React.createRef()\r\n\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\r\n\t\tconst {\r\n\t\t\tvalue,\r\n\t\t\tlabels,\r\n\t\t\tinternational,\r\n\t\t\taddInternationalOption,\r\n\t\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t\t// superceded by `initialValueFormat` property.\r\n\t\t\tdisplayInitialValueAsLocalNumber,\r\n\t\t\tinitialValueFormat,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\r\n\t\tlet {\r\n\t\t\tdefaultCountry,\r\n\t\t\tcountries\r\n\t\t} = this.props\r\n\r\n\t\t// Validate `defaultCountry`.\r\n\t\tif (defaultCountry) {\r\n\t\t\tif (!this.isCountrySupportedWithError(defaultCountry)) {\r\n\t\t\t\tdefaultCountry = undefined\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Validate `countries`.\r\n\t\tcountries = getSupportedCountries(countries, metadata)\r\n\r\n\t\tconst phoneNumber = parsePhoneNumber(value, metadata)\r\n\r\n\t\tthis.CountryIcon = createCountryIconComponent(this.props)\r\n\r\n\t\tconst preSelectedCountry = getPreSelectedCountry({\r\n\t\t\tvalue,\r\n\t\t\tphoneNumber,\r\n\t\t\tdefaultCountry,\r\n\t\t\trequired: !addInternationalOption,\r\n\t\t\tcountries: countries || getCountries(metadata),\r\n\t\t\tgetAnyCountry: () => this.getFirstSupportedCountry({ countries }),\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tthis.state = {\r\n\t\t\t// Workaround for `this.props` inside `getDerivedStateFromProps()`.\r\n\t\t\tprops: this.props,\r\n\r\n\t\t\t// The country selected.\r\n\t\t\tcountry: preSelectedCountry,\r\n\r\n\t\t\t// `countries` are stored in `this.state` because they're filtered.\r\n\t\t\t// For example, a developer might theoretically pass some unsupported\r\n\t\t\t// countries as part of the `countries` property, and because of that\r\n\t\t\t// the component uses `this.state.countries` (which are filtered)\r\n\t\t\t// instead of `this.props.countries`\r\n\t\t\t// (which could potentially contain unsupported countries).\r\n\t\t\tcountries,\r\n\r\n\t\t\t// `phoneDigits` state property holds non-formatted user's input.\r\n\t\t\t// The reason is that there's no way of finding out\r\n\t\t\t// in which form should `value` be displayed: international or national.\r\n\t\t\t// E.g. if `value` is `+78005553535` then it could be input\r\n\t\t\t// by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\r\n\t\t\t// Hence storing just `value` is not sufficient for correct formatting.\r\n\t\t\t// E.g. if a user entered `8 (800) 555-35-35`\r\n\t\t\t// then value is `+78005553535` and `phoneDigits` are `88005553535`\r\n\t\t\t// and if a user entered `+7 800 555 35 35`\r\n\t\t\t// then value is `+78005553535` and `phoneDigits` are `+78005553535`.\r\n\t\t\tphoneDigits: getInitialPhoneDigits({\r\n\t\t\t\tvalue,\r\n\t\t\t\tphoneNumber,\r\n\t\t\t\tdefaultCountry,\r\n\t\t\t\tinternational,\r\n\t\t\t\tuseNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\r\n\t\t\t\tmetadata\r\n\t\t\t}),\r\n\r\n\t\t\t// `value` property is duplicated in state.\r\n\t\t\t// The reason is that `getDerivedStateFromProps()`\r\n\t\t\t// needs this `value` to compare to the new `value` property\r\n\t\t\t// to find out if `phoneDigits` needs updating:\r\n\t\t\t// If the `value` property was changed externally\r\n\t\t\t// then it won't be equal to `state.value`\r\n\t\t\t// in which case `phoneDigits` and `country` should be updated.\r\n\t\t\tvalue\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tconst { onCountryChange } = this.props\r\n\t\tlet { defaultCountry } = this.props\r\n\t\tconst { country: selectedCountry } = this.state\r\n\t\tif (onCountryChange) {\r\n\t\t\tif (defaultCountry) {\r\n\t\t\t\tif (!this.isCountrySupportedWithError(defaultCountry)) {\r\n\t\t\t\t\tdefaultCountry = undefined\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (selectedCountry !== defaultCountry) {\r\n\t\t\t\tonCountryChange(selectedCountry)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps, prevState) {\r\n\t\tconst { onCountryChange } = this.props\r\n\t\tconst { country } = this.state\r\n\t\t// Call `onCountryChange` when user selects another country.\r\n\t\tif (onCountryChange && country !== prevState.country) {\r\n\t\t\tonCountryChange(country)\r\n\t\t}\r\n\t}\r\n\r\n\tsetInputRef = (instance) => {\r\n\t\tthis.inputRef.current = instance\r\n\t\tconst { inputRef: ref } = this.props\r\n\t\tif (ref) {\r\n\t\t\tif (typeof ref === 'function') {\r\n\t\t\t\tref(instance)\r\n\t\t\t} else {\r\n\t\t\t\tref.current = instance\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountrySelectOptions({ countries }) {\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\taddInternationalOption,\r\n\t\t\tlabels,\r\n\t\t\tlocales,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\t\treturn useMemoCountrySelectOptions(() => {\r\n\t\t\treturn sortCountryOptions(\r\n\t\t\t\tgetCountrySelectOptions({\r\n\t\t\t\t\tcountries: countries || getCountries(metadata),\r\n\t\t\t\t\tcountryNames: labels,\r\n\t\t\t\t\taddInternationalOption: (international && countryCallingCodeEditable === false) ? false : addInternationalOption,\r\n\t\t\t\t\tcompareStringsLocales: locales,\r\n\t\t\t\t\t// compareStrings\r\n\t\t\t\t}),\r\n\t\t\t\tgetSupportedCountryOptions(countryOptionsOrder, metadata)\r\n\t\t\t)\r\n\t\t}, [\r\n\t\t\tcountries,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\taddInternationalOption,\r\n\t\t\tlabels,\r\n\t\t\tmetadata\r\n\t\t])\r\n\t}\r\n\r\n\tgetFirstSupportedCountry({ countries }) {\r\n\t\tconst countryOptions = this.getCountrySelectOptions({ countries })\r\n\t\treturn countryOptions[0].value\r\n\t}\r\n\r\n\t// A shorthand for not passing `metadata` as a second argument.\r\n\tisCountrySupportedWithError = (country) => {\r\n\t\tconst { metadata } = this.props\r\n\t\treturn isCountrySupportedWithError(country, metadata)\r\n\t}\r\n\r\n\t// Country `` holds any digits\r\n\t\t// then migrate those digits for the new `country`.\r\n\t\tconst newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\r\n\t\t\tprevCountry,\r\n\t\t\tnewCountry,\r\n\t\t\tmetadata,\r\n\t\t\t// Convert the phone number to \"national\" format\r\n\t\t\t// when the user changes the selected country by hand.\r\n\t\t\tuseNationalFormat: !international\r\n\t\t})\r\n\r\n\t\tconst newValue = e164(newPhoneDigits, newCountry, metadata)\r\n\r\n\t\t// Focus phone number `` upon country selection.\r\n\t\tif (focusInputOnCountrySelection) {\r\n\t\t\tthis.inputRef.current.focus()\r\n\t\t}\r\n\r\n\t\t// If the user has already manually selected a country\r\n\t\t// then don't override that already selected country\r\n\t\t// if the `defaultCountry` property changes.\r\n\t\t// That's what `hasUserSelectedACountry` flag is for.\r\n\r\n\t\tthis.setState({\r\n\t\t\tcountry: newCountry,\r\n\t\t\thasUserSelectedACountry: true,\r\n\t\t\tphoneDigits: newPhoneDigits,\r\n\t\t\tvalue: newValue\r\n\t\t},\r\n\t\t() => {\r\n\t\t\t// Update the new `value` property.\r\n\t\t\t// Doing it after the `state` has been updated\r\n\t\t\t// because `onChange()` will trigger `getDerivedStateFromProps()`\r\n\t\t\t// with the new `value` which will be compared to `state.value` there.\r\n\t\t\tonChange(newValue)\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * `` `onChange()` handler.\r\n\t * Updates `value` property accordingly (so that they are kept in sync).\r\n\t * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t */\r\n\tonChange = (_phoneDigits) => {\r\n\t\tconst {\r\n\t\t\tdefaultCountry,\r\n\t\t\tonChange,\r\n\t\t\taddInternationalOption,\r\n\t\t\tinternational,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\r\n\t\tconst {\r\n\t\t\tcountries,\r\n\t\t\tphoneDigits: prevPhoneDigits,\r\n\t\t\tcountry: currentlySelectedCountry\r\n\t\t} = this.state\r\n\r\n\t\tconst {\r\n\t\t\tphoneDigits,\r\n\t\t\tcountry,\r\n\t\t\tvalue\r\n\t\t} = onPhoneDigitsChange(_phoneDigits, {\r\n\t\t\tprevPhoneDigits,\r\n\t\t\tcountry: currentlySelectedCountry,\r\n\t\t\tcountryRequired: !addInternationalOption,\r\n\t\t\tdefaultCountry,\r\n\t\t\tgetAnyCountry: () => this.getFirstSupportedCountry({ countries }),\r\n\t\t\tcountries,\r\n\t\t\tinternational,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tconst stateUpdate = {\r\n\t\t\tphoneDigits,\r\n\t\t\tvalue,\r\n\t\t\tcountry\r\n\t\t}\r\n\r\n\t\tif (countryCallingCodeEditable === false) {\r\n\t\t\t// If it simply did `setState({ phoneDigits: intlPrefix })` here,\r\n\t\t\t// then it would have no effect when erasing an inital international prefix\r\n\t\t\t// via Backspace, because `phoneDigits` in `state` wouldn't change\r\n\t\t\t// as a result, because it was `prefix` and it became `prefix`,\r\n\t\t\t// so the component wouldn't rerender, and the user would be able\r\n\t\t\t// to erase the country calling code part, and that part is\r\n\t\t\t// assumed to be non-eraseable. That's why the component is\r\n\t\t\t// forcefully rerendered here.\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\r\n\t\t\tif (!value && phoneDigits === this.state.phoneDigits) {\r\n\t\t\t\t// Force a re-render of the `` in order to reset its value.\r\n\t\t\t\tstateUpdate.forceRerender = {}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setState(\r\n\t\t\tstateUpdate,\r\n\t\t\t// Update the new `value` property.\r\n\t\t\t// Doing it after the `state` has been updated\r\n\t\t\t// because `onChange()` will trigger `getDerivedStateFromProps()`\r\n\t\t\t// with the new `value` which will be compared to `state.value` there.\r\n\t\t\t() => onChange(value)\r\n\t\t)\r\n\t}\r\n\r\n\t// Toggles the `--focus` CSS class.\r\n\t_onFocus = () => this.setState({ isFocused: true })\r\n\r\n\t// Toggles the `--focus` CSS class.\r\n\t_onBlur = () => this.setState({ isFocused: false })\r\n\r\n\tonFocus = (event) => {\r\n\t\tthis._onFocus()\r\n\t\tconst { onFocus } = this.props\r\n\t\tif (onFocus) {\r\n\t\t\tonFocus(event)\r\n\t\t}\r\n\t}\r\n\r\n\tonBlur = (event) => {\r\n\t\tconst { onBlur } = this.props\r\n\t\tthis._onBlur()\r\n\t\tif (onBlur) {\r\n\t\t\tonBlur(event)\r\n\t\t}\r\n\t}\r\n\r\n\tonCountryFocus = (event) => {\r\n\t\tthis._onFocus()\r\n\t\t// this.setState({ countrySelectFocused: true })\r\n\t\tconst { countrySelectProps } = this.props\r\n\t\tif (countrySelectProps) {\r\n\t\t\tconst { onFocus } = countrySelectProps\r\n\t\t\tif (onFocus) {\r\n\t\t\t\tonFocus(event)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonCountryBlur = (event) => {\r\n\t\tthis._onBlur()\r\n\t\t// this.setState({ countrySelectFocused: false })\r\n\t\tconst { countrySelectProps } = this.props\r\n\t\tif (countrySelectProps) {\r\n\t\t\tconst { onBlur } = countrySelectProps\r\n\t\t\tif (onBlur) {\r\n\t\t\t\tonBlur(event)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// `state` holds previous props as `props`, and also:\r\n\t// * `country` — The currently selected country, e.g. `\"RU\"`.\r\n\t// * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\r\n\t// * `phoneDigits` — The parsed `` value, e.g. `8005553535`.\r\n\t// (and a couple of other less significant properties)\r\n\tstatic getDerivedStateFromProps(props, state) {\r\n\t\treturn {\r\n\t\t\t// Emulate `prevProps` via `state.props`.\r\n\t\t\tprops,\r\n\t\t\t...getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state)\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\t// Generic HTML attributes.\r\n\t\t\tname,\r\n\t\t\tdisabled,\r\n\t\t\tautoComplete,\r\n\t\t\tstyle,\r\n\t\t\tclassName,\r\n\r\n\t\t\t// Number `` properties.\r\n\t\t\tinputRef,\r\n\t\t\tinputComponent,\r\n\t\t\tnumberInputProps,\r\n\t\t\tsmartCaret,\r\n\r\n\t\t\t// Country ``).\r\n\t\t\tdefaultCountry,\r\n\t\t\tcountries: countriesProperty,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\tlabels,\r\n\t\t\tflags,\r\n\t\t\tflagComponent,\r\n\t\t\tflagUrl,\r\n\t\t\taddInternationalOption,\r\n\t\t\tinternationalIcon,\r\n\t\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t\t// superceded by `initialValueFormat` property.\r\n\t\t\tdisplayInitialValueAsLocalNumber,\r\n\t\t\tinitialValueFormat,\r\n\t\t\tonCountryChange,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tfocusInputOnCountrySelection,\r\n\t\t\treset,\r\n\t\t\tmetadata,\r\n\t\t\tinternational,\r\n\t\t\tlocales,\r\n\t\t\t// compareStrings,\r\n\t\t\t...rest\r\n\t\t} = this.props\r\n\r\n\t\tconst {\r\n\t\t\tcountry,\r\n\t\t\tcountries,\r\n\t\t\tphoneDigits,\r\n\t\t\tisFocused\r\n\t\t} = this.state\r\n\r\n\t\tconst InputComponent = smartCaret ? InputSmart : InputBasic\r\n\r\n\t\tconst countrySelectOptions = this.getCountrySelectOptions({ countries })\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\r\n\t\t\t\t{/* Country `` */}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\n// This wrapper is only to `.forwardRef()` to the ``.\r\nconst PhoneNumberInput = React.forwardRef((props, ref) => (\r\n\t\r\n))\r\n\r\nPhoneNumberInput.propTypes = {\r\n\t/**\r\n\t * Phone number in `E.164` format.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `\"+12223333333\"`\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * Updates the `value` as the user inputs the phone number.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t/**\r\n\t * Toggles the `--focus` CSS class.\r\n\t * @ignore\r\n\t */\r\n\tonFocus: PropTypes.func,\r\n\r\n\t/**\r\n\t * `onBlur` is usually passed by `redux-form`.\r\n\t * @ignore\r\n\t */\r\n\tonBlur: PropTypes.func,\r\n\r\n\t/**\r\n\t * `onKeyDown` handler (e.g. to handle Enter key press).\r\n\t * @ignore\r\n\t */\r\n\tonKeyDown: PropTypes.func,\r\n\r\n\t/**\r\n\t * Set to `true` to disable both the phone number ``\r\n\t * and the country ``.\r\n\t *\r\n\t * Web browser's \"autocomplete\" feature\r\n\t * remembers the phone number being input\r\n\t * and can also autofill the ``\r\n\t * with previously remembered phone numbers.\r\n\t *\r\n\t * https://developers.google.com\r\n\t * /web/updates/2015/06/checkout-faster-with-autofill\r\n\t *\r\n\t * For example, can be used to turn it off:\r\n\t *\r\n\t * \"So when should you use `autocomplete=\"off\"`?\r\n\t * One example is when you've implemented your own version\r\n\t * of autocomplete for search. Another example is any form field\r\n\t * where users will input and submit different kinds of information\r\n\t * where it would not be useful to have the browser remember\r\n\t * what was submitted previously\".\r\n\t */\r\n\t// (is `\"tel\"` by default)\r\n\tautoComplete: PropTypes.string.isRequired,\r\n\r\n\t/**\r\n\t * Set to `\"national\"` to show the initial `value` in\r\n\t * \"national\" format rather than \"international\".\r\n\t *\r\n\t * For example, if `initialValueFormat` is `\"national\"`\r\n\t * and the initial `value=\"+12133734253\"` is passed\r\n\t * then the `` value will be `\"(213) 373-4253\"`.\r\n\t *\r\n\t * By default, `initialValueFormat` is `undefined`,\r\n\t * meaning that if the initial `value=\"+12133734253\"` is passed\r\n\t * then the `` value will be `\"+1 213 373 4253\"`.\r\n\t *\r\n\t * The reason for such default behaviour is that\r\n\t * the newer generation grows up when there are no stationary phones\r\n\t * and therefore everyone inputs phone numbers in international format\r\n\t * in their smartphones so people gradually get more accustomed to\r\n\t * writing phone numbers in international format rather than in local format.\r\n\t * Future people won't be using \"national\" format, only \"international\".\r\n\t */\r\n\t// (is `undefined` by default)\r\n\tinitialValueFormat: PropTypes.oneOf(['national']),\r\n\r\n\t// `displayInitialValueAsLocalNumber` property has been\r\n\t// superceded by `initialValueFormat` property.\r\n\tdisplayInitialValueAsLocalNumber: PropTypes.bool,\r\n\r\n\t/**\r\n\t * The country to be selected by default.\r\n\t * For example, can be set after a GeoIP lookup.\r\n\t *\r\n\t * Example: `\"US\"`.\r\n\t */\r\n\t// A two-letter country code (\"ISO 3166-1 alpha-2\").\r\n\tdefaultCountry: PropTypes.string,\r\n\r\n\t/**\r\n\t * If specified, only these countries will be available for selection.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `[\"RU\", \"UA\", \"KZ\"]`\r\n\t */\r\n\tcountries: PropTypes.arrayOf(PropTypes.string),\r\n\r\n\t/**\r\n\t * Custom country `` `aria-label`.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `{ \"ZZ\": \"Международный\", RU: \"Россия\", US: \"США\", ... }`\r\n\t *\r\n\t * See the `locales` directory for examples.\r\n\t */\r\n\tlabels: labelsPropType.isRequired,\r\n\r\n\t/**\r\n\t * Country `` options sorting function.\r\n\t * The default one uses `a.localeCompare(b)`, and,\r\n\t * if that's not available, falls back to simple `a > b`/`a < b`.\r\n\t * There have been requests to add custom sorter for cases\r\n\t * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n\t * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n\tcompareStrings: PropTypes.func,\r\n\t */\r\n\r\n\t/**\r\n\t * A URL template of a country flag, where\r\n\t * \"{XX}\" is a two-letter country code in upper case,\r\n\t * or where \"{xx}\" is a two-letter country code in lower case.\r\n\t * By default it points to `country-flag-icons` gitlab pages website.\r\n\t * I imagine someone might want to download those country flag icons\r\n\t * and host them on their own servers instead\r\n\t * (all flags are available in the `country-flag-icons` library).\r\n\t * There's a catch though: new countries may be added in future,\r\n\t * so when hosting country flag icons on your own server\r\n\t * one should check the `CHANGELOG.md` every time before updating this library,\r\n\t * otherwise there's a possibility that some new country flag would be missing.\r\n\t */\r\n\tflagUrl: PropTypes.string.isRequired,\r\n\r\n\t/**\r\n\t * Custom country flag icon components.\r\n\t * These flags will be used instead of the default ones.\r\n\t * The the \"Flags\" section of the readme for more info.\r\n\t *\r\n\t * The shape is an object where keys are country codes\r\n\t * and values are flag icon components.\r\n\t * Flag icon components receive the same properties\r\n\t * as `flagComponent` (see below).\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `{ \"RU\": (props) => }`\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `import flags from 'country-flag-icons/react/3x2'`\r\n\t *\r\n\t * `import PhoneInput from 'react-phone-number-input'`\r\n\t *\r\n\t * ``\r\n\t */\r\n\tflags: PropTypes.objectOf(PropTypes.elementType),\r\n\r\n\t/**\r\n\t * Country flag icon component.\r\n\t *\r\n\t * Takes properties:\r\n\t *\r\n\t * * `country: string` — The country code.\r\n\t * * `countryName: string` — The country name.\r\n\t * * `flagUrl: string` — The `flagUrl` property (see above).\r\n\t * * `flags: object` — The `flags` property (see above).\r\n\t */\r\n\tflagComponent: PropTypes.elementType.isRequired,\r\n\r\n\t/**\r\n\t * Set to `false` to remove the \"International\" option from country `` options.\r\n\t *\r\n\t * * `\"XX\"` — inserts an option for \"XX\" country.\r\n\t * * `\"🌐\"` — inserts \"International\" option.\r\n\t * * `\"|\"` — inserts a separator.\r\n\t * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n\t */\r\n\tcountryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\r\n\r\n\t/**\r\n\t * `` component CSS style object.\r\n\t */\r\n\tstyle: PropTypes.object,\r\n\r\n\t/**\r\n\t * `` component CSS class.\r\n\t */\r\n\tclassName: PropTypes.string,\r\n\r\n\t/**\r\n\t * Country `` component props.\r\n\t * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n\t * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n\t */\r\n\tcountrySelectProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * Phone number `` component.\r\n\t *\r\n\t * Receives properties:\r\n\t *\r\n\t * * `value: string` — The formatted `value`.\r\n\t * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n\t * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n\t * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n\t * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM ``.\r\n\t *\r\n\t * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `` or implement `.focus()` method.\r\n\t */\r\n\tinputComponent: PropTypes.elementType.isRequired,\r\n\r\n\t/**\r\n\t * Wrapping `
` component.\r\n\t *\r\n\t * Receives properties:\r\n\t *\r\n\t * * `style: object` — A component CSS style object.\r\n\t * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n\t */\r\n\tcontainerComponent: PropTypes.elementType.isRequired,\r\n\r\n\t/**\r\n\t * Phone number `` component props.\r\n\t */\r\n\tnumberInputProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * By default, the caret position is being \"intelligently\" managed\r\n\t * while a user inputs a phone number.\r\n\t * This \"smart\" caret behavior can be turned off\r\n\t * by passing `smartCaret={false}` property.\r\n\t * This is just an \"escape hatch\" for any possible caret position issues.\r\n\t */\r\n\t// Is `true` by default.\r\n\tsmartCaret: PropTypes.bool.isRequired,\r\n\r\n\t/**\r\n\t * Set to `true` to force \"international\" phone number format.\r\n\t * Set to `false` to force \"national\" phone number format.\r\n\t * By default it's `undefined` meaning that it doesn't enforce any phone number format.\r\n\t */\r\n\tinternational: PropTypes.bool,\r\n\r\n\t/**\r\n\t * If set to `true`, the phone number input will get trimmed\r\n\t * if it exceeds the maximum length for the country.\r\n\t */\r\n\tlimitMaxLength: PropTypes.bool.isRequired,\r\n\r\n\t/**\r\n\t * If set to `false`, and `international` is `true`, then\r\n\t * users won't be able to erase the \"country calling part\"\r\n\t * of a phone number in the ``.\r\n\t */\r\n\tcountryCallingCodeEditable: PropTypes.bool.isRequired,\r\n\r\n\t/**\r\n\t * `libphonenumber-js` metadata.\r\n\t *\r\n\t * Can be used to pass custom `libphonenumber-js` metadata\r\n\t * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n\t */\r\n\tmetadata: metadataPropType.isRequired,\r\n\r\n\t/**\r\n\t * Is called every time the selected country changes:\r\n\t * either programmatically or when user selects it manually from the list.\r\n\t */\r\n\t// People have been asking for a way to get the selected country.\r\n\t// @see https://github.com/catamphetamine/react-phone-number-input/issues/128\r\n\t// For some it's just a \"business requirement\".\r\n\t// I guess it's about gathering as much info on the user as a website can\r\n\t// without introducing any addional fields that would complicate the form\r\n\t// therefore reducing \"conversion\" (that's a marketing term).\r\n\t// Assuming that the phone number's country is the user's country\r\n\t// is not 100% correct but in most cases I guess it's valid.\r\n\tonCountryChange: PropTypes.func,\r\n\r\n\t/**\r\n\t * If set to `false`, will not focus the `` component\r\n\t * when the user selects a country from the list of countries.\r\n\t * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n\t * Quote:\r\n\t * \"On input: Changing the setting of any user interface component\r\n\t * does not automatically cause a change of context unless the user\r\n\t * has been advised of the behaviour before using the component.\"\r\n\t */\r\n\tfocusInputOnCountrySelection: PropTypes.bool.isRequired\r\n}\r\n\r\nPhoneNumberInput.defaultProps = {\r\n\t/**\r\n\t * Remember (and autofill) the value as a phone number.\r\n\t */\r\n\tautoComplete: 'tel',\r\n\r\n\t/**\r\n\t * Flag icon component.\r\n\t */\r\n\tflagComponent: Flag,\r\n\r\n\t/**\r\n\t * By default, uses icons from `country-flag-icons` gitlab pages website.\r\n\t */\r\n\t// Must be equal to `flagUrl` in `./CountryIcon.js`.\r\n\tflagUrl: 'https://purecatamphetamine.github.io/country-flag-icons/3x2/{XX}.svg',\r\n\r\n\t/**\r\n\t * Default \"International\" country `` component.\r\n\t */\r\n\tinputComponent: 'input',\r\n\r\n\t/**\r\n\t * Wrapping `
` component.\r\n\t */\r\n\tcontainerComponent: 'div',\r\n\r\n\t/**\r\n\t * Some users requested a way to reset the component:\r\n\t * both number `` and country ``\r\n\t * and country ``.\r\n\t * It's also not replaced with just resetting `country` on\r\n\t * external `value` reset, because a user could select a country\r\n\t * and then not input any `value`, and so the selected country\r\n\t * would be \"stuck\", if not using this `reset` property.\r\n\t */\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/300\r\n\treset: PropTypes.any,\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\r\n\t/**\r\n\t * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n\t */\r\n\tsmartCaret: true,\r\n\r\n\t/**\r\n\t * Whether to add the \"International\" option\r\n\t * to the list of countries.\r\n\t */\r\n\taddInternationalOption: true,\r\n\r\n\t/**\r\n\t * If set to `true` the phone number input will get trimmed\r\n\t * if it exceeds the maximum length for the country.\r\n\t */\r\n\tlimitMaxLength: false,\r\n\r\n\t/**\r\n\t * If set to `false`, and `international` is `true`, then\r\n\t * users won't be able to erase the \"country calling part\"\r\n\t * of a phone number in the ``.\r\n\t */\r\n\tcountryCallingCodeEditable: true,\r\n\r\n\t/**\r\n\t * If set to `false`, will not focus the `` component\r\n\t * when the user selects a country from the list of countries.\r\n\t * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n\t * Quote:\r\n\t * \"On input: Changing the setting of any user interface component\r\n\t * does not automatically cause a change of context unless the user\r\n\t * has been advised of the behaviour before using the component.\"\r\n\t */\r\n\tfocusInputOnCountrySelection: true\r\n}\r\n\r\nexport default PhoneNumberInput\r\n\r\nlet countrySelectOptionsMemo\r\nlet countrySelectOptionsMemoDependencies\r\nfunction useMemoCountrySelectOptions(generator, dependencies) {\r\n\tif (!countrySelectOptionsMemoDependencies ||\r\n\t\t!areEqualArrays(dependencies, countrySelectOptionsMemoDependencies)) {\r\n\t\tcountrySelectOptionsMemo = generator()\r\n\t\tcountrySelectOptionsMemoDependencies = dependencies\r\n\t}\r\n\treturn countrySelectOptionsMemo\r\n}\r\n\r\nfunction areEqualArrays(a, b) {\r\n\tif (a.length !== b.length) {\r\n\t\treturn false\r\n\t}\r\n\tlet i = 0\r\n\twhile (i < a.length) {\r\n\t\tif (a[i] !== b[i]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn true\r\n}","import {\r\n\tgetInitialPhoneDigits,\r\n\tgetCountryForPartialE164Number,\r\n\tparsePhoneNumber\r\n} from './phoneInputHelpers'\r\n\r\nimport {\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries\r\n} from './countries'\r\n\r\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\r\n\tconst {\r\n\t\tmetadata,\r\n\t\tcountries,\r\n\t\tdefaultCountry: newDefaultCountry,\r\n\t\tvalue: newValue,\r\n\t\treset: newReset,\r\n\t\tinternational,\r\n\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t// superceded by `initialValueFormat` property.\r\n\t\tdisplayInitialValueAsLocalNumber,\r\n\t\tinitialValueFormat\r\n\t} = props\r\n\r\n\tconst {\r\n\t\tdefaultCountry: prevDefaultCountry,\r\n\t\tvalue: prevValue,\r\n\t\treset: prevReset\r\n\t} = prevProps\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tvalue,\r\n\t\t// If the user has already manually selected a country\r\n\t\t// then don't override that already selected country\r\n\t\t// if the `defaultCountry` property changes.\r\n\t\t// That's what `hasUserSelectedACountry` flag is for.\r\n\t\thasUserSelectedACountry\r\n\t} = state\r\n\r\n\tconst _getInitialPhoneDigits = (parameters) => getInitialPhoneDigits({\r\n\t\t...parameters,\r\n\t\tinternational,\r\n\t\tuseNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\r\n\t\tmetadata\r\n\t})\r\n\r\n\t// Some users requested a way to reset the component\r\n\t// (both number `` and country ``\r\n\t// and country ``.\r\n\t// It's also not replaced with just resetting `country` on\r\n\t// external `value` reset, because a user could select a country\r\n\t// and then not input any `value`, and so the selected country\r\n\t// would be \"stuck\", if not using this `reset` property.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/300\r\n\tif (newReset !== prevReset) {\r\n\t\treturn {\r\n\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\tvalue: undefined,\r\n\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t}),\r\n\t\t\tvalue: undefined,\r\n\t\t\tcountry: newDefaultCountry,\r\n\t\t\thasUserSelectedACountry: undefined\r\n\t\t}\r\n\t}\r\n\r\n\t// `value` is the value currently shown in the component:\r\n\t// it's stored in the component's `state`, and it's not the `value` property.\r\n\t// `prevValue` is \"previous `value` property\".\r\n\t// `newValue` is \"new `value` property\".\r\n\r\n\t// If the default country changed\r\n\t// (e.g. in case of ajax GeoIP detection after page loaded)\r\n\t// then select it, but only if the user hasn't already manually\r\n\t// selected a country, and no phone number has been manually entered so far.\r\n\t// Because if the user has already started inputting a phone number\r\n\t// then they're okay with no country being selected at all (\"International\")\r\n\t// and they don't want to be disturbed, don't want their input to be screwed, etc.\r\n\tif (newDefaultCountry !== prevDefaultCountry) {\r\n\t\tconst isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata)\r\n\t\tconst noValueHasBeenEnteredByTheUser = (\r\n\t\t\t// By default, \"no value has been entered\" means `value` is `undefined`.\r\n\t\t\t!value ||\r\n\t\t\t// When `international` is `true`, and some country has been pre-selected,\r\n\t\t\t// then the `` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\r\n\t\t\t// so in case of `international` being `true`, \"the user hasn't entered anything\" situation\r\n\t\t\t// doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\r\n\t\t\t(international && value === _getInitialPhoneDigits({\r\n\t\t\t\tvalue: undefined,\r\n\t\t\t\tdefaultCountry: prevDefaultCountry\r\n\t\t\t}))\r\n\t\t)\r\n\t\t// Only update the `defaultCountry` property if no phone number\r\n\t\t// has been entered by the user or pre-set by the application.\r\n\t\tconst noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser\r\n\t\tif (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\r\n\t\t\treturn {\r\n\t\t\t\tcountry: newDefaultCountry,\r\n\t\t\t\t// If `phoneDigits` is empty, then automatically select the new `country`\r\n\t\t\t\t// and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\t// The code assumes that \"no phone number has been entered by the user\",\r\n\t\t\t\t// and no `value` property has been passed, so the `phoneNumber` parameter\r\n\t\t\t\t// of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\r\n\t\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\t\tvalue: undefined,\r\n\t\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t\t}),\r\n\t\t\t\t// `value` is `undefined` and it stays so.\r\n\t\t\t\tvalue: undefined\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If a new `value` is set externally.\r\n\t// (e.g. as a result of an ajax API request\r\n\t// to get user's phone after page loaded)\r\n\t// The first part — `newValue !== prevValue` —\r\n\t// is basically `props.value !== prevProps.value`\r\n\t// so it means \"if value property was changed externally\".\r\n\t// The second part — `newValue !== value` —\r\n\t// is for ignoring the `getDerivedStateFromProps()` call\r\n\t// which happens in `this.onChange()` right after `this.setState()`.\r\n\t// If this `getDerivedStateFromProps()` call isn't ignored\r\n\t// then the country flag would reset on each input.\r\n\tif (newValue !== prevValue && newValue !== value) {\r\n\t\tlet phoneNumber\r\n\t\tlet parsedCountry\r\n\t\tif (newValue) {\r\n\t\t\tphoneNumber = parsePhoneNumber(newValue, metadata)\r\n\t\t\tconst supportedCountries = getSupportedCountries(countries, metadata)\r\n\t\t\tif (phoneNumber && phoneNumber.country) {\r\n\t\t\t\t// Ignore `else` because all countries are supported in metadata.\r\n\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\tif (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\r\n\t\t\t\t\tparsedCountry = phoneNumber.country\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tparsedCountry = getCountryForPartialE164Number(newValue, {\r\n\t\t\t\t\tcountry: undefined,\r\n\t\t\t\t\tcountries: supportedCountries,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet hasUserSelectedACountryUpdate\r\n\t\tif (!newValue) {\r\n\t\t\t// Reset `hasUserSelectedACountry` flag in `state`.\r\n\t\t\thasUserSelectedACountryUpdate = {\r\n\t\t\t\thasUserSelectedACountry: undefined\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\t...hasUserSelectedACountryUpdate,\r\n\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\tphoneNumber,\r\n\t\t\t\tvalue: newValue,\r\n\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t}),\r\n\t\t\tvalue: newValue,\r\n\t\t\tcountry: newValue ? parsedCountry : newDefaultCountry\r\n\t\t}\r\n\t}\r\n\r\n\t// `defaultCountry` didn't change.\r\n\t// `value` didn't change.\r\n\t// `phoneDigits` didn't change, because `value` didn't change.\r\n\t//\r\n\t// So no need to update state.\r\n}","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\r\nexport default function getCountryFlag(country) {\r\n\treturn getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1])\r\n}\r\n\r\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\r\nfunction getRegionalIndicatorSymbol(letter) {\r\n\treturn String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0))\r\n}","import React, { useCallback, useMemo } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode'\r\n\r\nexport default function CountrySelect({\r\n\tvalue,\r\n\tonChange,\r\n\toptions,\r\n\t...rest\r\n}) {\r\n\tconst onChange_ = useCallback((event) => {\r\n\t\tconst value = event.target.value\r\n\t\tonChange(value === 'ZZ' ? undefined : value)\r\n\t}, [onChange])\r\n\r\n\tconst selectedOption = useMemo(() => {\r\n\t\treturn getSelectedOption(options, value)\r\n\t}, [options, value])\r\n\r\n\t// \"ZZ\" means \"International\".\r\n\t// (HTML requires each `\r\n\t\t\t))}\r\n\t\t\r\n\t)\r\n}\r\n\r\nCountrySelect.propTypes = {\r\n\t/**\r\n\t * A two-letter country code.\r\n\t * Example: \"US\", \"RU\", etc.\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * Updates the `value`.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// `