{"version":3,"file":"app-832fe2418ff5fe0f3c8e.js","mappings":"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","sources":["webpack://yggdrasil/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://yggdrasil/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://yggdrasil/./node_modules/browser-lang/dist/index.js","webpack://yggdrasil/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://yggdrasil/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://yggdrasil/./node_modules/i18next/dist/cjs/i18next.js","webpack://yggdrasil/./node_modules/outdent/lib-module/index.js","webpack://yggdrasil/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/utils.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/unescape.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/defaults.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/context.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/Trans.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/Translation.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/useSSR.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/withSSR.js","webpack://yggdrasil/./node_modules/react-i18next/dist/es/index.js","webpack://yggdrasil/./node_modules/void-elements/index.js","webpack://yggdrasil/./node_modules/gatsby-react-router-scroll/index.js","webpack://yggdrasil/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://yggdrasil/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://yggdrasil/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://yggdrasil/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://yggdrasil/./.cache/api-runner-browser-plugins.js","webpack://yggdrasil/./.cache/api-runner-browser.js","webpack://yggdrasil/./node_modules/mitt/dist/mitt.es.js","webpack://yggdrasil/./.cache/emitter.js","webpack://yggdrasil/./.cache/normalize-page-path.js","webpack://yggdrasil/./.cache/find-path.js","webpack://yggdrasil/./.cache/gatsby-browser-entry.js","webpack://yggdrasil/./.cache/prefetch.js","webpack://yggdrasil/./.cache/loader.js","webpack://yggdrasil/./.cache/head/components/fire-callback-in-effect.js","webpack://yggdrasil/./.cache/head/constants.js","webpack://yggdrasil/./.cache/head/utils.js","webpack://yggdrasil/./.cache/head/head-export-handler-for-browser.js","webpack://yggdrasil/./.cache/page-renderer.js","webpack://yggdrasil/./.cache/route-announcer-props.js","webpack://yggdrasil/./.cache/navigation.js","webpack://yggdrasil/./node_modules/shallow-compare/es/index.js","webpack://yggdrasil/./.cache/ensure-resources.js","webpack://yggdrasil/./.cache/production-app.js","webpack://yggdrasil/./.cache/public-page-renderer-prod.js","webpack://yggdrasil/./.cache/public-page-renderer.js","webpack://yggdrasil/./.cache/react-dom-utils.js","webpack://yggdrasil/./.cache/react-lifecycles-compat.js","webpack://yggdrasil/./.cache/redirect-utils.js","webpack://yggdrasil/./.cache/register-service-worker.js","webpack://yggdrasil/./.cache/strip-prefix.js","webpack://yggdrasil/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://yggdrasil/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://yggdrasil/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://yggdrasil/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://yggdrasil/./node_modules/gatsby-plugin-yandex-metrika/gatsby-browser.js","webpack://yggdrasil/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://yggdrasil/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://yggdrasil/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://yggdrasil/./node_modules/invariant/browser.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/createClass.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/extends.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/inherits.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/toArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/typeof.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://yggdrasil/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://yggdrasil/./node_modules/@builder.io/partytown/react/index.cjs","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://yggdrasil/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://yggdrasil/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://yggdrasil/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar 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 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\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({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\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, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\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({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\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 return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\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({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\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] = {\n pathname: pathname,\n search: search\n };\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// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\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.\n\n\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// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\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.\n\n\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); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\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\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\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// insertParams(path, params)\n\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 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\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\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};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\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 {\n route: route,\n score: score,\n index: index\n };\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 // 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 * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\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;","\"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) || startsWith(lang, browserLanguage);\n });\n return matchCodeOnly[0] || fallback;\n}\n\nvar _default = getPreferredLanguage;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0; // TODO(v5): Remove legacy setting and default to \"always\"\n\nvar applyTrailingSlashOption = function applyTrailingSlashOption(input) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"legacy\";\n var hasHtmlSuffix = input.endsWith(\".html\");\n var hasXmlSuffix = input.endsWith(\".xml\");\n var 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 : \"\".concat(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\nvar _slicedToArray = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexports.__esModule = true;\nexports.wrapRootElement = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _react2 = require(\"@builder.io/partytown/react\");\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj.default = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction PartytownProvider(_ref) {\n var children = _ref.children;\n\n var _ref2 = (0, _react.useState)({\n collectedForwards: new Set(),\n collectedAnyScript: false\n }),\n _ref3 = _slicedToArray(_ref2, 2),\n _ref3$ = _ref3[0],\n collectedForwards = _ref3$.collectedForwards,\n collectedAnyScript = _ref3$.collectedAnyScript,\n setState = _ref3[1];\n\n return /*#__PURE__*/_react.default.createElement(_gatsbyScript.PartytownContext.Provider, {\n value: {\n collectScript: function collectScript(newScript) {\n var stateShouldChange = false;\n var potentialNewState = {\n collectedAnyScript: collectedAnyScript,\n collectedForwards: collectedForwards\n };\n\n if (!collectedAnyScript) {\n potentialNewState.collectedAnyScript = true;\n stateShouldChange = true;\n }\n\n if (newScript !== null && newScript !== void 0 && newScript.forward) {\n if (Array.isArray(newScript.forward)) {\n var _iterator = _createForOfIteratorHelper(newScript.forward),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var singleForward = _step.value;\n\n if (!potentialNewState.collectedForwards.has(singleForward)) {\n potentialNewState.collectedForwards.add(singleForward);\n stateShouldChange = true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n if (process.env.NODE_ENV === \"development\") {\n console.log(\"unexpected shape of forward\", newScript);\n }\n }\n }\n\n if (stateShouldChange) {\n setState(potentialNewState);\n }\n }\n }\n }, children, collectedAnyScript && /*#__PURE__*/_react.default.createElement(_react2.Partytown, {\n key: \"partytown\",\n forward: Array.from(collectedForwards)\n }));\n}\n\nvar wrapRootElement = function wrapRootElement(_ref4) {\n var element = _ref4.element;\n return /*#__PURE__*/_react.default.createElement(PartytownProvider, null, element);\n};\n\nexports.wrapRootElement = wrapRootElement;","'use strict';\n\nvar _toArray = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/toArray.js\");\n\nvar _assertThisInitialized = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nvar _inherits = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/inherits.js\");\n\nvar _possibleConstructorReturn = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\");\n\nvar _getPrototypeOf = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar _defineProperty = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _classCallCheck = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = require(\"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/createClass.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = /*#__PURE__*/function () {\n function Logger(concreteLogger) {\n _classCallCheck(this, Logger);\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = /*#__PURE__*/function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this4 = this;\n\n events.split(' ').forEach(function (event) {\n _this4.observers[event] = _this4.observers[event] || [];\n\n _this4.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\n\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\n\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\n\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\n\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\n\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\n\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\n\nvar chars = [' ', ',', '?', '!', ';'];\n\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nvar ResourceStore = /*#__PURE__*/function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this5;\n\n _classCallCheck(this, ResourceStore);\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _this5 = _super.call(this);\n _this5.data = data || {};\n _this5.options = options;\n\n if (_this5.options.keySeparator === undefined) {\n _this5.options.keySeparator = '.';\n }\n\n if (_this5.options.ignoreJSONStructure === undefined) {\n _this5.options.ignoreJSONStructure = true;\n }\n\n return _this5;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread(_objectSpread({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread(_objectSpread({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this6 = this;\n\n processors.forEach(function (processor) {\n if (_this6.processors[processor]) value = _this6.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\nvar checkedLoadedFor = {};\n\nvar Translator = /*#__PURE__*/function (_EventEmitter2) {\n _inherits(Translator, _EventEmitter2);\n\n var _super2 = _createSuper(Translator);\n\n function Translator(services) {\n var _this7;\n\n _classCallCheck(this, Translator);\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _this7 = _super2.call(this);\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this7));\n _this7.options = options;\n\n if (_this7.options.keySeparator === undefined) {\n _this7.options.keySeparator = '.';\n }\n\n _this7.logger = baseLogger.create('translator');\n return _this7;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this8 = this;\n\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (typeof options === 'object') options = _objectSpread({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread(_objectSpread({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n\n var _copy = resTypeIsArray ? [] : {};\n\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n _copy[m] = this.translate(deepKey, _objectSpread(_objectSpread({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (_copy[m] === deepKey) _copy[m] = res[m];\n }\n }\n\n res = _copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options[\"defaultValue\".concat(defaultValueSuffixOrdinalFallback)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread(_objectSpread({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this8.options.missingKeyHandler) {\n _this8.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this8.backendConnector && _this8.backendConnector.saveMissing) {\n _this8.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this8.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this8.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread(_objectSpread({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread(_objectSpread({}, options), {\n interpolation: _objectSpread(_objectSpread({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread(_objectSpread({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this.translate.apply(_this, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this9 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this9.isValidLookup(found)) return;\n\n var extracted = _this9.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this9.options.fallbackNS) namespaces = namespaces.concat(_this9.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this9.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this9.languageUtils.toResolveHierarchy(options.lng || _this9.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this9.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this9.utils && _this9.utils.hasLoadedNamespace && !_this9.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this9.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this9.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this9.i18nFormat && _this9.i18nFormat.addLookupKeys) {\n _this9.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this9.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this9.options.pluralSeparator, \"zero\");\n var ordinalPrefix = \"\".concat(_this9.options.pluralSeparator, \"ordinal\").concat(_this9.options.pluralSeparator);\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, _this9.options.pluralSeparator));\n }\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this9.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, _this9.options.pluralSeparator));\n }\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this9.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this9.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = /*#__PURE__*/function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this10 = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this10.formatLanguageCode(code);\n\n if (!_this10.options.supportedLngs || _this10.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this10.getLanguagePartFromCode(code);\n\n if (_this10.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this10.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this11 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this11.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this11.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this11.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar nonIntlVersions = ['v1', 'v2', 'v3'];\nvar intlVersions = ['v4'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = /*#__PURE__*/function () {\n function PluralResolver(languageUtils) {\n _classCallCheck(this, PluralResolver);\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this12 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this12.options.prepend).concat(options.ordinal ? \"ordinal\".concat(_this12.options.prepend) : '').concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this12.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(options.ordinal ? \"ordinal\".concat(this.options.prepend) : '').concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this13 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this13.options.prepend && suffix.toString() ? _this13.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n\n return path;\n}\n\nvar Interpolator = /*#__PURE__*/function () {\n function Interpolator() {\n _classCallCheck(this, Interpolator);\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this14 = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this14.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this14.options.keySeparator, _this14.options.ignoreJSONStructure);\n return _this14.alwaysFormat ? _this14.format(path, undefined, lng, _objectSpread(_objectSpread(_objectSpread({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this14.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this14.formatSeparator).trim();\n return _this14.format(deepFindWithDefaults(data, defaultData, k, _this14.options.keySeparator, _this14.options.ignoreJSONStructure), f, lng, _objectSpread(_objectSpread(_objectSpread({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this14.escapeValue ? regexSafe(_this14.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this14.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this14.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this14.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this15 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread(_objectSpread({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread({}, options);\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this15.format(v, f, options.lng, _objectSpread(_objectSpread({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = /*#__PURE__*/function () {\n function Formatter() {\n _classCallCheck(this, Formatter);\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread(_objectSpread({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng) {\n var _this16 = this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this16.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this16.formats[formatName](mem, l, _objectSpread(_objectSpread(_objectSpread({}, formatOptions), options), valOptions));\n } catch (error) {\n _this16.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this16.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = /*#__PURE__*/function (_EventEmitter3) {\n _inherits(Connector, _EventEmitter3);\n\n var _super3 = _createSuper(Connector);\n\n function Connector(backend, store, services) {\n var _this17;\n\n _classCallCheck(this, Connector);\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _this17 = _super3.call(this);\n _this17.backend = backend;\n _this17.store = store;\n _this17.services = services;\n _this17.languageUtils = services.languageUtils;\n _this17.options = options;\n _this17.logger = baseLogger.create('backendConnector');\n _this17.waitingReads = [];\n _this17.maxParallelReads = options.maxParallelReads || 10;\n _this17.readingCalls = 0;\n _this17.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this17.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this17.state = {};\n _this17.queue = [];\n\n if (_this17.backend && _this17.backend.init) {\n _this17.backend.init(services, options.backend, options);\n }\n\n return _this17;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this18 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this18.store.hasResourceBundle(lng, ns)) {\n _this18.state[name] = 2;\n } else if (_this18.state[name] < 0) ;else if (_this18.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this18.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this19 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n\n var resolver = function resolver(err, data) {\n _this19.readingCalls--;\n\n if (_this19.waitingReads.length > 0) {\n var next = _this19.waitingReads.shift();\n\n _this19.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this19.maxRetries) {\n setTimeout(function () {\n _this19.read.call(_this19, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n };\n\n var fc = this.backend[fcName].bind(this.backend);\n\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n }).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n\n return;\n }\n\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this20 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this20.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this21 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this21.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this21.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this21.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n var opts = _objectSpread(_objectSpread({}, options), {}, {\n isUpdate: isUpdate\n });\n\n var fc = this.backend.create.bind(this.backend);\n\n if (fc.length < 6) {\n try {\n var r;\n\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n }).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format2, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\n\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = /*#__PURE__*/function (_EventEmitter4) {\n _inherits(I18n, _EventEmitter4);\n\n var _super4 = _createSuper(I18n);\n\n function I18n() {\n var _this22;\n\n _classCallCheck(this, I18n);\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _this22 = _super4.call(this);\n _this22.options = transformOptions(options);\n _this22.services = {};\n _this22.logger = baseLogger;\n _this22.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this22));\n\n if (callback && !_this22.isInitialized && !options.isClone) {\n if (!_this22.options.initImmediate) {\n _this22.init(options, callback);\n\n return _possibleConstructorReturn(_this22, _assertThisInitialized(_this22));\n }\n\n setTimeout(function () {\n _this22.init(options, callback);\n }, 0);\n }\n\n return _this22;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this23 = this;\n\n var _this = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this.emit.apply(_this, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this.emit.apply(_this, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this23);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this23[fcName] = function () {\n var _this$store;\n\n return (_this$store = _this.store)[fcName].apply(_this$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this23[fcName] = function () {\n var _this$store2;\n\n (_this$store2 = _this.store)[fcName].apply(_this$store2, arguments);\n\n return _this;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this23.isInitialized && !_this23.initializedStoreOnce) _this23.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this23.isInitialized = true;\n if (!_this23.options.isClone) _this23.logger.log('initialized', _this23.options);\n\n _this23.emit('initialized', _this23.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this23.languages && _this23.options.compatibilityAPI !== 'v1' && !_this23.isInitialized) return finish(null, _this23.t.bind(_this23));\n\n _this23.changeLanguage(_this23.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this24 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this24.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this24.resolvedLanguage && _this24.language) _this24.setResolvedLanguage(_this24.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this25 = this;\n\n var _this2 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this25.language = l;\n _this25.languages = _this25.services.languageUtils.toResolveHierarchy(l);\n _this25.resolvedLanguage = undefined;\n\n _this25.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this25.translator.changeLanguage(l);\n\n _this25.isLanguageChangingTo = undefined;\n\n _this25.emit('languageChanged', l);\n\n _this25.logger.log('languageChanged', l);\n } else {\n _this25.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this2.t.apply(_this2, arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t.apply(_this2, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this25.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this25.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this25.language) {\n setLngProps(l);\n }\n\n if (!_this25.translator.language) _this25.translator.changeLanguage(l);\n if (_this25.services.languageDetector && _this25.services.languageDetector.cacheUserLanguage) _this25.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this25.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this3.options.keySeparator || '.';\n var resultKey;\n\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n\n return _this3.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this26 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = options.lng || this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this26.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this27 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this27.options.ns.indexOf(n) < 0) _this27.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this28 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this28[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }], [{\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\nmodule.exports = instance;","// In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either.\nfunction noop() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n}\n\nfunction createWeakMap() {\n if (typeof WeakMap !== \"undefined\") {\n return new WeakMap();\n } else {\n return fakeSetOrMap();\n }\n}\n/**\n * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything.\n */\n\n\nfunction fakeSetOrMap() {\n return {\n add: noop,\n delete: noop,\n get: noop,\n set: noop,\n has: function has(k) {\n return false;\n }\n };\n} // Safe hasOwnProperty\n\n\nvar hop = Object.prototype.hasOwnProperty;\n\nvar has = function has(obj, prop) {\n return hop.call(obj, prop);\n}; // Copy all own enumerable properties from source to target\n\n\nfunction extend(target, source) {\n for (var prop in source) {\n if (has(source, prop)) {\n target[prop] = source[prop];\n }\n }\n\n return target;\n}\n\nvar reLeadingNewline = /^[ \\t]*(?:\\r\\n|\\r|\\n)/;\nvar reTrailingNewline = /(?:\\r\\n|\\r|\\n)[ \\t]*$/;\nvar reStartsWithNewlineOrIsEmpty = /^(?:[\\r\\n]|$)/;\nvar reDetectIndentation = /(?:\\r\\n|\\r|\\n)([ \\t]*)(?:[^ \\t\\r\\n]|$)/;\nvar reOnlyWhitespaceWithAtLeastOneNewline = /^[ \\t]*[\\r\\n][ \\t\\r\\n]*$/;\n\nfunction _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) {\n // If first interpolated value is a reference to outdent,\n // determine indentation level from the indentation of the interpolated value.\n var indentationLevel = 0;\n var match = strings[0].match(reDetectIndentation);\n\n if (match) {\n indentationLevel = match[1].length;\n }\n\n var reSource = \"(\\\\r\\\\n|\\\\r|\\\\n).{0,\" + indentationLevel + \"}\";\n var reMatchIndent = new RegExp(reSource, \"g\");\n\n if (firstInterpolatedValueSetsIndentationLevel) {\n strings = strings.slice(1);\n }\n\n var newline = options.newline,\n trimLeadingNewline = options.trimLeadingNewline,\n trimTrailingNewline = options.trimTrailingNewline;\n var normalizeNewlines = typeof newline === \"string\";\n var l = strings.length;\n var outdentedStrings = strings.map(function (v, i) {\n // Remove leading indentation from all lines\n v = v.replace(reMatchIndent, \"$1\"); // Trim a leading newline from the first string\n\n if (i === 0 && trimLeadingNewline) {\n v = v.replace(reLeadingNewline, \"\");\n } // Trim a trailing newline from the last string\n\n\n if (i === l - 1 && trimTrailingNewline) {\n v = v.replace(reTrailingNewline, \"\");\n } // Normalize newlines\n\n\n if (normalizeNewlines) {\n v = v.replace(/\\r\\n|\\n|\\r/g, function (_) {\n return newline;\n });\n }\n\n return v;\n });\n return outdentedStrings;\n}\n\nfunction concatStringsAndValues(strings, values) {\n var ret = \"\";\n\n for (var i = 0, l = strings.length; i < l; i++) {\n ret += strings[i];\n\n if (i < l - 1) {\n ret += values[i];\n }\n }\n\n return ret;\n}\n\nfunction isTemplateStringsArray(v) {\n return has(v, \"raw\") && has(v, \"length\");\n}\n/**\n * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to\n * makeInstance\n * @param options\n * @return {outdent}\n */\n\n\nfunction createInstance(options) {\n /** Cache of pre-processed template literal arrays */\n var arrayAutoIndentCache = createWeakMap();\n /**\n * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent,\n * before interpolated values are injected.\n */\n\n var arrayFirstInterpSetsIndentCache = createWeakMap();\n\n function outdent(stringsOrOptions) {\n var values = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* tslint:enable:no-shadowed-variable */\n\n\n if (isTemplateStringsArray(stringsOrOptions)) {\n var strings = stringsOrOptions; // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace?\n\n var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); // Perform outdentation\n\n var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache;\n var renderedArray = cache.get(strings);\n\n if (!renderedArray) {\n renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options);\n cache.set(strings, renderedArray);\n }\n /** If no interpolated values, skip concatenation step */\n\n\n if (values.length === 0) {\n return renderedArray[0];\n }\n /** Concatenate string literals with interpolated values */\n\n\n var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values);\n return rendered;\n } else {\n // Create and return a new instance of outdent with the given options\n return createInstance(extend(extend({}, options), stringsOrOptions || {}));\n }\n }\n\n var fullOutdent = extend(outdent, {\n string: function string(str) {\n return _outdentArray([str], false, options)[0];\n }\n });\n return fullOutdent;\n}\n\nvar defaultOutdent = createInstance({\n trimLeadingNewline: true,\n trimTrailingNewline: true\n}); // Named exports. Simple and preferred.\n// import outdent from 'outdent';\n\nexport default defaultOutdent; // import {outdent} from 'outdent';\n\nexport { defaultOutdent as outdent };\n\nif (typeof module !== \"undefined\") {\n // In webpack harmony-modules environments, module.exports is read-only,\n // so we fail gracefully.\n try {\n module.exports = defaultOutdent;\n Object.defineProperty(defaultOutdent, \"__esModule\", {\n value: true\n });\n defaultOutdent.default = defaultOutdent;\n defaultOutdent.outdent = defaultOutdent;\n } catch (e) {}\n}","import e from \"void-elements\";\nvar t = /\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;\n\nfunction n(n) {\n var r = {\n type: \"tag\",\n name: \"\",\n voidElement: !1,\n attrs: {},\n children: []\n },\n i = n.match(/<\\/?([^\\s]+?)[/\\s>]/);\n\n if (i && (r.name = i[1], (e[i[1]] || \"/\" === n.charAt(n.length - 2)) && (r.voidElement = !0), r.name.startsWith(\"!--\"))) {\n var s = n.indexOf(\"--\\x3e\");\n return {\n type: \"comment\",\n comment: -1 !== s ? n.slice(4, s) : \"\"\n };\n }\n\n for (var a = new RegExp(t), c = null; null !== (c = a.exec(n));) {\n if (c[0].trim()) if (c[1]) {\n var o = c[1].trim(),\n l = [o, \"\"];\n o.indexOf(\"=\") > -1 && (l = o.split(\"=\")), r.attrs[l[0]] = l[1], a.lastIndex--;\n } else c[2] && (r.attrs[c[2]] = c[3].trim().substring(1, c[3].length - 1));\n }\n\n return r;\n}\n\nvar r = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,\n i = /^\\s*$/,\n s = Object.create(null);\n\nfunction a(e, t) {\n switch (t.type) {\n case \"text\":\n return e + t.content;\n\n case \"tag\":\n return e += \"<\" + t.name + (t.attrs ? function (e) {\n var t = [];\n\n for (var n in e) {\n t.push(n + '=\"' + e[n] + '\"');\n }\n\n return t.length ? \" \" + t.join(\" \") : \"\";\n }(t.attrs) : \"\") + (t.voidElement ? \"/>\" : \">\"), t.voidElement ? e : e + t.children.reduce(a, \"\") + \"\";\n\n case \"comment\":\n return e + \"\\x3c!--\" + t.comment + \"--\\x3e\";\n }\n}\n\nvar c = {\n parse: function parse(e, t) {\n t || (t = {}), t.components || (t.components = s);\n var a,\n c = [],\n o = [],\n l = -1,\n m = !1;\n\n if (0 !== e.indexOf(\"<\")) {\n var u = e.indexOf(\"<\");\n c.push({\n type: \"text\",\n content: -1 === u ? e : e.substring(0, u)\n });\n }\n\n return e.replace(r, function (r, s) {\n if (m) {\n if (r !== \"\") return;\n m = !1;\n }\n\n var u,\n f = \"/\" !== r.charAt(1),\n h = r.startsWith(\"\\x3c!--\"),\n p = s + r.length,\n d = e.charAt(p);\n\n if (h) {\n var v = n(r);\n return l < 0 ? (c.push(v), c) : ((u = o[l]).children.push(v), c);\n }\n\n if (f && (l++, \"tag\" === (a = n(r)).type && t.components[a.name] && (a.type = \"component\", m = !0), a.voidElement || m || !d || \"<\" === d || a.children.push({\n type: \"text\",\n content: e.slice(p, e.indexOf(\"<\", p))\n }), 0 === l && c.push(a), (u = o[l - 1]) && u.children.push(a), o[l] = a), (!f || a.voidElement) && (l > -1 && (a.voidElement || a.name === r.slice(2, -1)) && (l--, a = -1 === l ? c : o[l]), !m && \"<\" !== d && d)) {\n u = -1 === l ? c : o[l].children;\n var x = e.indexOf(\"<\", p),\n g = e.slice(p, -1 === x ? void 0 : x);\n i.test(g) && (g = \" \"), (x > -1 && l + u.length >= 0 || \" \" !== g) && u.push({\n type: \"text\",\n content: g\n });\n }\n }), c;\n },\n stringify: function stringify(e) {\n return e.reduce(function (e, t) {\n return e + a(\"\", t);\n }, \"\");\n }\n};\nexport default c;","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\n\nvar loadedClb = function loadedClb(i18n, cb) {\n return function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n };\n};\n\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { unescape } from './unescape.js';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}","var i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import _objectWithoutProperties from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nimport _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nvar _excluded = [\"format\"],\n _excluded2 = [\"children\", \"count\", \"parent\", \"i18nKey\", \"context\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { isValidElement, cloneElement, createElement } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { warn, warnOnce } from './utils.js';\nimport { getDefaults } from './defaults.js';\nimport { getI18n } from './i18nInstance.js';\n\nfunction hasChildren(node, checkLength) {\n if (!node) return false;\n var base = node.props ? node.props.children : node.children;\n if (checkLength) return base.length > 0;\n return !!base;\n}\n\nfunction getChildren(node) {\n if (!node) return [];\n return node.props ? node.props.children : node.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"\");\n }\n } else if (child === null) {\n warn(\"Trans: the passed in value is invalid - seems you passed in a null child.\");\n } else if (typeof child === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, _excluded);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (typeof child === 'object' && !isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var ast = HTML.parse(\"<0>\".concat(targetString, \"\"));\n\n var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) child.children = inner;\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), isVoid ? undefined : inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && typeof child === 'object' && child.dummy && !isElement;\n var isKnownComponent = typeof children === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"\"));\n }\n } else if (typeof child === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n var _content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _content));\n } else {\n mem.push(_content);\n }\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n context = _ref.context,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded2);\n\n var i18n = i18nFromProps || getI18n();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');\n return children;\n }\n\n var t = tFromProps || i18n.t.bind(i18n) || function (k) {\n return k;\n };\n\n if (context) tOptions.context = context;\n\n var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;\n var hashTransKey = reactI18nextOptions.hashTransKey;\n var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);\n var interpolationOverride = values ? tOptions.interpolation : {\n interpolation: _objectSpread(_objectSpread({}, tOptions.interpolation), {}, {\n prefix: '#$?',\n suffix: '?$#'\n })\n };\n\n var combinedTOpts = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tOptions), {}, {\n count: count\n }, values), interpolationOverride), {}, {\n defaultValue: defaultValue,\n ns: namespaces\n });\n\n var translation = key ? t(key, combinedTOpts) : defaultValue;\n var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _classCallCheck from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/createClass.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport var I18nContext = createContext();\nexport var ReportNamespaces = /*#__PURE__*/function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectWithoutProperties from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"children\", \"count\", \"parent\", \"i18nKey\", \"context\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { useContext } from 'react';\nimport { nodesToString, Trans as TransWithoutContext } from './TransWithoutContext.js';\nimport { getI18n, I18nContext } from './context.js';\nexport { nodesToString };\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n context = _ref.context,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n var t = tFromProps || i18n && i18n.t.bind(i18n);\n return TransWithoutContext(_objectSpread({\n children: children,\n count: count,\n parent: parent,\n i18nKey: i18nKey,\n context: context,\n tOptions: tOptions,\n values: values,\n defaults: defaults,\n components: components,\n ns: ns || t && t.ns || defaultNSFromContext || i18n && i18n.options && i18n.options.defaultNS,\n i18n: i18n,\n t: tFromProps,\n shouldUnescape: shouldUnescape\n }, additionalProps));\n}","import _slicedToArray from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k, optsOrDefaultValue) {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n if (props.lng) joinedNS = \"\".concat(props.lng).concat(joinedNS);\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n } else {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, function () {\n return resolve();\n });\n } else {\n loadNamespaces(i18n, namespaces, function () {\n return resolve();\n });\n }\n });\n}","import _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _slicedToArray from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _objectWithoutProperties from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"forwardedRef\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation.js';\nimport { getDisplayName } from './utils.js';\nexport function withTranslation(ns) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function Extend(WrappedComponent) {\n function I18nextWithTranslation(_ref) {\n var forwardedRef = _ref.forwardedRef,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var _useTranslation = useTranslation(ns, _objectSpread(_objectSpread({}, rest), {}, {\n keyPrefix: options.keyPrefix\n })),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n var passDownProps = _objectSpread(_objectSpread({}, rest), {}, {\n t: t,\n i18n: i18n,\n tReady: ready\n });\n\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n\n return createElement(WrappedComponent, passDownProps);\n }\n\n I18nextWithTranslation.displayName = \"withI18nextTranslation(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n\n var forwardRef = function forwardRef(props, ref) {\n return createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n };\n\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n };\n}","import _slicedToArray from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _objectWithoutProperties from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"ns\", \"children\"];\nimport { useTranslation } from './useTranslation.js';\nexport function Translation(props) {\n var ns = props.ns,\n children = props.children,\n options = _objectWithoutProperties(props, _excluded);\n\n var _useTranslation = useTranslation(ns, options),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n return children(t, {\n i18n: i18n,\n lng: i18n.language\n }, ready);\n}","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider(_ref) {\n var i18n = _ref.i18n,\n defaultNS = _ref.defaultNS,\n children = _ref.children;\n var value = useMemo(function () {\n return {\n i18n: i18n,\n defaultNS: defaultNS\n };\n }, [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value: value\n }, children);\n}","import { useContext } from 'react';\nimport { getI18n, I18nContext } from './context.js';\nexport function useSSR(initialI18nStore, initialLanguage) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n.options && i18n.options.isClone) return;\n\n if (initialI18nStore && !i18n.initializedStoreOnce) {\n i18n.services.resourceStore.data = initialI18nStore;\n i18n.options.ns = Object.values(initialI18nStore).reduce(function (mem, lngResources) {\n Object.keys(lngResources).forEach(function (ns) {\n if (mem.indexOf(ns) < 0) mem.push(ns);\n });\n return mem;\n }, i18n.options.ns);\n i18n.initializedStoreOnce = true;\n i18n.isInitialized = true;\n }\n\n if (initialLanguage && !i18n.initializedLanguageOnce) {\n i18n.changeLanguage(initialLanguage);\n i18n.initializedLanguageOnce = true;\n }\n}","import _defineProperty from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectWithoutProperties from \"/Users/askarjkee/projects/rbk/rbk-yggdrasil/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"initialI18nStore\", \"initialLanguage\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { createElement } from 'react';\nimport { useSSR } from './useSSR.js';\nimport { composeInitialProps } from './context.js';\nimport { getDisplayName } from './utils.js';\nexport function withSSR() {\n return function Extend(WrappedComponent) {\n function I18nextWithSSR(_ref) {\n var initialI18nStore = _ref.initialI18nStore,\n initialLanguage = _ref.initialLanguage,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n useSSR(initialI18nStore, initialLanguage);\n return createElement(WrappedComponent, _objectSpread({}, rest));\n }\n\n I18nextWithSSR.getInitialProps = composeInitialProps(WrappedComponent);\n I18nextWithSSR.displayName = \"withI18nextSSR(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithSSR.WrappedComponent = WrappedComponent;\n return I18nextWithSSR;\n };\n}","export { Trans } from './Trans.js';\nexport { Trans as TransWithoutContext } from './TransWithoutContext.js';\nexport { useTranslation } from './useTranslation.js';\nexport { withTranslation } from './withTranslation.js';\nexport { Translation } from './Translation.js';\nexport { I18nextProvider } from './I18nextProvider.js';\nexport { withSSR } from './withSSR.js';\nexport { useSSR } from './useSSR.js';\nexport { initReactI18next } from './initReactI18next.js';\nexport { setDefaults, getDefaults } from './defaults.js';\nexport { setI18n, getI18n } from './i18nInstance.js';\nexport { I18nContext, composeInitialProps, getInitialProps } from './context.js';\nexport var date = function date() {\n return '';\n};\nexport var time = function time() {\n return '';\n};\nexport var number = function number() {\n return '';\n};\nexport var select = function select() {\n return '';\n};\nexport var plural = function plural() {\n return '';\n};\nexport var selectOrdinal = function selectOrdinal() {\n return '';\n};","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};","\"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}","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-yandex-metrika/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":89890421,\"clickmap\":true,\"trackLinks\":true,\"accurateTrackBounce\":true,\"webvisor\":true,\"trackHash\":true,\"afterBody\":true,\"defer\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"localeJsonSourceName\":\"locale\",\"languages\":[\"kz\",\"ru\"],\"defaultLanguage\":\"kz\",\"siteUrl\":\"https://openrbk.kz\",\"trailingSlash\":\"always\",\"i18nextOptions\":{\"interpolation\":{\"escapeValue\":false},\"keySeparator\":false,\"nsSeparator\":false}},\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","// \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","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\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\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\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\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\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 const context = React.useContext(StaticQueryContext)\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\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\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 {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\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 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\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.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 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 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 const 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 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 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 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 => {\n if (!asyncRequires.components[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.components[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\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 prevHeadNodes.forEach(e => e.remove())\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].remove()\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\n\n const existingHeadElements = [\n ...document.querySelectorAll(`[data-gatsby-head]`),\n ]\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.remove(),\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 { 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 const pageElement = createElement(\n preferDefault(props.pageResources.component),\n {\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 { element: pageElement, props: pageComponentProps },\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 const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\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})\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.I18nextContext = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar I18nextContext = /*#__PURE__*/_react.default.createContext({\n language: 'en',\n languages: ['en'],\n routed: false,\n defaultLanguage: 'en',\n generateDefaultLanguagePage: false,\n originalPath: '/',\n path: '/'\n});\nexports.I18nextContext = I18nextContext;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.wrapPageElement = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _gatsby = require(\"gatsby\");\nvar _browserLang = _interopRequireDefault(require(\"browser-lang\"));\nvar _types = require(\"../types\");\nvar _i18next = _interopRequireDefault(require(\"i18next\"));\nvar _reactI18next = require(\"react-i18next\");\nvar _i18nextContext = require(\"../i18nextContext\");\nvar _outdent = _interopRequireDefault(require(\"outdent\"));\nvar _templateObject;\nvar withI18next = function withI18next(i18n, context) {\n return function (children) {\n return /*#__PURE__*/_react.default.createElement(_reactI18next.I18nextProvider, {\n i18n: i18n\n }, /*#__PURE__*/_react.default.createElement(_i18nextContext.I18nextContext.Provider, {\n value: context\n }, children));\n };\n};\nvar removePathPrefix = function removePathPrefix(pathname, stripTrailingSlash) {\n var pathPrefix = (0, _gatsby.withPrefix)('/');\n var result = pathname;\n if (pathname.startsWith(pathPrefix)) {\n result = pathname.replace(pathPrefix, '/');\n }\n if (stripTrailingSlash && result.endsWith('/')) {\n return result.slice(0, -1);\n }\n return result;\n};\nvar wrapPageElement = function wrapPageElement(_ref, _ref2) {\n var _data$localeJsonNodeN, _i18nextOptions$defau;\n var element = _ref.element,\n props = _ref.props;\n var _ref2$i18nextOptions = _ref2.i18nextOptions,\n i18nextOptions = _ref2$i18nextOptions === void 0 ? {} : _ref2$i18nextOptions,\n _ref2$redirect = _ref2.redirect,\n redirect = _ref2$redirect === void 0 ? true : _ref2$redirect,\n _ref2$generateDefault = _ref2.generateDefaultLanguagePage,\n generateDefaultLanguagePage = _ref2$generateDefault === void 0 ? false : _ref2$generateDefault,\n siteUrl = _ref2.siteUrl,\n _ref2$localeJsonNodeN = _ref2.localeJsonNodeName,\n localeJsonNodeName = _ref2$localeJsonNodeN === void 0 ? 'locales' : _ref2$localeJsonNodeN,\n fallbackLanguage = _ref2.fallbackLanguage,\n trailingSlash = _ref2.trailingSlash;\n if (!props) return;\n var data = props.data,\n pageContext = props.pageContext,\n location = props.location;\n var _pageContext$i18n = pageContext.i18n,\n routed = _pageContext$i18n.routed,\n language = _pageContext$i18n.language,\n languages = _pageContext$i18n.languages,\n originalPath = _pageContext$i18n.originalPath,\n defaultLanguage = _pageContext$i18n.defaultLanguage,\n path = _pageContext$i18n.path;\n var isRedirect = redirect && !routed;\n if (isRedirect) {\n var search = location.search;\n\n // Skip build, Browsers only\n if (typeof window !== 'undefined') {\n var detected = window.localStorage.getItem(_types.LANGUAGE_KEY) || (0, _browserLang.default)({\n languages: languages,\n fallback: fallbackLanguage || language\n });\n if (!languages.includes(detected)) {\n detected = language;\n }\n window.localStorage.setItem(_types.LANGUAGE_KEY, detected);\n if (detected !== defaultLanguage) {\n var queryParams = search || '';\n var stripTrailingSlash = trailingSlash === 'never';\n var newUrl = (0, _gatsby.withPrefix)(\"/\" + detected + removePathPrefix(location.pathname, stripTrailingSlash) + queryParams + location.hash);\n // @ts-ignore\n window.___replace(newUrl);\n return null;\n }\n }\n }\n var localeNodes = (data === null || data === void 0 ? void 0 : (_data$localeJsonNodeN = data[localeJsonNodeName]) === null || _data$localeJsonNodeN === void 0 ? void 0 : _data$localeJsonNodeN.edges) || [];\n if (languages.length > 1 && localeNodes.length === 0 && process.env.NODE_ENV === 'development') {\n console.error((0, _outdent.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n `;\\n \"], [\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql\\\\`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n \\\\`;\\n \"])), localeJsonNodeName, originalPath, localeJsonNodeName));\n }\n var namespaces = localeNodes.map(function (_ref3) {\n var node = _ref3.node;\n return node.ns;\n });\n\n // We want to set default namespace to a page namespace if it exists\n // and use other namespaces as fallback\n // this way you dont need to specify namespaces in pages\n var defaultNS = ((_i18nextOptions$defau = i18nextOptions.defaultNS) === null || _i18nextOptions$defau === void 0 ? void 0 : _i18nextOptions$defau.toString()) || 'translation';\n defaultNS = namespaces.find(function (ns) {\n return ns !== defaultNS;\n }) || defaultNS;\n var fallbackNS = namespaces.filter(function (ns) {\n return ns !== defaultNS;\n });\n var resources = localeNodes.reduce(function (res, _ref4) {\n var node = _ref4.node;\n var parsedData = typeof node.data === 'object' ? node.data : JSON.parse(node.data);\n if (!(node.language in res)) res[node.language] = {};\n res[node.language][node.ns || defaultNS] = parsedData;\n return res;\n }, {});\n var i18n = _i18next.default.createInstance();\n i18n.init((0, _extends2.default)({}, i18nextOptions, {\n resources: resources,\n lng: language,\n fallbackLng: defaultLanguage,\n defaultNS: defaultNS,\n fallbackNS: fallbackNS,\n react: (0, _extends2.default)({}, i18nextOptions.react, {\n useSuspense: false\n })\n }));\n if (i18n.language !== language) {\n i18n.changeLanguage(language);\n }\n var context = {\n routed: routed,\n language: language,\n languages: languages,\n originalPath: originalPath,\n defaultLanguage: defaultLanguage,\n generateDefaultLanguagePage: generateDefaultLanguagePage,\n siteUrl: siteUrl,\n path: path\n };\n return withI18next(i18n, context)(element);\n};\nexports.wrapPageElement = wrapPageElement;","\"use strict\";\n\nexports.__esModule = true;\nexports.LANGUAGE_KEY = void 0;\nvar LANGUAGE_KEY = 'gatsby-i18next-language';\nexports.LANGUAGE_KEY = LANGUAGE_KEY;","const {wrapPageElement} = require('./dist/plugin/wrapPageElement');\nexports.wrapPageElement = wrapPageElement;\n","'use strict';\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n\n // Don't track while developing.\n if (process.env.NODE_ENV === 'production' && typeof window.ym !== 'undefined') {\n window.ym(pluginOptions.trackingId, 'hit', (location || {}).pathname);\n }\n};","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\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.\n\n\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// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\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.\n\n\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); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\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\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\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// insertParams(path, params)\n\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 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\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\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};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\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 {\n route: route,\n score: score,\n index: index\n };\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 // 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 * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\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) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar 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 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\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({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\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, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\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({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\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 return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\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({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\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] = {\n pathname: pathname,\n search: search\n };\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// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\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\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\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: {\n unlisten: null\n }\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 return {\n navigate: navigate,\n location: location\n };\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, {\n replace: true\n });\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\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 {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\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 return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\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(LocationContext.Provider, {\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 }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\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 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; // 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(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\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};\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(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\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\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\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 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(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\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(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, 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 return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\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\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\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 } // Support React < 16 with this hook\n\n\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), {\n replace: replace,\n state: state\n });\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(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\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// Hooks\n\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 var results = match(context.basepath, location.pathname);\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\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 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// Junk\n\n\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\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 !!(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 !!(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 {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\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 };","/**\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","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, 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\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\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}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, 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}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}\n\nmodule.exports = _taggedTemplateLiteralLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, 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 `