{"version":3,"file":"static/js/main.6197c6a1.js","mappings":"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MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAOzvDX,EA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AANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,MC7uC7B,SAASwiI,GAAcC,G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","sources":["../node_modules/file-saver/src/FileSaver.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/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/regenerator-runtime/runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/validator/index.js","../node_modules/validator/lib/alpha.js","../node_modules/validator/lib/blacklist.js","../node_modules/validator/lib/contains.js","../node_modules/validator/lib/equals.js","../node_modules/validator/lib/escape.js","../node_modules/validator/lib/isAfter.js","../node_modules/validator/lib/isAlpha.js","../node_modules/validator/lib/isAlphanumeric.js","../node_modules/validator/lib/isAscii.js","../node_modules/validator/lib/isBIC.js","../node_modules/validator/lib/isBase32.js","../node_modules/validator/lib/isBase58.js","../node_modules/validator/lib/isBase64.js","../node_modules/validator/lib/isBefore.js","../node_modules/validator/lib/isBoolean.js","../node_modules/validator/lib/isBtcAddress.js","../node_modules/validator/lib/isByteLength.js","../node_modules/validator/lib/isCreditCard.js","../node_modules/validator/lib/isCurrency.js","../node_modules/validator/lib/isDataURI.js","../node_modules/validator/lib/isDate.js","../node_modules/validator/lib/isDecimal.js","../node_modules/validator/lib/isDivisibleBy.js","../node_modules/validator/lib/isEAN.js","../node_modules/validator/lib/isEmail.js","../node_modules/validator/lib/isEmpty.js","../node_modules/validator/lib/isEthereumAddress.js","../node_modules/validator/lib/isFQDN.js","../node_modules/validator/lib/isFloat.js","../node_modules/validator/lib/isFullWidth.js","../node_modules/validator/lib/isHSL.js","../node_modules/validator/lib/isHalfWidth.js","../node_modules/validator/lib/isHash.js","../node_modules/validator/lib/isHexColor.js","../node_modules/validator/lib/isHexadecimal.js","../node_modules/validator/lib/isIBAN.js","../node_modules/validator/lib/isIMEI.js","../node_modules/validator/lib/isIP.js","../node_modules/validator/lib/isIPRange.js","../node_modules/validator/lib/isISBN.js","../node_modules/validator/lib/isISIN.js","../node_modules/validator/lib/isISO31661Alpha2.js","../node_modules/validator/lib/isISO31661Alpha3.js","../node_modules/validator/lib/isISO4217.js","../node_modules/validator/lib/isISO8601.js","../node_modules/validator/lib/isISRC.js","../node_modules/validator/lib/isISSN.js","../node_modules/validator/lib/isIdentityCard.js","../node_modules/validator/lib/isIn.js","../node_modules/validator/lib/isInt.js","../node_modules/validator/lib/isJSON.js","../node_modules/validator/lib/isJWT.js","../node_modules/validator/lib/isLatLong.js","../node_modules/validator/lib/isLength.js","../node_modules/validator/lib/isLicensePlate.js","../node_modules/validator/lib/isLocale.js","../node_modules/validator/lib/isLowercase.js","../node_modules/validator/lib/isMACAddress.js","../node_modules/validator/lib/isMD5.js","../node_modules/validator/lib/isMagnetURI.js","../node_modules/validator/lib/isMimeType.js","../node_modules/validator/lib/isMobilePhone.js","../node_modules/validator/lib/isMongoId.js","../node_modules/validator/lib/isMultibyte.js","../node_modules/validator/lib/isNumeric.js","../node_modules/validator/lib/isOctal.js","../node_modules/validator/lib/isPassportNumber.js","../node_modules/validator/lib/isPort.js","../node_modules/validator/lib/isPostalCode.js","../node_modules/validator/lib/isRFC3339.js","../node_modules/validator/lib/isRgbColor.js","../node_modules/validator/lib/isSemVer.js","../node_modules/validator/lib/isSlug.js","../node_modules/validator/lib/isStrongPassword.js","../node_modules/validator/lib/isSurrogatePair.js","../node_modules/validator/lib/isTaxID.js","../node_modules/validator/lib/isURL.js","../node_modules/validator/lib/isUUID.js","../node_modules/validator/lib/isUppercase.js","../node_modules/validator/lib/isVAT.js","../node_modules/validator/lib/isVariableWidth.js","../node_modules/validator/lib/isWhitelisted.js","../node_modules/validator/lib/ltrim.js","../node_modules/validator/lib/matches.js","../node_modules/validator/lib/normalizeEmail.js","../node_modules/validator/lib/rtrim.js","../node_modules/validator/lib/stripLow.js","../node_modules/validator/lib/toBoolean.js","../node_modules/validator/lib/toDate.js","../node_modules/validator/lib/toFloat.js","../node_modules/validator/lib/toInt.js","../node_modules/validator/lib/trim.js","../node_modules/validator/lib/unescape.js","../node_modules/validator/lib/util/algorithms.js","../node_modules/validator/lib/util/assertString.js","../node_modules/validator/lib/util/includes.js","../node_modules/validator/lib/util/merge.js","../node_modules/validator/lib/util/multilineRegex.js","../node_modules/validator/lib/util/toString.js","../node_modules/validator/lib/whitelist.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../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/jsonp chunk loading","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toArray.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../javascript/esm|/home/vsts/work/1/s/src/AT.Risikovaerktoej.Web/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/recoil/es/recoil.js","../node_modules/@react-aria/ssr/dist/packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/clsx/dist/clsx.m.js","../node_modules/@react-stately/utils/dist/packages/@react-stately/utils/src/useControlledState.ts","../node_modules/@react-stately/utils/dist/packages/@react-stately/utils/src/number.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLayoutEffect.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useId.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/chain.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/mergeProps.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/filterDOMProps.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/focusWithoutScrolling.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/getOffset.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/runAfterTransition.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useDrag1D.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useGlobalListeners.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLabels.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useObjectRef.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useUpdateEffect.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useResizeObserver.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useSyncRef.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/getScrollParent.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useViewportSize.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useDescription.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/platform.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useEvent.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useValueEffect.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/scrollIntoView.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/textSelection.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/utils.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/context.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/usePress.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/Pressable.tsx","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/PressResponder.tsx","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocus.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusVisible.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusWithin.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useHover.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useInteractOutside.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/createEventHandler.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useKeyboard.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useMove.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useScrollWheel.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useLongPress.ts","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/focusSafely.ts","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/isElementVisible.ts","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/FocusScope.tsx","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/useFocusRing.ts","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/FocusRing.tsx","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/useFocusable.tsx","../node_modules/@react-aria/button/dist/packages/@react-aria/button/src/useButton.ts","../node_modules/@react-aria/button/dist/packages/@react-aria/button/src/useToggleButton.ts","helpers/data-api-helpers.ts","models/answer-type.ts","helpers/parent-communication-helpers.ts","helpers/questionnaire-helpers.ts","helpers/section-helpers.ts","state/answers-state.ts","state/global-variables-state.ts","helpers/filter-evaluation.ts","state/sections-state.ts","state/questionnaire-state.ts","state/report-state.ts","state/email-report-state.ts","components/spinner/Spinner.tsx","components/report/Report.tsx","helpers/answer-helpers.ts","../node_modules/marked/lib/marked.esm.js","helpers/markdown-helpers.ts","../node_modules/@react-aria/label/dist/packages/@react-aria/label/src/useLabel.ts","../node_modules/@react-aria/label/dist/packages/@react-aria/label/src/useField.ts","../node_modules/tslib/tslib.es6.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/intl-messageformat/lib/index.js","../node_modules/@internationalized/message/dist/packages/@internationalized/message/src/MessageDictionary.ts","../node_modules/@internationalized/message/dist/packages/@internationalized/message/src/MessageFormatter.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/weekStartData.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/queries.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/utils.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/calendars/GregorianCalendar.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/conversion.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/manipulation.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/string.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/CalendarDate.ts","../node_modules/@internationalized/date/dist/packages/@internationalized/date/src/DateFormatter.ts","../node_modules/@internationalized/number/dist/packages/@internationalized/number/src/NumberFormatter.ts","../node_modules/@internationalized/number/dist/packages/@internationalized/number/src/NumberParser.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/utils.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useDefaultLocale.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/context.tsx","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useMessageFormatter.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useDateFormatter.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useNumberFormatter.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useCollator.ts","../node_modules/@react-aria/i18n/dist/packages/@react-aria/i18n/src/useFilter.ts","../node_modules/@react-aria/progress/dist/packages/@react-aria/progress/src/useProgressBar.ts","../node_modules/@react-aria/meter/dist/packages/@react-aria/meter/src/useMeter.ts","components/progress-meter/ProgressMeter.tsx","../node_modules/@react-aria/toggle/dist/packages/@react-aria/toggle/src/useToggle.ts","../node_modules/@react-stately/toggle/dist/packages/@react-stately/toggle/src/useToggleState.ts","../node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/useCheckbox.ts","../node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/utils.ts","../node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/useCheckboxGroup.ts","../node_modules/@react-aria/checkbox/dist/packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts","../node_modules/@react-stately/checkbox/dist/packages/@react-stately/checkbox/src/useCheckboxGroupState.ts","helpers/question-helpers.ts","components/image-dialog/ImageDialog.tsx","components/question/Checkboxes.tsx","components/question/ImageCheckboxes.tsx","../node_modules/@react-aria/radio/dist/packages/@react-aria/radio/src/utils.ts","../node_modules/@react-aria/radio/dist/packages/@react-aria/radio/src/useRadio.ts","../node_modules/@react-aria/radio/dist/packages/@react-aria/radio/src/useRadioGroup.ts","../node_modules/@react-stately/radio/dist/packages/@react-stately/radio/src/useRadioGroupState.ts","components/question/ImageRadiobuttons.tsx","../node_modules/@react-aria/textfield/dist/packages/@react-aria/textfield/src/useTextField.ts","../node_modules/@react-aria/textfield/dist/packages/@react-aria/textfield/src/useFormattedTextField.ts","components/question/Inputspecial.tsx","components/question/Radiobuttons.tsx","components/question/Questions.tsx","components/sections/Sections.tsx","components/questionnaire-container/QuestionnaireContainer.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\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 result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/**\n * @license React\n * scheduler.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'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\n\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\n\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\n\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\n\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\n\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\n\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\n\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\n\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\n\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\n\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\n\nvar _isDate = _interopRequireDefault(require(\"./lib/isDate\"));\n\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\n\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\n\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\n\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\n\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\n\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\n\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\n\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\n\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\n\nvar _isIMEI = _interopRequireDefault(require(\"./lib/isIMEI\"));\n\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\n\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\n\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\n\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\n\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\n\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\n\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\n\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\n\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\n\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\n\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\n\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\n\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\n\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\n\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\n\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\n\nvar _isIBAN = _interopRequireWildcard(require(\"./lib/isIBAN\"));\n\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\n\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\n\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\n\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\n\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\n\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\n\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\n\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\n\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\n\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\n\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\n\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\n\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\n\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\n\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\n\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\n\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\n\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\n\nvar _isTaxID = _interopRequireDefault(require(\"./lib/isTaxID\"));\n\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\n\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\n\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\n\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\n\nvar _isISO = _interopRequireDefault(require(\"./lib/isISO8601\"));\n\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\n\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\n\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\n\nvar _isISO2 = _interopRequireDefault(require(\"./lib/isISO4217\"));\n\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\n\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase58\"));\n\nvar _isBase3 = _interopRequireDefault(require(\"./lib/isBase64\"));\n\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\n\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\n\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\n\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\n\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\n\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\n\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\n\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\n\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\n\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\n\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\n\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\n\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\n\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\n\nvar _isLicensePlate = _interopRequireDefault(require(\"./lib/isLicensePlate\"));\n\nvar _isStrongPassword = _interopRequireDefault(require(\"./lib/isStrongPassword\"));\n\nvar _isVAT = _interopRequireDefault(require(\"./lib/isVAT\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar version = '13.7.0';\nvar validator = {\n version: version,\n toDate: _toDate.default,\n toFloat: _toFloat.default,\n toInt: _toInt.default,\n toBoolean: _toBoolean.default,\n equals: _equals.default,\n contains: _contains.default,\n matches: _matches.default,\n isEmail: _isEmail.default,\n isURL: _isURL.default,\n isMACAddress: _isMACAddress.default,\n isIP: _isIP.default,\n isIPRange: _isIPRange.default,\n isFQDN: _isFQDN.default,\n isBoolean: _isBoolean.default,\n isIBAN: _isIBAN.default,\n isBIC: _isBIC.default,\n isAlpha: _isAlpha.default,\n isAlphaLocales: _isAlpha.locales,\n isAlphanumeric: _isAlphanumeric.default,\n isAlphanumericLocales: _isAlphanumeric.locales,\n isNumeric: _isNumeric.default,\n isPassportNumber: _isPassportNumber.default,\n isPort: _isPort.default,\n isLowercase: _isLowercase.default,\n isUppercase: _isUppercase.default,\n isAscii: _isAscii.default,\n isFullWidth: _isFullWidth.default,\n isHalfWidth: _isHalfWidth.default,\n isVariableWidth: _isVariableWidth.default,\n isMultibyte: _isMultibyte.default,\n isSemVer: _isSemVer.default,\n isSurrogatePair: _isSurrogatePair.default,\n isInt: _isInt.default,\n isIMEI: _isIMEI.default,\n isFloat: _isFloat.default,\n isFloatLocales: _isFloat.locales,\n isDecimal: _isDecimal.default,\n isHexadecimal: _isHexadecimal.default,\n isOctal: _isOctal.default,\n isDivisibleBy: _isDivisibleBy.default,\n isHexColor: _isHexColor.default,\n isRgbColor: _isRgbColor.default,\n isHSL: _isHSL.default,\n isISRC: _isISRC.default,\n isMD5: _isMD.default,\n isHash: _isHash.default,\n isJWT: _isJWT.default,\n isJSON: _isJSON.default,\n isEmpty: _isEmpty.default,\n isLength: _isLength.default,\n isLocale: _isLocale.default,\n isByteLength: _isByteLength.default,\n isUUID: _isUUID.default,\n isMongoId: _isMongoId.default,\n isAfter: _isAfter.default,\n isBefore: _isBefore.default,\n isIn: _isIn.default,\n isCreditCard: _isCreditCard.default,\n isIdentityCard: _isIdentityCard.default,\n isEAN: _isEAN.default,\n isISIN: _isISIN.default,\n isISBN: _isISBN.default,\n isISSN: _isISSN.default,\n isMobilePhone: _isMobilePhone.default,\n isMobilePhoneLocales: _isMobilePhone.locales,\n isPostalCode: _isPostalCode.default,\n isPostalCodeLocales: _isPostalCode.locales,\n isEthereumAddress: _isEthereumAddress.default,\n isCurrency: _isCurrency.default,\n isBtcAddress: _isBtcAddress.default,\n isISO8601: _isISO.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isISO4217: _isISO2.default,\n isBase32: _isBase.default,\n isBase58: _isBase2.default,\n isBase64: _isBase3.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.default,\n isMimeType: _isMimeType.default,\n isLatLong: _isLatLong.default,\n ltrim: _ltrim.default,\n rtrim: _rtrim.default,\n trim: _trim.default,\n escape: _escape.default,\n unescape: _unescape.default,\n stripLow: _stripLow.default,\n whitelist: _whitelist.default,\n blacklist: _blacklist.default,\n isWhitelisted: _isWhitelisted.default,\n normalizeEmail: _normalizeEmail.default,\n toString: toString,\n isSlug: _isSlug.default,\n isStrongPassword: _isStrongPassword.default,\n isTaxID: _isTaxID.default,\n isDate: _isDate.default,\n isLicensePlate: _isLicensePlate.default,\n isVAT: _isVAT.default,\n ibanLocales: _isIBAN.locales\n};\nvar _default = validator;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commaDecimal = exports.dotDecimal = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fi-FI': /^[A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,\n 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i\n};\nexports.alpha = alpha;\nvar alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i\n};\nexports.alphanumeric = alphanumeric;\nvar decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nexports.decimal = decimal;\nvar englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nexports.englishLocales = englishLocales;\n\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n} // Source: http://www.localeplanet.com/java/\n\n\nvar arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nexports.arabicLocales = arabicLocales;\n\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\n\nvar farsiLocales = ['IR', 'AF'];\nexports.farsiLocales = farsiLocales;\n\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n} // Source: https://en.wikipedia.org/wiki/Decimal_mark\n\n\nvar dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nexports.dotDecimal = dotDecimal;\nvar commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nexports.commaDecimal = commaDecimal;\n\nfor (var _i3 = 0; _i3 < dotDecimal.length; _i3++) {\n decimal[dotDecimal[_i3]] = decimal['en-US'];\n}\n\nfor (var _i4 = 0; _i4 < commaDecimal.length; _i4++) {\n decimal[commaDecimal[_i4]] = ',';\n}\n\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT']; // see #862\n\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL']; // see #1455\n\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaulContainsOptions = {\n ignoreCase: false,\n minOccurrences: 1\n};\n\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n\n if (options.ignoreCase) {\n return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;\n }\n\n return str.split((0, _toString.default)(elem)).length > options.minOccurrences;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>').replace(/\\//g, '/').replace(/\\\\/g, '\').replace(/`/g, '`');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAfter(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original > comparison);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alpha);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlphanumeric(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alphanumeric);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isISO31661Alpha = require(\"./isISO31661Alpha2\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://en.wikipedia.org/wiki/ISO_9362\nvar isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;\n\nfunction isBIC(str) {\n (0, _assertString.default)(str); // toUpperCase() should be removed when a new major version goes out that changes\n // the regex to [A-Z] (per the spec).\n\n if (!_isISO31661Alpha.CountryCodes.has(str.slice(4, 6).toUpperCase())) {\n return false;\n }\n\n return isBICReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar base32 = /^[A-Z2-7]+=*$/;\n\nfunction isBase32(str) {\n (0, _assertString.default)(str);\n var len = str.length;\n\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase58;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz\nvar base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;\n\nfunction isBase58(str) {\n (0, _assertString.default)(str);\n\n if (base58Reg.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\n\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBefore(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original < comparison);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultOptions = {\n loose: false\n};\nvar strictBooleans = ['true', 'false', '1', '0'];\nvar looseBooleans = [].concat(strictBooleans, ['yes', 'no']);\n\nfunction isBoolean(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n (0, _assertString.default)(str);\n\n if (options.loose) {\n return looseBooleans.includes(str.toLowerCase());\n }\n\n return strictBooleans.includes(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// supports Bech32 addresses\nvar bech32 = /^(bc1)[a-z0-9]{25,39}$/;\nvar base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;\n\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str); // check for bech32\n\n if (str.startsWith('bc1')) {\n return bech32.test(str);\n }\n\n return base58.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar creditCard = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n\n if (!creditCard.test(sanitized)) {\n return false;\n }\n\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens)\n\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n } // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n\n\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n } // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n\n\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\n\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\n\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\n\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n\n if (data.length < 2) {\n return false;\n }\n\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n\n if (schemeAndMediaType.substr(0, 5) !== 'data:') {\n return false;\n }\n\n var mediaType = schemeAndMediaType.substr(5);\n\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n\n for (var i = 0; i < attributes.length; i++) {\n if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') && !validAttribute.test(attributes[i])) {\n return false;\n }\n }\n\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\n\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\n\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n\n return zippedArr;\n}\n\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatbility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n\n if (typeof input === 'string' && isValidFormat(options.format)) {\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return new Date(\"\".concat(dateObj.m, \"/\").concat(dateObj.d, \"/\").concat(dateObj.y)).getDate() === +dateObj.d;\n }\n\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\n\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\n\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * Also EAN/UCC-14 is used for Grouping of individual\n * trade items above unit level(Intermediate, Carton or Pallet).\n * For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n * Reference: https://www.gtin.info/\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14\n * and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),\n * with exact numberic matching of 8 or 13 or 14 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar LENGTH_EAN_14 = 14;\nvar validEanRegex = /^(\\d{8}|\\d{13}|\\d{14})$/;\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\n\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {\n return index % 2 === 0 ? 3 : 1;\n }\n\n return index % 2 === 0 ? 1 : 3;\n}\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\n\n\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13/EAN-14 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: []\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n\n var user = parts.join('@');\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmpty;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\n\nfunction isEmpty(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_is_empty_options);\n return (options.ignore_whitespace ? str.trim().length : str.length) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eth = /^(0x)[0-9a-f]{40}$/i;\n\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n /* Remove the optional wildcard before checking validity */\n\n\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/\\s/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n\n if (str === '' || str === '.' || str === '-' || str === '+') {\n return false;\n }\n\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\n\nvar locales = Object.keys(_alpha.decimal);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.fullWidth = fullWidth;\n\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hslComma = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}(,((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?))?\\)$/i;\nvar hslSpace = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(\\s(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s?(\\/\\s((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s?)?\\)$/i;\n\nfunction isHSL(str) {\n (0, _assertString.default)(str); // Strip duplicate spaces before calling the validation regex (See #1598 for more info)\n\n var strippedStr = str.replace(/\\s+/g, ' ').replace(/\\s?(hsla?\\(|\\)|,)\\s?/ig, '$1');\n\n if (strippedStr.indexOf(',') !== -1) {\n return hslComma.test(strippedStr);\n }\n\n return hslSpace.test(strippedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.halfWidth = halfWidth;\n\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\n\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\n\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n MZ: /^(MZ[0-9]{2})\\d{21}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @return {boolean}\n */\n\nfunction hasValidIbanFormat(str) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\n\nfunction isIBAN(str) {\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str) && hasValidIbanChecksum(str);\n}\n\nvar locales = Object.keys(ibanRegexThroughCountryCode);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIMEI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar imeiRegexWithoutHypens = /^[0-9]{15}$/;\nvar imeiRegexWithHypens = /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/;\n\nfunction isIMEI(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // default regex for checking imei is the one without hyphens\n\n var imeiRegex = imeiRegexWithoutHypens;\n\n if (options.allow_hyphens) {\n imeiRegex = imeiRegexWithHypens;\n }\n\n if (!imeiRegex.test(str)) {\n return false;\n }\n\n str = str.replace(/-/g, '');\n var sum = 0,\n mul = 2,\n l = 14;\n\n for (var i = 0; i < l; i++) {\n var digit = str.substring(l - i - 1, l - i);\n var tp = parseInt(digit, 10) * mul;\n\n if (tp >= 10) {\n sum += tp % 10 + 1;\n } else {\n sum += tp;\n }\n\n if (mul === 1) {\n mul += 1;\n } else {\n mul -= 1;\n }\n }\n\n var chk = (10 - sum % 10) % 10;\n\n if (chk !== parseInt(str.substring(14, 15), 10)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n\n if (version === '4') {\n if (!IPv4AddressRegExp.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n }\n\n if (version === '6') {\n return !!IPv6AddressRegExp.test(str);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar subnetMaybe = /^\\d{1,3}$/;\nvar v4Subnet = 32;\nvar v6Subnet = 128;\n\nfunction isIPRange(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet\n\n if (parts.length !== 2) {\n return false;\n }\n\n if (!subnetMaybe.test(parts[1])) {\n return false;\n } // Disallow preceding 0 i.e. 01, 02, ...\n\n\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n\n var isValidIP = (0, _isIP.default)(parts[0], version);\n\n if (!isValidIP) {\n return false;\n } // Define valid subnet according to IP's version\n\n\n var expectedSubnet = null;\n\n switch (String(version)) {\n case '4':\n expectedSubnet = v4Subnet;\n break;\n\n case '6':\n expectedSubnet = v6Subnet;\n break;\n\n default:\n expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;\n }\n\n return parts[1] <= expectedSubnet && parts[1] >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar isbn13Maybe = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\n\nfunction isISBN(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isISBN(str, 10) || isISBN(str, 13);\n }\n\n var sanitized = str.replace(/[\\s-]+/g, '');\n var checksum = 0;\n var i;\n\n if (version === '10') {\n if (!isbn10Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 9; i++) {\n checksum += (i + 1) * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitized.charAt(9);\n }\n\n if (checksum % 11 === 0) {\n return !!sanitized;\n }\n } else if (version === '13') {\n if (!isbn13Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 12; i++) {\n checksum += factor[i % 2] * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return !!sanitized;\n }\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; // this link details how the check digit is calculated:\n// https://www.isin.org/isin-format/. it is a little bit\n// odd in that it works with digits, not numbers. in order\n// to make only one pass through the ISIN characters, the\n// each alpha character is handled as 2 characters within\n// the loop.\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n\n if (!isin.test(str)) {\n return false;\n }\n\n var double = true;\n var sum = 0; // convert values\n\n for (var i = str.length - 2; i >= 0; i--) {\n if (str[i] >= 'A' && str[i] <= 'Z') {\n var value = str[i].charCodeAt(0) - 55;\n var lo = value % 10;\n var hi = Math.trunc(value / 10); // letters have two digits, so handle the low order\n // and high order digits separately.\n\n for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {\n var digit = _arr[_i];\n\n if (double) {\n if (digit >= 5) {\n sum += 1 + (digit - 5) * 2;\n } else {\n sum += digit * 2;\n }\n } else {\n sum += digit;\n }\n\n double = !double;\n }\n } else {\n var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);\n\n if (double) {\n if (_digit >= 5) {\n sum += 1 + (_digit - 5) * 2;\n } else {\n sum += _digit * 2;\n }\n } else {\n sum += _digit;\n }\n\n double = !double;\n }\n }\n\n var check = Math.trunc((sum + 9) / 10) * 10 - sum;\n return +str[str.length - 1] === check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha2;\nexports.CountryCodes = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = new Set(['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']);\n\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());\n}\n\nvar CountryCodes = validISO31661Alpha2CountriesCodes;\nexports.CountryCodes = CountryCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = new Set(['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']);\n\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO4217;\nexports.CurrencyCodes = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_4217\nvar validISO4217CurrencyCodes = new Set(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BOV', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHE', 'CHF', 'CHW', 'CLF', 'CLP', 'CNY', 'COP', 'COU', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MXV', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'USN', 'UYI', 'UYU', 'UYW', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XBA', 'XBB', 'XBC', 'XBD', 'XCD', 'XDR', 'XOF', 'XPD', 'XPF', 'XPT', 'XSU', 'XTS', 'XUA', 'XXX', 'YER', 'ZAR', 'ZMW', 'ZWL']);\n\nfunction isISO4217(str) {\n (0, _assertString.default)(str);\n return validISO4217CurrencyCodes.has(str.toUpperCase());\n}\n\nvar CurrencyCodes = validISO4217CurrencyCodes;\nexports.CurrencyCodes = CurrencyCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time\n\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\n\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]); // if is leap year\n\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day; // create a date object and compare\n\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n\n return true;\n};\n\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\n\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\n\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n\n if (!testIssn.test(str)) {\n return false;\n }\n\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n\n return checksum % 11 === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n PL: function PL(str) {\n (0, _assertString.default)(str);\n var weightOfDigits = {\n 1: 1,\n 2: 3,\n 3: 7,\n 4: 9,\n 5: 1,\n 6: 3,\n 7: 7,\n 8: 9,\n 9: 1,\n 10: 3,\n 11: 0\n };\n\n if (str != null && str.length === 11 && (0, _isInt.default)(str, {\n allow_leading_zeroes: true\n })) {\n var digits = str.split('').slice(0, -1);\n var sum = digits.reduce(function (acc, digit, index) {\n return acc + Number(digit) * weightOfDigits[index + 1];\n }, 0);\n var modulo = sum % 10;\n var lastDigit = Number(str.charAt(str.length - 1));\n\n if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {\n return true;\n }\n }\n\n return false;\n },\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input\n\n var sanitized = str.trim().toUpperCase(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n } // validate the control digit\n\n\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n FI: function FI(str) {\n // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated\n (0, _assertString.default)(str);\n\n if (str.length !== 11) {\n return false;\n }\n\n if (!str.match(/^\\d{6}[\\-A\\+]\\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {\n return false;\n }\n\n var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY';\n var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10);\n var remainder = idAsNumber % 31;\n var checkDigit = checkDigits[remainder];\n return checkDigit === str.slice(10, 11);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/; // multiplication table\n\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table\n\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IR: function IR(str) {\n if (!str.match(/^\\d{10}$/)) return false;\n str = \"0000\".concat(str).substr(str.length - 6);\n if (parseInt(str.substr(3, 6), 10) === 0) return false;\n var lastNumber = parseInt(str.substr(9, 1), 10);\n var sum = 0;\n\n for (var i = 0; i < 9; i++) {\n sum += parseInt(str.substr(i, 1), 10) * (10 - i);\n }\n\n sum %= 11;\n return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n\n return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n TH: function TH(str) {\n if (!str.match(/^[1-8]\\d{12}$/)) return false; // validate check digit\n\n var sum = 0;\n\n for (var i = 0; i < 12; i++) {\n sum += parseInt(str[i], 10) * (13 - i);\n }\n\n return str[12] === ((11 - sum % 11) % 10).toString();\n },\n LK: function LK(str) {\n var old_nic = /^[1-9]\\d{8}[vx]$/i;\n var new_nic = /^[1-9]\\d{11}$/i;\n if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true;\n return false;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var id = sanitized;\n var sum = 0,\n incNum;\n\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n\n return sum % 10 === 0;\n },\n 'ar-LY': function arLY(str) {\n // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2\n var NIN = /^(1|2)\\d{11}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!NIN.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11', // 北京\n '12', // 天津\n '13', // 河北\n '14', // 山西\n '15', // 内蒙古\n '21', // 辽宁\n '22', // 吉林\n '23', // 黑龙江\n '31', // 上海\n '32', // 江苏\n '33', // 浙江\n '34', // 安徽\n '35', // 福建\n '36', // 江西\n '37', // 山东\n '41', // 河南\n '42', // 湖北\n '43', // 湖南\n '44', // 广东\n '45', // 广西\n '46', // 海南\n '50', // 重庆\n '51', // 四川\n '52', // 贵州\n '53', // 云南\n '54', // 西藏\n '61', // 陕西\n '62', // 甘肃\n '63', // 青海\n '64', // 宁夏\n '65', // 新疆\n '71', // 台湾\n '81', // 香港\n '82', // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n\n if (xdata > new Date()) {\n return false; // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n\n return false;\n };\n\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n\n var mod = power % 11;\n return parityBit[mod];\n };\n\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n\n return check18IdCardNo(idCardNo);\n };\n\n return checkIdCardNo(str);\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\n\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n\n for (i in options) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if ({}.hasOwnProperty.call(options, i)) {\n array[i] = (0, _toString.default)(options[i]);\n }\n }\n\n return array.indexOf(str) >= 0;\n } else if (_typeof(options) === 'object') {\n return options.hasOwnProperty(str);\n } else if (options && typeof options.indexOf === 'function') {\n return options.indexOf(str) >= 0;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\n\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n\n var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt\n\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar default_json_options = {\n allow_primitives: false\n};\n\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {\n /* ignore */\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n\n if (len > 3 || len < 2) {\n return false;\n }\n\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\n\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n\n return lat.test(pair[0]) && long.test(pair[1]);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLicensePlate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n 'cs-CZ': function csCZ(str) {\n return /^(([ABCDEFHKIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);\n },\n 'de-DE': function deDE(str) {\n return /^((AW|UL|AK|GA|AÖ|LF|AZ|AM|AS|ZE|AN|AB|A|KG|KH|BA|EW|BZ|HY|KM|BT|HP|B|BC|BI|BO|FN|TT|ÜB|BN|AH|BS|FR|HB|ZZ|BB|BK|BÖ|OC|OK|CW|CE|C|CO|LH|CB|KW|LC|LN|DA|DI|DE|DH|SY|NÖ|DO|DD|DU|DN|D|EI|EA|EE|FI|EM|EL|EN|PF|ED|EF|ER|AU|ZP|E|ES|NT|EU|FL|FO|FT|FF|F|FS|FD|FÜ|GE|G|GI|GF|GS|ZR|GG|GP|GR|NY|ZI|GÖ|GZ|GT|HA|HH|HM|HU|WL|HZ|WR|RN|HK|HD|HN|HS|GK|HE|HF|RZ|HI|HG|HO|HX|IK|IL|IN|J|JL|KL|KA|KS|KF|KE|KI|KT|KO|KN|KR|KC|KU|K|LD|LL|LA|L|OP|LM|LI|LB|LU|LÖ|HL|LG|MD|GN|MZ|MA|ML|MR|MY|AT|DM|MC|NZ|RM|RG|MM|ME|MB|MI|FG|DL|HC|MW|RL|MK|MG|MÜ|WS|MH|M|MS|NU|NB|ND|NM|NK|NW|NR|NI|NF|DZ|EB|OZ|TG|TO|N|OA|GM|OB|CA|EH|FW|OF|OL|OE|OG|BH|LR|OS|AA|GD|OH|KY|NP|WK|PB|PA|PE|PI|PS|P|PM|PR|RA|RV|RE|R|H|SB|WN|RS|RD|RT|BM|NE|GV|RP|SU|GL|RO|GÜ|RH|EG|RW|PN|SK|MQ|RU|SZ|RI|SL|SM|SC|HR|FZ|VS|SW|SN|CR|SE|SI|SO|LP|SG|NH|SP|IZ|ST|BF|TE|HV|OD|SR|S|AC|DW|ZW|TF|TS|TR|TÜ|UM|PZ|TP|UE|UN|UH|MN|KK|VB|V|AE|PL|RC|VG|GW|PW|VR|VK|KB|WA|WT|BE|WM|WE|AP|MO|WW|FB|WZ|WI|WB|JE|WF|WO|W|WÜ|BL|Z|GC)[- ]?[A-Z]{1,2}[- ]?\\d{1,4}|(AIC|FDB|ABG|SLN|SAW|KLZ|BUL|ESB|NAB|SUL|WST|ABI|AZE|BTF|KÖT|DKB|FEU|ROT|ALZ|SMÜ|WER|AUR|NOR|DÜW|BRK|HAB|TÖL|WOR|BAD|BAR|BER|BIW|EBS|KEM|MÜB|PEG|BGL|BGD|REI|WIL|BKS|BIR|WAT|BOR|BOH|BOT|BRB|BLK|HHM|NEB|NMB|WSF|LEO|HDL|WMS|WZL|BÜS|CHA|KÖZ|ROD|WÜM|CLP|NEC|COC|ZEL|COE|CUX|DAH|LDS|DEG|DEL|RSL|DLG|DGF|LAN|HEI|MED|DON|KIB|ROK|JÜL|MON|SLE|EBE|EIC|HIG|WBS|BIT|PRÜ|LIB|EMD|WIT|ERH|HÖS|ERZ|ANA|ASZ|MAB|MEK|STL|SZB|FDS|HCH|HOR|WOL|FRG|GRA|WOS|FRI|FFB|GAP|GER|BRL|CLZ|GTH|NOH|HGW|GRZ|LÖB|NOL|WSW|DUD|HMÜ|OHA|KRU|HAL|HAM|HBS|QLB|HVL|NAU|HAS|EBN|GEO|HOH|HDH|ERK|HER|WAN|HEF|ROF|HBN|ALF|HSK|USI|NAI|REH|SAN|KÜN|ÖHR|HOL|WAR|ARN|BRG|GNT|HOG|WOH|KEH|MAI|PAR|RID|ROL|KLE|GEL|KUS|KYF|ART|SDH|LDK|DIL|MAL|VIB|LER|BNA|GHA|GRM|MTL|WUR|LEV|LIF|STE|WEL|LIP|VAI|LUP|HGN|LBZ|LWL|PCH|STB|DAN|MKK|SLÜ|MSP|TBB|MGH|MTK|BIN|MSH|EIL|HET|SGH|BID|MYK|MSE|MST|MÜR|WRN|MEI|GRH|RIE|MZG|MIL|OBB|BED|FLÖ|MOL|FRW|SEE|SRB|AIB|MOS|BCH|ILL|SOB|NMS|NEA|SEF|UFF|NEW|VOH|NDH|TDO|NWM|GDB|GVM|WIS|NOM|EIN|GAN|LAU|HEB|OHV|OSL|SFB|ERB|LOS|BSK|KEL|BSB|MEL|WTL|OAL|FÜS|MOD|OHZ|OPR|BÜR|PAF|PLÖ|CAS|GLA|REG|VIT|ECK|SIM|GOA|EMS|DIZ|GOH|RÜD|SWA|NES|KÖN|MET|LRO|BÜZ|DBR|ROS|TET|HRO|ROW|BRV|HIP|PAN|GRI|SHK|EIS|SRO|SOK|LBS|SCZ|MER|QFT|SLF|SLS|HOM|SLK|ASL|BBG|SBK|SFT|SHG|MGN|MEG|ZIG|SAD|NEN|OVI|SHA|BLB|SIG|SON|SPN|FOR|GUB|SPB|IGB|WND|STD|STA|SDL|OBG|HST|BOG|SHL|PIR|FTL|SEB|SÖM|SÜW|TIR|SAB|TUT|ANG|SDT|LÜN|LSZ|MHL|VEC|VER|VIE|OVL|ANK|OVP|SBG|UEM|UER|WLG|GMN|NVP|RDG|RÜG|DAU|FKB|WAF|WAK|SLZ|WEN|SOG|APD|WUG|GUN|ESW|WIZ|WES|DIN|BRA|BÜD|WHV|HWI|GHC|WTM|WOB|WUN|MAK|SEL|OCH|HOT|WDA)[- ]?(([A-Z][- ]?\\d{1,4})|([A-Z]{2}[- ]?\\d{1,3})))[- ]?(E|H)?$/.test(str);\n },\n 'de-LI': function deLI(str) {\n return /^FL[- ]?\\d{1,5}[UZ]?$/.test(str);\n },\n 'fi-FI': function fiFI(str) {\n return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);\n },\n 'pt-PT': function ptPT(str) {\n return /^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(str);\n },\n 'sq-AL': function sqAL(str) {\n return /^[A-Z]{2}[- ]?((\\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\\d{3}))$/.test(str);\n },\n 'pt-BR': function ptBR(str) {\n return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);\n }\n};\n\nfunction isLicensePlate(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n /* eslint guard-for-in: 0 */\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar localeReg = /^[A-Za-z]{2,4}([_-]([A-Za-z]{4}|[\\d]{3}))?([_-]([A-Za-z]{2}|[\\d]{3}))?$/;\n\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n\n if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {\n return true;\n }\n\n return localeReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar macAddress = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){4}([0-9a-fA-F]{2})$/;\nvar macAddressNoSeparators = /^([0-9a-fA-F]){12}$/;\nvar macAddressWithDots = /^([0-9a-fA-F]{4}\\.){2}([0-9a-fA-F]{4})$/;\n\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n /**\n * @deprecated `no_colons` TODO: remove it in the next major\n */\n\n if (options && (options.no_colons || options.no_separators)) {\n return macAddressNoSeparators.test(str);\n }\n\n return macAddress.test(str) || macAddressWithDots.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMD5;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar md5 = /^[a-f0-9]{32}$/;\n\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar magnetURI = /^magnet:\\?xt(?:\\.1)?=urn:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?($|&)/i;\n\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n return magnetURI.test(url.trim());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+]{1,100}$/i; // eslint-disable-line max-len\n// Handle \"charset\" in \"text/*\"\n\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n// Handle \"boundary\" in \"multipart/*\"\n\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)((10|[9|7][0-9])\\d{6}$|[2-4]\\d{7}$)/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)[569]\\d{7}$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-OM': /^((\\+|00)968)?(9[1-9])\\d{6}$/,\n 'ar-PS': /^(\\+?970|0)5[6|9](\\d{7})$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^((\\+49|0)[1|3])([0|5][0-45-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7,9}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)([1-9])\\d{1,9}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'dv-MV': /^(\\+?960)?(7[2-9]|91|9[3-9])\\d{7}$/,\n 'el-GR': /^(\\+?30|0)?(69\\d{8})$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-BM': /^(\\+?1)?441(((3|7)\\d{6}$)|(5[0-3][0-9]\\d{4}$)|(59\\d{5}))/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\\d{7}$/,\n 'en-GY': /^(\\+592|0)6\\d{6}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'en-KI': /^((\\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-NA': /^(\\+?264|0)(6|8)\\d{7}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PK': /^((00|\\+)?92|0)3[0-6]\\d{8}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[3689]\\d{7}$/,\n 'en-SL': /^(\\+?232|0)\\d{8}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'en-BW': /^(\\+?267)?(7[1-8]{1})\\d{6}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?3(0(0|1|2|4|5)|1\\d|2[0-4]|5(0|1))\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-CU': /^(\\+53|0053)?5\\d{7}/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-SV': /^(\\+?503)?[67]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'es-VE': /^(\\+?58)?(2|4)\\d{9}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4(0|1|2|4|5|6)?|50)\\s?(\\d\\s?){4,8}\\d$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-BF': /^(\\+226|0)[67]\\d{7}$/,\n 'fr-CM': /^(\\+?237)6[0-9]{8}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-PF': /^(\\+?689)?8[789]\\d{6}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36|06)(20|30|31|50|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(5|79)\\d{7}$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'lv-LV': /^(\\+?371)2\\d{7}$/,\n 'ms-MY': /^(\\+?6?01){1}(([0145]{1}(\\-|\\s)?\\d{7,8})|([236789]{1}(\\s|\\-)?\\d{7}))$/,\n 'mz-MZ': /^(\\+?258)?8[234567]\\d{7}$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[2-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'pt-AO': /^(\\+244)\\d{9}$/,\n 'ro-RO': /^(\\+?4?0)\\s?7\\d{2}(\\/|\\s|\\.|\\-)?\\d{3}(\\s|\\.|\\-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'si-LK': /^(?:0|94|\\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\\d{7}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'tg-TJ': /^(\\+?992)?[5][5]\\d{7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'tk-TM': /^(\\+993|993|8)\\d{8}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^((\\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?(1[3-9]|9[28])\\d{9}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/,\n 'dz-BT': /^(\\+?975|0)?(17|16|77|02)\\d{6}$/\n};\n/* eslint-enable max-len */\n// aliases\n\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\nphones['fr-CH'] = phones['de-CH'];\nphones['it-CH'] = phones['fr-CH'];\n\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str); // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(phones);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numericNoSymbols = /^[0-9]+$/;\n\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar octal = /^(0o)?[0-7]+$/i;\n\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BR: /^[A-Z]{2}\\d{6}$/,\n // BRAZIL\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^G\\d{8}$|^E(?![IO])[A-Z0-9]\\d{7}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n ID: /^[A-C]\\d{7}$/,\n // INDONESIA\n IR: /^[A-Z]\\d{8}$/,\n // IRAN\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n LY: /^[A-Z0-9]{8}$/,\n // LIBYA\n MT: /^\\d{7}$/,\n // MALTA\n MZ: /^([A-Z]{2}\\d{7})|(\\d{2}[A-Z]{2}\\d{5})$/,\n // MOZAMBIQUE\n MY: /^[AHK]\\d{8}$/,\n // MALAYSIA\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n PL: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{9}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVANIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/ // UNITED STATES\n\n};\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\n\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n min: 0,\n max: 65535\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /2[1-4]{1}\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-Za-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /\\b(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}\\b/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n KR: /^(\\d{5}|\\d{6})$/,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n LK: fiveDigit,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^\\d{4}\\s?[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = Object.keys(patterns);\nexports.locales = locales;\n\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"^\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source, \"$\"));\n\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)/;\n\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\n\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\n\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isStrongPassword;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar upperCaseRegex = /^[A-Z]$/;\nvar lowerCaseRegex = /^[a-z]$/;\nvar numberRegex = /^[0-9]$/;\nvar symbolRegex = /^[-#!$@%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/ ]$/;\nvar defaultOptions = {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 1,\n minNumbers: 1,\n minSymbols: 1,\n returnScore: false,\n pointsPerUnique: 1,\n pointsPerRepeat: 0.5,\n pointsForContainingLower: 10,\n pointsForContainingUpper: 10,\n pointsForContainingNumber: 10,\n pointsForContainingSymbol: 10\n};\n/* Counts number of occurrences of each char in a string\n * could be moved to util/ ?\n*/\n\nfunction countChars(str) {\n var result = {};\n Array.from(str).forEach(function (char) {\n var curVal = result[char];\n\n if (curVal) {\n result[char] += 1;\n } else {\n result[char] = 1;\n }\n });\n return result;\n}\n/* Return information about a password */\n\n\nfunction analyzePassword(password) {\n var charMap = countChars(password);\n var analysis = {\n length: password.length,\n uniqueChars: Object.keys(charMap).length,\n uppercaseCount: 0,\n lowercaseCount: 0,\n numberCount: 0,\n symbolCount: 0\n };\n Object.keys(charMap).forEach(function (char) {\n /* istanbul ignore else */\n if (upperCaseRegex.test(char)) {\n analysis.uppercaseCount += charMap[char];\n } else if (lowerCaseRegex.test(char)) {\n analysis.lowercaseCount += charMap[char];\n } else if (numberRegex.test(char)) {\n analysis.numberCount += charMap[char];\n } else if (symbolRegex.test(char)) {\n analysis.symbolCount += charMap[char];\n }\n });\n return analysis;\n}\n\nfunction scorePassword(analysis, scoringOptions) {\n var points = 0;\n points += analysis.uniqueChars * scoringOptions.pointsPerUnique;\n points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;\n\n if (analysis.lowercaseCount > 0) {\n points += scoringOptions.pointsForContainingLower;\n }\n\n if (analysis.uppercaseCount > 0) {\n points += scoringOptions.pointsForContainingUpper;\n }\n\n if (analysis.numberCount > 0) {\n points += scoringOptions.pointsForContainingNumber;\n }\n\n if (analysis.symbolCount > 0) {\n points += scoringOptions.pointsForContainingSymbol;\n }\n\n return points;\n}\n\nfunction isStrongPassword(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _assertString.default)(str);\n var analysis = analyzePassword(str);\n options = (0, _merge.default)(options || {}, defaultOptions);\n\n if (options.returnScore) {\n return scorePassword(analysis, options);\n }\n\n return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\n\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTaxID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\n\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\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.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * TIN Validation\n * Validates Tax Identification Numbers (TINs) from the US, EU member states and the United Kingdom.\n *\n * EU-UK:\n * National TIN validity is calculated using public algorithms as made available by DG TAXUD.\n *\n * See `https://ec.europa.eu/taxation_customs/tin/specs/FS-TIN%20Algorithms-Public.docx` for more information.\n *\n * US:\n * An Employer Identification Number (EIN), also known as a Federal Tax Identification Number,\n * is used to identify a business entity.\n *\n * NOTES:\n * - Prefix 47 is being reserved for future use\n * - Prefixes 26, 27, 45, 46 and 47 were previously assigned by the Philadelphia campus.\n *\n * See `http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes`\n * for more information.\n */\n// Locale functions\n\n/*\n * bg-BG validation function\n * (Edinen graždanski nomer (EGN/ЕГН), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last) digit\n */\nfunction bgBgCheck(tin) {\n // Extract full year, normalize month and check birth date validity\n var century_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 40) {\n month -= 40;\n century_year = \"20\".concat(century_year);\n } else if (month > 20) {\n month -= 20;\n century_year = \"18\".concat(century_year);\n } else {\n century_year = \"19\".concat(century_year);\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n var date = \"\".concat(century_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n }); // Calculate checksum by multiplying digits with fixed values\n\n var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var checksum = 0;\n\n for (var i = 0; i < multip_lookup.length; i++) {\n checksum += digits[i] * multip_lookup[i];\n }\n\n checksum = checksum % 11 === 10 ? 0 : checksum % 11;\n return checksum === digits[9];\n}\n/*\n * cs-CZ validation function\n * (Rodné číslo (RČ), persons only)\n * Checks if birth date (first six digits) is valid and divisibility by 11\n * Material not in DG TAXUD document sourced from:\n * -`https://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm`\n * -`https://www.mvcr.cz/clanek/rady-a-sluzby-dokumenty-rodne-cislo.aspx`\n */\n\n\nfunction csCzCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract full year from TIN length\n\n var full_year = parseInt(tin.slice(0, 2), 10);\n\n if (tin.length === 10) {\n if (full_year < 54) {\n full_year = \"20\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n } else {\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n\n\n if (full_year < 54) {\n full_year = \"19\".concat(full_year);\n } else {\n return false; // No 18XX years seen in any of the resources\n }\n } // Add missing zero if needed\n\n\n if (full_year.length === 3) {\n full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');\n } // Extract month from TIN and normalize\n\n\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 50) {\n month -= 50;\n }\n\n if (month > 20) {\n // Month-plus-twenty was only introduced in 2004\n if (parseInt(full_year, 10) < 2004) {\n return false;\n }\n\n month -= 20;\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Verify divisibility by 11\n\n\n if (tin.length === 10) {\n if (parseInt(tin, 10) % 11 !== 0) {\n // Some numbers up to and including 1985 are still valid if\n // check (last) digit equals 0 and modulo of first 9 digits equals 10\n var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;\n\n if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {\n if (parseInt(tin.slice(9), 10) !== 0) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n\n return true;\n}\n/*\n * de-AT validation function\n * (Abgabenkontonummer, persons/entities)\n * Verify TIN validity by calling luhnCheck()\n */\n\n\nfunction deAtCheck(tin) {\n return algorithms.luhnCheck(tin);\n}\n/*\n * de-DE validation function\n * (Steueridentifikationsnummer (Steuer-IdNr.), persons only)\n * Tests for single duplicate/triplicate value, then calculates ISO 7064 check (last) digit\n * Partial implementation of spec (same result with both algorithms always)\n */\n\n\nfunction deDeCheck(tin) {\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n }); // Fill array with strings of number positions\n\n var occurences = [];\n\n for (var i = 0; i < digits.length - 1; i++) {\n occurences.push('');\n\n for (var j = 0; j < digits.length - 1; j++) {\n if (digits[i] === digits[j]) {\n occurences[i] += j;\n }\n }\n } // Remove digits with one occurence and test for only one duplicate/triplicate\n\n\n occurences = occurences.filter(function (a) {\n return a.length > 1;\n });\n\n if (occurences.length !== 2 && occurences.length !== 3) {\n return false;\n } // In case of triplicate value only two digits are allowed next to each other\n\n\n if (occurences[0].length === 3) {\n var trip_locations = occurences[0].split('').map(function (a) {\n return parseInt(a, 10);\n });\n var recurrent = 0; // Amount of neighbour occurences\n\n for (var _i = 0; _i < trip_locations.length - 1; _i++) {\n if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {\n recurrent += 1;\n }\n }\n\n if (recurrent === 2) {\n return false;\n }\n }\n\n return algorithms.iso7064Check(tin);\n}\n/*\n * dk-DK validation function\n * (CPR-nummer (personnummer), persons only)\n * Checks if birth date (first six digits) is valid and assigned to century (seventh) digit,\n * and calculates check (last) digit\n */\n\n\nfunction dkDkCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract year, check if valid for given century digit and add century\n\n var year = parseInt(tin.slice(4, 6), 10);\n var century_digit = tin.slice(6, 7);\n\n switch (century_digit) {\n case '0':\n case '1':\n case '2':\n case '3':\n year = \"19\".concat(year);\n break;\n\n case '4':\n case '9':\n if (year < 37) {\n year = \"20\".concat(year);\n } else {\n year = \"19\".concat(year);\n }\n\n break;\n\n default:\n if (year < 37) {\n year = \"20\".concat(year);\n } else if (year > 58) {\n year = \"18\".concat(year);\n } else {\n return false;\n }\n\n break;\n } // Add missing zero if needed\n\n\n if (year.length === 3) {\n year = [year.slice(0, 2), '0', year.slice(2)].join('');\n } // Check date validity\n\n\n var date = \"\".concat(year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 4; // Multiply by weight and add to checksum\n\n for (var i = 0; i < 9; i++) {\n checksum += digits[i] * weight;\n weight -= 1;\n\n if (weight === 1) {\n weight = 7;\n }\n }\n\n checksum %= 11;\n\n if (checksum === 1) {\n return false;\n }\n\n return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;\n}\n/*\n * el-CY validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons only)\n * Verify TIN validity by calculating ASCII value of check (last) character\n */\n\n\nfunction elCyCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.slice(0, 8).split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0; // add digits in even places\n\n for (var i = 1; i < digits.length; i += 2) {\n checksum += digits[i];\n } // add digits in odd places\n\n\n for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {\n if (digits[_i2] < 2) {\n checksum += 1 - digits[_i2];\n } else {\n checksum += 2 * (digits[_i2] - 2) + 5;\n\n if (digits[_i2] > 4) {\n checksum += 2;\n }\n }\n }\n\n return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);\n}\n/*\n * el-GR validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons/entities)\n * Verify TIN validity by calculating check (last) digit\n * Algorithm not in DG TAXUD document- sourced from:\n * - `http://epixeirisi.gr/%CE%9A%CE%A1%CE%99%CE%A3%CE%99%CE%9C%CE%91-%CE%98%CE%95%CE%9C%CE%91%CE%A4%CE%91-%CE%A6%CE%9F%CE%A1%CE%9F%CE%9B%CE%9F%CE%93%CE%99%CE%91%CE%A3-%CE%9A%CE%91%CE%99-%CE%9B%CE%9F%CE%93%CE%99%CE%A3%CE%A4%CE%99%CE%9A%CE%97%CE%A3/23791/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82-%CE%A6%CE%BF%CF%81%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CE%BA%CE%BF%CF%8D-%CE%9C%CE%B7%CF%84%CF%81%CF%8E%CE%BF%CF%85`\n */\n\n\nfunction elGrCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n\n for (var i = 0; i < 8; i++) {\n checksum += digits[i] * Math.pow(2, 8 - i);\n }\n\n return checksum % 11 % 10 === digits[8];\n}\n/*\n * en-GB validation function (should go here if needed)\n * (National Insurance Number (NINO) or Unique Taxpayer Reference (UTR),\n * persons/entities respectively)\n */\n\n/*\n * en-IE validation function\n * (Personal Public Service Number (PPS No), persons only)\n * Verify TIN validity by calculating check (second to last) character\n */\n\n\nfunction enIeCheck(tin) {\n var checksum = algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8);\n\n if (tin.length === 9 && tin[8] !== 'W') {\n checksum += (tin[8].charCodeAt(0) - 64) * 9;\n }\n\n checksum %= 23;\n\n if (checksum === 0) {\n return tin[7].toUpperCase() === 'W';\n }\n\n return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);\n} // Valid US IRS campus prefixes\n\n\nvar enUsCampusPrefix = {\n andover: ['10', '12'],\n atlanta: ['60', '67'],\n austin: ['50', '53'],\n brookhaven: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],\n cincinnati: ['30', '32', '35', '36', '37', '38', '61'],\n fresno: ['15', '24'],\n internet: ['20', '26', '27', '45', '46', '47'],\n kansas: ['40', '44'],\n memphis: ['94', '95'],\n ogden: ['80', '90'],\n philadelphia: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],\n sba: ['31']\n}; // Return an array of all US IRS campus prefixes\n\nfunction enUsGetPrefixes() {\n var prefixes = [];\n\n for (var location in enUsCampusPrefix) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (enUsCampusPrefix.hasOwnProperty(location)) {\n prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location]));\n }\n }\n\n return prefixes;\n}\n/*\n * en-US validation function\n * Verify that the TIN starts with a valid IRS campus prefix\n */\n\n\nfunction enUsCheck(tin) {\n return enUsGetPrefixes().indexOf(tin.substr(0, 2)) !== -1;\n}\n/*\n * es-ES validation function\n * (Documento Nacional de Identidad (DNI)\n * or Número de Identificación de Extranjero (NIE), persons only)\n * Verify TIN validity by calculating check (last) character\n */\n\n\nfunction esEsCheck(tin) {\n // Split characters into an array for further processing\n var chars = tin.toUpperCase().split(''); // Replace initial letter if needed\n\n if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {\n var lead_replace = 0;\n\n switch (chars[0]) {\n case 'Y':\n lead_replace = 1;\n break;\n\n case 'Z':\n lead_replace = 2;\n break;\n\n default:\n }\n\n chars.splice(0, 1, lead_replace); // Fill with zeros if smaller than proper\n } else {\n while (chars.length < 9) {\n chars.unshift(0);\n }\n } // Calculate checksum and check according to lookup\n\n\n var lookup = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n chars = chars.join('');\n var checksum = parseInt(chars.slice(0, 8), 10) % 23;\n return chars[8] === lookup[checksum];\n}\n/*\n * et-EE validation function\n * (Isikukood (IK), persons only)\n * Checks if birth date (century digit and six following) is valid and calculates check (last) digit\n * Material not in DG TAXUD document sourced from:\n * - `https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Estonia-TIN.pdf`\n */\n\n\nfunction etEeCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(1, 3);\n var century_digit = tin.slice(0, 1);\n\n switch (century_digit) {\n case '1':\n case '2':\n full_year = \"18\".concat(full_year);\n break;\n\n case '3':\n case '4':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 1; // Multiply by weight and add to checksum\n\n for (var i = 0; i < 10; i++) {\n checksum += digits[i] * weight;\n weight += 1;\n\n if (weight === 10) {\n weight = 1;\n }\n } // Do again if modulo 11 of checksum is 10\n\n\n if (checksum % 11 === 10) {\n checksum = 0;\n weight = 3;\n\n for (var _i3 = 0; _i3 < 10; _i3++) {\n checksum += digits[_i3] * weight;\n weight += 1;\n\n if (weight === 10) {\n weight = 1;\n }\n }\n\n if (checksum % 11 === 10) {\n return digits[10] === 0;\n }\n }\n\n return checksum % 11 === digits[10];\n}\n/*\n * fi-FI validation function\n * (Henkilötunnus (HETU), persons only)\n * Checks if birth date (first six digits plus century symbol) is valid\n * and calculates check (last) digit\n */\n\n\nfunction fiFiCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(4, 6);\n var century_symbol = tin.slice(6, 7);\n\n switch (century_symbol) {\n case '+':\n full_year = \"18\".concat(full_year);\n break;\n\n case '-':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate check character\n\n\n var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;\n\n if (checksum < 10) {\n return checksum === parseInt(tin.slice(10), 10);\n }\n\n checksum -= 10;\n var letters_lookup = ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'];\n return letters_lookup[checksum] === tin.slice(10);\n}\n/*\n * fr/nl-BE validation function\n * (Numéro national (N.N.), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last two) digits\n */\n\n\nfunction frBeCheck(tin) {\n // Zero month/day value is acceptable\n if (tin.slice(2, 4) !== '00' || tin.slice(4, 6) !== '00') {\n // Extract date from first six digits of TIN\n var date = \"\".concat(tin.slice(0, 2), \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n }\n\n var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;\n var checkdigits = parseInt(tin.slice(9, 11), 10);\n\n if (checksum !== checkdigits) {\n checksum = 97 - parseInt(\"2\".concat(tin.slice(0, 9)), 10) % 97;\n\n if (checksum !== checkdigits) {\n return false;\n }\n }\n\n return true;\n}\n/*\n * fr-FR validation function\n * (Numéro fiscal de référence (numéro SPI), persons only)\n * Verify TIN validity by calculating check (last three) digits\n */\n\n\nfunction frFrCheck(tin) {\n tin = tin.replace(/\\s/g, '');\n var checksum = parseInt(tin.slice(0, 10), 10) % 511;\n var checkdigits = parseInt(tin.slice(10, 13), 10);\n return checksum === checkdigits;\n}\n/*\n * fr/lb-LU validation function\n * (numéro d’identification personnelle, persons only)\n * Verify birth date validity and run Luhn and Verhoeff checks\n */\n\n\nfunction frLuCheck(tin) {\n // Extract date and check validity\n var date = \"\".concat(tin.slice(0, 4), \"/\").concat(tin.slice(4, 6), \"/\").concat(tin.slice(6, 8));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Run Luhn check\n\n\n if (!algorithms.luhnCheck(tin.slice(0, 12))) {\n return false;\n } // Remove Luhn check digit and run Verhoeff check\n\n\n return algorithms.verhoeffCheck(\"\".concat(tin.slice(0, 11)).concat(tin[12]));\n}\n/*\n * hr-HR validation function\n * (Osobni identifikacijski broj (OIB), persons/entities)\n * Verify TIN validity by calling iso7064Check(digits)\n */\n\n\nfunction hrHrCheck(tin) {\n return algorithms.iso7064Check(tin);\n}\n/*\n * hu-HU validation function\n * (Adóazonosító jel, persons only)\n * Verify TIN validity by calculating check (last) digit\n */\n\n\nfunction huHuCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 8;\n\n for (var i = 1; i < 9; i++) {\n checksum += digits[i] * (i + 1);\n }\n\n return checksum % 11 === digits[9];\n}\n/*\n * lt-LT validation function (should go here if needed)\n * (Asmens kodas, persons/entities respectively)\n * Current validation check is alias of etEeCheck- same format applies\n */\n\n/*\n * it-IT first/last name validity check\n * Accepts it-IT TIN-encoded names as a three-element character array and checks their validity\n * Due to lack of clarity between resources (\"Are only Italian consonants used?\n * What happens if a person has X in their name?\" etc.) only two test conditions\n * have been implemented:\n * Vowels may only be followed by other vowels or an X character\n * and X characters after vowels may only be followed by other X characters.\n */\n\n\nfunction itItNameCheck(name) {\n // true at the first occurence of a vowel\n var vowelflag = false; // true at the first occurence of an X AFTER vowel\n // (to properly handle last names with X as consonant)\n\n var xflag = false;\n\n for (var i = 0; i < 3; i++) {\n if (!vowelflag && /[AEIOU]/.test(name[i])) {\n vowelflag = true;\n } else if (!xflag && vowelflag && name[i] === 'X') {\n xflag = true;\n } else if (i > 0) {\n if (vowelflag && !xflag) {\n if (!/[AEIOU]/.test(name[i])) {\n return false;\n }\n }\n\n if (xflag) {\n if (!/X/.test(name[i])) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n/*\n * it-IT validation function\n * (Codice fiscale (TIN-IT), persons only)\n * Verify name, birth date and codice catastale validity\n * and calculate check character.\n * Material not in DG-TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/Italian_fiscal_code`\n */\n\n\nfunction itItCheck(tin) {\n // Capitalize and split characters into an array for further processing\n var chars = tin.toUpperCase().split(''); // Check first and last name validity calling itItNameCheck()\n\n if (!itItNameCheck(chars.slice(0, 3))) {\n return false;\n }\n\n if (!itItNameCheck(chars.slice(3, 6))) {\n return false;\n } // Convert letters in number spaces back to numbers if any\n\n\n var number_locations = [6, 7, 9, 10, 12, 13, 14];\n var number_replace = {\n L: '0',\n M: '1',\n N: '2',\n P: '3',\n Q: '4',\n R: '5',\n S: '6',\n T: '7',\n U: '8',\n V: '9'\n };\n\n for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {\n var i = _number_locations[_i4];\n\n if (chars[i] in number_replace) {\n chars.splice(i, 1, number_replace[chars[i]]);\n }\n } // Extract month and day, and check date validity\n\n\n var month_replace = {\n A: '01',\n B: '02',\n C: '03',\n D: '04',\n E: '05',\n H: '06',\n L: '07',\n M: '08',\n P: '09',\n R: '10',\n S: '11',\n T: '12'\n };\n var month = month_replace[chars[8]];\n var day = parseInt(chars[9] + chars[10], 10);\n\n if (day > 40) {\n day -= 40;\n }\n\n if (day < 10) {\n day = \"0\".concat(day);\n }\n\n var date = \"\".concat(chars[6]).concat(chars[7], \"/\").concat(month, \"/\").concat(day);\n\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n } // Calculate check character by adding up even and odd characters as numbers\n\n\n var checksum = 0;\n\n for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {\n var char_to_int = parseInt(chars[_i5], 10);\n\n if (isNaN(char_to_int)) {\n char_to_int = chars[_i5].charCodeAt(0) - 65;\n }\n\n checksum += char_to_int;\n }\n\n var odd_convert = {\n // Maps of characters at odd places\n A: 1,\n B: 0,\n C: 5,\n D: 7,\n E: 9,\n F: 13,\n G: 15,\n H: 17,\n I: 19,\n J: 21,\n K: 2,\n L: 4,\n M: 18,\n N: 20,\n O: 11,\n P: 3,\n Q: 6,\n R: 8,\n S: 12,\n T: 14,\n U: 16,\n V: 10,\n W: 22,\n X: 25,\n Y: 24,\n Z: 23,\n 0: 1,\n 1: 0\n };\n\n for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {\n var _char_to_int = 0;\n\n if (chars[_i6] in odd_convert) {\n _char_to_int = odd_convert[chars[_i6]];\n } else {\n var multiplier = parseInt(chars[_i6], 10);\n _char_to_int = 2 * multiplier + 1;\n\n if (multiplier > 4) {\n _char_to_int += 2;\n }\n }\n\n checksum += _char_to_int;\n }\n\n if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {\n return false;\n }\n\n return true;\n}\n/*\n * lv-LV validation function\n * (Personas kods (PK), persons only)\n * Check validity of birth date and calculate check (last) digit\n * Support only for old format numbers (not starting with '32', issued before 2017/07/01)\n * Material not in DG TAXUD document sourced from:\n * `https://boot.ritakafija.lv/forums/index.php?/topic/88314-personas-koda-algoritms-%C4%8Deksumma/`\n */\n\n\nfunction lvLvCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract date from TIN\n\n var day = tin.slice(0, 2);\n\n if (day !== '32') {\n // No date/checksum check if new format\n var month = tin.slice(2, 4);\n\n if (month !== '00') {\n // No date check if unknown month\n var full_year = tin.slice(4, 6);\n\n switch (tin[6]) {\n case '0':\n full_year = \"18\".concat(full_year);\n break;\n\n case '1':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(day);\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n } // Calculate check digit\n\n\n var checksum = 1101;\n var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n\n for (var i = 0; i < tin.length - 1; i++) {\n checksum -= parseInt(tin[i], 10) * multip_lookup[i];\n }\n\n return parseInt(tin[10], 10) === checksum % 11;\n }\n\n return true;\n}\n/*\n * mt-MT validation function\n * (Identity Card Number or Unique Taxpayer Reference, persons/entities)\n * Verify Identity Card Number structure (no other tests found)\n */\n\n\nfunction mtMtCheck(tin) {\n if (tin.length !== 9) {\n // No tests for UTR\n var chars = tin.toUpperCase().split(''); // Fill with zeros if smaller than proper\n\n while (chars.length < 8) {\n chars.unshift(0);\n } // Validate format according to last character\n\n\n switch (tin[7]) {\n case 'A':\n case 'P':\n if (parseInt(chars[6], 10) === 0) {\n return false;\n }\n\n break;\n\n default:\n {\n var first_part = parseInt(chars.join('').slice(0, 5), 10);\n\n if (first_part > 32000) {\n return false;\n }\n\n var second_part = parseInt(chars.join('').slice(5, 7), 10);\n\n if (first_part === second_part) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n/*\n * nl-NL validation function\n * (Burgerservicenummer (BSN) or Rechtspersonen Samenwerkingsverbanden Informatie Nummer (RSIN),\n * persons/entities respectively)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\n\n\nfunction nlNlCheck(tin) {\n return algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11 === parseInt(tin[8], 10);\n}\n/*\n * pl-PL validation function\n * (Powszechny Elektroniczny System Ewidencji Ludności (PESEL)\n * or Numer identyfikacji podatkowej (NIP), persons/entities)\n * Verify TIN validity by validating birth date (PESEL) and calculating check (last) digit\n */\n\n\nfunction plPlCheck(tin) {\n // NIP\n if (tin.length === 10) {\n // Calculate last digit by multiplying with lookup\n var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n var _checksum = 0;\n\n for (var i = 0; i < lookup.length; i++) {\n _checksum += parseInt(tin[i], 10) * lookup[i];\n }\n\n _checksum %= 11;\n\n if (_checksum === 10) {\n return false;\n }\n\n return _checksum === parseInt(tin[9], 10);\n } // PESEL\n // Extract full year using month\n\n\n var full_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 80) {\n full_year = \"18\".concat(full_year);\n month -= 80;\n } else if (month > 60) {\n full_year = \"22\".concat(full_year);\n month -= 60;\n } else if (month > 40) {\n full_year = \"21\".concat(full_year);\n month -= 40;\n } else if (month > 20) {\n full_year = \"20\".concat(full_year);\n month -= 20;\n } else {\n full_year = \"19\".concat(full_year);\n } // Add leading zero to month if needed\n\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate last digit by mulitplying with odd one-digit numbers except 5\n\n\n var checksum = 0;\n var multiplier = 1;\n\n for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {\n checksum += parseInt(tin[_i7], 10) * multiplier % 10;\n multiplier += 2;\n\n if (multiplier > 10) {\n multiplier = 1;\n } else if (multiplier === 5) {\n multiplier += 2;\n }\n }\n\n checksum = 10 - checksum % 10;\n return checksum === parseInt(tin[10], 10);\n}\n/*\n* pt-BR validation function\n* (Cadastro de Pessoas Físicas (CPF, persons)\n* Cadastro Nacional de Pessoas Jurídicas (CNPJ, entities)\n* Both inputs will be validated\n*/\n\n\nfunction ptBrCheck(tin) {\n if (tin.length === 11) {\n var _sum;\n\n var remainder;\n _sum = 0;\n if ( // Reject known invalid CPFs\n tin === '11111111111' || tin === '22222222222' || tin === '33333333333' || tin === '44444444444' || tin === '55555555555' || tin === '66666666666' || tin === '77777777777' || tin === '88888888888' || tin === '99999999999' || tin === '00000000000') return false;\n\n for (var i = 1; i <= 9; i++) {\n _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);\n }\n\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;\n _sum = 0;\n\n for (var _i8 = 1; _i8 <= 10; _i8++) {\n _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);\n }\n\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;\n return true;\n }\n\n if ( // Reject know invalid CNPJs\n tin === '00000000000000' || tin === '11111111111111' || tin === '22222222222222' || tin === '33333333333333' || tin === '44444444444444' || tin === '55555555555555' || tin === '66666666666666' || tin === '77777777777777' || tin === '88888888888888' || tin === '99999999999999') {\n return false;\n }\n\n var length = tin.length - 2;\n var identifiers = tin.substring(0, length);\n var verificators = tin.substring(length);\n var sum = 0;\n var pos = length - 7;\n\n for (var _i9 = length; _i9 >= 1; _i9--) {\n sum += identifiers.charAt(length - _i9) * pos;\n pos -= 1;\n\n if (pos < 2) {\n pos = 9;\n }\n }\n\n var result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n\n if (result !== parseInt(verificators.charAt(0), 10)) {\n return false;\n }\n\n length += 1;\n identifiers = tin.substring(0, length);\n sum = 0;\n pos = length - 7;\n\n for (var _i10 = length; _i10 >= 1; _i10--) {\n sum += identifiers.charAt(length - _i10) * pos;\n pos -= 1;\n\n if (pos < 2) {\n pos = 9;\n }\n }\n\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n\n if (result !== parseInt(verificators.charAt(1), 10)) {\n return false;\n }\n\n return true;\n}\n/*\n * pt-PT validation function\n * (Número de identificação fiscal (NIF), persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\n\n\nfunction ptPtCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n\n return checksum === parseInt(tin[8], 10);\n}\n/*\n * ro-RO validation function\n * (Cod Numeric Personal (CNP) or Cod de înregistrare fiscală (CIF),\n * persons only)\n * Verify CNP validity by calculating check (last) digit (test not found for CIF)\n * Material not in DG TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/National_identification_number#Romania`\n */\n\n\nfunction roRoCheck(tin) {\n if (tin.slice(0, 4) !== '9000') {\n // No test found for this format\n // Extract full year using century digit if possible\n var full_year = tin.slice(1, 3);\n\n switch (tin[0]) {\n case '1':\n case '2':\n full_year = \"19\".concat(full_year);\n break;\n\n case '3':\n case '4':\n full_year = \"18\".concat(full_year);\n break;\n\n case '5':\n case '6':\n full_year = \"20\".concat(full_year);\n break;\n\n default:\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate check digit\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];\n var checksum = 0;\n\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n\n if (checksum % 11 === 10) {\n return digits[12] === 1;\n }\n\n return digits[12] === checksum % 11;\n }\n\n return true;\n}\n/*\n * sk-SK validation function\n * (Rodné číslo (RČ) or bezvýznamové identifikačné číslo (BIČ), persons only)\n * Checks validity of pre-1954 birth numbers (rodné číslo) only\n * Due to the introduction of the pseudo-random BIČ it is not possible to test\n * post-1954 birth numbers without knowing whether they are BIČ or RČ beforehand\n */\n\n\nfunction skSkCheck(tin) {\n if (tin.length === 9) {\n tin = tin.replace(/\\W/, '');\n\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n // Extract full year from TIN length\n\n\n var full_year = parseInt(tin.slice(0, 2), 10);\n\n if (full_year > 53) {\n return false;\n }\n\n if (full_year < 10) {\n full_year = \"190\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n } // Extract month from TIN and normalize\n\n\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 50) {\n month -= 50;\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n\n return true;\n}\n/*\n * sl-SI validation function\n * (Davčna številka, persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\n\n\nfunction slSiCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8) % 11;\n\n if (checksum === 10) {\n return parseInt(tin[7], 10) === 0;\n }\n\n return checksum === parseInt(tin[7], 10);\n}\n/*\n * sv-SE validation function\n * (Personnummer or samordningsnummer, persons only)\n * Checks validity of birth date and calls luhnCheck() to validate check (last) digit\n */\n\n\nfunction svSeCheck(tin) {\n // Make copy of TIN and normalize to two-digit year form\n var tin_copy = tin.slice(0);\n\n if (tin.length > 11) {\n tin_copy = tin_copy.slice(2);\n } // Extract date of birth\n\n\n var full_year = '';\n var month = tin_copy.slice(2, 4);\n var day = parseInt(tin_copy.slice(4, 6), 10);\n\n if (tin.length > 11) {\n full_year = tin.slice(0, 4);\n } else {\n full_year = tin.slice(0, 2);\n\n if (tin.length === 11 && day < 60) {\n // Extract full year from centenarian symbol\n // Should work just fine until year 10000 or so\n var current_year = new Date().getFullYear().toString();\n var current_century = parseInt(current_year.slice(0, 2), 10);\n current_year = parseInt(current_year, 10);\n\n if (tin[6] === '-') {\n if (parseInt(\"\".concat(current_century).concat(full_year), 10) > current_year) {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n } else {\n full_year = \"\".concat(current_century).concat(full_year);\n }\n } else {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n\n if (current_year - parseInt(full_year, 10) < 100) {\n return false;\n }\n }\n }\n } // Normalize day and check date validity\n\n\n if (day > 60) {\n day -= 60;\n }\n\n if (day < 10) {\n day = \"0\".concat(day);\n }\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(day);\n\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n return algorithms.luhnCheck(tin.replace(/\\W/, ''));\n} // Locale lookup objects\n\n/*\n * Tax id regex formats for various locales\n *\n * Where not explicitly specified in DG-TAXUD document both\n * uppercase and lowercase letters are acceptable.\n */\n\n\nvar taxIdFormat = {\n 'bg-BG': /^\\d{10}$/,\n 'cs-CZ': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'de-AT': /^\\d{9}$/,\n 'de-DE': /^[1-9]\\d{10}$/,\n 'dk-DK': /^\\d{6}-{0,1}\\d{4}$/,\n 'el-CY': /^[09]\\d{7}[A-Z]$/,\n 'el-GR': /^([0-4]|[7-9])\\d{8}$/,\n 'en-GB': /^\\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\\d{6}[ABCD ]$/i,\n 'en-IE': /^\\d{7}[A-W][A-IW]{0,1}$/i,\n 'en-US': /^\\d{2}[- ]{0,1}\\d{7}$/,\n 'es-ES': /^(\\d{0,8}|[XYZKLM]\\d{7})[A-HJ-NP-TV-Z]$/i,\n 'et-EE': /^[1-6]\\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\\d$/,\n 'fi-FI': /^\\d{6}[-+A]\\d{3}[0-9A-FHJ-NPR-Y]$/i,\n 'fr-BE': /^\\d{11}$/,\n 'fr-FR': /^[0-3]\\d{12}$|^[0-3]\\d\\s\\d{2}(\\s\\d{3}){3}$/,\n // Conforms both to official spec and provided example\n 'fr-LU': /^\\d{13}$/,\n 'hr-HR': /^\\d{11}$/,\n 'hu-HU': /^8\\d{9}$/,\n 'it-IT': /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,\n 'lv-LV': /^\\d{6}-{0,1}\\d{5}$/,\n // Conforms both to DG TAXUD spec and original research\n 'mt-MT': /^\\d{3,7}[APMGLHBZ]$|^([1-8])\\1\\d{7}$/i,\n 'nl-NL': /^\\d{9}$/,\n 'pl-PL': /^\\d{10,11}$/,\n 'pt-BR': /(?:^\\d{11}$)|(?:^\\d{14}$)/,\n 'pt-PT': /^\\d{9}$/,\n 'ro-RO': /^\\d{13}$/,\n 'sk-SK': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'sl-SI': /^[1-9]\\d{7}$/,\n 'sv-SE': /^(\\d{6}[-+]{0,1}\\d{4}|(18|19|20)\\d{6}[-+]{0,1}\\d{4})$/\n}; // taxIdFormat locale aliases\n\ntaxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];\ntaxIdFormat['lt-LT'] = taxIdFormat['et-EE'];\ntaxIdFormat['nl-BE'] = taxIdFormat['fr-BE']; // Algorithmic tax id check functions for various locales\n\nvar taxIdCheck = {\n 'bg-BG': bgBgCheck,\n 'cs-CZ': csCzCheck,\n 'de-AT': deAtCheck,\n 'de-DE': deDeCheck,\n 'dk-DK': dkDkCheck,\n 'el-CY': elCyCheck,\n 'el-GR': elGrCheck,\n 'en-IE': enIeCheck,\n 'en-US': enUsCheck,\n 'es-ES': esEsCheck,\n 'et-EE': etEeCheck,\n 'fi-FI': fiFiCheck,\n 'fr-BE': frBeCheck,\n 'fr-FR': frFrCheck,\n 'fr-LU': frLuCheck,\n 'hr-HR': hrHrCheck,\n 'hu-HU': huHuCheck,\n 'it-IT': itItCheck,\n 'lv-LV': lvLvCheck,\n 'mt-MT': mtMtCheck,\n 'nl-NL': nlNlCheck,\n 'pl-PL': plPlCheck,\n 'pt-BR': ptBrCheck,\n 'pt-PT': ptPtCheck,\n 'ro-RO': roRoCheck,\n 'sk-SK': skSkCheck,\n 'sl-SI': slSiCheck,\n 'sv-SE': svSeCheck\n}; // taxIdCheck locale aliases\n\ntaxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];\ntaxIdCheck['lt-LT'] = taxIdCheck['et-EE'];\ntaxIdCheck['nl-BE'] = taxIdCheck['fr-BE']; // Regexes for locales where characters should be omitted before checking format\n\nvar allsymbols = /[-\\\\\\/!@#$%\\^&\\*\\(\\)\\+\\=\\[\\]]+/g;\nvar sanitizeRegexes = {\n 'de-AT': allsymbols,\n 'de-DE': /[\\/\\\\]/g,\n 'fr-BE': allsymbols\n}; // sanitizeRegexes locale aliases\n\nsanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];\n/*\n * Validator function\n * Return true if the passed string is a valid tax identification number\n * for the specified locale.\n * Throw an error exception if the locale is not supported.\n */\n\nfunction isTaxID(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str); // Copy TIN to avoid replacement if sanitized\n\n var strcopy = str.slice(0);\n\n if (locale in taxIdFormat) {\n if (locale in sanitizeRegexes) {\n strcopy = strcopy.replace(sanitizeRegexes[locale], '');\n }\n\n if (!taxIdFormat[locale].test(strcopy)) {\n return false;\n }\n\n if (locale in taxIdCheck) {\n return taxIdCheck[locale](strcopy);\n } // Fallthrough; not all locales have algorithmic checks\n\n\n return true;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n if (split[0] === '') {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n\n if (user === '' && password === '') {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar uuid = {\n 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nfunction isUUID(str, version) {\n (0, _assertString.default)(str);\n var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];\n return !!pattern && pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVAT;\nexports.vatMatchers = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar vatMatchers = {\n GB: /^GB((\\d{3} \\d{4} ([0-8][0-9]|9[0-6]))|(\\d{9} \\d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/,\n IT: /^(IT)?[0-9]{11}$/,\n NL: /^(NL)?[0-9]{9}B[0-9]{2}$/\n};\nexports.vatMatchers = vatMatchers;\n\nfunction isVAT(str, countryCode) {\n (0, _assertString.default)(str);\n (0, _assertString.default)(countryCode);\n\n if (countryCode in vatMatchers) {\n return vatMatchers[countryCode].test(str);\n }\n\n throw new Error(\"Invalid country code: '\".concat(countryCode, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFullWidth = require(\"./isFullWidth\");\n\nvar _isHalfWidth = require(\"./isHalfWidth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ltrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n\n return pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n}; // List of domains used by iCloud\n\nvar icloud_domains = ['icloud.com', 'me.com']; // List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\n\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com']; // List of domains used by Yahoo Mail\n// This list is likely incomplete\n\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com']; // List of domains used by yandex.ru\n\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru']; // replace single dots, but not multiple consecutive dots\n\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n\n return '';\n}\n\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain]; // The domain is always lowercased, as it's case-insensitive per RFC 1035\n\n parts[1] = parts[1].toLowerCase();\n\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n\n return parts.join('@');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str);\n\n if (chars) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = new RegExp(\"[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+$\"), 'g');\n return str.replace(pattern, '');\n } // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript\n\n\n var strIndex = str.length - 1;\n\n while (/\\s/.test(str.charAt(strIndex))) {\n strIndex -= 1;\n }\n\n return str.slice(0, strIndex + 1);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stripLow(str, keep_new_lines) {\n (0, _assertString.default)(str);\n var chars = keep_new_lines ? '\\\\x00-\\\\x09\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F' : '\\\\x00-\\\\x1F\\\\x7F';\n return (0, _blacklist.default)(str, chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\n\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unescape(str) {\n (0, _assertString.default)(str);\n return str.replace(/"/g, '\"').replace(/'/g, \"'\").replace(/</g, '<').replace(/>/g, '>').replace(///g, '/').replace(/\/g, '\\\\').replace(/`/g, '`').replace(/&/g, '&'); // & replacement has to be the last one to prevent\n // bugs with intermediate strings containing escape sequences\n // See: https://github.com/validatorjs/validator.js/issues/1827\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.iso7064Check = iso7064Check;\nexports.luhnCheck = luhnCheck;\nexports.reverseMultiplyAndSum = reverseMultiplyAndSum;\nexports.verhoeffCheck = verhoeffCheck;\n\n/**\n * Algorithmic validation functions\n * May be used as is or implemented in the workflow of other validators.\n */\n\n/*\n * ISO 7064 validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to ISO 7064 (MOD 11, 10).\n */\nfunction iso7064Check(str) {\n var checkvalue = 10;\n\n for (var i = 0; i < str.length - 1; i++) {\n checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;\n }\n\n checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;\n return checkvalue === parseInt(str[10], 10);\n}\n/*\n * Luhn (mod 10) validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to the Luhn algorithm.\n */\n\n\nfunction luhnCheck(str) {\n var checksum = 0;\n var second = false;\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (second) {\n var product = parseInt(str[i], 10) * 2;\n\n if (product > 9) {\n // sum digits of product and add to checksum\n checksum += product.toString().split('').map(function (a) {\n return parseInt(a, 10);\n }).reduce(function (a, b) {\n return a + b;\n }, 0);\n } else {\n checksum += product;\n }\n } else {\n checksum += parseInt(str[i], 10);\n }\n\n second = !second;\n }\n\n return checksum % 10 === 0;\n}\n/*\n * Reverse TIN multiplication and summation helper function\n * Called with an array of single-digit integers and a base multiplier\n * to calculate the sum of the digits multiplied in reverse.\n * Normally used in variations of MOD 11 algorithmic checks.\n */\n\n\nfunction reverseMultiplyAndSum(digits, base) {\n var total = 0;\n\n for (var i = 0; i < digits.length; i++) {\n total += digits[i] * (base - i);\n }\n\n return total;\n}\n/*\n * Verhoeff validation helper function\n * Called with a string of numbers\n * to validate according to the Verhoeff algorithm.\n */\n\n\nfunction verhoeffCheck(str) {\n var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // Copy (to prevent replacement) and reverse\n\n var str_copy = str.split('').reverse().join('');\n var checksum = 0;\n\n for (var i = 0; i < str_copy.length; i++) {\n checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];\n }\n\n return checksum === 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\n\nvar _default = includes;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n\n return String(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","module.exports = require(\"regenerator-runtime\");\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"9518bd91\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"at-kemi-tool-app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/risikovaerktoej-app/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkat_kemi_tool_app\"] = self[\"webpackChunkat_kemi_tool_app\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import react from 'react';\nimport reactDom from 'react-dom';\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction err(message) {\n const error = new Error(message); // In V8, Error objects keep the closure scope chain alive until the\n // err.stack property is accessed.\n\n if (error.stack === undefined) {\n // IE sets the stack only if error is thrown\n try {\n throw error;\n } catch (_) {} // eslint-disable-line fb-www/no-unused-catch-bindings, no-empty\n\n }\n\n return error;\n}\n\nvar err_1 = err;\n\n// @oss-only\n\n\nvar Recoil_err = err_1;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\n// Split declaration and implementation to allow this function to pretend to\n// check for actual instance of Promise instead of something with a `then`\n// method.\n// eslint-disable-next-line no-redeclare\nfunction isPromise(p) {\n return !!p && typeof p.then === 'function';\n}\n\nvar Recoil_isPromise = isPromise;\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n\n throw Recoil_err(message !== null && message !== void 0 ? message : 'Got unexpected null or undefined');\n}\n\nvar Recoil_nullthrows = nullthrows;\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nclass BaseLoadable {\n getValue() {\n throw Recoil_err('BaseLoadable');\n }\n\n toPromise() {\n throw Recoil_err('BaseLoadable');\n }\n\n valueMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n valueOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected value, but in \"${this.state}\" state`);\n }\n\n promiseMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n promiseOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected promise, but in \"${this.state}\" state`);\n }\n\n errorMaybe() {\n throw Recoil_err('BaseLoadable');\n }\n\n errorOrThrow() {\n // $FlowFixMe[prop-missing]\n throw Recoil_err(`Loadable expected error, but in \"${this.state}\" state`);\n }\n\n is(other) {\n // $FlowFixMe[prop-missing]\n return other.state === this.state && other.contents === this.contents;\n }\n\n map(_map) {\n throw Recoil_err('BaseLoadable');\n }\n\n}\n\nclass ValueLoadable extends BaseLoadable {\n constructor(value) {\n super();\n\n _defineProperty(this, \"state\", 'hasValue');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = value;\n }\n\n getValue() {\n return this.contents;\n }\n\n toPromise() {\n return Promise.resolve(this.contents);\n }\n\n valueMaybe() {\n return this.contents;\n }\n\n valueOrThrow() {\n return this.contents;\n }\n\n promiseMaybe() {\n return undefined;\n }\n\n errorMaybe() {\n return undefined;\n }\n\n map(map) {\n try {\n const next = map(this.contents);\n return Recoil_isPromise(next) ? loadableWithPromise(next) : isLoadable(next) ? next : loadableWithValue(next);\n } catch (e) {\n return Recoil_isPromise(e) ? // If we \"suspended\", then try again.\n // errors and subsequent retries will be handled in 'loading' case\n loadableWithPromise(e.next(() => this.map(map))) : loadableWithError(e);\n }\n }\n\n}\n\nclass ErrorLoadable extends BaseLoadable {\n constructor(error) {\n super();\n\n _defineProperty(this, \"state\", 'hasError');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = error;\n }\n\n getValue() {\n throw this.contents;\n }\n\n toPromise() {\n return Promise.reject(this.contents);\n }\n\n valueMaybe() {\n return undefined;\n }\n\n promiseMaybe() {\n return undefined;\n }\n\n errorMaybe() {\n return this.contents;\n }\n\n errorOrThrow() {\n return this.contents;\n }\n\n map(_map) {\n // $FlowIssue[incompatible-return]\n return this;\n }\n\n}\n\nclass LoadingLoadable extends BaseLoadable {\n constructor(promise) {\n super();\n\n _defineProperty(this, \"state\", 'loading');\n\n _defineProperty(this, \"contents\", void 0);\n\n this.contents = promise;\n }\n\n getValue() {\n throw this.contents;\n }\n\n toPromise() {\n return this.contents;\n }\n\n valueMaybe() {\n return undefined;\n }\n\n promiseMaybe() {\n return this.contents;\n }\n\n promiseOrThrow() {\n return this.contents;\n }\n\n errorMaybe() {\n return undefined;\n }\n\n map(map) {\n return loadableWithPromise(this.contents.then(value => {\n const next = map(value);\n\n if (isLoadable(next)) {\n const nextLoadable = next;\n\n switch (nextLoadable.state) {\n case 'hasValue':\n return nextLoadable.contents;\n\n case 'hasError':\n throw nextLoadable.contents;\n\n case 'loading':\n return nextLoadable.contents;\n }\n } // $FlowIssue[incompatible-return]\n\n\n return next;\n }).catch(e => {\n if (Recoil_isPromise(e)) {\n // we were \"suspended,\" try again\n return e.then(() => this.map(map).contents);\n }\n\n throw e;\n }));\n }\n\n}\n\nfunction loadableWithValue(value) {\n return Object.freeze(new ValueLoadable(value));\n}\n\nfunction loadableWithError(error) {\n return Object.freeze(new ErrorLoadable(error));\n}\n\nfunction loadableWithPromise(promise) {\n return Object.freeze(new LoadingLoadable(promise));\n}\n\nfunction loadableLoading() {\n return Object.freeze(new LoadingLoadable(new Promise(() => {})));\n}\n\nfunction loadableAllArray(inputs) {\n return inputs.every(i => i.state === 'hasValue') ? loadableWithValue(inputs.map(i => i.contents)) : inputs.some(i => i.state === 'hasError') ? loadableWithError(Recoil_nullthrows(inputs.find(i => i.state === 'hasError'), 'Invalid loadable passed to loadableAll').contents) : loadableWithPromise(Promise.all(inputs.map(i => i.contents)));\n}\n\nfunction loadableAll(inputs) {\n const unwrapedInputs = Array.isArray(inputs) ? inputs : Object.getOwnPropertyNames(inputs).map(key => inputs[key]);\n const output = loadableAllArray(unwrapedInputs);\n return Array.isArray(inputs) ? // $FlowIssue[incompatible-return]\n output : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n // $FlowIssue[incompatible-call]\n output.map(outputs => Object.getOwnPropertyNames(inputs).reduce((out, key, idx) => ({ ...out,\n [key]: outputs[idx]\n }), {}));\n}\n\nfunction isLoadable(x) {\n return x instanceof BaseLoadable;\n}\n\nconst LoadableStaticInterface = {\n of: value => Recoil_isPromise(value) ? loadableWithPromise(value) : loadableWithValue(value),\n error: error => loadableWithError(error),\n // $FlowIssue[unclear-type]\n all: loadableAll,\n isLoadable\n};\nvar Recoil_Loadable = {\n loadableWithValue,\n loadableWithError,\n loadableWithPromise,\n loadableLoading,\n loadableAll,\n isLoadable,\n RecoilLoadable: LoadableStaticInterface\n};\n\nvar Recoil_Loadable_1 = Recoil_Loadable.loadableWithValue;\nvar Recoil_Loadable_2 = Recoil_Loadable.loadableWithError;\nvar Recoil_Loadable_3 = Recoil_Loadable.loadableWithPromise;\nvar Recoil_Loadable_4 = Recoil_Loadable.loadableLoading;\nvar Recoil_Loadable_5 = Recoil_Loadable.loadableAll;\nvar Recoil_Loadable_6 = Recoil_Loadable.isLoadable;\nvar Recoil_Loadable_7 = Recoil_Loadable.RecoilLoadable;\n\nvar Recoil_Loadable$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n loadableWithValue: Recoil_Loadable_1,\n loadableWithError: Recoil_Loadable_2,\n loadableWithPromise: Recoil_Loadable_3,\n loadableLoading: Recoil_Loadable_4,\n loadableAll: Recoil_Loadable_5,\n isLoadable: Recoil_Loadable_6,\n RecoilLoadable: Recoil_Loadable_7\n});\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction sprintf(format, ...args) {\n let index = 0;\n return format.replace(/%s/g, () => String(args[index++]));\n}\n\nvar sprintf_1 = sprintf;\n\nfunction expectationViolation(format, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const message = sprintf_1.call(null, format, ...args);\n const error = new Error(message);\n error.name = 'Expectation Violation';\n console.error(error);\n }\n}\n\nvar expectationViolation_1 = expectationViolation;\n\n// @oss-only\n\n\nvar Recoil_expectationViolation = expectationViolation_1;\n\nvar _useMutableSource;\n\n // FIXME T2710559282599660\n\n\nconst useMutableSource = // flowlint-line unclear-type:off\n(_useMutableSource = react.useMutableSource) !== null && _useMutableSource !== void 0 ? _useMutableSource : react.unstable_useMutableSource; // flowlint-line unclear-type:off\n\nfunction mutableSourceExists() {\n return useMutableSource && !(typeof window !== 'undefined' && window.$disableRecoilValueMutableSource_TEMP_HACK_DO_NOT_USE);\n}\n\nvar Recoil_mutableSource = {\n mutableSourceExists,\n useMutableSource\n};\n\nconst {\n mutableSourceExists: mutableSourceExists$1\n} = Recoil_mutableSource;\n\nconst gks = new Map().set('recoil_hamt_2020', true).set('recoil_memory_managament_2020', true).set('recoil_suppress_rerender_in_callback', true);\n\nfunction Recoil_gkx(gk) {\n var _gks$get;\n\n if (gk === 'recoil_early_rendering_2021' && !mutableSourceExists$1()) {\n return false;\n }\n\n return (_gks$get = gks.get(gk)) !== null && _gks$get !== void 0 ? _gks$get : false;\n}\n\nRecoil_gkx.setPass = gk => {\n gks.set(gk, true);\n};\n\nRecoil_gkx.setFail = gk => {\n gks.set(gk, false);\n};\n\nvar Recoil_gkx_1 = Recoil_gkx; // @oss-only\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Creates a new iterable whose output is generated by passing the input\n * iterable's values through the mapper function.\n */\n\nfunction mapIterable(iterable, callback) {\n // Use generator to create iterable/iterator\n return function* () {\n let index = 0;\n\n for (const value of iterable) {\n yield callback(value, index++);\n }\n }();\n}\n\nvar Recoil_mapIterable = mapIterable;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction recoverableViolation(message, projectName, {\n error\n} = {}) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(message, error);\n }\n\n return null;\n}\n\nvar recoverableViolation_1 = recoverableViolation;\n\n// @oss-only\n\n\nvar Recoil_recoverableViolation = recoverableViolation_1;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\n// eslint-disable-next-line no-unused-vars\nclass AbstractRecoilValue {\n constructor(newKey) {\n _defineProperty(this, \"key\", void 0);\n\n this.key = newKey;\n }\n\n}\n\nclass RecoilState extends AbstractRecoilValue {}\n\nclass RecoilValueReadOnly extends AbstractRecoilValue {}\n\nfunction isRecoilValue(x) {\n return x instanceof RecoilState || x instanceof RecoilValueReadOnly;\n}\n\nvar Recoil_RecoilValue = {\n AbstractRecoilValue,\n RecoilState,\n RecoilValueReadOnly,\n isRecoilValue\n};\n\nvar Recoil_RecoilValue_1 = Recoil_RecoilValue.AbstractRecoilValue;\nvar Recoil_RecoilValue_2 = Recoil_RecoilValue.RecoilState;\nvar Recoil_RecoilValue_3 = Recoil_RecoilValue.RecoilValueReadOnly;\nvar Recoil_RecoilValue_4 = Recoil_RecoilValue.isRecoilValue;\n\nvar Recoil_RecoilValue$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n AbstractRecoilValue: Recoil_RecoilValue_1,\n RecoilState: Recoil_RecoilValue_2,\n RecoilValueReadOnly: Recoil_RecoilValue_3,\n isRecoilValue: Recoil_RecoilValue_4\n});\n\nclass DefaultValue {}\n\nconst DEFAULT_VALUE = new DefaultValue();\n\nclass RecoilValueNotReady extends Error {\n constructor(key) {\n super(`Tried to set the value of Recoil selector ${key} using an updater function, but it is an async selector in a pending or error state; this is not supported.`);\n }\n\n}\n\n// flowlint-next-line unclear-type:off\nconst nodes = new Map(); // flowlint-next-line unclear-type:off\n\nconst recoilValues = new Map();\n/* eslint-disable no-redeclare */\n\nfunction recoilValuesForKeys(keys) {\n return Recoil_mapIterable(keys, key => Recoil_nullthrows(recoilValues.get(key)));\n}\n\nfunction registerNode(node) {\n if (nodes.has(node.key)) {\n const message = `Duplicate atom key \"${node.key}\". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.`; // TODO Need to figure out if there is a standard/open-source equivalent to see if hot module replacement is happening:\n // prettier-ignore\n // @fb-only: if (__DEV__) {\n // @fb-only: const isAcceptingUpdate = require('__debug').isAcceptingUpdate;\n // prettier-ignore\n // @fb-only: if (typeof isAcceptingUpdate !== 'function' || !isAcceptingUpdate()) {\n // @fb-only: expectationViolation(message, 'recoil');\n // @fb-only: }\n // prettier-ignore\n // @fb-only: } else {\n // @fb-only: recoverableViolation(message, 'recoil');\n // @fb-only: }\n\n console.warn(message); // @oss-only\n }\n\n nodes.set(node.key, node);\n const recoilValue = node.set == null ? new Recoil_RecoilValue$1.RecoilValueReadOnly(node.key) : new Recoil_RecoilValue$1.RecoilState(node.key);\n recoilValues.set(node.key, recoilValue);\n return recoilValue;\n}\n/* eslint-enable no-redeclare */\n\n\nclass NodeMissingError extends Error {} // flowlint-next-line unclear-type:off\n\n\nfunction getNode(key) {\n const node = nodes.get(key);\n\n if (node == null) {\n throw new NodeMissingError(`Missing definition for RecoilValue: \"${key}\"\"`);\n }\n\n return node;\n} // flowlint-next-line unclear-type:off\n\n\nfunction getNodeMaybe(key) {\n return nodes.get(key);\n}\n\nconst configDeletionHandlers = new Map();\n\nfunction deleteNodeConfigIfPossible(key) {\n var _node$shouldDeleteCon;\n\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n const node = nodes.get(key);\n\n if (node === null || node === void 0 ? void 0 : (_node$shouldDeleteCon = node.shouldDeleteConfigOnRelease) === null || _node$shouldDeleteCon === void 0 ? void 0 : _node$shouldDeleteCon.call(node)) {\n var _getConfigDeletionHan;\n\n nodes.delete(key);\n (_getConfigDeletionHan = getConfigDeletionHandler(key)) === null || _getConfigDeletionHan === void 0 ? void 0 : _getConfigDeletionHan();\n configDeletionHandlers.delete(key);\n }\n}\n\nfunction setConfigDeletionHandler(key, fn) {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n if (fn === undefined) {\n configDeletionHandlers.delete(key);\n } else {\n configDeletionHandlers.set(key, fn);\n }\n}\n\nfunction getConfigDeletionHandler(key) {\n return configDeletionHandlers.get(key);\n}\n\nvar Recoil_Node = {\n nodes,\n recoilValues,\n registerNode,\n getNode,\n getNodeMaybe,\n deleteNodeConfigIfPossible,\n setConfigDeletionHandler,\n getConfigDeletionHandler,\n recoilValuesForKeys,\n NodeMissingError,\n DefaultValue,\n DEFAULT_VALUE,\n RecoilValueNotReady\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction enqueueExecution(s, f) {\n f();\n}\n\nvar Recoil_Queue = {\n enqueueExecution\n};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar hamt_1 = createCommonjsModule(function (module) {\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/**\n @fileOverview Hash Array Mapped Trie.\n\n Code based on: https://github.com/exclipy/pdata\n*/\n\n\nvar hamt = {}; // export\n\n/* Configuration\n ******************************************************************************/\n\nvar SIZE = 5;\nvar BUCKET_SIZE = Math.pow(2, SIZE);\nvar MASK = BUCKET_SIZE - 1;\nvar MAX_INDEX_NODE = BUCKET_SIZE / 2;\nvar MIN_ARRAY_NODE = BUCKET_SIZE / 4;\n/*\n ******************************************************************************/\n\nvar nothing = {};\n\nvar constant = function constant(x) {\n return function () {\n return x;\n };\n};\n/**\n Get 32 bit hash of string.\n\n Based on:\n http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery\n*/\n\n\nvar hash = hamt.hash = function (str) {\n var type = typeof str === 'undefined' ? 'undefined' : _typeof(str);\n if (type === 'number') return str;\n if (type !== 'string') str += '';\n var hash = 0;\n\n for (var i = 0, len = str.length; i < len; ++i) {\n var c = str.charCodeAt(i);\n hash = (hash << 5) - hash + c | 0;\n }\n\n return hash;\n};\n/* Bit Ops\n ******************************************************************************/\n\n/**\n Hamming weight.\n\n Taken from: http://jsperf.com/hamming-weight\n*/\n\n\nvar popcount = function popcount(x) {\n x -= x >> 1 & 0x55555555;\n x = (x & 0x33333333) + (x >> 2 & 0x33333333);\n x = x + (x >> 4) & 0x0f0f0f0f;\n x += x >> 8;\n x += x >> 16;\n return x & 0x7f;\n};\n\nvar hashFragment = function hashFragment(shift, h) {\n return h >>> shift & MASK;\n};\n\nvar toBitmap = function toBitmap(x) {\n return 1 << x;\n};\n\nvar fromBitmap = function fromBitmap(bitmap, bit) {\n return popcount(bitmap & bit - 1);\n};\n/* Array Ops\n ******************************************************************************/\n\n/**\n Set a value in an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to change.\n @param v New value\n @param arr Array.\n*/\n\n\nvar arrayUpdate = function arrayUpdate(mutate, at, v, arr) {\n var out = arr;\n\n if (!mutate) {\n var len = arr.length;\n out = new Array(len);\n\n for (var i = 0; i < len; ++i) {\n out[i] = arr[i];\n }\n }\n\n out[at] = v;\n return out;\n};\n/**\n Remove a value from an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to remove.\n @param arr Array.\n*/\n\n\nvar arraySpliceOut = function arraySpliceOut(mutate, at, arr) {\n var newLen = arr.length - 1;\n var i = 0;\n var g = 0;\n var out = arr;\n\n if (mutate) {\n i = g = at;\n } else {\n out = new Array(newLen);\n\n while (i < at) {\n out[g++] = arr[i++];\n }\n }\n\n ++i;\n\n while (i <= newLen) {\n out[g++] = arr[i++];\n }\n\n if (mutate) {\n out.length = newLen;\n }\n\n return out;\n};\n/**\n Insert a value into an array.\n\n @param mutate Should the input array be mutated?\n @param at Index to insert at.\n @param v Value to insert,\n @param arr Array.\n*/\n\n\nvar arraySpliceIn = function arraySpliceIn(mutate, at, v, arr) {\n var len = arr.length;\n\n if (mutate) {\n var _i = len;\n\n while (_i >= at) {\n arr[_i--] = arr[_i];\n }\n\n arr[at] = v;\n return arr;\n }\n\n var i = 0,\n g = 0;\n var out = new Array(len + 1);\n\n while (i < at) {\n out[g++] = arr[i++];\n }\n\n out[at] = v;\n\n while (i < len) {\n out[++g] = arr[i++];\n }\n\n return out;\n};\n/* Node Structures\n ******************************************************************************/\n\n\nvar LEAF = 1;\nvar COLLISION = 2;\nvar INDEX = 3;\nvar ARRAY = 4;\n/**\n Empty node.\n*/\n\nvar empty = {\n __hamt_isEmpty: true\n};\n\nvar isEmptyNode = function isEmptyNode(x) {\n return x === empty || x && x.__hamt_isEmpty;\n};\n/**\n Leaf holding a value.\n\n @member edit Edit of the node.\n @member hash Hash of key.\n @member key Key.\n @member value Value stored.\n*/\n\n\nvar Leaf = function Leaf(edit, hash, key, value) {\n return {\n type: LEAF,\n edit: edit,\n hash: hash,\n key: key,\n value: value,\n _modify: Leaf__modify\n };\n};\n/**\n Leaf holding multiple values with the same hash but different keys.\n\n @member edit Edit of the node.\n @member hash Hash of key.\n @member children Array of collision children node.\n*/\n\n\nvar Collision = function Collision(edit, hash, children) {\n return {\n type: COLLISION,\n edit: edit,\n hash: hash,\n children: children,\n _modify: Collision__modify\n };\n};\n/**\n Internal node with a sparse set of children.\n\n Uses a bitmap and array to pack children.\n\n @member edit Edit of the node.\n @member mask Bitmap that encode the positions of children in the array.\n @member children Array of child nodes.\n*/\n\n\nvar IndexedNode = function IndexedNode(edit, mask, children) {\n return {\n type: INDEX,\n edit: edit,\n mask: mask,\n children: children,\n _modify: IndexedNode__modify\n };\n};\n/**\n Internal node with many children.\n\n @member edit Edit of the node.\n @member size Number of children.\n @member children Array of child nodes.\n*/\n\n\nvar ArrayNode = function ArrayNode(edit, size, children) {\n return {\n type: ARRAY,\n edit: edit,\n size: size,\n children: children,\n _modify: ArrayNode__modify\n };\n};\n/**\n Is `node` a leaf node?\n*/\n\n\nvar isLeaf = function isLeaf(node) {\n return node === empty || node.type === LEAF || node.type === COLLISION;\n};\n/* Internal node operations.\n ******************************************************************************/\n\n/**\n Expand an indexed node into an array node.\n\n @param edit Current edit.\n @param frag Index of added child.\n @param child Added child.\n @param mask Index node mask before child added.\n @param subNodes Index node children before child added.\n*/\n\n\nvar expand = function expand(edit, frag, child, bitmap, subNodes) {\n var arr = [];\n var bit = bitmap;\n var count = 0;\n\n for (var i = 0; bit; ++i) {\n if (bit & 1) arr[i] = subNodes[count++];\n bit >>>= 1;\n }\n\n arr[frag] = child;\n return ArrayNode(edit, count + 1, arr);\n};\n/**\n Collapse an array node into a indexed node.\n\n @param edit Current edit.\n @param count Number of elements in new array.\n @param removed Index of removed element.\n @param elements Array node children before remove.\n*/\n\n\nvar pack = function pack(edit, count, removed, elements) {\n var children = new Array(count - 1);\n var g = 0;\n var bitmap = 0;\n\n for (var i = 0, len = elements.length; i < len; ++i) {\n if (i !== removed) {\n var elem = elements[i];\n\n if (elem && !isEmptyNode(elem)) {\n children[g++] = elem;\n bitmap |= 1 << i;\n }\n }\n }\n\n return IndexedNode(edit, bitmap, children);\n};\n/**\n Merge two leaf nodes.\n\n @param shift Current shift.\n @param h1 Node 1 hash.\n @param n1 Node 1.\n @param h2 Node 2 hash.\n @param n2 Node 2.\n*/\n\n\nvar mergeLeaves = function mergeLeaves(edit, shift, h1, n1, h2, n2) {\n if (h1 === h2) return Collision(edit, h1, [n2, n1]);\n var subH1 = hashFragment(shift, h1);\n var subH2 = hashFragment(shift, h2);\n return IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), subH1 === subH2 ? [mergeLeaves(edit, shift + SIZE, h1, n1, h2, n2)] : subH1 < subH2 ? [n1, n2] : [n2, n1]);\n};\n/**\n Update an entry in a collision list.\n\n @param mutate Should mutation be used?\n @param edit Current edit.\n @param keyEq Key compare function.\n @param hash Hash of collision.\n @param list Collision list.\n @param f Update function.\n @param k Key to update.\n @param size Size ref.\n*/\n\n\nvar updateCollisionList = function updateCollisionList(mutate, edit, keyEq, h, list, f, k, size) {\n var len = list.length;\n\n for (var i = 0; i < len; ++i) {\n var child = list[i];\n\n if (keyEq(k, child.key)) {\n var value = child.value;\n\n var _newValue = f(value);\n\n if (_newValue === value) return list;\n\n if (_newValue === nothing) {\n --size.value;\n return arraySpliceOut(mutate, i, list);\n }\n\n return arrayUpdate(mutate, i, Leaf(edit, h, k, _newValue), list);\n }\n }\n\n var newValue = f();\n if (newValue === nothing) return list;\n ++size.value;\n return arrayUpdate(mutate, len, Leaf(edit, h, k, newValue), list);\n};\n\nvar canEditNode = function canEditNode(edit, node) {\n return edit === node.edit;\n};\n/* Editing\n ******************************************************************************/\n\n\nvar Leaf__modify = function Leaf__modify(edit, keyEq, shift, f, h, k, size) {\n if (keyEq(k, this.key)) {\n var _v = f(this.value);\n\n if (_v === this.value) return this;else if (_v === nothing) {\n --size.value;\n return empty;\n }\n\n if (canEditNode(edit, this)) {\n this.value = _v;\n return this;\n }\n\n return Leaf(edit, h, k, _v);\n }\n\n var v = f();\n if (v === nothing) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));\n};\n\nvar Collision__modify = function Collision__modify(edit, keyEq, shift, f, h, k, size) {\n if (h === this.hash) {\n var canEdit = canEditNode(edit, this);\n var list = updateCollisionList(canEdit, edit, keyEq, this.hash, this.children, f, k, size);\n if (list === this.children) return this;\n return list.length > 1 ? Collision(edit, this.hash, list) : list[0]; // collapse single element collision list\n }\n\n var v = f();\n if (v === nothing) return this;\n ++size.value;\n return mergeLeaves(edit, shift, this.hash, this, h, Leaf(edit, h, k, v));\n};\n\nvar IndexedNode__modify = function IndexedNode__modify(edit, keyEq, shift, f, h, k, size) {\n var mask = this.mask;\n var children = this.children;\n var frag = hashFragment(shift, h);\n var bit = toBitmap(frag);\n var indx = fromBitmap(mask, bit);\n var exists = mask & bit;\n var current = exists ? children[indx] : empty;\n\n var child = current._modify(edit, keyEq, shift + SIZE, f, h, k, size);\n\n if (current === child) return this;\n var canEdit = canEditNode(edit, this);\n var bitmap = mask;\n var newChildren = void 0;\n\n if (exists && isEmptyNode(child)) {\n // remove\n bitmap &= ~bit;\n if (!bitmap) return empty;\n if (children.length <= 2 && isLeaf(children[indx ^ 1])) return children[indx ^ 1]; // collapse\n\n newChildren = arraySpliceOut(canEdit, indx, children);\n } else if (!exists && !isEmptyNode(child)) {\n // add\n if (children.length >= MAX_INDEX_NODE) return expand(edit, frag, child, mask, children);\n bitmap |= bit;\n newChildren = arraySpliceIn(canEdit, indx, child, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, indx, child, children);\n }\n\n if (canEdit) {\n this.mask = bitmap;\n this.children = newChildren;\n return this;\n }\n\n return IndexedNode(edit, bitmap, newChildren);\n};\n\nvar ArrayNode__modify = function ArrayNode__modify(edit, keyEq, shift, f, h, k, size) {\n var count = this.size;\n var children = this.children;\n var frag = hashFragment(shift, h);\n var child = children[frag];\n\n var newChild = (child || empty)._modify(edit, keyEq, shift + SIZE, f, h, k, size);\n\n if (child === newChild) return this;\n var canEdit = canEditNode(edit, this);\n var newChildren = void 0;\n\n if (isEmptyNode(child) && !isEmptyNode(newChild)) {\n // add\n ++count;\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n } else if (!isEmptyNode(child) && isEmptyNode(newChild)) {\n // remove\n --count;\n if (count <= MIN_ARRAY_NODE) return pack(edit, count, frag, children);\n newChildren = arrayUpdate(canEdit, frag, empty, children);\n } else {\n // modify\n newChildren = arrayUpdate(canEdit, frag, newChild, children);\n }\n\n if (canEdit) {\n this.size = count;\n this.children = newChildren;\n return this;\n }\n\n return ArrayNode(edit, count, newChildren);\n};\n\nempty._modify = function (edit, keyEq, shift, f, h, k, size) {\n var v = f();\n if (v === nothing) return empty;\n ++size.value;\n return Leaf(edit, h, k, v);\n};\n/*\n ******************************************************************************/\n\n\nfunction Map(editable, edit, config, root, size) {\n this._editable = editable;\n this._edit = edit;\n this._config = config;\n this._root = root;\n this._size = size;\n}\n\nMap.prototype.setTree = function (newRoot, newSize) {\n if (this._editable) {\n this._root = newRoot;\n this._size = newSize;\n return this;\n }\n\n return newRoot === this._root ? this : new Map(this._editable, this._edit, this._config, newRoot, newSize);\n};\n/* Queries\n ******************************************************************************/\n\n/**\n Lookup the value for `key` in `map` using a custom `hash`.\n\n Returns the value or `alt` if none.\n*/\n\n\nvar tryGetHash = hamt.tryGetHash = function (alt, hash, key, map) {\n var node = map._root;\n var shift = 0;\n var keyEq = map._config.keyEq;\n\n while (true) {\n switch (node.type) {\n case LEAF:\n {\n return keyEq(key, node.key) ? node.value : alt;\n }\n\n case COLLISION:\n {\n if (hash === node.hash) {\n var children = node.children;\n\n for (var i = 0, len = children.length; i < len; ++i) {\n var child = children[i];\n if (keyEq(key, child.key)) return child.value;\n }\n }\n\n return alt;\n }\n\n case INDEX:\n {\n var frag = hashFragment(shift, hash);\n var bit = toBitmap(frag);\n\n if (node.mask & bit) {\n node = node.children[fromBitmap(node.mask, bit)];\n shift += SIZE;\n break;\n }\n\n return alt;\n }\n\n case ARRAY:\n {\n node = node.children[hashFragment(shift, hash)];\n\n if (node) {\n shift += SIZE;\n break;\n }\n\n return alt;\n }\n\n default:\n return alt;\n }\n }\n};\n\nMap.prototype.tryGetHash = function (alt, hash, key) {\n return tryGetHash(alt, hash, key, this);\n};\n/**\n Lookup the value for `key` in `map` using internal hash function.\n\n @see `tryGetHash`\n*/\n\n\nvar tryGet = hamt.tryGet = function (alt, key, map) {\n return tryGetHash(alt, map._config.hash(key), key, map);\n};\n\nMap.prototype.tryGet = function (alt, key) {\n return tryGet(alt, key, this);\n};\n/**\n Lookup the value for `key` in `map` using a custom `hash`.\n\n Returns the value or `undefined` if none.\n*/\n\n\nvar getHash = hamt.getHash = function (hash, key, map) {\n return tryGetHash(undefined, hash, key, map);\n};\n\nMap.prototype.getHash = function (hash, key) {\n return getHash(hash, key, this);\n};\n/**\n Lookup the value for `key` in `map` using internal hash function.\n\n @see `get`\n*/\n\n\nvar get = hamt.get = function (key, map) {\n return tryGetHash(undefined, map._config.hash(key), key, map);\n};\n\nMap.prototype.get = function (key, alt) {\n return tryGet(alt, key, this);\n};\n/**\n Does an entry exist for `key` in `map`? Uses custom `hash`.\n*/\n\n\nvar hasHash = hamt.has = function (hash, key, map) {\n return tryGetHash(nothing, hash, key, map) !== nothing;\n};\n\nMap.prototype.hasHash = function (hash, key) {\n return hasHash(hash, key, this);\n};\n/**\n Does an entry exist for `key` in `map`? Uses internal hash function.\n*/\n\n\nvar has = hamt.has = function (key, map) {\n return hasHash(map._config.hash(key), key, map);\n};\n\nMap.prototype.has = function (key) {\n return has(key, this);\n};\n\nvar defKeyCompare = function defKeyCompare(x, y) {\n return x === y;\n};\n/**\n Create an empty map.\n\n @param config Configuration.\n*/\n\n\nhamt.make = function (config) {\n return new Map(0, 0, {\n keyEq: config && config.keyEq || defKeyCompare,\n hash: config && config.hash || hash\n }, empty, 0);\n};\n/**\n Empty map.\n*/\n\n\nhamt.empty = hamt.make();\n/**\n Does `map` contain any elements?\n*/\n\nvar isEmpty = hamt.isEmpty = function (map) {\n return map && !!isEmptyNode(map._root);\n};\n\nMap.prototype.isEmpty = function () {\n return isEmpty(this);\n};\n/* Updates\n ******************************************************************************/\n\n/**\n Alter the value stored for `key` in `map` using function `f` using\n custom hash.\n\n `f` is invoked with the current value for `k` if it exists,\n or no arguments if no such value exists. `modify` will always either\n update or insert a value into the map.\n\n Returns a map with the modified value. Does not alter `map`.\n*/\n\n\nvar modifyHash = hamt.modifyHash = function (f, hash, key, map) {\n var size = {\n value: map._size\n };\n\n var newRoot = map._root._modify(map._editable ? map._edit : NaN, map._config.keyEq, 0, f, hash, key, size);\n\n return map.setTree(newRoot, size.value);\n};\n\nMap.prototype.modifyHash = function (hash, key, f) {\n return modifyHash(f, hash, key, this);\n};\n/**\n Alter the value stored for `key` in `map` using function `f` using\n internal hash function.\n\n @see `modifyHash`\n*/\n\n\nvar modify = hamt.modify = function (f, key, map) {\n return modifyHash(f, map._config.hash(key), key, map);\n};\n\nMap.prototype.modify = function (key, f) {\n return modify(f, key, this);\n};\n/**\n Store `value` for `key` in `map` using custom `hash`.\n\n Returns a map with the modified value. Does not alter `map`.\n*/\n\n\nvar setHash = hamt.setHash = function (hash, key, value, map) {\n return modifyHash(constant(value), hash, key, map);\n};\n\nMap.prototype.setHash = function (hash, key, value) {\n return setHash(hash, key, value, this);\n};\n/**\n Store `value` for `key` in `map` using internal hash function.\n\n @see `setHash`\n*/\n\n\nvar set = hamt.set = function (key, value, map) {\n return setHash(map._config.hash(key), key, value, map);\n};\n\nMap.prototype.set = function (key, value) {\n return set(key, value, this);\n};\n/**\n Remove the entry for `key` in `map`.\n\n Returns a map with the value removed. Does not alter `map`.\n*/\n\n\nvar del = constant(nothing);\n\nvar removeHash = hamt.removeHash = function (hash, key, map) {\n return modifyHash(del, hash, key, map);\n};\n\nMap.prototype.removeHash = Map.prototype.deleteHash = function (hash, key) {\n return removeHash(hash, key, this);\n};\n/**\n Remove the entry for `key` in `map` using internal hash function.\n\n @see `removeHash`\n*/\n\n\nvar remove = hamt.remove = function (key, map) {\n return removeHash(map._config.hash(key), key, map);\n};\n\nMap.prototype.remove = Map.prototype.delete = function (key) {\n return remove(key, this);\n};\n/* Mutation\n ******************************************************************************/\n\n/**\n Mark `map` as mutable.\n */\n\n\nvar beginMutation = hamt.beginMutation = function (map) {\n return new Map(map._editable + 1, map._edit + 1, map._config, map._root, map._size);\n};\n\nMap.prototype.beginMutation = function () {\n return beginMutation(this);\n};\n/**\n Mark `map` as immutable.\n */\n\n\nvar endMutation = hamt.endMutation = function (map) {\n map._editable = map._editable && map._editable - 1;\n return map;\n};\n\nMap.prototype.endMutation = function () {\n return endMutation(this);\n};\n/**\n Mutate `map` within the context of `f`.\n @param f\n @param map HAMT\n*/\n\n\nvar mutate = hamt.mutate = function (f, map) {\n var transient = beginMutation(map);\n f(transient);\n return endMutation(transient);\n};\n\nMap.prototype.mutate = function (f) {\n return mutate(f, this);\n};\n/* Traversal\n ******************************************************************************/\n\n/**\n Apply a continuation.\n*/\n\n\nvar appk = function appk(k) {\n return k && lazyVisitChildren(k[0], k[1], k[2], k[3], k[4]);\n};\n/**\n Recursively visit all values stored in an array of nodes lazily.\n*/\n\n\nvar lazyVisitChildren = function lazyVisitChildren(len, children, i, f, k) {\n while (i < len) {\n var child = children[i++];\n if (child && !isEmptyNode(child)) return lazyVisit(child, f, [len, children, i, f, k]);\n }\n\n return appk(k);\n};\n/**\n Recursively visit all values stored in `node` lazily.\n*/\n\n\nvar lazyVisit = function lazyVisit(node, f, k) {\n switch (node.type) {\n case LEAF:\n return {\n value: f(node),\n rest: k\n };\n\n case COLLISION:\n case ARRAY:\n case INDEX:\n var children = node.children;\n return lazyVisitChildren(children.length, children, 0, f, k);\n\n default:\n return appk(k);\n }\n};\n\nvar DONE = {\n done: true\n};\n/**\n Javascript iterator over a map.\n*/\n\nfunction MapIterator(v) {\n this.v = v;\n}\n\nMapIterator.prototype.next = function () {\n if (!this.v) return DONE;\n var v0 = this.v;\n this.v = appk(v0.rest);\n return v0;\n};\n\nMapIterator.prototype[Symbol.iterator] = function () {\n return this;\n};\n/**\n Lazily visit each value in map with function `f`.\n*/\n\n\nvar visit = function visit(map, f) {\n return new MapIterator(lazyVisit(map._root, f));\n};\n/**\n Get a Javascsript iterator of `map`.\n\n Iterates over `[key, value]` arrays.\n*/\n\n\nvar buildPairs = function buildPairs(x) {\n return [x.key, x.value];\n};\n\nvar entries = hamt.entries = function (map) {\n return visit(map, buildPairs);\n};\n\nMap.prototype.entries = Map.prototype[Symbol.iterator] = function () {\n return entries(this);\n};\n/**\n Get array of all keys in `map`.\n\n Order is not guaranteed.\n*/\n\n\nvar buildKeys = function buildKeys(x) {\n return x.key;\n};\n\nvar keys = hamt.keys = function (map) {\n return visit(map, buildKeys);\n};\n\nMap.prototype.keys = function () {\n return keys(this);\n};\n/**\n Get array of all values in `map`.\n\n Order is not guaranteed, duplicates are preserved.\n*/\n\n\nvar buildValues = function buildValues(x) {\n return x.value;\n};\n\nvar values = hamt.values = Map.prototype.values = function (map) {\n return visit(map, buildValues);\n};\n\nMap.prototype.values = function () {\n return values(this);\n};\n/* Fold\n ******************************************************************************/\n\n/**\n Visit every entry in the map, aggregating data.\n\n Order of nodes is not guaranteed.\n\n @param f Function mapping accumulated value, value, and key to new value.\n @param z Starting value.\n @param m HAMT\n*/\n\n\nvar fold = hamt.fold = function (f, z, m) {\n var root = m._root;\n if (root.type === LEAF) return f(z, root.value, root.key);\n var toVisit = [root.children];\n var children = void 0;\n\n while (children = toVisit.pop()) {\n for (var i = 0, len = children.length; i < len;) {\n var child = children[i++];\n\n if (child && child.type) {\n if (child.type === LEAF) z = f(z, child.value, child.key);else toVisit.push(child.children);\n }\n }\n }\n\n return z;\n};\n\nMap.prototype.fold = function (f, z) {\n return fold(f, z, this);\n};\n/**\n Visit every entry in the map, aggregating data.\n\n Order of nodes is not guaranteed.\n\n @param f Function invoked with value and key\n @param map HAMT\n*/\n\n\nvar forEach = hamt.forEach = function (f, map) {\n return fold(function (_, value, key) {\n return f(value, key, map);\n }, null, map);\n};\n\nMap.prototype.forEach = function (f) {\n return forEach(f, this);\n};\n/* Aggregate\n ******************************************************************************/\n\n/**\n Get the number of entries in `map`.\n*/\n\n\nvar count = hamt.count = function (map) {\n return map._size;\n};\n\nMap.prototype.count = function () {\n return count(this);\n};\n\nObject.defineProperty(Map.prototype, 'size', {\n get: Map.prototype.count\n});\n/* Export\n ******************************************************************************/\n\nif ( module.exports) {\n module.exports = hamt;\n} else {\n undefined.hamt = hamt;\n}\n});\n\nclass BuiltInMap {\n constructor(existing) {\n _defineProperty(this, \"_map\", void 0);\n\n this._map = new Map(existing === null || existing === void 0 ? void 0 : existing.entries());\n }\n\n keys() {\n return this._map.keys();\n }\n\n entries() {\n return this._map.entries();\n }\n\n get(k) {\n return this._map.get(k);\n }\n\n has(k) {\n return this._map.has(k);\n }\n\n set(k, v) {\n this._map.set(k, v);\n\n return this;\n }\n\n delete(k) {\n this._map.delete(k);\n\n return this;\n }\n\n clone() {\n return persistentMap(this);\n }\n\n toMap() {\n return new Map(this._map);\n }\n\n}\n\nclass HashArrayMappedTrieMap {\n // Because hamt.empty is not a function there is no way to introduce type\n // parameters on it, so empty is typed as HAMTPlusMap.\n // $FlowIssue\n constructor(existing) {\n _defineProperty(this, \"_hamt\", hamt_1.empty.beginMutation());\n\n if (existing instanceof HashArrayMappedTrieMap) {\n const h = existing._hamt.endMutation();\n\n existing._hamt = h.beginMutation();\n this._hamt = h.beginMutation();\n } else if (existing) {\n for (const [k, v] of existing.entries()) {\n this._hamt.set(k, v);\n }\n }\n }\n\n keys() {\n return this._hamt.keys();\n }\n\n entries() {\n return this._hamt.entries();\n }\n\n get(k) {\n return this._hamt.get(k);\n }\n\n has(k) {\n return this._hamt.has(k);\n }\n\n set(k, v) {\n this._hamt.set(k, v);\n\n return this;\n }\n\n delete(k) {\n this._hamt.delete(k);\n\n return this;\n }\n\n clone() {\n return persistentMap(this);\n }\n\n toMap() {\n return new Map(this._hamt);\n }\n\n}\n\nfunction persistentMap(existing) {\n if (Recoil_gkx_1('recoil_hamt_2020')) {\n return new HashArrayMappedTrieMap(existing);\n } else {\n return new BuiltInMap(existing);\n }\n}\n\nvar Recoil_PersistentMap = {\n persistentMap\n};\n\nvar Recoil_PersistentMap_1 = Recoil_PersistentMap.persistentMap;\n\nvar Recoil_PersistentMap$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n persistentMap: Recoil_PersistentMap_1\n});\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Returns a set containing all of the values from the first set that are not\n * present in any of the subsequent sets.\n *\n * Note: this is written procedurally (i.e., without filterSet) for performant\n * use in tight loops.\n */\n\nfunction differenceSets(set, ...setsWithValuesToRemove) {\n const ret = new Set();\n\n FIRST: for (const value of set) {\n for (const otherSet of setsWithValuesToRemove) {\n if (otherSet.has(value)) {\n continue FIRST;\n }\n }\n\n ret.add(value);\n }\n\n return ret;\n}\n\nvar Recoil_differenceSets = differenceSets;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Returns a new Map object with the same keys as the original, but with the\n * values replaced with the output of the given callback function.\n */\n\nfunction mapMap(map, callback) {\n const result = new Map();\n map.forEach((value, key) => {\n result.set(key, callback(value, key));\n });\n return result;\n}\n\nvar Recoil_mapMap = mapMap;\n\nfunction graph() {\n return {\n nodeDeps: new Map(),\n nodeToNodeSubscriptions: new Map()\n };\n}\n\nfunction cloneGraph(graph) {\n return {\n nodeDeps: Recoil_mapMap(graph.nodeDeps, s => new Set(s)),\n nodeToNodeSubscriptions: Recoil_mapMap(graph.nodeToNodeSubscriptions, s => new Set(s))\n };\n} // Note that this overwrites the deps of existing nodes, rather than unioning\n// the new deps with the old deps.\n\n\nfunction mergeDependencyMapIntoGraph(deps, graph, // If olderGraph is given then we will not overwrite changes made to the given\n// graph compared with olderGraph:\nolderGraph) {\n const {\n nodeDeps,\n nodeToNodeSubscriptions\n } = graph;\n deps.forEach((upstreams, downstream) => {\n const existingUpstreams = nodeDeps.get(downstream);\n\n if (existingUpstreams && olderGraph && existingUpstreams !== olderGraph.nodeDeps.get(downstream)) {\n return;\n } // Update nodeDeps:\n\n\n nodeDeps.set(downstream, new Set(upstreams)); // Add new deps to nodeToNodeSubscriptions:\n\n const addedUpstreams = existingUpstreams == null ? upstreams : Recoil_differenceSets(upstreams, existingUpstreams);\n addedUpstreams.forEach(upstream => {\n if (!nodeToNodeSubscriptions.has(upstream)) {\n nodeToNodeSubscriptions.set(upstream, new Set());\n }\n\n const existing = Recoil_nullthrows(nodeToNodeSubscriptions.get(upstream));\n existing.add(downstream);\n }); // Remove removed deps from nodeToNodeSubscriptions:\n\n if (existingUpstreams) {\n const removedUpstreams = Recoil_differenceSets(existingUpstreams, upstreams);\n removedUpstreams.forEach(upstream => {\n if (!nodeToNodeSubscriptions.has(upstream)) {\n return;\n }\n\n const existing = Recoil_nullthrows(nodeToNodeSubscriptions.get(upstream));\n existing.delete(downstream);\n\n if (existing.size === 0) {\n nodeToNodeSubscriptions.delete(upstream);\n }\n });\n }\n });\n}\n\nfunction saveDependencyMapToStore(dependencyMap, store, version) {\n var _storeState$nextTree, _storeState$previousT, _storeState$previousT2, _storeState$previousT3;\n\n const storeState = store.getState();\n\n if (!(version === storeState.currentTree.version || version === ((_storeState$nextTree = storeState.nextTree) === null || _storeState$nextTree === void 0 ? void 0 : _storeState$nextTree.version) || version === ((_storeState$previousT = storeState.previousTree) === null || _storeState$previousT === void 0 ? void 0 : _storeState$previousT.version))) {\n Recoil_recoverableViolation('Tried to save dependencies to a discarded tree');\n } // Merge the dependencies discovered into the store's dependency map\n // for the version that was read:\n\n\n const graph = store.getGraph(version);\n mergeDependencyMapIntoGraph(dependencyMap, graph); // If this version is not the latest version, also write these dependencies\n // into later versions if they don't already have their own:\n\n if (version === ((_storeState$previousT2 = storeState.previousTree) === null || _storeState$previousT2 === void 0 ? void 0 : _storeState$previousT2.version)) {\n const currentGraph = store.getGraph(storeState.currentTree.version);\n mergeDependencyMapIntoGraph(dependencyMap, currentGraph, graph);\n }\n\n if (version === ((_storeState$previousT3 = storeState.previousTree) === null || _storeState$previousT3 === void 0 ? void 0 : _storeState$previousT3.version) || version === storeState.currentTree.version) {\n var _storeState$nextTree2;\n\n const nextVersion = (_storeState$nextTree2 = storeState.nextTree) === null || _storeState$nextTree2 === void 0 ? void 0 : _storeState$nextTree2.version;\n\n if (nextVersion !== undefined) {\n const nextGraph = store.getGraph(nextVersion);\n mergeDependencyMapIntoGraph(dependencyMap, nextGraph, graph);\n }\n }\n}\n\nfunction mergeDepsIntoDependencyMap(from, into) {\n from.forEach((upstreamDeps, downstreamNode) => {\n if (!into.has(downstreamNode)) {\n into.set(downstreamNode, new Set());\n }\n\n const deps = Recoil_nullthrows(into.get(downstreamNode));\n upstreamDeps.forEach(dep => deps.add(dep));\n });\n}\n\nfunction addToDependencyMap(downstream, upstream, dependencyMap) {\n if (!dependencyMap.has(downstream)) {\n dependencyMap.set(downstream, new Set());\n }\n\n Recoil_nullthrows(dependencyMap.get(downstream)).add(upstream);\n}\n\nvar Recoil_Graph = {\n addToDependencyMap,\n cloneGraph,\n graph,\n mergeDepsIntoDependencyMap,\n saveDependencyMapToStore\n};\n\nconst {\n persistentMap: persistentMap$1\n} = Recoil_PersistentMap$1;\n\nconst {\n graph: graph$1\n} = Recoil_Graph;\n\nlet nextTreeStateVersion = 0;\n\nconst getNextTreeStateVersion = () => nextTreeStateVersion++;\n\nfunction makeEmptyTreeState() {\n const version = getNextTreeStateVersion();\n return {\n version,\n stateID: version,\n transactionMetadata: {},\n dirtyAtoms: new Set(),\n atomValues: persistentMap$1(),\n nonvalidatedAtoms: persistentMap$1()\n };\n}\n\nfunction makeEmptyStoreState() {\n const currentTree = makeEmptyTreeState();\n return {\n currentTree,\n nextTree: null,\n previousTree: null,\n commitDepth: 0,\n knownAtoms: new Set(),\n knownSelectors: new Set(),\n transactionSubscriptions: new Map(),\n nodeTransactionSubscriptions: new Map(),\n nodeToComponentSubscriptions: new Map(),\n queuedComponentCallbacks_DEPRECATED: [],\n suspendedComponentResolvers: new Set(),\n graphsByVersion: new Map().set(currentTree.version, graph$1()),\n versionsUsedByComponent: new Map(),\n retention: {\n referenceCounts: new Map(),\n nodesRetainedByZone: new Map(),\n retainablesToCheckForRelease: new Set()\n },\n nodeCleanupFunctions: new Map()\n };\n}\n\nvar Recoil_State = {\n makeEmptyTreeState,\n makeEmptyStoreState,\n getNextTreeStateVersion\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction unionSets(...sets) {\n const result = new Set();\n\n for (const set of sets) {\n for (const value of set) {\n result.add(value);\n }\n }\n\n return result;\n}\n\nvar Recoil_unionSets = unionSets;\n\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 * Utilities for working with built-in Maps and Sets without mutating them.\n *\n * @emails oncall+recoil\n * \n * @format\n */\n\nfunction setByAddingToSet(set, v) {\n const next = new Set(set);\n next.add(v);\n return next;\n}\n\nfunction setByDeletingFromSet(set, v) {\n const next = new Set(set);\n next.delete(v);\n return next;\n}\n\nfunction mapBySettingInMap(map, k, v) {\n const next = new Map(map);\n next.set(k, v);\n return next;\n}\n\nfunction mapByUpdatingInMap(map, k, updater) {\n const next = new Map(map);\n next.set(k, updater(next.get(k)));\n return next;\n}\n\nfunction mapByDeletingFromMap(map, k) {\n const next = new Map(map);\n next.delete(k);\n return next;\n}\n\nfunction mapByDeletingMultipleFromMap(map, ks) {\n const next = new Map(map);\n ks.forEach(k => next.delete(k));\n return next;\n}\n\nvar Recoil_CopyOnWrite = {\n setByAddingToSet,\n setByDeletingFromSet,\n mapBySettingInMap,\n mapByUpdatingInMap,\n mapByDeletingFromMap,\n mapByDeletingMultipleFromMap\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Creates a new iterable whose output is generated by passing the input\n * iterable's values through the filter function.\n */\n\nfunction* filterIterable(iterable, predicate) {\n // Use generator to create iterable/iterator\n let index = 0;\n\n for (const value of iterable) {\n if (predicate(value, index++)) {\n yield value;\n }\n }\n}\n\nvar Recoil_filterIterable = filterIterable;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nclass RetentionZone {}\n\nfunction retentionZone() {\n return new RetentionZone();\n}\n\nvar Recoil_RetentionZone = {\n RetentionZone,\n retentionZone\n};\n\nconst {\n setByAddingToSet: setByAddingToSet$1\n} = Recoil_CopyOnWrite;\n\n\n\n\n\n\n\nconst {\n getNode: getNode$1,\n getNodeMaybe: getNodeMaybe$1,\n recoilValuesForKeys: recoilValuesForKeys$1\n} = Recoil_Node;\n\nconst {\n RetentionZone: RetentionZone$1\n} = Recoil_RetentionZone; // flowlint-next-line unclear-type:off\n\n\nconst emptySet = Object.freeze(new Set());\n\nclass ReadOnlyRecoilValueError extends Error {}\n\nfunction initializeRetentionForNode(store, nodeKey, retainedBy) {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return () => undefined;\n }\n\n const {\n nodesRetainedByZone\n } = store.getState().retention;\n\n function addToZone(zone) {\n let set = nodesRetainedByZone.get(zone);\n\n if (!set) {\n nodesRetainedByZone.set(zone, set = new Set());\n }\n\n set.add(nodeKey);\n }\n\n if (retainedBy instanceof RetentionZone$1) {\n addToZone(retainedBy);\n } else if (Array.isArray(retainedBy)) {\n for (const zone of retainedBy) {\n addToZone(zone);\n }\n }\n\n return () => {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n const nodesRetainedByZone = store.getState().retention.nodesRetainedByZone;\n\n function deleteFromZone(zone) {\n const set = nodesRetainedByZone.get(zone);\n\n if (set) {\n set.delete(nodeKey);\n }\n\n if (set && set.size === 0) {\n nodesRetainedByZone.delete(zone);\n }\n }\n\n if (retainedBy instanceof RetentionZone$1) {\n deleteFromZone(retainedBy);\n } else if (Array.isArray(retainedBy)) {\n for (const zone of retainedBy) {\n deleteFromZone(zone);\n }\n }\n };\n}\n\nfunction initializeNodeIfNewToStore(store, treeState, key, trigger) {\n const storeState = store.getState();\n\n if (storeState.nodeCleanupFunctions.has(key)) {\n return;\n }\n\n const config = getNode$1(key);\n const retentionCleanup = initializeRetentionForNode(store, key, config.retainedBy);\n const nodeCleanup = config.init(store, treeState, trigger);\n storeState.nodeCleanupFunctions.set(key, () => {\n nodeCleanup();\n retentionCleanup();\n });\n}\n\nfunction cleanUpNode(store, key) {\n var _state$nodeCleanupFun;\n\n const state = store.getState();\n (_state$nodeCleanupFun = state.nodeCleanupFunctions.get(key)) === null || _state$nodeCleanupFun === void 0 ? void 0 : _state$nodeCleanupFun();\n state.nodeCleanupFunctions.delete(key);\n} // Get the current value loadable of a node and update the state.\n// Update dependencies and subscriptions for selectors.\n// Update saved value validation for atoms.\n\n\nfunction getNodeLoadable(store, state, key) {\n initializeNodeIfNewToStore(store, state, key, 'get');\n return getNode$1(key).get(store, state);\n} // Peek at the current value loadable for a node without any evaluation or state change\n\n\nfunction peekNodeLoadable(store, state, key) {\n return getNode$1(key).peek(store, state);\n} // Write value directly to state bypassing the Node interface as the node\n// definitions may not have been loaded yet when processing the initial snapshot.\n\n\nfunction setUnvalidatedAtomValue_DEPRECATED(state, key, newValue) {\n var _node$invalidate;\n\n const node = getNodeMaybe$1(key);\n node === null || node === void 0 ? void 0 : (_node$invalidate = node.invalidate) === null || _node$invalidate === void 0 ? void 0 : _node$invalidate.call(node, state);\n return { ...state,\n atomValues: state.atomValues.clone().delete(key),\n nonvalidatedAtoms: state.nonvalidatedAtoms.clone().set(key, newValue),\n dirtyAtoms: setByAddingToSet$1(state.dirtyAtoms, key)\n };\n} // Return the discovered dependencies and values to be written by setting\n// a node value. (Multiple values may be written due to selectors getting to\n// set upstreams; deps may be discovered because of reads in updater functions.)\n\n\nfunction setNodeValue(store, state, key, newValue) {\n const node = getNode$1(key);\n\n if (node.set == null) {\n throw new ReadOnlyRecoilValueError(`Attempt to set read-only RecoilValue: ${key}`);\n }\n\n const set = node.set; // so flow doesn't lose the above refinement.\n\n initializeNodeIfNewToStore(store, state, key, 'set');\n return set(store, state, newValue);\n}\n\nfunction peekNodeInfo(store, state, key) {\n var _graph$nodeDeps$get, _storeState$nodeToCom, _storeState$nodeToCom2;\n\n const storeState = store.getState();\n const graph = store.getGraph(state.version);\n const type = storeState.knownAtoms.has(key) ? 'atom' : storeState.knownSelectors.has(key) ? 'selector' : undefined;\n const downstreamNodes = Recoil_filterIterable(getDownstreamNodes(store, state, new Set([key])), nodeKey => nodeKey !== key);\n return {\n loadable: peekNodeLoadable(store, state, key),\n isActive: storeState.knownAtoms.has(key) || storeState.knownSelectors.has(key),\n isSet: type === 'selector' ? false : state.atomValues.has(key),\n isModified: state.dirtyAtoms.has(key),\n type,\n // Report current dependencies. If the node hasn't been evaluated, then\n // dependencies may be missing based on the current state.\n deps: recoilValuesForKeys$1((_graph$nodeDeps$get = graph.nodeDeps.get(key)) !== null && _graph$nodeDeps$get !== void 0 ? _graph$nodeDeps$get : []),\n // Reportsall \"current\" subscribers. Evaluating other nodes or\n // previous in-progress async evaluations may introduce new subscribers.\n subscribers: {\n nodes: recoilValuesForKeys$1(downstreamNodes),\n components: Recoil_mapIterable((_storeState$nodeToCom = (_storeState$nodeToCom2 = storeState.nodeToComponentSubscriptions.get(key)) === null || _storeState$nodeToCom2 === void 0 ? void 0 : _storeState$nodeToCom2.values()) !== null && _storeState$nodeToCom !== void 0 ? _storeState$nodeToCom : [], ([name]) => ({\n name\n }))\n }\n };\n} // Find all of the recursively dependent nodes\n\n\nfunction getDownstreamNodes(store, state, keys) {\n const visitedNodes = new Set();\n const visitingNodes = Array.from(keys);\n const graph = store.getGraph(state.version);\n\n for (let key = visitingNodes.pop(); key; key = visitingNodes.pop()) {\n var _graph$nodeToNodeSubs;\n\n visitedNodes.add(key);\n const subscribedNodes = (_graph$nodeToNodeSubs = graph.nodeToNodeSubscriptions.get(key)) !== null && _graph$nodeToNodeSubs !== void 0 ? _graph$nodeToNodeSubs : emptySet;\n\n for (const downstreamNode of subscribedNodes) {\n if (!visitedNodes.has(downstreamNode)) {\n visitingNodes.push(downstreamNode);\n }\n }\n }\n\n return visitedNodes;\n}\n\nvar Recoil_FunctionalCore = {\n getNodeLoadable,\n peekNodeLoadable,\n setNodeValue,\n cleanUpNode,\n setUnvalidatedAtomValue_DEPRECATED,\n peekNodeInfo,\n getDownstreamNodes,\n initializeNodeIfNewToStore\n};\n\nconst {\n getDownstreamNodes: getDownstreamNodes$1,\n getNodeLoadable: getNodeLoadable$1,\n setNodeValue: setNodeValue$1\n} = Recoil_FunctionalCore;\n\nconst {\n getNodeMaybe: getNodeMaybe$2\n} = Recoil_Node;\n\nconst {\n DefaultValue: DefaultValue$1,\n RecoilValueNotReady: RecoilValueNotReady$1\n} = Recoil_Node;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$1,\n RecoilState: RecoilState$1,\n RecoilValueReadOnly: RecoilValueReadOnly$1,\n isRecoilValue: isRecoilValue$1\n} = Recoil_RecoilValue$1;\n\nfunction getRecoilValueAsLoadable(store, {\n key\n}, treeState = store.getState().currentTree) {\n var _storeState$nextTree, _storeState$previousT;\n\n // Reading from an older tree can cause bugs because the dependencies that we\n // discover during the read are lost.\n const storeState = store.getState();\n\n if (!(treeState.version === storeState.currentTree.version || treeState.version === ((_storeState$nextTree = storeState.nextTree) === null || _storeState$nextTree === void 0 ? void 0 : _storeState$nextTree.version) || treeState.version === ((_storeState$previousT = storeState.previousTree) === null || _storeState$previousT === void 0 ? void 0 : _storeState$previousT.version))) {\n Recoil_recoverableViolation('Tried to read from a discarded tree');\n }\n\n const loadable = getNodeLoadable$1(store, treeState, key);\n\n if (loadable.state === 'loading') {\n loadable.contents.catch(() => {\n /**\n * HACK: intercept thrown error here to prevent an uncaught promise exception. Ideally this would happen closer to selector\n * execution (perhaps introducing a new ERROR class to be resolved by async selectors that are in an error state)\n */\n return;\n });\n }\n\n return loadable;\n}\n\nfunction applyAtomValueWrites(atomValues, writes) {\n const result = atomValues.clone();\n writes.forEach((v, k) => {\n if (v.state === 'hasValue' && v.contents instanceof DefaultValue$1) {\n result.delete(k);\n } else {\n result.set(k, v);\n }\n });\n return result;\n}\n\nfunction valueFromValueOrUpdater(store, state, {\n key\n}, valueOrUpdater) {\n if (typeof valueOrUpdater === 'function') {\n // Updater form: pass in the current value. Throw if the current value\n // is unavailable (namely when updating an async selector that's\n // pending or errored):\n const current = getNodeLoadable$1(store, state, key);\n\n if (current.state === 'loading') {\n throw new RecoilValueNotReady$1(key);\n } else if (current.state === 'hasError') {\n throw current.contents;\n } // T itself may be a function, so our refinement is not sufficient:\n\n\n return valueOrUpdater(current.contents); // flowlint-line unclear-type:off\n } else {\n return valueOrUpdater;\n }\n}\n\nfunction applyAction(store, state, action) {\n if (action.type === 'set') {\n const {\n recoilValue,\n valueOrUpdater\n } = action;\n const newValue = valueFromValueOrUpdater(store, state, recoilValue, valueOrUpdater);\n const writes = setNodeValue$1(store, state, recoilValue.key, newValue);\n\n for (const [key, loadable] of writes.entries()) {\n writeLoadableToTreeState(state, key, loadable);\n }\n } else if (action.type === 'setLoadable') {\n const {\n recoilValue: {\n key\n },\n loadable\n } = action;\n writeLoadableToTreeState(state, key, loadable);\n } else if (action.type === 'markModified') {\n const {\n recoilValue: {\n key\n }\n } = action;\n state.dirtyAtoms.add(key);\n } else if (action.type === 'setUnvalidated') {\n var _node$invalidate;\n\n // Write value directly to state bypassing the Node interface as the node\n // definitions may not have been loaded yet when processing the initial snapshot.\n const {\n recoilValue: {\n key\n },\n unvalidatedValue\n } = action;\n const node = getNodeMaybe$2(key);\n node === null || node === void 0 ? void 0 : (_node$invalidate = node.invalidate) === null || _node$invalidate === void 0 ? void 0 : _node$invalidate.call(node, state);\n state.atomValues.delete(key);\n state.nonvalidatedAtoms.set(key, unvalidatedValue);\n state.dirtyAtoms.add(key);\n } else {\n Recoil_recoverableViolation(`Unknown action ${action.type}`);\n }\n}\n\nfunction writeLoadableToTreeState(state, key, loadable) {\n if (loadable.state === 'hasValue' && loadable.contents instanceof DefaultValue$1) {\n state.atomValues.delete(key);\n } else {\n state.atomValues.set(key, loadable);\n }\n\n state.dirtyAtoms.add(key);\n state.nonvalidatedAtoms.delete(key);\n}\n\nfunction applyActionsToStore(store, actions) {\n store.replaceState(state => {\n const newState = copyTreeState(state);\n\n for (const action of actions) {\n applyAction(store, newState, action);\n }\n\n invalidateDownstreams(store, newState);\n return newState;\n });\n}\n\nfunction queueOrPerformStateUpdate(store, action) {\n if (batchStack.length) {\n const actionsByStore = batchStack[batchStack.length - 1];\n let actions = actionsByStore.get(store);\n\n if (!actions) {\n actionsByStore.set(store, actions = []);\n }\n\n actions.push(action);\n } else {\n applyActionsToStore(store, [action]);\n }\n}\n\nconst batchStack = [];\n\nfunction batchStart() {\n const actionsByStore = new Map();\n batchStack.push(actionsByStore);\n return () => {\n for (const [store, actions] of actionsByStore) {\n applyActionsToStore(store, actions);\n }\n\n const popped = batchStack.pop();\n\n if (popped !== actionsByStore) {\n Recoil_recoverableViolation('Incorrect order of batch popping');\n }\n };\n}\n\nfunction copyTreeState(state) {\n return { ...state,\n atomValues: state.atomValues.clone(),\n nonvalidatedAtoms: state.nonvalidatedAtoms.clone(),\n dirtyAtoms: new Set(state.dirtyAtoms)\n };\n}\n\nfunction invalidateDownstreams(store, state) {\n // Inform any nodes that were changed or downstream of changes so that they\n // can clear out any caches as needed due to the update:\n const downstreams = getDownstreamNodes$1(store, state, state.dirtyAtoms);\n\n for (const key of downstreams) {\n var _getNodeMaybe, _getNodeMaybe$invalid;\n\n (_getNodeMaybe = getNodeMaybe$2(key)) === null || _getNodeMaybe === void 0 ? void 0 : (_getNodeMaybe$invalid = _getNodeMaybe.invalidate) === null || _getNodeMaybe$invalid === void 0 ? void 0 : _getNodeMaybe$invalid.call(_getNodeMaybe, state);\n }\n}\n\nfunction setRecoilValue(store, recoilValue, valueOrUpdater) {\n queueOrPerformStateUpdate(store, {\n type: 'set',\n recoilValue,\n valueOrUpdater\n });\n}\n\nfunction setRecoilValueLoadable(store, recoilValue, loadable) {\n if (loadable instanceof DefaultValue$1) {\n return setRecoilValue(store, recoilValue, loadable);\n }\n\n queueOrPerformStateUpdate(store, {\n type: 'setLoadable',\n recoilValue,\n loadable: loadable\n });\n}\n\nfunction markRecoilValueModified(store, recoilValue) {\n queueOrPerformStateUpdate(store, {\n type: 'markModified',\n recoilValue\n });\n}\n\nfunction setUnvalidatedRecoilValue(store, recoilValue, unvalidatedValue) {\n queueOrPerformStateUpdate(store, {\n type: 'setUnvalidated',\n recoilValue,\n unvalidatedValue\n });\n}\n\nlet subscriptionID = 0;\n\nfunction subscribeToRecoilValue(store, {\n key\n}, callback, componentDebugName = null) {\n const subID = subscriptionID++;\n const storeState = store.getState();\n\n if (!storeState.nodeToComponentSubscriptions.has(key)) {\n storeState.nodeToComponentSubscriptions.set(key, new Map());\n }\n\n Recoil_nullthrows(storeState.nodeToComponentSubscriptions.get(key)).set(subID, [componentDebugName !== null && componentDebugName !== void 0 ? componentDebugName : '', callback]); // Handle the case that, during the same tick that we are subscribing, an atom\n // has been updated by some effect handler. Otherwise we will miss the update.\n\n if (Recoil_gkx_1('recoil_early_rendering_2021')) {\n const nextTree = store.getState().nextTree;\n\n if (nextTree && nextTree.dirtyAtoms.has(key)) {\n callback(nextTree);\n }\n }\n\n return {\n release: () => {\n const storeState = store.getState();\n const subs = storeState.nodeToComponentSubscriptions.get(key);\n\n if (subs === undefined || !subs.has(subID)) {\n Recoil_recoverableViolation(`Subscription missing at release time for atom ${key}. This is a bug in Recoil.`);\n return;\n }\n\n subs.delete(subID);\n\n if (subs.size === 0) {\n storeState.nodeToComponentSubscriptions.delete(key);\n }\n }\n };\n}\n\nvar Recoil_RecoilValueInterface = {\n RecoilValueReadOnly: RecoilValueReadOnly$1,\n AbstractRecoilValue: AbstractRecoilValue$1,\n RecoilState: RecoilState$1,\n getRecoilValueAsLoadable,\n setRecoilValue,\n setRecoilValueLoadable,\n markRecoilValueModified,\n setUnvalidatedRecoilValue,\n subscribeToRecoilValue,\n isRecoilValue: isRecoilValue$1,\n applyAtomValueWrites,\n // TODO Remove export when deprecating initialStoreState_DEPRECATED in RecoilRoot\n batchStart,\n writeLoadableToTreeState,\n invalidateDownstreams,\n copyTreeState,\n invalidateDownstreams_FOR_TESTING: invalidateDownstreams\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * The someSet() method tests whether some elements in the given Set pass the\n * test implemented by the provided function.\n */\n\nfunction someSet(set, callback, context) {\n const iterator = set.entries();\n let current = iterator.next();\n\n while (!current.done) {\n const entry = current.value;\n\n if (callback.call(context, entry[1], entry[0], set)) {\n return true;\n }\n\n current = iterator.next();\n }\n\n return false;\n}\n\nvar Recoil_someSet = someSet;\n\nconst {\n cleanUpNode: cleanUpNode$1\n} = Recoil_FunctionalCore;\n\nconst {\n deleteNodeConfigIfPossible: deleteNodeConfigIfPossible$1,\n getNode: getNode$2\n} = Recoil_Node;\n\nconst {\n RetentionZone: RetentionZone$2\n} = Recoil_RetentionZone; // Components that aren't mounted after suspending for this long will be assumed\n// to be discarded and their resources released.\n\n\nconst SUSPENSE_TIMEOUT_MS = 120000;\nconst emptySet$1 = new Set();\n\nfunction releaseRetainablesNowOnCurrentTree(store, retainables) {\n const storeState = store.getState();\n const treeState = storeState.currentTree;\n\n if (storeState.nextTree) {\n Recoil_recoverableViolation('releaseNodesNowOnCurrentTree should only be called at the end of a batch');\n return; // leak memory rather than erase something that's about to be used.\n }\n\n const nodes = new Set();\n\n for (const r of retainables) {\n if (r instanceof RetentionZone$2) {\n for (const n of nodesRetainedByZone(storeState, r)) {\n nodes.add(n);\n }\n } else {\n nodes.add(r);\n }\n }\n\n const releasableNodes = findReleasableNodes(store, nodes);\n\n for (const node of releasableNodes) {\n releaseNode(store, treeState, node);\n }\n}\n\nfunction findReleasableNodes(store, searchFromNodes) {\n const storeState = store.getState();\n const treeState = storeState.currentTree;\n const graph = store.getGraph(treeState.version);\n const releasableNodes = new Set(); // mutated to collect answer\n\n const nonReleasableNodes = new Set();\n findReleasableNodesInner(searchFromNodes);\n return releasableNodes;\n\n function findReleasableNodesInner(searchFromNodes) {\n const releasableNodesFoundThisIteration = new Set();\n const downstreams = getDownstreamNodesInTopologicalOrder(store, treeState, searchFromNodes, releasableNodes, // don't descend into these\n nonReleasableNodes // don't descend into these\n ); // Find which of the downstream nodes are releasable and which are not:\n\n for (const node of downstreams) {\n var _storeState$retention;\n\n // Not releasable if configured to be retained forever:\n if (getNode$2(node).retainedBy === 'recoilRoot') {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if retained directly by a component:\n\n\n if (((_storeState$retention = storeState.retention.referenceCounts.get(node)) !== null && _storeState$retention !== void 0 ? _storeState$retention : 0) > 0) {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if retained by a zone:\n\n\n if (zonesThatCouldRetainNode(node).some(z => storeState.retention.referenceCounts.get(z))) {\n nonReleasableNodes.add(node);\n continue;\n } // Not releasable if it has a non-releasable child (which will already be in\n // nonReleasableNodes because we are going in topological order):\n\n\n const nodeChildren = graph.nodeToNodeSubscriptions.get(node);\n\n if (nodeChildren && Recoil_someSet(nodeChildren, child => nonReleasableNodes.has(child))) {\n nonReleasableNodes.add(node);\n continue;\n }\n\n releasableNodes.add(node);\n releasableNodesFoundThisIteration.add(node);\n } // If we found any releasable nodes, we need to walk UP from those nodes to\n // find whether their parents can now be released as well:\n\n\n const parents = new Set();\n\n for (const node of releasableNodesFoundThisIteration) {\n for (const parent of (_graph$nodeDeps$get = graph.nodeDeps.get(node)) !== null && _graph$nodeDeps$get !== void 0 ? _graph$nodeDeps$get : emptySet$1) {\n var _graph$nodeDeps$get;\n\n if (!releasableNodes.has(parent)) {\n parents.add(parent);\n }\n }\n }\n\n if (parents.size) {\n findReleasableNodesInner(parents);\n }\n }\n} // Children before parents\n\n\nfunction getDownstreamNodesInTopologicalOrder(store, treeState, nodes, // Mutable set is destroyed in place\ndoNotDescendInto1, doNotDescendInto2) {\n const graph = store.getGraph(treeState.version);\n const answer = [];\n const visited = new Set();\n\n while (nodes.size > 0) {\n visit(Recoil_nullthrows(nodes.values().next().value));\n }\n\n return answer;\n\n function visit(node) {\n if (doNotDescendInto1.has(node) || doNotDescendInto2.has(node)) {\n nodes.delete(node);\n return;\n }\n\n if (visited.has(node)) {\n return;\n }\n\n const children = graph.nodeToNodeSubscriptions.get(node);\n\n if (children) {\n for (const child of children) {\n visit(child);\n }\n }\n\n visited.add(node);\n nodes.delete(node);\n answer.push(node);\n }\n}\n\nfunction releaseNode(store, treeState, node) {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n } // Atom effects, in-closure caches, etc.:\n\n\n cleanUpNode$1(store, node); // Delete from store state:\n\n const storeState = store.getState();\n storeState.knownAtoms.delete(node);\n storeState.knownSelectors.delete(node);\n storeState.nodeTransactionSubscriptions.delete(node);\n storeState.retention.referenceCounts.delete(node);\n const zones = zonesThatCouldRetainNode(node);\n\n for (const zone of zones) {\n var _storeState$retention2;\n\n (_storeState$retention2 = storeState.retention.nodesRetainedByZone.get(zone)) === null || _storeState$retention2 === void 0 ? void 0 : _storeState$retention2.delete(node);\n } // Note that we DO NOT delete from nodeToComponentSubscriptions because this\n // already happens when the last component that was retaining the node unmounts,\n // and this could happen either before or after that.\n // Delete from TreeState and dep graph:\n\n\n treeState.atomValues.delete(node);\n treeState.dirtyAtoms.delete(node);\n treeState.nonvalidatedAtoms.delete(node);\n const graph = storeState.graphsByVersion.get(treeState.version);\n\n if (graph) {\n const deps = graph.nodeDeps.get(node);\n\n if (deps !== undefined) {\n graph.nodeDeps.delete(node);\n\n for (const dep of deps) {\n var _graph$nodeToNodeSubs;\n\n (_graph$nodeToNodeSubs = graph.nodeToNodeSubscriptions.get(dep)) === null || _graph$nodeToNodeSubs === void 0 ? void 0 : _graph$nodeToNodeSubs.delete(node);\n }\n } // No need to delete sub's deps as there should be no subs at this point.\n // But an invariant would require deleting nodes in topological order.\n\n\n graph.nodeToNodeSubscriptions.delete(node);\n } // Node config (for family members only as their configs can be recreated, and\n // only if they are not retained within any other Stores):\n\n\n deleteNodeConfigIfPossible$1(node);\n}\n\nfunction nodesRetainedByZone(storeState, zone) {\n var _storeState$retention3;\n\n return (_storeState$retention3 = storeState.retention.nodesRetainedByZone.get(zone)) !== null && _storeState$retention3 !== void 0 ? _storeState$retention3 : emptySet$1;\n}\n\nfunction zonesThatCouldRetainNode(node) {\n const retainedBy = getNode$2(node).retainedBy;\n\n if (retainedBy === undefined || retainedBy === 'components' || retainedBy === 'recoilRoot') {\n return [];\n } else if (retainedBy instanceof RetentionZone$2) {\n return [retainedBy];\n } else {\n return retainedBy; // it's an array of zones\n }\n}\n\nfunction scheduleOrPerformPossibleReleaseOfRetainable(store, retainable) {\n const state = store.getState();\n\n if (state.nextTree) {\n state.retention.retainablesToCheckForRelease.add(retainable);\n } else {\n releaseRetainablesNowOnCurrentTree(store, new Set([retainable]));\n }\n}\n\nfunction updateRetainCount(store, retainable, delta) {\n var _map$get;\n\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n const map = store.getState().retention.referenceCounts;\n const newCount = ((_map$get = map.get(retainable)) !== null && _map$get !== void 0 ? _map$get : 0) + delta;\n\n if (newCount === 0) {\n updateRetainCountToZero(store, retainable);\n } else {\n map.set(retainable, newCount);\n }\n}\n\nfunction updateRetainCountToZero(store, retainable) {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n const map = store.getState().retention.referenceCounts;\n map.delete(retainable);\n scheduleOrPerformPossibleReleaseOfRetainable(store, retainable);\n}\n\nfunction releaseScheduledRetainablesNow(store) {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n const state = store.getState();\n releaseRetainablesNowOnCurrentTree(store, state.retention.retainablesToCheckForRelease);\n state.retention.retainablesToCheckForRelease.clear();\n}\n\nfunction retainedByOptionWithDefault(r) {\n // The default will change from 'recoilRoot' to 'components' in the future.\n return r === undefined ? 'recoilRoot' : r;\n}\n\nvar Recoil_Retention = {\n SUSPENSE_TIMEOUT_MS,\n updateRetainCount,\n updateRetainCountToZero,\n releaseScheduledRetainablesNow,\n retainedByOptionWithDefault\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Combines multiple Iterables into a single Iterable.\n * Traverses the input Iterables in the order provided and maintains the order\n * of their elements.\n *\n * Example:\n * ```\n * const r = Array.from(concatIterables(['a', 'b'], ['c'], ['d', 'e', 'f']));\n * r == ['a', 'b', 'c', 'd', 'e', 'f'];\n * ```\n */\n\nfunction* concatIterables(iters) {\n for (const iter of iters) {\n for (const val of iter) {\n yield val;\n }\n }\n}\n\nvar Recoil_concatIterables = concatIterables;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nconst isSSR = typeof window === 'undefined';\nconst isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; // eslint-disable-line fb-www/typeof-undefined\n\nvar Recoil_Environment = {\n isSSR,\n isReactNative\n};\n\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 * @emails oncall+recoil\n * \n * @format\n *\n * This is to export esstiential functions from react-dom\n * for our web build\n */\nconst {\n unstable_batchedUpdates\n} = reactDom;\n\nvar ReactBatchedUpdates = {\n unstable_batchedUpdates\n};\n\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 * @emails oncall+recoil\n * \n * @format\n *\n * This is to export esstiential functions from react-dom\n * for our web build\n */\n// @fb-only: const {unstable_batchedUpdates} = require('ReactDOMComet');\n// prettier-ignore\nconst {\n unstable_batchedUpdates: unstable_batchedUpdates$1\n} = ReactBatchedUpdates; // @oss-only\n\n\nvar Recoil_ReactBatchedUpdates = {\n unstable_batchedUpdates: unstable_batchedUpdates$1\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\nconst {\n batchStart: batchStart$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n unstable_batchedUpdates: unstable_batchedUpdates$2\n} = Recoil_ReactBatchedUpdates;\n\nlet batcher = unstable_batchedUpdates$2; // flowlint-next-line unclear-type:off\n\n/**\n * Sets the provided batcher function as the batcher function used by Recoil.\n *\n * Set the batcher to a custom batcher for your renderer,\n * if you use a renderer other than React DOM or React Native.\n */\nconst setBatcher = newBatcher => {\n batcher = newBatcher;\n};\n/**\n * Returns the current batcher function.\n */\n\n\nconst getBatcher = () => batcher;\n/**\n * Calls the current batcher function and passes the\n * provided callback function.\n */\n\n\nconst batchUpdates = callback => {\n batcher(() => {\n let batchEnd = () => undefined;\n\n try {\n batchEnd = batchStart$1();\n callback();\n } finally {\n batchEnd();\n }\n });\n};\n\nvar Recoil_Batching = {\n getBatcher,\n setBatcher,\n batchUpdates\n};\n\nconst {\n isSSR: isSSR$1\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\n\n\nconst {\n batchUpdates: batchUpdates$1\n} = Recoil_Batching;\n\nconst {\n initializeNodeIfNewToStore: initializeNodeIfNewToStore$1,\n peekNodeInfo: peekNodeInfo$1\n} = Recoil_FunctionalCore;\n\nconst {\n graph: graph$2\n} = Recoil_Graph;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$1,\n recoilValues: recoilValues$1,\n recoilValuesForKeys: recoilValuesForKeys$2\n} = Recoil_Node;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$2,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$1,\n setRecoilValue: setRecoilValue$1,\n setUnvalidatedRecoilValue: setUnvalidatedRecoilValue$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n updateRetainCount: updateRetainCount$1\n} = Recoil_Retention;\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$1,\n makeEmptyStoreState: makeEmptyStoreState$1\n} = Recoil_State; // Opaque at this surface because it's part of the public API from here.\n\n\nconst retainWarning = `\nRecoil Snapshots only last for the duration of the callback they are provided to. To keep a Snapshot longer, do this:\n\n const release = snapshot.retain();\n try {\n await useTheSnapshotAsynchronously(snapshot);\n } finally {\n release();\n }\n\nThis is currently a DEV-only warning but will become a thrown exception in the next release of Recoil.\n`; // A \"Snapshot\" is \"read-only\" and captures a specific set of values of atoms.\n// However, the data-flow-graph and selector values may evolve as selector\n// evaluation functions are executed and async selectors resolve.\n\nclass Snapshot {\n constructor(storeState) {\n _defineProperty(this, \"_store\", void 0);\n\n _defineProperty(this, \"_refCount\", 0);\n\n _defineProperty(this, \"getLoadable\", recoilValue => {\n this.checkRefCount_INTERNAL();\n return getRecoilValueAsLoadable$1(this._store, recoilValue);\n });\n\n _defineProperty(this, \"getPromise\", recoilValue => {\n this.checkRefCount_INTERNAL();\n return this.getLoadable(recoilValue).toPromise();\n });\n\n _defineProperty(this, \"getNodes_UNSTABLE\", opt => {\n this.checkRefCount_INTERNAL(); // TODO Deal with modified selectors\n\n if ((opt === null || opt === void 0 ? void 0 : opt.isModified) === true) {\n if ((opt === null || opt === void 0 ? void 0 : opt.isInitialized) === false) {\n return [];\n }\n\n const state = this._store.getState().currentTree;\n\n return recoilValuesForKeys$2(state.dirtyAtoms);\n }\n\n const knownAtoms = this._store.getState().knownAtoms;\n\n const knownSelectors = this._store.getState().knownSelectors;\n\n return (opt === null || opt === void 0 ? void 0 : opt.isInitialized) == null ? recoilValues$1.values() : opt.isInitialized === true ? recoilValuesForKeys$2(Recoil_concatIterables([this._store.getState().knownAtoms, this._store.getState().knownSelectors])) : Recoil_filterIterable(recoilValues$1.values(), ({\n key\n }) => !knownAtoms.has(key) && !knownSelectors.has(key));\n });\n\n _defineProperty(this, \"getInfo_UNSTABLE\", ({\n key\n }) => {\n this.checkRefCount_INTERNAL();\n return peekNodeInfo$1(this._store, this._store.getState().currentTree, key);\n });\n\n _defineProperty(this, \"map\", mapper => {\n this.checkRefCount_INTERNAL();\n const mutableSnapshot = new MutableSnapshot(this, batchUpdates$1);\n mapper(mutableSnapshot); // if removing batchUpdates from `set` add it here\n\n return cloneSnapshot(mutableSnapshot.getStore_INTERNAL());\n });\n\n _defineProperty(this, \"asyncMap\", async mapper => {\n this.checkRefCount_INTERNAL();\n const mutableSnapshot = new MutableSnapshot(this, batchUpdates$1);\n await mapper(mutableSnapshot);\n return cloneSnapshot(mutableSnapshot.getStore_INTERNAL());\n });\n\n this._store = {\n getState: () => storeState,\n replaceState: replacer => {\n storeState.currentTree = replacer(storeState.currentTree); // no batching so nextTree is never active\n },\n getGraph: version => {\n const graphs = storeState.graphsByVersion;\n\n if (graphs.has(version)) {\n return Recoil_nullthrows(graphs.get(version));\n }\n\n const newGraph = graph$2();\n graphs.set(version, newGraph);\n return newGraph;\n },\n subscribeToTransactions: () => ({\n release: () => {}\n }),\n addTransactionMetadata: () => {\n throw Recoil_err('Cannot subscribe to Snapshots');\n }\n }; // Initialize any nodes that are live in the parent store (primarily so that this\n // snapshot gets counted towards the node's live stores count).\n\n for (const nodeKey of this._store.getState().nodeCleanupFunctions.keys()) {\n initializeNodeIfNewToStore$1(this._store, storeState.currentTree, nodeKey, 'get');\n updateRetainCount$1(this._store, nodeKey, 1);\n }\n\n this.retain();\n this.autorelease_INTERNAL();\n }\n\n retain() {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return () => undefined;\n }\n\n this._refCount++;\n let released = false;\n return () => {\n if (!released) {\n released = true;\n this.release_INTERNAL();\n }\n };\n }\n\n autorelease_INTERNAL() {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n if (!isSSR$1) {\n window.setTimeout(() => this.release_INTERNAL(), 0);\n }\n }\n\n release_INTERNAL() {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n this._refCount--;\n\n if (this._refCount === 0) ;\n }\n\n checkRefCount_INTERNAL() {\n if (Recoil_gkx_1('recoil_memory_managament_2020') && this._refCount <= 0) {\n if (process.env.NODE_ENV !== \"production\") {\n Recoil_recoverableViolation(retainWarning);\n } // What we will ship later:\n // throw err(retainWarning);\n\n }\n }\n\n getStore_INTERNAL() {\n this.checkRefCount_INTERNAL();\n return this._store;\n }\n\n getID() {\n this.checkRefCount_INTERNAL();\n return this.getID_INTERNAL();\n }\n\n getID_INTERNAL() {\n this.checkRefCount_INTERNAL();\n return this._store.getState().currentTree.stateID;\n } // We want to allow the methods to be destructured and used as accessors\n // eslint-disable-next-line fb-www/extra-arrow-initializer\n\n\n}\n\nfunction cloneStoreState(store, treeState, bumpVersion = false) {\n const storeState = store.getState();\n const version = bumpVersion ? getNextTreeStateVersion$1() : treeState.version;\n return {\n currentTree: bumpVersion ? {\n // TODO snapshots shouldn't really have versions because a new version number\n // is always assigned when the snapshot is gone to.\n version,\n stateID: version,\n transactionMetadata: { ...treeState.transactionMetadata\n },\n dirtyAtoms: new Set(treeState.dirtyAtoms),\n atomValues: treeState.atomValues.clone(),\n nonvalidatedAtoms: treeState.nonvalidatedAtoms.clone()\n } : treeState,\n commitDepth: 0,\n nextTree: null,\n previousTree: null,\n knownAtoms: new Set(storeState.knownAtoms),\n // FIXME here's a copy\n knownSelectors: new Set(storeState.knownSelectors),\n // FIXME here's a copy\n transactionSubscriptions: new Map(),\n nodeTransactionSubscriptions: new Map(),\n nodeToComponentSubscriptions: new Map(),\n queuedComponentCallbacks_DEPRECATED: [],\n suspendedComponentResolvers: new Set(),\n graphsByVersion: new Map().set(version, store.getGraph(treeState.version)),\n versionsUsedByComponent: new Map(),\n retention: {\n referenceCounts: new Map(),\n nodesRetainedByZone: new Map(),\n retainablesToCheckForRelease: new Set()\n },\n nodeCleanupFunctions: new Map()\n };\n} // Factory to build a fresh snapshot\n\n\nfunction freshSnapshot(initializeState) {\n const snapshot = new Snapshot(makeEmptyStoreState$1());\n return initializeState != null ? snapshot.map(initializeState) : snapshot;\n} // Factory to clone a snapahot state\n\n\nfunction cloneSnapshot(store, version = 'current') {\n const storeState = store.getState();\n const treeState = version === 'current' ? storeState.currentTree : Recoil_nullthrows(storeState.previousTree);\n return new Snapshot(cloneStoreState(store, treeState));\n}\n\nclass MutableSnapshot extends Snapshot {\n constructor(snapshot, batch) {\n super(cloneStoreState(snapshot.getStore_INTERNAL(), snapshot.getStore_INTERNAL().getState().currentTree, true));\n\n _defineProperty(this, \"_batch\", void 0);\n\n _defineProperty(this, \"set\", (recoilState, newValueOrUpdater) => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // This batchUpdates ensures this `set` is applied immediately and you can\n // read the written value after calling `set`. I would like to remove this\n // behavior and only batch in `Snapshot.map`, but this would be a breaking\n // change potentially.\n\n this._batch(() => {\n updateRetainCount$1(store, recoilState.key, 1);\n setRecoilValue$1(this.getStore_INTERNAL(), recoilState, newValueOrUpdater);\n });\n });\n\n _defineProperty(this, \"reset\", recoilState => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // See note at `set` about batched updates.\n\n this._batch(() => {\n updateRetainCount$1(store, recoilState.key, 1);\n setRecoilValue$1(this.getStore_INTERNAL(), recoilState, DEFAULT_VALUE$1);\n });\n });\n\n _defineProperty(this, \"setUnvalidatedAtomValues_DEPRECATED\", values => {\n this.checkRefCount_INTERNAL();\n const store = this.getStore_INTERNAL(); // See note at `set` about batched updates.\n\n batchUpdates$1(() => {\n for (const [k, v] of values.entries()) {\n updateRetainCount$1(store, k, 1);\n setUnvalidatedRecoilValue$1(store, new AbstractRecoilValue$2(k), v);\n }\n });\n });\n\n this._batch = batch;\n } // We want to allow the methods to be destructured and used as accessors\n // eslint-disable-next-line fb-www/extra-arrow-initializer\n\n\n}\n\nvar Recoil_Snapshot = {\n Snapshot,\n MutableSnapshot,\n freshSnapshot,\n cloneSnapshot\n};\n\nvar Recoil_Snapshot_1 = Recoil_Snapshot.Snapshot;\nvar Recoil_Snapshot_2 = Recoil_Snapshot.MutableSnapshot;\nvar Recoil_Snapshot_3 = Recoil_Snapshot.freshSnapshot;\nvar Recoil_Snapshot_4 = Recoil_Snapshot.cloneSnapshot;\n\nvar Recoil_Snapshot$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n Snapshot: Recoil_Snapshot_1,\n MutableSnapshot: Recoil_Snapshot_2,\n freshSnapshot: Recoil_Snapshot_3,\n cloneSnapshot: Recoil_Snapshot_4\n});\n\n// @fb-only: const RecoilusagelogEvent = require('RecoilusagelogEvent');\n// @fb-only: const RecoilUsageLogFalcoEvent = require('RecoilUsageLogFalcoEvent');\n// @fb-only: const URI = require('URI');\n\n\nconst {\n getNextTreeStateVersion: getNextTreeStateVersion$2,\n makeEmptyStoreState: makeEmptyStoreState$2\n} = Recoil_State;\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n cleanUpNode: cleanUpNode$2,\n getDownstreamNodes: getDownstreamNodes$2,\n setNodeValue: setNodeValue$2,\n setUnvalidatedAtomValue_DEPRECATED: setUnvalidatedAtomValue_DEPRECATED$1\n} = Recoil_FunctionalCore;\n\nconst {\n graph: graph$3\n} = Recoil_Graph;\n\nconst {\n cloneGraph: cloneGraph$1\n} = Recoil_Graph;\n\nconst {\n applyAtomValueWrites: applyAtomValueWrites$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n releaseScheduledRetainablesNow: releaseScheduledRetainablesNow$1\n} = Recoil_Retention;\n\nconst {\n freshSnapshot: freshSnapshot$1\n} = Recoil_Snapshot$1;\n\n\n\nconst {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState\n} = react;\n\nfunction notInAContext() {\n throw Recoil_err('This component must be used inside a component.');\n}\n\nconst defaultStore = Object.freeze({\n getState: notInAContext,\n replaceState: notInAContext,\n getGraph: notInAContext,\n subscribeToTransactions: notInAContext,\n addTransactionMetadata: notInAContext\n});\nlet stateReplacerIsBeingExecuted = false;\n\nfunction startNextTreeIfNeeded(store) {\n if (stateReplacerIsBeingExecuted) {\n throw Recoil_err('An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.');\n }\n\n const storeState = store.getState();\n\n if (storeState.nextTree === null) {\n if (Recoil_gkx_1('recoil_memory_managament_2020') && Recoil_gkx_1('recoil_release_on_cascading_update_killswitch_2021')) {\n // If this is a cascading update (that is, rendering due to one state change\n // invokes a second state change), we won't have cleaned up retainables yet\n // because this normally happens after notifying components. Do it before\n // proceeding with the cascading update so that it remains predictable:\n if (storeState.commitDepth > 0) {\n releaseScheduledRetainablesNow$1(store);\n }\n }\n\n const version = storeState.currentTree.version;\n const nextVersion = getNextTreeStateVersion$2();\n storeState.nextTree = { ...storeState.currentTree,\n version: nextVersion,\n stateID: nextVersion,\n dirtyAtoms: new Set(),\n transactionMetadata: {}\n };\n storeState.graphsByVersion.set(nextVersion, cloneGraph$1(Recoil_nullthrows(storeState.graphsByVersion.get(version))));\n }\n}\n\nconst AppContext = react.createContext({\n current: defaultStore\n});\n\nconst useStoreRef = () => useContext(AppContext);\n\nconst MutableSourceContext = react.createContext(null); // TODO T2710559282599660\n\nfunction useRecoilMutableSource() {\n const mutableSource = useContext(MutableSourceContext);\n\n if (mutableSource == null) {\n Recoil_expectationViolation('Attempted to use a Recoil hook outside of a . ' + ' must be an ancestor of any component that uses ' + 'Recoil hooks.');\n }\n\n return mutableSource;\n}\n\nfunction notifyComponents(store, storeState, treeState) {\n const dependentNodes = getDownstreamNodes$2(store, treeState, treeState.dirtyAtoms);\n\n for (const key of dependentNodes) {\n const comps = storeState.nodeToComponentSubscriptions.get(key);\n\n if (comps) {\n for (const [_subID, [_debugName, callback]] of comps) {\n callback(treeState);\n }\n }\n }\n}\n\nfunction sendEndOfBatchNotifications(store) {\n const storeState = store.getState();\n const treeState = storeState.currentTree; // Inform transaction subscribers of the transaction:\n\n const dirtyAtoms = treeState.dirtyAtoms;\n\n if (dirtyAtoms.size) {\n // Execute Node-specific subscribers before global subscribers\n for (const [key, subscriptions] of storeState.nodeTransactionSubscriptions) {\n if (dirtyAtoms.has(key)) {\n for (const [_, subscription] of subscriptions) {\n subscription(store);\n }\n }\n }\n\n for (const [_, subscription] of storeState.transactionSubscriptions) {\n subscription(store);\n }\n\n if (!Recoil_gkx_1('recoil_early_rendering_2021') || storeState.suspendedComponentResolvers.size) {\n // Notifying components is needed to wake from suspense, even when using\n // early rendering.\n notifyComponents(store, storeState, treeState); // Wake all suspended components so the right one(s) can try to re-render.\n // We need to wake up components not just when some asynchronous selector\n // resolved, but also when changing synchronous values because this may cause\n // a selector to change from asynchronous to synchronous, in which case there\n // would be no follow-up asynchronous resolution to wake us up.\n // TODO OPTIMIZATION Only wake up related downstream components\n\n storeState.suspendedComponentResolvers.forEach(cb => cb());\n storeState.suspendedComponentResolvers.clear();\n }\n } // Special behavior ONLY invoked by useInterface.\n // FIXME delete queuedComponentCallbacks_DEPRECATED when deleting useInterface.\n\n\n storeState.queuedComponentCallbacks_DEPRECATED.forEach(cb => cb(treeState));\n storeState.queuedComponentCallbacks_DEPRECATED.splice(0, storeState.queuedComponentCallbacks_DEPRECATED.length);\n}\n\nfunction endBatch(storeRef) {\n const storeState = storeRef.current.getState();\n storeState.commitDepth++;\n\n try {\n const {\n nextTree\n } = storeState; // Ignore commits that are not because of Recoil transactions -- namely,\n // because something above RecoilRoot re-rendered:\n\n if (nextTree === null) {\n return;\n } // nextTree is now committed -- note that copying and reset occurs when\n // a transaction begins, in startNextTreeIfNeeded:\n\n\n storeState.previousTree = storeState.currentTree;\n storeState.currentTree = nextTree;\n storeState.nextTree = null;\n sendEndOfBatchNotifications(storeRef.current);\n\n if (storeState.previousTree != null) {\n storeState.graphsByVersion.delete(storeState.previousTree.version);\n } else {\n Recoil_recoverableViolation('Ended batch with no previous state, which is unexpected', 'recoil');\n }\n\n storeState.previousTree = null;\n\n if (Recoil_gkx_1('recoil_memory_managament_2020')) {\n releaseScheduledRetainablesNow$1(storeRef.current);\n }\n } finally {\n storeState.commitDepth--;\n }\n}\n/*\n * The purpose of the Batcher is to observe when React batches end so that\n * Recoil state changes can be batched. Whenever Recoil state changes, we call\n * setState on the batcher. Then we wait for that change to be committed, which\n * signifies the end of the batch. That's when we respond to the Recoil change.\n */\n\n\nfunction Batcher({\n setNotifyBatcherOfChange\n}) {\n const storeRef = useStoreRef();\n const [_, setState] = useState([]);\n setNotifyBatcherOfChange(() => setState({}));\n useEffect(() => {\n // enqueueExecution runs this function immediately; it is only used to\n // manipulate the order of useEffects during tests, since React seems to\n // call useEffect in an unpredictable order sometimes.\n Recoil_Queue.enqueueExecution('Batcher', () => {\n endBatch(storeRef);\n });\n }); // If an asynchronous selector resolves after the Batcher is unmounted,\n // notifyBatcherOfChange will still be called. An error gets thrown whenever\n // setState is called after a component is already unmounted, so this sets\n // notifyBatcherOfChange to be a no-op.\n\n useEffect(() => {\n return () => {\n setNotifyBatcherOfChange(() => {});\n };\n }, [setNotifyBatcherOfChange]);\n return null;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined' && !window.$recoilDebugStates) {\n window.$recoilDebugStates = [];\n }\n} // When removing this deprecated function, remove stateBySettingRecoilValue\n// which will no longer be needed.\n\n\nfunction initialStoreState_DEPRECATED(store, initializeState) {\n const initial = makeEmptyStoreState$2();\n initializeState({\n // $FlowFixMe[escaped-generic]\n set: (atom, value) => {\n const state = initial.currentTree;\n const writes = setNodeValue$2(store, state, atom.key, value);\n const writtenNodes = new Set(writes.keys());\n const nonvalidatedAtoms = state.nonvalidatedAtoms.clone();\n\n for (const n of writtenNodes) {\n nonvalidatedAtoms.delete(n);\n }\n\n initial.currentTree = { ...state,\n dirtyAtoms: Recoil_unionSets(state.dirtyAtoms, writtenNodes),\n atomValues: applyAtomValueWrites$1(state.atomValues, writes),\n // NB: PLEASE un-export applyAtomValueWrites when deleting this code\n nonvalidatedAtoms\n };\n },\n setUnvalidatedAtomValues: atomValues => {\n // FIXME replace this with a mutative loop\n atomValues.forEach((v, k) => {\n initial.currentTree = setUnvalidatedAtomValue_DEPRECATED$1(initial.currentTree, k, v);\n });\n }\n });\n return initial;\n}\n\nfunction initialStoreState(initializeState) {\n const snapshot = freshSnapshot$1().map(initializeState);\n return snapshot.getStore_INTERNAL().getState();\n}\n\nlet nextID = 0;\n\nfunction RecoilRoot_INTERNAL({\n initializeState_DEPRECATED,\n initializeState,\n store_INTERNAL: storeProp,\n // For use with React \"context bridging\"\n children\n}) {\n var _createMutableSource;\n\n // prettier-ignore\n // @fb-only: useEffect(() => {\n // @fb-only: if (gkx('recoil_usage_logging')) {\n // @fb-only: try {\n // @fb-only: RecoilUsageLogFalcoEvent.log(() => ({\n // @fb-only: type: RecoilusagelogEvent.RECOIL_ROOT_MOUNTED,\n // @fb-only: path: URI.getRequestURI().getPath(),\n // @fb-only: }));\n // @fb-only: } catch {\n // @fb-only: recoverableViolation(\n // @fb-only: 'Error when logging Recoil Usage event',\n // @fb-only: 'recoil',\n // @fb-only: );\n // @fb-only: }\n // @fb-only: }\n // @fb-only: }, []);\n let storeState; // eslint-disable-line prefer-const\n\n const getGraph = version => {\n const graphs = storeState.current.graphsByVersion;\n\n if (graphs.has(version)) {\n return Recoil_nullthrows(graphs.get(version));\n }\n\n const newGraph = graph$3();\n graphs.set(version, newGraph);\n return newGraph;\n };\n\n const subscribeToTransactions = (callback, key) => {\n if (key == null) {\n // Global transaction subscriptions\n const {\n transactionSubscriptions\n } = storeRef.current.getState();\n const id = nextID++;\n transactionSubscriptions.set(id, callback);\n return {\n release: () => {\n transactionSubscriptions.delete(id);\n }\n };\n } else {\n // Node-specific transaction subscriptions:\n const {\n nodeTransactionSubscriptions\n } = storeRef.current.getState();\n\n if (!nodeTransactionSubscriptions.has(key)) {\n nodeTransactionSubscriptions.set(key, new Map());\n }\n\n const id = nextID++;\n Recoil_nullthrows(nodeTransactionSubscriptions.get(key)).set(id, callback);\n return {\n release: () => {\n const subs = nodeTransactionSubscriptions.get(key);\n\n if (subs) {\n subs.delete(id);\n\n if (subs.size === 0) {\n nodeTransactionSubscriptions.delete(key);\n }\n }\n }\n };\n }\n };\n\n const addTransactionMetadata = metadata => {\n startNextTreeIfNeeded(storeRef.current);\n\n for (const k of Object.keys(metadata)) {\n Recoil_nullthrows(storeRef.current.getState().nextTree).transactionMetadata[k] = metadata[k];\n }\n };\n\n const replaceState = replacer => {\n const storeState = storeRef.current.getState();\n startNextTreeIfNeeded(storeRef.current); // Use replacer to get the next state:\n\n const nextTree = Recoil_nullthrows(storeState.nextTree);\n let replaced;\n\n try {\n stateReplacerIsBeingExecuted = true;\n replaced = replacer(nextTree);\n } finally {\n stateReplacerIsBeingExecuted = false;\n }\n\n if (replaced === nextTree) {\n return;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined') {\n window.$recoilDebugStates.push(replaced); // TODO this shouldn't happen here because it's not batched\n }\n } // Save changes to nextTree and schedule a React update:\n\n\n storeState.nextTree = replaced;\n\n if (Recoil_gkx_1('recoil_early_rendering_2021')) {\n notifyComponents(store, storeState, replaced);\n }\n\n Recoil_nullthrows(notifyBatcherOfChange.current)();\n };\n\n const notifyBatcherOfChange = useRef(null);\n const setNotifyBatcherOfChange = useCallback(x => {\n notifyBatcherOfChange.current = x;\n }, [notifyBatcherOfChange]); // FIXME T2710559282599660\n\n const createMutableSource = (_createMutableSource = react.createMutableSource) !== null && _createMutableSource !== void 0 ? _createMutableSource : // flowlint-line unclear-type:off\n react.unstable_createMutableSource; // flowlint-line unclear-type:off\n\n const store = storeProp !== null && storeProp !== void 0 ? storeProp : {\n getState: () => storeState.current,\n replaceState,\n getGraph,\n subscribeToTransactions,\n addTransactionMetadata\n };\n const storeRef = useRef(store);\n storeState = useRef(initializeState_DEPRECATED != null ? initialStoreState_DEPRECATED(store, initializeState_DEPRECATED) : initializeState != null ? initialStoreState(initializeState) : makeEmptyStoreState$2());\n const mutableSource = useMemo(() => createMutableSource ? createMutableSource(storeState, () => storeState.current.currentTree.version) : null, [createMutableSource, storeState]); // Cleanup when the is unmounted\n\n useEffect(() => () => {\n for (const atomKey of storeRef.current.getState().knownAtoms) {\n cleanUpNode$2(storeRef.current, atomKey);\n }\n }, []);\n return /*#__PURE__*/react.createElement(AppContext.Provider, {\n value: storeRef\n }, /*#__PURE__*/react.createElement(MutableSourceContext.Provider, {\n value: mutableSource\n }, /*#__PURE__*/react.createElement(Batcher, {\n setNotifyBatcherOfChange: setNotifyBatcherOfChange\n }), children));\n}\n\nfunction RecoilRoot(props) {\n const {\n override,\n ...propsExceptOverride\n } = props;\n const ancestorStoreRef = useStoreRef();\n\n if (override === false && ancestorStoreRef.current !== defaultStore) {\n // If ancestorStoreRef.current !== defaultStore, it means that this\n // RecoilRoot is not nested within another.\n return props.children;\n }\n\n return /*#__PURE__*/react.createElement(RecoilRoot_INTERNAL, propsExceptOverride);\n}\n\nvar Recoil_RecoilRoot_react = {\n useStoreRef,\n useRecoilMutableSource,\n RecoilRoot,\n notifyComponents_FOR_TESTING: notifyComponents,\n sendEndOfBatchNotifications_FOR_TESTING: sendEndOfBatchNotifications\n};\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * MIT License\n *\n * Copyright (c) 2014-2019 Georg Tavonius\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * @emails oncall+recoil\n * \n * @format\n */\n\nconst UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction stackTraceParser(stackString) {\n const lines = stackString.split('\\n');\n return lines.reduce((stack, line) => {\n const parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\n\nconst chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nconst chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n const parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n const submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nconst winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n const parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nconst geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n const parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n const submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nconst javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n const parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nconst nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n const parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar Recoil_stackTraceParser = stackTraceParser;\n\nconst {\n useRef: useRef$1\n} = react;\n\nfunction useComponentName() {\n const nameRef = useRef$1();\n\n if (process.env.NODE_ENV !== \"production\") {\n if (Recoil_gkx_1('recoil_infer_component_names')) {\n var _nameRef$current;\n\n if (nameRef.current === undefined) {\n // There is no blessed way to determine the calling React component from\n // within a hook. This hack uses the fact that hooks must start with 'use'\n // and that hooks are either called by React Components or other hooks. It\n // follows therefore, that to find the calling component, you simply need\n // to look down the stack and find the first function which doesn't start\n // with 'use'. We are only enabling this in dev for now, since once the\n // codebase is minified, the naming assumptions no longer hold true.\n // eslint-disable-next-line fb-www/no-new-error\n const frames = Recoil_stackTraceParser(new Error().stack);\n\n for (const {\n methodName\n } of frames) {\n // I observed cases where the frame was of the form 'Object.useXXX'\n // hence why I'm searching for hooks following a word boundary\n if (!methodName.match(/\\buse[^\\b]+$/)) {\n return nameRef.current = methodName;\n }\n }\n\n nameRef.current = null;\n }\n\n return (_nameRef$current = nameRef.current) !== null && _nameRef$current !== void 0 ? _nameRef$current : '';\n }\n } // @fb-only: return \"\";\n\n\n return ''; // @oss-only\n}\n\nvar Recoil_useComponentName = useComponentName;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction shallowArrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nvar Recoil_shallowArrayEqual = shallowArrayEqual;\n\nconst {\n useEffect: useEffect$1,\n useRef: useRef$2\n} = react;\n\nfunction usePrevious(value) {\n const ref = useRef$2();\n useEffect$1(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nvar Recoil_usePrevious = usePrevious;\n\nconst {\n useStoreRef: useStoreRef$1\n} = Recoil_RecoilRoot_react;\n\nconst {\n SUSPENSE_TIMEOUT_MS: SUSPENSE_TIMEOUT_MS$1\n} = Recoil_Retention;\n\nconst {\n updateRetainCount: updateRetainCount$2\n} = Recoil_Retention;\n\nconst {\n RetentionZone: RetentionZone$3\n} = Recoil_RetentionZone;\n\nconst {\n isSSR: isSSR$2\n} = Recoil_Environment;\n\n\n\n\n\n\n\nconst {\n useEffect: useEffect$2,\n useRef: useRef$3\n} = react; // I don't see a way to avoid the any type here because we want to accept readable\n// and writable values with any type parameter, but normally with writable ones\n// RecoilState is not a subtype of RecoilState.\n\n\n// flowlint-line unclear-type:off\nfunction useRetain(toRetain) {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n } // eslint-disable-next-line fb-www/react-hooks\n\n\n return useRetain_ACTUAL(toRetain);\n}\n\nfunction useRetain_ACTUAL(toRetain) {\n const array = Array.isArray(toRetain) ? toRetain : [toRetain];\n const retainables = array.map(a => a instanceof RetentionZone$3 ? a : a.key);\n const storeRef = useStoreRef$1();\n useEffect$2(() => {\n if (!Recoil_gkx_1('recoil_memory_managament_2020')) {\n return;\n }\n\n const store = storeRef.current;\n\n if (timeoutID.current && !isSSR$2) {\n // Already performed a temporary retain on render, simply cancel the release\n // of that temporary retain.\n window.clearTimeout(timeoutID.current);\n timeoutID.current = null;\n } else {\n for (const r of retainables) {\n updateRetainCount$2(store, r, 1);\n }\n }\n\n return () => {\n for (const r of retainables) {\n updateRetainCount$2(store, r, -1);\n }\n }; // eslint-disable-next-line fb-www/react-hooks-deps\n }, [storeRef, ...retainables]); // We want to retain if the component suspends. This is terrible but the Suspense\n // API affords us no better option. If we suspend and never commit after some\n // seconds, then release. The 'actual' retain/release in the effect above\n // cancels this.\n\n const timeoutID = useRef$3();\n const previousRetainables = Recoil_usePrevious(retainables);\n\n if (!isSSR$2 && (previousRetainables === undefined || !Recoil_shallowArrayEqual(previousRetainables, retainables))) {\n const store = storeRef.current;\n\n for (const r of retainables) {\n updateRetainCount$2(store, r, 1);\n }\n\n if (previousRetainables) {\n for (const r of previousRetainables) {\n updateRetainCount$2(store, r, -1);\n }\n }\n\n if (timeoutID.current) {\n window.clearTimeout(timeoutID.current);\n }\n\n timeoutID.current = window.setTimeout(() => {\n timeoutID.current = null;\n\n for (const r of retainables) {\n updateRetainCount$2(store, r, -1);\n }\n }, SUSPENSE_TIMEOUT_MS$1);\n }\n}\n\nvar Recoil_useRetain = useRetain;\n\nconst {\n batchUpdates: batchUpdates$2\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$2\n} = Recoil_Node;\n\nconst {\n useRecoilMutableSource: useRecoilMutableSource$1,\n useStoreRef: useStoreRef$2\n} = Recoil_RecoilRoot_react;\n\nconst {\n isRecoilValue: isRecoilValue$2\n} = Recoil_RecoilValue$1;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$3,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$2,\n setRecoilValue: setRecoilValue$2,\n setUnvalidatedRecoilValue: setUnvalidatedRecoilValue$2,\n subscribeToRecoilValue: subscribeToRecoilValue$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n setByAddingToSet: setByAddingToSet$2\n} = Recoil_CopyOnWrite;\n\n\n\n\n\n\n\n\n\nconst {\n mutableSourceExists: mutableSourceExists$2,\n useMutableSource: useMutableSource$1\n} = Recoil_mutableSource;\n\n\n\n\n\nconst {\n useCallback: useCallback$1,\n useEffect: useEffect$3,\n useMemo: useMemo$1,\n useRef: useRef$4,\n useState: useState$1\n} = react;\n\nfunction handleLoadable(loadable, recoilValue, storeRef) {\n // We can't just throw the promise we are waiting on to Suspense. If the\n // upstream dependencies change it may produce a state in which the component\n // can render, but it would still be suspended on a Promise that may never resolve.\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'loading') {\n const promise = new Promise(resolve => {\n storeRef.current.getState().suspendedComponentResolvers.add(resolve);\n }); // $FlowFixMe Flow(prop-missing) for integrating with tools that inspect thrown promises @fb-only\n // @fb-only: promise.displayName = `Recoil State: ${recoilValue.key}`;\n\n throw promise;\n } else if (loadable.state === 'hasError') {\n throw loadable.contents;\n } else {\n throw Recoil_err(`Invalid value of loadable atom \"${recoilValue.key}\"`);\n }\n}\n\nfunction validateRecoilValue(recoilValue, hookName) {\n if (!isRecoilValue$2(recoilValue)) {\n throw Recoil_err(`Invalid argument to ${hookName}: expected an atom or selector but got ${String(recoilValue)}`);\n }\n}\n\n/**\n * Various things are broken with useRecoilInterface, particularly concurrent mode\n * and memory management. They will not be fixed.\n * */\nfunction useRecoilInterface_DEPRECATED() {\n const storeRef = useStoreRef$2();\n const [, forceUpdate] = useState$1([]);\n const recoilValuesUsed = useRef$4(new Set());\n recoilValuesUsed.current = new Set(); // Track the RecoilValues used just during this render\n\n const previousSubscriptions = useRef$4(new Set());\n const subscriptions = useRef$4(new Map());\n const unsubscribeFrom = useCallback$1(key => {\n const sub = subscriptions.current.get(key);\n\n if (sub) {\n sub.release();\n subscriptions.current.delete(key);\n }\n }, [subscriptions]);\n const componentName = Recoil_useComponentName();\n useEffect$3(() => {\n const store = storeRef.current;\n\n function updateState(_state, key) {\n if (!subscriptions.current.has(key)) {\n return;\n }\n\n forceUpdate([]);\n }\n\n Recoil_differenceSets(recoilValuesUsed.current, previousSubscriptions.current).forEach(key => {\n if (subscriptions.current.has(key)) {\n Recoil_expectationViolation(`Double subscription to RecoilValue \"${key}\"`);\n return;\n }\n\n const sub = subscribeToRecoilValue$1(store, new AbstractRecoilValue$3(key), state => {\n updateState(state, key);\n }, componentName);\n subscriptions.current.set(key, sub);\n /**\n * Since we're subscribing in an effect we need to update to the latest\n * value of the atom since it may have changed since we rendered. We can\n * go ahead and do that now, unless we're in the middle of a batch --\n * in which case we should do it at the end of the batch, due to the\n * following edge case: Suppose an atom is updated in another useEffect\n * of this same component. Then the following sequence of events occur:\n * 1. Atom is updated and subs fired (but we may not be subscribed\n * yet depending on order of effects, so we miss this) Updated value\n * is now in nextTree, but not currentTree.\n * 2. This effect happens. We subscribe and update.\n * 3. From the update we re-render and read currentTree, with old value.\n * 4. Batcher's effect sets currentTree to nextTree.\n * In this sequence we miss the update. To avoid that, add the update\n * to queuedComponentCallback if a batch is in progress.\n */\n // FIXME delete queuedComponentCallbacks_DEPRECATED when deleting useInterface.\n\n const state = store.getState();\n\n if (state.nextTree) {\n store.getState().queuedComponentCallbacks_DEPRECATED.push(() => {\n updateState(store.getState(), key);\n });\n } else {\n updateState(store.getState(), key);\n }\n });\n Recoil_differenceSets(previousSubscriptions.current, recoilValuesUsed.current).forEach(key => {\n unsubscribeFrom(key);\n });\n previousSubscriptions.current = recoilValuesUsed.current;\n });\n useEffect$3(() => {\n const subs = subscriptions.current;\n return () => subs.forEach((_, key) => unsubscribeFrom(key));\n }, [unsubscribeFrom]);\n return useMemo$1(() => {\n // eslint-disable-next-line no-shadow\n function useSetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useSetRecoilState');\n }\n\n return newValueOrUpdater => {\n setRecoilValue$2(storeRef.current, recoilState, newValueOrUpdater);\n };\n } // eslint-disable-next-line no-shadow\n\n\n function useResetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useResetRecoilState');\n }\n\n return () => setRecoilValue$2(storeRef.current, recoilState, DEFAULT_VALUE$2);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilValueLoadable(recoilValue) {\n var _storeState$nextTree;\n\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n if (!recoilValuesUsed.current.has(recoilValue.key)) {\n recoilValuesUsed.current = setByAddingToSet$2(recoilValuesUsed.current, recoilValue.key);\n } // TODO Restore optimization to memoize lookup\n\n\n const storeState = storeRef.current.getState();\n return getRecoilValueAsLoadable$2(storeRef.current, recoilValue, Recoil_gkx_1('recoil_early_rendering_2021') ? (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree : storeState.currentTree);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilValue(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilValue, 'useRecoilValue');\n }\n\n const loadable = useRecoilValueLoadable(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useRecoilState');\n }\n\n return [useRecoilValue(recoilState), useSetRecoilState(recoilState)];\n } // eslint-disable-next-line no-shadow\n\n\n function useRecoilStateLoadable(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useRecoilStateLoadable');\n }\n\n return [useRecoilValueLoadable(recoilState), useSetRecoilState(recoilState)];\n }\n\n return {\n getRecoilValue: useRecoilValue,\n getRecoilValueLoadable: useRecoilValueLoadable,\n getRecoilState: useRecoilState,\n getRecoilStateLoadable: useRecoilStateLoadable,\n getSetRecoilState: useSetRecoilState,\n getResetRecoilState: useResetRecoilState\n };\n }, [recoilValuesUsed, storeRef]);\n}\n\nconst recoilComponentGetRecoilValueCount_FOR_TESTING = {\n current: 0\n};\n\nfunction useRecoilValueLoadable_MUTABLESOURCE(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n const storeRef = useStoreRef$2();\n const getLoadable = useCallback$1(() => {\n var _storeState$nextTree2;\n\n const store = storeRef.current;\n const storeState = store.getState();\n const treeState = Recoil_gkx_1('recoil_early_rendering_2021') ? (_storeState$nextTree2 = storeState.nextTree) !== null && _storeState$nextTree2 !== void 0 ? _storeState$nextTree2 : storeState.currentTree : storeState.currentTree;\n return getRecoilValueAsLoadable$2(store, recoilValue, treeState);\n }, [storeRef, recoilValue]);\n const getLoadableWithTesting = useCallback$1(() => {\n if (process.env.NODE_ENV !== \"production\") {\n recoilComponentGetRecoilValueCount_FOR_TESTING.current++;\n }\n\n return getLoadable();\n }, [getLoadable]);\n const componentName = Recoil_useComponentName();\n const subscribe = useCallback$1((_storeState, callback) => {\n const store = storeRef.current;\n const subscription = subscribeToRecoilValue$1(store, recoilValue, () => {\n if (!Recoil_gkx_1('recoil_suppress_rerender_in_callback')) {\n return callback();\n } // Only re-render if the value has changed.\n // This will evaluate the atom/selector now as well as when the\n // component renders, but that may help with prefetching.\n\n\n const newLoadable = getLoadable();\n\n if (!prevLoadableRef.current.is(newLoadable)) {\n callback();\n } // If the component is suspended then the effect setting prevLoadableRef\n // will not run. So, set the previous value here when its subscription\n // is fired to wake it up. We can't just rely on this, though, because\n // this only executes when an atom/selector is dirty and the atom/selector\n // passed to the hook can dynamically change.\n\n\n prevLoadableRef.current = newLoadable;\n }, componentName);\n return subscription.release;\n }, [storeRef, recoilValue, componentName, getLoadable]);\n const source = useRecoilMutableSource$1();\n const loadable = useMutableSource$1(source, getLoadableWithTesting, subscribe);\n const prevLoadableRef = useRef$4(loadable);\n useEffect$3(() => {\n prevLoadableRef.current = loadable;\n });\n return loadable;\n}\n\nfunction useRecoilValueLoadable_LEGACY(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilValue, 'useRecoilValueLoadable');\n }\n\n const storeRef = useStoreRef$2();\n const [_, forceUpdate] = useState$1([]);\n const componentName = Recoil_useComponentName();\n useEffect$3(() => {\n const store = storeRef.current;\n const storeState = store.getState();\n const subscription = subscribeToRecoilValue$1(store, recoilValue, _state => {\n var _prevLoadableRef$curr;\n\n if (!Recoil_gkx_1('recoil_suppress_rerender_in_callback')) {\n return forceUpdate([]);\n }\n\n const newLoadable = getRecoilValueAsLoadable$2(store, recoilValue, store.getState().currentTree);\n\n if (!((_prevLoadableRef$curr = prevLoadableRef.current) === null || _prevLoadableRef$curr === void 0 ? void 0 : _prevLoadableRef$curr.is(newLoadable))) {\n forceUpdate(newLoadable);\n }\n\n prevLoadableRef.current = newLoadable;\n }, componentName);\n /**\n * Since we're subscribing in an effect we need to update to the latest\n * value of the atom since it may have changed since we rendered. We can\n * go ahead and do that now, unless we're in the middle of a batch --\n * in which case we should do it at the end of the batch, due to the\n * following edge case: Suppose an atom is updated in another useEffect\n * of this same component. Then the following sequence of events occur:\n * 1. Atom is updated and subs fired (but we may not be subscribed\n * yet depending on order of effects, so we miss this) Updated value\n * is now in nextTree, but not currentTree.\n * 2. This effect happens. We subscribe and update.\n * 3. From the update we re-render and read currentTree, with old value.\n * 4. Batcher's effect sets currentTree to nextTree.\n * In this sequence we miss the update. To avoid that, add the update\n * to queuedComponentCallback if a batch is in progress.\n */\n\n if (storeState.nextTree) {\n store.getState().queuedComponentCallbacks_DEPRECATED.push(() => {\n prevLoadableRef.current = null;\n forceUpdate([]);\n });\n } else {\n var _prevLoadableRef$curr2;\n\n if (!Recoil_gkx_1('recoil_suppress_rerender_in_callback')) {\n return forceUpdate([]);\n }\n\n const newLoadable = getRecoilValueAsLoadable$2(store, recoilValue, store.getState().currentTree);\n\n if (!((_prevLoadableRef$curr2 = prevLoadableRef.current) === null || _prevLoadableRef$curr2 === void 0 ? void 0 : _prevLoadableRef$curr2.is(newLoadable))) {\n forceUpdate(newLoadable);\n }\n\n prevLoadableRef.current = newLoadable;\n }\n\n return subscription.release;\n }, [componentName, recoilValue, storeRef]);\n const loadable = getRecoilValueAsLoadable$2(storeRef.current, recoilValue);\n const prevLoadableRef = useRef$4(loadable);\n useEffect$3(() => {\n prevLoadableRef.current = loadable;\n });\n return loadable;\n}\n/**\n Like useRecoilValue(), but either returns the value if available or\n just undefined if not available for any reason, such as pending or error.\n*/\n\n\nfunction useRecoilValueLoadable(recoilValue) {\n if (Recoil_gkx_1('recoil_memory_managament_2020')) {\n // eslint-disable-next-line fb-www/react-hooks\n Recoil_useRetain(recoilValue);\n }\n\n if (mutableSourceExists$2()) {\n // eslint-disable-next-line fb-www/react-hooks\n return useRecoilValueLoadable_MUTABLESOURCE(recoilValue);\n } else {\n // eslint-disable-next-line fb-www/react-hooks\n return useRecoilValueLoadable_LEGACY(recoilValue);\n }\n}\n/**\n Returns the value represented by the RecoilValue.\n If the value is pending, it will throw a Promise to suspend the component,\n if the value is an error it will throw it for the nearest React error boundary.\n This will also subscribe the component for any updates in the value.\n */\n\n\nfunction useRecoilValue(recoilValue) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilValue, 'useRecoilValue');\n }\n\n const storeRef = useStoreRef$2();\n const loadable = useRecoilValueLoadable(recoilValue);\n return handleLoadable(loadable, recoilValue, storeRef);\n}\n/**\n Returns a function that allows the value of a RecoilState to be updated, but does\n not subscribe the component to changes to that RecoilState.\n*/\n\n\nfunction useSetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useSetRecoilState');\n }\n\n const storeRef = useStoreRef$2();\n return useCallback$1(newValueOrUpdater => {\n setRecoilValue$2(storeRef.current, recoilState, newValueOrUpdater);\n }, [storeRef, recoilState]);\n}\n/**\n Returns a function that will reset the value of a RecoilState to its default\n*/\n\n\nfunction useResetRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useResetRecoilState');\n }\n\n const storeRef = useStoreRef$2();\n return useCallback$1(() => {\n setRecoilValue$2(storeRef.current, recoilState, DEFAULT_VALUE$2);\n }, [storeRef, recoilState]);\n}\n/**\n Equivalent to useState(). Allows the value of the RecoilState to be read and written.\n Subsequent updates to the RecoilState will cause the component to re-render. If the\n RecoilState is pending, this will suspend the component and initiate the\n retrieval of the value. If evaluating the RecoilState resulted in an error, this will\n throw the error so that the nearest React error boundary can catch it.\n*/\n\n\nfunction useRecoilState(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useRecoilState');\n }\n\n return [useRecoilValue(recoilState), useSetRecoilState(recoilState)];\n}\n/**\n Like useRecoilState(), but does not cause Suspense or React error handling. Returns\n an object that indicates whether the RecoilState is available, pending, or\n unavailable due to an error.\n*/\n\n\nfunction useRecoilStateLoadable(recoilState) {\n if (process.env.NODE_ENV !== \"production\") {\n // $FlowFixMe[escaped-generic]\n validateRecoilValue(recoilState, 'useRecoilStateLoadable');\n }\n\n return [useRecoilValueLoadable(recoilState), useSetRecoilState(recoilState)];\n}\n\nfunction useSetUnvalidatedAtomValues() {\n const storeRef = useStoreRef$2();\n return (values, transactionMetadata = {}) => {\n batchUpdates$2(() => {\n storeRef.current.addTransactionMetadata(transactionMetadata);\n values.forEach((value, key) => setUnvalidatedRecoilValue$2(storeRef.current, new AbstractRecoilValue$3(key), value));\n });\n };\n}\n\nvar Recoil_Hooks = {\n recoilComponentGetRecoilValueCount_FOR_TESTING,\n useRecoilInterface: useRecoilInterface_DEPRECATED,\n useRecoilState,\n useRecoilStateLoadable,\n useRecoilValue,\n useRecoilValueLoadable,\n useResetRecoilState,\n useSetRecoilState,\n useSetUnvalidatedAtomValues\n};\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Returns a map containing all of the keys + values from the original map where\n * the given callback returned true.\n */\n\nfunction filterMap(map, callback) {\n const result = new Map();\n\n for (const [key, value] of map) {\n if (callback(value, key)) {\n result.set(key, value);\n }\n }\n\n return result;\n}\n\nvar Recoil_filterMap = filterMap;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n/**\n * Returns a set containing all of the values from the original set where\n * the given callback returned true.\n */\n\nfunction filterSet(set, callback) {\n const result = new Set();\n\n for (const value of set) {\n if (callback(value)) {\n result.add(value);\n }\n }\n\n return result;\n}\n\nvar Recoil_filterSet = filterSet;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction mergeMaps(...maps) {\n const result = new Map();\n\n for (let i = 0; i < maps.length; i++) {\n const iterator = maps[i].keys();\n let nextKey;\n\n while (!(nextKey = iterator.next()).done) {\n // $FlowFixMe[incompatible-call] - map/iterator knows nothing about flow types\n result.set(nextKey.value, maps[i].get(nextKey.value));\n }\n }\n /* $FlowFixMe[incompatible-return] (>=0.66.0 site=www,mobile) This comment\n * suppresses an error found when Flow v0.66 was deployed. To see the error\n * delete this comment and run Flow. */\n\n\n return result;\n}\n\nvar Recoil_mergeMaps = mergeMaps;\n\nconst {\n batchUpdates: batchUpdates$3\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$3,\n getNode: getNode$3,\n nodes: nodes$1\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$3\n} = Recoil_RecoilRoot_react;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$4,\n setRecoilValueLoadable: setRecoilValueLoadable$1\n} = Recoil_RecoilValueInterface;\n\nconst {\n SUSPENSE_TIMEOUT_MS: SUSPENSE_TIMEOUT_MS$2\n} = Recoil_Retention;\n\nconst {\n Snapshot: Snapshot$1,\n cloneSnapshot: cloneSnapshot$1\n} = Recoil_Snapshot$1;\n\nconst {\n isSSR: isSSR$3\n} = Recoil_Environment;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n useCallback: useCallback$2,\n useEffect: useEffect$4,\n useRef: useRef$5,\n useState: useState$2\n} = react;\n\nfunction useTransactionSubscription(callback) {\n const storeRef = useStoreRef$3();\n useEffect$4(() => {\n const sub = storeRef.current.subscribeToTransactions(callback);\n return sub.release;\n }, [callback, storeRef]);\n}\n\nfunction externallyVisibleAtomValuesInState(state) {\n const atomValues = state.atomValues.toMap();\n const persistedAtomContentsValues = Recoil_mapMap(Recoil_filterMap(atomValues, (v, k) => {\n const node = getNode$3(k);\n const persistence = node.persistence_UNSTABLE;\n return persistence != null && persistence.type !== 'none' && v.state === 'hasValue';\n }), v => v.contents); // Merge in nonvalidated atoms; we may not have defs for them but they will\n // all have persistence on or they wouldn't be there in the first place.\n\n return Recoil_mergeMaps(state.nonvalidatedAtoms.toMap(), persistedAtomContentsValues);\n}\n\n/**\n Calls the given callback after any atoms have been modified and the consequent\n component re-renders have been committed. This is intended for persisting\n the values of the atoms to storage. The stored values can then be restored\n using the useSetUnvalidatedAtomValues hook.\n\n The callback receives the following info:\n\n atomValues: The current value of every atom that is both persistable (persistence\n type not set to 'none') and whose value is available (not in an\n error or loading state).\n\n previousAtomValues: The value of every persistable and available atom before\n the transaction began.\n\n atomInfo: A map containing the persistence settings for each atom. Every key\n that exists in atomValues will also exist in atomInfo.\n\n modifiedAtoms: The set of atoms that were written to during the transaction.\n\n transactionMetadata: Arbitrary information that was added via the\n useSetUnvalidatedAtomValues hook. Useful for ignoring the useSetUnvalidatedAtomValues\n transaction, to avoid loops.\n*/\nfunction useTransactionObservation_DEPRECATED(callback) {\n useTransactionSubscription(useCallback$2(store => {\n let previousTree = store.getState().previousTree;\n const currentTree = store.getState().currentTree;\n\n if (!previousTree) {\n Recoil_recoverableViolation('Transaction subscribers notified without a previous tree being present -- this is a bug in Recoil');\n previousTree = store.getState().currentTree; // attempt to trundle on\n }\n\n const atomValues = externallyVisibleAtomValuesInState(currentTree);\n const previousAtomValues = externallyVisibleAtomValuesInState(previousTree);\n const atomInfo = Recoil_mapMap(nodes$1, node => {\n var _node$persistence_UNS, _node$persistence_UNS2, _node$persistence_UNS3, _node$persistence_UNS4;\n\n return {\n persistence_UNSTABLE: {\n type: (_node$persistence_UNS = (_node$persistence_UNS2 = node.persistence_UNSTABLE) === null || _node$persistence_UNS2 === void 0 ? void 0 : _node$persistence_UNS2.type) !== null && _node$persistence_UNS !== void 0 ? _node$persistence_UNS : 'none',\n backButton: (_node$persistence_UNS3 = (_node$persistence_UNS4 = node.persistence_UNSTABLE) === null || _node$persistence_UNS4 === void 0 ? void 0 : _node$persistence_UNS4.backButton) !== null && _node$persistence_UNS3 !== void 0 ? _node$persistence_UNS3 : false\n }\n };\n }); // Filter on existance in atomValues so that externally-visible rules\n // are also applied to modified atoms (specifically exclude selectors):\n\n const modifiedAtoms = Recoil_filterSet(currentTree.dirtyAtoms, k => atomValues.has(k) || previousAtomValues.has(k));\n callback({\n atomValues,\n previousAtomValues,\n atomInfo,\n modifiedAtoms,\n transactionMetadata: { ...currentTree.transactionMetadata\n }\n });\n }, [callback]));\n}\n\nfunction useRecoilTransactionObserver(callback) {\n useTransactionSubscription(useCallback$2(store => {\n const snapshot = cloneSnapshot$1(store, 'current');\n const previousSnapshot = cloneSnapshot$1(store, 'previous');\n callback({\n snapshot,\n previousSnapshot\n });\n }, [callback]));\n} // Return a snapshot of the current state and subscribe to all state changes\n\n\nfunction useRecoilSnapshot() {\n const storeRef = useStoreRef$3();\n const [snapshot, setSnapshot] = useState$2(() => cloneSnapshot$1(storeRef.current));\n const previousSnapshot = Recoil_usePrevious(snapshot);\n const timeoutID = useRef$5();\n useEffect$4(() => {\n if (timeoutID.current && !isSSR$3) {\n window.clearTimeout(timeoutID.current);\n }\n\n return snapshot.retain();\n }, [snapshot]);\n useTransactionSubscription(useCallback$2(store => setSnapshot(cloneSnapshot$1(store)), []));\n\n if (previousSnapshot !== snapshot && !isSSR$3) {\n if (timeoutID.current) {\n previousSnapshot === null || previousSnapshot === void 0 ? void 0 : previousSnapshot.release_INTERNAL();\n window.clearTimeout(timeoutID.current);\n }\n\n snapshot.retain();\n timeoutID.current = window.setTimeout(() => {\n snapshot.release_INTERNAL();\n timeoutID.current = null;\n }, SUSPENSE_TIMEOUT_MS$2);\n }\n\n return snapshot;\n}\n\nfunction useGotoRecoilSnapshot() {\n const storeRef = useStoreRef$3();\n return useCallback$2(snapshot => {\n var _storeState$nextTree;\n\n const storeState = storeRef.current.getState();\n const prev = (_storeState$nextTree = storeState.nextTree) !== null && _storeState$nextTree !== void 0 ? _storeState$nextTree : storeState.currentTree;\n const next = snapshot.getStore_INTERNAL().getState().currentTree;\n batchUpdates$3(() => {\n const keysToUpdate = new Set();\n\n for (const keys of [prev.atomValues.keys(), next.atomValues.keys()]) {\n for (const key of keys) {\n var _prev$atomValues$get, _next$atomValues$get;\n\n if (((_prev$atomValues$get = prev.atomValues.get(key)) === null || _prev$atomValues$get === void 0 ? void 0 : _prev$atomValues$get.contents) !== ((_next$atomValues$get = next.atomValues.get(key)) === null || _next$atomValues$get === void 0 ? void 0 : _next$atomValues$get.contents) && getNode$3(key).shouldRestoreFromSnapshots) {\n keysToUpdate.add(key);\n }\n }\n }\n\n keysToUpdate.forEach(key => {\n setRecoilValueLoadable$1(storeRef.current, new AbstractRecoilValue$4(key), next.atomValues.has(key) ? Recoil_nullthrows(next.atomValues.get(key)) : DEFAULT_VALUE$3);\n });\n storeRef.current.replaceState(state => {\n return { ...state,\n stateID: snapshot.getID_INTERNAL()\n };\n });\n });\n }, [storeRef]);\n}\n\nvar Recoil_SnapshotHooks = {\n useRecoilSnapshot,\n useGotoRecoilSnapshot,\n useRecoilTransactionObserver,\n useTransactionObservation_DEPRECATED,\n useTransactionSubscription_DEPRECATED: useTransactionSubscription\n};\n\nconst {\n peekNodeInfo: peekNodeInfo$2\n} = Recoil_FunctionalCore;\n\nconst {\n useStoreRef: useStoreRef$4\n} = Recoil_RecoilRoot_react;\n\nfunction useGetRecoilValueInfo() {\n const storeRef = useStoreRef$4();\n return ({\n key\n }) => peekNodeInfo$2(storeRef.current, storeRef.current.getState().currentTree, key);\n}\n\nvar Recoil_useGetRecoilValueInfo = useGetRecoilValueInfo;\n\nconst {\n RecoilRoot: RecoilRoot$1,\n useStoreRef: useStoreRef$5\n} = Recoil_RecoilRoot_react;\n\n\n\nconst {\n useMemo: useMemo$2\n} = react;\n\nfunction useRecoilBridgeAcrossReactRoots() {\n const store = useStoreRef$5().current;\n return useMemo$2(() => {\n // eslint-disable-next-line no-shadow\n function RecoilBridge({\n children\n }) {\n return /*#__PURE__*/react.createElement(RecoilRoot$1, {\n store_INTERNAL: store\n }, children);\n }\n\n return RecoilBridge;\n }, [store]);\n}\n\nvar Recoil_useRecoilBridgeAcrossReactRoots = useRecoilBridgeAcrossReactRoots;\n\nconst {\n loadableWithValue: loadableWithValue$1\n} = Recoil_Loadable$1;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$4,\n getNode: getNode$4\n} = Recoil_Node;\n\nconst {\n copyTreeState: copyTreeState$1,\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$3,\n invalidateDownstreams: invalidateDownstreams$1,\n writeLoadableToTreeState: writeLoadableToTreeState$1\n} = Recoil_RecoilValueInterface;\n\n\n\nfunction isAtom(recoilValue) {\n return getNode$4(recoilValue.key).nodeType === 'atom';\n}\n\nclass TransactionInterfaceImpl {\n constructor(store, treeState) {\n _defineProperty(this, \"_store\", void 0);\n\n _defineProperty(this, \"_treeState\", void 0);\n\n _defineProperty(this, \"_changes\", void 0);\n\n _defineProperty(this, \"get\", recoilValue => {\n if (this._changes.has(recoilValue.key)) {\n // $FlowFixMe[incompatible-return]\n return this._changes.get(recoilValue.key);\n }\n\n if (!isAtom(recoilValue)) {\n throw Recoil_err('Reading selectors within atomicUpdate is not supported');\n }\n\n const loadable = getRecoilValueAsLoadable$3(this._store, recoilValue, this._treeState);\n\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'hasError') {\n throw loadable.contents;\n } else {\n throw Recoil_err(`Expected Recoil atom ${recoilValue.key} to have a value, but it is in a loading state.`);\n }\n });\n\n _defineProperty(this, \"set\", (recoilState, valueOrUpdater) => {\n if (!isAtom(recoilState)) {\n throw Recoil_err('Setting selectors within atomicUpdate is not supported');\n }\n\n if (typeof valueOrUpdater === 'function') {\n const current = this.get(recoilState);\n\n this._changes.set(recoilState.key, valueOrUpdater(current)); // flowlint-line unclear-type:off\n\n } else {\n this._changes.set(recoilState.key, valueOrUpdater);\n }\n });\n\n _defineProperty(this, \"reset\", recoilState => {\n this.set(recoilState, DEFAULT_VALUE$4);\n });\n\n this._store = store;\n this._treeState = treeState;\n this._changes = new Map();\n } // Allow destructing\n // eslint-disable-next-line fb-www/extra-arrow-initializer\n\n\n newTreeState_INTERNAL() {\n if (this._changes.size === 0) {\n return this._treeState;\n }\n\n const newState = copyTreeState$1(this._treeState);\n\n for (const [k, v] of this._changes) {\n writeLoadableToTreeState$1(newState, k, loadableWithValue$1(v));\n }\n\n invalidateDownstreams$1(this._store, newState);\n return newState;\n }\n\n}\n\nfunction atomicUpdater(store) {\n return fn => {\n store.replaceState(treeState => {\n const changeset = new TransactionInterfaceImpl(store, treeState);\n fn(changeset);\n return changeset.newTreeState_INTERNAL();\n });\n };\n}\n\nvar Recoil_AtomicUpdates = {\n atomicUpdater\n};\n\nvar Recoil_AtomicUpdates_1 = Recoil_AtomicUpdates.atomicUpdater;\n\nvar Recoil_AtomicUpdates$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n atomicUpdater: Recoil_AtomicUpdates_1\n});\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\n\nvar invariant_1 = invariant;\n\n// @oss-only\n\n\nvar Recoil_invariant = invariant_1;\n\nconst {\n atomicUpdater: atomicUpdater$1\n} = Recoil_AtomicUpdates$1;\n\nconst {\n batchUpdates: batchUpdates$4\n} = Recoil_Batching;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$5\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$6\n} = Recoil_RecoilRoot_react;\n\nconst {\n setRecoilValue: setRecoilValue$3\n} = Recoil_RecoilValueInterface;\n\nconst {\n Snapshot: Snapshot$2,\n cloneSnapshot: cloneSnapshot$2\n} = Recoil_Snapshot$1;\n\n\n\n\n\nconst {\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$1\n} = Recoil_SnapshotHooks;\n\nconst {\n useCallback: useCallback$3\n} = react;\n\nclass Sentinel {}\n\nconst SENTINEL = new Sentinel();\n\nfunction useRecoilCallback(fn, deps) {\n const storeRef = useStoreRef$6();\n const gotoSnapshot = useGotoRecoilSnapshot$1();\n return useCallback$3((...args) => {\n function set(recoilState, newValueOrUpdater) {\n setRecoilValue$3(storeRef.current, recoilState, newValueOrUpdater);\n }\n\n function reset(recoilState) {\n setRecoilValue$3(storeRef.current, recoilState, DEFAULT_VALUE$5);\n } // Use currentTree for the snapshot to show the currently committed state\n\n\n const snapshot = cloneSnapshot$2(storeRef.current); // FIXME massive gains from doing this lazily\n\n const atomicUpdate = atomicUpdater$1(storeRef.current);\n let ret = SENTINEL;\n batchUpdates$4(() => {\n const errMsg = 'useRecoilCallback expects a function that returns a function: ' + 'it accepts a function of the type (RecoilInterface) => T = R ' + 'and returns a callback function T => R, where RecoilInterface is an ' + 'object {snapshot, set, ...} and T and R are the argument and return ' + 'types of the callback you want to create. Please see the docs ' + 'at recoiljs.org for details.';\n\n if (typeof fn !== 'function') {\n throw Recoil_err(errMsg);\n } // flowlint-next-line unclear-type:off\n\n\n const cb = fn({\n set,\n reset,\n snapshot,\n gotoSnapshot,\n transact_UNSTABLE: atomicUpdate\n });\n\n if (typeof cb !== 'function') {\n throw Recoil_err(errMsg);\n }\n\n ret = cb(...args);\n });\n !!(ret instanceof Sentinel) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'batchUpdates should return immediately') : Recoil_invariant(false) : void 0;\n return ret;\n }, deps != null ? [...deps, storeRef] : undefined // eslint-disable-line fb-www/react-hooks-deps\n );\n}\n\nvar Recoil_useRecoilCallback = useRecoilCallback;\n\nconst {\n getNode: getNode$5\n} = Recoil_Node;\n\nconst {\n useStoreRef: useStoreRef$7\n} = Recoil_RecoilRoot_react;\n\nconst {\n useCallback: useCallback$4\n} = react;\n\nfunction useRecoilRefresher(recoilValue) {\n const storeRef = useStoreRef$7();\n return useCallback$4(() => {\n var _node$clearCache;\n\n const store = storeRef.current;\n const {\n currentTree\n } = store.getState();\n const node = getNode$5(recoilValue.key);\n (_node$clearCache = node.clearCache) === null || _node$clearCache === void 0 ? void 0 : _node$clearCache.call(node, store, currentTree);\n }, [recoilValue, storeRef]);\n}\n\nvar Recoil_useRecoilRefresher = useRecoilRefresher;\n\nconst {\n atomicUpdater: atomicUpdater$2\n} = Recoil_AtomicUpdates$1;\n\nconst {\n useStoreRef: useStoreRef$8\n} = Recoil_RecoilRoot_react;\n\nconst {\n useMemo: useMemo$3\n} = react;\n\nfunction useRecoilTransaction(fn, deps) {\n const storeRef = useStoreRef$8();\n return useMemo$3(() => (...args) => {\n const atomicUpdate = atomicUpdater$2(storeRef.current);\n atomicUpdate(transactionInterface => {\n fn(transactionInterface)(...args);\n });\n }, deps != null ? [...deps, storeRef] : undefined // eslint-disable-line fb-www/react-hooks-deps\n );\n}\n\nvar Recoil_useRecoilTransaction = useRecoilTransaction;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nfunction isNode(object) {\n var _ownerDocument, _doc$defaultView;\n\n if (typeof window === 'undefined') {\n return false;\n }\n\n const doc = object != null ? (_ownerDocument = object.ownerDocument) !== null && _ownerDocument !== void 0 ? _ownerDocument : object : document;\n const defaultView = (_doc$defaultView = doc.defaultView) !== null && _doc$defaultView !== void 0 ? _doc$defaultView : window;\n return !!(object != null && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nvar Recoil_isNode = isNode;\n\nconst {\n isReactNative: isReactNative$1,\n isSSR: isSSR$4\n} = Recoil_Environment;\n\n\n\n\n\nfunction shouldNotBeFrozen(value) {\n // Primitives and functions:\n if (value === null || typeof value !== 'object') {\n return true;\n } // React elements:\n\n\n switch (typeof value.$$typeof) {\n case 'symbol':\n return true;\n\n case 'number':\n return true;\n } // Immutable structures:\n\n\n if (value['@@__IMMUTABLE_ITERABLE__@@'] != null || value['@@__IMMUTABLE_KEYED__@@'] != null || value['@@__IMMUTABLE_INDEXED__@@'] != null || value['@@__IMMUTABLE_ORDERED__@@'] != null || value['@@__IMMUTABLE_RECORD__@@'] != null) {\n return true;\n } // DOM nodes:\n\n\n if (Recoil_isNode(value)) {\n return true;\n }\n\n if (Recoil_isPromise(value)) {\n return true;\n }\n\n if (value instanceof Error) {\n return true;\n }\n\n if (ArrayBuffer.isView(value)) {\n return true;\n } // Some environments, just as Jest, don't work with the instanceof check\n\n\n if (!isSSR$4 && !isReactNative$1 && ( // $FlowFixMe(site=recoil) Window does not have a FlowType definition https://github.com/facebook/flow/issues/6709\n value === window || value instanceof Window)) {\n return true;\n }\n\n return false;\n} // Recursively freeze a value to enforce it is read-only.\n// This may also have minimal performance improvements for enumerating\n// objects (based on browser implementations, of course)\n\n\nfunction deepFreezeValue(value) {\n if (typeof value !== 'object' || shouldNotBeFrozen(value)) {\n return;\n }\n\n Object.freeze(value); // Make all properties read-only\n\n for (const key in value) {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n if (Object.prototype.hasOwnProperty.call(value, key)) {\n const prop = value[key]; // Prevent infinite recurssion for circular references.\n\n if (typeof prop === 'object' && prop != null && !Object.isFrozen(prop)) {\n deepFreezeValue(prop);\n }\n }\n }\n\n Object.seal(value); // This also makes existing properties non-configurable.\n}\n\nvar Recoil_deepFreezeValue = deepFreezeValue;\n\nconst TIME_WARNING_THRESHOLD_MS = 15;\n\nfunction stringify(x, opt, key) {\n // A optimization to avoid the more expensive JSON.stringify() for simple strings\n // This may lose protection for u2028 and u2029, though.\n if (typeof x === 'string' && !x.includes('\"') && !x.includes('\\\\')) {\n return `\"${x}\"`;\n } // Handle primitive types\n\n\n switch (typeof x) {\n case 'undefined':\n return '';\n // JSON.stringify(undefined) returns undefined, but we always want to return a string\n\n case 'boolean':\n return x ? 'true' : 'false';\n\n case 'number':\n case 'symbol':\n // case 'bigint': // BigInt is not supported in www\n return String(x);\n\n case 'string':\n // Add surrounding quotes and escape internal quotes\n return JSON.stringify(x);\n\n case 'function':\n if ((opt === null || opt === void 0 ? void 0 : opt.allowFunctions) !== true) {\n throw Recoil_err('Attempt to serialize function in a Recoil cache key');\n }\n\n return `__FUNCTION(${x.name})__`;\n }\n\n if (x === null) {\n return 'null';\n } // Fallback case for unknown types\n\n\n if (typeof x !== 'object') {\n var _JSON$stringify;\n\n return (_JSON$stringify = JSON.stringify(x)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : '';\n } // Deal with all promises as equivalent for now.\n\n\n if (Recoil_isPromise(x)) {\n return '__PROMISE__';\n } // Arrays handle recursive stringification\n\n\n if (Array.isArray(x)) {\n return `[${x.map((v, i) => stringify(v, opt, i.toString()))}]`;\n } // If an object defines a toJSON() method, then use that to override the\n // serialization. This matches the behavior of JSON.stringify().\n // Pass the key for compatibility.\n // Immutable.js collections define this method to allow us to serialize them.\n\n\n if (typeof x.toJSON === 'function') {\n // flowlint-next-line unclear-type: off\n return stringify(x.toJSON(key), opt, key);\n } // For built-in Maps, sort the keys in a stable order instead of the\n // default insertion order. Support non-string keys.\n\n\n if (x instanceof Map) {\n const obj = {};\n\n for (const [k, v] of x) {\n // Stringify will escape any nested quotes\n obj[typeof k === 'string' ? k : stringify(k, opt)] = v;\n }\n\n return stringify(obj, opt, key);\n } // For built-in Sets, sort the keys in a stable order instead of the\n // default insertion order.\n\n\n if (x instanceof Set) {\n return stringify(Array.from(x).sort((a, b) => stringify(a, opt).localeCompare(stringify(b, opt))), opt, key);\n } // Anything else that is iterable serialize as an Array.\n\n\n if (Symbol !== undefined && x[Symbol.iterator] != null && typeof x[Symbol.iterator] === 'function') {\n // flowlint-next-line unclear-type: off\n return stringify(Array.from(x), opt, key);\n } // For all other Objects, sort the keys in a stable order.\n\n\n return `{${Object.keys(x).filter(k => x[k] !== undefined).sort() // stringify the key to add quotes and escape any nested slashes or quotes.\n .map(k => `${stringify(k, opt)}:${stringify(x[k], opt, k)}`).join(',')}}`;\n} // Utility similar to JSON.stringify() except:\n// * Serialize built-in Sets as an Array\n// * Serialize built-in Maps as an Object. Supports non-string keys.\n// * Serialize other iterables as arrays\n// * Sort the keys of Objects and Maps to have a stable order based on string conversion.\n// This overrides their default insertion order.\n// * Still uses toJSON() of any object to override serialization\n// * Support Symbols (though don't guarantee uniqueness)\n// * We could support BigInt, but Flow doesn't seem to like it.\n// See Recoil_stableStringify-test.js for examples\n\n\nfunction stableStringify(x, opt = {\n allowFunctions: false\n}) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== 'undefined') {\n const startTime = window.performance ? window.performance.now() : 0;\n const str = stringify(x, opt);\n const endTime = window.performance ? window.performance.now() : 0;\n\n if (endTime - startTime > TIME_WARNING_THRESHOLD_MS) {\n /* eslint-disable fb-www/no-console */\n console.groupCollapsed(`Recoil: Spent ${endTime - startTime}ms computing a cache key`);\n console.warn(x, str);\n console.groupEnd();\n /* eslint-enable fb-www/no-console */\n }\n\n return str;\n }\n }\n\n return stringify(x, opt);\n}\n\nvar Recoil_stableStringify = stableStringify;\n\nclass TreeCache {\n constructor(options) {\n var _options$onHit, _options$onSet, _options$mapNodeValue;\n\n _defineProperty(this, \"_numLeafs\", void 0);\n\n _defineProperty(this, \"_root\", void 0);\n\n _defineProperty(this, \"_onHit\", void 0);\n\n _defineProperty(this, \"_onSet\", void 0);\n\n _defineProperty(this, \"_mapNodeValue\", void 0);\n\n this._numLeafs = 0;\n this._root = null;\n this._onHit = (_options$onHit = options === null || options === void 0 ? void 0 : options.onHit) !== null && _options$onHit !== void 0 ? _options$onHit : () => {};\n this._onSet = (_options$onSet = options === null || options === void 0 ? void 0 : options.onSet) !== null && _options$onSet !== void 0 ? _options$onSet : () => {};\n this._mapNodeValue = (_options$mapNodeValue = options === null || options === void 0 ? void 0 : options.mapNodeValue) !== null && _options$mapNodeValue !== void 0 ? _options$mapNodeValue : val => val;\n }\n\n size() {\n return this._numLeafs;\n } // TODO: nodeCount(): number\n\n\n root() {\n return this._root;\n }\n\n get(getNodeValue, handlers) {\n var _this$getLeafNode;\n\n return (_this$getLeafNode = this.getLeafNode(getNodeValue, handlers)) === null || _this$getLeafNode === void 0 ? void 0 : _this$getLeafNode.value;\n }\n\n getLeafNode(getNodeValue, handlers) {\n return findLeaf(this.root(), nodeKey => this._mapNodeValue(getNodeValue(nodeKey)), {\n onNodeVisit: node => {\n handlers === null || handlers === void 0 ? void 0 : handlers.onNodeVisit(node);\n\n if (node.type === 'leaf') {\n this._onHit(node);\n }\n }\n });\n }\n\n set(route, value, handlers) {\n let leafNode;\n let newRoot = null;\n\n const setRetryablePart = () => {\n newRoot = addLeaf(this.root(), route.map(([nodeKey, nodeValue]) => [nodeKey, this._mapNodeValue(nodeValue)]), null, value, null, {\n onNodeVisit: node => {\n handlers === null || handlers === void 0 ? void 0 : handlers.onNodeVisit(node);\n\n if (node.type === 'leaf') {\n leafNode = node;\n }\n }\n }, () => {\n this.clear();\n setRetryablePart();\n });\n };\n\n setRetryablePart();\n\n if (!this.root()) {\n this._root = newRoot;\n }\n\n this._numLeafs++;\n\n this._onSet(Recoil_nullthrows(leafNode));\n }\n\n delete(node) {\n if (!this.root()) {\n return false;\n }\n\n const root = Recoil_nullthrows(this.root());\n const existsInTree = pruneNodeFromTree(root, node, node.parent);\n\n if (!existsInTree) {\n return false;\n }\n\n if (node === root || root.type === 'branch' && !root.branches.size) {\n this._root = null;\n this._numLeafs = 0;\n return true;\n }\n\n this._numLeafs -= countDownstreamLeaves(node);\n return true;\n }\n\n clear() {\n this._numLeafs = 0;\n this._root = null;\n }\n\n}\n\nconst findLeaf = (root, getNodeValue, handlers) => {\n var _handlers$onNodeVisit;\n\n if (root == null) {\n return undefined;\n }\n\n handlers === null || handlers === void 0 ? void 0 : (_handlers$onNodeVisit = handlers.onNodeVisit) === null || _handlers$onNodeVisit === void 0 ? void 0 : _handlers$onNodeVisit.call(handlers, root);\n\n if (root.type === 'leaf') {\n return root;\n }\n\n const nodeValue = getNodeValue(root.nodeKey);\n return findLeaf(root.branches.get(nodeValue), getNodeValue, handlers);\n};\n\nconst addLeaf = (root, route, parent, value, branchKey, handlers, onAbort) => {\n var _handlers$onNodeVisit2;\n\n let node;\n\n if (root == null) {\n if (route.length === 0) {\n node = {\n type: 'leaf',\n value,\n parent,\n branchKey\n };\n } else {\n const [path, ...rest] = route;\n const [nodeKey, nodeValue] = path;\n node = {\n type: 'branch',\n nodeKey,\n parent,\n branches: new Map(),\n branchKey\n };\n node.branches.set(nodeValue, addLeaf(null, rest, node, value, nodeValue, handlers, onAbort));\n }\n } else {\n node = root;\n\n if (route.length) {\n const [path, ...rest] = route;\n const [nodeKey, nodeValue] = path;\n\n if (root.type !== 'branch' || root.nodeKey !== nodeKey) {\n Recoil_recoverableViolation('Existing cache must have a branch midway through the ' + 'route with matching node key. Resetting cache.');\n onAbort();\n return node; // ignored\n }\n\n root.branches.set(nodeValue, addLeaf(root.branches.get(nodeValue), rest, root, value, nodeValue, handlers, onAbort));\n }\n }\n\n handlers === null || handlers === void 0 ? void 0 : (_handlers$onNodeVisit2 = handlers.onNodeVisit) === null || _handlers$onNodeVisit2 === void 0 ? void 0 : _handlers$onNodeVisit2.call(handlers, node);\n return node;\n};\n\nconst pruneNodeFromTree = (root, node, parent) => {\n if (!parent) {\n return root === node;\n }\n\n parent.branches.delete(node.branchKey);\n return pruneUpstreamBranches(root, parent, parent.parent);\n};\n\nconst pruneUpstreamBranches = (root, branchNode, parent) => {\n if (!parent) {\n return root === branchNode;\n }\n\n if (branchNode.branches.size === 0) {\n parent.branches.delete(branchNode.branchKey);\n }\n\n return pruneUpstreamBranches(root, parent, parent.parent);\n};\n\nconst countDownstreamLeaves = node => node.type === 'leaf' ? 1 : Array.from(node.branches.values()).reduce((sum, currNode) => sum + countDownstreamLeaves(currNode), 0);\n\nvar Recoil_TreeCache = {\n TreeCache\n};\n\nvar Recoil_TreeCache_1 = Recoil_TreeCache.TreeCache;\n\nvar Recoil_TreeCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TreeCache: Recoil_TreeCache_1\n});\n\nclass LRUCache {\n constructor(options) {\n var _options$mapKey;\n\n _defineProperty(this, \"_maxSize\", void 0);\n\n _defineProperty(this, \"_size\", void 0);\n\n _defineProperty(this, \"_head\", void 0);\n\n _defineProperty(this, \"_tail\", void 0);\n\n _defineProperty(this, \"_map\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n this._maxSize = options.maxSize;\n this._size = 0;\n this._head = null;\n this._tail = null;\n this._map = new Map();\n this._keyMapper = (_options$mapKey = options.mapKey) !== null && _options$mapKey !== void 0 ? _options$mapKey : v => v;\n }\n\n head() {\n return this._head;\n }\n\n tail() {\n return this._tail;\n }\n\n size() {\n return this._size;\n }\n\n maxSize() {\n return this._maxSize;\n }\n\n has(key) {\n return this._map.has(this._keyMapper(key));\n }\n\n get(key) {\n const mappedKey = this._keyMapper(key);\n\n const node = this._map.get(mappedKey);\n\n if (!node) {\n return undefined;\n }\n\n this.set(key, node.value);\n return node.value;\n }\n\n set(key, val) {\n const mappedKey = this._keyMapper(key);\n\n const existingNode = this._map.get(mappedKey);\n\n if (existingNode) {\n this.delete(key);\n }\n\n const head = this.head();\n const node = {\n key,\n right: head,\n left: null,\n value: val\n };\n\n if (head) {\n head.left = node;\n } else {\n this._tail = node;\n }\n\n this._map.set(mappedKey, node);\n\n this._head = node;\n this._size++;\n\n this._maybeDeleteLRU();\n }\n\n _maybeDeleteLRU() {\n if (this.size() > this.maxSize()) {\n this.deleteLru();\n }\n }\n\n deleteLru() {\n const tail = this.tail();\n\n if (tail) {\n this.delete(tail.key);\n }\n }\n\n delete(key) {\n const mappedKey = this._keyMapper(key);\n\n if (!this._size || !this._map.has(mappedKey)) {\n return;\n }\n\n const node = Recoil_nullthrows(this._map.get(mappedKey));\n const right = node.right;\n const left = node.left;\n\n if (right) {\n right.left = node.left;\n }\n\n if (left) {\n left.right = node.right;\n }\n\n if (node === this.head()) {\n this._head = right;\n }\n\n if (node === this.tail()) {\n this._tail = left;\n }\n\n this._map.delete(mappedKey);\n\n this._size--;\n }\n\n clear() {\n this._size = 0;\n this._head = null;\n this._tail = null;\n this._map = new Map();\n }\n\n}\n\nvar Recoil_LRUCache = {\n LRUCache\n};\n\nvar Recoil_LRUCache_1 = Recoil_LRUCache.LRUCache;\n\nvar Recoil_LRUCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n LRUCache: Recoil_LRUCache_1\n});\n\nconst {\n LRUCache: LRUCache$1\n} = Recoil_LRUCache$1;\n\nconst {\n TreeCache: TreeCache$1\n} = Recoil_TreeCache$1;\n\nfunction treeCacheLRU(maxSize, mapNodeValue = v => v) {\n const lruCache = new LRUCache$1({\n maxSize\n });\n const cache = new TreeCache$1({\n mapNodeValue,\n onHit: node => {\n lruCache.set(node, true);\n },\n onSet: node => {\n const lruNode = lruCache.tail();\n lruCache.set(node, true);\n\n if (lruNode && cache.size() > maxSize) {\n cache.delete(lruNode.key);\n }\n }\n }); // $FlowFixMe[method-unbinding]\n\n return cache;\n}\n\nvar Recoil_treeCacheLRU = treeCacheLRU;\n\nconst {\n TreeCache: TreeCache$2\n} = Recoil_TreeCache$1;\n\n\n\nconst defaultPolicy = {\n equality: 'reference',\n eviction: 'keep-all',\n maxSize: Infinity\n};\n\nfunction treeCacheFromPolicy({\n equality = defaultPolicy.equality,\n eviction = defaultPolicy.eviction,\n maxSize = defaultPolicy.maxSize\n} = defaultPolicy) {\n const valueMapper = getValueMapper(equality);\n const treeCache = getTreeCache(eviction, maxSize, valueMapper);\n return treeCache;\n}\n\nfunction getValueMapper(equality) {\n switch (equality) {\n case 'reference':\n return val => val;\n\n case 'value':\n return val => Recoil_stableStringify(val);\n }\n\n throw Recoil_err(`Unrecognized equality policy ${equality}`);\n}\n\nfunction getTreeCache(eviction, maxSize, mapNodeValue) {\n switch (eviction) {\n case 'keep-all':\n // $FlowFixMe[method-unbinding]\n return new TreeCache$2({\n mapNodeValue\n });\n\n case 'lru':\n return Recoil_treeCacheLRU(Recoil_nullthrows(maxSize), mapNodeValue);\n\n case 'most-recent':\n return Recoil_treeCacheLRU(1, mapNodeValue);\n }\n\n throw Recoil_err(`Unrecognized eviction policy ${eviction}`);\n}\n\nvar Recoil_treeCacheFromPolicy = treeCacheFromPolicy;\n\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 * @emails oncall+recoil\n * \n * @format\n *\n * This is a stub for some integration into FB internal stuff\n */\nfunction startPerfBlock(_id) {\n return () => null;\n}\n\nvar Recoil_PerformanceTimings = {\n startPerfBlock\n};\n\nconst {\n loadableWithError: loadableWithError$1,\n loadableWithPromise: loadableWithPromise$1,\n loadableWithValue: loadableWithValue$2\n} = Recoil_Loadable$1;\n\n\n\nconst {\n getNodeLoadable: getNodeLoadable$2,\n peekNodeLoadable: peekNodeLoadable$1,\n setNodeValue: setNodeValue$3\n} = Recoil_FunctionalCore;\n\nconst {\n saveDependencyMapToStore: saveDependencyMapToStore$1\n} = Recoil_Graph;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$6,\n RecoilValueNotReady: RecoilValueNotReady$2,\n getConfigDeletionHandler: getConfigDeletionHandler$1,\n getNode: getNode$6,\n registerNode: registerNode$1\n} = Recoil_Node;\n\nconst {\n isRecoilValue: isRecoilValue$3\n} = Recoil_RecoilValue$1;\n\nconst {\n AbstractRecoilValue: AbstractRecoilValue$5\n} = Recoil_RecoilValue$1;\n\nconst {\n markRecoilValueModified: markRecoilValueModified$1,\n setRecoilValueLoadable: setRecoilValueLoadable$2\n} = Recoil_RecoilValueInterface;\n\nconst {\n retainedByOptionWithDefault: retainedByOptionWithDefault$1\n} = Recoil_Retention;\n\nconst {\n cloneSnapshot: cloneSnapshot$3\n} = Recoil_Snapshot$1;\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst {\n startPerfBlock: startPerfBlock$1\n} = Recoil_PerformanceTimings;\n\n\n\nclass Canceled {}\n\nconst CANCELED = new Canceled();\n/**\n * An ExecutionId is an arbitrary ID that lets us distinguish executions from\n * each other. This is necessary as we need a way of solving this problem:\n * \"given 3 async executions, only update state for the 'latest' execution when\n * it finishes running regardless of when the other 2 finish\". ExecutionIds\n * provide a convenient way of identifying executions so that we can track and\n * manage them over time.\n */\n\nconst dependencyStack = []; // for detecting circular dependencies.\n\nconst waitingStores = new Map();\n/* eslint-disable no-redeclare */\n\nconst getNewExecutionId = (() => {\n let executionId = 0;\n return () => executionId++;\n})();\n\nfunction getInitialExecutionInfo() {\n return {\n depValuesDiscoveredSoFarDuringAsyncWork: null,\n latestLoadable: null,\n latestExecutionId: null,\n stateVersion: null\n };\n}\n\nfunction selector(options) {\n let recoilValue = null;\n const {\n key,\n get,\n cachePolicy_UNSTABLE: cachePolicy\n } = options;\n const set = options.set != null ? options.set : undefined; // flow\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof key !== 'string') {\n throw Recoil_err('A key option with a unique string value must be provided when creating a selector.');\n }\n\n if (typeof get !== 'function') {\n throw Recoil_err('Selectors must specify a get callback option to get the selector value.');\n }\n } // This is every discovered dependency across executions\n\n\n const discoveredDependencyNodeKeys = new Set();\n const cache = Recoil_treeCacheFromPolicy(cachePolicy !== null && cachePolicy !== void 0 ? cachePolicy : {\n equality: 'reference',\n eviction: 'keep-all'\n });\n const retainedBy = retainedByOptionWithDefault$1(options.retainedBy_UNSTABLE);\n const executionInfoMap = new Map();\n let liveStoresCount = 0;\n\n function selectorIsLive() {\n return !Recoil_gkx_1('recoil_memory_managament_2020') || liveStoresCount > 0;\n }\n\n function getExecutionInfo(store) {\n if (!executionInfoMap.has(store)) {\n executionInfoMap.set(store, getInitialExecutionInfo());\n }\n\n return Recoil_nullthrows(executionInfoMap.get(store));\n }\n\n function selectorInit(store) {\n liveStoresCount++;\n store.getState().knownSelectors.add(key); // FIXME remove knownSelectors?\n\n return () => {\n liveStoresCount--;\n store.getState().knownSelectors.delete(key);\n executionInfoMap.delete(store);\n };\n }\n\n function selectorShouldDeleteConfigOnRelease() {\n return getConfigDeletionHandler$1(key) !== undefined && !selectorIsLive();\n }\n\n function notifyStoreWhenAsyncSettles(store, loadable, executionId) {\n if (loadable.state === 'loading') {\n let stores = waitingStores.get(executionId);\n\n if (stores == null) {\n waitingStores.set(executionId, stores = new Set());\n }\n\n stores.add(store);\n }\n }\n\n function notifyStoresOfSettledAsync(newLoadable, executionId) {\n const stores = waitingStores.get(executionId);\n\n if (stores !== undefined) {\n for (const store of stores) {\n setRecoilValueLoadable$2(store, new AbstractRecoilValue$5(key), newLoadable);\n }\n\n waitingStores.delete(executionId);\n }\n }\n\n function getCachedNodeLoadable(store, state, nodeKey) {\n const isKeyPointingToSelector = store.getState().knownSelectors.has(nodeKey);\n /**\n * It's important that we don't bypass calling getNodeLoadable for atoms\n * as getNodeLoadable has side effects in state\n */\n\n if (isKeyPointingToSelector && state.atomValues.has(nodeKey)) {\n return Recoil_nullthrows(state.atomValues.get(nodeKey));\n }\n\n const loadable = getNodeLoadable$2(store, state, nodeKey);\n\n if (loadable.state !== 'loading' && isKeyPointingToSelector) {\n state.atomValues.set(nodeKey, loadable);\n }\n\n return loadable;\n }\n /**\n * This function attaches a then() and a catch() to a promise that was\n * returned from a selector's get() (either explicitly or implicitly by\n * running a function that uses the \"async\" keyword). If a selector's get()\n * returns a promise, we have two possibilities:\n *\n * 1. The promise will resolve, in which case it will have completely finished\n * executing without any remaining pending dependencies. No more retries\n * are needed and we can proceed with updating the cache and notifying\n * subscribers (if it is the latest execution, otherwise only the cache\n * will be updated and subscriptions will not be fired). This is the case\n * handled by the attached then() handler.\n *\n * 2. The promise will throw because it either has an error or it came across\n * an async dependency that has not yet resolved, in which case we will\n * call wrapDepdencyPromise(), whose responsibility is to handle dependency\n * promises. This case is handled by the attached catch() handler.\n *\n * Both branches will eventually resolve to the final result of the selector\n * (or an error if a real error occurred).\n *\n * The execution will run to completion even if it is stale, and its value\n * will be cached. But stale executions will not update global state or update\n * executionInfo as that is the responsibility of the 'latest' execution.\n *\n * Note this function should not be passed a promise that was thrown--AKA a\n * dependency promise. Dependency promises should be passed to\n * wrapPendingDependencyPromise()).\n */\n\n\n function wrapPendingPromise(store, promise, state, depValues, executionId, loadingDepsState) {\n return promise.then(value => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store, executionId);\n throw CANCELED;\n }\n\n const loadable = loadableWithValue$2(value);\n maybeFreezeValue(value);\n setCache(state, depValuesToDepRoute(depValues), loadable);\n setDepsInStore(store, state, new Set(depValues.keys()), executionId);\n setLoadableInStoreToNotifyDeps(store, loadable, executionId);\n return value;\n }).catch(errorOrPromise => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store, executionId);\n throw CANCELED;\n }\n\n if (isLatestExecution(store, executionId)) {\n updateExecutionInfoDepValues(depValues, store, executionId);\n }\n\n if (Recoil_isPromise(errorOrPromise)) {\n return wrapPendingDependencyPromise(store, errorOrPromise, state, depValues, executionId, loadingDepsState);\n }\n\n const loadable = loadableWithError$1(errorOrPromise);\n maybeFreezeValue(errorOrPromise);\n setCache(state, depValuesToDepRoute(depValues), loadable);\n setDepsInStore(store, state, new Set(depValues.keys()), executionId);\n setLoadableInStoreToNotifyDeps(store, loadable, executionId);\n throw errorOrPromise;\n });\n }\n /**\n * This function attaches a then() and a catch() to a promise that was\n * thrown from a selector's get(). If a selector's get() throws a promise,\n * we have two possibilities:\n *\n * 1. The promise will resolve, meaning one of our selector's dependencies is\n * now available and we should \"retry\" our get() by running it again. This\n * is the case handled by the attached then() handler.\n *\n * 2. The promise will throw because something went wrong with the dependency\n * promise (in other words a real error occurred). This case is handled by\n * the attached catch() handler. If the dependency promise throws, it is\n * _always_ a real error and not another dependency promise (any dependency\n * promises would have been handled upstream).\n *\n * The then() branch will eventually resolve to the final result of the\n * selector (or an error if a real error occurs), and the catch() will always\n * resolve to an error because the dependency promise is a promise that was\n * wrapped upstream, meaning it will only resolve to its real value or to a\n * real error.\n *\n * The execution will run to completion even if it is stale, and its value\n * will be cached. But stale executions will not update global state or update\n * executionInfo as that is the responsibility of the 'latest' execution.\n *\n * Note this function should not be passed a promise that was returned from\n * get(). The intention is that this function is only passed promises that\n * were thrown due to a pending dependency. Promises returned by get() should\n * be passed to wrapPendingPromise() instead.\n */\n\n\n function wrapPendingDependencyPromise(store, promise, state, existingDeps, executionId, loadingDepsState) {\n return promise.then(resolvedDep => {\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store, executionId);\n throw CANCELED;\n } // Check if we are handling a pending Recoil dependency or if the user\n // threw their own Promise to \"suspend\" a selector evaluation. We need\n // to check that the loadingDepPromise actually matches the promise that\n // we caught in case the selector happened to catch the promise we threw\n // for a pending Recoil dependency from `getRecoilValue()` and threw\n // their own promise instead.\n\n\n if (loadingDepsState.loadingDepKey != null && loadingDepsState.loadingDepPromise === promise) {\n /**\n * Note for async atoms, this means we are changing the atom's value\n * in the store for the given version. This should be alright because\n * the version of state is now stale and a new version will have\n * already been triggered by the atom being resolved (see this logic\n * in Recoil_atom.js)\n */\n state.atomValues.set(loadingDepsState.loadingDepKey, loadableWithValue$2(resolvedDep));\n } else {\n /**\n * If resolvedDepKey is not defined, the promise was a user-thrown\n * promise. User-thrown promises are an advanced feature and they\n * should be avoided in almost all cases. Using `loadable.map()` inside\n * of selectors for loading loadables and then throwing that mapped\n * loadable's promise is an example of a user-thrown promise.\n *\n * When we hit a user-thrown promise, we have to bail out of an optimization\n * where we bypass calculating selector cache keys for selectors that\n * have been previously seen for a given state (these selectors are saved in\n * state.atomValues) to avoid stale state as we have no way of knowing\n * what state changes happened (if any) in result to the promise resolving.\n *\n * Ideally we would only bail out selectors that are in the chain of\n * dependencies for this selector, but there's currently no way to get\n * a full list of a selector's downstream nodes because the state that\n * is executing may be a discarded tree (so store.getGraph(state.version)\n * will be empty), and the full dep tree may not be in the selector\n * caches in the case where the selector's cache was cleared. To solve\n * for this we would have to keep track of all running selector\n * executions and their downstream deps. Because this only covers edge\n * cases, that complexity might not be justifyable.\n */\n store.getState().knownSelectors.forEach(nodeKey => {\n state.atomValues.delete(nodeKey);\n });\n }\n /**\n * Optimization: Now that the dependency has resolved, let's try hitting\n * the cache in case the dep resolved to a value we have previously seen.\n *\n * TODO:\n * Note this optimization is not perfect because it only prevents re-executions\n * _after_ the point where an async dependency is found. Any code leading\n * up to the async dependency may have run unnecessarily. The ideal case\n * would be to wait for the async dependency to resolve first, check the\n * cache, and prevent _any_ execution of the selector if the resulting\n * value of the dependency leads to a path that is found in the cache.\n * The ideal case is more difficult to implement as it would require that\n * we capture and wait for the the async dependency right after checking\n * the cache. The current approach takes advantage of the fact that running\n * the selector already has a code path that lets us exit early when\n * an async dep resolves.\n */\n\n\n const cachedLoadable = getValFromCacheAndUpdatedDownstreamDeps(store, state);\n\n if (cachedLoadable && cachedLoadable.state === 'hasValue') {\n setExecutionInfo(cachedLoadable, store);\n return cachedLoadable.contents;\n }\n /**\n * If this execution is stale, let's check to see if there is some in\n * progress execution with a matching state. If we find a match, then\n * we can take the value from that in-progress execution. Note this may\n * sound like an edge case, but may be very common in cases where a\n * loading dependency resolves from loading to having a value (thus\n * possibly triggering a re-render), and React re-renders before the\n * chained .then() functions run, thus starting a new execution as the\n * dep has changed value. Without this check we will run the selector\n * twice (once in the new execution and once again in this .then(), so\n * this check is necessary to keep unnecessary re-executions to a\n * minimum).\n *\n * Also note this code does not check across all executions that may be\n * running. It only optimizes for the _latest_ execution per store as\n * we currently do not maintain a list of all currently running executions.\n * This means in some cases we may run selectors more than strictly\n * necessary when there are multiple executions running for the same\n * selector. This may be a valid tradeoff as checking for dep changes\n * across all in-progress executions may take longer than just\n * re-running the selector. This will be app-dependent, and maybe in the\n * future we can make the behavior configurable. An ideal fix may be\n * to extend the tree cache to support caching loading states.\n */\n\n\n if (!isLatestExecution(store, executionId)) {\n var _executionInfo$latest;\n\n const executionInfo = getExecutionInfoOfInProgressExecution(state);\n\n if ((executionInfo === null || executionInfo === void 0 ? void 0 : (_executionInfo$latest = executionInfo.latestLoadable) === null || _executionInfo$latest === void 0 ? void 0 : _executionInfo$latest.state) === 'loading') {\n /**\n * Returning promise here without wrapping as the wrapper logic was\n * already done upstream when this promise was generated.\n */\n return executionInfo.latestLoadable.contents;\n }\n }\n\n const [loadable, depValues] = evaluateSelectorGetter(store, state, executionId);\n\n if (isLatestExecution(store, executionId)) {\n updateExecutionInfoDepValues(depValues, store, executionId);\n }\n\n if (loadable.state !== 'loading') {\n setCache(state, depValuesToDepRoute(depValues), loadable);\n setDepsInStore(store, state, new Set(depValues.keys()), executionId);\n setLoadableInStoreToNotifyDeps(store, loadable, executionId);\n }\n\n if (loadable.state === 'hasError') {\n throw loadable.contents;\n }\n /**\n * Returning any promises here without wrapping as the wrapepr logic was\n * already done when we called evaluateSelectorGetter() to get this\n * loadable\n */\n\n\n return loadable.contents;\n }).catch(error => {\n if (error instanceof Canceled) {\n Recoil_recoverableViolation('Selector was released while it had dependencies');\n throw CANCELED;\n }\n\n if (!selectorIsLive()) {\n // The selector was released since the request began; ignore the response.\n clearExecutionInfo(store, executionId);\n throw CANCELED;\n }\n\n const loadable = loadableWithError$1(error);\n maybeFreezeValue(error);\n setCache(state, depValuesToDepRoute(existingDeps), loadableWithError$1(error));\n setDepsInStore(store, state, new Set(existingDeps.keys()), executionId);\n setLoadableInStoreToNotifyDeps(store, loadable, executionId);\n throw error;\n });\n }\n\n function setLoadableInStoreToNotifyDeps(store, loadable, executionId) {\n if (isLatestExecution(store, executionId)) {\n setExecutionInfo(loadable, store);\n notifyStoresOfSettledAsync(loadable, executionId);\n }\n }\n\n function setDepsInStore(store, state, deps, executionId) {\n var _store$getState, _store$getState$curre, _store$getState2, _store$getState2$next;\n\n if (isLatestExecution(store, executionId) || state.version === ((_store$getState = store.getState()) === null || _store$getState === void 0 ? void 0 : (_store$getState$curre = _store$getState.currentTree) === null || _store$getState$curre === void 0 ? void 0 : _store$getState$curre.version) || state.version === ((_store$getState2 = store.getState()) === null || _store$getState2 === void 0 ? void 0 : (_store$getState2$next = _store$getState2.nextTree) === null || _store$getState2$next === void 0 ? void 0 : _store$getState2$next.version)) {\n var _store$getState$nextT, _store$getState3, _store$getState3$next;\n\n saveDependencyMapToStore$1(new Map([[key, deps]]), store, (_store$getState$nextT = (_store$getState3 = store.getState()) === null || _store$getState3 === void 0 ? void 0 : (_store$getState3$next = _store$getState3.nextTree) === null || _store$getState3$next === void 0 ? void 0 : _store$getState3$next.version) !== null && _store$getState$nextT !== void 0 ? _store$getState$nextT : store.getState().currentTree.version);\n }\n }\n\n function setNewDepInStore(store, state, deps, newDepKey, executionId) {\n deps.add(newDepKey);\n setDepsInStore(store, state, deps, executionId);\n }\n\n function evaluateSelectorGetter(store, state, executionId) {\n const endPerfBlock = startPerfBlock$1(key); // TODO T63965866: use execution ID here\n\n let result;\n let resultIsError = false;\n let loadable;\n const loadingDepsState = {\n loadingDepKey: null,\n loadingDepPromise: null\n };\n const depValues = new Map();\n /**\n * Starting a fresh set of deps that we'll be using to update state. We're\n * starting a new set versus adding it in existing state deps because\n * the version of state that we update deps for may be a more recent version\n * than the version the selector was called with. This is because the latest\n * execution will update the deps of the current/latest version of state (\n * this is safe to do because the fact that the selector is the latest\n * execution means the deps we discover below are our best guess at the\n * deps for the current/latest state in the store)\n */\n\n const deps = new Set();\n setDepsInStore(store, state, deps, executionId);\n\n function getRecoilValue(dep) {\n const {\n key: depKey\n } = dep;\n setNewDepInStore(store, state, deps, depKey, executionId);\n const depLoadable = getCachedNodeLoadable(store, state, depKey);\n depValues.set(depKey, depLoadable);\n\n switch (depLoadable.state) {\n case 'hasValue':\n return depLoadable.contents;\n\n case 'hasError':\n throw depLoadable.contents;\n\n case 'loading':\n loadingDepsState.loadingDepKey = depKey;\n loadingDepsState.loadingDepPromise = depLoadable.contents;\n throw depLoadable.contents;\n }\n\n throw Recoil_err('Invalid Loadable state');\n }\n\n let gateCallback = false;\n\n const getCallback = fn => {\n return (...args) => {\n if (!gateCallback) {\n throw Recoil_err('getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can obtain the current Recoil state without a subscription.');\n }\n\n const snapshot = cloneSnapshot$3(store);\n const cb = fn({\n snapshot\n });\n\n if (typeof cb !== 'function') {\n throw Recoil_err('getCallback() expects a function that returns a function.');\n }\n\n return cb(...args);\n };\n };\n\n try {\n result = get({\n get: getRecoilValue,\n getCallback\n });\n result = isRecoilValue$3(result) ? getRecoilValue(result) : result;\n gateCallback = true;\n\n if (Recoil_isPromise(result)) {\n result = wrapPendingPromise(store, result, state, depValues, executionId, loadingDepsState).finally(endPerfBlock);\n } else {\n endPerfBlock();\n }\n } catch (errorOrDepPromise) {\n result = errorOrDepPromise;\n\n if (Recoil_isPromise(result)) {\n result = wrapPendingDependencyPromise(store, result, state, depValues, executionId, loadingDepsState).finally(endPerfBlock);\n } else {\n resultIsError = true;\n endPerfBlock();\n }\n }\n\n if (resultIsError) {\n loadable = loadableWithError$1(result);\n } else if (Recoil_isPromise(result)) {\n loadable = loadableWithPromise$1(result);\n } else {\n loadable = loadableWithValue$2(result);\n }\n\n if (loadable.state !== 'loading') {\n maybeFreezeValue(loadable.contents);\n }\n\n return [loadable, depValues];\n }\n\n function getValFromCacheAndUpdatedDownstreamDeps(store, state) {\n const depsAfterCacheDone = new Set();\n const executionInfo = getExecutionInfo(store);\n let cachedVal;\n\n try {\n cachedVal = cache.get(nodeKey => {\n !(typeof nodeKey === 'string') ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Cache nodeKey is type string') : Recoil_invariant(false) : void 0;\n const loadable = getCachedNodeLoadable(store, state, nodeKey);\n return loadable.contents;\n }, {\n onNodeVisit: node => {\n if (node.type === 'branch' && node.nodeKey !== key && typeof node.nodeKey === 'string') {\n depsAfterCacheDone.add(node.nodeKey);\n discoveredDependencyNodeKeys.add(node.nodeKey);\n }\n }\n });\n } catch (error) {\n throw Recoil_err(`Problem with cache lookup for selector \"${key}\": ${error.message}`);\n }\n /**\n * Ensure store contains correct dependencies if we hit the cache so that\n * the store deps and cache are in sync for a given state. This is important\n * because store deps are normally updated when new executions are created,\n * but cache hits don't trigger new executions but they still _may_ signifiy\n * a change in deps in the store if the store deps for this state are empty\n * or stale.\n */\n\n\n if (cachedVal) {\n setDepsInStore(store, state, depsAfterCacheDone, executionInfo.latestExecutionId);\n }\n\n return cachedVal;\n }\n /**\n * FIXME: dep keys should take into account the state of the loadable to\n * prevent the edge case where a loadable with an error and a loadable with\n * an error as a value are treated as the same thing incorrectly. For example\n * these two should be treated differently:\n *\n * selector({key: '', get: () => new Error('hi')});\n * selector({key: '', get () => {throw new Error('hi')}});\n *\n * With current implementation they are treated the same\n */\n\n\n function depValuesToDepRoute(depValues) {\n return Array.from(depValues.entries()).map(([depKey, valLoadable]) => [depKey, valLoadable.contents]);\n }\n\n function getValFromRunningNewExecutionAndUpdatedDeps(store, state) {\n const newExecutionId = getNewExecutionId();\n const [loadable, newDepValues] = evaluateSelectorGetter(store, state, newExecutionId);\n setExecutionInfo(loadable, store, newDepValues, newExecutionId, state);\n maybeSetCacheWithLoadable(state, depValuesToDepRoute(newDepValues), loadable);\n notifyStoreWhenAsyncSettles(store, loadable, newExecutionId);\n return loadable;\n }\n /**\n * Given a tree state, this function returns the \"selector result\", which is\n * defined as a size-2 tuple of [DependencyMap, Loadable].\n *\n * The selector's get() function will only be re-evaluated if _both_ of the\n * following statements are true:\n *\n * 1. The current dep values from the given state produced a cache key that\n * was not found in the cache.\n * 2. There is no currently running async execution OR there is an\n * async execution that is running, but after comparing the dep values in\n * the given state with the dep values that the execution has discovered so\n * far we find that at least one dep value has changed, in which case we\n * start a new execution (the previously running execution will continue to\n * run to completion, but only the new execution will be deemed the\n * 'latest' execution, meaning it will be the only execution that will\n * update global state when it is finished. Any non-latest executions will\n * run to completion and update the selector cache but not global state).\n */\n\n\n function getSelectorValAndUpdatedDeps(store, state) {\n const cachedVal = getValFromCacheAndUpdatedDownstreamDeps(store, state);\n\n if (cachedVal != null) {\n setExecutionInfo(cachedVal, store);\n return cachedVal;\n }\n\n const inProgressExecutionInfo = getExecutionInfoOfInProgressExecution(state); // FIXME: this won't work with custom caching b/c it uses separate cache\n\n if (inProgressExecutionInfo) {\n const executionInfo = inProgressExecutionInfo;\n notifyStoreWhenAsyncSettles(store, Recoil_nullthrows(executionInfo.latestLoadable), Recoil_nullthrows(executionInfo.latestExecutionId)); // FIXME: check after the fact to see if we made the right choice by waiting\n\n return Recoil_nullthrows(executionInfo.latestLoadable);\n }\n\n return getValFromRunningNewExecutionAndUpdatedDeps(store, state);\n }\n /**\n * Searches execution info across all stores to see if there is an in-progress\n * execution whose dependency values match the values of the requesting store.\n */\n\n\n function getExecutionInfoOfInProgressExecution(state) {\n var _Array$from$find;\n\n const [, executionInfo] = (_Array$from$find = Array.from(executionInfoMap.entries()).find(([store, execInfo]) => {\n return execInfo.latestLoadable != null && execInfo.latestExecutionId != null && !haveAsyncDepsChanged(store, state);\n })) !== null && _Array$from$find !== void 0 ? _Array$from$find : [];\n return executionInfo;\n }\n\n const mapOfCheckedVersions = new Map();\n\n function haveAsyncDepsChanged(store, state) {\n var _executionInfo$depVal, _mapOfCheckedVersions;\n\n const executionInfo = getExecutionInfo(store);\n const oldDepValues = (_executionInfo$depVal = executionInfo.depValuesDiscoveredSoFarDuringAsyncWork) !== null && _executionInfo$depVal !== void 0 ? _executionInfo$depVal : new Map();\n const cachedDepValuesCheckedForThisVersion = Array(((_mapOfCheckedVersions = mapOfCheckedVersions.get(state.version)) !== null && _mapOfCheckedVersions !== void 0 ? _mapOfCheckedVersions : new Map()).entries());\n const isCachedVersionSame = mapOfCheckedVersions.has(state.version) && cachedDepValuesCheckedForThisVersion.length === oldDepValues.size && cachedDepValuesCheckedForThisVersion.every(([nodeKey, nodeVal]) => {\n return oldDepValues.get(nodeKey) === nodeVal;\n });\n\n if (oldDepValues == null || state.version === executionInfo.stateVersion || isCachedVersionSame) {\n return false;\n }\n\n mapOfCheckedVersions.set(state.version, new Map(oldDepValues));\n return Array.from(oldDepValues).some(([nodeKey, oldVal]) => {\n const loadable = getCachedNodeLoadable(store, state, nodeKey);\n return loadable.contents !== oldVal.contents;\n });\n }\n /**\n * This function will update the selector's execution info when the selector\n * has either finished running an execution or has started a new execution. If\n * the given loadable is in a 'loading' state, the intention is that a new\n * execution has started. Otherwise, the intention is that an execution has\n * just finished.\n */\n\n\n function setExecutionInfo(loadable, store, depValues, newExecutionId, state) {\n const executionInfo = getExecutionInfo(store);\n\n if (loadable.state === 'loading') {\n executionInfo.depValuesDiscoveredSoFarDuringAsyncWork = depValues;\n executionInfo.latestExecutionId = newExecutionId;\n executionInfo.latestLoadable = loadable;\n executionInfo.stateVersion = state === null || state === void 0 ? void 0 : state.version;\n } else {\n executionInfo.depValuesDiscoveredSoFarDuringAsyncWork = null;\n executionInfo.latestExecutionId = null;\n executionInfo.latestLoadable = null;\n executionInfo.stateVersion = null;\n }\n }\n /**\n * Conditionally updates the cache with a given loadable.\n *\n * We only cache loadables that are not loading because our cache keys are\n * based on dep values, which are in an unfinished state for loadables that\n * have a 'loading' state (new deps may be discovered while the selector\n * runs its async code). We never want to cache partial dependencies b/c it\n * could lead to errors, such as prematurely returning the result based on a\n * partial list of deps-- we need the full list of deps to ensure that we\n * are returning the correct result from cache.\n */\n\n\n function maybeSetCacheWithLoadable(state, depRoute, loadable) {\n if (loadable.state !== 'loading') {\n setCache(state, depRoute, loadable);\n }\n }\n\n function updateExecutionInfoDepValues(depValues, store, executionId) {\n const executionInfo = getExecutionInfo(store);\n\n if (isLatestExecution(store, executionId)) {\n executionInfo.depValuesDiscoveredSoFarDuringAsyncWork = depValues;\n }\n }\n\n function clearExecutionInfo(store, executionId) {\n if (isLatestExecution(store, executionId)) {\n executionInfoMap.delete(store);\n }\n }\n\n function isLatestExecution(store, executionId) {\n const executionInfo = getExecutionInfo(store);\n return executionId === executionInfo.latestExecutionId;\n }\n\n function maybeFreezeValue(val) {\n if (process.env.NODE_ENV !== \"production\") {\n if (Boolean(options.dangerouslyAllowMutability) === false) {\n Recoil_deepFreezeValue(val);\n }\n }\n }\n\n function setCache(state, cacheRoute, loadable) {\n state.atomValues.set(key, loadable);\n\n try {\n cache.set(cacheRoute, loadable);\n } catch (error) {\n throw Recoil_err(`Problem with setting cache for selector \"${key}\": ${error.message}`);\n }\n }\n\n function detectCircularDependencies(fn) {\n if (dependencyStack.includes(key)) {\n const message = `Recoil selector has circular dependencies: ${dependencyStack.slice(dependencyStack.indexOf(key)).join(' \\u2192 ')}`;\n return loadableWithError$1(Recoil_err(message));\n }\n\n dependencyStack.push(key);\n\n try {\n return fn();\n } finally {\n dependencyStack.pop();\n }\n }\n\n function selectorPeek(store, state) {\n const cacheVal = cache.get(nodeKey => {\n !(typeof nodeKey === 'string') ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Cache nodeKey is type string') : Recoil_invariant(false) : void 0;\n const peek = peekNodeLoadable$1(store, state, nodeKey);\n return peek === null || peek === void 0 ? void 0 : peek.contents;\n });\n return cacheVal;\n }\n\n function selectorGet(store, state) {\n return detectCircularDependencies(() => getSelectorValAndUpdatedDeps(store, state));\n }\n\n function invalidateSelector(state) {\n state.atomValues.delete(key);\n }\n\n function clearSelectorCache(store, treeState) {\n !(recoilValue != null) ? process.env.NODE_ENV !== \"production\" ? Recoil_invariant(false, 'Recoil Value can never be null') : Recoil_invariant(false) : void 0;\n\n for (const nodeKey of discoveredDependencyNodeKeys) {\n var _node$clearCache;\n\n const node = getNode$6(nodeKey);\n (_node$clearCache = node.clearCache) === null || _node$clearCache === void 0 ? void 0 : _node$clearCache.call(node, store, treeState);\n }\n\n invalidateSelector(treeState);\n cache.clear();\n markRecoilValueModified$1(store, recoilValue);\n }\n\n if (set != null) {\n /**\n * ES5 strict mode prohibits defining non-top-level function declarations,\n * so don't use function declaration syntax here\n */\n const selectorSet = (store, state, newValue) => {\n let syncSelectorSetFinished = false;\n const writes = new Map();\n\n function getRecoilValue({\n key: depKey\n }) {\n if (syncSelectorSetFinished) {\n throw Recoil_err('Recoil: Async selector sets are not currently supported.');\n }\n\n const loadable = getCachedNodeLoadable(store, state, depKey);\n\n if (loadable.state === 'hasValue') {\n return loadable.contents;\n } else if (loadable.state === 'loading') {\n throw new RecoilValueNotReady$2(depKey);\n } else {\n throw loadable.contents;\n }\n }\n\n function setRecoilState(recoilState, valueOrUpdater) {\n if (syncSelectorSetFinished) {\n throw Recoil_err('Recoil: Async selector sets are not currently supported.');\n }\n\n const setValue = typeof valueOrUpdater === 'function' ? // cast to any because we can't restrict type S from being a function itself without losing support for opaque types\n // flowlint-next-line unclear-type:off\n valueOrUpdater(getRecoilValue(recoilState)) : valueOrUpdater;\n const upstreamWrites = setNodeValue$3(store, state, recoilState.key, setValue);\n upstreamWrites.forEach((v, k) => writes.set(k, v));\n }\n\n function resetRecoilState(recoilState) {\n setRecoilState(recoilState, DEFAULT_VALUE$6);\n }\n\n const ret = set({\n set: setRecoilState,\n get: getRecoilValue,\n reset: resetRecoilState\n }, newValue); // set should be a void method, but if the user makes it `async`, then it\n // will return a Promise, which we don't currently support.\n\n if (ret !== undefined) {\n throw Recoil_isPromise(ret) ? Recoil_err('Recoil: Async selector sets are not currently supported.') : Recoil_err('Recoil: selector set should be a void function.');\n }\n\n syncSelectorSetFinished = true;\n return writes;\n };\n\n return recoilValue = registerNode$1({\n key,\n nodeType: 'selector',\n peek: selectorPeek,\n get: selectorGet,\n set: selectorSet,\n init: selectorInit,\n invalidate: invalidateSelector,\n clearCache: clearSelectorCache,\n shouldDeleteConfigOnRelease: selectorShouldDeleteConfigOnRelease,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n shouldRestoreFromSnapshots: false,\n retainedBy\n });\n } else {\n return recoilValue = registerNode$1({\n key,\n nodeType: 'selector',\n peek: selectorPeek,\n get: selectorGet,\n init: selectorInit,\n invalidate: invalidateSelector,\n clearCache: clearSelectorCache,\n shouldDeleteConfigOnRelease: selectorShouldDeleteConfigOnRelease,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n shouldRestoreFromSnapshots: false,\n retainedBy\n });\n }\n}\n/* eslint-enable no-redeclare */\n\n\nvar Recoil_selector = selector;\n\n// @fb-only: const {scopedAtom} = require('Recoil_ScopedAtom');\nconst {\n loadableWithError: loadableWithError$2,\n loadableWithPromise: loadableWithPromise$2,\n loadableWithValue: loadableWithValue$3\n} = Recoil_Loadable$1;\n\nconst {\n peekNodeInfo: peekNodeInfo$3\n} = Recoil_FunctionalCore;\n\nconst {\n DEFAULT_VALUE: DEFAULT_VALUE$7,\n DefaultValue: DefaultValue$2,\n getConfigDeletionHandler: getConfigDeletionHandler$2,\n registerNode: registerNode$2,\n setConfigDeletionHandler: setConfigDeletionHandler$1\n} = Recoil_Node;\n\nconst {\n isRecoilValue: isRecoilValue$4\n} = Recoil_RecoilValue$1;\n\nconst {\n getRecoilValueAsLoadable: getRecoilValueAsLoadable$4,\n markRecoilValueModified: markRecoilValueModified$2,\n setRecoilValue: setRecoilValue$4,\n setRecoilValueLoadable: setRecoilValueLoadable$3\n} = Recoil_RecoilValueInterface;\n\nconst {\n retainedByOptionWithDefault: retainedByOptionWithDefault$2\n} = Recoil_Retention;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction baseAtom(options) {\n const {\n key,\n persistence_UNSTABLE: persistence\n } = options;\n const retainedBy = retainedByOptionWithDefault$2(options.retainedBy_UNSTABLE);\n let liveStoresCount = 0;\n let defaultLoadable = Recoil_isPromise(options.default) ? loadableWithPromise$2(options.default.then(value => {\n defaultLoadable = loadableWithValue$3(value);\n return value;\n }).catch(error => {\n defaultLoadable = loadableWithError$2(error);\n throw error;\n })) : loadableWithValue$3(options.default);\n maybeFreezeValueOrPromise(options.default);\n let cachedAnswerForUnvalidatedValue = undefined; // Cleanup handlers for this atom\n // Rely on stable reference equality of the store to use it as a key per \n\n const cleanupEffectsByStore = new Map();\n\n function maybeFreezeValueOrPromise(valueOrPromise) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.dangerouslyAllowMutability !== true) {\n if (Recoil_isPromise(valueOrPromise)) {\n return valueOrPromise.then(value => {\n Recoil_deepFreezeValue(value);\n return value;\n });\n } else {\n Recoil_deepFreezeValue(valueOrPromise);\n return valueOrPromise;\n }\n }\n }\n\n return valueOrPromise;\n }\n\n function wrapPendingPromise(store, promise) {\n const wrappedPromise = promise.then(value => {\n var _store$getState$nextT, _state$atomValues$get;\n\n const state = (_store$getState$nextT = store.getState().nextTree) !== null && _store$getState$nextT !== void 0 ? _store$getState$nextT : store.getState().currentTree;\n\n if (((_state$atomValues$get = state.atomValues.get(key)) === null || _state$atomValues$get === void 0 ? void 0 : _state$atomValues$get.contents) === wrappedPromise) {\n setRecoilValue$4(store, node, value);\n }\n\n return value;\n }).catch(error => {\n var _store$getState$nextT2, _state$atomValues$get2;\n\n const state = (_store$getState$nextT2 = store.getState().nextTree) !== null && _store$getState$nextT2 !== void 0 ? _store$getState$nextT2 : store.getState().currentTree;\n\n if (((_state$atomValues$get2 = state.atomValues.get(key)) === null || _state$atomValues$get2 === void 0 ? void 0 : _state$atomValues$get2.contents) === wrappedPromise) {\n setRecoilValueLoadable$3(store, node, loadableWithError$2(error));\n }\n\n throw error;\n });\n return wrappedPromise;\n }\n\n function initAtom(store, initState, trigger) {\n liveStoresCount++;\n const alreadyKnown = store.getState().knownAtoms.has(key);\n store.getState().knownAtoms.add(key); // Setup async defaults to notify subscribers when they resolve\n\n if (defaultLoadable.state === 'loading') {\n const notifyDefaultSubscribers = () => {\n var _store$getState$nextT3;\n\n const state = (_store$getState$nextT3 = store.getState().nextTree) !== null && _store$getState$nextT3 !== void 0 ? _store$getState$nextT3 : store.getState().currentTree;\n\n if (!state.atomValues.has(key)) {\n markRecoilValueModified$2(store, node);\n }\n };\n\n defaultLoadable.contents.then(notifyDefaultSubscribers).catch(notifyDefaultSubscribers);\n } // Run Atom Effects\n // This state is scoped by Store, since this is in the initAtom() closure\n\n\n let initValue = DEFAULT_VALUE$7;\n let pendingSetSelf = null;\n\n if (options.effects_UNSTABLE != null && !alreadyKnown) {\n let duringInit = true;\n\n function getLoadable(recoilValue) {\n // Normally we can just get the current value of another atom.\n // But for our own value we need to check if there is a pending\n // initialized value or get the fallback default value.\n if (duringInit && recoilValue.key === key && !(initValue instanceof DefaultValue$2)) {\n // Cast T to S\n const retValue = initValue; // flowlint-line unclear-type:off\n\n return retValue instanceof DefaultValue$2 ? defaultLoadable : // flowlint-line unclear-type:off\n Recoil_isPromise(retValue) ? loadableWithPromise$2(retValue.then(v => v instanceof DefaultValue$2 ? // Cast T to S\n defaultLoadable.toPromise() // flowlint-line unclear-type:off\n : v)) : loadableWithValue$3(retValue);\n }\n\n return getRecoilValueAsLoadable$4(store, recoilValue);\n }\n\n function getPromise(recoilValue) {\n return getLoadable(recoilValue).toPromise();\n }\n\n function getInfo_UNSTABLE(recoilValue) {\n var _store$getState$nextT4;\n\n const info = peekNodeInfo$3(store, (_store$getState$nextT4 = store.getState().nextTree) !== null && _store$getState$nextT4 !== void 0 ? _store$getState$nextT4 : store.getState().currentTree, recoilValue.key);\n return duringInit && recoilValue.key === key && !(initValue instanceof DefaultValue$2) ? { ...info,\n isSet: true,\n loadable: getLoadable(recoilValue)\n } : info;\n }\n\n const setSelf = effect => valueOrUpdater => {\n if (duringInit) {\n const currentValue = initValue instanceof DefaultValue$2 || Recoil_isPromise(initValue) ? defaultLoadable.state === 'hasValue' ? defaultLoadable.contents : DEFAULT_VALUE$7 : initValue;\n initValue = typeof valueOrUpdater === 'function' ? // cast to any because we can't restrict T from being a function without losing support for opaque types\n valueOrUpdater(currentValue) // flowlint-line unclear-type:off\n : valueOrUpdater;\n\n if (Recoil_isPromise(initValue)) {\n initValue = initValue.then(value => {\n // Avoid calling onSet() when setSelf() initializes with a Promise\n pendingSetSelf = {\n effect,\n value\n };\n return value;\n });\n }\n } else {\n if (Recoil_isPromise(valueOrUpdater)) {\n throw Recoil_err('Setting atoms to async values is not implemented.');\n }\n\n if (typeof valueOrUpdater !== 'function') {\n pendingSetSelf = {\n effect,\n value: valueOrUpdater\n };\n }\n\n setRecoilValue$4(store, node, typeof valueOrUpdater === 'function' ? currentValue => {\n const newValue = // cast to any because we can't restrict T from being a function without losing support for opaque types\n valueOrUpdater(currentValue); // flowlint-line unclear-type:off\n\n pendingSetSelf = {\n effect,\n value: newValue\n };\n return newValue;\n } : valueOrUpdater);\n }\n };\n\n const resetSelf = effect => () => setSelf(effect)(DEFAULT_VALUE$7);\n\n const onSet = effect => handler => {\n store.subscribeToTransactions(currentStore => {\n var _currentTree$atomValu;\n\n // eslint-disable-next-line prefer-const\n let {\n currentTree,\n previousTree\n } = currentStore.getState();\n\n if (!previousTree) {\n Recoil_recoverableViolation('Transaction subscribers notified without a next tree being present -- this is a bug in Recoil');\n previousTree = currentTree; // attempt to trundle on\n }\n\n const newLoadable = (_currentTree$atomValu = currentTree.atomValues.get(key)) !== null && _currentTree$atomValu !== void 0 ? _currentTree$atomValu : defaultLoadable;\n\n if (newLoadable.state === 'hasValue') {\n var _previousTree$atomVal, _pendingSetSelf, _pendingSetSelf2, _pendingSetSelf3;\n\n const newValue = newLoadable.contents;\n const oldLoadable = (_previousTree$atomVal = previousTree.atomValues.get(key)) !== null && _previousTree$atomVal !== void 0 ? _previousTree$atomVal : defaultLoadable;\n const oldValue = oldLoadable.state === 'hasValue' ? oldLoadable.contents : DEFAULT_VALUE$7; // TODO This isn't actually valid, use as a placeholder for now.\n // Ignore atom value changes that were set via setSelf() in the same effect.\n // We will still properly call the handler if there was a subsequent\n // set from something other than an atom effect which was batched\n // with the `setSelf()` call. However, we may incorrectly ignore\n // the handler if the subsequent batched call happens to set the\n // atom to the exact same value as the `setSelf()`. But, in that\n // case, it was kind of a noop, so the semantics are debatable..\n\n if (((_pendingSetSelf = pendingSetSelf) === null || _pendingSetSelf === void 0 ? void 0 : _pendingSetSelf.effect) !== effect || ((_pendingSetSelf2 = pendingSetSelf) === null || _pendingSetSelf2 === void 0 ? void 0 : _pendingSetSelf2.value) !== newValue) {\n handler(newValue, oldValue, !currentTree.atomValues.has(key));\n } else if (((_pendingSetSelf3 = pendingSetSelf) === null || _pendingSetSelf3 === void 0 ? void 0 : _pendingSetSelf3.effect) === effect) {\n pendingSetSelf = null;\n }\n }\n }, key);\n };\n\n for (const effect of (_options$effects_UNST = options.effects_UNSTABLE) !== null && _options$effects_UNST !== void 0 ? _options$effects_UNST : []) {\n var _options$effects_UNST;\n\n const cleanup = effect({\n node,\n trigger,\n setSelf: setSelf(effect),\n resetSelf: resetSelf(effect),\n onSet: onSet(effect),\n getPromise,\n getLoadable,\n getInfo_UNSTABLE\n });\n\n if (cleanup != null) {\n var _cleanupEffectsByStor;\n\n cleanupEffectsByStore.set(store, [...((_cleanupEffectsByStor = cleanupEffectsByStore.get(store)) !== null && _cleanupEffectsByStor !== void 0 ? _cleanupEffectsByStor : []), cleanup]);\n }\n }\n\n duringInit = false;\n } // Mutate initial state in place since we know there are no other subscribers\n // since we are the ones initializing on first use.\n\n\n if (!(initValue instanceof DefaultValue$2)) {\n var _store$getState$nextT5;\n\n const frozenInitValue = maybeFreezeValueOrPromise(initValue);\n const initLoadable = Recoil_isPromise(frozenInitValue) ? loadableWithPromise$2(wrapPendingPromise(store, frozenInitValue)) : loadableWithValue$3(frozenInitValue);\n initState.atomValues.set(key, initLoadable); // If there is a pending transaction, then also mutate the next state tree.\n // This could happen if the atom was first initialized in an action that\n // also updated some other atom's state.\n\n (_store$getState$nextT5 = store.getState().nextTree) === null || _store$getState$nextT5 === void 0 ? void 0 : _store$getState$nextT5.atomValues.set(key, initLoadable);\n }\n\n return () => {\n var _cleanupEffectsByStor2;\n\n liveStoresCount--;\n (_cleanupEffectsByStor2 = cleanupEffectsByStore.get(store)) === null || _cleanupEffectsByStor2 === void 0 ? void 0 : _cleanupEffectsByStor2.forEach(cleanup => cleanup());\n cleanupEffectsByStore.delete(store);\n store.getState().knownAtoms.delete(key); // FIXME remove knownAtoms?\n };\n }\n\n function peekAtom(_store, state) {\n var _ref, _state$atomValues$get3;\n\n return (_ref = (_state$atomValues$get3 = state.atomValues.get(key)) !== null && _state$atomValues$get3 !== void 0 ? _state$atomValues$get3 : cachedAnswerForUnvalidatedValue) !== null && _ref !== void 0 ? _ref : defaultLoadable;\n }\n\n function getAtom(_store, state) {\n if (state.atomValues.has(key)) {\n // Atom value is stored in state:\n return Recoil_nullthrows(state.atomValues.get(key));\n } else if (state.nonvalidatedAtoms.has(key)) {\n // Atom value is stored but needs validation before use.\n // We might have already validated it and have a cached validated value:\n if (cachedAnswerForUnvalidatedValue != null) {\n return cachedAnswerForUnvalidatedValue;\n }\n\n if (persistence == null) {\n Recoil_expectationViolation(`Tried to restore a persisted value for atom ${key} but it has no persistence settings.`);\n return defaultLoadable;\n }\n\n const nonvalidatedValue = state.nonvalidatedAtoms.get(key);\n const validatorResult = persistence.validator(nonvalidatedValue, DEFAULT_VALUE$7);\n const validatedValueLoadable = validatorResult instanceof DefaultValue$2 ? defaultLoadable : loadableWithValue$3(validatorResult);\n cachedAnswerForUnvalidatedValue = validatedValueLoadable;\n return cachedAnswerForUnvalidatedValue;\n } else {\n return defaultLoadable;\n }\n }\n\n function invalidateAtom() {\n cachedAnswerForUnvalidatedValue = undefined;\n }\n\n function setAtom(_store, state, newValue) {\n // Bail out if we're being set to the existing value, or if we're being\n // reset but have no stored value (validated or unvalidated) to reset from:\n if (state.atomValues.has(key)) {\n const existing = Recoil_nullthrows(state.atomValues.get(key));\n\n if (existing.state === 'hasValue' && newValue === existing.contents) {\n return new Map();\n }\n } else if (!state.nonvalidatedAtoms.has(key) && newValue instanceof DefaultValue$2) {\n return new Map();\n }\n\n maybeFreezeValueOrPromise(newValue);\n cachedAnswerForUnvalidatedValue = undefined; // can be released now if it was previously in use\n\n return new Map().set(key, loadableWithValue$3(newValue));\n }\n\n function shouldDeleteConfigOnReleaseAtom() {\n return getConfigDeletionHandler$2(key) !== undefined && liveStoresCount <= 0;\n }\n\n const node = registerNode$2({\n key,\n nodeType: 'atom',\n peek: peekAtom,\n get: getAtom,\n set: setAtom,\n init: initAtom,\n invalidate: invalidateAtom,\n shouldDeleteConfigOnRelease: shouldDeleteConfigOnReleaseAtom,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n persistence_UNSTABLE: options.persistence_UNSTABLE ? {\n type: options.persistence_UNSTABLE.type,\n backButton: options.persistence_UNSTABLE.backButton\n } : undefined,\n shouldRestoreFromSnapshots: true,\n retainedBy\n });\n return node;\n} // prettier-ignore\n\n\nfunction atom(options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options.key !== 'string') {\n throw Recoil_err('A key option with a unique string value must be provided when creating an atom.');\n }\n\n if (!('default' in options)) {\n throw Recoil_err('A default value must be specified when creating an atom.');\n }\n }\n\n const {\n default: optionsDefault,\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n ...restOptions\n } = options;\n\n if (isRecoilValue$4(optionsDefault) // Continue to use atomWithFallback for promise defaults for scoped atoms\n // for now, since scoped atoms don't support async defaults\n // @fb-only: || (isPromise(optionsDefault) && scopeRules_APPEND_ONLY_READ_THE_DOCS)\n ) {\n return atomWithFallback({ ...restOptions,\n default: optionsDefault // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n\n }); // @fb-only: } else if (scopeRules_APPEND_ONLY_READ_THE_DOCS && !isPromise(optionsDefault)) {\n // @fb-only: return scopedAtom({\n // @fb-only: ...restOptions,\n // @fb-only: default: optionsDefault,\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: });\n } else {\n return baseAtom({ ...restOptions,\n default: optionsDefault\n });\n }\n}\n\nfunction atomWithFallback(options) {\n const base = atom({ ...options,\n default: DEFAULT_VALUE$7,\n persistence_UNSTABLE: options.persistence_UNSTABLE === undefined ? undefined : { ...options.persistence_UNSTABLE,\n validator: storedValue => storedValue instanceof DefaultValue$2 ? storedValue : Recoil_nullthrows(options.persistence_UNSTABLE).validator(storedValue, DEFAULT_VALUE$7)\n },\n // TODO Hack for now.\n // flowlint-next-line unclear-type: off\n effects_UNSTABLE: options.effects_UNSTABLE\n });\n const sel = Recoil_selector({\n key: `${options.key}__withFallback`,\n get: ({\n get\n }) => {\n const baseValue = get(base);\n return baseValue instanceof DefaultValue$2 ? options.default : baseValue;\n },\n set: ({\n set\n }, newValue) => set(base, newValue),\n dangerouslyAllowMutability: options.dangerouslyAllowMutability\n });\n setConfigDeletionHandler$1(sel.key, getConfigDeletionHandler$2(options.key));\n return sel;\n}\n\nvar Recoil_atom = atom;\n\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 * @emails oncall+recoil\n * \n * @format\n */\n\nclass MapCache {\n constructor(options) {\n var _options$mapKey;\n\n _defineProperty(this, \"_map\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n this._map = new Map();\n this._keyMapper = (_options$mapKey = options === null || options === void 0 ? void 0 : options.mapKey) !== null && _options$mapKey !== void 0 ? _options$mapKey : v => v;\n }\n\n size() {\n return this._map.size;\n }\n\n has(key) {\n return this._map.has(this._keyMapper(key));\n }\n\n get(key) {\n return this._map.get(this._keyMapper(key));\n }\n\n set(key, val) {\n this._map.set(this._keyMapper(key), val);\n }\n\n delete(key) {\n this._map.delete(this._keyMapper(key));\n }\n\n clear() {\n this._map.clear();\n }\n\n}\n\nvar Recoil_MapCache = {\n MapCache\n};\n\nvar Recoil_MapCache_1 = Recoil_MapCache.MapCache;\n\nvar Recoil_MapCache$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MapCache: Recoil_MapCache_1\n});\n\nconst {\n LRUCache: LRUCache$2\n} = Recoil_LRUCache$1;\n\nconst {\n MapCache: MapCache$1\n} = Recoil_MapCache$1;\n\nconst defaultPolicy$1 = {\n equality: 'reference',\n eviction: 'none',\n maxSize: Infinity\n};\n\nfunction cacheFromPolicy({\n equality = defaultPolicy$1.equality,\n eviction = defaultPolicy$1.eviction,\n maxSize = defaultPolicy$1.maxSize\n} = defaultPolicy$1) {\n const valueMapper = getValueMapper$1(equality);\n const cache = getCache(eviction, maxSize, valueMapper);\n return cache;\n}\n\nfunction getValueMapper$1(equality) {\n switch (equality) {\n case 'reference':\n return val => val;\n\n case 'value':\n return val => Recoil_stableStringify(val);\n }\n\n throw Recoil_err(`Unrecognized equality policy ${equality}`);\n}\n\nfunction getCache(eviction, maxSize, mapKey) {\n switch (eviction) {\n case 'keep-all':\n // $FlowFixMe[method-unbinding]\n return new MapCache$1({\n mapKey\n });\n\n case 'lru':\n // $FlowFixMe[method-unbinding]\n return new LRUCache$2({\n mapKey,\n maxSize: Recoil_nullthrows(maxSize)\n });\n\n case 'most-recent':\n // $FlowFixMe[method-unbinding]\n return new LRUCache$2({\n mapKey,\n maxSize: 1\n });\n }\n\n throw Recoil_err(`Unrecognized eviction policy ${eviction}`);\n}\n\nvar Recoil_cacheFromPolicy = cacheFromPolicy;\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$2\n} = Recoil_Node;\n\n\n\n\n\n// Process scopeRules to handle any entries which are functions taking parameters\n// prettier-ignore\n// @fb-only: function mapScopeRules

(\n// @fb-only: scopeRules?: ParameterizedScopeRules

,\n// @fb-only: param: P,\n// @fb-only: ): ScopeRules | void {\n// @fb-only: return scopeRules?.map(rule =>\n// @fb-only: Array.isArray(rule)\n// @fb-only: ? rule.map(entry => (typeof entry === 'function' ? entry(param) : entry))\n// @fb-only: : rule,\n// @fb-only: );\n// @fb-only: }\n\n/*\nA function which returns an atom based on the input parameter.\n\nEach unique parameter returns a unique atom. E.g.,\n\n const f = atomFamily(...);\n f({a: 1}) => an atom\n f({a: 2}) => a different atom\n\nThis allows components to persist local, private state using atoms. Each\ninstance of the component may have a different key, which it uses as the\nparameter for a family of atoms; in this way, each component will have\nits own atom not shared by other instances. These state keys may be composed\ninto children's state keys as well.\n*/\nfunction atomFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const atomCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n }); // Simple atomFamily implementation to cache individual atoms based\n // on the parameter value equality.\n\n return params => {\n var _stableStringify;\n\n const cachedAtom = atomCache.get(params);\n\n if (cachedAtom != null) {\n return cachedAtom;\n }\n\n const {\n cachePolicyForParams_UNSTABLE,\n ...atomOptions\n } = options;\n const newAtom = Recoil_atom({ ...atomOptions,\n key: `${options.key}__${(_stableStringify = Recoil_stableStringify(params)) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}`,\n default: typeof options.default === 'function' ? // The default was parameterized\n // Flow doesn't know that T isn't a function, so we need to case to any\n options.default(params) // flowlint-line unclear-type:off\n : // Default may be a static value, promise, or RecoilValue\n options.default,\n retainedBy_UNSTABLE: typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE,\n effects_UNSTABLE: typeof options.effects_UNSTABLE === 'function' ? options.effects_UNSTABLE(params) : options.effects_UNSTABLE // prettier-ignore\n // @fb-only: scopeRules_APPEND_ONLY_READ_THE_DOCS: mapScopeRules(\n // @fb-only: options.scopeRules_APPEND_ONLY_READ_THE_DOCS,\n // @fb-only: params,\n // @fb-only: ),\n\n });\n atomCache.set(params, newAtom);\n setConfigDeletionHandler$2(newAtom.key, () => {\n atomCache.delete(params);\n });\n return newAtom;\n };\n}\n\nvar Recoil_atomFamily = atomFamily;\n\nconst {\n setConfigDeletionHandler: setConfigDeletionHandler$3\n} = Recoil_Node;\n\n\n\n // Keep in mind the parameter needs to be serializable as a cahche key\n// using Recoil_stableStringify\n\n\n// Add a unique index to each selector in case the cache implementation allows\n// duplicate keys based on equivalent stringified parameters\nlet nextIndex = 0;\n/* eslint-disable no-redeclare */\n\n// Return a function that returns members of a family of selectors of the same type\n// E.g.,\n//\n// const s = selectorFamily(...);\n// s({a: 1}) => a selector\n// s({a: 2}) => a different selector\n//\n// By default, the selectors are distinguished by distinct values of the\n// parameter based on value equality, not reference equality. This allows using\n// object literals or other equivalent objects at callsites to not create\n// duplicate cache entries. This behavior may be overridden with the\n// cacheImplementationForParams option.\nfunction selectorFamily(options) {\n var _options$cachePolicyF, _options$cachePolicyF2;\n\n const selectorCache = Recoil_cacheFromPolicy({\n equality: (_options$cachePolicyF = (_options$cachePolicyF2 = options.cachePolicyForParams_UNSTABLE) === null || _options$cachePolicyF2 === void 0 ? void 0 : _options$cachePolicyF2.equality) !== null && _options$cachePolicyF !== void 0 ? _options$cachePolicyF : 'value',\n eviction: 'keep-all'\n });\n return params => {\n var _stableStringify;\n\n const cachedSelector = selectorCache.get(params);\n\n if (cachedSelector != null) {\n return cachedSelector;\n }\n\n const myKey = `${options.key}__selectorFamily/${(_stableStringify = Recoil_stableStringify(params, {\n // It is possible to use functions in parameters if the user uses\n // a cache with reference equality thanks to the incrementing index.\n allowFunctions: true\n })) !== null && _stableStringify !== void 0 ? _stableStringify : 'void'}/${nextIndex++}`; // Append index in case values serialize to the same key string\n\n const myGet = callbacks => options.get(params)(callbacks);\n\n const myCachePolicy = options.cachePolicy_UNSTABLE;\n const retainedBy = typeof options.retainedBy_UNSTABLE === 'function' ? options.retainedBy_UNSTABLE(params) : options.retainedBy_UNSTABLE;\n let newSelector;\n\n if (options.set != null) {\n const set = options.set;\n\n const mySet = (callbacks, newValue) => set(params)(callbacks, newValue);\n\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n set: mySet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n } else {\n newSelector = Recoil_selector({\n key: myKey,\n get: myGet,\n cachePolicy_UNSTABLE: myCachePolicy,\n dangerouslyAllowMutability: options.dangerouslyAllowMutability,\n retainedBy_UNSTABLE: retainedBy\n });\n }\n\n selectorCache.set(params, newSelector);\n setConfigDeletionHandler$3(newSelector.key, () => {\n selectorCache.delete(params);\n });\n return newSelector;\n };\n}\n/* eslint-enable no-redeclare */\n\n\nvar Recoil_selectorFamily = selectorFamily;\n\n// flowlint-next-line unclear-type:off\n\n\nconst constantSelector = Recoil_selectorFamily({\n key: '__constant',\n get: constant => () => constant,\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always produces the\n// same constant value. It may be called multiple times with the\n// same value, based on reference equality, and will provide the\n// same selector.\n\nfunction constSelector(constant) {\n return constantSelector(constant);\n}\n\nvar Recoil_constSelector = constSelector;\n\n// flowlint-next-line unclear-type:off\n\n\nconst throwingSelector = Recoil_selectorFamily({\n key: '__error',\n get: message => () => {\n throw Recoil_err(message);\n },\n // TODO Why?\n cachePolicyForParams_UNSTABLE: {\n equality: 'reference'\n }\n}); // Function that returns a selector which always throws an error\n// with the provided message.\n\nfunction errorSelector(message) {\n return throwingSelector(message);\n}\n\nvar Recoil_errorSelector = errorSelector;\n\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 * Wraps another recoil value and prevents writing to it.\n *\n * @emails oncall+recoil\n * \n * @format\n */\n\nfunction readOnlySelector(atom) {\n // flowlint-next-line unclear-type: off\n return atom;\n}\n\nvar Recoil_readOnlySelector = readOnlySelector;\n\nconst {\n loadableWithError: loadableWithError$3,\n loadableWithPromise: loadableWithPromise$3,\n loadableWithValue: loadableWithValue$4\n} = Recoil_Loadable$1;\n\n\n\n /////////////////\n// TRUTH TABLE\n/////////////////\n// Dependencies waitForNone waitForAny waitForAll waitForAllSettled\n// [loading, loading] [Promise, Promise] Promise Promise Promise\n// [value, loading] [value, Promise] [value, Promise] Promise Promise\n// [value, value] [value, value] [value, value] [value, value] [value, value]\n//\n// [error, loading] [Error, Promise] [Error, Promise] Error Promise\n// [error, error] [Error, Error] [Error, Error] Error [error, error]\n// [value, error] [value, Error] [value, Error] Error [value, error]\n// Issue parallel requests for all dependencies and return the current\n// status if they have results, have some error, or are still pending.\n\n\nfunction concurrentRequests(getRecoilValue, deps) {\n const results = Array(deps.length).fill(undefined);\n const exceptions = Array(deps.length).fill(undefined);\n\n for (const [i, dep] of deps.entries()) {\n try {\n results[i] = getRecoilValue(dep);\n } catch (e) {\n // exceptions can either be Promises of pending results or real errors\n exceptions[i] = e;\n }\n }\n\n return [results, exceptions];\n}\n\nfunction isError(exp) {\n return exp != null && !Recoil_isPromise(exp);\n}\n\nfunction unwrapDependencies(dependencies) {\n return Array.isArray(dependencies) ? dependencies : Object.getOwnPropertyNames(dependencies).map(key => dependencies[key]);\n}\n\nfunction wrapResults(dependencies, results) {\n return Array.isArray(dependencies) ? results : // Object.getOwnPropertyNames() has consistent key ordering with ES6\n Object.getOwnPropertyNames(dependencies).reduce((out, key, idx) => ({ ...out,\n [key]: results[idx]\n }), {});\n}\n\nfunction wrapLoadables(dependencies, results, exceptions) {\n const output = exceptions.map((exception, idx) => exception == null ? loadableWithValue$4(results[idx]) : Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception));\n return wrapResults(dependencies, output);\n}\n\nfunction combineAsyncResultsWithSyncResults(syncResults, asyncResults) {\n return asyncResults.map((result, idx) =>\n /**\n * it's important we use === undefined as opposed to == null, because the\n * resolved value of the async promise could be `null`, in which case we\n * don't want to use syncResults[idx], which would be undefined. If async\n * promise resolves to `undefined`, that's ok because `syncResults[idx]`\n * will also be `undefined`. That's a little hacky, but it works.\n */\n result === undefined ? syncResults[idx] : result);\n} // Selector that requests all dependencies in parallel and immediately returns\n// current results without waiting.\n\n\nconst waitForNone = Recoil_selectorFamily({\n key: '__waitForNone',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // Always return the current status of the results; never block.\n\n return wrapLoadables(dependencies, results, exceptions);\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for at least\n// one to be available before returning results. It will only error if all\n// dependencies have errors.\n\nconst waitForAny = Recoil_selectorFamily({\n key: '__waitForAny',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If any results are available, value or error, return the current status\n\n if (exceptions.some(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Otherwise, return a promise that will resolve when the next result is\n // available, whichever one happens to be next. But, if all pending\n // dependencies end up with errors, then reject the promise.\n\n\n return new Promise(resolve => {\n for (const [i, exp] of exceptions.entries()) {\n if (Recoil_isPromise(exp)) {\n exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n resolve(wrapLoadables(dependencies, results, exceptions));\n }).catch(error => {\n exceptions[i] = error;\n resolve(wrapLoadables(dependencies, results, exceptions));\n });\n }\n }\n });\n },\n dangerouslyAllowMutability: true\n}); // Selector that requests all dependencies in parallel and waits for all to be\n// available before returning a value. It will error if any dependencies error.\n\nconst waitForAll = Recoil_selectorFamily({\n key: '__waitForAll',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => exp == null)) {\n return wrapResults(dependencies, results);\n } // If we have any errors, throw the first error\n\n\n const error = exceptions.find(isError);\n\n if (error != null) {\n throw error;\n } // Otherwise, return a promise that will resolve when all results are available\n\n\n return Promise.all(exceptions).then(exceptionResults => wrapResults(dependencies, combineAsyncResultsWithSyncResults(results, exceptionResults)));\n },\n dangerouslyAllowMutability: true\n});\nconst waitForAllSettled = Recoil_selectorFamily({\n key: '__waitForAllSettled',\n get: dependencies => ({\n get\n }) => {\n // Issue requests for all dependencies in parallel.\n // Exceptions can either be Promises of pending results or real errors\n const deps = unwrapDependencies(dependencies);\n const [results, exceptions] = concurrentRequests(get, deps); // If all results are available, return the results\n\n if (exceptions.every(exp => !Recoil_isPromise(exp))) {\n return wrapLoadables(dependencies, results, exceptions);\n } // Wait for all results to settle\n\n\n return Promise.all(exceptions.map((exp, i) => Recoil_isPromise(exp) ? exp.then(result => {\n results[i] = result;\n exceptions[i] = undefined;\n }).catch(error => {\n results[i] = undefined;\n exceptions[i] = error;\n }) : null)) // Then wrap them as loadables\n .then(() => wrapLoadables(dependencies, results, exceptions));\n },\n dangerouslyAllowMutability: true\n});\nconst noWait = Recoil_selectorFamily({\n key: '__noWait',\n get: dependency => ({\n get\n }) => {\n try {\n return loadableWithValue$4(get(dependency));\n } catch (exception) {\n return Recoil_isPromise(exception) ? loadableWithPromise$3(exception) : loadableWithError$3(exception);\n }\n },\n dangerouslyAllowMutability: true\n});\nvar Recoil_WaitFor = {\n waitForNone,\n waitForAny,\n waitForAll,\n waitForAllSettled,\n noWait\n};\n\nconst {\n RecoilLoadable\n} = Recoil_Loadable$1;\n\nconst {\n DefaultValue: DefaultValue$3\n} = Recoil_Node;\n\nconst {\n RecoilRoot: RecoilRoot$2\n} = Recoil_RecoilRoot_react;\n\nconst {\n isRecoilValue: isRecoilValue$5\n} = Recoil_RecoilValue$1;\n\nconst {\n retentionZone: retentionZone$1\n} = Recoil_RetentionZone;\n\nconst {\n freshSnapshot: freshSnapshot$2\n} = Recoil_Snapshot$1;\n\nconst {\n useRecoilState: useRecoilState$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useRecoilValue: useRecoilValue$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useResetRecoilState: useResetRecoilState$1,\n useSetRecoilState: useSetRecoilState$1,\n useSetUnvalidatedAtomValues: useSetUnvalidatedAtomValues$1\n} = Recoil_Hooks;\n\nconst {\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$2,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver: useRecoilTransactionObserver$1,\n useTransactionObservation_DEPRECATED: useTransactionObservation_DEPRECATED$1\n} = Recoil_SnapshotHooks;\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\nconst {\n noWait: noWait$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n waitForAny: waitForAny$1,\n waitForNone: waitForNone$1\n} = Recoil_WaitFor;\n\nvar Recoil_index = {\n // Types\n DefaultValue: DefaultValue$3,\n isRecoilValue: isRecoilValue$5,\n RecoilLoadable,\n // Recoil Root\n RecoilRoot: RecoilRoot$2,\n useRecoilBridgeAcrossReactRoots_UNSTABLE: Recoil_useRecoilBridgeAcrossReactRoots,\n // Atoms/Selectors\n atom: Recoil_atom,\n selector: Recoil_selector,\n // Convenience Atoms/Selectors\n atomFamily: Recoil_atomFamily,\n selectorFamily: Recoil_selectorFamily,\n constSelector: Recoil_constSelector,\n errorSelector: Recoil_errorSelector,\n readOnlySelector: Recoil_readOnlySelector,\n // Concurrency Helpers for Atoms/Selectors\n noWait: noWait$1,\n waitForNone: waitForNone$1,\n waitForAny: waitForAny$1,\n waitForAll: waitForAll$1,\n waitForAllSettled: waitForAllSettled$1,\n // Hooks for Atoms/Selectors\n useRecoilValue: useRecoilValue$1,\n useRecoilValueLoadable: useRecoilValueLoadable$1,\n useRecoilState: useRecoilState$1,\n useRecoilStateLoadable: useRecoilStateLoadable$1,\n useSetRecoilState: useSetRecoilState$1,\n useResetRecoilState: useResetRecoilState$1,\n useGetRecoilValueInfo_UNSTABLE: Recoil_useGetRecoilValueInfo,\n useRecoilRefresher_UNSTABLE: Recoil_useRecoilRefresher,\n // Hooks for complex operations\n useRecoilCallback: Recoil_useRecoilCallback,\n useRecoilTransaction_UNSTABLE: Recoil_useRecoilTransaction,\n // Snapshots\n useGotoRecoilSnapshot: useGotoRecoilSnapshot$2,\n useRecoilSnapshot: useRecoilSnapshot$1,\n useRecoilTransactionObserver_UNSTABLE: useRecoilTransactionObserver$1,\n useTransactionObservation_UNSTABLE: useTransactionObservation_DEPRECATED$1,\n useSetUnvalidatedAtomValues_UNSTABLE: useSetUnvalidatedAtomValues$1,\n snapshot_UNSTABLE: freshSnapshot$2,\n // Memory Management\n useRetain: Recoil_useRetain,\n retentionZone: retentionZone$1\n};\nvar Recoil_index_1 = Recoil_index.DefaultValue;\nvar Recoil_index_2 = Recoil_index.isRecoilValue;\nvar Recoil_index_3 = Recoil_index.RecoilLoadable;\nvar Recoil_index_4 = Recoil_index.RecoilRoot;\nvar Recoil_index_5 = Recoil_index.useRecoilBridgeAcrossReactRoots_UNSTABLE;\nvar Recoil_index_6 = Recoil_index.atom;\nvar Recoil_index_7 = Recoil_index.selector;\nvar Recoil_index_8 = Recoil_index.atomFamily;\nvar Recoil_index_9 = Recoil_index.selectorFamily;\nvar Recoil_index_10 = Recoil_index.constSelector;\nvar Recoil_index_11 = Recoil_index.errorSelector;\nvar Recoil_index_12 = Recoil_index.readOnlySelector;\nvar Recoil_index_13 = Recoil_index.noWait;\nvar Recoil_index_14 = Recoil_index.waitForNone;\nvar Recoil_index_15 = Recoil_index.waitForAny;\nvar Recoil_index_16 = Recoil_index.waitForAll;\nvar Recoil_index_17 = Recoil_index.waitForAllSettled;\nvar Recoil_index_18 = Recoil_index.useRecoilValue;\nvar Recoil_index_19 = Recoil_index.useRecoilValueLoadable;\nvar Recoil_index_20 = Recoil_index.useRecoilState;\nvar Recoil_index_21 = Recoil_index.useRecoilStateLoadable;\nvar Recoil_index_22 = Recoil_index.useSetRecoilState;\nvar Recoil_index_23 = Recoil_index.useResetRecoilState;\nvar Recoil_index_24 = Recoil_index.useGetRecoilValueInfo_UNSTABLE;\nvar Recoil_index_25 = Recoil_index.useRecoilRefresher_UNSTABLE;\nvar Recoil_index_26 = Recoil_index.useRecoilCallback;\nvar Recoil_index_27 = Recoil_index.useRecoilTransaction_UNSTABLE;\nvar Recoil_index_28 = Recoil_index.useGotoRecoilSnapshot;\nvar Recoil_index_29 = Recoil_index.useRecoilSnapshot;\nvar Recoil_index_30 = Recoil_index.useRecoilTransactionObserver_UNSTABLE;\nvar Recoil_index_31 = Recoil_index.useTransactionObservation_UNSTABLE;\nvar Recoil_index_32 = Recoil_index.useSetUnvalidatedAtomValues_UNSTABLE;\nvar Recoil_index_33 = Recoil_index.snapshot_UNSTABLE;\nvar Recoil_index_34 = Recoil_index.useRetain;\nvar Recoil_index_35 = Recoil_index.retentionZone;\n\nexport default Recoil_index;\nexport { Recoil_index_1 as DefaultValue, Recoil_index_3 as RecoilLoadable, Recoil_index_4 as RecoilRoot, Recoil_index_6 as atom, Recoil_index_8 as atomFamily, Recoil_index_10 as constSelector, Recoil_index_11 as errorSelector, Recoil_index_2 as isRecoilValue, Recoil_index_13 as noWait, Recoil_index_12 as readOnlySelector, Recoil_index_35 as retentionZone, Recoil_index_7 as selector, Recoil_index_9 as selectorFamily, Recoil_index_33 as snapshot_UNSTABLE, Recoil_index_24 as useGetRecoilValueInfo_UNSTABLE, Recoil_index_28 as useGotoRecoilSnapshot, Recoil_index_5 as useRecoilBridgeAcrossReactRoots_UNSTABLE, Recoil_index_26 as useRecoilCallback, Recoil_index_25 as useRecoilRefresher_UNSTABLE, Recoil_index_29 as useRecoilSnapshot, Recoil_index_20 as useRecoilState, Recoil_index_21 as useRecoilStateLoadable, Recoil_index_30 as useRecoilTransactionObserver_UNSTABLE, Recoil_index_27 as useRecoilTransaction_UNSTABLE, Recoil_index_18 as useRecoilValue, Recoil_index_19 as useRecoilValueLoadable, Recoil_index_23 as useResetRecoilState, Recoil_index_34 as useRetain, Recoil_index_22 as useSetRecoilState, Recoil_index_32 as useSetUnvalidatedAtomValues_UNSTABLE, Recoil_index_31 as useTransactionObservation_UNSTABLE, Recoil_index_16 as waitForAll, Recoil_index_17 as waitForAllSettled, Recoil_index_15 as waitForAny, Recoil_index_14 as waitForNone };\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {ReactNode, useContext, useLayoutEffect, useMemo, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n prefix: string,\n current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\n\nconst SSRContext = React.createContext(defaultContext);\n\ninterface SSRProviderProps {\n /** Your application here. */\n children: ReactNode\n}\n\n/**\n * When using SSR with React Aria, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n let cur = useContext(SSRContext);\n let value: SSRContextValue = useMemo(() => ({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === defaultContext ? '' : `${cur.prefix}-${++cur.current}`,\n current: 0\n }), [cur]);\n\n return (\n \n {props.children}\n \n );\n}\n\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/** @private */\nexport function useSSRSafeId(defaultId?: string): string {\n let ctx = useContext(SSRContext);\n\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === defaultContext && !canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n }\n\n return useMemo(() => defaultId || `react-aria${ctx.prefix}-${++ctx.current}`, [defaultId]);\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n let cur = useContext(SSRContext);\n let isInSSRContext = cur !== defaultContext;\n let [isSSR, setIsSSR] = useState(isInSSRContext);\n\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof window !== 'undefined' && isInSSRContext) {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n setIsSSR(false);\n }, []);\n }\n\n return isSSR;\n}\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useRef, useState} from 'react';\n\nexport function useControlledState(\n value: T,\n defaultValue: T,\n onChange: (value: T, ...args: any[]) => void\n): [T, (value: T, ...args: any[]) => void] {\n let [stateValue, setStateValue] = useState(value || defaultValue);\n let ref = useRef(value !== undefined);\n let wasControlled = ref.current;\n let isControlled = value !== undefined;\n // Internal state reference for useCallback\n let stateRef = useRef(stateValue);\n if (wasControlled !== isControlled) {\n console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n }\n\n ref.current = isControlled;\n\n let setValue = useCallback((value, ...args) => {\n let onChangeCaller = (value, ...onChangeArgs) => {\n if (onChange) {\n if (!Object.is(stateRef.current, value)) {\n onChange(value, ...onChangeArgs);\n }\n }\n if (!isControlled) {\n stateRef.current = value;\n }\n };\n\n if (typeof value === 'function') {\n console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs) => {\n let interceptedValue = value(isControlled ? stateRef.current : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) {\n return interceptedValue;\n }\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) {\n setStateValue(value);\n }\n onChangeCaller(value, ...args);\n }\n }, [isControlled, onChange]);\n\n // If a controlled component's value prop changes, we need to update stateRef\n if (isControlled) {\n stateRef.current = value;\n } else {\n value = stateValue;\n }\n\n return [value, setValue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */\nexport function clamp(value: number, min: number = -Infinity, max: number = Infinity): number {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\n\nexport function snapValueToStep(value: number, min: number, max: number, step: number): number {\n let remainder = ((value - (isNaN(min) ? 0 : min)) % step);\n let snappedValue = Math.abs(remainder) * 2 >= step\n ? value + Math.sign(remainder) * (step - Math.abs(remainder))\n : value - remainder;\n\n if (!isNaN(min)) {\n if (snappedValue < min) {\n snappedValue = min;\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = min + Math.floor((max - min) / step) * step;\n }\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(max / step) * step;\n }\n\n // correct floating point behavior by rounding to step precision\n let string = step.toString();\n let index = string.indexOf('.');\n let precision = index >= 0 ? string.length - index : 0;\n\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n snappedValue = Math.round(snappedValue * pow) / pow;\n }\n\n return snappedValue;\n}\n\n/* Takes a value and rounds off to the number of digits. */\nexport function toFixedNumber(value: number, digits: number, base: number = 10): number {\n const pow = Math.pow(base, digits);\n\n return Math.round(value * pow) / pow;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\n\n// During SSR, React emits a warning when calling useLayoutEffect.\n// Since neither useLayoutEffect nor useEffect run on the server,\n// we can suppress this by replace it with a noop on the server.\nexport const useLayoutEffect = typeof window !== 'undefined'\n ? React.useLayoutEffect\n : () => {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\nlet idsUpdaterMap: Map void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n let isRendering = useRef(true);\n isRendering.current = true;\n let [value, setValue] = useState(defaultId);\n let nextId = useRef(null);\n\n let res = useSSRSafeId(value);\n\n // don't memo this, we want it new each render so that the Effects always run\n let updateValue = (val) => {\n if (!isRendering.current) {\n setValue(val);\n } else {\n nextId.current = val;\n }\n };\n\n idsUpdaterMap.set(res, updateValue);\n\n useLayoutEffect(() => {\n isRendering.current = false;\n }, [updateValue]);\n\n useLayoutEffect(() => {\n let r = res;\n return () => {\n idsUpdaterMap.delete(r);\n };\n }, [res]);\n\n useEffect(() => {\n let newId = nextId.current;\n if (newId) {\n setValue(newId);\n nextId.current = null;\n }\n }, [setValue, updateValue]);\n return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n if (idA === idB) {\n return idA;\n }\n\n let setIdA = idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n\n let setIdB = idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n\n return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray = []): string {\n let id = useId();\n let [resolvedId, setResolvedId] = useValueEffect(id);\n let updateId = useCallback(() => {\n setResolvedId(function *() {\n yield id;\n\n yield document.getElementById(id) ? id : null;\n });\n }, [id, setResolvedId]);\n\n useLayoutEffect(updateId, [id, updateId, ...depArray]);\n\n return resolvedId;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n return (...args: any[]) => {\n for (let callback of callbacks) {\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n [key: string]: any\n}\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? V : never;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps(...args: T): UnionToIntersection> {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result: Props = {...args[0]};\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n\n // Chain events\n if (\n typeof a === 'function' &&\n typeof b === 'function' &&\n // This is a lot faster than a regex.\n key[0] === 'o' &&\n key[1] === 'n' &&\n key.charCodeAt(2) >= /* 'A' */ 65 &&\n key.charCodeAt(2) <= /* 'Z' */ 90\n ) {\n result[key] = chain(a, b);\n\n // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n } else if (\n (key === 'className' || key === 'UNSAFE_className') &&\n typeof a === 'string' &&\n typeof b === 'string'\n ) {\n result[key] = clsx(a, b);\n } else if (key === 'id' && a && b) {\n result.id = mergeIds(a, b);\n // Override others\n } else {\n result[key] = b !== undefined ? b : a;\n }\n }\n }\n\n return result as UnionToIntersection>;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {HTMLAttributes} from 'react';\n\nconst DOMPropNames = new Set([\n 'id'\n]);\n\nconst labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n\ninterface Options {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean,\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n let {labelable, propNames} = opts;\n let filteredProps: HTMLAttributes = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) && (\n DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n propNames?.has(prop) ||\n propRe.test(prop)\n )\n ) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n element: HTMLElement,\n scrollTop: number,\n scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: HTMLElement) {\n if (supportsPreventScroll()) {\n element.focus({preventScroll: true});\n } else {\n let scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\n\nlet supportsPreventScrollCached: boolean = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n var focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: HTMLElement): ScrollableElement[] {\n var parent = element.parentNode;\n var scrollableElements: ScrollableElement[] = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getOffset(element, reverse, orientation = 'horizontal') {\n let rect = element.getBoundingClientRect();\n if (reverse) {\n return orientation === 'horizontal' ? rect.right : rect.bottom;\n }\n return orientation === 'horizontal' ? rect.left : rect.top;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n let onTransitionStart = (e: TransitionEvent) => {\n // Add the transitioning property to the list for this element.\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(e.target, transitions);\n\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd);\n }\n\n transitions.add(e.propertyName);\n };\n\n let onTransitionEnd = (e: TransitionEvent) => {\n // Remove property from list of transitioning properties.\n let properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n transitionsByElement.delete(e.target);\n }\n\n // If no transitioning elements, call all of the queued callbacks.\n if (transitionsByElement.size === 0) {\n for (let cb of transitionCallbacks) {\n cb();\n }\n\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn: () => void) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(() => {\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getOffset} from './getOffset';\nimport {Orientation} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useRef} from 'react';\n\ninterface UseDrag1DProps {\n containerRef: MutableRefObject,\n reverse?: boolean,\n orientation?: Orientation,\n onHover?: (hovered: boolean) => void,\n onDrag?: (dragging: boolean) => void,\n onPositionChange?: (position: number) => void,\n onIncrement?: () => void,\n onDecrement?: () => void,\n onIncrementToMax?: () => void,\n onDecrementToMin?: () => void,\n onCollapseToggle?: () => void\n}\n\n// Keep track of elements that we are currently handling dragging for via useDrag1D.\n// If there's an ancestor and a descendant both using useDrag1D(), and the user starts\n// dragging the descendant, we don't want useDrag1D events to fire for the ancestor.\nconst draggingElements: HTMLElement[] = [];\n\n// created for splitview, this should be reusable for things like sliders/dials\n// It also handles keyboard events on the target allowing for increment/decrement by a given stepsize as well as minifying/maximizing and toggling between minified and previous size\n// It can also take a 'reverse' param to say if we should measure from the right/bottom instead of the top/left\n// It can also handle either a vertical or horizontal movement, but not both at the same time\n\nexport function useDrag1D(props: UseDrag1DProps): HTMLAttributes {\n console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');\n let {containerRef, reverse, orientation, onHover, onDrag, onPositionChange, onIncrement, onDecrement, onIncrementToMax, onDecrementToMin, onCollapseToggle} = props;\n let getPosition = (e) => orientation === 'horizontal' ? e.clientX : e.clientY;\n let getNextOffset = (e: MouseEvent) => {\n let containerOffset = getOffset(containerRef.current, reverse, orientation);\n let mouseOffset = getPosition(e);\n let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n return nextOffset;\n };\n let dragging = useRef(false);\n let prevPosition = useRef(0);\n\n // Keep track of the current handlers in a ref so that the events can access them.\n let handlers = useRef({onPositionChange, onDrag});\n handlers.current.onDrag = onDrag;\n handlers.current.onPositionChange = onPositionChange;\n\n let onMouseDragged = (e: MouseEvent) => {\n e.preventDefault();\n let nextOffset = getNextOffset(e);\n if (!dragging.current) {\n dragging.current = true;\n if (handlers.current.onDrag) {\n handlers.current.onDrag(true);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n }\n if (prevPosition.current === nextOffset) {\n return;\n }\n prevPosition.current = nextOffset;\n if (onPositionChange) {\n onPositionChange(nextOffset);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n dragging.current = false;\n let nextOffset = getNextOffset(e);\n if (handlers.current.onDrag) {\n handlers.current.onDrag(false);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n\n draggingElements.splice(draggingElements.indexOf(target), 1);\n window.removeEventListener('mouseup', onMouseUp, false);\n window.removeEventListener('mousemove', onMouseDragged, false);\n };\n\n let onMouseDown = (e: React.MouseEvent) => {\n const target = e.currentTarget;\n // If we're already handling dragging on a descendant with useDrag1D, then\n // we don't want to handle the drag motion on this target as well.\n if (draggingElements.some(elt => target.contains(elt))) {\n return;\n }\n draggingElements.push(target);\n window.addEventListener('mousemove', onMouseDragged, false);\n window.addEventListener('mouseup', onMouseUp, false);\n };\n\n let onMouseEnter = () => {\n if (onHover) {\n onHover(true);\n }\n };\n\n let onMouseOut = () => {\n if (onHover) {\n onHover(false);\n }\n };\n\n let onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Right':\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Down':\n case 'ArrowDown':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n if (onDecrementToMin) {\n onDecrementToMin();\n }\n break;\n case 'End':\n e.preventDefault();\n if (onIncrementToMax) {\n onIncrementToMax();\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (onCollapseToggle) {\n onCollapseToggle();\n }\n break;\n }\n };\n\n return {onMouseDown, onMouseEnter, onMouseOut, onKeyDown};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n addGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n let globalListeners = useRef(new Map());\n let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = options?.once ? (...args) => {\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {type, eventTarget, fn, options});\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n let fn = globalListeners.current.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [removeGlobalListener]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return removeAllGlobalListeners;\n }, [removeAllGlobalListeners]);\n\n return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n let {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n } = props;\n\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = useId(id);\n if (labelledBy && label) {\n let ids = new Set([...labelledBy.trim().split(/\\s+/), id]);\n labelledBy = [...ids].join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, useRef} from 'react';\nimport {useLayoutEffect} from './';\n\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria Hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */\nexport function useObjectRef(forwardedRef?: ((instance: T | null) => void) | MutableRefObject | null): MutableRefObject {\n const objRef = useRef();\n\n /**\n * We're using `useLayoutEffect` here instead of `useEffect` because we want\n * to make sure that the `ref` value is up to date before other places in the\n * the execution cycle try to read it.\n */\n useLayoutEffect(() => {\n if (!forwardedRef) {\n return;\n }\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(objRef.current);\n } else {\n forwardedRef.current = objRef.current;\n }\n }, [forwardedRef]);\n\n return objRef;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {EffectCallback, useEffect, useRef} from 'react';\n\n// Like useEffect, but only called for updates after the initial render.\nexport function useUpdateEffect(effect: EffectCallback, dependencies: any[]) {\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n","import {RefObject, useEffect} from 'react';\n\nfunction hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType = {\n ref: RefObject,\n onResize: () => void\n}\n\nexport function useResizeObserver(options: useResizeObserverOptionsType) {\n const {ref, onResize} = options;\n\n useEffect(() => {\n let element = ref?.current;\n if (!element) {\n return;\n }\n\n if (!hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n\n const resizeObserverInstance = new window.ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n resizeObserverInstance.observe(element);\n\n return () => {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n\n }, [onResize, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue {\n ref?: MutableRefObject\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef(context: ContextValue, ref: RefObject) {\n useLayoutEffect(() => {\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return () => {\n context.ref.current = null;\n };\n }\n }, [context, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getScrollParent(node: Element): Element {\n while (node && !isScrollable(node)) {\n node = node.parentElement;\n }\n\n return node || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\n\ninterface ViewportSize {\n width: number,\n height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n let [size, setSize] = useState(() => getViewportSize());\n\n useEffect(() => {\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = () => {\n setSize(size => {\n let newSize = getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) {\n return size;\n }\n return newSize;\n });\n };\n\n if (!visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n visualViewport.addEventListener('resize', onResize);\n }\n\n return () => {\n if (!visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n return {\n width: visualViewport?.width || window.innerWidth,\n height: visualViewport?.height || window.innerHeight\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map();\n\nexport function useDescription(description: string): AriaLabelingProps {\n let [id, setId] = useState(null);\n\n useLayoutEffect(() => {\n if (!description) {\n return;\n }\n\n let desc = descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${descriptionId++}`;\n setId(id);\n\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {refCount: 0, element: node};\n descriptionNodes.set(description, desc);\n } else {\n setId(desc.element.id);\n }\n\n desc.refCount++;\n return () => {\n if (--desc.refCount === 0) {\n desc.element.remove();\n descriptionNodes.delete(description);\n }\n };\n }, [description]);\n\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction testUserAgent(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator.userAgent)\n : false;\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(window.navigator.platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/);\n}\n\nexport function isIPad() {\n return testPlatform(/^iPad/) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/);\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect, useRef} from 'react';\n\nexport function useEvent(\n ref: RefObject,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n let handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n let isDisabled = handler == null;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let element = ref.current;\n let handler = (e: GlobalEventHandlersEventMap[K]) => handlerRef.current.call(this, e);\n\n element.addEventListener(event, handler, options);\n return () => {\n element.removeEventListener(event, handler, options);\n };\n }, [ref, event, options, isDisabled]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Dispatch, useCallback, useRef, useState} from 'react';\nimport {useLayoutEffect} from './';\n\ntype SetValueAction = (prev: S) => Generator;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect(defaultValue: S | (() => S)): [S, Dispatch>] {\n let [value, setValue] = useState(defaultValue);\n let valueRef = useRef(value);\n let effect = useRef(null);\n\n valueRef.current = value;\n\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = useRef(null);\n nextRef.current = () => {\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) {\n nextRef.current();\n } else {\n setValue(newValue.value);\n }\n };\n\n useLayoutEffect(() => {\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) {\n nextRef.current();\n }\n });\n\n let queue = useCallback(fn => {\n effect.current = fn(valueRef.current);\n nextRef.current();\n }, [effect, nextRef]);\n\n return [value, queue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n let offsetX = relativeOffset(scrollView, element, 'left');\n let offsetY = relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n let maxX = x + scrollView.offsetWidth;\n let maxY = y + scrollView.offsetHeight;\n\n if (offsetX <= x) {\n x = offsetX;\n } else if (offsetX + width > maxX) {\n x += offsetX + width - maxX;\n }\n if (offsetY <= y) {\n y = offsetY;\n } else if (offsetY + height > maxY) {\n y += offsetY + height - maxY;\n }\n\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(ancestor: HTMLElement, child: HTMLElement, axis: 'left'|'top') {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while (child.offsetParent) {\n sum += child[prop];\n if (child.offsetParent === ancestor) {\n // Stop once we have found the ancestor we are interested in.\n break;\n } else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent as HTMLElement;\n }\n return sum;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: HTMLElement) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: HTMLElement) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {focusWithoutScrolling, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {HTMLAttributes, RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {isVirtualClick} from './utils';\nimport {PointerType, PressEvents} from '@react-types/shared';\nimport {PressResponderContext} from './context';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: HTMLElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: HTMLAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: HTMLAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent) && e.currentTarget.contains(e.target as HTMLElement)) {\n if (shouldPreventDefaultKeyboard(e.target as Element)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget as HTMLElement;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent) && !e.repeat && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e)) {\n if (shouldPreventDefaultKeyboard(e.target as Element)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as HTMLElement;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target.contains(target) && isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link') {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.target as Element)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.target as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as HTMLElement) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.target as Element)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as HTMLElement).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: HTMLElement): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent): boolean {\n const {key, code, target} = event;\n const element = target as HTMLElement;\n const {tagName, isContentEditable} = element;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n (tagName !== 'INPUT' &&\n tagName !== 'TEXTAREA' &&\n isContentEditable !== true) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: HTMLElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: HTMLElement) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: Element) {\n // We cannot prevent default if the target is inside a draggable element.\n return !target.closest('[draggable=\"true\"]');\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element) {\n return !((target.tagName === 'INPUT' || target.tagName === 'BUTTON') && (target as HTMLButtonElement | HTMLInputElement).type === 'submit');\n}\n\nfunction isVirtualPointerEvent(event: PointerEvent) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216\n return (\n (event.width === 0 && event.height === 0) ||\n (event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0\n )\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {HTMLAttributes, ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement, string>\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {FocusEvent, HTMLAttributes} from 'react';\nimport {FocusEvents} from '@react-types/shared';\n\ninterface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: HTMLAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n if (props.isDisabled) {\n return {focusProps: {}};\n }\n\n let onFocus, onBlur;\n if (props.onFocus || props.onFocusChange) {\n onFocus = (e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n }\n };\n }\n\n if (props.onBlur || props.onFocusChange) {\n onBlur = (e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n }\n };\n }\n\n return {\n focusProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac} from '@react-aria/utils';\nimport {isVirtualClick} from './utils';\nimport {useEffect, useState} from 'react';\n\ntype Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\ntype FocusVisibleHandler = (isFocusVisible: boolean) => void;\ninterface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\ninterface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {FocusEvent, HTMLAttributes, useRef} from 'react';\n\ninterface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\ninterface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: HTMLAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let state = useRef({\n isFocusWithin: false\n }).current;\n\n if (props.isDisabled) {\n return {focusWithinProps: {}};\n }\n\n let onFocus = (e: FocusEvent) => {\n if (!state.isFocusWithin) {\n if (props.onFocusWithin) {\n props.onFocusWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(true);\n }\n\n state.isFocusWithin = true;\n }\n };\n\n let onBlur = (e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.isFocusWithin && !e.currentTarget.contains(e.relatedTarget as HTMLElement)) {\n if (props.onBlurWithin) {\n props.onBlurWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(false);\n }\n\n state.isFocusWithin = false;\n }\n };\n\n return {\n focusWithinProps: {\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {HoverEvents} from '@react-types/shared';\nimport {HTMLAttributes, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: HTMLAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: HTMLAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\ninterface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {HTMLAttributes} from 'react';\nimport {KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: HTMLAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {MoveEvents, PointerType} from '@react-types/shared';\nimport React, {HTMLAttributes, useMemo, useRef} from 'react';\nimport {useGlobalListeners} from '@react-aria/utils';\n\ninterface MoveResult {\n /** Props to spread on the target element. */\n moveProps: HTMLAttributes\n}\n\ninterface EventBase {\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let {onMoveStart, onMove, onMoveEnd} = props;\n\n let state = useRef<{\n didMove: boolean,\n lastPosition: {pageX: number, pageY: number} | null,\n id: number | null\n }>({didMove: false, lastPosition: null, id: null});\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let moveProps = useMemo(() => {\n let moveProps: HTMLAttributes = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n let move = (originalEvent: EventBase, pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let end = (originalEvent: EventBase, pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n if (typeof PointerEvent === 'undefined') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n move(e, 'mouse', e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n end(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n let onTouchMove = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n let {pageX, pageY} = e.changedTouches[touch];\n move(e, 'touch', pageX - state.current.lastPosition.pageX, pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX, pageY};\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n end(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let {pageX, pageY, identifier} = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX, pageY};\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n\n moveProps.onPointerDown = (e: React.PointerEvent) => {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n\n let triggerKeyboardMove = (e: EventBase, deltaX: number, deltaY: number) => {\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, onMoveStart, onMove, onMoveEnd, addGlobalListener, removeGlobalListener]);\n\n return {moveProps};\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useCallback} from 'react';\nimport {ScrollEvents} from '@react-types/shared';\nimport {useEvent} from '@react-aria/utils';\n\nexport interface ScrollWheelProps extends ScrollEvents {\n /** Whether the scroll listener should be disabled. */\n isDisabled?: boolean\n}\n\n// scroll wheel needs to be added not passively so it's cancelable, small helper hook to remember that\nexport function useScrollWheel(props: ScrollWheelProps, ref: RefObject): void {\n let {onScroll, isDisabled} = props;\n let onScrollHandler = useCallback((e) => {\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) {\n return;\n }\n\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n\n if (onScroll) {\n onScroll({deltaX: e.deltaX, deltaY: e.deltaY});\n }\n }, [onScroll]);\n\n useEvent(ref, 'wheel', isDisabled ? null : onScrollHandler);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HTMLAttributes, useRef} from 'react';\nimport {LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\n\ninterface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\ninterface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: HTMLAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusWithoutScrolling, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: HTMLElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = document.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction isStyleVisible(element: Element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and \n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */ \nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n// import {FocusScope, useFocusScope} from 'react-events/focus-scope';\n// export {FocusScope};\n\ninterface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\ninterface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: HTMLElement,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean\n}\n\ninterface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): HTMLElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\nlet scopes: Map = new Map();\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n// For now, it relies on the DOM tree order rather than the React tree order, and is probably\n// less optimized for performance.\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n let parentScope = ctx?.scopeRef;\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n useLayoutEffect(() => {\n scopes.set(scopeRef, parentScope);\n return () => {\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || scopes.has(parentScope))\n ) {\n activeScope = parentScope;\n }\n scopes.delete(scopeRef);\n };\n }, [scopeRef, parentScope]);\n\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as HTMLElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as HTMLElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as HTMLElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as HTMLElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as HTMLElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as HTMLElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: HTMLElement[]) {\n return scope[0].parentElement;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || scopeRef !== activeScope) {\n return;\n }\n\n let focusedElement = document.activeElement as HTMLElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (scopeRef === activeScope && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (scopeRef === activeScope) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (scopeRef === activeScope && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n focusedNode.current.focus();\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => cancelAnimationFrame(raf.current);\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n for (let scope of scopes.keys()) {\n if (isElementInScope(element, scope.current)) {\n return true;\n }\n }\n return false;\n}\n\nfunction isElementInScope(element: Element, scope: HTMLElement[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let s of scopes.keys()) {\n if ((s === scope || isAncestorScope(scope, s)) && isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = scopes.get(scope);\n if (!parent) {\n return false;\n }\n\n if (parent === ancestor) {\n return true;\n }\n\n return isAncestorScope(ancestor, parent);\n}\n\nfunction focusElement(element: HTMLElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: HTMLElement[]) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = sentinel;\n focusElement(walker.nextNode() as HTMLElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, []);\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as HTMLElement : null);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n let nodeToRestore = nodeToRestoreRef.current;\n if (!restoreFocus) {\n return;\n }\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as HTMLElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n\n if (restoreFocus && nodeToRestore && isElementInScope(document.activeElement, scopeRef.current)) {\n requestAnimationFrame(() => {\n if (document.body.contains(nodeToRestore)) {\n focusElement(nodeToRestore);\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: HTMLElement, opts?: FocusManagerOptions, scope?: HTMLElement[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as HTMLElement).matches(selector)\n && isElementVisible(node as HTMLElement)\n && (!scope || isElementInScope(node as HTMLElement, scope))) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as HTMLElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as HTMLElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as HTMLElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let root = ref.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable});\n let nextNode = walker.nextNode() as HTMLElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let root = ref.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: HTMLElement;\n let last: HTMLElement;\n do {\n last = walker.lastChild() as HTMLElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","import {HTMLAttributes, useState} from 'react';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useRef} from 'react';\n\ninterface FocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\ninterface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: HTMLAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: FocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n }).current;\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.isFocused && state.isFocusVisible);\n\n let updateState = () => setFocusVisible(state.isFocused && state.isFocusVisible);\n\n let onFocusChange = isFocused => {\n state.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n };\n\n useFocusVisibleListener((isFocusVisible) => {\n state.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: state.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useFocusRing} from './useFocusRing';\n\ninterface FocusRingProps {\n /** Child element to apply CSS classes to. */\n children: ReactElement,\n /** CSS class to apply when the element is focused. */\n focusClass?: string,\n /** CSS class to apply when the element has keyboard focus. */\n focusRingClass?: string,\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default false\n */\n within?: boolean,\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\n/**\n * A utility component that applies a CSS class when an element has keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function FocusRing(props: FocusRingProps) {\n let {children, focusClass, focusRingClass} = props;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing(props);\n let child = React.Children.only(children);\n\n return React.cloneElement(child, mergeProps(child.props, {\n ...focusProps,\n className: clsx({\n [focusClass || '']: isFocused,\n [focusRingClass || '']: isFocusVisible\n })\n }));\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableDOMProps, FocusableProps} from '@react-types/shared';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {HTMLAttributes, MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\ninterface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\ninterface FocusableProviderProps extends HTMLAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject) {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n domRef.current.focus();\n }\n autoFocusRef.current = false;\n }, []);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaButtonProps} from '@react-types/button';\nimport {filterDOMProps} from '@react-aria/utils';\nimport {mergeProps} from '@react-aria/utils';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\n\nexport interface ButtonAria {\n /** Props for the button element. */\n buttonProps: T,\n /** Whether the button is currently pressed. */\n isPressed: boolean\n}\n\nexport function useButton(props: AriaButtonProps<'a'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'button'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'div'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'input'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps<'span'>, ref: RefObject): ButtonAria>;\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria>;\n/**\n * Provides the behavior and accessibility implementation for a button component. Handles mouse, keyboard, and touch interactions,\n * focus behavior, and ARIA props for both native button elements and custom element types.\n * @param props - Props to be applied to the button.\n * @param ref - A ref to a DOM element for the button.\n */\nexport function useButton(props: AriaButtonProps, ref: RefObject): ButtonAria> {\n let {\n elementType = 'button',\n isDisabled,\n onPress,\n onPressStart,\n onPressEnd,\n onPressChange,\n // @ts-ignore - undocumented\n preventFocusOnPress,\n // @ts-ignore - undocumented\n allowFocusWhenDisabled,\n // @ts-ignore\n onClick: deprecatedOnClick,\n href,\n target,\n rel,\n type = 'button'\n } = props;\n let additionalProps;\n if (elementType === 'button') {\n additionalProps = {\n type,\n disabled: isDisabled\n };\n } else {\n additionalProps = {\n role: 'button',\n tabIndex: isDisabled ? undefined : 0,\n href: elementType === 'a' && isDisabled ? undefined : href,\n target: elementType === 'a' ? target : undefined,\n type: elementType === 'input' ? type : undefined,\n disabled: elementType === 'input' ? isDisabled : undefined,\n 'aria-disabled': !isDisabled || elementType === 'input' ? undefined : isDisabled,\n rel: elementType === 'a' ? rel : undefined\n };\n }\n\n let {pressProps, isPressed} = usePress({\n onPressStart,\n onPressEnd,\n onPressChange,\n onPress,\n isDisabled,\n preventFocusOnPress,\n ref\n });\n\n let {focusableProps} = useFocusable(props, ref);\n if (allowFocusWhenDisabled) {\n focusableProps.tabIndex = isDisabled ? -1 : focusableProps.tabIndex;\n }\n let buttonProps = mergeProps(focusableProps, pressProps, filterDOMProps(props, {labelable: true}));\n\n return {\n isPressed, // Used to indicate press state for visual\n buttonProps: mergeProps(additionalProps, buttonProps, {\n 'aria-haspopup': props['aria-haspopup'],\n 'aria-expanded': props['aria-expanded'],\n 'aria-controls': props['aria-controls'],\n 'aria-pressed': props['aria-pressed'],\n onClick: (e) => {\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n ElementType,\n HTMLAttributes,\n InputHTMLAttributes,\n RefObject\n} from 'react';\nimport {AriaToggleButtonProps} from '@react-types/button';\nimport {ButtonAria, useButton} from './useButton';\nimport {chain} from '@react-aria/utils';\nimport {mergeProps} from '@react-aria/utils';\nimport {ToggleState} from '@react-stately/toggle';\n\nexport function useToggleButton(props: AriaToggleButtonProps<'a'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'button'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'div'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'input'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps<'span'>, state: ToggleState, ref: RefObject): ButtonAria>;\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria>;\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.\n */\nexport function useToggleButton(props: AriaToggleButtonProps, state: ToggleState, ref: RefObject): ButtonAria> {\n const {isSelected} = state;\n const {isPressed, buttonProps} = useButton({\n ...props,\n onPress: chain(state.toggle, props.onPress)\n }, ref);\n\n return {\n isPressed,\n buttonProps: mergeProps(buttonProps, {\n 'aria-pressed': isSelected\n })\n };\n}\n","import { SerializeableAnswerMap } from \"../state/answers-state\";\n\nconst apiBase = setBaseUrl();\nfunction setBaseUrl(): string {\n const hostname = window.location.hostname;\n if (hostname === 'localhost') {\n return process.env.REACT_APP_RISIKOVAERKTOEJ_API_HOSTNAME as string;\n }\n\n return `${window.location.protocol}//${hostname}/api/risikotool`;\n};\n\nconst handleHttpErrors = (response: Response) => {\n if (!response.ok) {\n throw Error(response.statusText);\n }\n\n return response;\n};\n\nexport const getToolData = (tool: string): Promise => {\n const params = new URLSearchParams({\n tool: tool\n });\n const url = `${apiBase}/data/getdata?${params}`;\n\n return fetch(url, {\n method: 'get',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n });\n};\n\nexport const getReport = (sessionId: string, tool: string, answers: SerializeableAnswerMap): Promise => {\n return fetch(`${apiBase}/report/create`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n sessionId: sessionId,\n tool,\n answersMap: answers\n })\n }).then(handleHttpErrors).then(resp => resp.blob());\n};\n\nexport const sendReportEmail = (sessionId: string, tool: string, fileName: string, answers: SerializeableAnswerMap, email: string): Promise => {\n return fetch(`${apiBase}/report/mail`, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n sessionId: sessionId,\n tool,\n fileName: fileName,\n answersMap: answers,\n email: email\n })\n }).then(handleHttpErrors).then(resp => resp.status);\n};","export enum AnswerType {\n single = \"Single\",\n multiple = \"Multiple\",\n inputspecial = \"Inputspecial\",\n multipleimage = \"MultipleImage\",\n singleimage = \"SingleImage\"\n}","export const postMessage = (type: string, data: T | null = null): void => {\n window.parent.postMessage({\n type: type,\n data: data\n }, \"*\");\n};\n","import { QuestionnaireState } from \"../state/questionnaire-state\";\n\nexport const noToolConfigured = (state: QuestionnaireState): boolean => {\n return !state.loading && state.tool === null && !state.toolLoadFailed;\n};\n\nexport const toolLoaded = (state: QuestionnaireState): boolean => {\n return !state.loading && state.tool !== null && !state.toolLoadFailed;\n};\n\nexport const toolLoadFailed = (state: QuestionnaireState): boolean => {\n return !state.loading && state.toolLoadFailed;\n};","import { AnswerType } from \"../models/answer-type\";\nimport { Section } from \"../models/section\";\nimport { AnswerMap } from \"../state/answers-state\";\n\nexport const sectionHasVisibleQuestions = (section: Section, visibilityMap: Map): boolean => {\n for (const question of section.questions) {\n if (visibilityMap.get(question.qid)) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const isSectionValid = (section: Section, visibilityMap: Map, answers: AnswerMap): boolean => {\n if (!sectionHasVisibleQuestions(section, visibilityMap)) {\n return true;\n }\n\n let isValid = true;\n for (const question of section.questions) {\n if (\n !visibilityMap.get(question.qid)\n || answers.has(question.qid)\n || question.type === AnswerType.inputspecial\n || question.optional\n ) {\n continue;\n }\n\n isValid = false;\n break;\n }\n\n return isValid;\n};\n\nexport const getSectionVisibilityMapKey = (sectionIndex: number) => `section_${sectionIndex}`;\n","import { atom } from \"recoil\";\n\nexport type AnswerMapValues = string | string[] | Map;\nexport type AnswerMap = Map;\nexport type SerializeableAnswerMap = { [key: string]: string | string[] | { [key: string]: string } };\n\nexport const answersState = atom({\n key: 'answersState',\n default: new Map()\n});\n","import { atom } from \"recoil\";\nimport { GlobalVariables } from \"../models/global-variables\";\n\nexport const globalVariablesState = atom({\n key: 'globalVariablesState',\n default: {\n receiptPageHeader: '',\n receiptPageTeaser: '',\n receiptPageContent: '',\n reportFileName: '',\n komGodtVidereLink: '',\n komGodtVidereLinkTekst: '',\n komGodtVidereBoxHeader: '',\n startFlowKnap: '',\n downloadRapportKnap: '',\n callCenterLink: '',\n callCenterLinkTekst: '',\n callCenterBoxHeader: '',\n fejlBeskedVedDownload:'',\n downloadSpinnerTekst:'',\n mailHeader:'',\n mailSendKnap:'',\n mailPlaceholder:'',\n mailSucces:'',\n visSendtEmail:false,\n fejlBeskedVedEmail:'',\n mailSpinnerTekst:'',\n mailUgyldig:''\n }\n});\n","import { Section } from \"../models/section\";\nimport { AnswerMap } from \"../state/answers-state\";\nimport { getSectionVisibilityMapKey } from \"./section-helpers\";\n\nexport const evaluateFilter = (filter: string | null, answers: AnswerMap): boolean => {\n if (filter === null || filter === '') {\n return true;\n }\n\n /**\n * The process here is multistaged.\n * 1. Look for statements containing a dot (.)\n * a. These statements act as a replacement for evaluating if a state is filled or not\n * b. Replace these statements with booleans\n * 2. Look for statements contain an equality comparer (=)\n * a. These statements act as a comparison to see if a certain question contains a given value\n * b. Again, replace these statements with booleans\n */\n const statementMatcher = /(\\w*)(\\.|=)(\\w*)/gm;\n const statements = filter.match(statementMatcher);\n\n if (!statements) {\n return false;\n }\n\n for (const statement of statements) {\n const splitter = statement.includes('.') ? '.' : '=';\n const [questionId, answer] = statement.split(splitter);\n const value = answers.get(questionId);\n\n let evaluated: boolean | null = null;\n\n switch (splitter) {\n case '.':\n if (!value) {\n evaluated = false;\n break;\n }\n\n const input = (value as Map).get(answer);\n evaluated = !!input && input.length > 0;\n break;\n case '=':\n const currentAnswers = Array.isArray(value) ? value : [value as string];\n evaluated = currentAnswers.indexOf(answer) > -1;\n break;\n }\n\n filter = filter.replace(statement, evaluated.toString());\n }\n\n // eslint-disable-next-line no-new-func\n const evaluationFunc = new Function(`\"use strict\"; return ${filter};`);\n const evaluation = evaluationFunc();\n\n return evaluation;\n};\n\nexport const createVisibilityMap = (sections: Section[], answers: AnswerMap): Map => {\n const visibilityMap = new Map();\n\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n const sectionVisible = evaluateFilter(section.filter, answers);\n visibilityMap.set(getSectionVisibilityMapKey(i), sectionVisible);\n\n for (const question of section.questions) {\n try {\n let visible = false;\n /**\n * Only evaluate questionfilter if section is actually visible,\n * else treat it as being invisible to clean it up as usual\n */\n if (sectionVisible) {\n visible = evaluateFilter(question.filter, answers);\n }\n\n if (!visible) {\n // TODO: figure out if mutating here is disgusting (it is)\n answers.delete(question.qid);\n }\n\n visibilityMap.set(question.qid, visible);\n } catch (error) {\n console.log(`Failed @ ${question.qid}`);\n throw error;\n }\n }\n }\n\n return visibilityMap;\n};","import { atom, selector } from \"recoil\";\nimport { createVisibilityMap } from \"../helpers/filter-evaluation\";\nimport { Section } from \"../models/section\";\nimport { answersState } from \"./answers-state\";\n\nexport const sectionsState = atom({\n key: 'sectionsState',\n default: []\n});\n\nexport const visibleQuestionsState = selector>({\n key: 'visibleQuestionsState',\n get: ({ get }) => {\n const sections = get(sectionsState);\n const answers = get(answersState);\n\n return createVisibilityMap(sections, answers);\n }\n});\n","import { atom, selector } from \"recoil\";\nimport { sectionHasVisibleQuestions } from \"../helpers/section-helpers\";\nimport { sectionsState, visibleQuestionsState } from \"./sections-state\";\n\nexport interface QuestionnaireState {\n activeSectionIndex: number | null;\n showReport: boolean;\n loading: boolean;\n tool: string | null;\n toolLoadFailed: boolean;\n errorMessage: string;\n sessionId: string;\n}\n\nexport const questionnaireState = atom({\n key: 'questionnaireState',\n default: {\n activeSectionIndex: null,\n showReport: false,\n loading: true,\n tool: null,\n toolLoadFailed: false,\n errorMessage: '',\n sessionId: '',\n }\n});\n\nexport interface SectionProgressionState {\n current: number;\n max: number;\n}\n\nexport const normalizedSectionProgressionState = selector({\n key: 'normalizedSectionProgressionState',\n get: ({ get }) => {\n const questionnaire = get(questionnaireState);\n const sections = get(sectionsState);\n const visibleQuestions = get(visibleQuestionsState);\n\n let currentIndex = 0;\n let availableSections = 0;\n\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i];\n\n const sectionAvailable = section.questions.length === 0\n || sectionHasVisibleQuestions(section, visibleQuestions);\n\n if (sectionAvailable) {\n availableSections++;\n }\n\n if (i === questionnaire.activeSectionIndex) {\n currentIndex = availableSections;\n }\n }\n\n return {\n current: currentIndex,\n max: availableSections + 1\n };\n }\n});\n\nexport const staticSectionProgressionState = selector({\n key: 'staticSectionProgressionState',\n get: ({ get }) => {\n const questionnaire = get(questionnaireState);\n const sections = get(sectionsState);\n\n return {\n current: questionnaire.activeSectionIndex ? questionnaire.activeSectionIndex + 1 : 1,\n max: sections.length\n };\n }\n});\n","import { atom, selector } from \"recoil\";\nimport { evaluateFilter } from \"../helpers/filter-evaluation\";\nimport { ReportSection } from \"../models/report-section\";\nimport { answersState } from \"./answers-state\";\n\nexport const reportState = atom({\n key: 'reportState',\n default: []\n});\n\nexport interface GeneratedReport {\n reportSections: ReportSection[];\n}\n\nexport const generatedReportState = selector({\n key: 'generatedReportState',\n get: ({ get }) => {\n const allReportSections = get(reportState);\n const answers = get(answersState);\n\n const reportSections: ReportSection[] = [];\n for (const reportSection of allReportSections) {\n if (!evaluateFilter(reportSection.filter, answers)) {\n continue;\n }\n\n const currentReportSection: ReportSection = {\n ...reportSection,\n reportElements: []\n };\n\n for (const reportElement of reportSection.reportElements) {\n try {\n if (!evaluateFilter(reportElement.filter, answers)) {\n continue;\n }\n } catch (error) {\n console.log(`failed @ ${reportElement.filter}`);\n throw error;\n }\n\n currentReportSection.reportElements.push(reportElement);\n }\n\n reportSections.push(currentReportSection);\n }\n\n return { reportSections: reportSections };\n }\n});\n","import { atom } from \"recoil\";\nimport { SerializeableAnswerMap } from \"./answers-state\";\n\nexport interface EmailReportState {\n answerMap: SerializeableAnswerMap;\n toAddress: string;\n};\n\nexport const emailReportState = atom({\n key: 'emailModelState',\n default: {\n answerMap: {},\n toAddress: \"\",\n }\n});\n","// From https://loading.io/css/\nimport './Spinner.css';\n\nconst Spinner = () => {\n return

\n
\n
;\n};\n\nexport default Spinner;\n","import saveAs from \"file-saver\";\nimport { useRef, useState } from \"react\";\nimport { useButton } from \"react-aria\";\nimport { useRecoilState } from \"recoil\";\nimport validator from 'validator';\nimport { getReport, sendReportEmail } from \"../../helpers/data-api-helpers\";\nimport { postMessage } from \"../../helpers/parent-communication-helpers\";\nimport { answersState, SerializeableAnswerMap } from \"../../state/answers-state\";\nimport { emailReportState } from \"../../state/email-report-state\";\nimport { globalVariablesState } from \"../../state/global-variables-state\";\nimport { questionnaireState } from \"../../state/questionnaire-state\";\nimport Spinner from \"../spinner/Spinner\";\n\nconst Report = () => {\n const [state] = useRecoilState(questionnaireState);\n const [answers] = useRecoilState(answersState);\n const [globalVariables] = useRecoilState(globalVariablesState);\n const [isDownloading, setIsDownloading] = useState(false);\n const [downloadFailed, setDownloadFailed] = useState(false);\n const [isSendingEmail, setIsSendingEmail] = useState(false);\n const [sendingEmailFailed, setSendingEmailFailed] = useState(false);\n const [invalidEmail, setInvalidEmail] = useState(false);\n const [successEmail, setSuccessEmail] = useState(false);\n const [tempEmail, setTempEmail] = useState(\"\");\n const [emailState, setEmailState] = useRecoilState(emailReportState);\n\n const downloadButtonRef = useRef(null);\n const emailButtonRef = useRef(null);\n\n const downloadButton = useButton({\n onPress: e => {\n if ((e.target as HTMLButtonElement).disabled) {\n return;\n }\n\n downloadReport();\n }\n }, downloadButtonRef);\n\n const mailSendButton = useButton({\n onPress: e => {\n if ((e.target as HTMLButtonElement).disabled) {\n return;\n }\n\n if (validator.isEmail(emailState.toAddress)) {\n setInvalidEmail(false);\n sendEmail();\n }\n else {\n setInvalidEmail(true);\n setSuccessEmail(false);\n }\n }\n }, emailButtonRef)\n\n const payLoadSetup = (): SerializeableAnswerMap => {\n\n const answerMapPayload: SerializeableAnswerMap = {};\n for (const [key, value] of answers) {\n if (typeof value === 'string' || Array.isArray(value)) {\n answerMapPayload[key] = value;\n } else if (value instanceof Map) {\n const inner: { [key: string]: string } = {};\n for (const [innerKey, innerValue] of value) {\n inner[innerKey] = innerValue;\n }\n answerMapPayload[key] = inner;\n }\n }\n\n return answerMapPayload;\n }\n\n const downloadReport = (): void => {\n postMessage(\"risiko-track-download\");\n\n if (!state.tool) {\n return;\n }\n\n const answerMapPayload = payLoadSetup();\n\n setIsDownloading(true);\n setDownloadFailed(false);\n const filename = globalVariables.reportFileName ? globalVariables.reportFileName : \"rapport\";\n\n getReport(\n state.sessionId,\n state.tool,\n answerMapPayload\n ).then(\n docxBlob => saveAs(docxBlob, `${filename}.docx`)\n ).catch(\n () => setDownloadFailed(true)\n ).finally(\n () => setIsDownloading(false)\n );\n }\n\n const setEmailInput = (s: string): void => {\n setTempEmail(\"\")\n setSuccessEmail(false)\n setEmailState(state => ({\n ...state,\n toAddress: s\n }))\n }\n\n const finalizeEmailSending = (): void => {\n setTempEmail(emailState.toAddress)\n setEmailState(_ => ({\n answerMap: {},\n toAddress: \"\",\n }))\n setSuccessEmail(true);\n }\n\n const sendEmail = (): void => {\n postMessage(\"risiko-track-download\");\n\n if (!state.tool) {\n return;\n }\n\n const answerMapPayload = payLoadSetup();\n\n setIsSendingEmail(true);\n setSendingEmailFailed(false);\n const filename = globalVariables.reportFileName ? globalVariables.reportFileName : \"rapport\";\n\n sendReportEmail(\n state.sessionId,\n state.tool,\n filename,\n answerMapPayload,\n emailState.toAddress\n ).then(\n () => finalizeEmailSending()\n\n ).catch(\n () => setSendingEmailFailed(true)\n ).finally(\n () => setIsSendingEmail(false)\n );\n }\n\n return
\n
\n {globalVariables.receiptPageHeader &&\n

\n {globalVariables.receiptPageHeader}\n

\n }\n\n {globalVariables.receiptPageTeaser &&\n

\n {globalVariables.receiptPageTeaser}\n

\n }\n\n {globalVariables.receiptPageContent &&\n

\n {globalVariables.receiptPageContent}\n

\n }\n\n
\n \n {isDownloading && <>\n \n {globalVariables.downloadSpinnerTekst ? globalVariables.downloadSpinnerTekst : 'Downloader rapport...'}\n }\n {!isDownloading && <>\n \n {globalVariables.downloadRapportKnap ? globalVariables.downloadRapportKnap : 'Download rapport som word'}\n }\n \n {downloadFailed &&\n

\n {globalVariables.fejlBeskedVedDownload ? globalVariables.fejlBeskedVedDownload :\n 'Der skete en fejl under download af rapporten. Prøv igen senere, hvis downloaden bliver ved med at fejle.'}

\n }\n
\n
\n \n
\n setEmailInput(e.target.value)}>\n \n {isSendingEmail && <>\n \n {globalVariables.mailSpinnerTekst ? globalVariables.mailSpinnerTekst : 'Sender rapport...'}\n }\n {!isSendingEmail && <>\n {globalVariables.mailSendKnap ? globalVariables.mailSendKnap : 'Send'}\n }\n \n\n
\n\n {sendingEmailFailed &&\n

\n {globalVariables.fejlBeskedVedEmail ? globalVariables.fejlBeskedVedEmail :\n 'Der skete en fejl under sendingen af rapporten. Prøv igen senere, hvis det bliver ved med at fejle.'}

\n }\n\n {invalidEmail &&\n

{globalVariables.mailUgyldig ? globalVariables.mailUgyldig : 'Ugyldig e-mail.'}

\n }\n\n {successEmail &&\n
\n

{globalVariables.mailSucces ? globalVariables.mailSucces + ' ' : 'Rapporten er sendt til '}{globalVariables.visSendtEmail && {tempEmail}}

\n
\n }\n\n
\n
\n
\n {globalVariables.callCenterLink && globalVariables.callCenterBoxHeader && globalVariables.callCenterLinkTekst &&\n
\n

{globalVariables.callCenterBoxHeader}

\n \n {globalVariables.callCenterLinkTekst}\n \n
\n }\n {globalVariables.komGodtVidereLink && globalVariables.komGodtVidereBoxHeader && globalVariables.komGodtVidereLinkTekst &&\n
\n

{globalVariables.komGodtVidereBoxHeader}

\n \n {globalVariables.komGodtVidereLinkTekst}\n \n
\n }\n
\n\n
;\n};\n\nexport default Report;\n","import { AnswerMap } from \"../state/answers-state\";\n\nexport const replaceTokens = (text: string, answers: AnswerMap): string => {\n const tokenMatcher = /{{(.*?)}}/gm;\n const tokens = text.matchAll(tokenMatcher);\n\n if (!tokens) {\n return text;\n }\n\n for (const [token, selector] of tokens) {\n const [questionId, answer] = selector.split('.');\n const value = answers.get(questionId);\n\n if (!value) {\n continue;\n }\n\n const input = (value as Map).get(answer);\n if (!!input && input.length > 0) {\n text = text.replace(token, input);\n }\n }\n\n return text;\n};","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2021, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nlet defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = /[&<>\"']/g;\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\n\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: () => {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nconst nonWordAndColonTest = /[^\\w:]/g;\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n let prot;\n try {\n prot = decodeURIComponent(unescape(href))\n .replace(nonWordAndColonTest, '')\n .toLowerCase();\n } catch (e) {\n return null;\n }\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\n\nconst baseUrls = {};\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n base = baseUrls[' ' + base];\n const relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nconst noopTest = { exec: function noopTest() {} };\n\nfunction merge(obj) {\n let i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false,\n curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) { cells.shift(); }\n if (!cells[cells.length - 1].trim()) { cells.pop(); }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n// /c*$/ is vulnerable to REDOS.\n// invert: Remove suffix of non-c chars instead. Default falsey.\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n const l = str.length;\n let level = 0,\n i = 0;\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n}\n\n// copied from https://stackoverflow.com/a/5450113/806777\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n let result = '';\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape(text)\n };\n }\n}\n\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n const indentToCode = matchIndentToCode[1];\n\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n\n const [indentInNode] = matchIndentInNode;\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n })\n .join('\\n');\n}\n\n/**\n * Tokenizer\n */\nclass Tokenizer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap) {\n if (cap[0].length > 1) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n return { raw: '\\n' };\n }\n }\n\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text\n };\n }\n }\n\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text\n };\n }\n }\n\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ *> ?/gm, '');\n\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text\n };\n }\n }\n\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine,\n line, nextLine, rawLine, itemContents, endEarly;\n\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?: [^\\\\n]*)?(?:\\\\n|$))`);\n\n // Check if current bullet point can start a new List Item\n while (src) {\n endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])`);\n\n // Check if following lines should be included in List Item\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine;\n\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n\n // End list item if found start of new bullet\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) { // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) { // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else { // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) { // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n\n list.raw += raw;\n }\n\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n\n const l = list.items.length;\n\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose && list.items[i].tokens.some(t => t.type === 'space')) {\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer\n && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n return token;\n }\n }\n\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (cap) {\n const item = {\n type: 'table',\n header: splitCells(cap[1]).map(c => { return { text: c }; }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n\n let l = item.align.length;\n let i, j, k, row;\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(c => { return { text: c }; });\n }\n\n // parse child tokens inside headers and cells\n\n // header child tokens\n l = item.header.length;\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n }\n\n // cell child tokens\n l = item.rows.length;\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n const token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n const token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n }\n\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize\n ? 'text'\n : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize\n ? (this.options.sanitizer\n ? this.options.sanitizer(cap[0])\n : escape(cap[0]))\n : cap[0]\n };\n }\n }\n\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl))) {\n return;\n }\n\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n if (/^$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n let link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n if (!link || !link.href) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return;\n\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n\n const nextChar = match[1] || match[2] || '';\n\n if (!nextChar || (nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar)))) {\n const lLength = match[0].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0;\n\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = src.slice(1, lLength + match.index + rLength);\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n\n autolink(src, mangle) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n url(src, mangle) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n text = escape(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text\n }\n ]\n };\n }\n }\n\n inlineText(src, smartypants) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0])) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\n\nblock._label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def)\n .replace('label', block._label)\n .replace('title', block._title)\n .getRegex();\n\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */)\n .replace('bull', block.bullet)\n .getRegex();\n\nblock.list = edit(block.list)\n .replace(/bull/g, block.bullet)\n .replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))')\n .replace('def', '\\\\n+(?=' + block.def.source + ')')\n .getRegex();\n\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr'\n + '|track|ul';\nblock._comment = /|$)/;\nblock.html = edit(block.html, 'i')\n .replace('comment', block._comment)\n .replace('tag', block._tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\n\nblock.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.blockquote = edit(block.blockquote)\n .replace('paragraph', block.paragraph)\n .getRegex();\n\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n});\n\nblock.gfm.table = edit(block.gfm.table)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n\nblock.gfm.paragraph = edit(block._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' {0,3}#{1,6} ')\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)')\n .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit(\n '^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', block._comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n paragraph: edit(block.normal._paragraph)\n .replace('hr', block.hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', block.lheading)\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .getRegex()\n});\n\n/**\n * Inline-Level Grammar\n */\nconst inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment'\n + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^', // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex();\n\n// sequences em should skip over [title](link), `code`, \ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\n\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim)\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g')\n .replace(/punct/g, inline._punctuation)\n .getRegex();\n\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink)\n .replace('scheme', inline._scheme)\n .replace('email', inline._email)\n .getRegex();\n\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n\ninline.tag = edit(inline.tag)\n .replace('comment', inline._comment)\n .replace('attribute', inline._attribute)\n .getRegex();\n\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n\ninline.link = edit(inline.link)\n .replace('label', inline._label)\n .replace('href', inline._href)\n .replace('title', inline._title)\n .getRegex();\n\ninline.reflink = edit(inline.reflink)\n .replace('label', inline._label)\n .getRegex();\n\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g')\n .replace('reflink', inline.reflink)\n .replace('nolink', inline.nolink)\n .getRegex();\n\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', inline._label)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', inline._label)\n .getRegex()\n});\n\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n out += '&#' + ch + ';';\n }\n\n return out;\n}\n\n/**\n * Block Lexer\n */\nclass Lexer {\n constructor(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n\n const rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new Lexer(options);\n return lexer.lex(src);\n }\n\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n')\n .replace(/\\t/g, ' ');\n\n this.blockTokens(src, this.tokens);\n\n let next;\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n\n /**\n * Lexing\n */\n blockTokens(src, tokens = []) {\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n let token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.type) {\n tokens.push(token);\n }\n continue;\n }\n\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n\n inline(src, tokens) {\n this.inlineQueue.push({ src, tokens });\n }\n\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n\n // Mask out escaped em & strong delimiters\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // autolink\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(function(getStartIndex) {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) { startIndex = Math.min(startIndex, tempStart); }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass Renderer {\n constructor(options) {\n this.options = options || defaults;\n }\n\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/\\S*/)[0];\n if (this.options.highlight) {\n const out = this.options.highlight(code, lang);\n if (out != null && out !== code) {\n escaped = true;\n code = out;\n }\n }\n\n code = code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
'\n        + (escaped ? code : escape(code, true))\n        + '
\\n';\n }\n\n return '
'\n      + (escaped ? code : escape(code, true))\n      + '
\\n';\n }\n\n blockquote(quote) {\n return '
\\n' + quote + '
\\n';\n }\n\n html(html) {\n return html;\n }\n\n heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return ''\n + text\n + '\\n';\n }\n // ignore IDs\n return '' + text + '\\n';\n }\n\n hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n }\n\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul',\n startatt = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n\n listitem(text) {\n return '
  • ' + text + '
  • \\n';\n }\n\n checkbox(checked) {\n return ' ';\n }\n\n paragraph(text) {\n return '

    ' + text + '

    \\n';\n }\n\n table(header, body) {\n if (body) body = '' + body + '';\n\n return '\\n'\n + '\\n'\n + header\n + '\\n'\n + body\n + '
    \\n';\n }\n\n tablerow(content) {\n return '\\n' + content + '\\n';\n }\n\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align\n ? '<' + type + ' align=\"' + flags.align + '\">'\n : '<' + type + '>';\n return tag + content + '\\n';\n }\n\n // span level renderer\n strong(text) {\n return '' + text + '';\n }\n\n em(text) {\n return '' + text + '';\n }\n\n codespan(text) {\n return '' + text + '';\n }\n\n br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n\n del(text) {\n return '' + text + '';\n }\n\n link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n let out = '
    ';\n return out;\n }\n\n image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n if (href === null) {\n return text;\n }\n\n let out = '\"'' : '>';\n return out;\n }\n\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n\n em(text) {\n return text;\n }\n\n codespan(text) {\n return text;\n }\n\n del(text) {\n return text;\n }\n\n html(text) {\n return text;\n }\n\n text(text) {\n return text;\n }\n\n link(href, title, text) {\n return '' + text;\n }\n\n image(href, title, text) {\n return '' + text;\n }\n\n br() {\n return '';\n }\n}\n\n/**\n * Slugger generates header id\n */\nclass Slugger {\n constructor() {\n this.seen = {};\n }\n\n serialize(value) {\n return value\n .toLowerCase()\n .trim()\n // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '')\n // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '')\n .replace(/\\s/g, '-');\n }\n\n /**\n * Finds the next safe (unique) slug to use\n */\n getNextSafeSlug(originalSlug, isDryRun) {\n let slug = originalSlug;\n let occurenceAccumulator = 0;\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n return slug;\n }\n\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n slug(value, options = {}) {\n const slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass Parser {\n constructor(options) {\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new Parser(options);\n return parser.parse(tokens);\n }\n\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space': {\n continue;\n }\n case 'hr': {\n out += this.renderer.hr();\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(\n this.parseInline(token.tokens),\n token.depth,\n unescape(this.parseInline(token.tokens, this.textRenderer)),\n this.slugger);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token.text,\n token.lang,\n token.escaped);\n continue;\n }\n case 'table': {\n header = '';\n\n // header\n cell = '';\n l2 = token.header.length;\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(\n this.parseInline(token.header[j].tokens),\n { header: true, align: token.align[j] }\n );\n }\n header += this.renderer.tablerow(cell);\n\n body = '';\n l2 = token.rows.length;\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n\n cell = '';\n l3 = row.length;\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(\n this.parseInline(row[k].tokens),\n { header: false, align: token.align[k] }\n );\n }\n\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote': {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list': {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n\n body = '';\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n\n itemBody = '';\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html': {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n case 'text': {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '',\n i,\n token,\n ret;\n\n const l = tokens.length;\n for (i = 0; i < l; i++) {\n token = tokens[i];\n\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({ parser: this }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token.text);\n break;\n }\n case 'html': {\n out += renderer.html(token.text);\n break;\n }\n case 'link': {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n case 'image': {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n case 'strong': {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'em': {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token.text);\n break;\n }\n case 'br': {\n out += renderer.br();\n break;\n }\n case 'del': {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n case 'text': {\n out += renderer.text(token.text);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\n/**\n * Marked\n */\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n const highlight = opt.highlight;\n let tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n const done = function(err) {\n let out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n\n return err\n ? callback(err)\n : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n\n if (!tokens.length) return done();\n\n let pending = 0;\n marked.walkTokens(tokens, function(token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(() => {\n highlight(token.text, token.lang, function(err, code) {\n if (err) {\n return done(err);\n }\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n const tokens = Lexer.lex(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parse(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n}\n\n/**\n * Options\n */\n\nmarked.options =\nmarked.setOptions = function(opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\n\nmarked.defaults = defaults;\n\n/**\n * Use Extension\n */\n\nmarked.use = function(...args) {\n const opts = merge({}, ...args);\n const extensions = marked.defaults.extensions || { renderers: {}, childTokens: {} };\n let hasExtensions;\n\n args.forEach((pack) => {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if (ext.renderer) { // Renderer extensions\n const prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function(...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (ext.tokenizer) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n }\n\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = marked.defaults.renderer || new Renderer();\n for (const prop in pack.renderer) {\n const prevRenderer = renderer[prop];\n // Replace renderer with func to run extension, but fall back if false\n renderer[prop] = (...args) => {\n let ret = pack.renderer[prop].apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret;\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = marked.defaults.tokenizer || new Tokenizer();\n for (const prop in pack.tokenizer) {\n const prevTokenizer = tokenizer[prop];\n // Replace tokenizer with func to run extension, but fall back if false\n tokenizer[prop] = (...args) => {\n let ret = pack.tokenizer[prop].apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = marked.defaults.walkTokens;\n opts.walkTokens = function(token) {\n pack.walkTokens.call(this, token);\n if (walkTokens) {\n walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n\n/**\n * Run callback for every token\n */\n\nmarked.walkTokens = function(tokens, callback) {\n for (const token of tokens) {\n callback.call(marked, token);\n switch (token.type) {\n case 'table': {\n for (const cell of token.header) {\n marked.walkTokens(cell.tokens, callback);\n }\n for (const row of token.rows) {\n for (const cell of row) {\n marked.walkTokens(cell.tokens, callback);\n }\n }\n break;\n }\n case 'list': {\n marked.walkTokens(token.items, callback);\n break;\n }\n default: {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) { // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function(childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n }\n};\n\n/**\n * Parse Inline\n */\nmarked.parseInline = function(src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n const tokens = Lexer.lexInline(src, opt);\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (opt.silent) {\n return '

    An error occurred:

    '\n        + escape(e.message + '', true)\n        + '
    ';\n }\n throw e;\n }\n};\n\n/**\n * Expose\n */\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\n\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = Parser.parse;\nconst lexer = Lexer.lex;\n\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","import { marked, Renderer } from \"marked\";\n\nexport const parseMarkdown = (markdown: string): string => {\n const renderer = new Renderer();\n\n renderer.heading = (text, level) => {\n let classes = '';\n\n switch (level) {\n case 1:\n classes = 'text-xl text-blue font-bold';\n break;\n case 2:\n classes = 'text-lg text-blue font-bold';\n break;\n default:\n classes = 'text-base text-blue font-bold';\n break;\n }\n\n return `${text}`;\n };\n\n renderer.list = (body, orderered) => {\n const listTag = orderered ? 'ol' : 'ul';\n const classes = orderered ? 'list-decimal list-inside' : 'list-disc list-inside';\n\n return `<${listTag} class=\"${classes}\">${body}`;\n };\n\n renderer.listitem = (text) => {\n return `
  • ${text}
  • `;\n };\n\n renderer.paragraph = (text) => {\n return `

    ${text}

    `\n };\n\n return marked.parse(markdown, {\n renderer: renderer\n });\n}","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HelpTextProps, Validation} from '@react-types/shared';\nimport {HTMLAttributes} from 'react';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\ninterface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/formatters';\nexport * from './src/core';\nexport * from './src/error';\nexport default IntlMessageFormat;\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport type LocalizedStrings = {\n [lang: string]: {\n [key: string]: string\n }\n};\n\n/**\n * Stores a mapping of localized strings. Can be used to find the\n * closest available string for a given locale.\n */\nexport class MessageDictionary {\n private messages: LocalizedStrings;\n private defaultLocale: string;\n\n constructor(messages: LocalizedStrings, defaultLocale: string = 'en-US') {\n // Clone messages so we don't modify the original object.\n this.messages = {...messages};\n this.defaultLocale = defaultLocale;\n }\n\n getStringForLocale(key: string, locale: string) {\n let strings = this.messages[locale];\n if (!strings) {\n strings = getStringsForLocale(locale, this.messages, this.defaultLocale);\n this.messages[locale] = strings;\n }\n\n let string = strings[key];\n if (!string) {\n throw new Error(`Could not find intl message ${key} in ${locale} locale`);\n }\n\n return string;\n }\n}\n\nfunction getStringsForLocale(locale: string, strings: LocalizedStrings, defaultLocale = 'en-US') {\n // If there is an exact match, use it.\n if (strings[locale]) {\n return strings[locale];\n }\n\n // Attempt to find the closest match by language.\n // For example, if the locale is fr-CA (French Canadian), but there is only\n // an fr-FR (France) set of strings, use that.\n // This could be replaced with Intl.LocaleMatcher once it is supported.\n // https://github.com/tc39/proposal-intl-localematcher\n let language = getLanguage(locale);\n for (let key in strings) {\n if (key.startsWith(language + '-')) {\n return strings[key];\n }\n }\n\n // Nothing close, use english.\n return strings[defaultLocale];\n}\n\nfunction getLanguage(locale: string) {\n // @ts-ignore\n if (Intl.Locale) {\n // @ts-ignore\n return new Intl.Locale(locale).language;\n }\n\n return locale.split('-')[0];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FormatXMLElementFn, PrimitiveType} from 'intl-messageformat/src/formatters';\nimport IntlMessageFormat from 'intl-messageformat';\nimport {MessageDictionary} from './MessageDictionary';\n\n/**\n * Formats ICU Message strings to create localized strings from a MessageDictionary.\n */\nexport class MessageFormatter {\n private locale: string;\n private messages: MessageDictionary;\n private cache: {[key: string]: IntlMessageFormat};\n\n constructor(locale: string, messages: MessageDictionary) {\n this.locale = locale;\n this.messages = messages;\n this.cache = {};\n }\n\n format(key: string, variables: Record> | undefined) {\n let message = this.cache[key];\n if (!message) {\n let msg = this.messages.getStringForLocale(key, this.locale);\n if (!msg) {\n throw new Error(`Could not find intl message ${key} in ${this.locale} locale`);\n }\n\n message = new IntlMessageFormat(msg, this.locale);\n this.cache[key] = message;\n }\n let varCopy: Record> | undefined;\n if (variables) {\n varCopy = Object.keys(variables).reduce((acc, key) => {\n acc[key] = variables[key] == null ? false : variables[key];\n return acc;\n }, {});\n }\n\n return message.format(varCopy);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Data from https://github.com/unicode-cldr/cldr-core/blob/master/supplemental/weekData.json\n// Locales starting on Sunday have been removed for compression.\nexport const weekStartData = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AT: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BY: 1,\n CH: 1,\n CL: 1,\n CM: 1,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n HR: 1,\n HU: 1,\n IE: 1,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JO: 6,\n KG: 1,\n KW: 6,\n KZ: 1,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MK: 1,\n MN: 1,\n MQ: 1,\n MV: 5,\n MY: 1,\n NL: 1,\n NO: 1,\n NZ: 1,\n OM: 6,\n PL: 1,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SD: 6,\n SE: 1,\n SI: 1,\n SK: 1,\n SM: 1,\n SY: 6,\n TJ: 1,\n TM: 1,\n TR: 1,\n UA: 1,\n UY: 1,\n UZ: 1,\n VA: 1,\n VN: 1,\n XK: 1\n};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyTime} from './types';\nimport {CalendarDate, CalendarDateTime, ZonedDateTime} from './CalendarDate';\nimport {fromAbsolute, toAbsolute, toCalendar, toCalendarDate} from './conversion';\nimport {weekStartData} from './weekStartData';\n\ntype DateValue = CalendarDate | CalendarDateTime | ZonedDateTime;\n\nexport function isSameDay(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\nexport function isSameMonth(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\nexport function isSameYear(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n a = startOfYear(a);\n b = startOfYear(b);\n return a.era === b.era && a.year === b.year;\n}\n\nexport function isEqualDay(a: DateValue, b: DateValue): boolean {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\nexport function isEqualMonth(a: DateValue, b: DateValue): boolean {\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\nexport function isEqualYear(a: DateValue, b: DateValue): boolean {\n a = startOfYear(a);\n b = startOfYear(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\n\nexport function isToday(date: DateValue, timeZone: string): boolean {\n return isSameDay(date, today(timeZone));\n}\n\nexport function getDayOfWeek(date: DateValue, locale: string) {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n return dayOfWeek;\n}\n\nexport function now(timeZone: string): ZonedDateTime {\n return fromAbsolute(Date.now(), timeZone);\n}\n\nexport function today(timeZone: string): CalendarDate {\n return toCalendarDate(now(timeZone));\n}\n\nexport function compareDate(a: AnyCalendarDate, b: AnyCalendarDate): number {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\n\nexport function compareTime(a: AnyTime, b: AnyTime): number {\n return timeToMs(a) - timeToMs(b);\n}\n\nfunction timeToMs(a: AnyTime): number {\n return a.hour * 60 * 60 * 1000 + a.minute * 60 * 1000 + a.second * 1000 + a.millisecond;\n}\n\nexport function getHoursInDay(a: CalendarDate, timeZone: string): number {\n let ms = toAbsolute(a, timeZone);\n let tomorrow = a.add({days: 1});\n let tomorrowMs = toAbsolute(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\n\nlet localTimeZone = null;\nexport function getLocalTimeZone(): string {\n // TODO: invalidate this somehow?\n if (localTimeZone == null) {\n localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n return localTimeZone;\n}\n\nexport function startOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function startOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function startOfMonth(date: CalendarDate): CalendarDate;\nexport function startOfMonth(date: DateValue): DateValue;\nexport function startOfMonth(date: DateValue) {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({days: date.day - 1});\n}\n\nexport function endOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function endOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function endOfMonth(date: CalendarDate): CalendarDate;\nexport function endOfMonth(date: DateValue): DateValue;\nexport function endOfMonth(date: DateValue) {\n return date.add({days: date.calendar.getDaysInMonth(date) - date.day});\n}\n\nexport function startOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function startOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function startOfYear(date: CalendarDate): CalendarDate;\nexport function startOfYear(date: DateValue): DateValue;\nexport function startOfYear(date: DateValue) {\n return startOfMonth(date.subtract({months: date.month - 1}));\n}\n\nexport function endOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function endOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function endOfYear(date: CalendarDate): CalendarDate;\nexport function endOfYear(date: DateValue): DateValue;\nexport function endOfYear(date: DateValue) {\n return endOfMonth(date.add({months: date.calendar.getMonthsInYear(date) - date.month}));\n}\n\nexport function getMinimumMonthInYear(date: AnyCalendarDate) {\n if (date.calendar.getMinimumMonthInYear) {\n return date.calendar.getMinimumMonthInYear(date);\n }\n\n return 1;\n}\n\nexport function getMinimumDayInMonth(date: AnyCalendarDate) {\n if (date.calendar.getMinimumDayInMonth) {\n return date.calendar.getMinimumDayInMonth(date);\n }\n\n return 1;\n}\n\nexport function startOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function startOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function startOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function startOfWeek(date: DateValue, locale: string): DateValue;\nexport function startOfWeek(date: DateValue, locale: string) {\n let dayOfWeek = getDayOfWeek(date, locale);\n return date.subtract({days: dayOfWeek});\n}\n\nexport function endOfWeek(date: ZonedDateTime, locale: string): ZonedDateTime;\nexport function endOfWeek(date: CalendarDateTime, locale: string): CalendarDateTime;\nexport function endOfWeek(date: CalendarDate, locale: string): CalendarDate;\nexport function endOfWeek(date: DateValue, locale: string) {\n return startOfWeek(date, locale).add({days: 6});\n}\n\nconst cachedRegions = new Map();\n\nfunction getRegion(locale: string) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n cachedRegions.set(locale, region);\n }\n return region;\n }\n\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? null : part;\n}\n\nfunction getWeekStart(locale: string) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = getRegion(locale);\n return weekStartData[region] || 0;\n}\n\nexport function getWeeksInMonth(date: DateValue, locale: string) {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil((getDayOfWeek(startOfMonth(date), locale) + days) / 7);\n}\n\nexport function minDate
    (a: A, b: B): A | B {\n return a.compare(b) <= 0 ? a : b;\n}\n\nexport function maxDate(a: A, b: B): A | B {\n return a.compare(b) >= 0 ? a : b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\nexport function isWeekend(date: DateValue, locale: string) {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\nexport function isWeekday(date: DateValue, locale: string) {\n return !isWeekend(date, locale);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate, CalendarDateTime} from './CalendarDate';\n\nexport type Mutable = {\n -readonly[P in keyof T]: T[P]\n};\n\nexport function mod(amount: number, numerator: number): number {\n return amount - numerator * Math.floor(amount / numerator);\n}\n\nexport function copy(date: CalendarDate): Mutable {\n if (date.era) {\n return new CalendarDate(date.calendar, date.era, date.year, date.month, date.day);\n } else {\n return new CalendarDate(date.calendar, date.year, date.month, date.day);\n }\n}\n\nexport function copyDateTime(date: CalendarDateTime): Mutable {\n if (date.era) {\n return new CalendarDateTime(date.calendar, date.era, date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n } else {\n return new CalendarDateTime(date.calendar, date.year, date.month, date.day, date.hour, date.minute, date.second);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, Calendar} from '../types';\nimport {CalendarDate} from '../CalendarDate';\nimport {mod, Mutable} from '../utils';\n\nconst EPOCH = 1721426; // 001/01/03 Julian C.E.\nexport function gregorianToJulianDay(year: number, month: number, day: number): number {\n let y1 = year - 1;\n let monthOffset = -2;\n if (month <= 2) {\n monthOffset = 0;\n } else if (isLeapYear(year)) {\n monthOffset = -1;\n }\n\n return (\n EPOCH -\n 1 +\n 365 * y1 +\n Math.floor(y1 / 4) -\n Math.floor(y1 / 100) +\n Math.floor(y1 / 400) +\n Math.floor((367 * month - 362) / 12 + monthOffset + day)\n );\n}\n\nexport function isLeapYear(year: number): boolean {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nconst daysInMonth = {\n standard: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n leapyear: [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n};\n\nexport class GregorianCalendar implements Calendar {\n identifier = 'gregory';\n\n fromJulianDay(jd: number): CalendarDate {\n let jd0 = jd;\n let depoch = jd0 - EPOCH;\n let quadricent = Math.floor(depoch / 146097);\n let dqc = mod(depoch, 146097);\n let cent = Math.floor(dqc / 36524);\n let dcent = mod(dqc, 36524);\n let quad = Math.floor(dcent / 1461);\n let dquad = mod(dcent, 1461);\n let yindex = Math.floor(dquad / 365);\n\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);\n let yearDay = jd0 - gregorianToJulianDay(year, 1, 1);\n let leapAdj = 2;\n if (jd0 < gregorianToJulianDay(year, 3, 1)) {\n leapAdj = 0;\n } else if (isLeapYear(year)) {\n leapAdj = 1;\n }\n let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);\n let day = jd0 - gregorianToJulianDay(year, month, 1) + 1;\n\n return new CalendarDate(this, year, month, day);\n }\n\n toJulianDay(date: AnyCalendarDate): number {\n return gregorianToJulianDay(date.year, date.month, date.day);\n }\n\n getDaysInMonth(date: AnyCalendarDate): number {\n return daysInMonth[isLeapYear(date.year) ? 'leapyear' : 'standard'][date.month - 1];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getMonthsInYear(date: AnyCalendarDate): number {\n return 12;\n }\n\n getDaysInYear(date: AnyCalendarDate): number {\n return isLeapYear(date.year) ? 366 : 365;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getYearsInEra(date: AnyCalendarDate): number {\n return 9999;\n }\n\n getEras() {\n return ['BC', 'AD'];\n }\n\n getYearsToAdd(date: Mutable, years: number) {\n return date.era === 'BC' ? -years : years;\n }\n\n balanceDate(date: Mutable) {\n if (date.year <= 0) {\n date.era = date.era === 'BC' ? 'AD' : 'BC';\n date.year = 1 - date.year;\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {getLocalTimeZone} from './queries';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime) {\n date = toCalendar(date, new GregorianCalendar());\n return epochFromParts(date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string) {\n // Fast path: for local timezone, use native Date.\n if (timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n return {\n year: namedParts.era === 'BC' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n date.setFullYear(dateTime.year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\nexport function toTime(dateTime: CalendarDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\nexport function toCalendar(date: T, calendar: Calendar): T {\n if (date.calendar.identifier === calendar.identifier) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n return copy;\n}\n\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation) {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime) {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\nexport function toLocalTimeZone(date: ZonedDateTime) {\n return toTimeZone(date, getLocalTimeZone());\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyTime, CycleOptions, CycleTimeOptions, DateField, DateFields, Disambiguation, Duration, TimeField, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {epochFromDate, fromAbsolute, toAbsolute, toCalendar, toCalendarDateTime} from './conversion';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {Mutable} from './utils';\n\nconst ONE_HOUR = 3600000;\n\nexport function add(date: CalendarDateTime, duration: Duration): CalendarDateTime;\nexport function add(date: CalendarDate, duration: Duration): CalendarDate;\nexport function add(date: CalendarDate | CalendarDateTime, duration: Duration): CalendarDate | CalendarDateTime;\nexport function add(date: CalendarDate | CalendarDateTime, duration: Duration) {\n let mutableDate: Mutable = date.copy();\n let days = 'hour' in date ? addTimeFields(date, duration) : 0;\n\n addYears(mutableDate, duration.years || 0);\n if (mutableDate.calendar.balanceYearMonth) {\n mutableDate.calendar.balanceYearMonth(mutableDate, date);\n }\n\n mutableDate.month += duration.months || 0;\n\n balanceYearMonth(mutableDate);\n constrainMonthDay(mutableDate);\n\n mutableDate.day += (duration.weeks || 0) * 7;\n mutableDate.day += duration.days || 0;\n mutableDate.day += days;\n\n balanceDay(mutableDate);\n\n if (mutableDate.calendar.balanceDate) {\n mutableDate.calendar.balanceDate(mutableDate);\n }\n\n return mutableDate;\n}\n\nfunction addYears(date: Mutable, years: number) {\n if (date.calendar.getYearsToAdd) {\n years = date.calendar.getYearsToAdd(date, years);\n }\n\n date.year += years;\n}\n\nfunction balanceYearMonth(date: Mutable) {\n while (date.month < 1) {\n addYears(date, -1);\n date.month += date.calendar.getMonthsInYear(date);\n }\n\n let monthsInYear = 0;\n while (date.month > (monthsInYear = date.calendar.getMonthsInYear(date))) {\n date.month -= monthsInYear;\n addYears(date, 1);\n }\n}\n\nfunction balanceDay(date: Mutable) {\n while (date.day < 1) {\n date.month--;\n balanceYearMonth(date);\n date.day += date.calendar.getDaysInMonth(date);\n }\n\n while (date.day > date.calendar.getDaysInMonth(date)) {\n date.day -= date.calendar.getDaysInMonth(date);\n date.month++;\n balanceYearMonth(date);\n }\n}\n\nfunction constrainMonthDay(date: Mutable) {\n date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));\n date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));\n}\n\nexport function constrain(date: Mutable) {\n if (date.calendar.constrainDate) {\n date.calendar.constrainDate(date);\n }\n\n date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));\n constrainMonthDay(date);\n}\n\nexport function invertDuration(duration: Duration): Duration {\n let inverseDuration = {};\n for (let key in duration) {\n if (typeof duration[key] === 'number') {\n inverseDuration[key] = -duration[key];\n }\n }\n\n return inverseDuration;\n}\n\nexport function subtract(date: CalendarDateTime, duration: Duration): CalendarDateTime;\nexport function subtract(date: CalendarDate, duration: Duration): CalendarDate;\nexport function subtract(date: CalendarDate | CalendarDateTime, duration: Duration): CalendarDate | CalendarDateTime {\n return add(date, invertDuration(duration));\n}\n\nexport function set(date: CalendarDateTime, fields: DateFields): CalendarDateTime;\nexport function set(date: CalendarDate, fields: DateFields): CalendarDate;\nexport function set(date: CalendarDate | CalendarDateTime, fields: DateFields) {\n let mutableDate: Mutable = date.copy();\n\n if (fields.era != null) {\n mutableDate.era = fields.era;\n }\n\n if (fields.year != null) {\n mutableDate.year = fields.year;\n }\n\n if (fields.month != null) {\n mutableDate.month = fields.month;\n }\n\n if (fields.day != null) {\n mutableDate.day = fields.day;\n }\n\n constrain(mutableDate);\n return mutableDate;\n}\n\nexport function setTime(value: CalendarDateTime, fields: TimeFields): CalendarDateTime;\nexport function setTime(value: Time, fields: TimeFields): Time;\nexport function setTime(value: Time | CalendarDateTime, fields: TimeFields) {\n let mutableValue: Mutable