{"version":3,"file":"app-bc4037f4fc2d8edae368.js","mappings":"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","sources":["webpack://manuel.stingl.st/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://manuel.stingl.st/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://manuel.stingl.st/./node_modules/browser-lang/dist/index.js","webpack://manuel.stingl.st/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://manuel.stingl.st/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://manuel.stingl.st/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://manuel.stingl.st/./node_modules/i18next/dist/esm/i18next.js","webpack://manuel.stingl.st/./node_modules/outdent/lib-module/index.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/context.js","webpack://manuel.stingl.st/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/Trans.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/Translation.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/useSSR.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/withSSR.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/index.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://manuel.stingl.st/./node_modules/react-i18next/dist/es/utils.js","webpack://manuel.stingl.st/./node_modules/void-elements/index.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/index.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/is-local-link.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/node_modules/prop-types/factoryWithThrowingShims.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/node_modules/prop-types/index.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/parse-path.js","webpack://manuel.stingl.st/./node_modules/gatsby-link/rewrite-link-path.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/index.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/node_modules/prop-types/factoryWithThrowingShims.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/node_modules/prop-types/index.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://manuel.stingl.st/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://manuel.stingl.st/./node_modules/gatsby-script/dist/partytown-context.js","webpack://manuel.stingl.st/./node_modules/gatsby-script/dist/request-idle-callback-shim.js","webpack://manuel.stingl.st/./node_modules/gatsby-script/dist/gatsby-script.js","webpack://manuel.stingl.st/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://manuel.stingl.st/./.cache/api-runner-browser-plugins.js","webpack://manuel.stingl.st/./.cache/api-runner-browser.js","webpack://manuel.stingl.st/./node_modules/mitt/dist/mitt.es.js","webpack://manuel.stingl.st/./.cache/emitter.js","webpack://manuel.stingl.st/./.cache/normalize-page-path.js","webpack://manuel.stingl.st/./.cache/find-path.js","webpack://manuel.stingl.st/./.cache/gatsby-browser-entry.js","webpack://manuel.stingl.st/./.cache/prefetch.js","webpack://manuel.stingl.st/./.cache/loader.js","webpack://manuel.stingl.st/./.cache/page-renderer.js","webpack://manuel.stingl.st/./.cache/route-announcer-props.js","webpack://manuel.stingl.st/./.cache/navigation.js","webpack://manuel.stingl.st/./node_modules/shallow-compare/es/index.js","webpack://manuel.stingl.st/./.cache/production-app.js","webpack://manuel.stingl.st/./.cache/ensure-resources.js","webpack://manuel.stingl.st/./.cache/public-page-renderer-prod.js","webpack://manuel.stingl.st/./.cache/public-page-renderer.js","webpack://manuel.stingl.st/./.cache/react-lifecycles-compat.js","webpack://manuel.stingl.st/./.cache/redirect-utils.js","webpack://manuel.stingl.st/./.cache/register-service-worker.js","webpack://manuel.stingl.st/./.cache/strip-prefix.js","webpack://manuel.stingl.st/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://manuel.stingl.st/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://manuel.stingl.st/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://manuel.stingl.st/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://manuel.stingl.st/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://manuel.stingl.st/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://manuel.stingl.st/./src/context/page.tsx","webpack://manuel.stingl.st/./src/gatsby-api/wrap-page.tsx","webpack://manuel.stingl.st/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://manuel.stingl.st/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://manuel.stingl.st/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://manuel.stingl.st/./node_modules/invariant/browser.js","webpack://manuel.stingl.st/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://manuel.stingl.st/./node_modules/@builder.io/partytown/react/index.cjs","webpack://manuel.stingl.st/./node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://manuel.stingl.st/./node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://manuel.stingl.st/./node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://manuel.stingl.st/./node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://manuel.stingl.st/./node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://manuel.stingl.st/./node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/createClass.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/extends.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/typeof.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://manuel.stingl.st/./node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js"],"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);\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, option) {\n if (option === void 0) {\n option = \"legacy\";\n }\n\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 : 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\nmodule.exports = Object.assign;","\"use strict\";\n\nvar _slicedToArray = require(\"/builds/manuel.stingl/website/node_modules/babel-preset-gatsby/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;","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _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 }, _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\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 = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\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: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\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({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = 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 _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.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 isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\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 (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 (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\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\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\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 = this.options.keySeparator;\n if (keySeparator === undefined) 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({}, 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({}, {}, 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: \"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 _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\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 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\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\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 _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\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 return namespace + nsSeparator + key;\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 return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread({}, options, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\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({}, 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) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || 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 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({}, 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, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n }\n\n _this2.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 _this2.pluralResolver.getSuffixes(language).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 if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && 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({}, 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.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 _this3.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 _this3.translate.apply(_this3, 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 _this4 = 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 (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.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 (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.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 = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\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 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 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: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(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 _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.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 = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\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 _this2 = 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 (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && 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(_this2.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};\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 = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\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 return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\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 _this2.options.prepend && suffix.toString() ? _this2.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 this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\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 _this = 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(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread({}, options, data, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _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 || 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 _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\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 (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.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 += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\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 optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _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 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 _this2.format(v, f, options.lng, _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 remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = 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 && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ;else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: 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 remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\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 _this3 = 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] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = 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 _this4.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 _this5 = 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) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.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\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 this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\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 whitelist: false,\n nonExplicitWhitelist: 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: true,\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, _format, 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: false\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.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\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\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = 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.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\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 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 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 _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n 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 _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\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 _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.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 _this3 = 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 = _this3.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, usedCallback);\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 === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.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 this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = 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 = _this5.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 return _this5.t(key, 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 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 _this6 = 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 = 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 = _this6.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) 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 _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.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.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'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\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 key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = 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\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\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 = clone.options;\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 };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\nexport default i18next;","// 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 _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\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}\nexport var ReportNamespaces = 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 setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\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 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;","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React, { useContext } from 'react';\nimport HTML from 'html-parse-stringify';\nimport { getI18n, I18nContext, getDefaults } from './context';\nimport { warn, warnOnce } from './utils';\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 && node.children ? node.children : node.props && node.props.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 React.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.transKeepBasicHtmlNodesFor || [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (React.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, [\"format\"]);\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) {\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' && !React.isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var interpolatedString = i18n.services.interpolator.interpolate(targetString, _objectSpread(_objectSpread({}, data), combinedTOpts), i18n.language);\n var ast = HTML.parse(\"<0>\".concat(interpolatedString, \"\"));\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(React.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;\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 = React.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 mem.push(child);\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(React.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(React.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(React.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(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n if (wrapTextNodes) {\n mem.push(React.createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, node.content));\n } else {\n mem.push(node.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 _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 additionalProps = _objectWithoutProperties(_ref, [\"children\", \"count\", \"parent\", \"i18nKey\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\"]);\n\n var _ref2 = useContext(I18nContext) || {},\n i18nFromContext = _ref2.i18n,\n defaultNSFromContext = _ref2.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || 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 var reactI18nextOptions = _objectSpread(_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);\n\n var namespaces = ns || t.ns || defaultNSFromContext || 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);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React from 'react';\nimport { useTranslation } from './useTranslation';\nimport { getDisplayName } from './utils';\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, [\"forwardedRef\"]);\n\n var _useTranslation = useTranslation(ns, rest),\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 React.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 React.createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n };\n\n return options.withRef ? React.forwardRef(forwardRef) : I18nextWithTranslation;\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport { useTranslation } from './useTranslation';\nexport function Translation(props) {\n var ns = props.ns,\n children = props.children,\n options = _objectWithoutProperties(props, [\"ns\", \"children\"]);\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';\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';\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 \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React from 'react';\nimport { useSSR } from './useSSR';\nimport { composeInitialProps } from './context';\nimport { getDisplayName } from './utils';\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, [\"initialI18nStore\", \"initialLanguage\"]);\n\n useSSR(initialI18nStore, initialLanguage);\n return React.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';\nexport { useTranslation } from './useTranslation';\nexport { withTranslation } from './withTranslation';\nexport { Translation } from './Translation';\nexport { I18nextProvider } from './I18nextProvider';\nexport { withSSR } from './withSSR';\nexport { useSSR } from './useSSR';\nexport { I18nContext, initReactI18next, setDefaults, getDefaults, setI18n, getI18n, composeInitialProps, getInitialProps } from './context';\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};","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\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) {\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 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(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0]);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\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 loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\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, namespaces.join()]);\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]);\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 loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","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}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, 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}\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 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) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\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\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.navigate = exports.default = void 0;\nexports.withAssetPrefix = withAssetPrefix;\nexports.withPrefix = withPrefix;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar _isLocalLink = require(\"./is-local-link\");\n\nvar _rewriteLinkPath = require(\"./rewrite-link-path\");\n\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!(0, _isLocalLink.isLocalLink)(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n cb(entry.isIntersecting || entry.intersectionRatio > 0);\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.abortPrefetch = null;\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname + window.location.search; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname + this.props._location.search;\n }\n\n var rewrittenPath = (0, _rewriteLinkPath.rewriteLinkPath)(this.props.to, currentPath);\n var parsed = (0, _parsePath.parsePath)(rewrittenPath);\n var newPathName = parsed.pathname + parsed.search; // Prefetch is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n return ___loader.enqueue(newPathName);\n }\n\n return undefined;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n\n if (this.abortPrefetch) {\n this.abortPrefetch.abort();\n }\n\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && Object.prototype.hasOwnProperty.call(this.props.innerRef, \"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function (inViewPort) {\n if (inViewPort) {\n _this2.abortPrefetch = _this2._prefetch();\n } else {\n if (_this2.abortPrefetch) {\n _this2.abortPrefetch.abort();\n }\n }\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !(0, _isLocalLink.isLocalLink)(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = (0, _rewriteLinkPath.rewriteLinkPath)(to, _location.pathname);\n\n if (!(0, _isLocalLink.isLocalLink)(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n var parsed = (0, _parsePath.parsePath)(prefixedTo);\n\n ___loader.hovering(parsed.pathname + parsed.search);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate((0, _rewriteLinkPath.rewriteLinkPath)(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.isLocalLink = void 0;\n// Copied from https://github.com/sindresorhus/is-absolute-url/blob/3ab19cc2e599a03ea691bcb8a4c09fa3ebb5da4f/index.js\nvar ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\n\nvar isAbsolute = function isAbsolute(path) {\n return ABSOLUTE_URL_REGEX.test(path);\n};\n\nvar isLocalLink = function isLocalLink(path) {\n if (typeof path !== \"string\") {\n return undefined; // TODO(v5): Re-Add TypeError\n // throw new TypeError(`Expected a \\`string\\`, got \\`${typeof path}\\``)\n }\n\n return !isAbsolute(path);\n};\n\nexports.isLocalLink = isLocalLink;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.slice(hashIndex);\n pathname = pathname.slice(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.slice(searchIndex);\n pathname = pathname.slice(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.rewriteLinkPath = void 0;\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _applyTrailingSlashOption = require(\"gatsby-page-utils/apply-trailing-slash-option\");\n\nvar _parsePath2 = require(\"./parse-path\");\n\nvar _isLocalLink = require(\"./is-local-link\");\n\nvar _ = require(\".\");\n\n// Specific import to treeshake Node.js stuff\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nvar getGlobalTrailingSlash = function getGlobalTrailingSlash() {\n return typeof __TRAILING_SLASH__ !== \"undefined\" ? __TRAILING_SLASH__ : undefined;\n};\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n var option = getGlobalTrailingSlash();\n var absolutePath = (0, _utils.resolve)(path, current);\n\n if (option === \"always\" || option === \"never\") {\n return (0, _applyTrailingSlashOption.applyTrailingSlashOption)(absolutePath, option);\n }\n\n return absolutePath;\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!(0, _isLocalLink.isLocalLink)(path)) {\n return path;\n }\n\n var _parsePath = (0, _parsePath2.parsePath)(path),\n pathname = _parsePath.pathname,\n search = _parsePath.search,\n hash = _parsePath.hash;\n\n var option = getGlobalTrailingSlash();\n var adjustedPath = path;\n\n if (option === \"always\" || option === \"never\") {\n var output = (0, _applyTrailingSlashOption.applyTrailingSlashOption)(pathname, option);\n adjustedPath = \"\" + output + search + hash;\n }\n\n return isAbsolutePath(adjustedPath) ? (0, _.withPrefix)(adjustedPath) : absolutify(adjustedPath, relativeTo);\n};\n\nexports.rewriteLinkPath = rewriteLinkPath;","\"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;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"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}","import { createContext } from \"react\";\nconst PartytownContext = /*#__PURE__*/createContext({});\nexport { PartytownContext };","// https://developer.chrome.com/blog/using-requestidlecallback/#checking-for-requestidlecallback\n// https://github.com/vercel/next.js/blob/canary/packages/next/client/request-idle-callback.ts\nexport const requestIdleCallback = typeof self !== `undefined` && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function (cb) {\n const start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { useEffect, useContext } from \"react\";\nimport { PartytownContext } from \"./partytown-context\";\nimport { requestIdleCallback } from \"./request-idle-callback-shim\";\nexport let ScriptStrategy; // eslint-disable-next-line @typescript-eslint/naming-convention\n\n(function (ScriptStrategy) {\n ScriptStrategy[\"postHydrate\"] = \"post-hydrate\";\n ScriptStrategy[\"idle\"] = \"idle\";\n ScriptStrategy[\"offMainThread\"] = \"off-main-thread\";\n})(ScriptStrategy || (ScriptStrategy = {}));\n\nconst handledProps = new Set([`src`, `strategy`, `dangerouslySetInnerHTML`, `children`, `onLoad`, `onError`]);\nexport const scriptCache = new Set();\nexport const scriptCallbackCache = new Map();\nexport function Script(props) {\n const {\n id,\n src,\n strategy = ScriptStrategy.postHydrate\n } = props || {};\n const {\n collectScript\n } = useContext(PartytownContext);\n useEffect(() => {\n let details;\n\n switch (strategy) {\n case ScriptStrategy.postHydrate:\n details = injectScript(props);\n break;\n\n case ScriptStrategy.idle:\n requestIdleCallback(() => {\n details = injectScript(props);\n });\n break;\n\n case ScriptStrategy.offMainThread:\n if (collectScript) {\n const attributes = resolveAttributes(props);\n collectScript(attributes);\n }\n\n break;\n }\n\n return () => {\n const {\n script,\n loadCallback,\n errorCallback\n } = details || {};\n\n if (loadCallback) {\n script === null || script === void 0 ? void 0 : script.removeEventListener(`load`, loadCallback);\n }\n\n if (errorCallback) {\n script === null || script === void 0 ? void 0 : script.removeEventListener(`error`, errorCallback);\n }\n\n script === null || script === void 0 ? void 0 : script.remove();\n };\n }, []);\n\n if (strategy === ScriptStrategy.offMainThread) {\n const inlineScript = resolveInlineScript(props);\n const attributes = resolveAttributes(props);\n\n if (typeof window === `undefined`) {\n if (collectScript) {\n collectScript(attributes);\n } else {\n console.warn(`Unable to collect off-main-thread script '${id || src || `no-id-or-src`}' for configuration with Partytown.\\nGatsby script components must be used either as a child of your page, in wrapPageElement, or wrapRootElement.\\nSee https://gatsby.dev/gatsby-script for more information.`);\n }\n }\n\n if (inlineScript) {\n return /*#__PURE__*/React.createElement(\"script\", _extends({\n type: \"text/partytown\",\n \"data-strategy\": strategy,\n crossOrigin: \"anonymous\"\n }, attributes, {\n dangerouslySetInnerHTML: {\n __html: resolveInlineScript(props)\n }\n }));\n }\n\n return /*#__PURE__*/React.createElement(\"script\", _extends({\n type: \"text/partytown\",\n src: proxyPartytownUrl(src),\n \"data-strategy\": strategy,\n crossOrigin: \"anonymous\"\n }, attributes));\n }\n\n return null;\n}\n\nfunction injectScript(props) {\n const {\n id,\n src,\n strategy = ScriptStrategy.postHydrate,\n onLoad,\n onError\n } = props || {};\n const scriptKey = id || src;\n const callbackNames = [`load`, `error`];\n const currentCallbacks = {\n load: onLoad,\n error: onError\n };\n\n if (scriptKey) {\n /**\n * If a duplicate script is already loaded/errored, we replay load/error callbacks with the original event.\n * If it's not yet loaded/errored, keep track of callbacks so we can call load/error callbacks for each when the event occurs.\n */\n for (const name of callbackNames) {\n if (currentCallbacks !== null && currentCallbacks !== void 0 && currentCallbacks[name]) {\n var _cachedCallbacks$name;\n\n const cachedCallbacks = scriptCallbackCache.get(scriptKey) || {};\n const {\n callbacks = []\n } = (cachedCallbacks === null || cachedCallbacks === void 0 ? void 0 : cachedCallbacks[name]) || {};\n callbacks.push(currentCallbacks === null || currentCallbacks === void 0 ? void 0 : currentCallbacks[name]);\n\n if (cachedCallbacks !== null && cachedCallbacks !== void 0 && (_cachedCallbacks$name = cachedCallbacks[name]) !== null && _cachedCallbacks$name !== void 0 && _cachedCallbacks$name.event) {\n var _currentCallbacks$nam, _cachedCallbacks$name2;\n\n currentCallbacks === null || currentCallbacks === void 0 ? void 0 : (_currentCallbacks$nam = currentCallbacks[name]) === null || _currentCallbacks$nam === void 0 ? void 0 : _currentCallbacks$nam.call(currentCallbacks, cachedCallbacks === null || cachedCallbacks === void 0 ? void 0 : (_cachedCallbacks$name2 = cachedCallbacks[name]) === null || _cachedCallbacks$name2 === void 0 ? void 0 : _cachedCallbacks$name2.event);\n } else {\n scriptCallbackCache.set(scriptKey, _extends({}, cachedCallbacks, {\n [name]: {\n callbacks\n }\n }));\n }\n }\n } // Avoid injecting duplicate scripts into the DOM\n\n\n if (scriptCache.has(scriptKey)) {\n return null;\n }\n }\n\n const inlineScript = resolveInlineScript(props);\n const attributes = resolveAttributes(props);\n const script = document.createElement(`script`);\n\n if (id) {\n script.id = id;\n }\n\n script.dataset.strategy = strategy;\n\n for (const [key, value] of Object.entries(attributes)) {\n script.setAttribute(key, value);\n }\n\n if (inlineScript) {\n script.textContent = inlineScript;\n }\n\n if (src) {\n script.src = src;\n }\n\n const wrappedCallbacks = {};\n\n if (scriptKey) {\n // Add listeners on injected scripts so events are cached for use in de-duplicated script callbacks\n for (const name of callbackNames) {\n const wrappedEventCallback = event => onEventCallback(event, scriptKey, name);\n\n script.addEventListener(name, wrappedEventCallback);\n wrappedCallbacks[`${name}Callback`] = wrappedEventCallback;\n }\n\n scriptCache.add(scriptKey);\n }\n\n document.body.appendChild(script);\n return {\n script,\n loadCallback: wrappedCallbacks.loadCallback,\n errorCallback: wrappedCallbacks.errorCallback\n };\n}\n\nfunction resolveInlineScript(props) {\n const {\n dangerouslySetInnerHTML,\n children = ``\n } = props || {};\n const {\n __html: dangerousHTML = ``\n } = dangerouslySetInnerHTML || {};\n return dangerousHTML || children;\n}\n\nfunction resolveAttributes(props) {\n const attributes = {};\n\n for (const [key, value] of Object.entries(props)) {\n if (handledProps.has(key)) {\n continue;\n }\n\n attributes[key] = value;\n }\n\n return attributes;\n}\n\nfunction proxyPartytownUrl(url) {\n if (!url) {\n return undefined;\n }\n\n return `/__third-party-proxy?url=${encodeURIComponent(url)}`;\n}\n\nfunction onEventCallback(event, scriptKey, eventName) {\n const cachedCallbacks = scriptCallbackCache.get(scriptKey) || {};\n\n for (const callback of (cachedCallbacks === null || cachedCallbacks === void 0 ? void 0 : (_cachedCallbacks$even = cachedCallbacks[eventName]) === null || _cachedCallbacks$even === void 0 ? void 0 : _cachedCallbacks$even.callbacks) || []) {\n var _cachedCallbacks$even;\n\n callback(event);\n }\n\n scriptCallbackCache.set(scriptKey, {\n [eventName]: {\n event\n }\n });\n}","exports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-legal-tsx\": () => import(\"./../../../src/pages/legal.tsx\" /* webpackChunkName: \"component---src-pages-legal-tsx\" */),\n \"component---src-pages-privacy-tsx\": () => import(\"./../../../src/pages/privacy.tsx\" /* webpackChunkName: \"component---src-pages-privacy-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/static/images/icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"8c4b58212d6613d94619351feeb26244\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"languages\":[\"en\",\"de\"],\"defaultLanguage\":\"de\",\"redirect\":false,\"siteUrl\":\"https://manuel.stingl.st\",\"i18nextOptions\":{\"lowerCaseLng\":true,\"saveMissing\":false,\"interpolation\":{\"escapeValue\":false},\"keySeparator\":\".\",\"nsSeparator\":false},\"pages\":[]},\n },{\n plugin: require('../gatsby-browser.tsx'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \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 preferDefault = m => (m && m.default) || m\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) => {\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 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 const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\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)\n }\n // undefined if final result is an error\n return pageResources\n }\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 .then(preferDefault)\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 React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\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});","/* global HAS_REACT_18 */\nimport { 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\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nlet reactHydrate\nlet reactRender\nif (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n reactRender = (Component, el) =>\n reactDomClient.createRoot(el).render(Component)\n reactHydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n} else {\n const reactDomClient = require(`react-dom`)\n reactRender = reactDomClient.render\n reactHydrate = reactDomClient.hydrate\n}\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 = reactRender\n if (focusEl && focusEl.children.length) {\n defaultRenderer = reactHydrate\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 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 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","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\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.I18nextContext = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\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});\n\nexports.I18nextContext = I18nextContext;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.wrapPageElement = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar _browserLang = _interopRequireDefault(require(\"browser-lang\"));\n\nvar _types = require(\"../types\");\n\nvar _i18next = _interopRequireDefault(require(\"i18next\"));\n\nvar _reactI18next = require(\"react-i18next\");\n\nvar _i18nextContext = require(\"../i18nextContext\");\n\nvar _outdent = _interopRequireDefault(require(\"outdent\"));\n\nfunction _templateObject() {\n var data = (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 \"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\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};\n\nvar removePathPrefix = function removePathPrefix(pathname) {\n var pathPrefix = (0, _gatsby.withPrefix)('/');\n\n if (pathname.startsWith(pathPrefix)) {\n return pathname.replace(pathPrefix, '/');\n }\n\n return pathname;\n};\n\nvar wrapPageElement = function wrapPageElement(_ref, _ref2) {\n var _data$localeJsonNodeN;\n\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 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\n if (isRedirect) {\n var search = location.search; // Skip build, Browsers only\n\n if (typeof window !== 'undefined') {\n var detected = window.localStorage.getItem(_types.LANGUAGE_KEY) || (0, _browserLang.default)({\n languages: languages,\n fallback: language\n });\n\n if (!languages.includes(detected)) {\n detected = language;\n }\n\n window.localStorage.setItem(_types.LANGUAGE_KEY, detected);\n\n if (detected !== defaultLanguage) {\n var queryParams = search || '';\n var newUrl = (0, _gatsby.withPrefix)(\"/\" + detected + removePathPrefix(location.pathname) + queryParams + location.hash);\n window.location.replace(newUrl);\n return null;\n }\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\n if (languages.length > 1 && localeNodes.length === 0 && process.env.NODE_ENV === 'development') {\n console.error((0, _outdent.default)(_templateObject(), localeJsonNodeName, originalPath, localeJsonNodeName));\n }\n\n var namespaces = localeNodes.map(function (_ref3) {\n var node = _ref3.node;\n return node.ns;\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\n var defaultNS = i18nextOptions.defaultNS || '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\n var i18n = _i18next.default.createInstance();\n\n i18n.init((0, _extends2.default)({}, i18nextOptions, {\n lng: language,\n fallbackLng: defaultLanguage,\n defaultNS: defaultNS,\n fallbackNS: fallbackNS,\n react: {\n useSuspense: false\n }\n }));\n localeNodes.forEach(function (_ref4) {\n var node = _ref4.node;\n var parsedData = JSON.parse(node.data);\n i18n.addResourceBundle(node.language, node.ns, parsedData);\n });\n\n if (i18n.language !== language) {\n i18n.changeLanguage(language);\n }\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};\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","import * as React from 'react'\n\nexport const PageContext = React.createContext([{} as any, (data: any) => {}])\n\nexport const PageProvider: React.FC = ({children}) => {\n const [pageOptions, setPageOptions] = React.useState({})\n\n return {children}\n}\n","import * as React from 'react'\nimport type { GatsbyBrowser } from 'gatsby'\nimport { PageProvider } from '../context/page'\n\nexport const wrapPageElement: GatsbyBrowser['wrapPageElement'] = ({\n element,\n}) => {\n return (\n \n {element}\n \n )\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 , 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","'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 `