{"version":3,"file":"app-fc4d8637760c2caf195a.js","mappings":"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AAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,cAAc,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,QAAU,CAAC,EAAE,cAAgB,CAAC,SAAS,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,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","sources":["webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/dist/core.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/dist/locale-data/en.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/dist/locale-data/es.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/dist/locale-data/ses.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/dist/locale-data/ sync en%7Ces","webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/dist/polyfill.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-pluralrules/polyfill.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/dist/core.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/dist/locale-data/en.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/dist/locale-data/es.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/dist/locale-data/ses.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/dist/locale-data/ sync en%7Ces","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/dist/polyfill.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-relativetimeformat/polyfill.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/diff.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/aliases.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/parentLocales.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/polyfill-utils.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/get-canonical-locales.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/resolve-locale.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/units.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/number-types.js","webpack://numu-website-v2/./node_modules/@formatjs/intl-utils/lib/invariant.js","webpack://numu-website-v2/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://numu-website-v2/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://numu-website-v2/./node_modules/accessible-nprogress/dist/accessible-nprogress.js","webpack://numu-website-v2/./node_modules/browser-lang/dist/index.js","webpack://numu-website-v2/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://numu-website-v2/./node_modules/gatsby-react-router-scroll/index.js","webpack://numu-website-v2/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://numu-website-v2/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://numu-website-v2/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://numu-website-v2/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://numu-website-v2/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://numu-website-v2/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://numu-website-v2/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://numu-website-v2/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://numu-website-v2/./.cache/api-runner-browser-plugins.js","webpack://numu-website-v2/./.cache/api-runner-browser.js","webpack://numu-website-v2/./.cache/emitter.js","webpack://numu-website-v2/./node_modules/mitt/dist/mitt.es.js","webpack://numu-website-v2/./.cache/normalize-page-path.js","webpack://numu-website-v2/./.cache/find-path.js","webpack://numu-website-v2/./.cache/static-query.js","webpack://numu-website-v2/./.cache/gatsby-browser-entry.js","webpack://numu-website-v2/./.cache/prefetch.js","webpack://numu-website-v2/./.cache/loader.js","webpack://numu-website-v2/./.cache/head/components/fire-callback-in-effect.js","webpack://numu-website-v2/./.cache/head/constants.js","webpack://numu-website-v2/./.cache/head/utils.js","webpack://numu-website-v2/./.cache/head/head-export-handler-for-browser.js","webpack://numu-website-v2/./.cache/page-renderer.js","webpack://numu-website-v2/./.cache/route-announcer-props.js","webpack://numu-website-v2/./.cache/navigation.js","webpack://numu-website-v2/./node_modules/shallow-compare/es/index.js","webpack://numu-website-v2/./.cache/ensure-resources.js","webpack://numu-website-v2/./.cache/production-app.js","webpack://numu-website-v2/./.cache/public-page-renderer-prod.js","webpack://numu-website-v2/./.cache/public-page-renderer.js","webpack://numu-website-v2/./.cache/react-dom-utils.js","webpack://numu-website-v2/./.cache/react-lifecycles-compat.js","webpack://numu-website-v2/./.cache/redirect-utils.js","webpack://numu-website-v2/./.cache/register-service-worker.js","webpack://numu-website-v2/./.cache/strip-prefix.js","webpack://numu-website-v2/./src/components/query-wrapper/index.js","webpack://numu-website-v2/./gatsby-browser.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-breakpoints/BreakpointProvider.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-breakpoints/constants.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-breakpoints/gatsby-browser.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/gatsby-browser.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/intl-context.js","webpack://numu-website-v2/./node_modules/intl-messageformat-parser/lib/types.js","webpack://numu-website-v2/./node_modules/intl-messageformat-parser/lib/parser.js","webpack://numu-website-v2/./node_modules/intl-messageformat-parser/lib/normalize.js","webpack://numu-website-v2/./node_modules/intl-messageformat-parser/lib/index.js","webpack://numu-website-v2/./node_modules/intl-format-cache/lib/index.js","webpack://numu-website-v2/./node_modules/intl-messageformat-parser/lib/skeleton.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/intl-messageformat/lib/formatters.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/intl-messageformat/lib/core.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/intl-messageformat/lib/index.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/utils.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/injectIntl.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/createFormattedComponent.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/useIntl.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/number.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/relativeTime.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/dateTime.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/plural.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/message.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/list.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/formatters/displayName.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/provider.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/relative.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/plural.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/message.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/components/html-message.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/node_modules/react-intl/lib/index.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-intl/wrap-page.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://numu-website-v2/./node_modules/gatsby-plugin-nprogress/gatsby-browser.js","webpack://numu-website-v2/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://numu-website-v2/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://numu-website-v2/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://numu-website-v2/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://numu-website-v2/./node_modules/invariant/browser.js","webpack://numu-website-v2/./node_modules/react-is/cjs/react-is.production.min.js","webpack://numu-website-v2/./node_modules/react-is/index.js","webpack://numu-website-v2/./node_modules/react-query/es/core/focusManager.js","webpack://numu-website-v2/./node_modules/react-query/es/core/logger.js","webpack://numu-website-v2/./node_modules/react-query/es/core/notifyManager.js","webpack://numu-website-v2/./node_modules/react-query/es/core/onlineManager.js","webpack://numu-website-v2/./node_modules/react-query/es/core/query.js","webpack://numu-website-v2/./node_modules/react-query/es/core/queryCache.js","webpack://numu-website-v2/./node_modules/react-query/es/core/mutation.js","webpack://numu-website-v2/./node_modules/react-query/es/core/mutationCache.js","webpack://numu-website-v2/./node_modules/react-query/es/core/infiniteQueryBehavior.js","webpack://numu-website-v2/./node_modules/react-query/es/core/queryClient.js","webpack://numu-website-v2/./node_modules/react-query/es/core/retryer.js","webpack://numu-website-v2/./node_modules/react-query/es/core/subscribable.js","webpack://numu-website-v2/./node_modules/react-query/es/core/utils.js","webpack://numu-website-v2/./node_modules/react-query/es/react/reactBatchedUpdates.js","webpack://numu-website-v2/./node_modules/react-query/es/react/setBatchUpdatesFn.js","webpack://numu-website-v2/./node_modules/react-query/es/react/logger.js","webpack://numu-website-v2/./node_modules/react-query/es/react/setLogger.js","webpack://numu-website-v2/./node_modules/react-query/es/react/QueryClientProvider.js","webpack://numu-website-v2/./node_modules/react-query/es/core/queryObserver.js","webpack://numu-website-v2/./node_modules/react-query/es/react/QueryErrorResetBoundary.js","webpack://numu-website-v2/./node_modules/react-query/es/react/useQuery.js","webpack://numu-website-v2/./node_modules/react-query/es/react/useBaseQuery.js","webpack://numu-website-v2/./node_modules/react-query/es/react/utils.js","webpack://numu-website-v2/./node_modules/shallow-equal/objects/index.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/extends.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://numu-website-v2/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://numu-website-v2/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://numu-website-v2/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://numu-website-v2/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar intl_utils_1 = require(\"@formatjs/intl-utils\");\nfunction validateInstance(instance, method) {\n if (!(instance instanceof PluralRules)) {\n throw new TypeError(\"Method Intl.PluralRules.prototype.\" + method + \" called on incompatible receiver \" + String(instance));\n }\n}\n/**\n * https://tc39.es/ecma402/#sec-torawprecision\n * @param x\n * @param minPrecision\n * @param maxPrecision\n */\nfunction toRawPrecision(x, minPrecision, maxPrecision) {\n var m = x.toPrecision(maxPrecision);\n if (~m.indexOf('.') && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, m.length - 1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n return m.slice(0, m.length - 1);\n }\n }\n return m;\n}\n/**\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x\n * @param minInteger\n * @param minFraction\n * @param maxFraction\n */\nfunction toRawFixed(x, minInteger, minFraction, maxFraction) {\n var cut = maxFraction - minFraction;\n var m = x.toFixed(maxFraction);\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, m.length - 1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, m.length - 1);\n }\n var int = m.split('.')[0].length;\n if (int < minInteger) {\n var z = '';\n for (; z.length < minInteger - int; z += '0')\n ;\n m = z + m;\n }\n return m;\n}\nfunction formatNumericToString(internalSlotMap, pl, x) {\n var minimumSignificantDigits = intl_utils_1.getInternalSlot(internalSlotMap, pl, 'minimumSignificantDigits');\n var maximumSignificantDigits = intl_utils_1.getInternalSlot(internalSlotMap, pl, 'maximumSignificantDigits');\n if (minimumSignificantDigits !== undefined &&\n maximumSignificantDigits !== undefined) {\n return toRawPrecision(x, minimumSignificantDigits, maximumSignificantDigits);\n }\n return toRawFixed(x, intl_utils_1.getInternalSlot(internalSlotMap, pl, 'minimumIntegerDigits'), intl_utils_1.getInternalSlot(internalSlotMap, pl, 'minimumFractionDigits'), intl_utils_1.getInternalSlot(internalSlotMap, pl, 'maximumFractionDigits'));\n}\nvar PluralRules = /** @class */ (function () {\n function PluralRules(locales, options) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof PluralRules ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.PluralRules must be called with 'new'\");\n }\n var requestedLocales = intl_utils_1.getCanonicalLocales(locales);\n var opt = Object.create(null);\n var opts = options === undefined ? Object.create(null) : intl_utils_1.toObject(options);\n intl_utils_1.setInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'initializedPluralRules', true);\n var matcher = intl_utils_1.getOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n intl_utils_1.setInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'type', intl_utils_1.getOption(opts, 'type', 'string', ['cardinal', 'ordinal'], 'cardinal'));\n intl_utils_1.setNumberFormatDigitOptions(PluralRules.__INTERNAL_SLOT_MAP__, this, opts, 0, 3);\n var r = intl_utils_1.createResolveLocale(PluralRules.getDefaultLocale)(PluralRules.availableLocales, requestedLocales, opt, PluralRules.relevantExtensionKeys, PluralRules.localeData);\n intl_utils_1.setInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'locale', r.locale);\n }\n PluralRules.prototype.resolvedOptions = function () {\n var _this = this;\n validateInstance(this, 'resolvedOptions');\n var opts = Object.create(null);\n opts.locale = intl_utils_1.getInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'locale');\n opts.type = intl_utils_1.getInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'type');\n [\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n ].forEach(function (field) {\n var val = intl_utils_1.getInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, _this, field);\n if (val !== undefined) {\n opts[field] = val;\n }\n });\n opts.pluralCategories = __spreadArrays(PluralRules.localeData[opts.locale].categories[opts.type]);\n return opts;\n };\n PluralRules.prototype.select = function (val) {\n validateInstance(this, 'select');\n var locale = intl_utils_1.getInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'locale');\n var type = intl_utils_1.getInternalSlot(PluralRules.__INTERNAL_SLOT_MAP__, this, 'type');\n return PluralRules.localeData[locale].fn(formatNumericToString(PluralRules.__INTERNAL_SLOT_MAP__, this, Math.abs(Number(val))), type == 'ordinal');\n };\n PluralRules.prototype.toString = function () {\n return '[object Intl.PluralRules]';\n };\n PluralRules.supportedLocalesOf = function (locales, options) {\n return intl_utils_1.supportedLocales(PluralRules.availableLocales, intl_utils_1.getCanonicalLocales(locales), options);\n };\n PluralRules.__addLocaleData = function () {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n var _loop_1 = function (datum) {\n var availableLocales = Object.keys(__spreadArrays(datum.availableLocales, Object.keys(datum.aliases), Object.keys(datum.parentLocales)).reduce(function (all, k) {\n all[k] = true;\n return all;\n }, {}));\n availableLocales.forEach(function (locale) {\n try {\n PluralRules.localeData[locale] = intl_utils_1.unpackData(locale, datum);\n }\n catch (e) {\n if (intl_utils_1.isMissingLocaleDataError(e)) {\n // If we just don't have data for certain locale, that's ok\n return;\n }\n throw e;\n }\n });\n };\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var datum = data_1[_a];\n _loop_1(datum);\n }\n PluralRules.availableLocales = Object.keys(PluralRules.localeData);\n if (!PluralRules.__defaultLocale) {\n PluralRules.__defaultLocale = PluralRules.availableLocales[0];\n }\n };\n PluralRules.getDefaultLocale = function () {\n return PluralRules.__defaultLocale;\n };\n PluralRules.localeData = {};\n PluralRules.availableLocales = [];\n PluralRules.__defaultLocale = 'en';\n PluralRules.relevantExtensionKeys = [];\n PluralRules.polyfilled = true;\n PluralRules.__INTERNAL_SLOT_MAP__ = new WeakMap();\n return PluralRules;\n}());\nexports.PluralRules = PluralRules;\ntry {\n // https://github.com/tc39/test262/blob/master/test/intl402/PluralRules/length.js\n Object.defineProperty(PluralRules, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(PluralRules.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(PluralRules.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (ex) {\n // Meta fixes for test262\n}\n//# sourceMappingURL=core.js.map","/* @generated */\n// prettier-ignore\nif (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {\n Intl.PluralRules.__addLocaleData({\"data\":{\"en\":{\"categories\":{\"cardinal\":[\"one\",\"other\"],\"ordinal\":[\"one\",\"two\",\"few\",\"other\"]},\"fn\":function(n, ord) {\n var s = String(n).split('.'), v0 = !s[1], t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);\n if (ord) return n10 == 1 && n100 != 11 ? 'one'\n : n10 == 2 && n100 != 12 ? 'two'\n : n10 == 3 && n100 != 13 ? 'few'\n : 'other';\n return n == 1 && v0 ? 'one' : 'other';\n}}},\"aliases\":{},\"parentLocales\":{\"en-150\":\"en-001\",\"en-AG\":\"en-001\",\"en-AI\":\"en-001\",\"en-AU\":\"en-001\",\"en-BB\":\"en-001\",\"en-BM\":\"en-001\",\"en-BS\":\"en-001\",\"en-BW\":\"en-001\",\"en-BZ\":\"en-001\",\"en-CA\":\"en-001\",\"en-CC\":\"en-001\",\"en-CK\":\"en-001\",\"en-CM\":\"en-001\",\"en-CX\":\"en-001\",\"en-CY\":\"en-001\",\"en-DG\":\"en-001\",\"en-DM\":\"en-001\",\"en-ER\":\"en-001\",\"en-FJ\":\"en-001\",\"en-FK\":\"en-001\",\"en-FM\":\"en-001\",\"en-GB\":\"en-001\",\"en-GD\":\"en-001\",\"en-GG\":\"en-001\",\"en-GH\":\"en-001\",\"en-GI\":\"en-001\",\"en-GM\":\"en-001\",\"en-GY\":\"en-001\",\"en-HK\":\"en-001\",\"en-IE\":\"en-001\",\"en-IL\":\"en-001\",\"en-IM\":\"en-001\",\"en-IN\":\"en-001\",\"en-IO\":\"en-001\",\"en-JE\":\"en-001\",\"en-JM\":\"en-001\",\"en-KE\":\"en-001\",\"en-KI\":\"en-001\",\"en-KN\":\"en-001\",\"en-KY\":\"en-001\",\"en-LC\":\"en-001\",\"en-LR\":\"en-001\",\"en-LS\":\"en-001\",\"en-MG\":\"en-001\",\"en-MO\":\"en-001\",\"en-MS\":\"en-001\",\"en-MT\":\"en-001\",\"en-MU\":\"en-001\",\"en-MW\":\"en-001\",\"en-MY\":\"en-001\",\"en-NA\":\"en-001\",\"en-NF\":\"en-001\",\"en-NG\":\"en-001\",\"en-NR\":\"en-001\",\"en-NU\":\"en-001\",\"en-NZ\":\"en-001\",\"en-PG\":\"en-001\",\"en-PH\":\"en-001\",\"en-PK\":\"en-001\",\"en-PN\":\"en-001\",\"en-PW\":\"en-001\",\"en-RW\":\"en-001\",\"en-SB\":\"en-001\",\"en-SC\":\"en-001\",\"en-SD\":\"en-001\",\"en-SG\":\"en-001\",\"en-SH\":\"en-001\",\"en-SL\":\"en-001\",\"en-SS\":\"en-001\",\"en-SX\":\"en-001\",\"en-SZ\":\"en-001\",\"en-TC\":\"en-001\",\"en-TK\":\"en-001\",\"en-TO\":\"en-001\",\"en-TT\":\"en-001\",\"en-TV\":\"en-001\",\"en-TZ\":\"en-001\",\"en-UG\":\"en-001\",\"en-VC\":\"en-001\",\"en-VG\":\"en-001\",\"en-VU\":\"en-001\",\"en-WS\":\"en-001\",\"en-ZA\":\"en-001\",\"en-ZM\":\"en-001\",\"en-ZW\":\"en-001\",\"en-AT\":\"en-150\",\"en-BE\":\"en-150\",\"en-CH\":\"en-150\",\"en-DE\":\"en-150\",\"en-DK\":\"en-150\",\"en-FI\":\"en-150\",\"en-NL\":\"en-150\",\"en-SE\":\"en-150\",\"en-SI\":\"en-150\"},\"availableLocales\":[\"en\"]})\n}\n","/* @generated */\n// prettier-ignore\nif (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {\n Intl.PluralRules.__addLocaleData({\"data\":{\"es\":{\"categories\":{\"cardinal\":[\"one\",\"other\"],\"ordinal\":[\"other\"]},\"fn\":function(n, ord) {\n if (ord) return 'other';\n return n == 1 ? 'one' : 'other';\n}}},\"aliases\":{},\"parentLocales\":{\"es-AR\":\"es-419\",\"es-BO\":\"es-419\",\"es-BR\":\"es-419\",\"es-BZ\":\"es-419\",\"es-CL\":\"es-419\",\"es-CO\":\"es-419\",\"es-CR\":\"es-419\",\"es-CU\":\"es-419\",\"es-DO\":\"es-419\",\"es-EC\":\"es-419\",\"es-GT\":\"es-419\",\"es-HN\":\"es-419\",\"es-MX\":\"es-419\",\"es-NI\":\"es-419\",\"es-PA\":\"es-419\",\"es-PE\":\"es-419\",\"es-PR\":\"es-419\",\"es-PY\":\"es-419\",\"es-SV\":\"es-419\",\"es-US\":\"es-419\",\"es-UY\":\"es-419\",\"es-VE\":\"es-419\"},\"availableLocales\":[\"es\"]})\n}\n","/* @generated */\n// prettier-ignore\nif (Intl.PluralRules && typeof Intl.PluralRules.__addLocaleData === 'function') {\n Intl.PluralRules.__addLocaleData({\"data\":{\"ses\":{\"categories\":{\"cardinal\":[\"other\"],\"ordinal\":[\"other\"]},\"fn\":function(n, ord) {\n return 'other';\n}}},\"aliases\":{},\"parentLocales\":{},\"availableLocales\":[\"ses\"]})\n}\n","var map = {\n\t\"./en\": 98357,\n\t\"./en.js\": 98357,\n\t\"./es\": 4870,\n\t\"./es.js\": 4870,\n\t\"./ses\": 21670,\n\t\"./ses.js\": 21670\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 75024;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"./core\");\nif (typeof Intl.PluralRules === 'undefined' ||\n (!Intl.PluralRules.polyfilled &&\n new Intl.PluralRules('en', { minimumFractionDigits: 2 }).select(1) ===\n 'one')) {\n Object.defineProperty(Intl, 'PluralRules', {\n value: core_1.PluralRules,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n//# sourceMappingURL=polyfill.js.map","require('./dist/polyfill');\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar intl_utils_1 = require(\"@formatjs/intl-utils\");\nfunction unpackData(locale, localeData) {\n var localeHierarchy = intl_utils_1.getLocaleHierarchy(locale, localeData.aliases, localeData.parentLocales);\n var dataToMerge = localeHierarchy\n .map(function (l) { return localeData.data[l]; })\n .filter(Boolean);\n if (!dataToMerge.length) {\n throw new Error(\"Missing locale data for \\\"\" + locale + \"\\\", lookup hierarchy: \" + localeHierarchy.join(', '));\n }\n dataToMerge.reverse();\n return dataToMerge.reduce(function (all, d) { return (__assign(__assign({}, all), d)); }, { nu: [] });\n}\n/**\n * https://tc39.es/proposal-intl-relative-time/#sec-singularrelativetimeunit\n * @param unit\n */\nfunction singularRelativeTimeUnit(unit) {\n intl_utils_1.invariant(typeof unit === 'string', \"unit must be a string, instead got \" + typeof unit, TypeError);\n if (unit === 'seconds')\n return 'second';\n if (unit === 'minutes')\n return 'minute';\n if (unit === 'hours')\n return 'hour';\n if (unit === 'days')\n return 'day';\n if (unit === 'weeks')\n return 'week';\n if (unit === 'months')\n return 'month';\n if (unit === 'quarters')\n return 'quarter';\n if (unit === 'years')\n return 'year';\n if (unit !== 'second' &&\n unit !== 'minute' &&\n unit !== 'hour' &&\n unit !== 'day' &&\n unit !== 'week' &&\n unit !== 'month' &&\n unit !== 'quarter' &&\n unit !== 'year') {\n throw new RangeError(\"Invalid unit \" + unit);\n }\n return unit;\n}\nvar NUMBERING_SYSTEM_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;\n/**\n * https://tc39.es/proposal-intl-relative-time/#sec-makepartslist\n * @param pattern\n * @param unit\n * @param parts\n */\nfunction makePartsList(pattern, unit, parts) {\n var e_1, _a, e_2, _b;\n var patternParts = intl_utils_1.partitionPattern(pattern);\n var result = [];\n try {\n for (var patternParts_1 = __values(patternParts), patternParts_1_1 = patternParts_1.next(); !patternParts_1_1.done; patternParts_1_1 = patternParts_1.next()) {\n var patternPart = patternParts_1_1.value;\n if (intl_utils_1.isLiteralPart(patternPart)) {\n result.push({\n type: 'literal',\n value: patternPart.value,\n });\n }\n else {\n intl_utils_1.invariant(patternPart.type === '0', \"Malformed pattern \" + pattern);\n try {\n for (var parts_1 = (e_2 = void 0, __values(parts)), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {\n var part = parts_1_1.value;\n result.push({\n type: part.type,\n value: part.value,\n unit: unit,\n });\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (parts_1_1 && !parts_1_1.done && (_b = parts_1.return)) _b.call(parts_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (patternParts_1_1 && !patternParts_1_1.done && (_a = patternParts_1.return)) _a.call(patternParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\nfunction objectIs(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\nfunction toString(arg) {\n return arg + '';\n}\n/**\n * PartitionRelativeTimePattern\n * @param rtf\n * @param value\n * @param unit\n */\nfunction partitionRelativeTimePattern(internalSlotMap, rtf, value, unit) {\n intl_utils_1.invariant(typeof value === 'number', \"value must be number, instead got \" + typeof value, TypeError);\n intl_utils_1.invariant(typeof unit === 'string', \"unit must be number, instead got \" + typeof value, TypeError);\n if (isNaN(value) || value === Infinity || value === -Infinity) {\n throw new RangeError(\"Invalid value \" + value);\n }\n var resolvedUnit = singularRelativeTimeUnit(unit);\n var fields = intl_utils_1.getInternalSlot(internalSlotMap, rtf, 'fields');\n var style = intl_utils_1.getInternalSlot(internalSlotMap, rtf, 'style');\n var entry = resolvedUnit;\n if (style === 'short') {\n entry = unit + \"-short\";\n }\n else if (style === 'narrow') {\n entry = unit + \"-narrow\";\n }\n if (!(entry in fields)) {\n entry = unit;\n }\n var patterns = fields[entry];\n var numeric = intl_utils_1.getInternalSlot(internalSlotMap, rtf, 'numeric');\n if (numeric === 'auto') {\n if (toString(value) in patterns) {\n return [\n {\n type: 'literal',\n value: patterns[toString(value)],\n },\n ];\n }\n }\n var tl = 'future';\n if (objectIs(value, -0) || value < 0) {\n tl = 'past';\n }\n var po = patterns[tl];\n var pluralRules = intl_utils_1.getInternalSlot(internalSlotMap, rtf, 'pluralRules');\n var numberFormat = intl_utils_1.getInternalSlot(internalSlotMap, rtf, 'numberFormat');\n var fv = typeof numberFormat.formatToParts === 'function'\n ? numberFormat.formatToParts(Math.abs(value))\n : // TODO: If formatToParts is not supported, we assume the whole formatted\n // number is a part\n [\n {\n type: 'literal',\n value: numberFormat.format(Math.abs(value)),\n unit: unit,\n },\n ];\n var pr = pluralRules.select(value);\n var pattern = po[pr];\n return makePartsList(pattern, resolvedUnit, fv);\n}\nvar RelativeTimeFormat = /** @class */ (function () {\n function RelativeTimeFormat(locales, options) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof RelativeTimeFormat ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.RelativeTimeFormat must be called with 'new'\");\n }\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'initializedRelativeTimeFormat', true);\n var requestedLocales = intl_utils_1.getCanonicalLocales(locales);\n var opt = Object.create(null);\n var opts = options === undefined ? Object.create(null) : intl_utils_1.toObject(options);\n var matcher = intl_utils_1.getOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = intl_utils_1.getOption(opts, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined) {\n if (!NUMBERING_SYSTEM_REGEX.test(numberingSystem)) {\n throw new RangeError(\"Invalid numbering system \" + numberingSystem);\n }\n }\n opt.nu = numberingSystem;\n var r = intl_utils_1.createResolveLocale(RelativeTimeFormat.getDefaultLocale)(RelativeTimeFormat.availableLocales, requestedLocales, opt, RelativeTimeFormat.relevantExtensionKeys, RelativeTimeFormat.localeData);\n var locale = r.locale, nu = r.nu;\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'locale', locale);\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'style', intl_utils_1.getOption(opts, 'style', 'string', ['long', 'narrow', 'short'], 'long'));\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'numeric', intl_utils_1.getOption(opts, 'numeric', 'string', ['always', 'auto'], 'always'));\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'fields', RelativeTimeFormat.localeData[locale]);\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'numberFormat', new Intl.NumberFormat(locales));\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'pluralRules', new Intl.PluralRules(locales));\n intl_utils_1.setInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'numberingSystem', nu);\n }\n RelativeTimeFormat.prototype.format = function (value, unit) {\n if (typeof this !== 'object') {\n throw new TypeError('format was called on a non-object');\n }\n if (!intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'initializedRelativeTimeFormat')) {\n throw new TypeError('format was called on a invalid context');\n }\n return partitionRelativeTimePattern(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, Number(value), toString(unit))\n .map(function (el) { return el.value; })\n .join('');\n };\n RelativeTimeFormat.prototype.formatToParts = function (value, unit) {\n if (typeof this !== 'object') {\n throw new TypeError('formatToParts was called on a non-object');\n }\n if (!intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'initializedRelativeTimeFormat')) {\n throw new TypeError('formatToParts was called on a invalid context');\n }\n return partitionRelativeTimePattern(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, Number(value), toString(unit));\n };\n RelativeTimeFormat.prototype.resolvedOptions = function () {\n if (typeof this !== 'object') {\n throw new TypeError('resolvedOptions was called on a non-object');\n }\n if (!intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'initializedRelativeTimeFormat')) {\n throw new TypeError('resolvedOptions was called on a invalid context');\n }\n // test262/test/intl402/RelativeTimeFormat/prototype/resolvedOptions/type.js\n return {\n locale: intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'locale'),\n style: intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'style'),\n numeric: intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'numeric'),\n numberingSystem: intl_utils_1.getInternalSlot(RelativeTimeFormat.__INTERNAL_SLOT_MAP__, this, 'numberingSystem'),\n };\n };\n RelativeTimeFormat.supportedLocalesOf = function (locales, options) {\n return intl_utils_1.supportedLocales(RelativeTimeFormat.availableLocales, intl_utils_1.getCanonicalLocales(locales), options);\n };\n RelativeTimeFormat.__addLocaleData = function () {\n var e_3, _a;\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n var _loop_1 = function (datum) {\n var availableLocales = Object.keys(__spread(datum.availableLocales, Object.keys(datum.aliases), Object.keys(datum.parentLocales)).reduce(function (all, k) {\n all[k] = true;\n return all;\n }, {}));\n availableLocales.forEach(function (locale) {\n try {\n RelativeTimeFormat.localeData[locale] = unpackData(locale, datum);\n }\n catch (e) {\n // If we can't unpack this data, ignore the locale\n }\n });\n };\n try {\n for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n _loop_1(datum);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n RelativeTimeFormat.availableLocales = Object.keys(RelativeTimeFormat.localeData);\n if (!RelativeTimeFormat.__defaultLocale) {\n RelativeTimeFormat.__defaultLocale =\n RelativeTimeFormat.availableLocales[0];\n }\n };\n RelativeTimeFormat.getDefaultLocale = function () {\n return RelativeTimeFormat.__defaultLocale;\n };\n RelativeTimeFormat.localeData = {};\n RelativeTimeFormat.availableLocales = [];\n RelativeTimeFormat.__defaultLocale = 'en';\n RelativeTimeFormat.relevantExtensionKeys = ['nu'];\n RelativeTimeFormat.polyfilled = true;\n RelativeTimeFormat.__INTERNAL_SLOT_MAP__ = new WeakMap();\n return RelativeTimeFormat;\n}());\nexports.default = RelativeTimeFormat;\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(RelativeTimeFormat.prototype, Symbol.toStringTag, {\n value: 'Intl.RelativeTimeFormat',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(RelativeTimeFormat.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(RelativeTimeFormat.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (e) {\n // Meta fix so we're test262-compliant, not important\n}\n//# sourceMappingURL=core.js.map","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"en-001\":{\"year-short\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr\",\"other\":\"in {0} yr\"},\"past\":{\"one\":\"{0} yr ago\",\"other\":\"{0} yr ago\"},\"-1\":\"last yr\"},\"year-narrow\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr\",\"other\":\"in {0} yr\"},\"past\":{\"one\":\"{0} yr ago\",\"other\":\"{0} yr ago\"},\"-1\":\"last yr\"},\"quarter-short\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtr\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtr ago\"},\"-1\":\"last qtr.\"},\"quarter-narrow\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtr\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtr ago\"},\"-1\":\"last qtr.\"},\"month-short\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo\",\"other\":\"in {0} mo\"},\"past\":{\"one\":\"{0} mo ago\",\"other\":\"{0} mo ago\"},\"-1\":\"last mo\"},\"month-narrow\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo\",\"other\":\"in {0} mo\"},\"past\":{\"one\":\"{0} mo ago\",\"other\":\"{0} mo ago\"},\"-1\":\"last mo\"},\"week-short\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk\",\"other\":\"in {0} wk\"},\"past\":{\"one\":\"{0} wk ago\",\"other\":\"{0} wk ago\"},\"-1\":\"last wk\"},\"week-narrow\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk\",\"other\":\"in {0} wk\"},\"past\":{\"one\":\"{0} wk ago\",\"other\":\"{0} wk ago\"},\"-1\":\"last wk\"},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr\",\"other\":\"in {0} hr\"},\"past\":{\"one\":\"{0} hr ago\",\"other\":\"{0} hr ago\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr\",\"other\":\"in {0} hr\"},\"past\":{\"one\":\"{0} hr ago\",\"other\":\"{0} hr ago\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min\",\"other\":\"in {0} min\"},\"past\":{\"one\":\"{0} min ago\",\"other\":\"{0} min ago\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min\",\"other\":\"in {0} min\"},\"past\":{\"one\":\"{0} min ago\",\"other\":\"{0} min ago\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec\",\"other\":\"in {0} sec\"},\"past\":{\"one\":\"{0} sec ago\",\"other\":\"{0} sec ago\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec\",\"other\":\"in {0} sec\"},\"past\":{\"one\":\"{0} sec ago\",\"other\":\"{0} sec ago\"}}},\"en-150\":{\"year-short\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr\",\"other\":\"in {0} yr\"},\"past\":{\"one\":\"{0} yr ago\",\"other\":\"{0} yr ago\"},\"-1\":\"last yr\"},\"year-narrow\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr\",\"other\":\"in {0} yr\"},\"past\":{\"one\":\"{0} yr ago\",\"other\":\"{0} yr ago\"},\"-1\":\"last yr\"},\"quarter-short\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtr\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtr ago\"},\"-1\":\"last qtr.\"},\"quarter-narrow\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtr\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtr ago\"},\"-1\":\"last qtr.\"},\"month-short\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo\",\"other\":\"in {0} mo\"},\"past\":{\"one\":\"{0} mo ago\",\"other\":\"{0} mo ago\"},\"-1\":\"last mo\"},\"month-narrow\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo\",\"other\":\"in {0} mo\"},\"past\":{\"one\":\"{0} mo ago\",\"other\":\"{0} mo ago\"},\"-1\":\"last mo\"},\"week-short\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk\",\"other\":\"in {0} wk\"},\"past\":{\"one\":\"{0} wk ago\",\"other\":\"{0} wk ago\"},\"-1\":\"last wk\"},\"week-narrow\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk\",\"other\":\"in {0} wk\"},\"past\":{\"one\":\"{0} wk ago\",\"other\":\"{0} wk ago\"},\"-1\":\"last wk\"},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr\",\"other\":\"in {0} hr\"},\"past\":{\"one\":\"{0} hr ago\",\"other\":\"{0} hr ago\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr\",\"other\":\"in {0} hr\"},\"past\":{\"one\":\"{0} hr ago\",\"other\":\"{0} hr ago\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min\",\"other\":\"in {0} min\"},\"past\":{\"one\":\"{0} min ago\",\"other\":\"{0} min ago\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min\",\"other\":\"in {0} min\"},\"past\":{\"one\":\"{0} min ago\",\"other\":\"{0} min ago\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec\",\"other\":\"in {0} sec\"},\"past\":{\"one\":\"{0} sec ago\",\"other\":\"{0} sec ago\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec\",\"other\":\"in {0} sec\"},\"past\":{\"one\":\"{0} sec ago\",\"other\":\"{0} sec ago\"}}},\"en-AU\":{\"year-short\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr\",\"other\":\"in {0} yrs\"},\"past\":{\"one\":\"{0} yr ago\",\"other\":\"{0} yrs ago\"},\"-1\":\"last yr\"},\"year-narrow\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr\",\"other\":\"in {0} yrs\"},\"past\":{\"one\":\"{0} yr ago\",\"other\":\"{0} yrs ago\"},\"-1\":\"last yr\"},\"quarter-short\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtrs\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtrs ago\"},\"-1\":\"last qtr.\"},\"quarter-narrow\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtrs\"},\"past\":{\"one\":\"in {0} qtr ago\",\"other\":\"{0} qtrs ago\"},\"-1\":\"last qtr.\"},\"month-short\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"},\"-1\":\"last mo\"},\"month-narrow\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"},\"-1\":\"last mo\"},\"week-short\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk\",\"other\":\"in {0} wks\"},\"past\":{\"one\":\"{0} wk ago\",\"other\":\"{0} wks ago\"},\"-1\":\"last wk\"},\"week-narrow\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk\",\"other\":\"in {0} wks\"},\"past\":{\"one\":\"{0} wk ago\",\"other\":\"{0} wks ago\"},\"-1\":\"last wk\"},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr\",\"other\":\"in {0} hrs\"},\"past\":{\"one\":\"{0} hr ago\",\"other\":\"{0} hrs ago\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr\",\"other\":\"in {0} hrs\"},\"past\":{\"one\":\"{0} hr ago\",\"other\":\"{0} hrs ago\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} mins\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} mins ago\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} mins\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} mins ago\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} secs\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} secs ago\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} secs\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} secs ago\"}}},\"en-CA\":{\"year-short\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yrs.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yrs. ago\"},\"-1\":\"last yr\"},\"year-narrow\":{\"0\":\"this yr\",\"1\":\"next yr\",\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yrs.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yrs. ago\"},\"-1\":\"last yr\"},\"quarter-short\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr.\",\"other\":\"in {0} qtrs.\"},\"past\":{\"one\":\"{0} qtr. ago\",\"other\":\"{0} qtrs. ago\"},\"-1\":\"last qtr.\"},\"quarter-narrow\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr.\",\"other\":\"in {0} qtrs.\"},\"past\":{\"one\":\"{0} qtr. ago\",\"other\":\"{0} qtrs. ago\"},\"-1\":\"last qtr.\"},\"month-short\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mos.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mos. ago\"},\"-1\":\"last mo\"},\"month-narrow\":{\"0\":\"this mo\",\"1\":\"next mo\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mos.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mos. ago\"},\"-1\":\"last mo\"},\"week-short\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk.\",\"other\":\"in {0} wks.\"},\"past\":{\"one\":\"{0} wk. ago\",\"other\":\"{0} wks. ago\"},\"-1\":\"last wk\"},\"week-narrow\":{\"0\":\"this wk\",\"1\":\"next wk\",\"future\":{\"one\":\"in {0} wk.\",\"other\":\"in {0} wks.\"},\"past\":{\"one\":\"{0} wk. ago\",\"other\":\"{0} wks. ago\"},\"-1\":\"last wk\"},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hrs.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hrs. ago\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hrs.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hrs. ago\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} mins.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} mins. ago\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} mins.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} mins. ago\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} secs.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} secs. ago\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} secs.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} secs. ago\"}}},\"en-SG\":{\"quarter-short\":{\"0\":\"this qtr\",\"1\":\"next qtr\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtrs\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtrs ago\"},\"-1\":\"last qtr\"},\"quarter-narrow\":{\"0\":\"this qtr\",\"1\":\"next qtr\",\"future\":{\"one\":\"in {0} qtr\",\"other\":\"in {0} qtr\"},\"past\":{\"one\":\"{0} qtr ago\",\"other\":\"{0} qtr ago\"},\"-1\":\"last qtr\"},\"month-short\":{\"0\":\"this mth\",\"1\":\"next mth\",\"future\":{\"one\":\"in {0} mth\",\"other\":\"in {0} mth\"},\"past\":{\"one\":\"{0} mth ago\",\"other\":\"{0} mth ago\"},\"-1\":\"last mth\"}},\"en\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"this year\",\"1\":\"next year\",\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"},\"-1\":\"last year\"},\"year-short\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"},\"-1\":\"last yr.\"},\"year-narrow\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"},\"-1\":\"last yr.\"},\"quarter\":{\"0\":\"this quarter\",\"1\":\"next quarter\",\"future\":{\"one\":\"in {0} quarter\",\"other\":\"in {0} quarters\"},\"past\":{\"one\":\"{0} quarter ago\",\"other\":\"{0} quarters ago\"},\"-1\":\"last quarter\"},\"quarter-short\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr.\",\"other\":\"in {0} qtrs.\"},\"past\":{\"one\":\"{0} qtr. ago\",\"other\":\"{0} qtrs. ago\"},\"-1\":\"last qtr.\"},\"quarter-narrow\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr.\",\"other\":\"in {0} qtrs.\"},\"past\":{\"one\":\"{0} qtr. ago\",\"other\":\"{0} qtrs. ago\"},\"-1\":\"last qtr.\"},\"month\":{\"0\":\"this month\",\"1\":\"next month\",\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"},\"-1\":\"last month\"},\"month-short\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"},\"-1\":\"last mo.\"},\"month-narrow\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"},\"-1\":\"last mo.\"},\"week\":{\"0\":\"this week\",\"1\":\"next week\",\"future\":{\"one\":\"in {0} week\",\"other\":\"in {0} weeks\"},\"past\":{\"one\":\"{0} week ago\",\"other\":\"{0} weeks ago\"},\"-1\":\"last week\"},\"week-short\":{\"0\":\"this wk.\",\"1\":\"next wk.\",\"future\":{\"one\":\"in {0} wk.\",\"other\":\"in {0} wk.\"},\"past\":{\"one\":\"{0} wk. ago\",\"other\":\"{0} wk. ago\"},\"-1\":\"last wk.\"},\"week-narrow\":{\"0\":\"this wk.\",\"1\":\"next wk.\",\"future\":{\"one\":\"in {0} wk.\",\"other\":\"in {0} wk.\"},\"past\":{\"one\":\"{0} wk. ago\",\"other\":\"{0} wk. ago\"},\"-1\":\"last wk.\"},\"day\":{\"0\":\"today\",\"1\":\"tomorrow\",\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"},\"-1\":\"yesterday\"},\"day-short\":{\"0\":\"today\",\"1\":\"tomorrow\",\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"},\"-1\":\"yesterday\"},\"day-narrow\":{\"0\":\"today\",\"1\":\"tomorrow\",\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"},\"-1\":\"yesterday\"},\"hour\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}},\"minute\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}},\"second\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}}},\"availableLocales\":[\"en-001\",\"en-150\",\"en-AE\",\"en-AG\",\"en-AI\",\"en-AS\",\"en-AT\",\"en-AU\",\"en-BB\",\"en-BE\",\"en-BI\",\"en-BM\",\"en-BS\",\"en-BW\",\"en-BZ\",\"en-CA\",\"en-CC\",\"en-CH\",\"en-CK\",\"en-CM\",\"en-CX\",\"en-CY\",\"en-DE\",\"en-DG\",\"en-DK\",\"en-DM\",\"en-ER\",\"en-FI\",\"en-FJ\",\"en-FK\",\"en-FM\",\"en-GB\",\"en-GD\",\"en-GG\",\"en-GH\",\"en-GI\",\"en-GM\",\"en-GU\",\"en-GY\",\"en-HK\",\"en-IE\",\"en-IL\",\"en-IM\",\"en-IN\",\"en-IO\",\"en-JE\",\"en-JM\",\"en-KE\",\"en-KI\",\"en-KN\",\"en-KY\",\"en-LC\",\"en-LR\",\"en-LS\",\"en-MG\",\"en-MH\",\"en-MO\",\"en-MP\",\"en-MS\",\"en-MT\",\"en-MU\",\"en-MW\",\"en-MY\",\"en-NA\",\"en-NF\",\"en-NG\",\"en-NL\",\"en-NR\",\"en-NU\",\"en-NZ\",\"en-PG\",\"en-PH\",\"en-PK\",\"en-PN\",\"en-PR\",\"en-PW\",\"en-RW\",\"en-SB\",\"en-SC\",\"en-SD\",\"en-SE\",\"en-SG\",\"en-SH\",\"en-SI\",\"en-SL\",\"en-SS\",\"en-SX\",\"en-SZ\",\"en-TC\",\"en-TK\",\"en-TO\",\"en-TT\",\"en-TV\",\"en-TZ\",\"en-UG\",\"en-UM\",\"en-US-POSIX\",\"en-US\",\"en-VC\",\"en-VG\",\"en-VI\",\"en-VU\",\"en-WS\",\"en-ZA\",\"en-ZM\",\"en-ZW\",\"en\"],\"aliases\":{},\"parentLocales\":{\"en-150\":\"en-001\",\"en-AG\":\"en-001\",\"en-AI\":\"en-001\",\"en-AU\":\"en-001\",\"en-BB\":\"en-001\",\"en-BM\":\"en-001\",\"en-BS\":\"en-001\",\"en-BW\":\"en-001\",\"en-BZ\":\"en-001\",\"en-CA\":\"en-001\",\"en-CC\":\"en-001\",\"en-CK\":\"en-001\",\"en-CM\":\"en-001\",\"en-CX\":\"en-001\",\"en-CY\":\"en-001\",\"en-DG\":\"en-001\",\"en-DM\":\"en-001\",\"en-ER\":\"en-001\",\"en-FJ\":\"en-001\",\"en-FK\":\"en-001\",\"en-FM\":\"en-001\",\"en-GB\":\"en-001\",\"en-GD\":\"en-001\",\"en-GG\":\"en-001\",\"en-GH\":\"en-001\",\"en-GI\":\"en-001\",\"en-GM\":\"en-001\",\"en-GY\":\"en-001\",\"en-HK\":\"en-001\",\"en-IE\":\"en-001\",\"en-IL\":\"en-001\",\"en-IM\":\"en-001\",\"en-IN\":\"en-001\",\"en-IO\":\"en-001\",\"en-JE\":\"en-001\",\"en-JM\":\"en-001\",\"en-KE\":\"en-001\",\"en-KI\":\"en-001\",\"en-KN\":\"en-001\",\"en-KY\":\"en-001\",\"en-LC\":\"en-001\",\"en-LR\":\"en-001\",\"en-LS\":\"en-001\",\"en-MG\":\"en-001\",\"en-MO\":\"en-001\",\"en-MS\":\"en-001\",\"en-MT\":\"en-001\",\"en-MU\":\"en-001\",\"en-MW\":\"en-001\",\"en-MY\":\"en-001\",\"en-NA\":\"en-001\",\"en-NF\":\"en-001\",\"en-NG\":\"en-001\",\"en-NR\":\"en-001\",\"en-NU\":\"en-001\",\"en-NZ\":\"en-001\",\"en-PG\":\"en-001\",\"en-PH\":\"en-001\",\"en-PK\":\"en-001\",\"en-PN\":\"en-001\",\"en-PW\":\"en-001\",\"en-RW\":\"en-001\",\"en-SB\":\"en-001\",\"en-SC\":\"en-001\",\"en-SD\":\"en-001\",\"en-SG\":\"en-001\",\"en-SH\":\"en-001\",\"en-SL\":\"en-001\",\"en-SS\":\"en-001\",\"en-SX\":\"en-001\",\"en-SZ\":\"en-001\",\"en-TC\":\"en-001\",\"en-TK\":\"en-001\",\"en-TO\":\"en-001\",\"en-TT\":\"en-001\",\"en-TV\":\"en-001\",\"en-TZ\":\"en-001\",\"en-UG\":\"en-001\",\"en-VC\":\"en-001\",\"en-VG\":\"en-001\",\"en-VU\":\"en-001\",\"en-WS\":\"en-001\",\"en-ZA\":\"en-001\",\"en-ZM\":\"en-001\",\"en-ZW\":\"en-001\",\"en-AT\":\"en-150\",\"en-BE\":\"en-150\",\"en-CH\":\"en-150\",\"en-DE\":\"en-150\",\"en-DK\":\"en-150\",\"en-FI\":\"en-150\",\"en-NL\":\"en-150\",\"en-SE\":\"en-150\",\"en-SI\":\"en-150\"}})\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"es-419\":{\"week-short\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"dentro de {0} sem.\",\"other\":\"dentro de {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. pas.\"},\"week-narrow\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"dentro de {0} sem.\",\"other\":\"dentro de {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. pas.\"}},\"es-AR\":{\"day-short\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} días\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} días\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"day-narrow\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} días\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} días\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"second-short\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} seg.\",\"other\":\"dentro de {0} seg.\"},\"past\":{\"one\":\"hace {0} seg.\",\"other\":\"hace {0} seg.\"}},\"second-narrow\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} seg.\",\"other\":\"dentro de {0} seg.\"},\"past\":{\"one\":\"hace {0} seg.\",\"other\":\"hace {0} seg.\"}}},\"es-MX\":{\"year\":{\"0\":\"este año\",\"1\":\"el año próximo\",\"future\":{\"one\":\"dentro de {0} año\",\"other\":\"dentro de {0} años\"},\"past\":{\"one\":\"hace {0} año\",\"other\":\"hace {0} años\"},\"-1\":\"el año pasado\"},\"year-short\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"en {0} a\",\"other\":\"en {0} a\"},\"past\":{\"one\":\"hace {0} a\",\"other\":\"hace {0} a\"},\"-1\":\"el año pasado\"},\"year-narrow\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"en {0} a\",\"other\":\"en {0} a\"},\"past\":{\"one\":\"-{0} a\",\"other\":\"-{0} a\"},\"-1\":\"el año pasado\"},\"quarter\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"en {0} trimestre\",\"other\":\"dentro de {0} trimetres\"},\"past\":{\"one\":\"hace {0} trimestre\",\"other\":\"hace {0} trimestres\"},\"-1\":\"el trimestre pasado\"},\"quarter-short\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"en {0} trim.\",\"other\":\"en {0} trim\"},\"past\":{\"one\":\"hace {0} trim.\",\"other\":\"hace {0} trim.\"},\"-1\":\"el trimestre pasado\"},\"quarter-narrow\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"en {0} trim.\",\"other\":\"en {0} trim.\"},\"past\":{\"one\":\"-{0} T\",\"other\":\"-{0} T\"},\"-1\":\"el trimestre pasado\"},\"month\":{\"0\":\"este mes\",\"1\":\"el mes próximo\",\"future\":{\"one\":\"en {0} mes\",\"other\":\"en {0} meses\"},\"past\":{\"one\":\"hace {0} mes\",\"other\":\"hace {0} meses\"},\"-1\":\"el mes pasado\"},\"month-short\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"en {0} m\",\"other\":\"en {0} m\"},\"past\":{\"one\":\"hace {0} m\",\"other\":\"hace {0} m\"},\"-1\":\"el mes pasado\"},\"month-narrow\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"+{0} m\",\"other\":\"+{0} m\"},\"past\":{\"one\":\"-{0} m\",\"other\":\"-{0} m\"},\"-1\":\"el mes pasado\"},\"week\":{\"0\":\"esta semana\",\"1\":\"la semana próxima\",\"future\":{\"one\":\"dentro de {0} semana\",\"other\":\"dentro de {0} semanas\"},\"past\":{\"one\":\"hace {0} semana\",\"other\":\"hace {0} semanas\"},\"-1\":\"la semana pasada\"},\"week-short\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"en {0} sem.\",\"other\":\"en {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. pas.\"},\"day-short\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"en {0} día\",\"other\":\"en {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"day-narrow\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"+{0} día\",\"other\":\"en {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"hour-short\":{\"0\":\"esta hora\",\"future\":{\"one\":\"en {0} h\",\"other\":\"en {0} n\"},\"past\":{\"one\":\"hace {0} h\",\"other\":\"hace {0} h\"}},\"minute-short\":{\"0\":\"este minuto\",\"future\":{\"one\":\"en {0} min\",\"other\":\"en {0} min\"},\"past\":{\"one\":\"hace {0} min\",\"other\":\"hace {0} min\"}},\"minute-narrow\":{\"0\":\"este minuto\",\"future\":{\"one\":\"en {0} min\",\"other\":\"en {0} min\"},\"past\":{\"one\":\"hace {0} min\",\"other\":\"hace {0} min\"}},\"second-short\":{\"0\":\"ahora\",\"future\":{\"one\":\"en {0} s\",\"other\":\"en {0} s\"},\"past\":{\"one\":\"hace {0} s\",\"other\":\"hace {0} s\"}},\"second-narrow\":{\"0\":\"ahora\",\"future\":{\"one\":\"+{0} s\",\"other\":\"+{0} s\"},\"past\":{\"one\":\"hace {0} s\",\"other\":\"hace {0} s\"}}},\"es-PY\":{\"second-short\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} seg.\",\"other\":\"dentro de {0} seg.\"},\"past\":{\"one\":\"hace {0} seg.\",\"other\":\"hace {0} seg.\"}},\"second-narrow\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} seg.\",\"other\":\"dentro de {0} seg.\"},\"past\":{\"one\":\"hace {0} seg.\",\"other\":\"hace {0} seg.\"}}},\"es-SV\":{\"day\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} día\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"antier\",\"-1\":\"ayer\"}},\"es-US\":{\"year\":{\"0\":\"este año\",\"1\":\"el año próximo\",\"future\":{\"one\":\"dentro de {0} año\",\"other\":\"dentro de {0} años\"},\"past\":{\"one\":\"hace {0} año\",\"other\":\"hace {0} años\"},\"-1\":\"el año pasado\"},\"quarter\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trimetre\",\"other\":\"dentro de {0} trimetres\"},\"past\":{\"one\":\"hace {0} trimestre\",\"other\":\"hace {0} trimestres\"},\"-1\":\"el trimestre pasado\"},\"month\":{\"0\":\"este mes\",\"1\":\"el mes próximo\",\"future\":{\"one\":\"dentro de {0} mes\",\"other\":\"dentro de {0} meses\"},\"past\":{\"one\":\"hace {0} mes\",\"other\":\"hace {0} meses\"},\"-1\":\"el mes pasado\"},\"week\":{\"0\":\"esta semana\",\"1\":\"la semana próxima\",\"future\":{\"one\":\"dentro de {0} semana\",\"other\":\"dentro de {0} semanas\"},\"past\":{\"one\":\"hace {0} semana\",\"other\":\"hace {0} semanas\"},\"-1\":\"la semana pasada\"}},\"es\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"dentro de {0} año\",\"other\":\"dentro de {0} años\"},\"past\":{\"one\":\"hace {0} año\",\"other\":\"hace {0} años\"},\"-1\":\"el año pasado\"},\"year-short\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"dentro de {0} a\",\"other\":\"dentro de {0} a\"},\"past\":{\"one\":\"hace {0} a\",\"other\":\"hace {0} a\"},\"-1\":\"el año pasado\"},\"year-narrow\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"dentro de {0} a\",\"other\":\"dentro de {0} a\"},\"past\":{\"one\":\"hace {0} a\",\"other\":\"hace {0} a\"},\"-1\":\"el año pasado\"},\"quarter\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trimestre\",\"other\":\"dentro de {0} trimestres\"},\"past\":{\"one\":\"hace {0} trimestre\",\"other\":\"hace {0} trimestres\"},\"-1\":\"el trimestre pasado\"},\"quarter-short\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trim.\",\"other\":\"dentro de {0} trim.\"},\"past\":{\"one\":\"hace {0} trim.\",\"other\":\"hace {0} trim.\"},\"-1\":\"el trimestre pasado\"},\"quarter-narrow\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trim.\",\"other\":\"dentro de {0} trim.\"},\"past\":{\"one\":\"hace {0} trim.\",\"other\":\"hace {0} trim.\"},\"-1\":\"el trimestre pasado\"},\"month\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"dentro de {0} mes\",\"other\":\"dentro de {0} meses\"},\"past\":{\"one\":\"hace {0} mes\",\"other\":\"hace {0} meses\"},\"-1\":\"el mes pasado\"},\"month-short\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"dentro de {0} m\",\"other\":\"dentro de {0} m\"},\"past\":{\"one\":\"hace {0} m\",\"other\":\"hace {0} m\"},\"-1\":\"el mes pasado\"},\"month-narrow\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"dentro de {0} m\",\"other\":\"dentro de {0} m\"},\"past\":{\"one\":\"hace {0} m\",\"other\":\"hace {0} m\"},\"-1\":\"el mes pasado\"},\"week\":{\"0\":\"esta semana\",\"1\":\"la próxima semana\",\"future\":{\"one\":\"dentro de {0} semana\",\"other\":\"dentro de {0} semanas\"},\"past\":{\"one\":\"hace {0} semana\",\"other\":\"hace {0} semanas\"},\"-1\":\"la semana pasada\"},\"week-short\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"dentro de {0} sem.\",\"other\":\"dentro de {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. ant.\"},\"week-narrow\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"dentro de {0} sem.\",\"other\":\"dentro de {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. ant.\"},\"day\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} día\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"day-short\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} día\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"day-narrow\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} día\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"hour\":{\"0\":\"esta hora\",\"future\":{\"one\":\"dentro de {0} hora\",\"other\":\"dentro de {0} horas\"},\"past\":{\"one\":\"hace {0} hora\",\"other\":\"hace {0} horas\"}},\"hour-short\":{\"0\":\"esta hora\",\"future\":{\"one\":\"dentro de {0} h\",\"other\":\"dentro de {0} h\"},\"past\":{\"one\":\"hace {0} h\",\"other\":\"hace {0} h\"}},\"hour-narrow\":{\"0\":\"esta hora\",\"future\":{\"one\":\"dentro de {0} h\",\"other\":\"dentro de {0} h\"},\"past\":{\"one\":\"hace {0} h\",\"other\":\"hace {0} h\"}},\"minute\":{\"0\":\"este minuto\",\"future\":{\"one\":\"dentro de {0} minuto\",\"other\":\"dentro de {0} minutos\"},\"past\":{\"one\":\"hace {0} minuto\",\"other\":\"hace {0} minutos\"}},\"minute-short\":{\"0\":\"este minuto\",\"future\":{\"one\":\"dentro de {0} min\",\"other\":\"dentro de {0} min\"},\"past\":{\"one\":\"hace {0} min\",\"other\":\"hace {0} min\"}},\"minute-narrow\":{\"0\":\"este minuto\",\"future\":{\"one\":\"dentro de {0} min\",\"other\":\"dentro de {0} min\"},\"past\":{\"one\":\"hace {0} min\",\"other\":\"hace {0} min\"}},\"second\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} segundo\",\"other\":\"dentro de {0} segundos\"},\"past\":{\"one\":\"hace {0} segundo\",\"other\":\"hace {0} segundos\"}},\"second-short\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} s\",\"other\":\"dentro de {0} s\"},\"past\":{\"one\":\"hace {0} s\",\"other\":\"hace {0} s\"}},\"second-narrow\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} s\",\"other\":\"dentro de {0} s\"},\"past\":{\"one\":\"hace {0} s\",\"other\":\"hace {0} s\"}}}},\"availableLocales\":[\"es-419\",\"es-AR\",\"es-BO\",\"es-BR\",\"es-BZ\",\"es-CL\",\"es-CO\",\"es-CR\",\"es-CU\",\"es-DO\",\"es-EA\",\"es-EC\",\"es-GQ\",\"es-GT\",\"es-HN\",\"es-IC\",\"es-MX\",\"es-NI\",\"es-PA\",\"es-PE\",\"es-PH\",\"es-PR\",\"es-PY\",\"es-SV\",\"es-US\",\"es-UY\",\"es-VE\",\"es\"],\"aliases\":{},\"parentLocales\":{\"es-AR\":\"es-419\",\"es-BO\":\"es-419\",\"es-BR\":\"es-419\",\"es-BZ\":\"es-419\",\"es-CL\":\"es-419\",\"es-CO\":\"es-419\",\"es-CR\":\"es-419\",\"es-CU\":\"es-419\",\"es-DO\":\"es-419\",\"es-EC\":\"es-419\",\"es-GT\":\"es-419\",\"es-HN\":\"es-419\",\"es-MX\":\"es-419\",\"es-NI\":\"es-419\",\"es-PA\":\"es-419\",\"es-PE\":\"es-419\",\"es-PR\":\"es-419\",\"es-PY\":\"es-419\",\"es-SV\":\"es-419\",\"es-US\":\"es-419\",\"es-UY\":\"es-419\",\"es-VE\":\"es-419\"}})\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"ses\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"this year\",\"1\":\"next year\",\"future\":{\"other\":\"+{0} y\"},\"past\":{\"other\":\"-{0} y\"},\"-1\":\"last year\"},\"year-short\":{\"0\":\"this year\",\"1\":\"next year\",\"future\":{\"other\":\"+{0} y\"},\"past\":{\"other\":\"-{0} y\"},\"-1\":\"last year\"},\"year-narrow\":{\"0\":\"this year\",\"1\":\"next year\",\"future\":{\"other\":\"+{0} y\"},\"past\":{\"other\":\"-{0} y\"},\"-1\":\"last year\"},\"quarter\":{\"0\":\"this quarter\",\"1\":\"next quarter\",\"future\":{\"other\":\"+{0} Q\"},\"past\":{\"other\":\"-{0} Q\"},\"-1\":\"last quarter\"},\"quarter-short\":{\"0\":\"this quarter\",\"1\":\"next quarter\",\"future\":{\"other\":\"+{0} Q\"},\"past\":{\"other\":\"-{0} Q\"},\"-1\":\"last quarter\"},\"quarter-narrow\":{\"0\":\"this quarter\",\"1\":\"next quarter\",\"future\":{\"other\":\"+{0} Q\"},\"past\":{\"other\":\"-{0} Q\"},\"-1\":\"last quarter\"},\"month\":{\"0\":\"this month\",\"1\":\"next month\",\"future\":{\"other\":\"+{0} m\"},\"past\":{\"other\":\"-{0} m\"},\"-1\":\"last month\"},\"month-short\":{\"0\":\"this month\",\"1\":\"next month\",\"future\":{\"other\":\"+{0} m\"},\"past\":{\"other\":\"-{0} m\"},\"-1\":\"last month\"},\"month-narrow\":{\"0\":\"this month\",\"1\":\"next month\",\"future\":{\"other\":\"+{0} m\"},\"past\":{\"other\":\"-{0} m\"},\"-1\":\"last month\"},\"week\":{\"0\":\"this week\",\"1\":\"next week\",\"future\":{\"other\":\"+{0} w\"},\"past\":{\"other\":\"-{0} w\"},\"-1\":\"last week\"},\"week-short\":{\"0\":\"this week\",\"1\":\"next week\",\"future\":{\"other\":\"+{0} w\"},\"past\":{\"other\":\"-{0} w\"},\"-1\":\"last week\"},\"week-narrow\":{\"0\":\"this week\",\"1\":\"next week\",\"future\":{\"other\":\"+{0} w\"},\"past\":{\"other\":\"-{0} w\"},\"-1\":\"last week\"},\"day\":{\"0\":\"Hõo\",\"1\":\"Suba\",\"future\":{\"other\":\"+{0} d\"},\"past\":{\"other\":\"-{0} d\"},\"-1\":\"Bi\"},\"day-short\":{\"0\":\"Hõo\",\"1\":\"Suba\",\"future\":{\"other\":\"+{0} d\"},\"past\":{\"other\":\"-{0} d\"},\"-1\":\"Bi\"},\"day-narrow\":{\"0\":\"Hõo\",\"1\":\"Suba\",\"future\":{\"other\":\"+{0} d\"},\"past\":{\"other\":\"-{0} d\"},\"-1\":\"Bi\"},\"hour\":{\"0\":\"this hour\",\"future\":{\"other\":\"+{0} h\"},\"past\":{\"other\":\"-{0} h\"}},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"other\":\"+{0} h\"},\"past\":{\"other\":\"-{0} h\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"other\":\"+{0} h\"},\"past\":{\"other\":\"-{0} h\"}},\"minute\":{\"0\":\"this minute\",\"future\":{\"other\":\"+{0} min\"},\"past\":{\"other\":\"-{0} min\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"other\":\"+{0} min\"},\"past\":{\"other\":\"-{0} min\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"other\":\"+{0} min\"},\"past\":{\"other\":\"-{0} min\"}},\"second\":{\"0\":\"now\",\"future\":{\"other\":\"+{0} s\"},\"past\":{\"other\":\"-{0} s\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"other\":\"+{0} s\"},\"past\":{\"other\":\"-{0} s\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"other\":\"+{0} s\"},\"past\":{\"other\":\"-{0} s\"}}}},\"availableLocales\":[\"ses\"],\"aliases\":{},\"parentLocales\":{}})\n}","var map = {\n\t\"./en\": 83193,\n\t\"./en.js\": 83193,\n\t\"./en.json\": 71549,\n\t\"./es\": 53392,\n\t\"./es.js\": 53392,\n\t\"./es.json\": 97110,\n\t\"./ses\": 34988,\n\t\"./ses.js\": 34988,\n\t\"./ses.json\": 98779\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 161;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"./core\");\nif (!('RelativeTimeFormat' in Intl)) {\n Object.defineProperty(Intl, 'RelativeTimeFormat', {\n value: core_1.default,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n//# sourceMappingURL=polyfill.js.map","require('./dist/polyfill');\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar MS_PER_SECOND = 1e3;\nvar SECS_PER_MIN = 60;\nvar SECS_PER_HOUR = SECS_PER_MIN * 60;\nvar SECS_PER_DAY = SECS_PER_HOUR * 24;\nvar SECS_PER_WEEK = SECS_PER_DAY * 7;\nexport function selectUnit(from, to, thresholds) {\n if (to === void 0) { to = Date.now(); }\n if (thresholds === void 0) { thresholds = {}; }\n var resolvedThresholds = __assign(__assign({}, DEFAULT_THRESHOLDS), (thresholds || {}));\n var secs = (+from - +to) / MS_PER_SECOND;\n if (Math.abs(secs) < resolvedThresholds.second) {\n return {\n value: Math.round(secs),\n unit: 'second',\n };\n }\n var mins = secs / SECS_PER_MIN;\n if (Math.abs(mins) < resolvedThresholds.minute) {\n return {\n value: Math.round(mins),\n unit: 'minute',\n };\n }\n var hours = secs / SECS_PER_HOUR;\n if (Math.abs(hours) < resolvedThresholds.hour) {\n return {\n value: Math.round(hours),\n unit: 'hour',\n };\n }\n var days = secs / SECS_PER_DAY;\n if (Math.abs(days) < resolvedThresholds.day) {\n return {\n value: Math.round(days),\n unit: 'day',\n };\n }\n var fromDate = new Date(from);\n var toDate = new Date(to);\n var years = fromDate.getFullYear() - toDate.getFullYear();\n if (Math.round(Math.abs(years)) > 0) {\n return {\n value: Math.round(years),\n unit: 'year',\n };\n }\n var months = years * 12 + fromDate.getMonth() - toDate.getMonth();\n if (Math.round(Math.abs(months)) > 0) {\n return {\n value: Math.round(months),\n unit: 'month',\n };\n }\n var weeks = secs / SECS_PER_WEEK;\n return {\n value: Math.round(weeks),\n unit: 'week',\n };\n}\nexport var DEFAULT_THRESHOLDS = {\n second: 45,\n minute: 45,\n hour: 22,\n day: 5,\n};\n//# sourceMappingURL=diff.js.map","/* @generated */\n// prettier-ignore \nexport default { \"aa-SAAHO\": \"ssy\", \"aam\": \"aas\", \"aar\": \"aa\", \"abk\": \"ab\", \"adp\": \"dz\", \"afr\": \"af\", \"aju\": \"jrb\", \"aka\": \"ak\", \"alb\": \"sq\", \"als\": \"sq\", \"amh\": \"am\", \"ara\": \"ar\", \"arb\": \"ar\", \"arg\": \"an\", \"arm\": \"hy\", \"art-lojban\": \"jbo\", \"asd\": \"snz\", \"asm\": \"as\", \"aue\": \"ktz\", \"ava\": \"av\", \"ave\": \"ae\", \"aym\": \"ay\", \"ayr\": \"ay\", \"ayx\": \"nun\", \"az-AZ\": \"az-Latn-AZ\", \"aze\": \"az\", \"azj\": \"az\", \"bak\": \"ba\", \"bam\": \"bm\", \"baq\": \"eu\", \"bcc\": \"bal\", \"bcl\": \"bik\", \"bel\": \"be\", \"ben\": \"bn\", \"bgm\": \"bcg\", \"bh\": \"bho\", \"bih\": \"bho\", \"bis\": \"bi\", \"bjd\": \"drl\", \"bod\": \"bo\", \"bos\": \"bs\", \"bre\": \"br\", \"bs-BA\": \"bs-Latn-BA\", \"bul\": \"bg\", \"bur\": \"my\", \"bxk\": \"luy\", \"bxr\": \"bua\", \"cat\": \"ca\", \"ccq\": \"rki\", \"cel-gaulish\": \"xtg-x-cel-gaulish\", \"ces\": \"cs\", \"cha\": \"ch\", \"che\": \"ce\", \"chi\": \"zh\", \"chu\": \"cu\", \"chv\": \"cv\", \"cjr\": \"mom\", \"cka\": \"cmr\", \"cld\": \"syr\", \"cmk\": \"xch\", \"cmn\": \"zh\", \"cnr\": \"sr-ME\", \"cor\": \"kw\", \"cos\": \"co\", \"coy\": \"pij\", \"cqu\": \"quh\", \"cre\": \"cr\", \"cwd\": \"cr\", \"cym\": \"cy\", \"cze\": \"cs\", \"dan\": \"da\", \"deu\": \"de\", \"dgo\": \"doi\", \"dhd\": \"mwr\", \"dik\": \"din\", \"diq\": \"zza\", \"dit\": \"dif\", \"div\": \"dv\", \"drh\": \"mn\", \"drw\": \"fa-af\", \"dut\": \"nl\", \"dzo\": \"dz\", \"ekk\": \"et\", \"ell\": \"el\", \"emk\": \"man\", \"eng\": \"en\", \"epo\": \"eo\", \"esk\": \"ik\", \"est\": \"et\", \"eus\": \"eu\", \"ewe\": \"ee\", \"fao\": \"fo\", \"fas\": \"fa\", \"fat\": \"ak\", \"fij\": \"fj\", \"fin\": \"fi\", \"fra\": \"fr\", \"fre\": \"fr\", \"fry\": \"fy\", \"fuc\": \"ff\", \"ful\": \"ff\", \"gav\": \"dev\", \"gaz\": \"om\", \"gbo\": \"grb\", \"geo\": \"ka\", \"ger\": \"de\", \"gfx\": \"vaj\", \"ggn\": \"gvr\", \"gla\": \"gd\", \"gle\": \"ga\", \"glg\": \"gl\", \"glv\": \"gv\", \"gno\": \"gon\", \"gre\": \"el\", \"grn\": \"gn\", \"gti\": \"nyc\", \"gug\": \"gn\", \"guj\": \"gu\", \"guv\": \"duz\", \"gya\": \"gba\", \"ha-Latn-GH\": \"ha-GH\", \"ha-Latn-NE\": \"ha-NE\", \"ha-Latn-NG\": \"ha-NG\", \"hat\": \"ht\", \"hau\": \"ha\", \"hbs\": \"sr-Latn\", \"hdn\": \"hai\", \"hea\": \"hmn\", \"heb\": \"he\", \"her\": \"hz\", \"him\": \"srx\", \"hin\": \"hi\", \"hmo\": \"ho\", \"hrr\": \"jal\", \"hrv\": \"hr\", \"hun\": \"hu\", \"hye\": \"hy\", \"i-ami\": \"ami\", \"i-bnn\": \"bnn\", \"i-hak\": \"hak\", \"i-klingon\": \"tlh\", \"i-lux\": \"lb\", \"i-navajo\": \"nv\", \"i-pwn\": \"pwn\", \"i-tao\": \"tao\", \"i-tay\": \"tay\", \"i-tsu\": \"tsu\", \"i-default\": \"en-x-i-default\", \"i-enochian\": \"und-x-i-enochian\", \"i-mingo\": \"see-x-i-mingo\", \"ibi\": \"opa\", \"ibo\": \"ig\", \"ice\": \"is\", \"ido\": \"io\", \"iii\": \"ii\", \"ike\": \"iu\", \"iku\": \"iu\", \"ile\": \"ie\", \"ilw\": \"gal\", \"in\": \"id\", \"ina\": \"ia\", \"ind\": \"id\", \"ipk\": \"ik\", \"isl\": \"is\", \"ita\": \"it\", \"iw\": \"he\", \"jav\": \"jv\", \"jeg\": \"oyb\", \"ji\": \"yi\", \"jpn\": \"ja\", \"jw\": \"jv\", \"kal\": \"kl\", \"kan\": \"kn\", \"kas\": \"ks\", \"kat\": \"ka\", \"kau\": \"kr\", \"kaz\": \"kk\", \"kgc\": \"tdf\", \"kgh\": \"kml\", \"khk\": \"mn\", \"khm\": \"km\", \"kik\": \"ki\", \"kin\": \"rw\", \"kir\": \"ky\", \"kk-Cyrl-KZ\": \"kk-KZ\", \"kmr\": \"ku\", \"knc\": \"kr\", \"kng\": \"kg\", \"knn\": \"kok\", \"koj\": \"kwv\", \"kom\": \"kv\", \"kon\": \"kg\", \"kor\": \"ko\", \"kpv\": \"kv\", \"krm\": \"bmf\", \"ks-Arab-IN\": \"ks-IN\", \"ktr\": \"dtp\", \"kua\": \"kj\", \"kur\": \"ku\", \"kvs\": \"gdj\", \"kwq\": \"yam\", \"kxe\": \"tvd\", \"ky-Cyrl-KG\": \"ky-KG\", \"kzj\": \"dtp\", \"kzt\": \"dtp\", \"lao\": \"lo\", \"lat\": \"la\", \"lav\": \"lv\", \"lbk\": \"bnc\", \"lii\": \"raq\", \"lim\": \"li\", \"lin\": \"ln\", \"lit\": \"lt\", \"llo\": \"ngt\", \"lmm\": \"rmx\", \"ltz\": \"lb\", \"lub\": \"lu\", \"lug\": \"lg\", \"lvs\": \"lv\", \"mac\": \"mk\", \"mah\": \"mh\", \"mal\": \"ml\", \"mao\": \"mi\", \"mar\": \"mr\", \"may\": \"ms\", \"meg\": \"cir\", \"mhr\": \"chm\", \"mkd\": \"mk\", \"mlg\": \"mg\", \"mlt\": \"mt\", \"mn-Cyrl-MN\": \"mn-MN\", \"mnk\": \"man\", \"mo\": \"ro\", \"mol\": \"ro\", \"mon\": \"mn\", \"mri\": \"mi\", \"ms-Latn-BN\": \"ms-BN\", \"ms-Latn-MY\": \"ms-MY\", \"ms-Latn-SG\": \"ms-SG\", \"msa\": \"ms\", \"mst\": \"mry\", \"mup\": \"raj\", \"mwj\": \"vaj\", \"mya\": \"my\", \"myd\": \"aog\", \"myt\": \"mry\", \"nad\": \"xny\", \"nau\": \"na\", \"nav\": \"nv\", \"nbl\": \"nr\", \"ncp\": \"kdz\", \"nde\": \"nd\", \"ndo\": \"ng\", \"nep\": \"ne\", \"nld\": \"nl\", \"nno\": \"nn\", \"nns\": \"nbr\", \"nnx\": \"ngv\", \"no\": \"nb\", \"no-bok\": \"nb\", \"no-BOKMAL\": \"nb\", \"no-nyn\": \"nn\", \"no-NYNORSK\": \"nn\", \"nob\": \"nb\", \"nor\": \"nb\", \"npi\": \"ne\", \"nts\": \"pij\", \"nya\": \"ny\", \"oci\": \"oc\", \"ojg\": \"oj\", \"oji\": \"oj\", \"ori\": \"or\", \"orm\": \"om\", \"ory\": \"or\", \"oss\": \"os\", \"oun\": \"vaj\", \"pa-IN\": \"pa-Guru-IN\", \"pa-PK\": \"pa-Arab-PK\", \"pan\": \"pa\", \"pbu\": \"ps\", \"pcr\": \"adx\", \"per\": \"fa\", \"pes\": \"fa\", \"pli\": \"pi\", \"plt\": \"mg\", \"pmc\": \"huw\", \"pmu\": \"phr\", \"pnb\": \"lah\", \"pol\": \"pl\", \"por\": \"pt\", \"ppa\": \"bfy\", \"ppr\": \"lcq\", \"prs\": \"fa-AF\", \"pry\": \"prt\", \"pus\": \"ps\", \"puz\": \"pub\", \"que\": \"qu\", \"quz\": \"qu\", \"rmy\": \"rom\", \"roh\": \"rm\", \"ron\": \"ro\", \"rum\": \"ro\", \"run\": \"rn\", \"rus\": \"ru\", \"sag\": \"sg\", \"san\": \"sa\", \"sca\": \"hle\", \"scc\": \"sr\", \"scr\": \"hr\", \"sgn-BE-FR\": \"sfb\", \"sgn-BE-NL\": \"vgt\", \"sgn-CH-DE\": \"sgg\", \"sh\": \"sr-Latn\", \"shi-MA\": \"shi-Tfng-MA\", \"sin\": \"si\", \"skk\": \"oyb\", \"slk\": \"sk\", \"slo\": \"sk\", \"slv\": \"sl\", \"sme\": \"se\", \"smo\": \"sm\", \"sna\": \"sn\", \"snd\": \"sd\", \"som\": \"so\", \"sot\": \"st\", \"spa\": \"es\", \"spy\": \"kln\", \"sqi\": \"sq\", \"sr-BA\": \"sr-Cyrl-BA\", \"sr-ME\": \"sr-Latn-ME\", \"sr-RS\": \"sr-Cyrl-RS\", \"sr-XK\": \"sr-Cyrl-XK\", \"src\": \"sc\", \"srd\": \"sc\", \"srp\": \"sr\", \"ssw\": \"ss\", \"sun\": \"su\", \"swa\": \"sw\", \"swc\": \"sw-CD\", \"swe\": \"sv\", \"swh\": \"sw\", \"tah\": \"ty\", \"tam\": \"ta\", \"tat\": \"tt\", \"tdu\": \"dtp\", \"tel\": \"te\", \"tgk\": \"tg\", \"tgl\": \"fil\", \"tha\": \"th\", \"thc\": \"tpo\", \"thx\": \"oyb\", \"tib\": \"bo\", \"tie\": \"ras\", \"tir\": \"ti\", \"tkk\": \"twm\", \"tl\": \"fil\", \"tlw\": \"weo\", \"tmp\": \"tyj\", \"tne\": \"kak\", \"tnf\": \"fa-af\", \"ton\": \"to\", \"tsf\": \"taj\", \"tsn\": \"tn\", \"tso\": \"ts\", \"ttq\": \"tmh\", \"tuk\": \"tk\", \"tur\": \"tr\", \"tw\": \"ak\", \"twi\": \"ak\", \"tzm-Latn-MA\": \"tzm-MA\", \"ug-Arab-CN\": \"ug-CN\", \"uig\": \"ug\", \"ukr\": \"uk\", \"umu\": \"del\", \"uok\": \"ema\", \"urd\": \"ur\", \"uz-AF\": \"uz-Arab-AF\", \"uz-UZ\": \"uz-Latn-UZ\", \"uzb\": \"uz\", \"uzn\": \"uz\", \"vai-LR\": \"vai-Vaii-LR\", \"ven\": \"ve\", \"vie\": \"vi\", \"vol\": \"vo\", \"wel\": \"cy\", \"wln\": \"wa\", \"wol\": \"wo\", \"xba\": \"cax\", \"xho\": \"xh\", \"xia\": \"acn\", \"xkh\": \"waw\", \"xpe\": \"kpe\", \"xsj\": \"suj\", \"xsl\": \"den\", \"ybd\": \"rki\", \"ydd\": \"yi\", \"yid\": \"yi\", \"yma\": \"lrr\", \"ymt\": \"mtm\", \"yor\": \"yo\", \"yos\": \"zom\", \"yue-CN\": \"yue-Hans-CN\", \"yue-HK\": \"yue-Hant-HK\", \"yuu\": \"yug\", \"zai\": \"zap\", \"zh-CN\": \"zh-Hans-CN\", \"zh-guoyu\": \"zh\", \"zh-hakka\": \"hak\", \"zh-HK\": \"zh-Hant-HK\", \"zh-min-nan\": \"nan\", \"zh-MO\": \"zh-Hant-MO\", \"zh-SG\": \"zh-Hans-SG\", \"zh-TW\": \"zh-Hant-TW\", \"zh-xiang\": \"hsn\", \"zh-min\": \"nan-x-zh-min\", \"zha\": \"za\", \"zho\": \"zh\", \"zsm\": \"ms\", \"zul\": \"zu\", \"zyb\": \"za\" };\n//# sourceMappingURL=aliases.js.map","/* @generated */\n// prettier-ignore \nexport default { \"en-150\": \"en-001\", \"en-AG\": \"en-001\", \"en-AI\": \"en-001\", \"en-AU\": \"en-001\", \"en-BB\": \"en-001\", \"en-BM\": \"en-001\", \"en-BS\": \"en-001\", \"en-BW\": \"en-001\", \"en-BZ\": \"en-001\", \"en-CA\": \"en-001\", \"en-CC\": \"en-001\", \"en-CK\": \"en-001\", \"en-CM\": \"en-001\", \"en-CX\": \"en-001\", \"en-CY\": \"en-001\", \"en-DG\": \"en-001\", \"en-DM\": \"en-001\", \"en-ER\": \"en-001\", \"en-FJ\": \"en-001\", \"en-FK\": \"en-001\", \"en-FM\": \"en-001\", \"en-GB\": \"en-001\", \"en-GD\": \"en-001\", \"en-GG\": \"en-001\", \"en-GH\": \"en-001\", \"en-GI\": \"en-001\", \"en-GM\": \"en-001\", \"en-GY\": \"en-001\", \"en-HK\": \"en-001\", \"en-IE\": \"en-001\", \"en-IL\": \"en-001\", \"en-IM\": \"en-001\", \"en-IN\": \"en-001\", \"en-IO\": \"en-001\", \"en-JE\": \"en-001\", \"en-JM\": \"en-001\", \"en-KE\": \"en-001\", \"en-KI\": \"en-001\", \"en-KN\": \"en-001\", \"en-KY\": \"en-001\", \"en-LC\": \"en-001\", \"en-LR\": \"en-001\", \"en-LS\": \"en-001\", \"en-MG\": \"en-001\", \"en-MO\": \"en-001\", \"en-MS\": \"en-001\", \"en-MT\": \"en-001\", \"en-MU\": \"en-001\", \"en-MW\": \"en-001\", \"en-MY\": \"en-001\", \"en-NA\": \"en-001\", \"en-NF\": \"en-001\", \"en-NG\": \"en-001\", \"en-NR\": \"en-001\", \"en-NU\": \"en-001\", \"en-NZ\": \"en-001\", \"en-PG\": \"en-001\", \"en-PH\": \"en-001\", \"en-PK\": \"en-001\", \"en-PN\": \"en-001\", \"en-PW\": \"en-001\", \"en-RW\": \"en-001\", \"en-SB\": \"en-001\", \"en-SC\": \"en-001\", \"en-SD\": \"en-001\", \"en-SG\": \"en-001\", \"en-SH\": \"en-001\", \"en-SL\": \"en-001\", \"en-SS\": \"en-001\", \"en-SX\": \"en-001\", \"en-SZ\": \"en-001\", \"en-TC\": \"en-001\", \"en-TK\": \"en-001\", \"en-TO\": \"en-001\", \"en-TT\": \"en-001\", \"en-TV\": \"en-001\", \"en-TZ\": \"en-001\", \"en-UG\": \"en-001\", \"en-VC\": \"en-001\", \"en-VG\": \"en-001\", \"en-VU\": \"en-001\", \"en-WS\": \"en-001\", \"en-ZA\": \"en-001\", \"en-ZM\": \"en-001\", \"en-ZW\": \"en-001\", \"en-AT\": \"en-150\", \"en-BE\": \"en-150\", \"en-CH\": \"en-150\", \"en-DE\": \"en-150\", \"en-DK\": \"en-150\", \"en-FI\": \"en-150\", \"en-NL\": \"en-150\", \"en-SE\": \"en-150\", \"en-SI\": \"en-150\", \"es-AR\": \"es-419\", \"es-BO\": \"es-419\", \"es-BR\": \"es-419\", \"es-BZ\": \"es-419\", \"es-CL\": \"es-419\", \"es-CO\": \"es-419\", \"es-CR\": \"es-419\", \"es-CU\": \"es-419\", \"es-DO\": \"es-419\", \"es-EC\": \"es-419\", \"es-GT\": \"es-419\", \"es-HN\": \"es-419\", \"es-MX\": \"es-419\", \"es-NI\": \"es-419\", \"es-PA\": \"es-419\", \"es-PE\": \"es-419\", \"es-PR\": \"es-419\", \"es-PY\": \"es-419\", \"es-SV\": \"es-419\", \"es-US\": \"es-419\", \"es-UY\": \"es-419\", \"es-VE\": \"es-419\", \"pt-AO\": \"pt-PT\", \"pt-CH\": \"pt-PT\", \"pt-CV\": \"pt-PT\", \"pt-FR\": \"pt-PT\", \"pt-GQ\": \"pt-PT\", \"pt-GW\": \"pt-PT\", \"pt-LU\": \"pt-PT\", \"pt-MO\": \"pt-PT\", \"pt-MZ\": \"pt-PT\", \"pt-ST\": \"pt-PT\", \"pt-TL\": \"pt-PT\", \"zh-Hant-MO\": \"zh-Hant-HK\" };\n//# sourceMappingURL=parentLocales.js.map","import aliases from './aliases';\nimport parentLocales from './parentLocales';\nimport { invariant } from './invariant';\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function toObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function toString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function getOption(opts, prop, type, values, fallback) {\n // const descriptor = Object.getOwnPropertyDescriptor(opts, prop);\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = toString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(value + \" is not within \" + values.join(', '));\n }\n return value;\n }\n return fallback;\n}\n/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function defaultNumberOption(val, min, max, fallback) {\n if (val !== undefined) {\n val = Number(val);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(val + \" is outside of range [\" + min + \", \" + max + \"]\");\n }\n return Math.floor(val);\n }\n return fallback;\n}\n/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nexport function getNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return defaultNumberOption(val, minimum, maximum, fallback);\n}\nexport function getAliasesByLang(lang) {\n return Object.keys(aliases).reduce(function (all, locale) {\n if (locale.split('-')[0] === lang) {\n all[locale] = aliases[locale];\n }\n return all;\n }, {});\n}\nexport function getParentLocalesByLang(lang) {\n return Object.keys(parentLocales).reduce(function (all, locale) {\n if (locale.split('-')[0] === lang) {\n all[locale] = parentLocales[locale];\n }\n return all;\n }, {});\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(pl + \" InternalSlot has not been initialized\");\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\nexport function partitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \" + pattern);\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n * https://tc39.es/proposal-unified-intl-numberformat/section11/numberformat_diff_out.html#sec-setnfdigitoptions\n * @param intlObj\n * @param opts\n * @param mnfdDefault\n * @param mxfdDefault\n */\nexport function setNumberFormatDigitOptions(internalSlotMap, intlObj, opts, mnfdDefault, mxfdDefault) {\n var mnid = getNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n setInternalSlot(internalSlotMap, intlObj, 'minimumIntegerDigits', mnid);\n if (mnsd !== undefined || mxsd !== undefined) {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'significantDigits');\n mnsd = defaultNumberOption(mnsd, 1, 21, 1);\n mxsd = defaultNumberOption(mxsd, mnsd, 21, 21);\n setInternalSlot(internalSlotMap, intlObj, 'minimumSignificantDigits', mnsd);\n setInternalSlot(internalSlotMap, intlObj, 'maximumSignificantDigits', mxsd);\n }\n else if (mnfd !== undefined || mxfd !== undefined) {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'fractionDigits');\n mnfd = defaultNumberOption(mnfd, 0, 20, mnfdDefault);\n var mxfdActualDefault = Math.max(mnfd, mxfdDefault);\n mxfd = defaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);\n setInternalSlot(internalSlotMap, intlObj, 'minimumFractionDigits', mnfd);\n setInternalSlot(internalSlotMap, intlObj, 'maximumFractionDigits', mxfd);\n }\n else if (getInternalSlot(internalSlotMap, intlObj, 'notation') === 'compact') {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'compactRounding');\n }\n else {\n setInternalSlot(internalSlotMap, intlObj, 'roundingType', 'fractionDigits');\n setInternalSlot(internalSlotMap, intlObj, 'minimumFractionDigits', mnfdDefault);\n setInternalSlot(internalSlotMap, intlObj, 'maximumFractionDigits', mxfdDefault);\n }\n}\nexport function objectIs(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\n/**\n * https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-iswellformedcurrencycode\n * @param currency\n */\nexport function isWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=polyfill-utils.js.map","/**\n * IE11-safe version of getCanonicalLocales since it's ES2016\n * @param locales locales\n */\nexport function getCanonicalLocales(locales) {\n // IE11\n var getCanonicalLocales = Intl.getCanonicalLocales;\n if (typeof getCanonicalLocales === 'function') {\n return getCanonicalLocales(locales);\n }\n // NOTE: we must NOT call `supportedLocalesOf` of a formatjs polyfill, or their implementation\n // will even eventually call this method recursively. Here we use `Intl.DateTimeFormat` since it\n // is not polyfilled by `@formatjs`.\n // TODO: Fix TypeScript type def for this bc undefined is just fine\n return Intl.DateTimeFormat.supportedLocalesOf(locales);\n}\n//# sourceMappingURL=get-canonical-locales.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { getCanonicalLocales } from './get-canonical-locales';\nimport { invariant } from './invariant';\nimport { toObject, getOption } from './polyfill-utils';\nexport function createResolveLocale(getDefaultLocale) {\n var lookupMatcher = createLookupMatcher(getDefaultLocale);\n var bestFitMatcher = createBestFitMatcher(getDefaultLocale);\n /**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\n return function resolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = lookupMatcher(availableLocales, requestedLocales);\n }\n else {\n r = bestFitMatcher(availableLocales, requestedLocales);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \" + key + \" must be an object\");\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \" + key + \" must be an array\");\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, 'value must be string or null');\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = unicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\" + key + \"-\" + value;\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\" + key;\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n };\n}\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nfunction unicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\" + key + \"-\";\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\" + key;\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\nvar UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\n/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nfunction bestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (~availableLocales.indexOf(candidate)) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\nfunction createLookupMatcher(getDefaultLocale) {\n /**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n */\n return function lookupMatcher(availableLocales, requestedLocales) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n };\n}\nfunction createBestFitMatcher(getDefaultLocale) {\n return function bestFitMatcher(availableLocales, requestedLocales) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_2 = requestedLocales; _i < requestedLocales_2.length; _i++) {\n var locale = requestedLocales_2[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n };\n}\nexport function getLocaleHierarchy(locale, aliases, parentLocales) {\n var results = [locale];\n if (aliases[locale]) {\n locale = aliases[locale];\n results.push(locale);\n }\n var parentLocale = parentLocales[locale];\n if (parentLocale) {\n results.push(parentLocale);\n }\n var localeParts = locale.split('-');\n for (var i = localeParts.length; i > 1; i--) {\n results.push(localeParts.slice(0, i - 1).join('-'));\n }\n return results;\n}\nfunction lookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_3 = requestedLocales; _i < requestedLocales_3.length; _i++) {\n var locale = requestedLocales_3[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = bestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\nexport function supportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = toObject(options);\n matcher = getOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return lookupSupportedLocales(availableLocales, requestedLocales);\n }\n return lookupSupportedLocales(availableLocales, requestedLocales);\n}\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\nexport function unpackData(locale, localeData, \n/** By default shallow merge the dictionaries. */\nreducer) {\n if (reducer === void 0) { reducer = function (all, d) { return (__assign(__assign({}, all), d)); }; }\n var localeHierarchy = getLocaleHierarchy(locale, localeData.aliases, localeData.parentLocales);\n var dataToMerge = localeHierarchy\n .map(function (l) { return localeData.data[l]; })\n .filter(Boolean);\n if (!dataToMerge.length) {\n throw new MissingLocaleDataError(\"Missing locale data for \\\"\" + locale + \"\\\", lookup hierarchy: \" + localeHierarchy.join(', '));\n }\n dataToMerge.reverse();\n return dataToMerge.reduce(reducer, {});\n}\n//# sourceMappingURL=resolve-locale.js.map","// https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_diff_out.html#sec-issanctionedsimpleunitidentifier\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\n//# sourceMappingURL=units.js.map","export var InternalSlotToken;\n(function (InternalSlotToken) {\n // To prevent collision with {0} in CLDR\n InternalSlotToken[\"compactName\"] = \"compactName\";\n InternalSlotToken[\"compactSymbol\"] = \"compactSymbol\";\n InternalSlotToken[\"currencyCode\"] = \"currencyCode\";\n InternalSlotToken[\"currencyName\"] = \"currencyName\";\n InternalSlotToken[\"currencyNarrowSymbol\"] = \"currencyNarrowSymbol\";\n InternalSlotToken[\"currencySymbol\"] = \"currencySymbol\";\n InternalSlotToken[\"minusSign\"] = \"minusSign\";\n InternalSlotToken[\"number\"] = \"number\";\n InternalSlotToken[\"percentSign\"] = \"percentSign\";\n InternalSlotToken[\"plusSign\"] = \"plusSign\";\n InternalSlotToken[\"scientificExponent\"] = \"scientificExponent\";\n InternalSlotToken[\"scientificSeparator\"] = \"scientificSeparator\";\n InternalSlotToken[\"unitName\"] = \"unitName\";\n InternalSlotToken[\"unitNarrowSymbol\"] = \"unitNarrowSymbol\";\n InternalSlotToken[\"unitSymbol\"] = \"unitSymbol\";\n})(InternalSlotToken || (InternalSlotToken = {}));\n//# sourceMappingURL=number-types.js.map","export function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n//# sourceMappingURL=invariant.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","/*!\n * \n * Mon Sep 06 2021 22:45:41 GMT-0500 (Central Daylight Time)\n * Accessible NProgress, (c) 2021 Nicholas Mackey - http://nmackey.com/accessible-nprogress\n * @license MIT\n *\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"NProgress\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"NProgress\"] = factory();\n\telse\n\t\troot[\"NProgress\"] = factory();\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/util.js\":\n/*!*********************!*\\\n !*** ./src/util.js ***!\n \\*********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"assign\": function() { return /* binding */ assign; },\n/* harmony export */ \"clamp\": function() { return /* binding */ clamp; },\n/* harmony export */ \"toBarPerc\": function() { return /* binding */ toBarPerc; },\n/* harmony export */ \"randomInc\": function() { return /* binding */ randomInc; },\n/* harmony export */ \"removeElement\": function() { return /* binding */ removeElement; },\n/* harmony export */ \"queue\": function() { return /* binding */ queue; }\n/* harmony export */ });\n/**\n * Substitute for Object.assign()\n * Modified from: https://stackoverflow.com/a/30498430\n *\n * @param {object} target - target object to merge to\n * @param {...object} objectsToMerge - arbitrary number of objects to merge into 'target'\n * @return {object} target merged object\n */\nfunction assign(target) {\n var retTarget = Object(target);\n\n for (var i = 0; i < (arguments.length <= 1 ? 0 : arguments.length - 1); i += 1) {\n var obj = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n var keys = Object.keys(obj);\n\n for (var j = 0; j < keys.length; j += 1) {\n retTarget[keys[j]] = obj[keys[j]];\n }\n }\n\n return retTarget;\n}\n/**\n * Ensure n is between min & max\n *\n * @param {number} value - number to clamp\n * @param {number} min - minimum\n * @param {number} max - maximum\n * @return {number} clampped value\n */\n\nfunction clamp(value, min, max) {\n if (value < min) return min;\n if (value > max) return max;\n return value;\n}\n/**\n * Converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n *\n * @param {number} value - percentage to convert\n * @return {number} percentage\n */\n\nfunction toBarPerc(value) {\n return (-1 + value) * 100;\n}\n/**\n * Gets an increment to use based on status\n *\n * @param {number} status - current status of the progress bar\n * @return {number} increment\n */\n\nfunction randomInc(status) {\n if (status >= 0 && status < 0.2) {\n return 0.1;\n }\n\n if (status >= 0.2 && status < 0.5) {\n return 0.04;\n }\n\n if (status >= 0.5 && status < 0.8) {\n return 0.02;\n }\n\n if (status >= 0.8 && status < 0.99) {\n return 0.005;\n }\n\n return 0;\n}\n/**\n * Removes an element from the DOM.\n *\n * @param {HTMLElement} element - element to remove\n */\n\nfunction removeElement(element) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n/**\n * Queues a function to be executed.\n *\n * @return {function}\n */\n\nvar queue = function () {\n var functionQueue = [];\n\n function next() {\n var fn = functionQueue.shift();\n\n if (fn) {\n fn(next);\n }\n }\n\n return function (fn) {\n functionQueue.push(fn);\n\n if (functionQueue.length === 1) {\n next();\n }\n };\n}();\n\n/***/ }),\n\n/***/ \"./src/styles.css\":\n/*!************************!*\\\n !*** ./src/styles.css ***!\n \\************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ \"./src/util.js\");\n/* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./styles.css */ \"./src/styles.css\");\n\n\nvar DEFAULTS = {\n minimum: 0.08,\n easing: 'linear',\n speed: 200,\n trickle: true,\n trickleSpeed: 200,\n showSpinner: true,\n barSelector: 'div.bar',\n barLabel: 'processing request',\n spinnerSelector: 'div.spinner',\n spinnerLabel: 'processing request',\n parent: 'body',\n template: \"\\n
\\n
\\n
\\n
\\n
\\n
\\n \"\n};\n\nvar NProgress = function NProgress() {\n var localSettings = DEFAULTS;\n var localStatus = null;\n var initialPromises = 0;\n var currentPromises = 0;\n /**\n * @return {boolean} If the progress bar is rendered.\n */\n\n function isRendered() {\n return !!document.getElementById('nprogress');\n }\n /**\n * @return {boolean} If there is curent progress.\n */\n\n\n function isStarted() {\n return typeof localStatus === 'number';\n }\n /**\n * Renders the progress bar markup based on the `template` setting.\n *\n * @return {HTMLElement} The element rendered.\n */\n\n\n function render() {\n if (isRendered()) {\n return document.getElementById('nprogress');\n }\n\n document.documentElement.classList.add('nprogress-busy');\n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = localSettings.template;\n var perc = isStarted() ? '-100' : (0,_util__WEBPACK_IMPORTED_MODULE_0__.toBarPerc)(localStatus || 0);\n var bar = progress.querySelector(localSettings.barSelector);\n bar.setAttribute('aria-label', localSettings.barLabel);\n bar.style.transform = \"translate3d(\".concat(perc, \"%,0,0)\");\n bar.style.transition = 'all 0 linear';\n var spinner = progress.querySelector(localSettings.spinnerSelector);\n\n if (spinner) {\n if (!localSettings.showSpinner) {\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.removeElement)(spinner);\n } else {\n spinner.setAttribute('aria-label', localSettings.spinnerLabel);\n }\n }\n\n var parent = document.querySelector(localSettings.parent);\n\n if (parent) {\n if (parent !== document.body) {\n parent.classList.add('nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n }\n\n return progress;\n }\n\n return {\n /**\n * Updates configuration.\n *\n * @param {object} options - options to override/set\n * @return {object} The NProgress object.\n */\n configure: function configure(options) {\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.assign)(localSettings, options);\n return this;\n },\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * @param {number} value - progress to set\n * @return {object} The NProgress object.\n */\n set: function set(value) {\n var _this = this;\n\n var clamppedValue = (0,_util__WEBPACK_IMPORTED_MODULE_0__.clamp)(value, localSettings.minimum, 1);\n localStatus = clamppedValue === 1 ? null : clamppedValue;\n var progress = render(); // Repaint\n\n progress.offsetWidth; // eslint-disable-line no-unused-expressions\n\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.queue)(function (next) {\n // Add transition\n var speed = localSettings.speed,\n easing = localSettings.easing;\n var bar = progress.querySelector(localSettings.barSelector);\n bar.setAttribute('aria-valuenow', clamppedValue);\n bar.style.transform = \"translate3d(\".concat((0,_util__WEBPACK_IMPORTED_MODULE_0__.toBarPerc)(clamppedValue), \"%,0,0)\");\n bar.style.transition = \"all \".concat(speed, \"ms \").concat(easing);\n\n if (clamppedValue === 1) {\n // Fade out\n progress.style.transition = 'none';\n progress.style.opacity = 1; // Repaint\n\n progress.offsetWidth; // eslint-disable-line no-unused-expressions\n\n setTimeout(function () {\n progress.style.transition = \"all \".concat(speed, \"ms linear\");\n progress.style.opacity = 0;\n setTimeout(function () {\n _this.remove();\n\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n return this;\n },\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * @return {object} The NProgress object.\n */\n start: function start() {\n var _this2 = this;\n\n if (!localStatus) {\n this.set(0);\n }\n\n var work = function work() {\n setTimeout(function () {\n if (!localStatus) {\n return;\n }\n\n _this2.inc();\n\n work();\n }, localSettings.trickleSpeed);\n };\n\n if (localSettings.trickle) {\n work();\n }\n\n return this;\n },\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * @param {boolean} force - show the progress bar complete even if its hidden\n * @return {object} The NProgress object.\n */\n done: function done(force) {\n if (!force && !localStatus) {\n return this;\n }\n\n var halfRandom = 0.5 * Math.random();\n return this.inc(0.3 + halfRandom).set(1);\n },\n\n /**\n * Increments progress bar by given amount.\n *\n * @param {number} [amount] - amount to increment the progress bar by\n * @return {object} The NProgress object.\n */\n inc: function inc() {\n var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0,_util__WEBPACK_IMPORTED_MODULE_0__.randomInc)(localStatus);\n\n if (!localStatus) {\n return this.start();\n }\n\n var clamppedStatus = (0,_util__WEBPACK_IMPORTED_MODULE_0__.clamp)(localStatus + amount, 0, 0.994);\n return this.set(clamppedStatus);\n },\n\n /**\n * Removes the element. Opposite of render().\n */\n remove: function remove() {\n document.documentElement.classList.remove('nprogress-busy');\n document.querySelector(localSettings.parent).classList.remove('nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n\n if (progress) {\n (0,_util__WEBPACK_IMPORTED_MODULE_0__.removeElement)(progress);\n }\n },\n\n /**\n * Waits for all supplied promises and increases the progress as the promises resolve.\n *\n * @param $promise Promise\n * @return {object} The NProgress object.\n */\n promise: function promise($promise) {\n var _this3 = this;\n\n if (currentPromises === 0) {\n this.start();\n }\n\n initialPromises += 1;\n currentPromises += 1;\n\n var promiseResolution = function promiseResolution() {\n currentPromises -= 1;\n\n if (currentPromises === 0) {\n initialPromises = 0;\n\n _this3.done();\n } else {\n _this3.set((initialPromises - currentPromises) / initialPromises);\n }\n };\n\n $promise.then(promiseResolution).catch(promiseResolution);\n return this;\n },\n\n get status() {\n return localStatus;\n },\n\n get settings() {\n return localSettings;\n }\n\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (NProgress());\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction startsWith(string, target, position) {\n var length = string.length;\n position = position == null ? 0 : position;\n\n if (position < 0) {\n position = 0;\n } else if (position > length) {\n position = length;\n }\n\n target = \"\".concat(target);\n return string.slice(position, position + target.length) == target;\n}\n\nfunction getBrowserLang() {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n var lang = window.navigator.languages && window.navigator.languages[0] || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage || window.navigator.systemLanguage || null;\n return lang;\n}\n\nfunction normalizeCode(code) {\n return code.toLowerCase().replace(/-/, \"_\");\n}\n\nfunction getPreferredLanguage(options) {\n if (!options) {\n return getBrowserLang();\n }\n\n var languages = options.languages,\n fallback = options.fallback;\n\n if (!options.languages) {\n return fallback;\n } // some browsers report language as en-US instead of en_US\n\n\n var browserLanguage = normalizeCode(getBrowserLang());\n\n if (!browserLanguage) {\n return fallback;\n }\n\n var match = languages.filter(function (lang) {\n return normalizeCode(lang) === browserLanguage;\n });\n\n if (match.length > 0) {\n return match[0] || fallback;\n } // en == en_US\n\n\n var matchCodeOnly = languages.filter(function (lang) {\n return startsWith(browserLanguage, lang);\n });\n return matchCodeOnly[0] || fallback;\n}\n\nvar _default = getPreferredLanguage;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\n\n// TODO(v5): Remove legacy setting and default to \"always\"\nconst applyTrailingSlashOption = (input, option = `legacy`) => {\n const hasHtmlSuffix = input.endsWith(`.html`);\n const hasXmlSuffix = input.endsWith(`.xml`);\n const hasPdfSuffix = input.endsWith(`.pdf`);\n if (input === `/`) return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = `never`;\n }\n\n if (option === `always`) {\n return input.endsWith(`/`) ? input : `${input}/`;\n }\n\n if (option === `never`) {\n return input.endsWith(`/`) ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n}; // Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\n\n\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\");\n\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\n\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-activation-form-js\": () => import(\"./../../../src/pages/activation-form.js\" /* webpackChunkName: \"component---src-pages-activation-form-js\" */),\n \"component---src-pages-career-js\": () => import(\"./../../../src/pages/career.js\" /* webpackChunkName: \"component---src-pages-career-js\" */),\n \"component---src-pages-case-studies-js\": () => import(\"./../../../src/pages/case-studies.js\" /* webpackChunkName: \"component---src-pages-case-studies-js\" */),\n \"component---src-pages-cookies-js\": () => import(\"./../../../src/pages/cookies.js\" /* webpackChunkName: \"component---src-pages-cookies-js\" */),\n \"component---src-pages-download-js\": () => import(\"./../../../src/pages/download.js\" /* webpackChunkName: \"component---src-pages-download-js\" */),\n \"component---src-pages-email-disclaimer-js\": () => import(\"./../../../src/pages/email-disclaimer.js\" /* webpackChunkName: \"component---src-pages-email-disclaimer-js\" */),\n \"component---src-pages-faqs-js\": () => import(\"./../../../src/pages/faqs.js\" /* webpackChunkName: \"component---src-pages-faqs-js\" */),\n \"component---src-pages-forgot-password-js\": () => import(\"./../../../src/pages/forgot-password.js\" /* webpackChunkName: \"component---src-pages-forgot-password-js\" */),\n \"component---src-pages-gdpr-js\": () => import(\"./../../../src/pages/gdpr.js\" /* webpackChunkName: \"component---src-pages-gdpr-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-job-application-js\": () => import(\"./../../../src/pages/job-application.js\" /* webpackChunkName: \"component---src-pages-job-application-js\" */),\n \"component---src-pages-job-application-pk-js\": () => import(\"./../../../src/pages/job-application-pk.js\" /* webpackChunkName: \"component---src-pages-job-application-pk-js\" */),\n \"component---src-pages-legal-js\": () => import(\"./../../../src/pages/legal.js\" /* webpackChunkName: \"component---src-pages-legal-js\" */),\n \"component---src-pages-pricing-js\": () => import(\"./../../../src/pages/pricing.js\" /* webpackChunkName: \"component---src-pages-pricing-js\" */),\n \"component---src-pages-privacy-js\": () => import(\"./../../../src/pages/privacy.js\" /* webpackChunkName: \"component---src-pages-privacy-js\" */),\n \"component---src-pages-term-use-js\": () => import(\"./../../../src/pages/term-use.js\" /* webpackChunkName: \"component---src-pages-term-use-js\" */),\n \"component---src-pages-terms-js\": () => import(\"./../../../src/pages/terms.js\" /* webpackChunkName: \"component---src-pages-terms-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Numuworld\",\"short_name\":\"numu\",\"start_url\":\"/\",\"display\":\"standalone\",\"icon\":\"src/images/favicon.svg\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"89581d6a8323fbbdd7df9110413f3b32\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-nprogress/gatsby-browser.js'),\n options: {\"plugins\":[],\"color\":\"#102E4C\",\"showSpinner\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-breakpoints/gatsby-browser.js'),\n options: {\"plugins\":[],\"queries\":{\"xs\":\"(max-width: 320px)\",\"sm\":\"(max-width: 425px)\",\"md\":\"(max-width: 767px)\",\"l\":\"(max-width: 1025px)\",\"lx\":\"(min-width: 1441px)\",\"portrait\":\"(orientation: portrait)\"}},\n },{\n plugin: require('../node_modules/gatsby-plugin-intl/gatsby-browser.js'),\n options: {\"plugins\":[],\"path\":\"/codebuild/output/src4197047921/src/numu-website-v2/src/intl\",\"languages\":[\"en\",\"es\"],\"defaultLanguage\":\"en\",\"redirect\":false},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst StaticQueryContext = React.createContext({})\nlet StaticQueryServerContext = null\nif (React.createServerContext) {\n StaticQueryServerContext = React.createServerContext(`StaticQuery`, {})\n}\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\n// TODO(v5): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n let context\n\n // Can we get a better check here?\n if (\n StaticQueryServerContext &&\n Object.keys(StaticQueryServerContext._currentValue).length\n ) {\n context = React.useContext(StaticQueryServerContext)\n } else {\n context = React.useContext(StaticQueryContext)\n }\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n default as Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n} from \"./static-query\"\n\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n let inFlightPromise\n if (global.hasPartialHydration) {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n this.loadPartialHydrationJson(pagePath),\n ]).then(([appData, { payload: pageData }, result]) => {\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n const finalResult = {}\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n const componentChunkPromise = this.loadComponent(\n pageData.componentChunkName,\n `head`\n ).then(head => {\n finalResult.createdAt = new Date()\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appData\n ? appData.webpackCompilationHash\n : ``,\n })\n\n const pageResources = toPageResources(pageData, null, head)\n\n if (result.payload && typeof result.payload === `string`) {\n pageResources.partialHydration = result.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(result.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n }\n\n // undefined if final result is an error\n return pageResources\n })\n\n // Necessary for head component\n const staticQueryBatchPromise = Promise.all(\n (pageData.staticQueryHashes || []).map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = {\n ...pageResources,\n staticQueryResults: staticQueryResults,\n }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n } else {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n const componentChunkPromise = Promise.all([\n this.loadComponent(componentChunkName),\n this.loadComponent(componentChunkName, `head`),\n ]).then(([component, head]) => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component, head)\n }\n // undefined if final result is an error\n return pageResources\n })\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n }\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in head.\n * @param {string} tagName\n */\nexport function warnForInvalidTags(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}`\n\n warnOnce(warning)\n }\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport { VALID_NODE_NAMES } from \"./constants\"\nimport {\n headExportValidator,\n filterHeadProps,\n warnForInvalidTags,\n diffNodes,\n} from \"./utils\"\n\nconst hiddenRoot = document.createElement(`div`)\n\nconst removePrevHeadElements = () => {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nconst onHeadRendered = () => {\n const validHeadNodes = []\n\n const seenIds = new Map()\n for (const node of hiddenRoot.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!VALID_NODE_NAMES.includes(nodeName)) {\n warnForInvalidTags(nodeName)\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // Create an element for scripts to make script work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n const script = document.createElement(`script`)\n for (const attr of clonedNode.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = clonedNode.innerHTML\n clonedNode = script\n }\n\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[indexOfPreviouslyInsertedNode].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\n\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // We set up observer to be able to regenerate after react-refresh\n // updates our hidden element.\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const Head = pageComponent.Head\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n \n \n \n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n if (pageResources.partialHydration) {\n return (\n \n {children}\n \n )\n } else {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","/* global HAS_REACT_18 */\n\nconst map = new WeakMap()\n\n/**\n * Since react 18, render and hydrate moved to react-dom/client\n * returns correct hydrate and render function based on installed react-dom version\n */\n\nexport function reactDOMUtils() {\n let render\n let hydrate\n\n if (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n\n render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n } else {\n const reactDomClient = require(`react-dom`)\n render = reactDomClient.render\n hydrate = reactDomClient.hydrate\n }\n\n return { render, hydrate }\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import React from 'react';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport PropTypes from 'prop-types';\n\nconst queryClient = new QueryClient();\n\nconst QueryWrapper = ({ children }) => (\n {children}\n);\nQueryWrapper.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired\n};\n\nexport default QueryWrapper;\n","import React from 'react';\nimport QueryWrapper from './src/components/query-wrapper';\n\nexport const wrapRootElement = ({ element }) => {element};\n\nexport const onInitialClientRender = () => {\n window.location.href = 'https://luagroup.com';\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.BreakpointProvider = exports.BreakpointContext = void 0;\nexports.useBreakpoint = useBreakpoint;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nconst defaultValue = {};\nconst BreakpointContext = exports.BreakpointContext = /*#__PURE__*/(0, _react.createContext)(defaultValue);\nconst BreakpointProvider = ({\n children,\n queries\n}) => {\n const [queryMatch, setQueryMatch] = (0, _react.useState)({});\n (0, _react.useEffect)(() => {\n const mediaQueryLists = {};\n const keys = Object.keys(queries);\n let isAttached = false;\n const handleQueryListener = () => {\n const updatedMatches = keys.reduce((acc, media) => {\n acc[media] = !!(mediaQueryLists[media] && mediaQueryLists[media].matches);\n return acc;\n }, {});\n setQueryMatch(updatedMatches);\n };\n if (window && window.matchMedia) {\n const matches = {};\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media] = window.matchMedia(queries[media]);\n matches[media] = mediaQueryLists[media].matches;\n } else {\n matches[media] = false;\n }\n });\n setQueryMatch(matches);\n isAttached = true;\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media].addListener(handleQueryListener);\n }\n });\n }\n return () => {\n if (isAttached) {\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media].removeListener(handleQueryListener);\n }\n });\n }\n };\n }, [queries]);\n return /*#__PURE__*/_react.default.createElement(BreakpointContext.Provider, {\n value: queryMatch\n }, children);\n};\nexports.BreakpointProvider = BreakpointProvider;\nBreakpointProvider.propTypes = {\n children: _propTypes.default.element.isRequired,\n queries: _propTypes.default.object.isRequired\n};\nfunction useBreakpoint() {\n const context = (0, _react.useContext)(BreakpointContext);\n if (context === defaultValue) {\n throw new Error('useBreakpoint must be used within BreakpointProvider');\n }\n return context;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.defaultQueries = void 0;\nconst defaultQueries = exports.defaultQueries = {\n xs: '(max-width: 320px)',\n sm: '(max-width: 720px)',\n md: '(max-width: 1024px)',\n l: '(max-width: 1536px)'\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.wrapRootElement = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _constants = require(\"./constants\");\nvar _BreakpointProvider = require(\"./BreakpointProvider\");\n// eslint-disable-next-line no-unused-vars\n\nconst wrapRootElement = ({\n element\n}, {\n queries = null\n}) => {\n return /*#__PURE__*/_react.default.createElement(_BreakpointProvider.BreakpointProvider, {\n queries: queries !== null ? queries : _constants.defaultQueries\n }, element);\n};\nexports.wrapRootElement = wrapRootElement;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.wrapPageElement = void 0;\n\nvar _wrapPage = _interopRequireDefault(require(\"./wrap-page\"));\n\nvar wrapPageElement = _wrapPage.default;\nexports.wrapPageElement = wrapPageElement;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.IntlContextConsumer = exports.IntlContextProvider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar IntlContext = _react.default.createContext();\n\nvar IntlContextProvider = IntlContext.Provider;\nexports.IntlContextProvider = IntlContextProvider;\nvar IntlContextConsumer = IntlContext.Consumer;\nexports.IntlContextConsumer = IntlContextConsumer;","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})(TYPE || (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 isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* 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","// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nimport { TYPE, } from './types';\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexport { SyntaxError };\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = \"#\";\n var peg$c3 = peg$literalExpectation(\"#\", false);\n var peg$c4 = function () {\n return __assign({ type: TYPE.pound }, insertLocation());\n };\n var peg$c5 = peg$otherExpectation(\"argumentElement\");\n var peg$c6 = \"{\";\n var peg$c7 = peg$literalExpectation(\"{\", false);\n var peg$c8 = \"}\";\n var peg$c9 = peg$literalExpectation(\"}\", false);\n var peg$c10 = function (value) {\n return __assign({ type: TYPE.argument, value: value }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c12 = /^['\\/{}]/;\n var peg$c13 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c14 = peg$anyExpectation();\n var peg$c15 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c16 = \"/\";\n var peg$c17 = peg$literalExpectation(\"/\", false);\n var peg$c18 = function (option) { return option; };\n var peg$c19 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c20 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c21 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c22 = \"::\";\n var peg$c23 = peg$literalExpectation(\"::\", false);\n var peg$c24 = function (skeleton) { return skeleton; };\n var peg$c25 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c26 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c27 = \",\";\n var peg$c28 = peg$literalExpectation(\",\", false);\n var peg$c29 = \"number\";\n var peg$c30 = peg$literalExpectation(\"number\", false);\n var peg$c31 = function (value, type, style) {\n return __assign({ type: type === 'number' ? TYPE.number : type === 'date' ? TYPE.date : TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c32 = \"'\";\n var peg$c33 = peg$literalExpectation(\"'\", false);\n var peg$c34 = /^[^']/;\n var peg$c35 = peg$classExpectation([\"'\"], true, false);\n var peg$c36 = /^[^a-zA-Z'{}]/;\n var peg$c37 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c38 = /^[a-zA-Z]/;\n var peg$c39 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c40 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c41 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c42 = \"date\";\n var peg$c43 = peg$literalExpectation(\"date\", false);\n var peg$c44 = \"time\";\n var peg$c45 = peg$literalExpectation(\"time\", false);\n var peg$c46 = \"plural\";\n var peg$c47 = peg$literalExpectation(\"plural\", false);\n var peg$c48 = \"selectordinal\";\n var peg$c49 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c50 = \"offset:\";\n var peg$c51 = peg$literalExpectation(\"offset:\", false);\n var peg$c52 = function (value, pluralType, offset, options) {\n return __assign({ type: TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c53 = \"select\";\n var peg$c54 = peg$literalExpectation(\"select\", false);\n var peg$c55 = function (value, options) {\n return __assign({ type: TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c56 = \"=\";\n var peg$c57 = peg$literalExpectation(\"=\", false);\n var peg$c58 = function (id) { messageCtx.push('select'); return true; };\n var peg$c59 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c60 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c61 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c62 = peg$otherExpectation(\"whitespace\");\n var peg$c63 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c64 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c65 = peg$otherExpectation(\"syntax pattern\");\n var peg$c66 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c67 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c68 = peg$otherExpectation(\"optional whitespace\");\n var peg$c69 = peg$otherExpectation(\"number\");\n var peg$c70 = \"-\";\n var peg$c71 = peg$literalExpectation(\"-\", false);\n var peg$c72 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c73 = peg$otherExpectation(\"apostrophe\");\n var peg$c74 = peg$otherExpectation(\"double apostrophes\");\n var peg$c75 = \"''\";\n var peg$c76 = peg$literalExpectation(\"''\", false);\n var peg$c77 = function () { return \"'\"; };\n var peg$c78 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c79 = function (x) {\n return (x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}'));\n };\n var peg$c80 = \"\\n\";\n var peg$c81 = peg$literalExpectation(\"\\n\", false);\n var peg$c82 = function (x) {\n return x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c83 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c84 = peg$otherExpectation(\"argNumber\");\n var peg$c85 = \"0\";\n var peg$c86 = peg$literalExpectation(\"0\", false);\n var peg$c87 = function () { return 0; };\n var peg$c88 = /^[1-9]/;\n var peg$c89 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c90 = /^[0-9]/;\n var peg$c91 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c92 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c93 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c2;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c8;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c16;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c19);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c25();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c29) {\n s7 = peg$c29;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c32;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c42) {\n s7 = peg$c42;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c46) {\n s7 = peg$c46;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c47);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c50) {\n s12 = peg$c50;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c8;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c53) {\n s7 = peg$c53;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c8;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c56;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c58(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c59(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c60(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c63.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c68);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c70;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c71);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c72(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c32;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c74);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c32;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c79(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c82(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c85;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c88.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexport var pegParse = peg$parse;\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { isPluralElement, isLiteralElement, isSelectElement, } from './types';\nimport { pegParse } from './parser';\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nexport function normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!isPluralElement(el) && !isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\n","import { pegParse } from './parser';\nimport { normalizeHashtagInPlural } from './normalize';\nexport * from './types';\nexport * from './parser';\nexport * from './skeleton';\nexport function parse(input, opts) {\n var els = pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalizeHashtagInPlural(els);\n }\n return els;\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*/\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexport default memoizeFormatConstructor;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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) pattenrs 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) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\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 return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\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 convertNumberSkeletonToNumberFormatOptions(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 result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\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 }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\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 (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\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 }\n return result;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { convertNumberSkeletonToNumberFormatOptions, isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, parseDateTimeSkeleton, } from 'intl-messageformat-parser';\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\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 !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\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: 0 /* 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: 0 /* 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: 0 /* 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 FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + 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: 1 /* argument */,\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' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* 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 ? parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* 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 ? convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\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[\"=\" + 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\");\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 RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\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}\nexport function formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nexport function formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"\" + formattedMessage + \"\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\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*/\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { parse } from 'intl-messageformat-parser';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { formatToString, formatToParts, formatHTMLMessage, } 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}\nexport function createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\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 return formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _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 normalizeHashtagInPlural: false,\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 IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\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 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 };\nexport default 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 './core';\nexport * from './formatters';\nexport * from './core';\nexport default IntlMessageFormat;\n","/*\nHTML escaping is the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\nimport * as React from 'react';\nimport IntlMessageFormat from 'intl-messageformat';\nimport memoizeIntlConstructor from 'intl-format-cache';\nimport { invariant } from '@formatjs/intl-utils';\nconst ESCAPED_CHARS = {\n 38: '&',\n 62: '>',\n 60: '<',\n 34: '"',\n 39: ''',\n};\nconst UNSAFE_CHARS_REGEX = /[&><\"']/g;\nexport function escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, match => ESCAPED_CHARS[match.charCodeAt(0)]);\n}\nexport function filterProps(props, whitelist, defaults = {}) {\n return whitelist.reduce((filtered, name) => {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport function createError(message, exception) {\n const eMsg = exception ? `\\n${exception.stack}` : '';\n return `[React Intl] ${message}${eMsg}`;\n}\nexport function defaultErrorHandler(error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n}\nexport const DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n textComponent: React.Fragment,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache = createIntlCache()) {\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n const ListFormat = Intl.ListFormat;\n const DisplayNames = Intl.DisplayNames;\n return {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat, cache.dateTime),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat, cache.number),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat, cache.message),\n getRelativeTimeFormat: memoizeIntlConstructor(RelativeTimeFormat, cache.relativeTime),\n getPluralRules: memoizeIntlConstructor(Intl.PluralRules, cache.pluralRules),\n getListFormat: memoizeIntlConstructor(ListFormat, cache.list),\n getDisplayNames: memoizeIntlConstructor(DisplayNames, cache.displayNames),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n const formatType = formats && formats[type];\n let format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(createError(`No ${type} format named: ${name}`));\n}\n","import * as React from 'react';\nimport * as hoistNonReactStatics_ from 'hoist-non-react-statics';\n// Since rollup cannot deal with namespace being a function,\n// this is to interop with TypeScript since `invariant`\n// does not export a default\n// https://github.com/rollup/rollup/issues/1267\nconst hoistNonReactStatics = hoistNonReactStatics_.default || hoistNonReactStatics_;\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nconst IntlContext = React.createContext(null);\nconst { Consumer: IntlConsumer, Provider: IntlProvider } = IntlContext;\nexport const Provider = IntlProvider;\nexport const Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n const { intlPropName = 'intl', forwardRef = false, enforceContext = true } = options || {};\n const WithIntl = props => (React.createElement(IntlConsumer, null, (intl) => {\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n return (React.createElement(WrappedComponent, Object.assign({}, props, {\n [intlPropName]: intl,\n }, { ref: forwardRef ? props.forwardedRef : null })));\n }));\n WithIntl.displayName = `injectIntl(${getDisplayName(WrappedComponent)})`;\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef((props, ref) => (React.createElement(WithIntl, Object.assign({}, props, { forwardedRef: ref })))), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { invariantIntlContext } from '../utils';\nimport { Context } from './injectIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport const FormattedNumberParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n}));\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n const ComponentParts = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n const formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n }));\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n const Component = props => (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { value, children } = props, formatProps = __rest(props, [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n const formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n const Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n }));\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { useContext } from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n const intl = useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // Unified NumberFormat (Stage 3 as of 10/22/19)\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n];\nexport function getFormatter({ locale, formats, onError, }, getNumberFormat, options = {}) {\n const { format } = options;\n const defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n const filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options = {}) {\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(createError('Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps, createError } from '../utils';\nconst RELATIVE_TIME_FORMAT_OPTIONS = [\n 'numeric',\n 'style',\n];\nfunction getFormatter({ locale, formats, onError, }, getRelativeTimeFormat, options = {}) {\n const { format } = options;\n const defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n const filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options = {}) {\n if (!unit) {\n unit = 'second';\n }\n const RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(createError(`Intl.RelativeTimeFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-relativetimeformat\"\n`));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(createError('Error formatting relative time.', e));\n }\n return String(value);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { createError, filterProps, getNamedFormat } from '../utils';\nconst DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n];\nexport function getFormatter({ locale, formats, onError, timeZone, }, type, getDateTimeFormat, options = {}) {\n const { format } = options;\n const defaults = Object.assign(Object.assign({}, (timeZone && { timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n let filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = Object.assign(Object.assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat, value, options = {}) {\n const date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(createError('Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps, createError } from '../utils';\nconst PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural({ locale, onError }, getPluralRules, value, options = {}) {\n if (!Intl.PluralRules) {\n onError(createError(`Intl.PluralRules is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-pluralrules\"\n`));\n }\n const filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(createError('Error formatting plural.', e));\n }\n return 'other';\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { invariant } from '@formatjs/intl-utils';\nimport { createError, escape } from '../utils';\nimport IntlMessageFormat from 'intl-messageformat';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce((all, k) => {\n all[k] = Object.assign({ timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n const keys = Object.keys(Object.assign(Object.assign({}, opts1), opts2));\n return keys.reduce((all, k) => {\n all[k] = Object.assign(Object.assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n const mfFormats = IntlMessageFormat.formats;\n return Object.assign(Object.assign(Object.assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport const prepareIntlMessageFormatHtmlOutput = (chunks) => React.createElement(React.Fragment, null, ...chunks);\nexport function formatMessage({ locale, formats, messages, defaultLocale, defaultFormats, onError, timeZone, }, state, messageDescriptor = { id: '' }, values = {}) {\n const { id, defaultMessage } = messageDescriptor;\n // `id` is a required field of a Message Descriptor.\n invariant(!!id, '[React Intl] An `id` must be provided to format a message.');\n const message = messages && messages[String(id)];\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n let formattedMessageParts = [];\n if (message) {\n try {\n const formatter = state.getMessageFormat(message, locale, formats, {\n formatters: state,\n });\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : ''), e));\n }\n }\n else {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale, and a default message is in the source.\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n onError(createError(`Missing message: \"${id}\" for locale: \"${locale}\"` +\n (defaultMessage ? ', using default message as fallback.' : '')));\n }\n }\n if (!formattedMessageParts.length && defaultMessage) {\n try {\n const formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n formattedMessageParts = formatter.formatHTMLMessage(values);\n }\n catch (e) {\n onError(createError(`Error formatting the default message for: \"${id}\"`, e));\n }\n }\n if (!formattedMessageParts.length) {\n onError(createError(`Cannot format message: \"${id}\", ` +\n `using message ${message || defaultMessage ? 'source' : 'id'} as fallback.`));\n if (typeof message === 'string') {\n return message || defaultMessage || String(id);\n }\n return defaultMessage || String(id);\n }\n if (formattedMessageParts.length === 1 &&\n typeof formattedMessageParts[0] === 'string') {\n return formattedMessageParts[0] || defaultMessage || String(id);\n }\n return prepareIntlMessageFormatHtmlOutput(formattedMessageParts);\n}\nexport function formatHTMLMessage(config, state, messageDescriptor = { id: '' }, rawValues = {}) {\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n const escapedValues = Object.keys(rawValues).reduce((escaped, name) => {\n const value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n","import { filterProps, createError } from '../utils';\nconst LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nconst now = Date.now();\nfunction generateToken(i) {\n return `${now}_${i}_${now}`;\n}\nexport function formatList({ locale, onError }, getListFormat, values, options = {}) {\n const ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(createError(`Intl.ListFormat is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-listformat\"\n`));\n }\n const filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n const richValues = {};\n const serializedValues = values.map((v, i) => {\n if (typeof v === 'object') {\n const id = generateToken(i);\n richValues[id] = v;\n return id;\n }\n return String(v);\n });\n if (!Object.keys(richValues).length) {\n return getListFormat(locale, filteredOptions).format(serializedValues);\n }\n const parts = getListFormat(locale, filteredOptions).formatToParts(serializedValues);\n return parts.reduce((all, el) => {\n const val = el.value;\n if (richValues[val]) {\n all.push(richValues[val]);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n }\n catch (e) {\n onError(createError('Error formatting list.', e));\n }\n return values;\n}\n","import { filterProps, createError } from '../utils';\nconst DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName({ locale, onError }, getDisplayNames, value, options = {}) {\n const DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(createError(`Intl.DisplayNames is not available in this environment.\nTry polyfilling it using \"@formatjs/intl-displaynames\"\n`));\n }\n const filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(createError('Error formatting display name.', e));\n }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { createError, DEFAULT_INTL_CONFIG, createFormatters, invariantIntlContext, createIntlCache, } from '../utils';\nimport { formatNumber, formatNumberToParts } from '../formatters/number';\nimport { formatRelativeTime } from '../formatters/relativeTime';\nimport { formatDate, formatTime, formatDateToParts, formatTimeToParts, } from '../formatters/dateTime';\nimport { formatPlural } from '../formatters/plural';\nimport { formatMessage, formatHTMLMessage } from '../formatters/message';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nimport { formatList } from '../formatters/list';\nimport { formatDisplayName } from '../formatters/displayName';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n };\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n const formatters = createFormatters(cache);\n const resolvedConfig = Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), config);\n const { locale, defaultLocale, onError } = resolvedConfig;\n if (!locale) {\n if (onError) {\n onError(createError(`\"locale\" was not configured, using \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/API.md#intlshape for more details`));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.NumberFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(createError(`Missing locale data for locale: \"${locale}\" in Intl.DateTimeFormat. Using default locale: \"${defaultLocale}\" as fallback. See https://github.com/formatjs/react-intl/blob/master/docs/Getting-Started.md#runtime-requirements for more details`));\n }\n return Object.assign(Object.assign({}, resolvedConfig), { formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), formatHTMLMessage: formatHTMLMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\nexport default class IntlProvider extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.cache = createIntlCache();\n this.state = {\n cache: this.cache,\n intl: createIntl(processIntlConfig(this.props), this.cache),\n prevConfig: processIntlConfig(this.props),\n };\n }\n static getDerivedStateFromProps(props, { prevConfig, cache }) {\n const config = processIntlConfig(props);\n if (!shallowEquals(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n }\n render() {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n }\n}\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nimport { invariant } from '@formatjs/intl-utils';\nconst MINUTE = 60;\nconst HOUR = 60 * 60;\nconst DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n }\n if (absValue < HOUR) {\n return 'minute';\n }\n if (absValue < DAY) {\n return 'hour';\n }\n return 'day';\n}\nfunction getDurationInSeconds(unit) {\n switch (unit) {\n case 'second':\n return 1;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n default:\n return DAY;\n }\n}\nfunction valueToSeconds(value, unit) {\n if (!value) {\n return 0;\n }\n switch (unit) {\n case 'second':\n return value;\n case 'minute':\n return value * MINUTE;\n default:\n return value * HOUR;\n }\n}\nconst INCREMENTABLE_UNITS = ['second', 'minute', 'hour'];\nfunction canIncrement(unit = 'second') {\n return INCREMENTABLE_UNITS.includes(unit);\n}\nexport class FormattedRelativeTime extends React.PureComponent {\n constructor(props) {\n super(props);\n // Public for testing\n this._updateTimer = null;\n this.state = {\n prevUnit: this.props.unit,\n prevValue: this.props.value,\n currentValueInSeconds: canIncrement(this.props.unit)\n ? valueToSeconds(this.props.value, this.props.unit)\n : 0,\n };\n invariant(!props.updateIntervalInSeconds ||\n !!(props.updateIntervalInSeconds && canIncrement(props.unit)), 'Cannot schedule update with unit longer than hour');\n }\n scheduleNextUpdate({ updateIntervalInSeconds, unit }, { currentValueInSeconds }) {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n // If there's no interval and we cannot increment this unit, do nothing\n if (!updateIntervalInSeconds || !canIncrement(unit)) {\n return;\n }\n // Figure out the next interesting time\n const nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n const nextUnit = selectUnit(nextValueInSeconds);\n // We've reached the max auto incrementable unit, don't schedule another update\n if (nextUnit === 'day') {\n return;\n }\n const unitDuration = getDurationInSeconds(nextUnit);\n const remainder = nextValueInSeconds % unitDuration;\n const prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n const nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n ? prevInterestingValueInSeconds - unitDuration\n : prevInterestingValueInSeconds;\n const delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n this._updateTimer = setTimeout(() => this.setState({\n currentValueInSeconds: nextInterestingValueInSeconds,\n }), delayInSeconds * 1e3);\n }\n componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentDidUpdate() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n componentWillUnmount() {\n clearTimeout(this._updateTimer);\n this._updateTimer = null;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.unit !== state.prevUnit || props.value !== state.prevValue) {\n return {\n prevValue: props.value,\n prevUnit: props.unit,\n currentValueInSeconds: canIncrement(props.unit)\n ? valueToSeconds(props.value, props.unit)\n : 0,\n };\n }\n return null;\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n invariantIntlContext(intl);\n const { formatRelativeTime, textComponent: Text } = intl;\n const { children, value, unit, updateIntervalInSeconds } = this.props;\n const { currentValueInSeconds } = this.state;\n let currentValue = value || 0;\n let currentUnit = unit;\n if (canIncrement(unit) &&\n typeof currentValueInSeconds === 'number' &&\n updateIntervalInSeconds) {\n currentUnit = selectUnit(currentValueInSeconds);\n const unitDuration = getDurationInSeconds(currentUnit);\n currentValue = Math.round(currentValueInSeconds / unitDuration);\n }\n const formattedRelativeTime = formatRelativeTime(currentValue, currentUnit, Object.assign({}, this.props));\n if (typeof children === 'function') {\n return children(formattedRelativeTime);\n }\n if (Text) {\n return React.createElement(Text, null, formattedRelativeTime);\n }\n return formattedRelativeTime;\n }));\n }\n}\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n value: 0,\n unit: 'second',\n};\nexport default FormattedRelativeTime;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport withIntl from './injectIntl';\nconst FormattedPlural = props => {\n const { value, other, children, intl: { formatPlural, textComponent: Text }, } = props;\n const pluralCategory = formatPlural(value, props);\n const formattedPlural = props[pluralCategory] || other;\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n if (Text) {\n return React.createElement(Text, null, formattedPlural);\n }\n // Work around @types/react where React.FC cannot return string\n return formattedPlural;\n};\nFormattedPlural.defaultProps = {\n type: 'cardinal',\n};\nFormattedPlural.displayName = 'FormattedPlural';\nexport default withIntl(FormattedPlural);\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { Context } from './injectIntl';\nimport { formatMessage } from '../formatters/message';\nimport { invariantIntlContext, DEFAULT_INTL_CONFIG, createFormatters, } from '../utils';\nimport * as shallowEquals_ from 'shallow-equal/objects';\nconst shallowEquals = shallowEquals_.default || shallowEquals_;\nconst defaultFormatMessage = (descriptor, values) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Could not find required `intl` object. needs to exist in the component ancestry. Using default message as fallback.');\n }\n return formatMessage(Object.assign(Object.assign({}, DEFAULT_INTL_CONFIG), { locale: 'en' }), createFormatters(), descriptor, values);\n};\nclass FormattedMessage extends React.Component {\n shouldComponentUpdate(nextProps) {\n const _a = this.props, { values } = _a, otherProps = __rest(_a, [\"values\"]);\n const { values: nextValues } = nextProps, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (!shallowEquals(nextValues, values) ||\n !shallowEquals(otherProps, nextOtherProps));\n }\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatMessage = defaultFormatMessage, textComponent: Text = React.Fragment, } = intl || {};\n const { id, description, defaultMessage, values, children, tagName: Component = Text, } = this.props;\n const descriptor = { id, description, defaultMessage };\n let nodes = formatMessage(descriptor, values);\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n if (typeof children === 'function') {\n return children(...nodes);\n }\n if (Component) {\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return React.createElement(Component, null, ...nodes);\n }\n return nodes;\n }));\n }\n}\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.defaultProps = {\n values: {},\n};\nexport default FormattedMessage;\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport FormattedMessage from './message';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nclass FormattedHTMLMessage extends FormattedMessage {\n render() {\n return (React.createElement(Context.Consumer, null, (intl) => {\n if (!this.props.defaultMessage) {\n invariantIntlContext(intl);\n }\n const { formatHTMLMessage, textComponent } = intl;\n const { id, description, defaultMessage, values: rawValues, children, } = this.props;\n let { tagName: Component } = this.props;\n // This is bc of TS3.3 doesn't recognize `defaultProps`\n if (!Component) {\n Component = textComponent || 'span';\n }\n const descriptor = { id, description, defaultMessage };\n const formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n const html = { __html: formattedHTMLMessage };\n return React.createElement(Component, { dangerouslySetInnerHTML: html });\n }));\n }\n}\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.defaultProps = Object.assign(Object.assign({}, FormattedMessage.defaultProps), { tagName: 'span' });\nexport default FormattedHTMLMessage;\n","export function defineMessages(msgs) {\n return msgs;\n}\nimport { createFormattedComponent, createFormattedDateTimePartsComponent, } from './components/createFormattedComponent';\nexport { default as injectIntl, Provider as RawIntlProvider, Context as IntlContext, } from './components/injectIntl';\nexport { default as useIntl } from './components/useIntl';\nexport { default as IntlProvider, createIntl } from './components/provider';\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./types').CustomFormatConfig`\nexport const FormattedDate = createFormattedComponent('formatDate');\nexport const FormattedTime = createFormattedComponent('formatTime');\nexport const FormattedNumber = createFormattedComponent('formatNumber');\nexport const FormattedList = createFormattedComponent('formatList');\nexport const FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport const FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport const FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts } from './components/createFormattedComponent';\nexport { default as FormattedRelativeTime } from './components/relative';\nexport { default as FormattedPlural } from './components/plural';\nexport { default as FormattedMessage } from './components/message';\nexport { default as FormattedHTMLMessage } from './components/html-message';\nexport { createIntlCache } from './utils';\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _browserLang = _interopRequireDefault(require(\"browser-lang\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar _reactIntl = require(\"react-intl\");\n\nvar _intlContext = require(\"./intl-context\");\n\nvar preferDefault = function preferDefault(m) {\n return m && m.default || m;\n};\n\nvar polyfillIntl = function polyfillIntl(language) {\n var locale = language.split(\"-\")[0];\n\n try {\n if (!Intl.PluralRules) {\n require(\"@formatjs/intl-pluralrules/polyfill\");\n\n require(\"@formatjs/intl-pluralrules/dist/locale-data/\" + locale);\n }\n\n if (!Intl.RelativeTimeFormat) {\n require(\"@formatjs/intl-relativetimeformat/polyfill\");\n\n require(\"@formatjs/intl-relativetimeformat/dist/locale-data/\" + locale);\n }\n } catch (e) {\n throw new Error(\"Cannot find react-intl/locale-data/\" + language);\n }\n};\n\nvar withIntlProvider = function withIntlProvider(intl) {\n return function (children) {\n polyfillIntl(intl.language);\n return _react.default.createElement(_reactIntl.IntlProvider, {\n locale: intl.language,\n defaultLocale: intl.defaultLanguage,\n messages: intl.messages\n }, _react.default.createElement(_intlContext.IntlContextProvider, {\n value: intl\n }, children));\n };\n};\n\nvar _default = function _default(_ref, pluginOptions) {\n var element = _ref.element,\n props = _ref.props;\n\n if (!props) {\n return;\n }\n\n var pageContext = props.pageContext,\n location = props.location;\n var defaultLanguage = pluginOptions.defaultLanguage;\n var intl = pageContext.intl;\n var language = intl.language,\n languages = intl.languages,\n redirect = intl.redirect,\n routed = intl.routed,\n originalPath = intl.originalPath;\n\n if (typeof window !== \"undefined\") {\n window.___gatsbyIntl = intl;\n }\n /* eslint-disable no-undef */\n\n\n var isRedirect = redirect && !routed;\n\n if (isRedirect) {\n var search = location.search; // Skip build, Browsers only\n\n if (typeof window !== \"undefined\") {\n var detected = window.localStorage.getItem(\"gatsby-intl-language\") || (0, _browserLang.default)({\n languages: languages,\n fallback: language\n });\n\n if (!languages.includes(detected)) {\n detected = language;\n }\n\n var queryParams = search || \"\";\n var newUrl = (0, _gatsby.withPrefix)(\"/\" + detected + originalPath + queryParams);\n window.localStorage.setItem(\"gatsby-intl-language\", detected);\n window.location.replace(newUrl);\n }\n }\n\n var renderElement = isRedirect ? GATSBY_INTL_REDIRECT_COMPONENT_PATH && _react.default.createElement(preferDefault(require(GATSBY_INTL_REDIRECT_COMPONENT_PATH))) : element;\n return withIntlProvider(intl)(renderElement);\n};\n\nexports.default = _default;","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.onRouteUpdateDelayed = exports.onRouteUpdate = exports.onClientEntry = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _accessibleNprogress = _interopRequireDefault(require(\"accessible-nprogress\"));\n\nvar defaultOptions = {\n color: \"#29d\"\n};\n\nvar onClientEntry = function onClientEntry(_gatsbyApi, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n // Merge default options with user defined options in `gatsby-config.js`\n var options = (0, _extends2.default)({}, defaultOptions, pluginOptions); // Inject styles.\n\n var styles = \"\\n #nprogress {\\n pointer-events: none;\\n }\\n #nprogress .bar {\\n background: \" + options.color + \";\\n position: fixed;\\n z-index: 1031;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 2px;\\n }\\n #nprogress .peg {\\n display: block;\\n position: absolute;\\n right: 0px;\\n width: 100px;\\n height: 100%;\\n box-shadow: 0 0 10px \" + options.color + \", 0 0 5px \" + options.color + \";\\n opacity: 1.0;\\n -webkit-transform: rotate(3deg) translate(0px, -4px);\\n -ms-transform: rotate(3deg) translate(0px, -4px);\\n transform: rotate(3deg) translate(0px, -4px);\\n }\\n #nprogress .spinner {\\n display: block;\\n position: fixed;\\n z-index: 1031;\\n top: 15px;\\n right: 15px;\\n }\\n #nprogress .spinner-icon {\\n width: 18px;\\n height: 18px;\\n box-sizing: border-box;\\n border: solid 2px transparent;\\n border-top-color: \" + options.color + \";\\n border-left-color: \" + options.color + \";\\n border-radius: 50%;\\n -webkit-animation: nprogress-spinner 400ms linear infinite;\\n animation: nprogress-spinner 400ms linear infinite;\\n }\\n .nprogress-custom-parent {\\n overflow: hidden;\\n position: relative;\\n }\\n .nprogress-custom-parent #nprogress .spinner,\\n .nprogress-custom-parent #nprogress .bar {\\n position: absolute;\\n }\\n @-webkit-keyframes nprogress-spinner {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n }\\n }\\n @keyframes nprogress-spinner {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n }\\n \";\n var node = document.createElement(\"style\");\n node.id = \"nprogress-styles\";\n node.innerHTML = styles;\n document.head.appendChild(node);\n\n _accessibleNprogress.default.configure(options);\n};\n\nexports.onClientEntry = onClientEntry;\n\nvar onRouteUpdateDelayed = function onRouteUpdateDelayed() {\n _accessibleNprogress.default.start();\n};\n\nexports.onRouteUpdateDelayed = onRouteUpdateDelayed;\n\nvar onRouteUpdate = function onRouteUpdate() {\n _accessibleNprogress.default.done();\n};\n\nexports.onRouteUpdate = onRouteUpdate;","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n {\n value: { baseuri: uri, basepath: basepath, navigate: props.navigate }\n },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.selectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n var value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","import React from 'react'; // CONTEXT\n\nfunction createValue() {\n var _isReset = false;\n return {\n clearReset: function clearReset() {\n _isReset = false;\n },\n reset: function reset() {\n _isReset = true;\n },\n isReset: function isReset() {\n return _isReset;\n }\n };\n}\n\nvar QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nexport var useQueryErrorResetBoundary = function useQueryErrorResetBoundary() {\n return React.useContext(QueryErrorResetBoundaryContext);\n}; // COMPONENT\n\nexport var QueryErrorResetBoundary = function QueryErrorResetBoundary(_ref) {\n var children = _ref.children;\n var value = React.useMemo(function () {\n return createValue();\n }, []);\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};","import { QueryObserver } from '../core';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}","import React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils';\nexport function useBaseQuery(options, Observer) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var queryClient = useQueryClient();\n var errorResetBoundary = useQueryErrorResetBoundary();\n var defaultedOptions = queryClient.defaultQueryObserverOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions.optimisticResults = true; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n } // Set cache time to 1 if the option has been set to 0\n // when using suspense to prevent infinite loop of fetches\n\n\n if (defaultedOptions.cacheTime === 0) {\n defaultedOptions.cacheTime = 1;\n }\n }\n\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n\n var _React$useState2 = React.useState(function () {\n return new Observer(queryClient, defaultedOptions);\n }),\n observer = _React$useState2[0];\n\n var result = observer.getOptimisticResult(defaultedOptions);\n React.useEffect(function () {\n mountedRef.current = true;\n errorResetBoundary.clearReset();\n var unsubscribe = observer.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n })); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, [errorResetBoundary, observer]);\n React.useEffect(function () {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (defaultedOptions.suspense && result.isLoading) {\n throw observer.fetchOptimistic(defaultedOptions).then(function (_ref) {\n var data = _ref.data;\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n }).catch(function (error) {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n });\n } // Handle error boundary\n\n\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.suspense, defaultedOptions.useErrorBoundary, [result.error, observer.getCurrentQuery()])) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n if (defaultedOptions.notifyOnChangeProps === 'tracked') {\n result = observer.trackResult(result, defaultedOptions);\n }\n\n return result;\n}","export function shouldThrowError(suspense, _useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary.apply(void 0, params);\n } // Allow useErrorBoundary to override suspense's throwing behavior\n\n\n if (typeof _useErrorBoundary === 'boolean') return _useErrorBoundary; // If suspense is enabled default to throwing errors\n\n return !!suspense;\n}","'use strict';\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualObjects;\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.5.4 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\\\"pt0\\\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.5.4\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `