{"version":3,"file":"app-d510a91a50e24b3e68b0.js","mappings":"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","sources":["webpack://gatsby-starter-default/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://gatsby-starter-default/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://gatsby-starter-default/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://gatsby-starter-default/./node_modules/browser-lang/dist/index.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/events/off.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/events/on.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/query/isWindow.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/query/scrollLeft.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/query/scrollTop.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/util/inDOM.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/util/requestAnimationFrame.js","webpack://gatsby-starter-default/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://gatsby-starter-default/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gatsby-starter-default/./.cache/api-runner-browser-plugins.js","webpack://gatsby-starter-default/./.cache/api-runner-browser.js","webpack://gatsby-starter-default/./.cache/emitter.js","webpack://gatsby-starter-default/./node_modules/mitt/dist/mitt.es.js","webpack://gatsby-starter-default/./.cache/normalize-page-path.js","webpack://gatsby-starter-default/./.cache/find-path.js","webpack://gatsby-starter-default/./.cache/static-query.js","webpack://gatsby-starter-default/./.cache/gatsby-browser-entry.js","webpack://gatsby-starter-default/./.cache/prefetch.js","webpack://gatsby-starter-default/./.cache/loader.js","webpack://gatsby-starter-default/./.cache/head/components/fire-callback-in-effect.js","webpack://gatsby-starter-default/./.cache/head/constants.js","webpack://gatsby-starter-default/./.cache/head/utils.js","webpack://gatsby-starter-default/./.cache/head/head-export-handler-for-browser.js","webpack://gatsby-starter-default/./.cache/page-renderer.js","webpack://gatsby-starter-default/./.cache/route-announcer-props.js","webpack://gatsby-starter-default/./.cache/navigation.js","webpack://gatsby-starter-default/./node_modules/shallow-compare/es/index.js","webpack://gatsby-starter-default/./.cache/ensure-resources.js","webpack://gatsby-starter-default/./.cache/production-app.js","webpack://gatsby-starter-default/./.cache/public-page-renderer-prod.js","webpack://gatsby-starter-default/./.cache/public-page-renderer.js","webpack://gatsby-starter-default/./.cache/react-dom-utils.js","webpack://gatsby-starter-default/./.cache/react-lifecycles-compat.js","webpack://gatsby-starter-default/./.cache/redirect-utils.js","webpack://gatsby-starter-default/./.cache/register-service-worker.js","webpack://gatsby-starter-default/./.cache/strip-prefix.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/ScrollBehaviorContext.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/ScrollContainer.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/StateStorage.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/index.js","webpack://gatsby-starter-default/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://gatsby-starter-default/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://gatsby-starter-default/./node_modules/i18next/dist/cjs/i18next.js","webpack://gatsby-starter-default/./node_modules/invariant/browser.js","webpack://gatsby-starter-default/./node_modules/outdent/lib-module/index.js","webpack://gatsby-starter-default/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/unescape.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/context.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/utils.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/Trans.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/Translation.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/useSSR.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/withSSR.js","webpack://gatsby-starter-default/./node_modules/react-i18next/dist/es/index.js","webpack://gatsby-starter-default/./node_modules/scroll-behavior/lib/index.js","webpack://gatsby-starter-default/./node_modules/scroll-behavior/lib/utils.js","webpack://gatsby-starter-default/./node_modules/void-elements/index.js","webpack://gatsby-starter-default/./node_modules/warning/browser.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/createClass.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/extends.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/inherits.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/toArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/typeof.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://gatsby-starter-default/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gatsby-starter-default/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://gatsby-starter-default/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction startsWith(string, target, position) {\n var length = string.length;\n position = position == null ? 0 : position;\n\n if (position < 0) {\n position = 0;\n } else if (position > length) {\n position = length;\n }\n\n target = \"\".concat(target);\n return string.slice(position, position + target.length) == target;\n}\n\nfunction getBrowserLang() {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n var lang = window.navigator.languages && window.navigator.languages[0] || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage || window.navigator.systemLanguage || null;\n return lang;\n}\n\nfunction normalizeCode(code) {\n return code.toLowerCase().replace(/-/, \"_\");\n}\n\nfunction getPreferredLanguage(options) {\n if (!options) {\n return getBrowserLang();\n }\n\n var languages = options.languages,\n fallback = options.fallback;\n\n if (!options.languages) {\n return fallback;\n } // some browsers report language as en-US instead of en_US\n\n\n var browserLanguage = normalizeCode(getBrowserLang());\n\n if (!browserLanguage) {\n return fallback;\n }\n\n var match = languages.filter(function (lang) {\n return normalizeCode(lang) === browserLanguage;\n });\n\n if (match.length > 0) {\n return match[0] || fallback;\n } // en == en_US\n\n\n var matchCodeOnly = languages.filter(function (lang) {\n return startsWith(browserLanguage, lang) || startsWith(lang, browserLanguage);\n });\n return matchCodeOnly[0] || fallback;\n}\n\nvar _default = getPreferredLanguage;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar off = function off() {};\n\nif (_inDOM.default) {\n off = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.removeEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.detachEvent('on' + eventName, handler);\n };\n }();\n}\n\nvar _default = off;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar on = function on() {};\n\nif (_inDOM.default) {\n on = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent('on' + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\n\nvar _default = on;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getWindow;\n\nfunction getWindow(node) {\n return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar vendors = ['', 'webkit', 'moz', 'o', 'ms'];\nvar cancel = 'clearTimeout';\nvar raf = fallback;\nvar compatRaf;\n\nvar getKey = function getKey(vendor, k) {\n return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n};\n\nif (_inDOM.default) {\n vendors.some(function (vendor) {\n var rafKey = getKey(vendor, 'request');\n\n if (rafKey in window) {\n cancel = getKey(vendor, 'cancel');\n return raf = function raf(cb) {\n return window[rafKey](cb);\n };\n }\n });\n}\n/* https://github.com/component/raf */\n\n\nvar prev = new Date().getTime();\n\nfunction fallback(fn) {\n var curr = new Date().getTime(),\n ms = Math.max(0, 16 - (curr - prev)),\n req = setTimeout(fn, ms);\n prev = curr;\n return req;\n}\n\ncompatRaf = function compatRaf(cb) {\n return raf(cb);\n};\n\ncompatRaf.cancel = function (id) {\n window[cancel] && typeof window[cancel] === 'function' && window[cancel](id);\n};\n\nvar _default = compatRaf;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\n\n// TODO(v5): Remove legacy setting and default to \"always\"\nconst applyTrailingSlashOption = (input, option = `legacy`) => {\n const hasHtmlSuffix = input.endsWith(`.html`);\n const hasXmlSuffix = input.endsWith(`.xml`);\n const hasPdfSuffix = input.endsWith(`.pdf`);\n if (input === `/`) return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = `never`;\n }\n\n if (option === `always`) {\n return input.endsWith(`/`) ? input : `${input}/`;\n }\n\n if (option === `never`) {\n return input.endsWith(`/`) ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n}; // Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\n\n\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\");\n\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\n\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-about-js\": () => import(\"./../../../src/pages/about.js\" /* webpackChunkName: \"component---src-pages-about-js\" */),\n \"component---src-pages-careers-index-js\": () => import(\"./../../../src/pages/careers/index.js\" /* webpackChunkName: \"component---src-pages-careers-index-js\" */),\n \"component---src-pages-careers-job-description-js\": () => import(\"./../../../src/pages/careers/job-description.js\" /* webpackChunkName: \"component---src-pages-careers-job-description-js\" */),\n \"component---src-pages-careers-jobs-js\": () => import(\"./../../../src/pages/careers/jobs.js\" /* webpackChunkName: \"component---src-pages-careers-jobs-js\" */),\n \"component---src-pages-careers-location-argentina-js\": () => import(\"./../../../src/pages/careers/location-argentina.js\" /* webpackChunkName: \"component---src-pages-careers-location-argentina-js\" */),\n \"component---src-pages-careers-location-bolivia-js\": () => import(\"./../../../src/pages/careers/location-bolivia.js\" /* webpackChunkName: \"component---src-pages-careers-location-bolivia-js\" */),\n \"component---src-pages-careers-location-mexico-js\": () => import(\"./../../../src/pages/careers/location-mexico.js\" /* webpackChunkName: \"component---src-pages-careers-location-mexico-js\" */),\n \"component---src-pages-careers-location-peru-js\": () => import(\"./../../../src/pages/careers/location-peru.js\" /* webpackChunkName: \"component---src-pages-careers-location-peru-js\" */),\n \"component---src-pages-careers-location-spain-js\": () => import(\"./../../../src/pages/careers/location-spain.js\" /* webpackChunkName: \"component---src-pages-careers-location-spain-js\" */),\n \"component---src-pages-careers-location-tunisia-js\": () => import(\"./../../../src/pages/careers/location-tunisia.js\" /* webpackChunkName: \"component---src-pages-careers-location-tunisia-js\" */),\n \"component---src-pages-careers-location-uruguay-js\": () => import(\"./../../../src/pages/careers/location-uruguay.js\" /* webpackChunkName: \"component---src-pages-careers-location-uruguay-js\" */),\n \"component---src-pages-careers-location-usa-js\": () => import(\"./../../../src/pages/careers/location-usa.js\" /* webpackChunkName: \"component---src-pages-careers-location-usa-js\" */),\n \"component---src-pages-careers-locations-js\": () => import(\"./../../../src/pages/careers/locations.js\" /* webpackChunkName: \"component---src-pages-careers-locations-js\" */),\n \"component---src-pages-caseaisecurity-js\": () => import(\"./../../../src/pages/caseaisecurity.js\" /* webpackChunkName: \"component---src-pages-caseaisecurity-js\" */),\n \"component---src-pages-casecartier-js\": () => import(\"./../../../src/pages/casecartier.js\" /* webpackChunkName: \"component---src-pages-casecartier-js\" */),\n \"component---src-pages-casefuturepay-js\": () => import(\"./../../../src/pages/casefuturepay.js\" /* webpackChunkName: \"component---src-pages-casefuturepay-js\" */),\n \"component---src-pages-caselegion-js\": () => import(\"./../../../src/pages/caselegion.js\" /* webpackChunkName: \"component---src-pages-caselegion-js\" */),\n \"component---src-pages-casesmarthings-js\": () => import(\"./../../../src/pages/casesmarthings.js\" /* webpackChunkName: \"component---src-pages-casesmarthings-js\" */),\n \"component---src-pages-education-js\": () => import(\"./../../../src/pages/education.js\" /* webpackChunkName: \"component---src-pages-education-js\" */),\n \"component---src-pages-educationgb-js\": () => import(\"./../../../src/pages/educationgb.js\" /* webpackChunkName: \"component---src-pages-educationgb-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-internship-js\": () => import(\"./../../../src/pages/internship.js\" /* webpackChunkName: \"component---src-pages-internship-js\" */),\n \"component---src-pages-mentoring-js\": () => import(\"./../../../src/pages/mentoring.js\" /* webpackChunkName: \"component---src-pages-mentoring-js\" */),\n \"component---src-pages-privacy-policy-js\": () => import(\"./../../../src/pages/privacy-policy.js\" /* webpackChunkName: \"component---src-pages-privacy-policy-js\" */),\n \"component---src-pages-products-js\": () => import(\"./../../../src/pages/products.js\" /* webpackChunkName: \"component---src-pages-products-js\" */),\n \"component---src-pages-qaservices-tsx\": () => import(\"./../../../src/pages/qaservices.tsx\" /* webpackChunkName: \"component---src-pages-qaservices-tsx\" */),\n \"component---src-pages-refer-a-friend-js\": () => import(\"./../../../src/pages/refer-a-friend.js\" /* webpackChunkName: \"component---src-pages-refer-a-friend-js\" */),\n \"component---src-pages-search-js\": () => import(\"./../../../src/pages/search.js\" /* webpackChunkName: \"component---src-pages-search-js\" */),\n \"component---src-pages-security-js\": () => import(\"./../../../src/pages/security.js\" /* webpackChunkName: \"component---src-pages-security-js\" */),\n \"component---src-pages-services-js\": () => import(\"./../../../src/pages/services.js\" /* webpackChunkName: \"component---src-pages-services-js\" */),\n \"component---src-pages-sitemap-js\": () => import(\"./../../../src/pages/sitemap.js\" /* webpackChunkName: \"component---src-pages-sitemap-js\" */),\n \"component---src-pages-terms-of-service-js\": () => import(\"./../../../src/pages/terms-of-service.js\" /* webpackChunkName: \"component---src-pages-terms-of-service-js\" */),\n \"component---src-templates-job-description-js\": () => import(\"./../../../src/templates/job-description.js\" /* webpackChunkName: \"component---src-templates-job-description-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"gatsby-starter-default\",\"short_name\":\"starter\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"src/images/favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"bf386c0d91218ef7bcb76635dba107b4\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-QX5KCWS6K5\"],\"gtagConfig\":{\"optimize_id\":\"OPT_CONTAINER_ID\",\"anonymize_ip\":true,\"cookie_expires\":0},\"pluginConfig\":{\"head\":false,\"respectDNT\":true,\"exclude\":[\"/preview/**\",\"/do-not-track/me/too/\"]}},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"languages\":[\"en\",\"es\"],\"defaultLanguage\":\"en\",\"siteUrl\":\"https://www.bluetrail.software\",\"i18nextOptions\":{\"fallbackLng\":\"en\",\"supportedLngs\":[\"en\",\"es\"],\"defaultNS\":\"common\",\"interpolation\":{\"escapeValue\":false}},\"pages\":[{\"matchPath\":\"/refer-a-friend\",\"languages\":[\"en\"]},{\"matchPath\":\"/sitemap\",\"languages\":[\"en\"]},{\"matchPath\":\"/security\",\"languages\":[\"en\"]},{\"matchPath\":\"/terms-of-service\",\"languages\":[\"en\"]},{\"matchPath\":\"/privacy-policy\",\"languages\":[\"en\"]},{\"matchPath\":\"/careers/jobs/:description\",\"languages\":[\"en\"]},{\"matchPath\":\"/careers/:location\",\"languages\":[\"en\"]}]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst StaticQueryContext = React.createContext({})\nlet StaticQueryServerContext = null\nif (React.createServerContext) {\n StaticQueryServerContext = React.createServerContext(`StaticQuery`, {})\n}\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\n// TODO(v5): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n let context\n\n // Can we get a better check here?\n if (\n StaticQueryServerContext &&\n Object.keys(StaticQueryServerContext._currentValue).length\n ) {\n context = React.useContext(StaticQueryServerContext)\n } else {\n context = React.useContext(StaticQueryContext)\n }\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n default as Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n} from \"./static-query\"\n\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n let inFlightPromise\n if (global.hasPartialHydration) {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n this.loadPartialHydrationJson(pagePath),\n ]).then(([appData, { payload: pageData }, result]) => {\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n const finalResult = {}\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n const componentChunkPromise = this.loadComponent(\n pageData.componentChunkName,\n `head`\n ).then(head => {\n finalResult.createdAt = new Date()\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appData\n ? appData.webpackCompilationHash\n : ``,\n })\n\n const pageResources = toPageResources(pageData, null, head)\n\n if (result.payload && typeof result.payload === `string`) {\n pageResources.partialHydration = result.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(result.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n }\n\n // undefined if final result is an error\n return pageResources\n })\n\n // Necessary for head component\n const staticQueryBatchPromise = Promise.all(\n (pageData.staticQueryHashes || []).map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = {\n ...pageResources,\n staticQueryResults: staticQueryResults,\n }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n } else {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n const componentChunkPromise = Promise.all([\n this.loadComponent(componentChunkName),\n this.loadComponent(componentChunkName, `head`),\n ]).then(([component, head]) => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component, head)\n }\n // undefined if final result is an error\n return pageResources\n })\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n }\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in head.\n * @param {string} tagName\n */\nexport function warnForInvalidTags(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}`\n\n warnOnce(warning)\n }\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport { VALID_NODE_NAMES } from \"./constants\"\nimport {\n headExportValidator,\n filterHeadProps,\n warnForInvalidTags,\n diffNodes,\n} from \"./utils\"\n\nconst hiddenRoot = document.createElement(`div`)\n\nconst removePrevHeadElements = () => {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nconst onHeadRendered = () => {\n const validHeadNodes = []\n\n const seenIds = new Map()\n for (const node of hiddenRoot.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!VALID_NODE_NAMES.includes(nodeName)) {\n warnForInvalidTags(nodeName)\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // Create an element for scripts to make script work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n const script = document.createElement(`script`)\n for (const attr of clonedNode.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = clonedNode.innerHTML\n clonedNode = script\n }\n\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[indexOfPreviouslyInsertedNode].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\n\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // We set up observer to be able to regenerate after react-refresh\n // updates our hidden element.\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const Head = pageComponent.Head\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n \n \n \n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n if (pageResources.partialHydration) {\n return (\n \n {children}\n \n )\n } else {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","/* global HAS_REACT_18 */\n\nconst map = new WeakMap()\n\n/**\n * Since react 18, render and hydrate moved to react-dom/client\n * returns correct hydrate and render function based on installed react-dom version\n */\n\nexport function reactDOMUtils() {\n let render\n let hydrate\n\n if (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n\n render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n } else {\n const reactDomClient = require(`react-dom`)\n render = reactDomClient.render\n hydrate = reactDomClient.hydrate\n }\n\n return { render, hydrate }\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n\n return null;\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.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\nvar _templateObject;\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, stripTrailingSlash) {\n var pathPrefix = (0, _gatsby.withPrefix)('/');\n var result = pathname;\n\n if (pathname.startsWith(pathPrefix)) {\n result = pathname.replace(pathPrefix, '/');\n }\n\n if (stripTrailingSlash && result.endsWith('/')) {\n return result.slice(0, -1);\n }\n\n return result;\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 fallbackLanguage = _ref2.fallbackLanguage,\n trailingSlash = _ref2.trailingSlash;\n if (!props) return;\n var data = props.data,\n pageContext = props.pageContext,\n location = props.location;\n var _pageContext$i18n = pageContext.i18n,\n routed = _pageContext$i18n.routed,\n language = _pageContext$i18n.language,\n languages = _pageContext$i18n.languages,\n originalPath = _pageContext$i18n.originalPath,\n defaultLanguage = _pageContext$i18n.defaultLanguage,\n path = _pageContext$i18n.path;\n var isRedirect = redirect && !routed;\n\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: fallbackLanguage || 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 stripTrailingSlash = trailingSlash === 'never';\n var newUrl = (0, _gatsby.withPrefix)(\"/\" + detected + removePathPrefix(location.pathname, stripTrailingSlash) + queryParams + location.hash); // @ts-ignore\n\n window.___replace(newUrl);\n\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 || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n `;\\n \"], [\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql\\\\`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n \\\\`;\\n \"])), localeJsonNodeName, originalPath, localeJsonNodeName));\n }\n\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 var resources = localeNodes.reduce(function (res, _ref4) {\n var node = _ref4.node;\n var parsedData = typeof node.data === 'object' ? node.data : JSON.parse(node.data);\n if (!(node.language in res)) res[node.language] = {};\n res[node.language][node.ns || defaultNS] = parsedData;\n return res;\n }, {});\n\n var i18n = _i18next.default.createInstance();\n\n i18n.init((0, _extends2.default)({}, i18nextOptions, {\n resources: resources,\n lng: language,\n fallbackLng: defaultLanguage,\n defaultNS: defaultNS,\n fallbackNS: fallbackNS,\n react: (0, _extends2.default)({}, i18nextOptions.react, {\n useSuspense: false\n })\n }));\n\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.ScrollBehaviorContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _scrollBehavior = _interopRequireDefault(require(\"scroll-behavior\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _history = require(\"@reach/router/lib/history\");\n\nvar _StateStorage = _interopRequireDefault(require(\"./StateStorage\"));\n\nvar ScrollBehaviorContext = _react.default.createContext();\n\nexports.ScrollBehaviorContext = ScrollBehaviorContext;\nvar propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};\n\nvar ScrollContext = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollContext, _React$Component);\n\n function ScrollContext(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"shouldUpdateScroll\", function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing scrollBehavior._stateStorage.\n\n\n return shouldUpdateScroll.call(_this.scrollBehavior, prevRouterProps, routerProps);\n });\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"registerElement\", function (key, element, shouldUpdateScroll) {\n _this.scrollBehavior.registerElement(key, element, shouldUpdateScroll, _this.getRouterProps());\n });\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"unregisterElement\", function (key) {\n _this.scrollBehavior.unregisterElement(key);\n });\n _this.scrollBehavior = new _scrollBehavior.default({\n addTransitionHook: _history.globalHistory.listen,\n stateStorage: new _StateStorage.default(),\n getCurrentLocation: function getCurrentLocation() {\n return _this.props.location;\n },\n shouldUpdateScroll: _this.shouldUpdateScroll\n });\n return _this;\n }\n\n var _proto = ScrollContext.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var location = this.props.location;\n var prevLocation = prevProps.location;\n\n if (location === prevLocation) {\n return;\n }\n\n var prevRouterProps = {\n location: prevProps.location\n };\n this.scrollBehavior.updateScroll(prevRouterProps, {\n history: _history.globalHistory,\n location: location\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.scrollBehavior.stop();\n };\n\n _proto.getRouterProps = function getRouterProps() {\n var location = this.props.location;\n return {\n location: location,\n history: _history.globalHistory\n };\n };\n\n _proto.render = function render() {\n return (/*#__PURE__*/_react.default.createElement(ScrollBehaviorContext.Provider, {\n value: this\n }, _react.default.Children.only(this.props.children))\n );\n };\n\n return ScrollContext;\n}(_react.default.Component);\n\nScrollContext.propTypes = propTypes;\nvar _default = ScrollContext;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _warning = _interopRequireDefault(require(\"warning\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ScrollBehaviorContext = require(\"./ScrollBehaviorContext\");\n\nvar propTypes = {\n scrollKey: _propTypes.default.string.isRequired,\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired\n};\n\nvar ScrollContainer = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollContainer, _React$Component);\n\n function ScrollContainer(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // We don't re-register if the scroll key changes, so make sure we\n // unregister with the initial scroll key just in case the user changes it.\n\n (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), \"shouldUpdateScroll\", function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing scrollBehavior._stateStorage.\n\n\n return shouldUpdateScroll.call(_this.props.context.scrollBehavior, prevRouterProps, routerProps);\n });\n _this.scrollKey = props.scrollKey;\n return _this;\n }\n\n var _proto = ScrollContainer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.context.registerElement(this.props.scrollKey, _reactDom.default.findDOMNode(this), // eslint-disable-line react/no-find-dom-node\n this.shouldUpdateScroll); // Only keep around the current DOM node in development, as this is only\n // for emitting the appropriate warning.\n\n if (process.env.NODE_ENV !== \"production\") {\n this.domNode = _reactDom.default.findDOMNode(this); // eslint-disable-line react/no-find-dom-node\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n (0, _warning.default)(prevProps.scrollKey === this.props.scrollKey, \" does not support changing scrollKey.\");\n\n if (process.env.NODE_ENV !== \"production\") {\n var prevDomNode = this.domNode;\n this.domNode = _reactDom.default.findDOMNode(this); // eslint-disable-line react/no-find-dom-node\n\n (0, _warning.default)(this.domNode === prevDomNode, \" does not support changing DOM node.\");\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.context.unregisterElement(this.scrollKey);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainer;\n}(_react.default.Component);\n\nvar ScrollContainerConsumer = function ScrollContainerConsumer(props) {\n return (/*#__PURE__*/_react.default.createElement(_ScrollBehaviorContext.ScrollBehaviorContext.Consumer, null, function (context) {\n return (/*#__PURE__*/_react.default.createElement(ScrollContainer, (0, _extends2.default)({}, props, {\n context: context\n }))\n );\n })\n );\n};\n\nScrollContainerConsumer.propTypes = propTypes;\nvar _default = ScrollContainerConsumer;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = 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 JSON.parse(value);\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 {};\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 locationKey = location.key || location.pathname;\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + locationKey;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.default = SessionStorage;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _ScrollBehaviorContext = _interopRequireDefault(require(\"./ScrollBehaviorContext\"));\n\nvar _ScrollContainer = _interopRequireDefault(require(\"./ScrollContainer\"));\n\nexports.ScrollContainer = _ScrollContainer.default;\nexports.ScrollContext = _ScrollBehaviorContext.default;","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n {\n value: { baseuri: uri, basepath: basepath, navigate: props.navigate }\n },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","'use strict';\n\nvar _typeof = require('@babel/runtime/helpers/typeof');\nvar _classCallCheck = require('@babel/runtime/helpers/classCallCheck');\nvar _createClass = require('@babel/runtime/helpers/createClass');\nvar _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');\nvar _inherits = require('@babel/runtime/helpers/inherits');\nvar _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');\nvar _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');\nvar _defineProperty = require('@babel/runtime/helpers/defineProperty');\nvar _toArray = require('@babel/runtime/helpers/toArray');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);\nvar _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);\nvar _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);\nvar _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);\nvar _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);\nvar _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);\nvar _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);\nvar _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);\nvar _toArray__default = /*#__PURE__*/_interopDefaultLegacy(_toArray);\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck__default['default'](this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass__default['default'](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(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck__default['default'](this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass__default['default'](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}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\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}\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}\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}\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}\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}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\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}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits__default['default'](ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\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__default['default'](this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default['default'](_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__default['default'](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$1(_objectSpread$1({}, 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$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _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};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits__default['default'](Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck__default['default'](this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default['default'](_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized__default['default'](_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__default['default'](Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof__default['default'](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 returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n 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$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var 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 missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, 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, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, 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$2({\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\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _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 finalKeys = [key];\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, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_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__default['default'](this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass__default['default'](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: \"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};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck__default['default'](this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass__default['default'](PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _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 key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck__default['default'](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__default['default'](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$3(_objectSpread$3(_objectSpread$3({}, 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$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _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 var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" 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 += value.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$3({}, 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 var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, 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$3(_objectSpread$3({}, 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 ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray__default['default'](_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck__default['default'](this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, options);\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val, options.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass__default['default'](Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits__default['default'](Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\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__default['default'](this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default['default'](_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.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\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__default['default'](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[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _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] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\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$5(_objectSpread$5({}, 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 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__default['default'](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__default['default'](args[2]) === 'object' || _typeof__default['default'](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: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits__default['default'](I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\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__default['default'](this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default['default'](_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized__default['default'](_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn__default['default'](_this, _assertThisInitialized__default['default'](_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass__default['default'](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.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _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 this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _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.initializedStoreOnce) _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, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(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 setLngProps(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, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof__default['default'](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$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _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.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _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 || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _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.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\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$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, 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 resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty__default['default'](I18n, \"createInstance\", function () {\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\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nmodule.exports = instance;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","// In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either.\nfunction noop() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n}\nfunction createWeakMap() {\n if (typeof WeakMap !== \"undefined\") {\n return new WeakMap();\n }\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 */\nfunction fakeSetOrMap() {\n return {\n add: noop,\n delete: noop,\n get: noop,\n set: noop,\n has: function (k) {\n return false;\n },\n };\n}\n// Safe hasOwnProperty\nvar hop = Object.prototype.hasOwnProperty;\nvar has = function (obj, prop) {\n return hop.call(obj, prop);\n};\n// Copy all own enumerable properties from source to target\nfunction extend(target, source) {\n for (var prop in source) {\n if (has(source, prop)) {\n target[prop] = source[prop];\n }\n }\n return target;\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]*$/;\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 if (match) {\n indentationLevel = match[1].length;\n }\n var reSource = \"(\\\\r\\\\n|\\\\r|\\\\n).{0,\" + indentationLevel + \"}\";\n var reMatchIndent = new RegExp(reSource, \"g\");\n if (firstInterpolatedValueSetsIndentationLevel) {\n strings = strings.slice(1);\n }\n var newline = options.newline, trimLeadingNewline = options.trimLeadingNewline, 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\");\n // Trim a leading newline from the first string\n if (i === 0 && trimLeadingNewline) {\n v = v.replace(reLeadingNewline, \"\");\n }\n // Trim a trailing newline from the last string\n if (i === l - 1 && trimTrailingNewline) {\n v = v.replace(reTrailingNewline, \"\");\n }\n // Normalize newlines\n if (normalizeNewlines) {\n v = v.replace(/\\r\\n|\\n|\\r/g, function (_) { return newline; });\n }\n return v;\n });\n return outdentedStrings;\n}\nfunction concatStringsAndValues(strings, values) {\n var ret = \"\";\n for (var i = 0, l = strings.length; i < l; i++) {\n ret += strings[i];\n if (i < l - 1) {\n ret += values[i];\n }\n }\n return ret;\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 */\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 var arrayFirstInterpSetsIndentCache = createWeakMap();\n function outdent(stringsOrOptions) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* tslint:enable:no-shadowed-variable */\n if (isTemplateStringsArray(stringsOrOptions)) {\n var strings = stringsOrOptions;\n // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace?\n var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) &&\n reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) &&\n reStartsWithNewlineOrIsEmpty.test(strings[1]);\n // Perform outdentation\n var cache = firstInterpolatedValueSetsIndentationLevel\n ? arrayFirstInterpSetsIndentCache\n : arrayAutoIndentCache;\n var renderedArray = cache.get(strings);\n if (!renderedArray) {\n renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options);\n cache.set(strings, renderedArray);\n }\n /** If no interpolated values, skip concatenation step */\n if (values.length === 0) {\n return renderedArray[0];\n }\n /** Concatenate string literals with interpolated values */\n var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values);\n return rendered;\n }\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 var fullOutdent = extend(outdent, {\n string: function (str) {\n return _outdentArray([str], false, options)[0];\n },\n });\n return fullOutdent;\n}\nvar defaultOutdent = createInstance({\n trimLeadingNewline: true,\n trimTrailingNewline: true,\n});\n// Named exports. Simple and preferred.\n// import outdent from 'outdent';\nexport default defaultOutdent;\n// import {outdent} from 'outdent';\nexport { defaultOutdent as outdent };\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\", { value: true });\n defaultOutdent.default = defaultOutdent;\n defaultOutdent.outdent = defaultOutdent;\n }\n catch (e) { }\n}\n//# sourceMappingURL=index.js.map","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}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({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),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)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _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) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = 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}","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}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"format\"],\n _excluded2 = [\"children\", \"count\", \"parent\", \"i18nKey\", \"context\", \"tOptions\", \"values\", \"defaults\", \"components\", \"ns\", \"i18n\", \"t\", \"shouldUnescape\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useContext, isValidElement, cloneElement, createElement } 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.props ? node.props.children : node.children;\n}\n\nfunction hasValidReactChildren(children) {\n if (Object.prototype.toString.call(children) !== '[object Array]') return false;\n return children.every(function (child) {\n return isValidElement(child);\n });\n}\n\nfunction getAsArray(data) {\n return Array.isArray(data) ? data : [data];\n}\n\nfunction mergeProps(source, target) {\n var newTarget = _objectSpread({}, target);\n\n newTarget.props = Object.assign(source.props, target.props);\n return newTarget;\n}\n\nexport function nodesToString(children, i18nOptions) {\n if (!children) return '';\n var stringNode = '';\n var childrenArray = getAsArray(children);\n var keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];\n childrenArray.forEach(function (child, childIndex) {\n if (typeof child === 'string') {\n stringNode += \"\".concat(child);\n } else if (isValidElement(child)) {\n var childPropsCount = Object.keys(child.props).length;\n var shouldKeepChild = keepArray.indexOf(child.type) > -1;\n var childChildren = child.props.children;\n\n if (!childChildren && shouldKeepChild && childPropsCount === 0) {\n stringNode += \"<\".concat(child.type, \"/>\");\n } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (child.props.i18nIsDynamicList) {\n stringNode += \"<\".concat(childIndex, \">\");\n } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {\n stringNode += \"<\".concat(child.type, \">\").concat(childChildren, \"\");\n } else {\n var content = nodesToString(childChildren, i18nOptions);\n stringNode += \"<\".concat(childIndex, \">\").concat(content, \"\");\n }\n } else if (child === null) {\n warn(\"Trans: the passed in value is invalid - seems you passed in a null child.\");\n } else if (_typeof(child) === 'object') {\n var format = child.format,\n clone = _objectWithoutProperties(child, _excluded);\n\n var keys = Object.keys(clone);\n\n if (keys.length === 1) {\n var value = format ? \"\".concat(keys[0], \", \").concat(format) : keys[0];\n stringNode += \"{{\".concat(value, \"}}\");\n } else {\n warn(\"react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.\", child);\n }\n } else {\n warn(\"Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.\", child);\n }\n });\n return stringNode;\n}\n\nfunction renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {\n if (targetString === '') return [];\n var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];\n var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);\n if (!children && !emptyChildrenButNeedsHandling) return [targetString];\n var data = {};\n\n function getData(childs) {\n var childrenArray = getAsArray(childs);\n childrenArray.forEach(function (child) {\n if (typeof child === 'string') return;\n if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !isValidElement(child)) Object.assign(data, child);\n });\n }\n\n getData(children);\n var ast = HTML.parse(\"<0>\".concat(targetString, \"\"));\n\n var opts = _objectSpread(_objectSpread({}, data), combinedTOpts);\n\n function renderInner(child, node, rootReactNode) {\n var childs = getChildren(child);\n var mappedChildren = mapAST(childs, node.children, rootReactNode);\n return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;\n }\n\n function pushTranslatedJSX(child, inner, mem, i, isVoid) {\n if (child.dummy) child.children = inner;\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), isVoid ? undefined : inner));\n }\n\n function mapAST(reactNode, astNode, rootReactNode) {\n var reactNodes = getAsArray(reactNode);\n var astNodes = getAsArray(astNode);\n return astNodes.reduce(function (mem, node, i) {\n var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);\n\n if (node.type === 'tag') {\n var tmp = reactNodes[parseInt(node.name, 10)];\n if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];\n if (!tmp) tmp = {};\n var child = Object.keys(node.attrs).length !== 0 ? mergeProps({\n props: node.attrs\n }, tmp) : tmp;\n var isElement = isValidElement(child);\n var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;\n var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;\n var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);\n\n if (typeof child === 'string') {\n var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);\n mem.push(value);\n } else if (hasChildren(child) || isValidTranslationWithChildren) {\n var inner = renderInner(child, node, rootReactNode);\n pushTranslatedJSX(child, inner, mem, i);\n } else if (isEmptyTransWithHTML) {\n var _inner = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), _inner));\n } else if (Number.isNaN(parseFloat(node.name))) {\n if (isKnownComponent) {\n var _inner2 = renderInner(child, node, rootReactNode);\n\n pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);\n } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {\n if (node.voidElement) {\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }));\n } else {\n var _inner3 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(createElement(node.name, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _inner3));\n }\n } else if (node.voidElement) {\n mem.push(\"<\".concat(node.name, \" />\"));\n } else {\n var _inner4 = mapAST(reactNodes, node.children, rootReactNode);\n\n mem.push(\"<\".concat(node.name, \">\").concat(_inner4, \"\"));\n }\n } else if (_typeof(child) === 'object' && !isElement) {\n var content = node.children[0] ? translationContent : null;\n if (content) mem.push(content);\n } else if (node.children.length === 1 && translationContent) {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n }), translationContent));\n } else {\n mem.push(cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n key: i\n })));\n }\n } else if (node.type === 'text') {\n var wrapTextNodes = i18nOptions.transWrapTextNodes;\n\n var _content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);\n\n if (wrapTextNodes) {\n mem.push(createElement(wrapTextNodes, {\n key: \"\".concat(node.name, \"-\").concat(i)\n }, _content));\n } else {\n mem.push(_content);\n }\n }\n\n return mem;\n }, []);\n }\n\n var result = mapAST([{\n dummy: true,\n children: children || []\n }], ast, getAsArray(children || []));\n return getChildren(result[0]);\n}\n\nexport function Trans(_ref) {\n var children = _ref.children,\n count = _ref.count,\n parent = _ref.parent,\n i18nKey = _ref.i18nKey,\n context = _ref.context,\n _ref$tOptions = _ref.tOptions,\n tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,\n values = _ref.values,\n defaults = _ref.defaults,\n components = _ref.components,\n ns = _ref.ns,\n i18nFromProps = _ref.i18n,\n tFromProps = _ref.t,\n shouldUnescape = _ref.shouldUnescape,\n additionalProps = _objectWithoutProperties(_ref, _excluded2);\n\n var _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 if (context) tOptions.context = context;\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, shouldUnescape);\n var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;\n return useAsParent ? createElement(useAsParent, additionalProps, content) : content;\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"forwardedRef\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation';\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, _excluded);\n\n var _useTranslation = useTranslation(ns, _objectSpread(_objectSpread({}, rest), {}, {\n keyPrefix: options.keyPrefix\n })),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n var passDownProps = _objectSpread(_objectSpread({}, rest), {}, {\n t: t,\n i18n: i18n,\n tReady: ready\n });\n\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n\n return createElement(WrappedComponent, passDownProps);\n }\n\n I18nextWithTranslation.displayName = \"withI18nextTranslation(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n\n var forwardRef = function forwardRef(props, ref) {\n return createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n };\n\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"ns\", \"children\"];\nimport { useTranslation } from './useTranslation';\nexport function Translation(props) {\n var ns = props.ns,\n children = props.children,\n options = _objectWithoutProperties(props, _excluded);\n\n var _useTranslation = useTranslation(ns, options),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n return children(t, {\n i18n: i18n,\n lng: i18n.language\n }, ready);\n}","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context';\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\";\nvar _excluded = [\"initialI18nStore\", \"initialLanguage\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createElement } from 'react';\nimport { useSSR } from './useSSR';\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, _excluded);\n\n useSSR(initialI18nStore, initialLanguage);\n return createElement(WrappedComponent, _objectSpread({}, rest));\n }\n\n I18nextWithSSR.getInitialProps = composeInitialProps(WrappedComponent);\n I18nextWithSSR.displayName = \"withI18nextSSR(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithSSR.WrappedComponent = WrappedComponent;\n return I18nextWithSSR;\n };\n}","export { Trans } from './Trans';\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};","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _off = _interopRequireDefault(require(\"dom-helpers/events/off\"));\n\nvar _on = _interopRequireDefault(require(\"dom-helpers/events/on\"));\n\nvar _scrollLeft = _interopRequireDefault(require(\"dom-helpers/query/scrollLeft\"));\n\nvar _scrollTop = _interopRequireDefault(require(\"dom-helpers/query/scrollTop\"));\n\nvar _requestAnimationFrame = _interopRequireDefault(require(\"dom-helpers/util/requestAnimationFrame\"));\n\nvar _invariant = _interopRequireDefault(require(\"invariant\"));\n\nvar _utils = require(\"./utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable no-underscore-dangle */\n// Try at most this many times to scroll, to avoid getting stuck.\nvar MAX_SCROLL_ATTEMPTS = 2;\n\nvar ScrollBehavior = /*#__PURE__*/function () {\n function ScrollBehavior(_ref) {\n var _this = this;\n\n var addTransitionHook = _ref.addTransitionHook,\n stateStorage = _ref.stateStorage,\n getCurrentLocation = _ref.getCurrentLocation,\n shouldUpdateScroll = _ref.shouldUpdateScroll;\n\n this._restoreScrollRestoration = function () {\n /* istanbul ignore if: not supported by any browsers on Travis */\n if (_this._oldScrollRestoration) {\n try {\n window.history.scrollRestoration = _this._oldScrollRestoration;\n } catch (e) {\n /* silence */\n }\n }\n };\n\n this._onWindowScroll = function () {\n if (_this._ignoreScrollEvents) {\n // Don't save the scroll position until the transition is complete\n return;\n } // It's possible that this scroll operation was triggered by what will be a\n // `POP` transition. Instead of updating the saved location immediately, we\n // have to enqueue the update, then potentially cancel it if we observe a\n // location update.\n\n\n if (!_this._saveWindowPositionHandle) {\n _this._saveWindowPositionHandle = (0, _requestAnimationFrame[\"default\"])(_this._saveWindowPosition);\n }\n\n if (_this._windowScrollTarget) {\n var _this$_windowScrollTa = _this._windowScrollTarget,\n xTarget = _this$_windowScrollTa[0],\n yTarget = _this$_windowScrollTa[1];\n var x = (0, _scrollLeft[\"default\"])(window);\n var y = (0, _scrollTop[\"default\"])(window);\n\n if (x === xTarget && y === yTarget) {\n _this._windowScrollTarget = null;\n\n _this._cancelCheckWindowScroll();\n }\n }\n };\n\n this._saveWindowPosition = function () {\n _this._saveWindowPositionHandle = null;\n\n _this._savePosition(null, window);\n };\n\n this._checkWindowScrollPosition = function () {\n _this._checkWindowScrollHandle = null; // We can only get here if scrollTarget is set. Every code path that unsets\n // scroll target also cancels the handle to avoid calling this handler.\n // Still, check anyway just in case.\n\n /* istanbul ignore if: paranoid guard */\n\n if (!_this._windowScrollTarget) {\n return Promise.resolve();\n }\n\n _this.scrollToTarget(window, _this._windowScrollTarget);\n\n ++_this._numWindowScrollAttempts;\n /* istanbul ignore if: paranoid guard */\n\n if (_this._numWindowScrollAttempts >= MAX_SCROLL_ATTEMPTS) {\n // This might happen if the scroll position was already set to the target\n _this._windowScrollTarget = null;\n return Promise.resolve();\n }\n\n return new Promise(function (resolve) {\n _this._checkWindowScrollHandle = (0, _requestAnimationFrame[\"default\"])(function () {\n return resolve(_this._checkWindowScrollPosition());\n });\n });\n };\n\n this._stateStorage = stateStorage;\n this._getCurrentLocation = getCurrentLocation;\n this._shouldUpdateScroll = shouldUpdateScroll; // This helps avoid some jankiness in fighting against the browser's\n // default scroll behavior on `POP` transitions.\n\n /* istanbul ignore else: Travis browsers all support this */\n\n if ('scrollRestoration' in window.history && // Unfortunately, Safari on iOS freezes for 2-6s after the user swipes to\n // navigate through history with scrollRestoration being 'manual', so we\n // need to detect this browser and exclude it from the following code\n // until this bug is fixed by Apple.\n !(0, _utils.isMobileSafari)()) {\n this._oldScrollRestoration = window.history.scrollRestoration;\n\n try {\n window.history.scrollRestoration = 'manual'; // Scroll restoration persists across page reloads. We want to reset\n // this to the original value, so that we can let the browser handle\n // restoring the initial scroll position on server-rendered pages.\n\n (0, _on[\"default\"])(window, 'beforeunload', this._restoreScrollRestoration);\n } catch (e) {\n this._oldScrollRestoration = null;\n }\n } else {\n this._oldScrollRestoration = null;\n }\n\n this._saveWindowPositionHandle = null;\n this._checkWindowScrollHandle = null;\n this._windowScrollTarget = null;\n this._numWindowScrollAttempts = 0;\n this._ignoreScrollEvents = false;\n this._scrollElements = {}; // We have to listen to each window scroll update rather than to just\n // location updates, because some browsers will update scroll position\n // before emitting the location change.\n\n (0, _on[\"default\"])(window, 'scroll', this._onWindowScroll);\n this._removeTransitionHook = addTransitionHook(function () {\n _requestAnimationFrame[\"default\"].cancel(_this._saveWindowPositionHandle);\n\n _this._saveWindowPositionHandle = null;\n Object.keys(_this._scrollElements).forEach(function (key) {\n var scrollElement = _this._scrollElements[key];\n\n _requestAnimationFrame[\"default\"].cancel(scrollElement.savePositionHandle);\n\n scrollElement.savePositionHandle = null; // It's fine to save element scroll positions here, though; the browser\n // won't modify them.\n\n if (!_this._ignoreScrollEvents) {\n _this._saveElementPosition(key);\n }\n });\n });\n }\n\n var _proto = ScrollBehavior.prototype;\n\n _proto.registerElement = function registerElement(key, element, shouldUpdateScroll, context) {\n var _this2 = this;\n\n !!this._scrollElements[key] ? process.env.NODE_ENV !== \"production\" ? (0, _invariant[\"default\"])(false, 'ScrollBehavior: There is already an element registered for `%s`.', key) : invariant(false) : void 0;\n\n var saveElementPosition = function saveElementPosition() {\n _this2._saveElementPosition(key);\n };\n\n var scrollElement = {\n element: element,\n shouldUpdateScroll: shouldUpdateScroll,\n savePositionHandle: null,\n onScroll: function onScroll() {\n if (!scrollElement.savePositionHandle && !_this2._ignoreScrollEvents) {\n scrollElement.savePositionHandle = (0, _requestAnimationFrame[\"default\"])(saveElementPosition);\n }\n }\n }; // In case no scrolling occurs, save the initial position\n\n if (!scrollElement.savePositionHandle && !this._ignoreScrollEvents) {\n scrollElement.savePositionHandle = (0, _requestAnimationFrame[\"default\"])(saveElementPosition);\n }\n\n this._scrollElements[key] = scrollElement;\n (0, _on[\"default\"])(element, 'scroll', scrollElement.onScroll);\n\n this._updateElementScroll(key, null, context);\n };\n\n _proto.unregisterElement = function unregisterElement(key) {\n !this._scrollElements[key] ? process.env.NODE_ENV !== \"production\" ? (0, _invariant[\"default\"])(false, 'ScrollBehavior: There is no element registered for `%s`.', key) : invariant(false) : void 0;\n var _this$_scrollElements = this._scrollElements[key],\n element = _this$_scrollElements.element,\n onScroll = _this$_scrollElements.onScroll,\n savePositionHandle = _this$_scrollElements.savePositionHandle;\n (0, _off[\"default\"])(element, 'scroll', onScroll);\n\n _requestAnimationFrame[\"default\"].cancel(savePositionHandle);\n\n delete this._scrollElements[key];\n };\n\n _proto.updateScroll = function updateScroll(prevContext, context) {\n var _this3 = this;\n\n this._updateWindowScroll(prevContext, context).then(function () {\n // Save the position immediately after a transition so that if no\n // scrolling occurs, there is still a saved position\n if (!_this3._saveWindowPositionHandle) {\n _this3._saveWindowPositionHandle = (0, _requestAnimationFrame[\"default\"])(_this3._saveWindowPosition);\n }\n });\n\n Object.keys(this._scrollElements).forEach(function (key) {\n _this3._updateElementScroll(key, prevContext, context);\n });\n };\n\n _proto.stop = function stop() {\n this._restoreScrollRestoration();\n\n (0, _off[\"default\"])(window, 'scroll', this._onWindowScroll);\n\n this._cancelCheckWindowScroll();\n\n this._removeTransitionHook();\n };\n\n _proto.startIgnoringScrollEvents = function startIgnoringScrollEvents() {\n this._ignoreScrollEvents = true;\n };\n\n _proto.stopIgnoringScrollEvents = function stopIgnoringScrollEvents() {\n this._ignoreScrollEvents = false;\n };\n\n _proto._cancelCheckWindowScroll = function _cancelCheckWindowScroll() {\n _requestAnimationFrame[\"default\"].cancel(this._checkWindowScrollHandle);\n\n this._checkWindowScrollHandle = null;\n };\n\n _proto._saveElementPosition = function _saveElementPosition(key) {\n var scrollElement = this._scrollElements[key];\n scrollElement.savePositionHandle = null;\n\n this._savePosition(key, scrollElement.element);\n };\n\n _proto._savePosition = function _savePosition(key, element) {\n this._stateStorage.save(this._getCurrentLocation(), key, [(0, _scrollLeft[\"default\"])(element), (0, _scrollTop[\"default\"])(element)]);\n };\n\n _proto._updateWindowScroll = function _updateWindowScroll(prevContext, context) {\n // Whatever we were doing before isn't relevant any more.\n this._cancelCheckWindowScroll();\n\n this._windowScrollTarget = this._getScrollTarget(null, this._shouldUpdateScroll, prevContext, context); // Updating the window scroll position is really flaky. Just trying to\n // scroll it isn't enough. Instead, try to scroll a few times until it\n // works.\n\n this._numWindowScrollAttempts = 0;\n return this._checkWindowScrollPosition();\n };\n\n _proto._updateElementScroll = function _updateElementScroll(key, prevContext, context) {\n var _this$_scrollElements2 = this._scrollElements[key],\n element = _this$_scrollElements2.element,\n shouldUpdateScroll = _this$_scrollElements2.shouldUpdateScroll;\n\n var scrollTarget = this._getScrollTarget(key, shouldUpdateScroll, prevContext, context);\n\n if (!scrollTarget) {\n return;\n } // Unlike with the window, there shouldn't be any flakiness to deal with\n // here.\n\n\n this.scrollToTarget(element, scrollTarget);\n };\n\n _proto._getDefaultScrollTarget = function _getDefaultScrollTarget(location) {\n var hash = location.hash;\n\n if (hash && hash !== '#') {\n return hash.charAt(0) === '#' ? hash.slice(1) : hash;\n }\n\n return [0, 0];\n };\n\n _proto._getScrollTarget = function _getScrollTarget(key, shouldUpdateScroll, prevContext, context) {\n var scrollTarget = shouldUpdateScroll ? shouldUpdateScroll.call(this, prevContext, context) : true;\n\n if (!scrollTarget || Array.isArray(scrollTarget) || typeof scrollTarget === 'string') {\n return scrollTarget;\n }\n\n var location = this._getCurrentLocation();\n\n return this._getSavedScrollTarget(key, location) || this._getDefaultScrollTarget(location);\n };\n\n _proto._getSavedScrollTarget = function _getSavedScrollTarget(key, location) {\n if (location.action === 'PUSH') {\n return null;\n }\n\n return this._stateStorage.read(location, key);\n };\n\n _proto.scrollToTarget = function scrollToTarget(element, target) {\n if (typeof target === 'string') {\n var targetElement = document.getElementById(target) || document.getElementsByName(target)[0];\n\n if (targetElement) {\n targetElement.scrollIntoView();\n return;\n } // Fallback to scrolling to top when target fragment doesn't exist.\n\n\n target = [0, 0]; // eslint-disable-line no-param-reassign\n }\n\n var _target = target,\n left = _target[0],\n top = _target[1];\n (0, _scrollLeft[\"default\"])(element, left);\n (0, _scrollTop[\"default\"])(element, top);\n };\n\n return ScrollBehavior;\n}();\n\nexports[\"default\"] = ScrollBehavior;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.isMobileSafari = isMobileSafari;\n\nfunction isMobileSafari() {\n return /iPad|iPhone|iPod/.test(window.navigator.platform) && /^((?!CriOS).)*Safari/.test(window.navigator.userAgent);\n}","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\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};\n","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(t) {\n return (module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return (module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _taggedTemplateLiteralLoose(e, t) {\n return t || (t = e.slice(0)), e.raw = t, e;\n}\nmodule.exports = _taggedTemplateLiteralLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.5.4 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\\\"pt0\\\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.5.4\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `