{"version":3,"file":"static/js/main.dd265d1a.js","mappings":"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AM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MA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WACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,sBACN,GAAM,UACN,GAAM,oBACN,GAAM,UACN,GAAM,mCACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,gBACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,0BACN,GAAM,oCACN,GAAM,2BACN,GAAM,QACN,GAAM,cACN,GAAM,gBACN,GAAM,eACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,aACN,GAAM,OACN,GAAM,aACN,GAAM,aACN,GAAM,mBACN,GAAM,SACN,GAAM,iBACN,GAAM,UACN,GAAM,WACN,GAAM,UACN,GAAM,WACN,GAAM,qBACN,GAAM,UACN,GAAM,UACN,GAAM,UACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,QACN,GAAM,WACN,GAAM,UACN,GAAM,OACN,GAAM,mBACN,GAAM,iCACN,GAAM,gBACN,GAAM,SACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,UACN,GAAM,gBACN,GAAM,WACN,GAAM,QACN,GAAM,YACN,GAAM,YACN,GAAM,SACN,GAAM,SACN,GAAM,aACN,GAAM,oBACN,GAAM,SACN,GAAM,+CACN,GAAM,YACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,YACN,GAAM,oCACN,GAAM,WACN,GAAM,UACN,GAAM,QACN,GAAM,UACN,GAAM,YACN,GAAM,UACN,GAAM,SACN,GAAM,cACN,GAAM,QACN,GAAM,iCACN,GAAM,OACN,GAAM,OACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,UACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,WACN,GAAM,WACN,GAAM,UACN,GAAM,wBACN,GAAM,cACN,GAAM,cACN,GAAM,SACN,GAAM,iBACN,GAAM,aACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,gBACN,GAAM,YACN,GAAM,UACN,GAAM,UACN,GAAM,YACN,GAAM,aACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,UACN,GAAM,aACN,GAAM,6BACN,GAAM,aACN,GAAM,mBACN,GAAM,kBACN,GAAM,OACN,GAAM,UACN,GAAM,WACN,GAAM,QACN,GAAM,2BACN,GAAM,aACN,GAAM,aACN,GAAM,aACN,GAAM,QACN,GAAM,YACN,GAAM,WACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,gBACN,GAAM,QACN,GAAM,iBACN,GAAM,UACN,GAAM,YACN,GAAM,cACN,GAAM,SACN,GAAM,QACN,GAAM,QACN,GAAM,OACN,GAAM,cACN,GAAM,OACN,GAAM,gBACN,GAAM,SACN,GAAM,OACN,GAAM,mBACN,GAAM,mBACN,GAAM,cACN,GAAM,WACN,GAAM,SACN,GAAM,4BACN,GAAM,WACN,GAAM,cACN,GAAM,YACN,GAAM,WACN,GAAM,QACN,GAAM,WACN,GAAM,QACN,GAAM,UACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,SACN,GAAM,eACN,GAAM,kBACN,GAAM,aACN,GAAM,QACN,GAAM,SACN,GAAM,YACN,GAAM,eACN,GAAM,WACN,GAAM,yBACN,GAAM,WACN,GAAM,eACN,GAAM,aACN,GAAM,UACN,GAAM,UACN,GAAM,WACN,GAAM,cACN,GAAM,wBACN,GAAM,cACN,GAAM,eACN,GAAM,QACN,GAAM,YACN,GAAM,mBACN,GAAM,2BACN,GAAM,OACN,GAAM,8BACN,GAAM,OACN,GAAM,WACN,GAAM,aACN,GAAM,UACN,GAAM,cACN,GAAM,eACN,GAAM,UACN,GAAM,QACN,GAAM,SACN,GAAM,sBACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,UACN,GAAM,SACN,GAAM,uCACN,GAAM,gBACN,GAAM,UACN,GAAM,aACN,GAAM,gCACN,GAAM,mCACN,GAAM,YACN,GAAM,0BACN,GAAM,uBACN,GAAM,UACN,GAAM,UACN,GAAM,oBACN,GAAM,QACN,GAAM,SACN,GAAM,QACN,GAAM,UACN,GAAM,eACN,GAAM,SACN,GAAM,WACN,GAAM,iBChQD,IAAM9R,GAAWnG,EAAAA,MAAgB,CACvC4K,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","sources":["../node_modules/react-google-recaptcha/lib/esm/recaptcha.js","../node_modules/react-async-script/lib/esm/async-script-loader.js","../node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","../node_modules/react-google-recaptcha/lib/esm/index.js","icons/demoSuccessImage.jsx","../node_modules/libphonenumber-js/metadata.min.json.js","../node_modules/libphonenumber-js/source/helpers/isObject.js","../node_modules/libphonenumber-js/source/normalizeArguments.js","../node_modules/libphonenumber-js/source/constants.js","../node_modules/libphonenumber-js/source/ParseError.js","../node_modules/libphonenumber-js/source/tools/semver-compare.js","../node_modules/libphonenumber-js/source/metadata.js","../node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","../node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","../node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","../node_modules/libphonenumber-js/source/helpers/parseDigits.js","../node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","../node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","../node_modules/libphonenumber-js/source/helpers/mergeArrays.js","../node_modules/libphonenumber-js/source/isPossible.js","../node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","../node_modules/libphonenumber-js/source/helpers/getNumberType.js","../node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js","../node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","../node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","../node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","../node_modules/libphonenumber-js/source/format.js","../node_modules/libphonenumber-js/source/helpers/RFC3966.js","../node_modules/libphonenumber-js/source/PhoneNumber.js","../node_modules/libphonenumber-js/source/isValid.js","../node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","../node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","../node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js","../node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","../node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js","../node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","../node_modules/libphonenumber-js/source/parse.js","../node_modules/libphonenumber-js/source/parsePhoneNumber_.js","../node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js","../node_modules/libphonenumber-js/source/isValidPhoneNumber.js","../node_modules/react-phone-number-input/locale/en.json.js","../node_modules/react-phone-number-input/source/PropTypes.js","../node_modules/input-format/source/helpers.js","../node_modules/input-format/source/templateFormatter.js","../node_modules/input-format/source/closeBraces.js","../node_modules/input-format/source/dom.js","../node_modules/input-format/source/inputControl.js","../node_modules/input-format/source/parse.js","../node_modules/input-format/source/edit.js","../node_modules/input-format/source/format.js","../node_modules/input-format/source/react/Input.js","../node_modules/libphonenumber-js/source/AsYouTypeState.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js","../node_modules/libphonenumber-js/source/AsYouTypeFormatter.js","../node_modules/libphonenumber-js/source/AsYouTypeParser.js","../node_modules/libphonenumber-js/source/AsYouType.js","../node_modules/react-phone-number-input/source/helpers/inputValuePrefix.js","../node_modules/react-phone-number-input/source/helpers/parsePhoneNumberCharacter.js","../node_modules/react-phone-number-input/source/useInputKeyDownHandler.js","../node_modules/react-phone-number-input/source/InputSmart.js","../node_modules/react-phone-number-input/source/InputBasic.js","../node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.js","../node_modules/country-flag-icons/source/unicode.js","../node_modules/react-phone-number-input/source/CountrySelect.js","../node_modules/react-phone-number-input/source/Flag.js","../node_modules/react-phone-number-input/source/InternationalIcon.js","../node_modules/react-phone-number-input/source/helpers/countries.js","../node_modules/libphonenumber-js/source/getCountries.js","../node_modules/react-phone-number-input/source/CountryIcon.js","../node_modules/react-phone-number-input/source/useExternalRef.js","../node_modules/react-phone-number-input/source/helpers/getInternationalPhoneNumberPrefix.js","../node_modules/react-phone-number-input/source/helpers/phoneInputHelpers.js","../node_modules/libphonenumber-js/source/parsePhoneNumber.js","../node_modules/react-phone-number-input/source/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","../node_modules/react-phone-number-input/source/PhoneInputWithCountry.js","../node_modules/react-phone-number-input/source/PhoneInputWithCountryDefault.js","../node_modules/react-phone-number-input/min/index.js","components/Phone/index.js","components/DemoPageForm/index.js","icons/demoFormSvgMobile.jsx","components/Loader/Loader.js","components/LoginModal/index.js","components/Modal/Modal.js","config.ts","constants.js","icons/loginModalCancel.jsx","icons/workSpaceLogo.jsx","lib/Auth/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","lib/ModalAuth/index.js","lib/googleAnalytics/index.jsx","utils.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-helmet/es/Helmet.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-side-effect/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/classnames/index.js","../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthError.ts","../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthErrorCodes.ts","../node_modules/@azure/msal-browser/src/event/EventType.ts","../node_modules/@azure/msal-browser/src/utils/BrowserConstants.ts","../node_modules/@azure/msal-common/src/error/AuthError.ts","../node_modules/@azure/msal-common/src/error/AuthErrorCodes.ts","../node_modules/@azure/msal-common/src/logger/Logger.ts","../node_modules/@azure/msal-common/src/utils/Constants.ts","../node_modules/@azure/msal-browser/src/app/IPublicClientApplication.ts","../node_modules/@azure/msal-react/src/MsalContext.ts","../node_modules/@azure/msal-browser/src/event/EventMessage.ts","../node_modules/@azure/msal-react/src/utils/utilities.ts","../node_modules/@azure/msal-react/src/packageMetadata.ts","../node_modules/@azure/msal-react/src/MsalProvider.tsx","../node_modules/@azure/msal-react/src/hooks/useMsal.ts","../node_modules/@azure/msal-react/src/error/ReactAuthError.ts","../node_modules/clsx/dist/clsx.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-helmet-async/lib/index.esm.js","../node_modules/@azure/msal-common/src/authority/ProtocolMode.ts","../node_modules/@azure/msal-common/src/authority/AuthorityOptions.ts","../node_modules/@azure/msal-common/src/error/ClientAuthErrorCodes.ts","../node_modules/@azure/msal-common/src/error/ClientAuthError.ts","../node_modules/@azure/msal-common/src/crypto/ICrypto.ts","../node_modules/@azure/msal-common/src/packageMetadata.ts","../node_modules/@azure/msal-common/src/account/AuthToken.ts","../node_modules/@azure/msal-common/src/utils/TimeUtils.ts","../node_modules/@azure/msal-common/src/cache/utils/CacheHelpers.ts","../node_modules/@azure/msal-common/src/error/ClientConfigurationErrorCodes.ts","../node_modules/@azure/msal-common/src/error/ClientConfigurationError.ts","../node_modules/@azure/msal-common/src/utils/StringUtils.ts","../node_modules/@azure/msal-common/src/request/ScopeSet.ts","../node_modules/@azure/msal-common/src/account/ClientInfo.ts","../node_modules/@azure/msal-common/src/account/AccountInfo.ts","../node_modules/@azure/msal-common/src/authority/AuthorityType.ts","../node_modules/@azure/msal-common/src/account/TokenClaims.ts","../node_modules/@azure/msal-common/src/cache/entities/AccountEntity.ts","../node_modules/@azure/msal-common/src/utils/UrlUtils.ts","../node_modules/@azure/msal-common/src/url/UrlString.ts","../node_modules/@azure/msal-common/src/authority/AuthorityMetadata.ts","../node_modules/@azure/msal-common/src/error/CacheErrorCodes.ts","../node_modules/@azure/msal-common/src/error/CacheError.ts","../node_modules/@azure/msal-common/src/cache/CacheManager.ts","../node_modules/@azure/msal-common/src/config/ClientConfiguration.ts","../node_modules/@azure/msal-common/src/network/INetworkModule.ts","../node_modules/@azure/msal-common/src/telemetry/performance/PerformanceEvent.ts","../node_modules/@azure/msal-common/src/telemetry/performance/StubPerformanceClient.ts","../node_modules/@azure/msal-browser/src/navigation/NavigationClient.ts","../node_modules/@azure/msal-browser/src/error/BrowserAuthErrorCodes.ts","../node_modules/@azure/msal-browser/src/error/BrowserAuthError.ts","../node_modules/@azure/msal-browser/src/network/FetchClient.ts","../node_modules/@azure/msal-browser/src/config/Configuration.ts","../node_modules/@azure/msal-browser/src/packageMetadata.ts","../node_modules/@azure/msal-browser/src/operatingcontext/BaseOperatingContext.ts","../node_modules/@azure/msal-browser/src/operatingcontext/StandardOperatingContext.ts","../node_modules/@azure/msal-common/src/error/JoseHeaderErrorCodes.ts","../node_modules/@azure/msal-common/src/error/JoseHeaderError.ts","../node_modules/@azure/msal-common/src/crypto/JoseHeader.ts","../node_modules/@azure/msal-browser/src/encode/Base64Encode.ts","../node_modules/@azure/msal-browser/src/encode/Base64Decode.ts","../node_modules/@azure/msal-browser/src/crypto/BrowserCrypto.ts","../node_modules/@azure/msal-browser/src/cache/DatabaseStorage.ts","../node_modules/@azure/msal-browser/src/cache/MemoryStorage.ts","../node_modules/@azure/msal-browser/src/cache/AsyncMemoryStorage.ts","../node_modules/@azure/msal-browser/src/crypto/CryptoOps.ts","../node_modules/@azure/msal-common/src/utils/FunctionWrappers.ts","../node_modules/@azure/msal-common/src/authority/RegionDiscovery.ts","../node_modules/@azure/msal-common/src/authority/Authority.ts","../node_modules/@azure/msal-common/src/authority/OpenIdConfigResponse.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryResponse.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryErrorResponse.ts","../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthErrorCodes.ts","../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthError.ts","../node_modules/@azure/msal-common/src/utils/ProtocolUtils.ts","../node_modules/@azure/msal-common/src/account/CcsCredential.ts","../node_modules/@azure/msal-common/src/cache/entities/CacheRecord.ts","../node_modules/@azure/msal-browser/src/cache/BrowserStorage.ts","../node_modules/@azure/msal-browser/src/utils/BrowserProtocolUtils.ts","../node_modules/@azure/msal-browser/src/cache/BrowserCacheManager.ts","../node_modules/@azure/msal-browser/src/utils/BrowserUtils.ts","../node_modules/@azure/msal-browser/src/event/EventHandler.ts","../node_modules/@azure/msal-common/src/error/ServerError.ts","../node_modules/@azure/msal-common/src/network/ThrottlingUtils.ts","../node_modules/@azure/msal-common/src/network/NetworkManager.ts","../node_modules/@azure/msal-common/src/constants/AADServerParamKeys.ts","../node_modules/@azure/msal-common/src/request/RequestValidator.ts","../node_modules/@azure/msal-common/src/request/RequestParameterBuilder.ts","../node_modules/@azure/msal-common/src/authority/AuthorityFactory.ts","../node_modules/@azure/msal-common/src/client/BaseClient.ts","../node_modules/@azure/msal-common/src/crypto/PopTokenGenerator.ts","../node_modules/@azure/msal-common/src/cache/persistence/TokenCacheContext.ts","../node_modules/@azure/msal-common/src/response/ResponseHandler.ts","../node_modules/@azure/msal-common/src/utils/ClientAssertionUtils.ts","../node_modules/@azure/msal-common/src/client/AuthorizationCodeClient.ts","../node_modules/@azure/msal-common/src/telemetry/server/ServerTelemetryManager.ts","../node_modules/@azure/msal-browser/src/interaction_client/BaseInteractionClient.ts","../node_modules/@azure/msal-browser/src/crypto/PkceGenerator.ts","../node_modules/@azure/msal-browser/src/request/RequestHelpers.ts","../node_modules/@azure/msal-browser/src/interaction_client/StandardInteractionClient.ts","../node_modules/@azure/msal-browser/src/error/NativeAuthErrorCodes.ts","../node_modules/@azure/msal-browser/src/error/NativeAuthError.ts","../node_modules/@azure/msal-browser/src/broker/nativeBroker/NativeStatusCodes.ts","../node_modules/@azure/msal-common/src/client/RefreshTokenClient.ts","../node_modules/@azure/msal-common/src/client/SilentFlowClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentCacheClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/NativeInteractionClient.ts","../node_modules/@azure/msal-browser/src/broker/nativeBroker/NativeMessageHandler.ts","../node_modules/@azure/msal-browser/src/interaction_handler/InteractionHandler.ts","../node_modules/@azure/msal-browser/src/response/ResponseHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/PopupClient.ts","../node_modules/@azure/msal-browser/src/interaction_handler/RedirectHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/RedirectClient.ts","../node_modules/@azure/msal-browser/src/interaction_handler/SilentHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentIframeClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentRefreshClient.ts","../node_modules/@azure/msal-browser/src/cache/TokenCache.ts","../node_modules/@azure/msal-browser/src/interaction_client/HybridSpaAuthorizationCodeClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentAuthCodeClient.ts","../node_modules/@azure/msal-browser/src/controllers/StandardController.ts","../node_modules/@azure/msal-browser/src/cache/AccountManager.ts","../node_modules/@azure/msal-browser/src/app/PublicClientApplication.ts","../node_modules/@azure/msal-browser/src/controllers/ControllerFactory.ts","components/LandingPageHeader/index.js","icons/menuIcon.jsx","App.js","reportWebVitals.js","index.js"],"sourcesContent":["var _excluded = [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\", \"isolated\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n function ReCAPTCHA() {\n var _this;\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n var _proto = ReCAPTCHA.prototype;\n _proto.getCaptchaFunction = function getCaptchaFunction(fnName) {\n if (this.props.grecaptcha) {\n if (this.props.grecaptcha.enterprise) {\n return this.props.grecaptcha.enterprise[fnName];\n }\n return this.props.grecaptcha[fnName];\n }\n return null;\n };\n _proto.getValue = function getValue() {\n var getResponse = this.getCaptchaFunction(\"getResponse\");\n if (getResponse && this._widgetId !== undefined) {\n return getResponse(this._widgetId);\n }\n return null;\n };\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n return null;\n };\n _proto.execute = function execute() {\n var execute = this.getCaptchaFunction(\"execute\");\n if (execute && this._widgetId !== undefined) {\n return execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n _this2.execute();\n });\n };\n _proto.reset = function reset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter && this._widgetId !== undefined) {\n resetter(this._widgetId);\n }\n };\n _proto.forceReset = function forceReset() {\n var resetter = this.getCaptchaFunction(\"reset\");\n if (resetter) {\n resetter();\n }\n };\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n _proto.explicitRender = function explicitRender() {\n var render = this.getCaptchaFunction(\"render\");\n if (render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge,\n isolated: this.props.isolated\n });\n this.captcha.appendChild(wrapper);\n }\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n isolated = _this$props.isolated,\n childProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n /* eslint-enable no-unused-vars */\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n return ReCAPTCHA;\n}(React.Component);\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"]),\n isolated: PropTypes.bool\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this;\n\n // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n if (dynamicOptions.enterprise) {\n return \"https://\" + hostname + \"/recaptcha/enterprise.js?onload=\" + callbackName + \"&render=explicit\";\n }\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName,\n attributes: getOptions().nonce ? {\n nonce: getOptions().nonce\n } : {}\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","import React from \"react\";\n\nfunction DemoSuccessImage({ width, height }) {\n return (\n \n Group 43\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default DemoSuccessImage;\n","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|22\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"[24-689]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]]]],\"BL\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"10(?:10|9[56])|2[0-57-9](?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:60\\\\d\\\\d|9101)\\\\d{6}|(?:1\\\\d|3)\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:(?:79|94)[01]|83[0-389])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[0-36-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:1[3-79]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0235])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-2]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"[56]94\\\\d{6}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[56]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"590\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"596\\\\d{6}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"1(?:(?:22|44|7[27]|87|9[69])[1-9]|65[0-689])\\\\d{7}|(?:1(?:[01]\\\\d|2[13-9]|[35][1-9]|4[0-35-9]|6[0-46-9]|7[013-689]|8[1-69]|9[1-578])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[047]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"2[0-24-9]\\\\d{8}|[78]\\\\d{10,13}|[7-9]\\\\d{9}|[1-9]\\\\d{7}|[124-7]\\\\d{6}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-6]|7(?:0[0-689]|[1-79])|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|80\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[27]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"800\\\\d{4}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3[1-5]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72)\\\\d{4}|8\\\\d{5}(?:\\\\d{3})?\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[478]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[35-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","const objectConstructor = {}.constructor;\r\n\r\nexport default function isObject(object) {\r\n return object !== undefined && object !== null && object.constructor === objectConstructor;\r\n}\r\n","import isObject from './helpers/isObject.js'\r\n\r\n// Extracts the following properties from function arguments:\r\n// * input `text`\r\n// * `options` object\r\n// * `metadata` JSON\r\nexport default function normalizeArguments(args) {\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}","// 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\n// \"Breaking changes in Typescript 2.1\"\r\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\r\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\r\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\nexport default class ParseError extends Error {\r\n constructor(code) {\r\n super(code)\r\n // Set the prototype explicitly.\r\n // Any subclass of FooError will have to manually set the prototype as well.\r\n Object.setPrototypeOf(this, ParseError.prototype)\r\n this.name = this.constructor.name\r\n }\r\n}","// 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.js'\r\nimport isObject from './helpers/isObject.js'\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\t// The test case could be found by searching for \"nonGeographical\".\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\t// In that metadata, there was no concept of \"non-geographic\" metadata\r\n\t\t\t// so metadata for `001` country code was stored along with other countries.\r\n\t\t\t// The test case can be found by searching for:\r\n\t\t\t// \"should work around `nonGeographic` metadata not existing\".\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\t// Is always present.\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\t// Is only present when a country supports multiple IDD prefixes.\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\t// \"possible length\" data is always present in Google's metadata.\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 (!isObject(metadata) || !isObject(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 ${isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(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 typeOf = _ => 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.hasOwnProperty(country)\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.js'\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.js'\r\n\r\nimport createExtensionPattern from './extension/createExtensionPattern.js'\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\n// This regular expression isn't present in Google's `libphonenumber`\r\n// and is only used to determine whether the phone number being input\r\n// is too short for it to even consider it a \"valid\" number.\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nconst VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\r\n\t'^' +\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'){1,2}' +\r\n\t'$'\r\n, 'i')\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}\r\n\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nexport function isViablePhoneNumberStart(number) {\r\n\treturn VALID_PHONE_NUMBER_START_REG_EXP.test(number)\r\n}","import createExtensionPattern from './createExtensionPattern.js'\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.js'\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 {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\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\t// `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\r\n\t\t\t// Any 3rd-party code that used to `import` and call this function before that\r\n\t\t\t// won't be passing any `emitEvent` argument.\r\n\t\t\t//\r\n\t\t\t// The addition of the `emitEvent` argument was to fix the slightly-weird behavior\r\n\t\t\t// of parsing an input string when the user inputs something like `\"2+7\"\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\r\n\t\t\t//\r\n\t\t\t// If the parser encounters an unexpected `+` in a string being parsed\r\n\t\t\t// then it simply discards that out-of-place `+` and any following characters.\r\n\t\t\t//\r\n\t\t\tif (typeof emitEvent === 'function') {\r\n\t\t\t\temitEvent('end')\r\n\t\t\t}\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.js'\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.js'\r\nimport checkNumberLength from './helpers/checkNumberLength.js'\r\n\r\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\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\t// Old metadata (< 1.0.18) had no \"possible length\" data.\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.js'\r\nimport matchesEntirely from './matchesEntirely.js'\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()` returns an empty object — `{}` —\r\n\t// that means that the phone number is malformed,\r\n\t// so it can't possibly be valid.\r\n\tif (!input.country && !input.countryCallingCode) {\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// `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\r\n\t\t// For example, for \"US\" country.\r\n\t\t// Old metadata (< `1.0.18`) had a specific \"types\" data structure\r\n\t\t// that happened to be `undefined` for `MOBILE` in that case.\r\n\t\t// Newer metadata (>= `1.0.18`) has another data structure that is\r\n\t\t// not `undefined` for `MOBILE` in that case (it's just an empty array).\r\n\t\t// So this `if` is just for backwards compatibility with old metadata.\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 Metadata from '../metadata.js'\r\n\r\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\r\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\tlet possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn []\r\n\t}\r\n\treturn possibleCountries.filter((country) => {\r\n\t\treturn couldNationalNumberBelongToCountry(nationalNumber, country, metadata)\r\n\t})\r\n}\r\n\r\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\r\n\tconst _metadata = new Metadata(metadata)\r\n\t_metadata.selectNumberingPlan(country)\r\n\tif (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}","import { VALID_PUNCTUATION } from '../constants.js'\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.js'\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.js'\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.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\nimport Metadata, { getCountryCallingCode } from './metadata.js'\r\nimport getIddPrefix from './helpers/getIddPrefix.js'\r\nimport { formatRFC3966 } from './helpers/RFC3966.js'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\r\n}\r\n\r\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\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\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\r\n\tfor (const format of availableFormats) {\r\n\t\t// Validate leading digits.\r\n\t\t// The test case for \"else path\" could be found by searching for\r\n\t\t// \"format.leadingDigitsPatterns().length === 0\".\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.js'\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.js'\r\nimport isPossibleNumber from './isPossible.js'\r\nimport isValidNumber from './isValid.js'\r\n// import checkNumberLength from './helpers/checkNumberLength.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js'\r\nimport formatNumber from './format.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class PhoneNumber {\r\n\t/**\r\n\t * @param {string} countryOrCountryCallingCode\r\n\t * @param {string} nationalNumber\r\n\t * @param {object} metadata — Metadata JSON\r\n\t * @return {PhoneNumber}\r\n\t */\r\n\tconstructor(countryOrCountryCallingCode, nationalNumber, metadata) {\r\n\t\tif (!countryOrCountryCallingCode) {\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 { country, countryCallingCode } = getCountryAndCountryCallingCode(\r\n\t\t\tcountryOrCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tthis.country = country\r\n\t\tthis.countryCallingCode = countryCallingCode\r\n\t\tthis.nationalNumber = nationalNumber\r\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\r\n\t\t// Exclude `metadata` property output from `PhoneNumber.toString()`\r\n\t\t// so that it doesn't clutter the console output of Node.js.\r\n\t\t// Previously, when Node.js did `console.log(new PhoneNumber(...))`,\r\n\t\t// it would output the whole internal structure of the `metadata` object.\r\n\t\tthis.getMetadata = () => metadata\r\n\t}\r\n\r\n\tsetExt(ext) {\r\n\t\tthis.ext = ext\r\n\t}\r\n\r\n\tgetPossibleCountries() {\r\n\t\tif (this.country) {\r\n\t\t\treturn [this.country]\r\n\t\t}\r\n\t\treturn getPossibleCountriesForNumber(\r\n\t\t\tthis.countryCallingCode,\r\n\t\t\tthis.nationalNumber,\r\n\t\t\tthis.getMetadata()\r\n\t\t)\r\n\t}\r\n\r\n\tisPossible() {\r\n\t\treturn isPossibleNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisValid() {\r\n\t\treturn isValidNumber(this, { v2: true }, this.getMetadata())\r\n\t}\r\n\r\n\tisNonGeographic() {\r\n\t\tconst metadata = new Metadata(this.getMetadata())\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// This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\r\n\t// but later it was found out that it doesn't include the possible `TOO_SHORT` result\r\n\t// returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\r\n\t// so eventually I simply commented out this method from the `PhoneNumber` class\r\n\t// and just left the `validatePhoneNumberLength()` function, even though that one would require\r\n\t// and additional step to also validate the actual country / calling code of the phone number.\r\n\t// validateLength() {\r\n\t// \tconst metadata = new Metadata(this.getMetadata())\r\n\t// \tmetadata.selectNumberingPlan(this.countryCallingCode)\r\n\t// \tconst result = checkNumberLength(this.nationalNumber, metadata)\r\n\t// \tif (result !== 'IS_POSSIBLE') {\r\n\t// \t\treturn result\r\n\t// \t}\r\n\t// }\r\n\r\n\tgetType() {\r\n\t\treturn getNumberType(this, { v2: true }, this.getMetadata())\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.getMetadata()\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)\r\n\r\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\r\n\tlet country\r\n\tlet countryCallingCode\r\n\r\n\tconst metadata = new Metadata(metadataJson)\r\n\t// If country code is passed then derive `countryCallingCode` from it.\r\n\t// Also store the country code as `.country`.\r\n\tif (isCountryCode(countryOrCountryCallingCode)) {\r\n\t\tcountry = countryOrCountryCallingCode\r\n\t\tmetadata.selectNumberingPlan(country)\r\n\t\tcountryCallingCode = metadata.countryCallingCode()\r\n\t} else {\r\n\t\tcountryCallingCode = countryOrCountryCallingCode\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\tif (metadata.isNonGeographicCallingCode(countryCallingCode)) {\r\n\t\t\t\tcountry = '001'\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode\r\n\t}\r\n}","import Metadata from './metadata.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport getNumberType from './helpers/getNumberType.js'\r\n\r\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\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\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\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 nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\treturn matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n}","import Metadata from '../metadata.js'\r\nimport { VALID_DIGITS } from '../constants.js'\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? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\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.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport checkNumberLength from './checkNumberLength.js'\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\tcarrierCode,\r\n\t\tnationalNumber\r\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\tnumber,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (nationalNumber !== number) {\r\n\t\tif (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\r\n\t\t\t// Don't strip the national prefix.\r\n\t\t\treturn { nationalNumber: number }\r\n\t\t}\r\n\t\t// Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t\t// Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\r\n\t\tif (metadata.possibleLengths()) {\r\n\t\t\t// The number remaining after stripping the national prefix and carrier code\r\n\t\t\t// should be long enough to have a possible length for the country.\r\n\t\t\t// Otherwise, don't strip the national prefix and carrier code,\r\n\t\t\t// since the original number could be a valid number.\r\n\t\t\t// This check has been copy-pasted \"as is\" from Google's original library:\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\t// It doesn't check for the \"possibility\" of the original `number`.\r\n\t\t\t// I guess it's fine not checking that one. It works as is anyway.\r\n\t\t\tif (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\r\n\t\t\t\t// Don't strip the national prefix.\r\n\t\t\t\treturn { nationalNumber: number }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\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 shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, 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(nationalNumberBefore, metadata.nationalNumberPattern()) &&\r\n\t\t!matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\r\n\t\treturn false\r\n\t}\r\n\t// This \"is possible\" national number (length) check has been commented out\r\n\t// because it's superceded by the (effectively) same check done in the\r\n\t// `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\r\n\t// In other words, why run the same check twice if it could only be run once.\r\n\t// // Check the national (significant) number length after extracting national prefix and carrier code.\r\n\t// // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\r\n\t// // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\r\n\t// if (metadata.possibleLengths()) {\r\n\t// \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\r\n\t// \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\r\n\t// \t\treturn false\r\n\t// \t}\r\n\t// }\r\n\treturn true\r\n}\r\n\r\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'TOO_SHORT':\r\n\t\tcase 'INVALID_LENGTH':\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 false\r\n\t\tdefault:\r\n\t\t\treturn true\r\n\t}\r\n}","import Metadata from '../metadata.js'\r\nimport matchesEntirely from './matchesEntirely.js'\r\nimport extractNationalNumber from './extractNationalNumber.js'\r\nimport checkNumberLength from './checkNumberLength.js'\r\nimport getCountryCallingCode from '../getCountryCallingCode.js'\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.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport Metadata from '../metadata.js'\r\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js'\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} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\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\tlet isNumberWithIddPrefix\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\tisNumberWithIddPrefix = true\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\tcountryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\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 {\r\n\t\t\t\t// No need to set it to `UNSPECIFIED`. It can be just `undefined`.\r\n\t\t\t\t// countryCallingCodeSource: 'UNSPECIFIED',\r\n\t\t\t\tnumber\r\n\t\t\t}\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\tcountryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\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}\r\n\r\n// The possible values for the returned `countryCallingCodeSource` are:\r\n//\r\n// Copy-pasted from:\r\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\r\n//\r\n// // The source from which the country_code is derived. This is not set in the\r\n// // general parsing method, but in the method that parses and keeps raw_input.\r\n// // New fields could be added upon request.\r\n// enum CountryCodeSource {\r\n// // Default value returned if this is not set, because the phone number was\r\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\r\n// // return false if this is the case.\r\n// UNSPECIFIED = 0;\r\n//\r\n// // The country_code is derived based on a phone number with a leading \"+\",\r\n// // e.g. the French number \"+33 1 42 68 53 00\".\r\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\r\n//\r\n// // The country_code is derived based on a phone number with a leading IDD,\r\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\r\n// FROM_NUMBER_WITH_IDD = 5;\r\n//\r\n// // The country_code is derived based on a phone number without a leading\r\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\r\n// // supplied as France.\r\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\r\n//\r\n// // The country_code is derived NOT based on the phone number itself, but\r\n// // from the defaultCountry parameter provided in the parsing function by the\r\n// // clients. This happens mostly for numbers written in the national format\r\n// // (without country code). For example, this would be set when parsing the\r\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\r\n// // France.\r\n// FROM_DEFAULT_COUNTRY = 20;\r\n// }","import Metadata from '../metadata.js'\r\nimport getNumberType from './getNumberType.js'\r\n\r\nexport default function getCountryByNationalNumber(nationalPhoneNumber, {\r\n\tcountries,\r\n\tdefaultCountry,\r\n\tmetadata\r\n}) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tconst matchingCountries = []\r\n\r\n\tfor (const country of countries) {\r\n\t\tmetadata.country(country)\r\n\t\t// \"Leading digits\" patterns are only defined for about 20% of all countries.\r\n\t\t// By definition, matching \"leading digits\" is a sufficient but not a necessary\r\n\t\t// condition for a phone number to belong to a country.\r\n\t\t// The point of \"leading digits\" check is that it's the fastest one to get a match.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t\t// I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\r\n\t\t// because of the intended use of that feature.\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\t// If the `defaultCountry` is among the `matchingCountries` then return it.\r\n\t\t\tif (defaultCountry) {\r\n\t\t\t\tif (country === defaultCountry) {\r\n\t\t\t\t\treturn country\r\n\t\t\t\t}\r\n\t\t\t\tmatchingCountries.push(country)\r\n\t\t\t} else {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the first (\"main\") one of the `matchingCountries`.\r\n\tif (matchingCountries.length > 0) {\r\n\t\treturn matchingCountries[0]\r\n\t}\r\n}","import getCountryByNationalNumber from './getCountryByNationalNumber.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default function getCountryByCallingCode(callingCode, {\r\n\tnationalNumber: nationalPhoneNumber,\r\n\tdefaultCountry,\r\n\tmetadata\r\n}) {\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\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 getCountryByNationalNumber(nationalPhoneNumber, {\r\n\t\tcountries: possibleCountries,\r\n\t\tdefaultCountry,\r\n\t\tmetadata: metadata.metadata\r\n\t})\r\n}","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\r\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\r\n// Example: `\"tel:12133734253;phone-context=+1\"`.\r\n// This function parses the full phone number from the local number and the `phone-context`\r\n// when the `phone-context` contains a `+` sign.\r\n\r\nimport {\r\n VALID_DIGITS,\r\n // PLUS_CHARS\r\n} from '../constants.js'\r\n\r\nexport const PLUS_SIGN = '+'\r\n\r\nconst RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?'\r\n\r\nconst RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')'\r\n\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_ =\r\n\t'^' +\r\n\t'\\\\' +\r\n\tPLUS_SIGN +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'[' + VALID_DIGITS + ']' +\r\n\tRFC3966_PHONE_DIGIT_ +\r\n\t'*' +\r\n\t'$'\r\n\r\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g')\r\n\r\n// In this port of Google's library, we don't accept alpha characters in phone numbers.\r\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\r\nconst ALPHANUM_ = VALID_DIGITS\r\n\r\nconst RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst VALID_ALPHA_ = 'a-zA-Z'\r\nconst RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*'\r\n\r\nconst RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$'\r\n\r\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\r\nconst RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g')\r\n\r\nexport const RFC3966_PREFIX_ = 'tel:'\r\nexport const RFC3966_PHONE_CONTEXT_ = ';phone-context='\r\nexport const RFC3966_ISDN_SUBADDRESS_ = ';isub='\r\n\r\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\r\nexport default function extractPhoneContext(numberToExtractFrom) {\r\n\tconst indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t// If no phone-context parameter is present\r\n\tif (indexOfPhoneContext < 0) {\r\n\t\treturn null\r\n\t}\r\n\r\n\tconst phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length\r\n\t// If phone-context parameter is empty\r\n\tif (phoneContextStart >= numberToExtractFrom.length) {\r\n\t\treturn ''\r\n\t}\r\n\r\n\tconst phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart)\r\n\t// If phone-context is not the last parameter\r\n\tif (phoneContextEnd >= 0) {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart, phoneContextEnd)\r\n\t} else {\r\n\t\treturn numberToExtractFrom.substring(phoneContextStart)\r\n\t}\r\n}\r\n\r\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\r\nexport function isPhoneContextValid(phoneContext) {\r\n\tif (phoneContext === null) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (phoneContext.length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\t// Does phone-context value match pattern of global-number-digits or domainname.\r\n\treturn RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) ||\r\n\t\tRFC3966_DOMAINNAME_PATTERN_.test(phoneContext)\r\n}","import extractPhoneContext, {\r\n\tisPhoneContextValid,\r\n\tPLUS_SIGN,\r\n\tRFC3966_PREFIX_,\r\n\tRFC3966_PHONE_CONTEXT_,\r\n\tRFC3966_ISDN_SUBADDRESS_\r\n} from './extractPhoneContext.js'\r\n\r\nimport ParseError from '../ParseError.js'\r\n\r\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\r\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, {\r\n\textractFormattedPhoneNumber\r\n}) {\r\n\tconst phoneContext = extractPhoneContext(numberToParse)\r\n\tif (!isPhoneContextValid(phoneContext)) {\r\n\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t}\r\n\r\n\tlet phoneNumberString\r\n\r\n\tif (phoneContext === null) {\r\n\t\t// Extract a possible number from the string passed in.\r\n\t\t// (this strips leading characters that could not be the start of a phone number)\r\n\t\tphoneNumberString = extractFormattedPhoneNumber(numberToParse) || ''\r\n\t} else {\r\n\t\tphoneNumberString = ''\r\n\r\n\t\t// If the phone context contains a phone number prefix, we need to capture\r\n\t\t// it, whereas domains will be ignored.\r\n\t\tif (phoneContext.charAt(0) === PLUS_SIGN) {\r\n\t\t\tphoneNumberString += phoneContext\r\n\t\t}\r\n\r\n\t\t// Now append everything between the \"tel:\" prefix and the phone-context.\r\n\t\t// This should include the national number, an optional extension or\r\n\t\t// isdn-subaddress component. Note we also handle the case when \"tel:\" is\r\n\t\t// missing, as we have seen in some of the phone number inputs.\r\n\t\t// In that case, we append everything from the beginning.\r\n\t\tconst indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_)\r\n\t\tlet indexOfNationalNumber\r\n\t\t// RFC 3966 \"tel:\" prefix is preset at this stage because\r\n\t\t// `isPhoneContextValid()` requires it to be present.\r\n\t\t/* istanbul ignore else */\r\n\t\tif (indexOfRfc3966Prefix >= 0) {\r\n\t\t\tindexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length\r\n\t\t} else {\r\n\t\t\tindexOfNationalNumber = 0\r\n\t\t}\r\n\t\tconst indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_)\r\n\t\tphoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext)\r\n\t}\r\n\r\n\t// Delete the isdn-subaddress and everything after it if it is present.\r\n\t// Note extension won't appear at the same time with isdn-subaddress\r\n\t// according to paragraph 5.3 of the RFC3966 spec.\r\n\tconst indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_)\r\n\tif (indexOfIsdn > 0) {\r\n\t\tphoneNumberString = phoneNumberString.substring(0, indexOfIsdn)\r\n\t}\r\n\t// If both phone context and isdn-subaddress are absent but other\r\n\t// parameters are present, the parameters are left in nationalNumber.\r\n\t// This is because we are concerned about deleting content from a potential\r\n\t// number string when there is no strong evidence that the number is\r\n\t// actually written in RFC3966.\r\n\r\n\tif (phoneNumberString !== '') {\r\n\t\treturn phoneNumberString\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.js'\r\n\r\nimport ParseError from './ParseError.js'\r\nimport Metadata from './metadata.js'\r\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js'\r\nimport extractExtension from './helpers/extension/extractExtension.js'\r\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js'\r\nimport getCountryCallingCode from './getCountryCallingCode.js'\r\nimport { isPossibleNumber } from './isPossible.js'\r\n// import { parseRFC3966 } from './helpers/RFC3966.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport matchesEntirely from './helpers/matchesEntirely.js'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractNationalNumber from './helpers/extractNationalNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'\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\n\r\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\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, error } = 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\tif (error === 'TOO_SHORT') {\r\n\t\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t\t}\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\tcountryCallingCodeSource,\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\tphoneNumber.__countryCallingCodeSource = countryCallingCodeSource\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\t// if (text && text.indexOf('tel:') === 0) {\r\n\t// \treturn parseRFC3966(text)\r\n\t// }\r\n\t// let number = extractFormattedPhoneNumber(text, extract, v2)\r\n\tlet number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\r\n\t\textractFormattedPhoneNumber: (text) => extractFormattedPhoneNumber(text, extract, v2)\r\n\t})\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\tif (isViablePhoneNumberStart(number)) {\r\n\t\t\treturn { error: 'TOO_SHORT' }\r\n\t\t}\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 { countryCallingCodeSource, 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 passed in \"national\" format\r\n\t// then `number` is defined and `countryCallingCode` is `undefined`.\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 {\r\n\t\t\tcountryCallingCodeSource,\r\n\t\t\tcountryCallingCode\r\n\t\t}\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, {\r\n\t\tnationalNumber,\r\n\t\tdefaultCountry,\r\n\t\tmetadata\r\n\t})\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\tcountryCallingCodeSource,\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t}\r\n}","import parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\r\nimport ParseError from './ParseError.js'\r\nimport { isSupportedCountry } from './metadata.js'\r\n\r\nexport default function parsePhoneNumber(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 parsePhoneNumberWithError(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 parse from './parse.js'\r\n\r\nexport default function parsePhoneNumberWithError(text, options, metadata) {\r\n\treturn parse(text, { ...options, v2: true }, metadata)\r\n}","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber from './parsePhoneNumber_.js'\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 = parsePhoneNumber(text, options, metadata)\r\n\treturn phoneNumber && phoneNumber.isValid() || false\r\n}","export default {\n \"ext\": \"ext.\",\n \"country\": \"Phone number country\",\n \"phone\": \"Phone\",\n \"AB\": \"Abkhazia\",\n \"AC\": \"Ascension Island\",\n \"AD\": \"Andorra\",\n \"AE\": \"United Arab Emirates\",\n \"AF\": \"Afghanistan\",\n \"AG\": \"Antigua and Barbuda\",\n \"AI\": \"Anguilla\",\n \"AL\": \"Albania\",\n \"AM\": \"Armenia\",\n \"AO\": \"Angola\",\n \"AQ\": \"Antarctica\",\n \"AR\": \"Argentina\",\n \"AS\": \"American Samoa\",\n \"AT\": \"Austria\",\n \"AU\": \"Australia\",\n \"AW\": \"Aruba\",\n \"AX\": \"Åland Islands\",\n \"AZ\": \"Azerbaijan\",\n \"BA\": \"Bosnia and Herzegovina\",\n \"BB\": \"Barbados\",\n \"BD\": \"Bangladesh\",\n \"BE\": \"Belgium\",\n \"BF\": \"Burkina Faso\",\n \"BG\": \"Bulgaria\",\n \"BH\": \"Bahrain\",\n \"BI\": \"Burundi\",\n \"BJ\": \"Benin\",\n \"BL\": \"Saint Barthélemy\",\n \"BM\": \"Bermuda\",\n \"BN\": \"Brunei Darussalam\",\n \"BO\": \"Bolivia\",\n \"BQ\": \"Bonaire, Sint Eustatius and Saba\",\n \"BR\": \"Brazil\",\n \"BS\": \"Bahamas\",\n \"BT\": \"Bhutan\",\n \"BV\": \"Bouvet Island\",\n \"BW\": \"Botswana\",\n \"BY\": \"Belarus\",\n \"BZ\": \"Belize\",\n \"CA\": \"Canada\",\n \"CC\": \"Cocos (Keeling) Islands\",\n \"CD\": \"Congo, Democratic Republic of the\",\n \"CF\": \"Central African Republic\",\n \"CG\": \"Congo\",\n \"CH\": \"Switzerland\",\n \"CI\": \"Cote d'Ivoire\",\n \"CK\": \"Cook Islands\",\n \"CL\": \"Chile\",\n \"CM\": \"Cameroon\",\n \"CN\": \"China\",\n \"CO\": \"Colombia\",\n \"CR\": \"Costa Rica\",\n \"CU\": \"Cuba\",\n \"CV\": \"Cape Verde\",\n \"CW\": \"Curaçao\",\n \"CX\": \"Christmas Island\",\n \"CY\": \"Cyprus\",\n \"CZ\": \"Czech Republic\",\n \"DE\": \"Germany\",\n \"DJ\": \"Djibouti\",\n \"DK\": \"Denmark\",\n \"DM\": \"Dominica\",\n \"DO\": \"Dominican Republic\",\n \"DZ\": \"Algeria\",\n \"EC\": \"Ecuador\",\n \"EE\": \"Estonia\",\n \"EG\": \"Egypt\",\n \"EH\": \"Western Sahara\",\n \"ER\": \"Eritrea\",\n \"ES\": \"Spain\",\n \"ET\": \"Ethiopia\",\n \"FI\": \"Finland\",\n \"FJ\": \"Fiji\",\n \"FK\": \"Falkland Islands\",\n \"FM\": \"Federated States of Micronesia\",\n \"FO\": \"Faroe Islands\",\n \"FR\": \"France\",\n \"GA\": \"Gabon\",\n \"GB\": \"United Kingdom\",\n \"GD\": \"Grenada\",\n \"GE\": \"Georgia\",\n \"GF\": \"French Guiana\",\n \"GG\": \"Guernsey\",\n \"GH\": \"Ghana\",\n \"GI\": \"Gibraltar\",\n \"GL\": \"Greenland\",\n \"GM\": \"Gambia\",\n \"GN\": \"Guinea\",\n \"GP\": \"Guadeloupe\",\n \"GQ\": \"Equatorial Guinea\",\n \"GR\": \"Greece\",\n \"GS\": \"South Georgia and the South Sandwich Islands\",\n \"GT\": \"Guatemala\",\n \"GU\": \"Guam\",\n \"GW\": \"Guinea-Bissau\",\n \"GY\": \"Guyana\",\n \"HK\": \"Hong Kong\",\n \"HM\": \"Heard Island and McDonald Islands\",\n \"HN\": \"Honduras\",\n \"HR\": \"Croatia\",\n \"HT\": \"Haiti\",\n \"HU\": \"Hungary\",\n \"ID\": \"Indonesia\",\n \"IE\": \"Ireland\",\n \"IL\": \"Israel\",\n \"IM\": \"Isle of Man\",\n \"IN\": \"India\",\n \"IO\": \"British Indian Ocean Territory\",\n \"IQ\": \"Iraq\",\n \"IR\": \"Iran\",\n \"IS\": \"Iceland\",\n \"IT\": \"Italy\",\n \"JE\": \"Jersey\",\n \"JM\": \"Jamaica\",\n \"JO\": \"Jordan\",\n \"JP\": \"Japan\",\n \"KE\": \"Kenya\",\n \"KG\": \"Kyrgyzstan\",\n \"KH\": \"Cambodia\",\n \"KI\": \"Kiribati\",\n \"KM\": \"Comoros\",\n \"KN\": \"Saint Kitts and Nevis\",\n \"KP\": \"North Korea\",\n \"KR\": \"South Korea\",\n \"KW\": \"Kuwait\",\n \"KY\": \"Cayman Islands\",\n \"KZ\": \"Kazakhstan\",\n \"LA\": \"Laos\",\n \"LB\": \"Lebanon\",\n \"LC\": \"Saint Lucia\",\n \"LI\": \"Liechtenstein\",\n \"LK\": \"Sri Lanka\",\n \"LR\": \"Liberia\",\n \"LS\": \"Lesotho\",\n \"LT\": \"Lithuania\",\n \"LU\": \"Luxembourg\",\n \"LV\": \"Latvia\",\n \"LY\": \"Libya\",\n \"MA\": \"Morocco\",\n \"MC\": \"Monaco\",\n \"MD\": \"Moldova\",\n \"ME\": \"Montenegro\",\n \"MF\": \"Saint Martin (French Part)\",\n \"MG\": \"Madagascar\",\n \"MH\": \"Marshall Islands\",\n \"MK\": \"North Macedonia\",\n \"ML\": \"Mali\",\n \"MM\": \"Myanmar\",\n \"MN\": \"Mongolia\",\n \"MO\": \"Macao\",\n \"MP\": \"Northern Mariana Islands\",\n \"MQ\": \"Martinique\",\n \"MR\": \"Mauritania\",\n \"MS\": \"Montserrat\",\n \"MT\": \"Malta\",\n \"MU\": \"Mauritius\",\n \"MV\": \"Maldives\",\n \"MW\": \"Malawi\",\n \"MX\": \"Mexico\",\n \"MY\": \"Malaysia\",\n \"MZ\": \"Mozambique\",\n \"NA\": \"Namibia\",\n \"NC\": \"New Caledonia\",\n \"NE\": \"Niger\",\n \"NF\": \"Norfolk Island\",\n \"NG\": \"Nigeria\",\n \"NI\": \"Nicaragua\",\n \"NL\": \"Netherlands\",\n \"NO\": \"Norway\",\n \"NP\": \"Nepal\",\n \"NR\": \"Nauru\",\n \"NU\": \"Niue\",\n \"NZ\": \"New Zealand\",\n \"OM\": \"Oman\",\n \"OS\": \"South Ossetia\",\n \"PA\": \"Panama\",\n \"PE\": \"Peru\",\n \"PF\": \"French Polynesia\",\n \"PG\": \"Papua New Guinea\",\n \"PH\": \"Philippines\",\n \"PK\": \"Pakistan\",\n \"PL\": \"Poland\",\n \"PM\": \"Saint Pierre and Miquelon\",\n \"PN\": \"Pitcairn\",\n \"PR\": \"Puerto Rico\",\n \"PS\": \"Palestine\",\n \"PT\": \"Portugal\",\n \"PW\": \"Palau\",\n \"PY\": \"Paraguay\",\n \"QA\": \"Qatar\",\n \"RE\": \"Reunion\",\n \"RO\": \"Romania\",\n \"RS\": \"Serbia\",\n \"RU\": \"Russia\",\n \"RW\": \"Rwanda\",\n \"SA\": \"Saudi Arabia\",\n \"SB\": \"Solomon Islands\",\n \"SC\": \"Seychelles\",\n \"SD\": \"Sudan\",\n \"SE\": \"Sweden\",\n \"SG\": \"Singapore\",\n \"SH\": \"Saint Helena\",\n \"SI\": \"Slovenia\",\n \"SJ\": \"Svalbard and Jan Mayen\",\n \"SK\": \"Slovakia\",\n \"SL\": \"Sierra Leone\",\n \"SM\": \"San Marino\",\n \"SN\": \"Senegal\",\n \"SO\": \"Somalia\",\n \"SR\": \"Suriname\",\n \"SS\": \"South Sudan\",\n \"ST\": \"Sao Tome and Principe\",\n \"SV\": \"El Salvador\",\n \"SX\": \"Sint Maarten\",\n \"SY\": \"Syria\",\n \"SZ\": \"Swaziland\",\n \"TA\": \"Tristan da Cunha\",\n \"TC\": \"Turks and Caicos Islands\",\n \"TD\": \"Chad\",\n \"TF\": \"French Southern Territories\",\n \"TG\": \"Togo\",\n \"TH\": \"Thailand\",\n \"TJ\": \"Tajikistan\",\n \"TK\": \"Tokelau\",\n \"TL\": \"Timor-Leste\",\n \"TM\": \"Turkmenistan\",\n \"TN\": \"Tunisia\",\n \"TO\": \"Tonga\",\n \"TR\": \"Turkey\",\n \"TT\": \"Trinidad and Tobago\",\n \"TV\": \"Tuvalu\",\n \"TW\": \"Taiwan\",\n \"TZ\": \"Tanzania\",\n \"UA\": \"Ukraine\",\n \"UG\": \"Uganda\",\n \"UM\": \"United States Minor Outlying Islands\",\n \"US\": \"United States\",\n \"UY\": \"Uruguay\",\n \"UZ\": \"Uzbekistan\",\n \"VA\": \"Holy See (Vatican City State)\",\n \"VC\": \"Saint Vincent and the Grenadines\",\n \"VE\": \"Venezuela\",\n \"VG\": \"Virgin Islands, British\",\n \"VI\": \"Virgin Islands, U.S.\",\n \"VN\": \"Vietnam\",\n \"VU\": \"Vanuatu\",\n \"WF\": \"Wallis and Futuna\",\n \"WS\": \"Samoa\",\n \"XK\": \"Kosovo\",\n \"YE\": \"Yemen\",\n \"YT\": \"Mayotte\",\n \"ZA\": \"South Africa\",\n \"ZM\": \"Zambia\",\n \"ZW\": \"Zimbabwe\",\n \"ZZ\": \"International\"\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.js'\r\nimport close_braces from './closeBraces.js'\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}","import { count_occurences } from './helpers.js'\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","export function isReadOnly(element)\r\n{\r\n\treturn element.hasAttribute('readonly')\r\n}\r\n\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.js'\r\nimport parse from './parse.js'\r\nimport format from './format.js'\r\n\r\nimport\r\n{\r\n\tisReadOnly,\r\n\tgetOperation,\r\n\tgetSelection,\r\n\tgetCaretPosition,\r\n\tsetCaretPosition\r\n}\r\nfrom './dom.js'\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\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\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\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\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\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\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, context)` function\r\n// and appending the result (if it's not `undefined`) to `value`.\r\n//\r\n// `context` argument is just a utility empty object that is shared within the bounds\r\n// of parsing a single input string. The `_parse()` function could use that object\r\n// to store any kind of \"flags\" in it in order to alter its behavior based when\r\n// parsing next characters within the same string. Or it could completely ignore it.\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\tconst context = {}\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, context)\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}","import template_formatter from './templateFormatter.js'\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}","// 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.js'\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\t// If `onKeyDown()` handler above has called `event.preventDefault()`\r\n\t\t// then ignore this `keydown` event.\r\n\t\tif (event.defaultPrevented) {\r\n\t\t\treturn\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}","// This \"state\" object simply holds the state of the \"AsYouType\" parser:\r\n//\r\n// * `country?: string`\r\n// * `callingCode?: string`\r\n// * `digits: string`\r\n// * `international: boolean`\r\n// * `missingPlus: boolean`\r\n// * `IDDPrefix?: string`\r\n// * `carrierCode?: string`\r\n// * `nationalPrefix?: string`\r\n// * `nationalSignificantNumber?: string`\r\n// * `nationalSignificantNumberMatchesInput: boolean`\r\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\r\n//\r\n// `state.country` and `state.callingCode` aren't required to be in sync.\r\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n// So `state.country` and `state.callingCode` are totally independent.\r\n//\r\nexport 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({ country, callingCode }) {\r\n\t\tthis.international = false\r\n\t\tthis.missingPlus = false\r\n\t\tthis.IDDPrefix = undefined\r\n\t\tthis.callingCode = undefined\r\n\t\tthis.digits = ''\r\n\t\tthis.resetNationalSignificantNumber()\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\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\tthis.onCallingCodeChange(callingCode, this.country)\r\n\t}\r\n\r\n\tstartInternationalNumber(country, callingCode) {\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(country, callingCode)\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.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\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}","export default class PatternParser {\r\n\tparse(pattern) {\r\n\t\tthis.context = [{\r\n\t\t\tor: true,\r\n\t\t\tinstructions: []\r\n\t\t}]\r\n\r\n\t\tthis.parsePattern(pattern)\r\n\r\n\t\tif (this.context.length !== 1) {\r\n\t\t\tthrow new Error('Non-finalized contexts left when pattern parse ended')\r\n\t\t}\r\n\r\n\t\tconst { branches, instructions } = this.context[0]\r\n\r\n\t\tif (branches) {\r\n\t\t\treturn {\r\n\t\t\t\top: '|',\r\n\t\t\t\targs: branches.concat([\r\n\t\t\t\t\texpandSingleElementArray(instructions)\r\n\t\t\t\t])\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* istanbul ignore if */\r\n\t\tif (instructions.length === 0) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tif (instructions.length === 1) {\r\n\t\t\treturn instructions[0]\r\n\t\t}\r\n\r\n\t\treturn instructions\r\n\t}\r\n\r\n\tstartContext(context) {\r\n\t\tthis.context.push(context)\r\n\t}\r\n\r\n\tendContext() {\r\n\t\tthis.context.pop()\r\n\t}\r\n\r\n\tgetContext() {\r\n\t\treturn this.context[this.context.length - 1]\r\n\t}\r\n\r\n\tparsePattern(pattern) {\r\n\t\tif (!pattern) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tconst match = pattern.match(OPERATOR)\r\n\t\tif (!match) {\r\n\t\t\tif (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\r\n\t\t\t\tthrow new Error(`Illegal characters found in a pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tthis.getContext().instructions = this.getContext().instructions.concat(\r\n\t\t\t\tpattern.split('')\r\n\t\t\t)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst operator = match[1]\r\n\t\tconst before = pattern.slice(0, match.index)\r\n\t\tconst rightPart = pattern.slice(match.index + operator.length)\r\n\r\n\t\tswitch (operator) {\r\n\t\t\tcase '(?:':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\tor: true,\r\n\t\t\t\t\tinstructions: [],\r\n\t\t\t\t\tbranches: []\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ')':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\")\" operator must be preceded by \"(?:\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.getContext().instructions.length === 0) {\r\n\t\t\t\t\tthrow new Error('No instructions found after \"|\" operator in an \"or\" group')\r\n\t\t\t\t}\r\n\t\t\t\tconst { branches } = this.getContext()\r\n\t\t\t\tbranches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '|',\r\n\t\t\t\t\targs: branches\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '|':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\"|\" operator can only be used inside \"or\" groups')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\t// The top-level is an implicit \"or\" group, if required.\r\n\t\t\t\tif (!this.getContext().branches) {\r\n\t\t\t\t\t// `branches` are not defined only for the root implicit \"or\" operator.\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (this.context.length === 1) {\r\n\t\t\t\t\t\tthis.getContext().branches = []\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('\"branches\" not found in an \"or\" group context')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.getContext().branches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.getContext().instructions = []\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '[':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\toneOfSet: true\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ']':\r\n\t\t\t\tif (!this.getContext().oneOfSet) {\r\n\t\t\t\t\tthrow new Error('\"]\" operator must be preceded by \"[\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '[]',\r\n\t\t\t\t\targs: parseOneOfSet(before)\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unknown operator: ${operator}`)\r\n\t\t}\r\n\r\n\t\tif (rightPart) {\r\n\t\t\tthis.parsePattern(rightPart)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parseOneOfSet(pattern) {\r\n\tconst values = []\r\n\tlet i = 0\r\n\twhile (i < pattern.length) {\r\n\t\tif (pattern[i] === '-') {\r\n\t\t\tif (i === 0 || i === pattern.length - 1) {\r\n\t\t\t\tthrow new Error(`Couldn't parse a one-of set pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tconst prevValue = pattern[i - 1].charCodeAt(0) + 1\r\n\t\t\tconst nextValue = pattern[i + 1].charCodeAt(0) - 1\r\n\t\t\tlet value = prevValue\r\n\t\t\twhile (value <= nextValue) {\r\n\t\t\t\tvalues.push(String.fromCharCode(value))\r\n\t\t\t\tvalue++\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalues.push(pattern[i])\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn values\r\n}\r\n\r\nconst ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/\r\n\r\nconst OPERATOR = new RegExp(\r\n\t// any of:\r\n\t'(' +\r\n\t\t// or operator\r\n\t\t'\\\\|' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group start\r\n\t\t'\\\\(\\\\?\\\\:' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group end\r\n\t\t'\\\\)' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set start\r\n\t\t'\\\\[' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set end\r\n\t\t'\\\\]' +\r\n\t')'\r\n)\r\n\r\nfunction expandSingleElementArray(array) {\r\n\tif (array.length === 1) {\r\n\t\treturn array[0]\r\n\t}\r\n\treturn array\r\n}","import PatternParser from './AsYouTypeFormatter.PatternParser.js'\r\n\r\nexport default class PatternMatcher {\r\n\tconstructor(pattern) {\r\n\t\tthis.matchTree = new PatternParser().parse(pattern)\r\n\t}\r\n\r\n\tmatch(string, { allowOverflow } = {}) {\r\n\t\tif (!string) {\r\n\t\t\tthrow new Error('String is required')\r\n\t\t}\r\n\t\tconst result = match(string.split(''), this.matchTree, true)\r\n\t\tif (result && result.match) {\r\n\t\t\tdelete result.matchedChars\r\n\t\t}\r\n\t\tif (result && result.overflow) {\r\n\t\t\tif (!allowOverflow) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\r\nfunction match(characters, tree, last) {\r\n\t// If `tree` is a string, then `tree` is a single character.\r\n\t// That's because when a pattern is parsed, multi-character-string parts\r\n\t// of a pattern are compiled into arrays of single characters.\r\n\t// I still wrote this piece of code for a \"general\" hypothetical case\r\n\t// when `tree` could be a string of several characters, even though\r\n\t// such case is not possible with the current implementation.\r\n\tif (typeof tree === 'string') {\r\n\t\tconst characterString = characters.join('')\r\n\t\tif (tree.indexOf(characterString) === 0) {\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (characters.length === tree.length) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmatch: true,\r\n\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn {\r\n\t\t\t\tpartialMatch: true,\r\n\t\t\t\t// matchedChars: characters\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (characterString.indexOf(tree) === 0) {\r\n\t\t\tif (last) {\r\n\t\t\t\t// The `else` path is not possible because `tree` is always a single character.\r\n\t\t\t\t// The `else` case for `characters.length > tree.length` would be\r\n\t\t\t\t// `characters.length <= tree.length` which means `characters.length <= 1`.\r\n\t\t\t\t// `characters` array can't be empty, so that means `characters === [tree]`,\r\n\t\t\t\t// which would also mean `tree.indexOf(characterString) === 0` and that'd mean\r\n\t\t\t\t// that the `if (tree.indexOf(characterString) === 0)` condition before this\r\n\t\t\t\t// `if` condition would be entered, and returned from there, not reaching this code.\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (characters.length > tree.length) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tmatch: true,\r\n\t\t\t\tmatchedChars: characters.slice(0, tree.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\r\n\tif (Array.isArray(tree)) {\r\n\t\tlet restCharacters = characters.slice()\r\n\t\tlet i = 0\r\n\t\twhile (i < tree.length) {\r\n\t\t\tconst subtree = tree[i]\r\n\t\t\tconst result = match(restCharacters, subtree, last && (i === tree.length - 1))\r\n\t\t\tif (!result) {\r\n\t\t\t\treturn\r\n\t\t\t} else if (result.overflow) {\r\n\t\t\t\treturn result\r\n\t\t\t} else if (result.match) {\r\n\t\t\t\t// Continue with the next subtree with the rest of the characters.\r\n\t\t\t\trestCharacters = restCharacters.slice(result.matchedChars.length)\r\n\t\t\t\tif (restCharacters.length === 0) {\r\n\t\t\t\t\tif (i === tree.length - 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ti++\r\n\t\t}\r\n\t\t// If `last` then overflow has already been checked\r\n\t\t// by the last element of the `tree` array.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (last) {\r\n\t\t\treturn {\r\n\t\t\t\toverflow: true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tmatch: true,\r\n\t\t\tmatchedChars: characters.slice(0, characters.length - restCharacters.length)\r\n\t\t}\r\n\t}\r\n\r\n\tswitch (tree.op) {\r\n\t\tcase '|':\r\n\t\t\tlet partialMatch\r\n\t\t\tfor (const branch of tree.args) {\r\n\t\t\t\tconst result = match(characters, branch, last)\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tif (result.overflow) {\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t} else if (result.match) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: result.matchedChars\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\t\t\tpartialMatch = true\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\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\tif (partialMatch) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t// matchedChars: ...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Not even a partial match.\r\n\t\t\treturn\r\n\r\n\t\tcase '[]':\r\n\t\t\tfor (const char of tree.args) {\r\n\t\t\t\tif (characters[0] === char) {\r\n\t\t\t\t\tif (characters.length === 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (last) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\tmatchedChars: [char]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// No character matches.\r\n\t\t\treturn\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unsupported instruction tree: ${tree}`)\r\n\t}\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.js'\r\n\r\nimport formatCompleteNumber, {\r\n\tcanFormatCompleteNumber\r\n} from './AsYouTypeFormatter.complete.js'\r\n\r\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js'\r\n\r\nimport parseDigits from './helpers/parseDigits.js'\r\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js'\r\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js'\r\nimport { VALID_PUNCTUATION } from './constants.js'\r\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'\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'[' + VALID_PUNCTUATION + ']*' +\r\n\t// Google developers say:\r\n\t// \"We require that the first matching group is present in the\r\n\t// output pattern to ensure no data is lost while formatting.\"\r\n\t'\\\\$1' +\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\t/**\r\n\t * Formats an updated phone number.\r\n\t * @param {string} nextDigits — Additional phone number digits.\r\n\t * @param {object} state — `AsYouType` state.\r\n\t * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n\t */\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: (format) => this.getSeparatorAfterNationalPrefix(format)\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\r\n\t\t// Choose a format from the list of matching ones.\r\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\r\n\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\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\t// The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\r\n\t\tif (leadingDigitsPatternsCount === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\t// Start narrowing down the list of possible formats based on the leading digits.\r\n\t\t// (only previously matched formats take part in the narrowing down process)\r\n\r\n\t\t// `leading_digits_patterns` start with 3 digits min\r\n\t\t// and then go up from there one digit at a time.\r\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\r\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\r\n\r\n\t\t// Google imposes a requirement on the leading digits\r\n\t\t// to be minimum 3 digits long in order to be eligible\r\n\t\t// for checking those with a leading digits pattern.\r\n\t\t//\r\n\t\t// Since `leading_digits_patterns` start with 3 digits min,\r\n\t\t// Google's original `libphonenumber` library only starts\r\n\t\t// 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//\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\t//\r\n\t\t// Also, `leading_digits_patterns` doesn't always correspond to a single\r\n\t\t// digits count. For example, `60|8` pattern would already match `8`\r\n\t\t// but the `60` part would require having at least two leading digits,\r\n\t\t// so the whole pattern would require inputting two digits first in order to\r\n\t\t// decide on whether it matches the input, even when the input is \"80\".\r\n\t\t//\r\n\t\t// This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\r\n\t\t// even when there's only 1 or 2 digits of the national (significant) number.\r\n\t\t// To do that, it uses a non-strict pattern matcher written specifically for that.\r\n\t\t//\r\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\r\n\t\t\t// Before leading digits < 3 matching was implemented:\r\n\t\t\t// return true\r\n\t\t\t//\r\n\t\t\t// After leading digits < 3 matching was implemented:\r\n\t\t\ttry {\r\n\t\t\t\treturn new PatternMatcher(leadingDigitsPattern).match(leadingDigits, { allowOverflow: true }) !== undefined\r\n\t\t\t} catch (error) /* istanbul ignore next */ {\r\n\t\t\t\t// There's a slight possibility that there could be some undiscovered bug\r\n\t\t\t\t// in the pattern matcher code. Since the \"leading digits < 3 matching\"\r\n\t\t\t\t// feature is not \"essential\" for operation, it can fall back to the old way\r\n\t\t\t\t// in case of any issues rather than halting the application's execution.\r\n\t\t\t\tconsole.error(error)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\r\n\t\t// available then use the usual regular expression matching.\r\n\t\t//\r\n\t\t// The whole pattern is wrapped in round brackets (`()`) because\r\n\t\t// the pattern can use \"or\" operator (`|`) at the top level of the pattern.\r\n\t\t//\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\t//\r\n\t\t// For some weird reason, `istanbul` says \"else path not taken\"\r\n\t\t// for the `for of` line below. Supposedly that means that\r\n\t\t// the loop doesn't ever go over the last element in the list.\r\n\t\t// That's true because there always is `this.chosenFormat`\r\n\t\t// when `this.matchingFormats` is non-empty.\r\n\t\t// And, for some weird reason, it doesn't think that the case\r\n\t\t// with empty `this.matchingFormats` qualifies for a valid \"else\" path.\r\n\t\t// So simply muting this `istanbul` warning.\r\n\t\t// It doesn't skip the contents of the `for of` loop,\r\n\t\t// it just skips the `for of` line.\r\n\t\t//\r\n\t\t/* istanbul ignore next */\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.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from './constants.js'\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(\r\n\t\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t\t)\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\t(stateUpdate) => state.update(stateUpdate)\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\t\tcountry: undefined,\r\n\t\t\t\tcallingCode: undefined\r\n\t\t\t})\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\t\tcountry: state.country,\r\n\t\t\t\t\tcallingCode: newCallingCode\r\n\t\t\t\t})\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, { country, callingCode }) {\r\n\t\tstate.startInternationalNumber(country, callingCode)\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(\r\n\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t)\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.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport AsYouTypeState from './AsYouTypeState.js'\r\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js'\r\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js'\r\nimport isObject from './helpers/isObject.js'\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\t// `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\r\n\t\t// For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\r\n\t\t// So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\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 (isObject(optionsOrDefaultCountry)) {\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: (callingCode, country) => {\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({\r\n\t\t\tcountry: this.defaultCountry,\r\n\t\t\tcallingCode: this.defaultCallingCode\r\n\t\t})\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 \"calling code\" part of the phone number when it's being input\r\n\t * in an international format.\r\n\t * If no valid calling code has been entered so far, returns `undefined`.\r\n\t * @return {string} [callingCode]\r\n\t */\r\n\tgetCallingCode() {\r\n\t\t // If the number is being input in national format and some \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then `this.state.callingCode`\r\n\t\t // is equal to that \"default calling code\".\r\n\t\t //\r\n\t\t // If the number is being input in national format and no \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then returns `undefined`,\r\n\t\t // even if a \"default country\" has been passed to `AsYouType` constructor.\r\n\t\t //\r\n\t\tif (this.isInternational()) {\r\n\t\t\treturn this.state.callingCode\r\n\t\t}\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 } = this.state\r\n\t\t// Return `undefined` if no digits have been input yet.\r\n\t\tif (digits) {\r\n\t\t\treturn this._getCountry()\r\n\t\t}\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 * @return {string} [country]\r\n\t */\r\n\t_getCountry() {\r\n\t\tconst { country } = this.state\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 (country === '001') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn country\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\t{\r\n\t\t\t\tnationalNumber: this.state.nationalSignificantNumber,\r\n\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\tmetadata: this.metadata\r\n\t\t\t}\r\n\t\t))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a E.164 phone number value for the user's input.\r\n\t *\r\n\t * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n\t * it will return `\"+12223334444\"`.\r\n\t *\r\n\t * For international phone number input, it will also auto-correct\r\n\t * some minor errors such as using a national prefix when writing\r\n\t * an international phone number. For example, if the user inputs\r\n\t * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n\t * `\"+447400000000\"` phone number value.\r\n\t *\r\n\t * Will return `undefined` if no digits have been input,\r\n\t * or when inputting a phone number in national format and no\r\n\t * default country or default \"country calling code\" have been set.\r\n\t *\r\n\t * @return {string} [value]\r\n\t */\r\n\tgetNumberValue() {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tcallingCode,\r\n\t\t\tcountry,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = this.state\r\n\r\n\t \t// Will return `undefined` if no digits have been input.\r\n\t\tif (!digits) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.isInternational()) {\r\n\t\t\tif (callingCode) {\r\n\t\t\t\treturn '+' + callingCode + nationalSignificantNumber\r\n\t\t\t} else {\r\n\t\t\t\treturn '+' + digits\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst callingCode_ = country ? this.metadata.countryCallingCode() : callingCode\r\n\t\t\t\treturn '+' + callingCode_ + nationalSignificantNumber\r\n\t\t\t}\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\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcarrierCode,\r\n\t\t\tcallingCode\r\n\t\t} = this.state\r\n\r\n\t\t// `this._getCountry()` is basically same as `this.state.country`\r\n\t\t// with the only change that it return `undefined` in case of a\r\n\t\t// \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\r\n\t\tlet country = this._getCountry()\r\n\r\n\t\tif (!nationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t// For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\r\n\t\t// So `country` and `callingCode` are totally independent.\r\n\r\n\t\tif (!country && !callingCode) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// By default, if `defaultCountry` parameter was passed when\r\n\t\t// creating `AsYouType` instance, `state.country` is gonna be\r\n\t\t// that `defaultCountry`, which doesn't entirely conform with\r\n\t\t// `parsePhoneNumber()`'s behavior where it attempts to determine\r\n\t\t// the country more precisely in cases when multiple countries\r\n\t\t// could correspond to the same `countryCallingCode`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\r\n\t\t//\r\n\t\t// Because `AsYouType.getNumber()` method is supposed to be a 1:1\r\n\t\t// equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\r\n\t\t// then it should also behave accordingly in cases of `country` ambiguity.\r\n\t\t// That's how users of this library would expect it to behave anyway.\r\n\t\t//\r\n\t\tif (country) {\r\n\t\t\tif (country === this.defaultCountry) {\r\n\t\t\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t\t\t// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n\t\t\t\t// So `state.country` and `state.callingCode` are totally independent.\r\n\t\t\t\tconst metadata = new Metadata(this.metadata.metadata)\r\n\t\t\t\tmetadata.selectNumberingPlan(country)\r\n\t\t\t\tconst callingCode = metadata.numberingPlan.callingCode()\r\n\t\t\t\tconst ambiguousCountries = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\t\t\tif (ambiguousCountries.length > 1) {\r\n\t\t\t\t\tconst exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\r\n\t\t\t\t\t\tcountries: ambiguousCountries,\r\n\t\t\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\t\t\tmetadata: this.metadata.metadata\r\n\t\t\t\t\t})\r\n\t\t\t\t\tif (exactCountry) {\r\n\t\t\t\t\t\tcountry = exactCountry\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\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountry || 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 { parsePhoneNumberCharacter } from 'libphonenumber-js/core'\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?} context - An optional object that could be used by this function to set arbitrary \"flags\". The object should be shared within the parsing of the whole string.\r\n * @return {string?} The parsed character.\r\n */\r\nexport default function parsePhoneNumberCharacter_(character, prevParsedCharacters, context) {\r\n\t// `context` argument was added as a third argument of `parse()` function\r\n\t// in `input-format` package on Dec 26th, 2023. So it could potentially be\r\n\t// `undefined` here if a 3rd-party app somehow ends up with this newer version\r\n\t// of `react-phone-number-input` and an older version of `input-format`.\r\n\t// Dunno how, but just in case, it could be `undefined` here and it wouldn't break.\r\n\t// Maybe it's not required to handle `undefined` case here.\r\n\t//\r\n\t// The addition of the `context` argument was to fix the slightly-weird behavior\r\n\t// of parsing an input string when the user inputs something like `\"2+7\"\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\r\n\t//\r\n\t// If the parser encounters an unexpected `+` in a string being parsed\r\n\t// then it simply discards that out-of-place `+` and any following characters.\r\n\t//\r\n\tif (context && context.ignoreRest) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst emitEvent = (eventName) => {\r\n\t\tif (context) {\r\n\t\t\tswitch (eventName) {\r\n\t\t\t\tcase 'end':\r\n\t\t\t\t\tcontext.ignoreRest = true\r\n\t\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent)\r\n}","import { useCallback } from 'react'\r\n\r\n// Returns a custom `onKeyDown` handler that works around a Backspace keypress edge case:\r\n// * ``\r\n// * When placing the caret before the leading plus character and pressing Backspace,\r\n// it duplicates the country calling code in the ``.\r\n// https://github.com/catamphetamine/react-phone-number-input/issues/442\r\nexport default function useInputKeyDownHandler({\r\n\tonKeyDown,\r\n\tinternational\r\n}) {\r\n\treturn useCallback((event) => {\r\n\t\tif (event.keyCode === BACKSPACE_KEY_CODE && international) {\r\n\t\t\t// It checks `event.target` here for being an `` element\r\n\t\t\t// because \"keydown\" events may bubble from arbitrary child elements\r\n\t\t\t// so there's no guarantee that `event.target` represents an `` element.\r\n\t\t\t// Also, since `inputComponent` is not neceesarily an ``, this check is required too.\r\n\t\t\tif (event.target instanceof HTMLInputElement) {\r\n\t\t\t\tif (getCaretPosition(event.target) === AFTER_LEADING_PLUS_CARET_POSITION) {\r\n\t\t\t\t\tevent.preventDefault()\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (onKeyDown) {\r\n\t\t\tonKeyDown(event)\r\n\t\t}\r\n\t}, [\r\n\t\tonKeyDown,\r\n\t\tinternational\r\n\t])\r\n}\r\n\r\nconst BACKSPACE_KEY_CODE = 8\r\n\r\n// Gets the caret position in an `` field.\r\n// The caret position starts with `0` which means \"before the first character\".\r\nfunction getCaretPosition(element) {\r\n\treturn element.selectionStart\r\n}\r\n\r\nconst AFTER_LEADING_PLUS_CARET_POSITION = '+'.length","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Input from 'input-format/react'\r\nimport { AsYouType } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix.js'\r\nimport parsePhoneNumberCharacter from './helpers/parsePhoneNumberCharacter.js'\r\n\r\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js'\r\n\r\nexport function createInput(defaultMetadata)\r\n{\r\n\t/**\r\n\t * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n\t * that can be passed to ``. It parses and formats\r\n\t * the user's and maintains the caret's position in the process.\r\n\t * The caret positioning is maintained using `input-format` library.\r\n\t * Relies on being run in a DOM environment for calling caret positioning functions.\r\n\t */\r\n\tfunction InputSmart({\r\n\t\tonKeyDown,\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata = defaultMetadata,\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\r\n\t\tconst _onKeyDown = useInputKeyDownHandler({\r\n\t\t\tonKeyDown,\r\n\t\t\tinternational\r\n\t\t})\r\n\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 * 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 * A function of `value: string`.\r\n\t\t * Updates the `value` property.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `event: Event`.\r\n\t\t * Handles `keydown` events.\r\n\t\t */\r\n\t\tonKeyDown: PropTypes.func,\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\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.js'\r\n\r\nimport useInputKeyDownHandler from './useInputKeyDownHandler.js'\r\n\r\nexport function createInput(defaultMetadata) {\r\n\t/**\r\n\t * `InputBasic` is the most basic implementation of a `Component`\r\n\t * that can be passed to ``. It parses and formats\r\n\t * the user's input but doesn't control the caret in the process:\r\n\t * when erasing or inserting digits in the middle of a phone number\r\n\t * the caret usually jumps to the end (this is the expected behavior).\r\n\t * Why does `InputBasic` exist when there's `InputSmart`?\r\n\t * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n\t * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n\t * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n\t */\r\n\tfunction InputBasic({\r\n\t\tvalue,\r\n\t\tonChange,\r\n\t\tonKeyDown,\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata = defaultMetadata,\r\n\t\tinputComponent: Input = '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//\r\n\t\t\t// This issue is worked around with this simple hack:\r\n\t\t\t// when \"old\" and \"new\" parsed values are the same,\r\n\t\t\t// it checks if the \"new\" formatted value could be obtained\r\n\t\t\t// from the \"old\" formatted value by erasing some (or no) characters at the right side.\r\n\t\t\t// If it could then it's likely that the user has hit a Backspace key\r\n\t\t\t// and what they really intended was to erase a rightmost digit rather than\r\n\t\t\t// a rightmost punctuation character.\r\n\t\t\t//\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}, [\r\n\t\t\tprefix,\r\n\t\t\tvalue,\r\n\t\t\tonChange,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t])\r\n\r\n\t\tconst _onKeyDown = useInputKeyDownHandler({\r\n\t\t\tonKeyDown,\r\n\t\t\tinternational\r\n\t\t})\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 * A function of `value: string`.\r\n\t\t * Updates the `value` property.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `event: Event`.\r\n\t\t * Handles `keydown` events.\r\n\t\t */\r\n\t\tonKeyDown: PropTypes.func,\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,\r\n\r\n\t\t/**\r\n\t\t * The `` component.\r\n\t\t */\r\n\t\tinputComponent: PropTypes.elementType\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.js'\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|object} [optionsOrDefaultCountry] - A two-letter (\"ISO 3166-1 alpha-2\") country code, or an object of shape `{ defaultCountry?: string, defaultCallingCode?: string }`.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\r\nexport default function formatIncompletePhoneNumber(value, optionsOrDefaultCountry, metadata) {\r\n\tif (!metadata) {\r\n\t\tmetadata = optionsOrDefaultCountry\r\n\t\toptionsOrDefaultCountry = undefined\r\n\t}\r\n\treturn new AsYouType(optionsOrDefaultCountry, metadata).input(value)\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\tdisabled,\r\n\treadOnly,\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 * A function of `value: string`.\r\n\t * Updates the `value` property.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// ``.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/419#issuecomment-1764384480\r\n\t// https://www.delftstack.com/howto/html/html-select-readonly/\r\n\t// To work around that, if `readOnly: true` property is passed\r\n\t// to this component, it behaves analogous to `disabled: true`.\r\n\tdisabled: PropTypes.bool,\r\n\treadOnly: PropTypes.bool\r\n}\r\n\r\nconst DIVIDER_STYLE = {\r\n\tfontSize: '1px',\r\n\tbackgroundColor: 'currentColor',\r\n\tcolor: 'inherit'\r\n}\r\n\r\nexport function CountrySelectWithIcon({\r\n\tvalue,\r\n\toptions,\r\n\tclassName,\r\n\ticonComponent: Icon,\r\n\tgetIconAspectRatio,\r\n\tarrowComponent: Arrow = DefaultArrowComponent,\r\n\tunicodeFlags,\r\n\t...rest\r\n}) {\r\n\tconst selectedOption = useMemo(() => {\r\n\t\treturn getSelectedOption(options, value)\r\n\t}, [options, value])\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\r\n\t\t\t{/* Either a Unicode flag icon. */}\r\n\t\t\t{(unicodeFlags && value) &&\r\n\t\t\t\t
\r\n\t\t\t\t\t{getUnicodeFlagIcon(value)}\r\n\t\t\t\t
\r\n\t\t\t}\r\n\r\n\t\t\t{/* Or an SVG flag icon. */}\r\n\t\t\t{!(unicodeFlags && value) &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nCountrySelectWithIcon.propTypes = {\r\n\t// Country flag component.\r\n\ticonComponent: PropTypes.elementType,\r\n\r\n\t// Select arrow component.\r\n\tarrowComponent: PropTypes.elementType,\r\n\r\n\t// Set to `true` to render Unicode flag icons instead of SVG images.\r\n\tunicodeFlags: PropTypes.bool\r\n}\r\n\r\nfunction DefaultArrowComponent() {\r\n\treturn
\r\n}\r\n\r\nfunction getSelectedOption(options, value) {\r\n\tfor (const option of options) {\r\n\t\tif (!option.divider && option.value === value) {\r\n\t\t\treturn option\r\n\t\t}\r\n\t}\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","// Ignores weird istanbul error: \"else path not taken\".\r\nimport { 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 Metadata from './metadata.js'\r\n\r\nexport default function getCountries(metadata) {\r\n\treturn new Metadata(metadata).getCountries()\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport DefaultInternationalIcon from './InternationalIcon.js'\r\nimport Flag from './Flag.js'\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\t...rest\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 { useRef, useCallback } from 'react'\r\n\r\n/**\r\n * This hook creates an internal copy of a `ref`\r\n * and returns a new `ref`-alike setter function\r\n * that updates both `ref` and the internal copy of it.\r\n * That `ref`-alike setter function could then be passed\r\n * to child elements instead of the original `ref`.\r\n *\r\n * The internal copy of the `ref` can then be used to\r\n * call instance methods like `.focus()`, etc.\r\n *\r\n * One may ask: why create a copy of `ref` for \"internal\" use\r\n * when the code could use the original `ref` for that.\r\n * The answer is: the code would have to dance around the original `ref` anyway\r\n * to figure out whether it exists and to find out the internal implementation of it\r\n * in order to read its value correctly. This hook encapsulates all that \"boilerplate\" code.\r\n * The returned copy of the `ref` is guaranteed to exist and functions as a proper ref \"object\".\r\n * The returned `ref`-alike setter function must be used instead of the original `ref`\r\n * when passing it to child elements.\r\n *\r\n * @param {(object|function)} [externalRef] — The original `ref` that may have any internal implementation and might not even exist.\r\n * @return {any[]} Returns an array of two elements: a copy of the `ref` for \"internal\" use and a `ref`-alike setter function that should be used in-place of the original `ref` when passing it to child elements.\r\n */\r\nexport default function useExternalRef(externalRef) {\r\n // Create a copy of the original `ref` (which might not exist).\r\n // Both refs will point to the same value.\r\n const refCopy = useRef()\r\n\r\n // Updates both `ref`s with the same `value`.\r\n const refSetter = useCallback((value) => {\r\n setRefsValue([externalRef, refCopy], value)\r\n }, [\r\n externalRef,\r\n refCopy\r\n ])\r\n\r\n return [refCopy, refSetter]\r\n}\r\n\r\n// Sets the same `value` of all `ref`s.\r\n// Some of the `ref`s may not exist in which case they'll be skipped.\r\nexport function setRefsValue(refs, value) {\r\n for (const ref of refs) {\r\n if (ref) {\r\n setRefValue(ref, value)\r\n }\r\n }\r\n}\r\n\r\n// Sets the value of a `ref`.\r\n// Before React Hooks were introduced, `ref`s used to be functions.\r\n// After React Hooks were introduces, `ref`s became objects with `.current` property.\r\n// This function sets a `ref`'s value regardless of its internal implementation,\r\n// so it supports both types of `ref`s.\r\nfunction setRefValue(ref, value) {\r\n if (typeof ref === 'function') {\r\n ref(value)\r\n } else {\r\n ref.current = value\r\n }\r\n}","import {\r\n\tgetCountryCallingCode,\r\n\tMetadata\r\n} from 'libphonenumber-js/core'\r\n\r\nconst ONLY_DIGITS_REGEXP = /^\\d+$/\r\n\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\r\n\t// \"Leading digits\" can't be used to rule out any countries.\r\n\t// So the \"pre-fill with leading digits on country selection\" feature had to be reverted.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10#note_1231042367\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\t// // https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/10\r\n\t// metadata = new Metadata(metadata)\r\n\t// metadata.selectNumberingPlan(country)\r\n\t// // \"Leading digits\" patterns are only defined for about 20% of all countries.\r\n\t// // By definition, matching \"leading digits\" is a sufficient but not a necessary\r\n\t// // condition for a phone number to belong to a country.\r\n\t// // The point of \"leading digits\" check is that it's the fastest one to get a match.\r\n\t// // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t// const leadingDigits = metadata.numberingPlan.leadingDigits()\r\n\t// if (leadingDigits && ONLY_DIGITS_REGEXP.test(leadingDigits)) {\r\n\t// \tprefix += leadingDigits\r\n\t// }\r\n\r\n\treturn prefix\r\n}","import parsePhoneNumber_, {\r\n\tgetCountryCallingCode,\r\n\tAsYouType,\r\n\tMetadata\r\n} from 'libphonenumber-js/core'\r\n\r\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js'\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\tif (prevCountry === newCountry) {\r\n\t\treturn phoneDigits\r\n\t}\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\tif (newCountry) {\r\n\t\t\t\t// If `phoneDigits` is empty then set `phoneDigits` to\r\n\t\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\treturn getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t}\r\n\t\t\treturn ''\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\t//\r\n\t\t\t// Ignore the now-uncovered `|| ''` code branch:\r\n\t\t\t// previously `e164()` function could return an empty string\r\n\t\t\t// even when `phoneDigits` were not empty.\r\n\t\t\t// Now it always returns some `value` when there're any `phoneDigits`.\r\n\t\t\t// Still, didn't remove the `|| ''` code branch just in case\r\n\t\t\t// that logic changes somehow in some future, so there're no\r\n\t\t\t// possible bugs related to that.\r\n\t\t\t//\r\n\t\t\t// (ignore the `|| ''` code branch)\r\n\t\t\t/* istanbul ignore next */\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// Return a E.164 phone number.\r\n\t\t//\r\n\t\t// Could return `number` \"as is\" here, but there's a possibility\r\n\t\t// that some user might incorrectly input an international number\r\n\t\t// with a \"national prefix\". Such numbers aren't considered valid,\r\n\t\t// but `libphonenumber-js` is \"forgiving\" when it comes to parsing\r\n\t\t// user's input, and this input component follows that behavior.\r\n\t\t//\r\n\t\tconst asYouType = new AsYouType(country, metadata)\r\n\t\tasYouType.input(number)\r\n\t\t// This function would return `undefined` only when `number` is `\"+\"`,\r\n\t\t// but at this point it is known that `number` is not `\"+\"`.\r\n\t\treturn asYouType.getNumberValue()\r\n\t}\r\n\t// For non-international phone numbers\r\n\t// an accompanying country code is required.\r\n\t// The situation when `country` is `undefined`\r\n\t// and a non-international phone number is passed\r\n\t// to this function shouldn't happen.\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\tconst partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata)\r\n\t//\r\n\t// Even if no \"national (significant) number\" digits have been input,\r\n\t// still return a non-`undefined` value.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\r\n\t//\r\n\t// For example, if the user has selected country `US` and entered `\"1\"`\r\n\t// then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\r\n\t// digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\r\n\t// because otherwise the app would think that the input is empty and mark it as such\r\n\t// while in reality it isn't empty, which might be thought of as a \"bug\", or just\r\n\t// a \"weird\" behavior.\r\n\t//\r\n\t// if (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.selectNumberingPlan(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 {string?} defaultCountry — Default country.\r\n * @param {string?} latestCountrySelectedByUser — The latest country that has been manually selected by the user.\r\n * @param {boolean?} required — Whether \"International\" option could be selected, meaning \"no country is selected\".\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\tdefaultCountry,\r\n\tlatestCountrySelectedByUser,\r\n\trequired,\r\n\tmetadata\r\n}) {\r\n\t// `partialE164Number` is supposed to be an E.164 phone number.\r\n\r\n\t// `partialE164Number` is supposed to be non-empty when calling this function\r\n\t// so it doesn't check for `if (!partialE164Number)`.\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) {\r\n\t\tif (!countries || (countries.indexOf(derived_country) >= 0)) {\r\n\t\t\treturn derived_country\r\n\t\t} else {\r\n\t\t\treturn undefined\r\n\t\t}\r\n\t}\r\n\t// Otherwise, if the phone number doesn't correspond to any particular country.\r\n\t// If some country was previously selected.\r\n\telse if (country) {\r\n\t\t// If the international phone number entered could still correspond to the previously selected country\r\n\t\t// and also to some other country or countries corresponding to the same calling code\r\n\t\t// then it should reset the currently selected country to reflect the ambiguity.\r\n\t\tif (couldNumberBelongToCountry(partialE164Number, country, metadata)) {\r\n\t\t\t// Reset the country either to the latest one that was manually selected by the user\r\n\t\t\t// or to the default country or just reset the country selection.\r\n\t\t\tif (latestCountrySelectedByUser && couldNumberBelongToCountry(partialE164Number, latestCountrySelectedByUser, metadata)) {\r\n\t\t\t\treturn latestCountrySelectedByUser\r\n\t\t\t} else if (defaultCountry && couldNumberBelongToCountry(partialE164Number, defaultCountry, metadata)) {\r\n\t\t\t\treturn defaultCountry\r\n\t\t\t} else {\r\n\t\t\t\tif (!required) {\r\n\t\t\t\t\t// Just reset the currently selected country.\r\n\t\t\t\t\treturn undefined\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// If \"International\" country option has not been disabled\r\n\t\t\t// and the international phone number entered doesn't necessarily correspond to\r\n\t\t\t// the currently selected country and it could not possibly correspond to it\r\n\t\t\t// then reset the currently selected country.\r\n\t\t\tif (!required) {\r\n\t\t\t\treturn undefined\r\n\t\t\t}\r\n\t\t}\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 {string?} defaultCountry - Default country.\r\n * @param {string?} latestCountrySelectedByUser - The latest country that has been manually selected by the user.\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 `{ phoneDigits, country, value }`. `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`. The returned `phoneDigits` shouldn't be used anywhere except for passing it as `prevPhoneDigits` parameter to this same function on next input change event.\r\n */\r\nexport function onPhoneDigitsChange(phoneDigits, {\r\n\tprevPhoneDigits,\r\n\tcountry,\r\n\tdefaultCountry,\r\n\tlatestCountrySelectedByUser,\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\tif (country) {\r\n\t\t\t// For international phone numbers written with non-editable country calling code,\r\n\t\t\t// the `` value must always start with that non-editable country calling code.\r\n\t\t\tconst prefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\t\t\t// If the input value doesn't start with the non-editable country calling code,\r\n\t\t\t// it should be fixed.\r\n\t\t\tif (phoneDigits.indexOf(prefix) !== 0) {\r\n\t\t\t\tlet value\r\n\t\t\t\t// If a phone number input is declared as\r\n\t\t\t\t// `international: true` and `countryCallingCodeEditable: false`,\r\n\t\t\t\t// then the value of the `` is gonna be non-empty at all times,\r\n\t\t\t\t// even before the user has started to input any digits in the input field,\r\n\t\t\t\t// because the country calling code is always there by design.\r\n\t\t\t\t//\r\n\t\t\t\t// The fact that the input value is always non-empty results in a side effect:\r\n\t\t\t\t// whenever a user tabs into such input field, its value gets automatically selected.\r\n\t\t\t\t// If at that moment in time the user starts typing in the national digits of the phone number,\r\n\t\t\t\t// the selected `` value gets automatically replaced by those typed-in digits\r\n\t\t\t\t// so the value changes from `+xxx` to `y`, because inputting anything while having\r\n\t\t\t\t// the `` value selected results in erasing that `` value.\r\n\t\t\t\t//\r\n\t\t\t\t// This component handles such cases by restoring the `` value to what\r\n\t\t\t\t// it should be in such cases: `+xxxy`.\r\n\t\t\t\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\r\n\t\t\t\t//\r\n\t\t\t\tconst hasStartedTypingInNationalNumberDigitsHavingInputValueSelected = phoneDigits && phoneDigits[0] !== '+'\r\n\t\t\t\tif (hasStartedTypingInNationalNumberDigitsHavingInputValueSelected) {\r\n\t\t\t\t\t// Fix the input value to what it should be: `y` → `+xxxy`.\r\n\t\t\t\t\tphoneDigits = prefix + phoneDigits\r\n\t\t\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// In other cases, simply reset the `` value, because there're only two\r\n\t\t\t\t\t// possible cases:\r\n\t\t\t\t\t// * The user has selected the `` value and then hit Delete/Backspace to erase it.\r\n\t\t\t\t\t// * The user has pasted an international phone number for another country calling code,\r\n\t\t\t\t\t// which is considered a non-valid value.\r\n\t\t\t\t\tphoneDigits = prefix\r\n\t\t\t\t}\r\n\t\t\t\treturn {\r\n\t\t\t\t\tphoneDigits,\r\n\t\t\t\t\tvalue,\r\n\t\t\t\t\tcountry\r\n\t\t\t\t}\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\t// Selected a `country` and started inputting an\r\n\t\t\t\t// international phone number for this country\r\n\t\t\t\t// but hasn't input any \"national (significant) number\" digits yet.\r\n\t\t\t\t// In that case, assume `value` be `undefined`.\r\n\t\t\t\t//\r\n\t\t\t\t// For example, if selected `country` `\"US\"`\r\n\t\t\t\t// and started inputting phone number `\"+1\"`\r\n\t\t\t\t// then `value` `undefined` will be returned from this function.\r\n\t\t\t\t//\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else {\r\n\t\t\t\tvalue = e164(phoneDigits, country, metadata)\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\tdefaultCountry,\r\n\t\t\tlatestCountrySelectedByUser,\r\n\t\t\t// `countryRequired` flag is not passed here.\r\n\t\t\t// Instead, it's explicitly checked a bit later in the code.\r\n\t\t\trequired: false,\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\t// `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\r\n\t\t// The returned `phoneDigits` shouldn't be used anywhere except for passing it as\r\n\t\t// `prevPhoneDigits` parameter to this same function on next input change event.\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}\r\n\r\n// function doesIncompletePhoneNumberCorrespondToASingleCountry(value, metadata) {\r\n// \t// Create \"as you type\" formatter.\r\n// \tconst formatter = new AsYouType(undefined, metadata)\r\n// \t// Input partial national phone number.\r\n// \tformatter.input(value)\r\n// \t// Return the parsed partial national phone number.\r\n// \tconst phoneNumber = formatter.getNumber()\r\n// \tif (phoneNumber) {\r\n// \t\treturn phoneNumber.getPossibleCountries().length === 1\r\n// \t} else {\r\n// \t\treturn false\r\n// \t}\r\n// }","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber_ from './parsePhoneNumber_.js'\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","import {\r\n\tgetInitialPhoneDigits,\r\n\tgetCountryForPartialE164Number,\r\n\tparsePhoneNumber,\r\n\tcouldNumberBelongToCountry\r\n} from './phoneInputHelpers.js'\r\n\r\nimport getInternationalPhoneNumberPrefix from './getInternationalPhoneNumberPrefix.js'\r\n\r\nimport {\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries\r\n} from './countries.js'\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\tlatestCountrySelectedByUser\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\tlatestCountrySelectedByUser: undefined,\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 (!valuesAreEqual(newValue, prevValue) && !valuesAreEqual(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\r\n\t\t\t\t// In cases when multiple countries correspond to the same country calling code,\r\n\t\t\t\t// the phone number digits of `newValue` have to be matched against country-specific\r\n\t\t\t\t// regular expressions in order to determine the exact country.\r\n\t\t\t\t// Sometimes, that algorithm can't decide for sure which country does the phone number belong to,\r\n\t\t\t\t// for example when the digits of `newValue` don't match any of those regular expressions.\r\n\t\t\t\t// and the country of the phone number couldn't be determined.\r\n\t\t\t\t// In those cases, people prefer the component to show the flag of the `defaultCountry`\r\n\t\t\t\t// if the phone number could potentially belong to that `defaultCountry`.\r\n\t\t\t\t// At least that's how the component behaves when a user pastes an international\r\n\t\t\t\t// phone number into the input field: for example, when `defaultCountry` is `\"US\"`\r\n\t\t\t\t// and the user pastes value \"+1 555 555 5555\" into the input field, it keep showing \"US\" flag.\r\n\t\t\t\t// So when setting new `value` property externally, the component should behave the same way:\r\n\t\t\t\t// it should select the `defaultCountry` when the new `value` could potentially belong\r\n\t\t\t\t// to that country in cases when the exact country can't be determined.\r\n\t\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/413#issuecomment-1536219404\r\n\t\t\t\tif (!parsedCountry) {\r\n\t\t\t\t\tif (newDefaultCountry) {\r\n\t\t\t\t\t\tif (newValue.indexOf(getInternationalPhoneNumberPrefix(newDefaultCountry, metadata)) === 0) {\r\n\t\t\t\t\t\t\tparsedCountry = newDefaultCountry\r\n\t\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\r\n\t\tlet userCountrySelectionHistoryStateUpdate\r\n\t\tif (newValue) {\r\n\t\t\t// If the latest country that has been manually selected by the user\r\n\t\t\t// no longer corresponds to the new value then reset it.\r\n\t\t\tif (latestCountrySelectedByUser) {\r\n\t\t\t\tconst couldNewValueCorrespondToLatestCountrySelectedByUser =\r\n\t\t\t\t\tparsedCountry\r\n\t\t\t\t\t\t? latestCountrySelectedByUser === parsedCountry\r\n\t\t\t\t\t\t: couldNumberBelongToCountry(newValue, latestCountrySelectedByUser, metadata)\r\n\r\n\t\t\t\tif (couldNewValueCorrespondToLatestCountrySelectedByUser) {\r\n\t\t\t\t\tif (!parsedCountry) {\r\n\t\t\t\t\t\tparsedCountry = latestCountrySelectedByUser\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tuserCountrySelectionHistoryStateUpdate = {\r\n\t\t\t\t\t\tlatestCountrySelectedByUser: undefined\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// When the `value` property is being reset \"externally\",\r\n\t\t\t// reset any tracking of the country that the user has previously selected.\r\n\t\t\tuserCountrySelectionHistoryStateUpdate = {\r\n\t\t\t\tlatestCountrySelectedByUser: undefined,\r\n\t\t\t\thasUserSelectedACountry: undefined\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\t...userCountrySelectionHistoryStateUpdate,\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\r\nexport function valuesAreEqual(value1, value2) {\r\n\t// If `value` has been set to `null` externally then convert it to `undefined`.\r\n\t//\r\n\t// For example, `react-hook-form` sets `value` to `null` when the user clears the input.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/164\r\n\t// In that case, without this conversion of `null` to `undefined`, it would reset\r\n\t// the selected country to `defaultCountry` because in that case `newValue !== value`\r\n\t// because `null !== undefined`.\r\n\t//\r\n\t// Historically, empty `value` is encoded as `undefined`.\r\n\t// Perhaps empty `value` would be better encoded as `null` instead.\r\n\t// But because that would be a potentially breaking change for some people,\r\n\t// it's left as is for the current \"major\" version of this library.\r\n\t//\r\n\tif (value1 === null) {\r\n\t\tvalue1 = undefined\r\n\t}\r\n\tif (value2 === null) {\r\n\t\tvalue2 = undefined\r\n\t}\r\n\treturn value1 === value2\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport InputSmart from './InputSmart.js'\r\nimport InputBasic from './InputBasic.js'\r\n\r\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect.js'\r\n\r\nimport Flag from './Flag.js'\r\nimport InternationalIcon from './InternationalIcon.js'\r\n\r\nimport {\r\n\tsortCountryOptions,\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries,\r\n\tgetSupportedCountryOptions,\r\n\tgetCountries\r\n} from './helpers/countries.js'\r\n\r\nimport { createCountryIconComponent } from './CountryIcon.js'\r\n\r\nimport { setRefsValue } from './useExternalRef.js'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes.js'\r\n\r\nimport {\r\n\tgetPreSelectedCountry,\r\n\tgetCountrySelectOptions,\r\n\tcouldNumberBelongToCountry,\r\n\tparsePhoneNumber,\r\n\tgenerateNationalNumberDigits,\r\n\tgetPhoneDigitsForNewCountry,\r\n\tgetInitialPhoneDigits,\r\n\tonPhoneDigitsChange,\r\n\te164\r\n} from './helpers/phoneInputHelpers.js'\r\n\r\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js'\r\n\r\nclass PhoneNumberInput_ extends React.PureComponent {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\r\n\t\tthis.inputRef = React.createRef()\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\t// This function mimicks `refSetter` function returned from `useExternalRef()` hook\r\n\t// because this class-like React component can't use the `useExternalRef()` hook.\r\n\tsetInputRef = (instance) => {\r\n\t\tsetRefsValue([this.props.inputRef, this.inputRef], instance)\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 this.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\tuseMemoCountrySelectOptions(generator, dependencies) {\r\n\t\tif (\r\n\t\t\t!this.countrySelectOptionsMemoDependencies ||\r\n\t\t\t!areEqualArrays(dependencies, this.countrySelectOptionsMemoDependencies)\r\n\t\t) {\r\n\t\t\tthis.countrySelectOptionsMemo = generator()\r\n\t\t\tthis.countrySelectOptionsMemoDependencies = dependencies\r\n\t\t}\r\n\t\treturn this.countrySelectOptionsMemo\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\tlatestCountrySelectedByUser: 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\tlatestCountrySelectedByUser\r\n\t\t} = this.state\r\n\r\n\t\tconst {\r\n\t\t\t// `phoneDigits` returned here are a \"normalized\" version of the original `phoneDigits`.\r\n\t\t\t// The returned `phoneDigits` shouldn't be used anywhere except for passing it as\r\n\t\t\t// `prevPhoneDigits` parameter to the same `onPhoneDigitsChange()` function\r\n\t\t\t// on next input change event.\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\tlatestCountrySelectedByUser,\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\t// Reset `latestCountrySelectedByUser` if it no longer fits the `value`.\r\n\t\tif (latestCountrySelectedByUser && value && !couldNumberBelongToCountry(value, latestCountrySelectedByUser, metadata)) {\r\n\t\t\tstateUpdate.latestCountrySelectedByUser = undefined\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\treadOnly,\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\t * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * A function of `value: string?`.\r\n\t *\r\n\t * Updates the `value` property as the user inputs a phone number.\r\n\t *\r\n\t * If the user erases the input value, the argument is `undefined`.\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 * Set to `true` to mark both the phone number ``\r\n\t * and the country ``\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,\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,\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,\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,\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,\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 * 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,\r\n\r\n\t/**\r\n\t * Wrapping `
` component props.\r\n\t */\r\n\tcontainerComponentProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n\t * the caret position is moved right before the next available digit skipping\r\n\t * any punctuation in between. This is called \"smart\" caret positioning.\r\n\t * Another case would be the phone number format changing as a result of\r\n\t * the user inserting the digit somewhere in the middle, which would require\r\n\t * re-positioning the caret because all digit positions have changed.\r\n\t * This \"smart\" caret positioning feature can be turned off by passing\r\n\t * `smartCaret={false}` property: use it in case of any possible issues\r\n\t * with caret position during phone number input.\r\n\t */\r\n\t// Is `true` by default.\r\n\tsmartCaret: PropTypes.bool,\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,\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,\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,\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\r\n}\r\n\r\nconst 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 * Country `` option icon.\r\n\t */\r\n\tinternationalIcon: InternationalIcon,\r\n\r\n\t/**\r\n\t * Phone number `` 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 `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\nfunction withDefaultProps(props) {\r\n\tprops = { ...props }\r\n\r\n\tfor (const key in defaultProps) {\r\n\t\tif (props[key] === undefined) {\r\n\t\t\tprops[key] = defaultProps[key]\r\n\t\t}\r\n\t}\r\n\r\n\treturn props\r\n}\r\n\r\nexport default PhoneNumberInput\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}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport defaultLabels from '../locale/en.json.js'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes.js'\r\n\r\nimport PhoneInput from './PhoneInputWithCountry.js'\r\n\r\nexport function createPhoneInput(defaultMetadata) {\r\n\tconst PhoneInputDefault = React.forwardRef(({\r\n\t\tmetadata = defaultMetadata,\r\n\t\tlabels = defaultLabels,\r\n\t\t...rest\r\n\t}, ref) => (\r\n\t\t\r\n\t))\r\n\r\n\tPhoneInputDefault.propTypes = {\r\n\t\tmetadata: metadataPropType,\r\n\t\tlabels: labelsPropType\r\n\t}\r\n\r\n\treturn PhoneInputDefault\r\n}\r\n\r\nexport default createPhoneInput()","import metadata from 'libphonenumber-js/min/metadata'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index.js'\r\n\r\nimport { createPhoneInput } from '../modules/PhoneInputWithCountryDefault.js'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createPhoneInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}","import React, { useState } from 'react';\nimport PhoneInput from 'react-phone-number-input';\nimport 'react-phone-number-input/style.css';\nimport './style.scss';\n\nexport default function Phone({\n placeholder,\n onChange,\n country,\n required = false,\n label,\n value,\n ...props\n}) {\n const [defaultCountryCode] = useState('IN');\n const [defaultPlaceHolder] = useState('Phone');\n\n return (\n \n );\n}\n","import React, { useRef, useState } from 'react';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport './style.scss';\nimport eazyUpdates from '../../icons/workSpaceLogo.jsx';\nimport { toast } from 'react-toastify';\nimport { SECRET_KEY } from '../../constants.js';\nimport { useWindowSize } from '../../utils';\nimport DemoSuccessImage from '../../icons/demoSuccessImage.jsx';\nimport LoginModalCancel from '../../icons/loginModalCancel.jsx';\nimport DemoFormSvgMobile from '../../icons/demoFormSvgMobile.jsx';\nimport { isValidPhoneNumber } from 'react-phone-number-input';\nimport { postDemoRequest } from '../../lib/ModalAuth/index.js';\nimport Phone from '../Phone/index.js';\n\nconst DemoPageForm = ({ setOpenPopup }) => {\n const [demoFormData, setDemoFormData] = useState({\n name: '',\n email: '',\n phone: '',\n companyWebsite: '',\n description: '',\n flag: true,\n });\n const [captcha, setCaptcha] = useState('');\n const [success, setSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const reCaptchaRef = useRef(null);\n const [validationErrors, setValidationErrors] = useState({\n name: '',\n email: '',\n phone: '',\n companyWebsite: '',\n description: '',\n });\n const windowSize = useWindowSize();\n const isLaptop = windowSize.width > 960;\n const getInTouchForm = async () => {\n if (\n captcha !== '' &&\n (demoFormData.email !== '' || demoFormData.phone !== '' || demoFormData.phone === undefined)\n ) {\n try {\n const res = await postDemoRequest({\n name: demoFormData.name,\n email: demoFormData.email,\n phoneNumber: demoFormData.phone,\n message: demoFormData.description,\n website: demoFormData.companyWebsite,\n flag: demoFormData.flag,\n });\n if (res?.data !== undefined) {\n setDemoFormData(res.data);\n setLoading(false);\n setSuccess(true);\n } else {\n throw new Error(res);\n }\n } catch (err) {\n toast.error(err.message);\n setLoading(false);\n }\n }\n };\n const handleCaptcha = (value) => {\n setCaptcha(value);\n };\n const getValidationMessage = (fieldName, values) => {\n const emailRegex = /[a-z0-9]+@[a-z]+\\.[a-z]{2,3}/;\n const domainRegex =\n /(http(s)?:\\/\\/.)?(www\\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_.+~#?&//=]*)/g;\n switch (fieldName) {\n case 'email':\n return values.length > 0 && !emailRegex.test(values) ? 'enter valid email' : '';\n case 'name':\n return values.length === 0 ? 'name cannot be empty' : '';\n case 'phone':\n return values !== undefined && !isValidPhoneNumber(values)\n ? 'enter valid phone number'\n : '';\n case 'companyWebsite':\n return values.length > 0 && !domainRegex.test(values) ? 'enter valid url' : '';\n default:\n return;\n }\n };\n const handleInputChange = (fieldName, value) => {\n setDemoFormData({ ...demoFormData, [fieldName]: value });\n setValidationErrors({\n ...validationErrors,\n [fieldName]: getValidationMessage(fieldName, value),\n });\n };\n const handleSubmit = (e) => {\n e.preventDefault();\n const hasErrors = Object.values(validationErrors).some((error) => error !== '');\n setLoading(true);\n if (!hasErrors) {\n getInTouchForm();\n }\n };\n\n return (\n
\n {isLaptop ? (\n <>\n
\n
\n {eazyUpdates({\n color: '#5C8AFF',\n height: '40px',\n })}\n {\n setOpenPopup !== undefined && setOpenPopup(false);\n }}\n >\n {LoginModalCancel()}\n
\n
\n
\n {!success ? (\n
\n
\n \n
Book a free demo at a time that suits you.
\n
\n Learn about all the functionalities in EazyUpdates that can improve your\n team's productivity.\n
\n
\n
\n
\n Fill out the form and we'll be in touch as soon as possible.\n
\n
\n
\n
\n \n
\n handleInputChange('name', e.target.value)}\n required\n >\n {validationErrors.name.length !== 0 && (\n
{validationErrors.name}
\n )}\n
\n
\n
\n \n
\n handleInputChange('email', e.target.value)}\n >\n {validationErrors.email.length !== 0 &&\n validationErrors.email.trim() !== '' && (\n
{validationErrors.email}
\n )}\n
\n
\n
\n
\n
\n \n
\n handleInputChange('phone', value)}\n />\n {validationErrors.phone.length !== 0 && (\n
{validationErrors.phone}
\n )}\n
\n
\n
\n \n
\n handleInputChange('companyWebsite', e.target.value)}\n >\n {validationErrors.companyWebsite.length !== 0 && (\n
{validationErrors.companyWebsite}
\n )}\n
\n
\n
\n Description\n {\n setDemoFormData({\n ...demoFormData,\n description: e.target.value,\n });\n }}\n >\n
\n {\n setDemoFormData({\n ...demoFormData,\n flag: !demoFormData.flag,\n });\n }}\n />\n\n \n Yes, I'd like to receive occasional marketing emails from us. I have the\n right to opt out at any time.\n \n
\n
\n {\n if (token !== null) {\n handleCaptcha(token);\n }\n }}\n ref={reCaptchaRef}\n onExpired={() => setCaptcha('')}\n />\n
\n \n {loading ? 'Loading...' : 'Submit'}\n \n \n
\n
\n ) : (\n
\n
\n \n
\n
\n Thanks We've received your request and will be in touch soon.\n
\n
\n )}\n \n ) : (\n <>\n
\n {eazyUpdates({\n color: '#5C8AFF',\n height: '40px',\n })}\n {\n setOpenPopup !== undefined && setOpenPopup(false);\n }}\n >\n {LoginModalCancel()}\n
\n
\n {!success ? (\n
\n
\n
{DemoFormSvgMobile()}
\n
Book a free demo at a time that suits you.
\n
\n Learn about all the functionalities in EazyUpdates that can improve your\n team's productivity.\n
\n
\n
\n
\n
\n \n Name *\n handleInputChange('name', e.target.value)}\n required\n >\n {validationErrors.name.length !== 0 && (\n
{validationErrors.name}
\n )}\n
\n \n Email *\n {\n handleInputChange('email', e.target.value);\n }}\n >\n {validationErrors.email.length !== 0 && (\n
{validationErrors.email}
\n )}\n
\n \n Phone *\n handleInputChange('phone', value)}\n />\n {validationErrors.phone.length !== 0 && (\n
{validationErrors.phone}
\n )}\n
\n \n Company Website\n {\n handleInputChange('companyWebsite', e.target.value);\n }}\n >\n {validationErrors.companyWebsite.length !== 0 && (\n
{validationErrors.companyWebsite}
\n )}\n
\n \n Description\n {\n setDemoFormData({\n ...demoFormData,\n description: e.target.value,\n });\n }}\n >\n \n
\n
\n {\n setDemoFormData({\n ...demoFormData,\n flag: !demoFormData.flag,\n });\n }}\n />\n\n \n Yes, I'd like to receive occasional marketing emails from us. I have the\n right to opt out at any time.\n \n
\n
\n {\n if (token !== null) {\n handleCaptcha(token);\n }\n }}\n ref={reCaptchaRef}\n onExpired={() => setCaptcha('')}\n />\n
\n \n {loading ? 'Loading...' : 'Submit'}\n \n \n
\n
\n ) : (\n
\n
\n \n
\n
\n {\"Thanks We've received your request and will be in touch soon.\"}\n
\n
\n )}\n \n )}\n
\n );\n};\n\nexport default DemoPageForm;\n","import React from \"react\";\n\nexport default function DemoFormSvgMobile() {\n return (\n \n \n \n \n \n \n \n );\n}\n","import './styles.scss';\nimport React from 'react';\n\nfunction Loader() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default Loader;\n","import React, { lazy, Suspense } from 'react';\nimport './style.scss';\nimport Modal from '../Modal/Modal';\nimport { getStoredSessionData } from '../../lib/Auth';\nimport Loader from '../../components/Loader/Loader';\nimport { useWindowSize } from '../../utils';\n\nconst LoginModalEU = lazy(() => import('../../icons/loginModalEU'));\nconst LoginPageWelcomeIcon = lazy(() => import('../../icons/loginPageWelcome'));\nconst LoginModalCancel = lazy(() => import('../../icons/loginModalCancel'));\nconst LoginButton = lazy(() => import('./loginButton'));\n\nconst loginModalWelcomeNotes = [\n 'Streamline progress tracking with EazyUpdates.',\n 'Efficiently monitor individual contributions.',\n 'Centralized platform for effective team management.',\n];\nexport function isSignedIn() {\n const userData = getStoredSessionData().userData;\n return (userData !== undefined || userData !== null) && Object.keys(userData).length !== 0;\n}\n\nexport function isNewOrganisation() {\n const userData = getStoredSessionData().userData;\n return userData.tenantId === null && userData.email !== null;\n}\n\nexport function LoginModal({ setIsLoginModal }) {\n const windowSize = useWindowSize();\n const isLaptop = windowSize.width < 960;\n return (\n <>\n {!isSignedIn() && (\n \n
\n
\n \n {\n setIsLoginModal !== undefined && setIsLoginModal(false);\n }}\n >\n \n
\n
\n
\n
\n
\n {isLaptop ? (\n \n ) : (\n \n )}\n
\n
Welcome to EazyUpdates
\n
\n {loginModalWelcomeNotes.map((item, index) => (\n
\n \n {item}\n
\n ))}\n
\n
\n }>\n \n \n
\n
\n \n )}\n \n );\n}\nexport default LoginModal;\n","import './styles.scss';\nimport React, { useEffect, useRef } from 'react';\n\nfunction Modal({ children }) {\n const modalRef = useRef(null);\n\n useEffect(() => {\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = 'unset';\n };\n }, [modalRef]);\n\n return (\n
\n
\n
{children}
\n
\n
\n );\n}\n\nexport default Modal;\n","import { MICROSOFT_LOGIN_CLIENT_ID } from './constants';\n\nexport const msalConfig = {\n auth: {\n clientId: MICROSOFT_LOGIN_CLIENT_ID as string,\n redirectUri: `${window.origin}/user/login`,\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: false,\n },\n};\nexport const loginRequest = {\n scopes: ['user.read', 'openid', 'profile'],\n};\n","export const LOGOUT = '/logout';\nexport const DASHBOARD = '/user/dashboard';\nexport const JOIN_CREATE_ORGANISATION = '/user/organization';\nexport const LANDING_PAGE = '/';\nexport const TERMS_AND_CONDITION = '/terms-condition';\nexport const PRIVACY_POLICY = '/privacy-policy';\nexport const BLOG_LISTING = '/blog';\nexport const BLOG_PAGE = '/blog/:slug';\nexport const PAGE_NOT_FOUND = '*';\n\nexport const GOOGLE_LOGIN_CLIENT_ID =\n window?.env?.REACT_APP_GOOGLE_LOGIN_CLIENT_ID !== undefined &&\n window?.env?.REACT_APP_GOOGLE_LOGIN_CLIENT_ID !== null\n ? window?.env?.REACT_APP_GOOGLE_LOGIN_CLIENT_ID\n : process.env.REACT_APP_GOOGLE_LOGIN_CLIENT_ID;\n\nexport const BASE_URL =\n window?.env?.REACT_APP_BASE_URL !== undefined && window?.env?.REACT_APP_BASE_URL !== null\n ? window?.env?.REACT_APP_BASE_URL\n : process.env.REACT_APP_BASE_URL;\n\nexport const FARO_NAME =\n window?.env?.REACT_APP_FARO_APP_NAME !== undefined &&\n window?.env?.REACT_APP_FARO_APP_NAME !== null\n ? window?.env?.REACT_APP_FARO_APP_NAME\n : process.env.REACT_APP_FARO_APP_NAME;\n\nexport const FARO_URL =\n window?.env?.REACT_APP_FARO_URL !== undefined && window?.env?.REACT_APP_FARO_URL !== null\n ? window?.env?.REACT_APP_FARO_URL\n : process.env.REACT_APP_FARO_URL;\n\nexport const SECRET_KEY =\n window?.env?.REACT_APP_CAPTCHA_KEY !== undefined && window?.env?.REACT_APP_CAPTCHA_KEY !== null\n ? window?.env?.REACT_APP_CAPTCHA_KEY\n : process.env.REACT_APP_CAPTCHA_KEY;\n\nexport const MICROSOFT_LOGIN_CLIENT_ID =\n window?.env?.REACT_APP_MICROSOFT_LOGIN_CLIENT_ID !== undefined &&\n window?.env?.REACT_APP_MICROSOFT_LOGIN_CLIENT_ID !== null\n ? window?.env?.REACT_APP_MICROSOFT_LOGIN_CLIENT_ID\n : process.env.REACT_APP_MICROSOFT_LOGIN_CLIENT_ID;\n","import React from \"react\";\n\nexport default function LoginModalCancel() {\n return (\n \n Close\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\n\nexport default function WorkSpaceLogo({\n color,\n height,\n width,\n}) {\n return (\n 0 ? width : \"188px\"}\n height={height !== undefined && height.length > 0 ? height : \"60px\"}\n viewBox=\"0 0 188 40\"\n version=\"1.1\"\n >\n EazyUpdates\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","function getStoredSessionData() {\n return {\n token: localStorage.getItem('token') ?? '',\n userData: JSON.parse(localStorage.getItem('userData') ?? '{}'),\n accessTokenForNewOrg: localStorage.getItem('createOrg') ?? '',\n };\n}\n\nfunction setStoredSessionData(sessionData) {\n localStorage.setItem('token', sessionData.token);\n localStorage.setItem('userData', JSON.stringify(sessionData.userData));\n window.dispatchEvent(new Event('userData'));\n localStorage.setItem('accessTokenForNewOrg', sessionData.accessTokenForNewOrg ?? '');\n}\n\nexport { getStoredSessionData, setStoredSessionData };\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from 'axios';\nimport { toast } from 'react-toastify';\nimport { BASE_URL } from '../../constants';\n\nconst getHeaders = () => {\n return { Accept: 'application/json', 'Content-Type': 'application/json' };\n};\nconst postEmployeeIdAndAuthToken = async ({\n name,\n email,\n profileUrl,\n token,\n timezone,\n domain,\n fcmToken,\n authProvider,\n}) => {\n const params = { name, email, profileUrl, token, timezone, domain, fcmToken, authProvider };\n const response = await axios.post(`${BASE_URL}/login`, params, getHeaders());\n\n return response?.data;\n};\n\nconst PostImage = async (image) => {\n const formData = new FormData();\n formData.append('imageUpload', image);\n const fileType = image.type.split('/')[1];\n if (image.size > 1 * 1024 * 1024) {\n toast.error('File size exceeds the maximum limit of 1MB.');\n return;\n }\n if (!['png', 'jpg', 'jpeg'].includes(fileType)) {\n toast.error('Only PNG, JPG, and JPEG files are allowed.');\n return;\n }\n const res = await axios.post(\n `${BASE_URL}/projects/image?fileExtension=${fileType}`,\n formData,\n getHeaders(),\n );\n if (res?.data !== undefined && res.data?.data !== undefined) {\n return res.data.data;\n }\n};\n\nconst postDemoRequest = async ({ name, email, phoneNumber, flag, message, website }) => {\n const res = await axios.post(\n `${BASE_URL}/landingPage/contact-details`,\n { name, email, phoneNumber, flag, message, website },\n getHeaders(),\n );\n\n return res;\n};\n\nconst getPlans = async () => {\n const transaction = await axios.get(`${BASE_URL}/plan`, getHeaders());\n\n return transaction.data;\n};\n\nexport { postEmployeeIdAndAuthToken, postDemoRequest, getPlans, PostImage };\n","import ReactGA from \"react-ga4\";\n\nconst GaEvents = (props) => {\n ReactGA.event({\n category: props.category,\n action: props.action,\n label: props.label,\n });\n};\n\nexport default GaEvents;\n","import { useEffect, useState } from 'react';\n\nconst debounce = (func, timeout = 300) => {\n let timer;\n return (/** @type {any} */ ...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n};\nexport function useWindowSize() {\n const [windowSize, setWindowSize] = useState({\n width: typeof window !== 'undefined' && window.innerWidth,\n height: typeof window !== 'undefined' && window.innerHeight,\n });\n useEffect(() => {\n const debouncedHandleResize = debounce(\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n },\n 200,\n );\n\n // Add event listener\n window.addEventListener('resize', debouncedHandleResize);\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', debouncedHandleResize);\n }, []); // Empty array ensures that effect is only run on mount\n return windowSize;\n}\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) return true;\n // Explicitly opting-in to running on hydration\n if (m.route.loader.hydrate === true) return false;\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\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}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this navigation's state updates\n */\n unstable_flushSync?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a