{"version":3,"file":"app-13a6e5fcd75305a3af34.js","mappings":"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","sources":["webpack://sar-website/./node_modules/browser-lang/dist/index.js","webpack://sar-website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://sar-website/./node_modules/gatsby-react-router-scroll/index.js","webpack://sar-website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://sar-website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://sar-website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://sar-website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://sar-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://sar-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://sar-website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://sar-website/./.cache/api-runner-browser-plugins.js","webpack://sar-website/./.cache/api-runner-browser.js","webpack://sar-website/./.cache/create-content-digest-browser-shim.js","webpack://sar-website/./.cache/emitter.js","webpack://sar-website/./node_modules/mitt/dist/mitt.es.js","webpack://sar-website/./.cache/normalize-page-path.js","webpack://sar-website/./.cache/find-path.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://sar-website/./.cache/slice/server-slice-renderer.js","webpack://sar-website/./.cache/slice/server-slice.js","webpack://sar-website/./.cache/slice/inline-slice.js","webpack://sar-website/./.cache/slice.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://sar-website/./.cache/gatsby-browser-entry.js","webpack://sar-website/./.cache/prefetch.js","webpack://sar-website/./.cache/loader.js","webpack://sar-website/./.cache/head/components/fire-callback-in-effect.js","webpack://sar-website/./.cache/head/constants.js","webpack://sar-website/./.cache/head/utils.js","webpack://sar-website/./.cache/head/head-export-handler-for-browser.js","webpack://sar-website/./.cache/page-renderer.js","webpack://sar-website/./.cache/route-announcer-props.js","webpack://sar-website/./.cache/navigation.js","webpack://sar-website/./node_modules/shallow-compare/es/index.js","webpack://sar-website/./.cache/ensure-resources.js","webpack://sar-website/./.cache/production-app.js","webpack://sar-website/./.cache/public-page-renderer-prod.js","webpack://sar-website/./.cache/public-page-renderer.js","webpack://sar-website/./.cache/react-dom-utils.js","webpack://sar-website/./.cache/redirect-utils.js","webpack://sar-website/./.cache/register-service-worker.js","webpack://sar-website/./.cache/slice/context.js","webpack://sar-website/./.cache/static-query.js","webpack://sar-website/./.cache/context-utils.js","webpack://sar-website/./.cache/strip-prefix.js","webpack://sar-website/./node_modules/gatsby-plugin-breakpoints/BreakpointProvider.js","webpack://sar-website/./node_modules/gatsby-plugin-breakpoints/constants.js","webpack://sar-website/./node_modules/gatsby-plugin-breakpoints/gatsby-browser.js","webpack://sar-website/./node_modules/gatsby-plugin-google-analytics/gatsby-browser.js","webpack://sar-website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://sar-website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://sar-website/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://sar-website/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://sar-website/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://sar-website/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://sar-website/./node_modules/i18next/dist/cjs/i18next.js","webpack://sar-website/./node_modules/invariant/browser.js","webpack://sar-website/./node_modules/outdent/lib-module/index.js","webpack://sar-website/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://sar-website/./node_modules/react-i18next/dist/es/Trans.js","webpack://sar-website/./node_modules/react-i18next/dist/es/unescape.js","webpack://sar-website/./node_modules/react-i18next/dist/es/context.js","webpack://sar-website/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://sar-website/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://sar-website/./node_modules/react-i18next/dist/es/Translation.js","webpack://sar-website/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://sar-website/./node_modules/react-i18next/dist/es/useSSR.js","webpack://sar-website/./node_modules/react-i18next/dist/es/withSSR.js","webpack://sar-website/./node_modules/react-i18next/dist/es/index.js","webpack://sar-website/./node_modules/react-i18next/dist/es/utils.js","webpack://sar-website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://sar-website/./node_modules/react-server-dom-webpack/index.js","webpack://sar-website/./node_modules/void-elements/index.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/createClass.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/extends.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/inherits.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/toArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/typeof.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://sar-website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://sar-website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://sar-website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://sar-website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://sar-website/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction startsWith(string, target, position) {\n var length = string.length;\n position = position == null ? 0 : position;\n\n if (position < 0) {\n position = 0;\n } else if (position > length) {\n position = length;\n }\n\n target = \"\".concat(target);\n return string.slice(position, position + target.length) == target;\n}\n\nfunction getBrowserLang() {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n var lang = window.navigator.languages && window.navigator.languages[0] || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage || window.navigator.systemLanguage || null;\n return lang;\n}\n\nfunction normalizeCode(code) {\n return code.toLowerCase().replace(/-/, \"_\");\n}\n\nfunction getPreferredLanguage(options) {\n if (!options) {\n return getBrowserLang();\n }\n\n var languages = options.languages,\n fallback = options.fallback;\n\n if (!options.languages) {\n return fallback;\n } // some browsers report language as en-US instead of en_US\n\n\n var browserLanguage = normalizeCode(getBrowserLang());\n\n if (!browserLanguage) {\n return fallback;\n }\n\n var match = languages.filter(function (lang) {\n return normalizeCode(lang) === browserLanguage;\n });\n\n if (match.length > 0) {\n return match[0] || fallback;\n } // en == en_US\n\n\n var matchCodeOnly = languages.filter(function (lang) {\n return startsWith(browserLanguage, lang) || startsWith(lang, browserLanguage);\n });\n return matchCodeOnly[0] || fallback;\n}\n\nvar _default = getPreferredLanguage;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\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 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 _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\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 (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\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.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\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;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\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 const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\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-sar-contact-us-js\": () => import(\"./../../../src/pages/about-sar/contact-us.js\" /* webpackChunkName: \"component---src-pages-about-sar-contact-us-js\" */),\n \"component---src-pages-about-sar-disclaimer-js\": () => import(\"./../../../src/pages/about-sar/disclaimer.js\" /* webpackChunkName: \"component---src-pages-about-sar-disclaimer-js\" */),\n \"component---src-pages-about-sar-index-js\": () => import(\"./../../../src/pages/about-sar/index.js\" /* webpackChunkName: \"component---src-pages-about-sar-index-js\" */),\n \"component---src-pages-about-sar-missionvision-js\": () => import(\"./../../../src/pages/about-sar/missionvision.js\" /* webpackChunkName: \"component---src-pages-about-sar-missionvision-js\" */),\n \"component---src-pages-about-sar-ournetwork-js\": () => import(\"./../../../src/pages/about-sar/ournetwork.js\" /* webpackChunkName: \"component---src-pages-about-sar-ournetwork-js\" */),\n \"component---src-pages-about-sar-privacypolicy-js\": () => import(\"./../../../src/pages/about-sar/privacypolicy.js\" /* webpackChunkName: \"component---src-pages-about-sar-privacypolicy-js\" */),\n \"component---src-pages-about-sar-privacypolicyold-js\": () => import(\"./../../../src/pages/about-sar/privacypolicyold.js\" /* webpackChunkName: \"component---src-pages-about-sar-privacypolicyold-js\" */),\n \"component---src-pages-about-sar-towardsabrightfuture-js\": () => import(\"./../../../src/pages/about-sar/towardsabrightfuture.js\" /* webpackChunkName: \"component---src-pages-about-sar-towardsabrightfuture-js\" */),\n \"component---src-pages-before-you-travel-baggageguide-east-js\": () => import(\"./../../../src/pages/before-you-travel/baggageguide-east.js\" /* webpackChunkName: \"component---src-pages-before-you-travel-baggageguide-east-js\" */),\n \"component---src-pages-before-you-travel-baggageguide-js\": () => import(\"./../../../src/pages/before-you-travel/baggageguide.js\" /* webpackChunkName: \"component---src-pages-before-you-travel-baggageguide-js\" */),\n \"component---src-pages-before-you-travel-baggageguide-north-js\": () => import(\"./../../../src/pages/before-you-travel/baggageguide-north.js\" /* webpackChunkName: \"component---src-pages-before-you-travel-baggageguide-north-js\" */),\n \"component---src-pages-before-you-travel-specialassistance-js\": () => import(\"./../../../src/pages/before-you-travel/specialassistance.js\" /* webpackChunkName: \"component---src-pages-before-you-travel-specialassistance-js\" */),\n \"component---src-pages-before-you-travel-ticketconditions-js\": () => import(\"./../../../src/pages/before-you-travel/ticketconditions.js\" /* webpackChunkName: \"component---src-pages-before-you-travel-ticketconditions-js\" */),\n \"component---src-pages-ext-realestate-js\": () => import(\"./../../../src/pages/ext/realestate.js\" /* webpackChunkName: \"component---src-pages-ext-realestate-js\" */),\n \"component---src-pages-ext-sarnamingrights-js\": () => import(\"./../../../src/pages/ext/sarnamingrights.js\" /* webpackChunkName: \"component---src-pages-ext-sarnamingrights-js\" */),\n \"component---src-pages-ext-vendors-js\": () => import(\"./../../../src/pages/ext/vendors.js\" /* webpackChunkName: \"component---src-pages-ext-vendors-js\" */),\n \"component---src-pages-featured-applepay-js\": () => import(\"./../../../src/pages/featured/applepay.js\" /* webpackChunkName: \"component---src-pages-featured-applepay-js\" */),\n \"component---src-pages-featured-datescarnival-1-js\": () => import(\"./../../../src/pages/featured/datescarnival1.js\" /* webpackChunkName: \"component---src-pages-featured-datescarnival-1-js\" */),\n \"component---src-pages-featured-eid-3-js\": () => import(\"./../../../src/pages/featured/eid3.js\" /* webpackChunkName: \"component---src-pages-featured-eid-3-js\" */),\n \"component---src-pages-featured-eidaladha-js\": () => import(\"./../../../src/pages/featured/eidaladha.js\" /* webpackChunkName: \"component---src-pages-featured-eidaladha-js\" */),\n \"component---src-pages-featured-eidalfitr-1-js\": () => import(\"./../../../src/pages/featured/eidalfitr1.js\" /* webpackChunkName: \"component---src-pages-featured-eidalfitr-1-js\" */),\n \"component---src-pages-featured-foundingday-1-js\": () => import(\"./../../../src/pages/featured/foundingday1.js\" /* webpackChunkName: \"component---src-pages-featured-foundingday-1-js\" */),\n \"component---src-pages-featured-foundingdayoffer-1-js\": () => import(\"./../../../src/pages/featured/foundingdayoffer1.js\" /* webpackChunkName: \"component---src-pages-featured-foundingdayoffer-1-js\" */),\n \"component---src-pages-featured-foundingdayphotgraphy-1-js\": () => import(\"./../../../src/pages/featured/foundingdayphotgraphy1.js\" /* webpackChunkName: \"component---src-pages-featured-foundingdayphotgraphy-1-js\" */),\n \"component---src-pages-featured-future-projects-forumoffer-1-js\": () => import(\"./../../../src/pages/featured/futureProjectsForumoffer1.js\" /* webpackChunkName: \"component---src-pages-featured-future-projects-forumoffer-1-js\" */),\n \"component---src-pages-featured-lomihasawi-1-js\": () => import(\"./../../../src/pages/featured/lomihasawi1.js\" /* webpackChunkName: \"component---src-pages-featured-lomihasawi-1-js\" */),\n \"component---src-pages-featured-nationalday-1-js\": () => import(\"./../../../src/pages/featured/nationalday1.js\" /* webpackChunkName: \"component---src-pages-featured-nationalday-1-js\" */),\n \"component---src-pages-featured-parcelramadanoffer-js\": () => import(\"./../../../src/pages/featured/parcelramadanoffer.js\" /* webpackChunkName: \"component---src-pages-featured-parcelramadanoffer-js\" */),\n \"component---src-pages-featured-parcelshipmentqassim-js\": () => import(\"./../../../src/pages/featured/parcelshipmentqassim.js\" /* webpackChunkName: \"component---src-pages-featured-parcelshipmentqassim-js\" */),\n \"component---src-pages-featured-parcelshipments-js\": () => import(\"./../../../src/pages/featured/parcelshipments.js\" /* webpackChunkName: \"component---src-pages-featured-parcelshipments-js\" */),\n \"component---src-pages-featured-ramadan-offer-js\": () => import(\"./../../../src/pages/featured/ramadanOffer.js\" /* webpackChunkName: \"component---src-pages-featured-ramadan-offer-js\" */),\n \"component---src-pages-featured-ramadanbusinessclass-1-js\": () => import(\"./../../../src/pages/featured/ramadanbusinessclass1.js\" /* webpackChunkName: \"component---src-pages-featured-ramadanbusinessclass-1-js\" */),\n \"component---src-pages-featured-ramadanccoffer-1-js\": () => import(\"./../../../src/pages/featured/ramadanccoffer1.js\" /* webpackChunkName: \"component---src-pages-featured-ramadanccoffer-1-js\" */),\n \"component---src-pages-featured-ramadantimeline-js\": () => import(\"./../../../src/pages/featured/ramadantimeline.js\" /* webpackChunkName: \"component---src-pages-featured-ramadantimeline-js\" */),\n \"component---src-pages-featured-roadtoqatar-js\": () => import(\"./../../../src/pages/featured/roadtoqatar.js\" /* webpackChunkName: \"component---src-pages-featured-roadtoqatar-js\" */),\n \"component---src-pages-featured-sarzahra-js\": () => import(\"./../../../src/pages/featured/sarzahra.js\" /* webpackChunkName: \"component---src-pages-featured-sarzahra-js\" */),\n \"component---src-pages-featured-sixt-js\": () => import(\"./../../../src/pages/featured/sixt.js\" /* webpackChunkName: \"component---src-pages-featured-sixt-js\" */),\n \"component---src-pages-featured-sleepday-js\": () => import(\"./../../../src/pages/featured/sleepday.js\" /* webpackChunkName: \"component---src-pages-featured-sleepday-js\" */),\n \"component---src-pages-featured-walaone-js\": () => import(\"./../../../src/pages/featured/walaone.js\" /* webpackChunkName: \"component---src-pages-featured-walaone-js\" */),\n \"component---src-pages-freight-carcargo-js\": () => import(\"./../../../src/pages/freight/carcargo.js\" /* webpackChunkName: \"component---src-pages-freight-carcargo-js\" */),\n \"component---src-pages-freight-freight-js\": () => import(\"./../../../src/pages/freight/freight.js\" /* webpackChunkName: \"component---src-pages-freight-freight-js\" */),\n \"component---src-pages-freight-index-js\": () => import(\"./../../../src/pages/freight/index.js\" /* webpackChunkName: \"component---src-pages-freight-index-js\" */),\n \"component---src-pages-freight-parcelshipments-js\": () => import(\"./../../../src/pages/freight/parcelshipments.js\" /* webpackChunkName: \"component---src-pages-freight-parcelshipments-js\" */),\n \"component---src-pages-frieght-contact-information-index-js\": () => import(\"./../../../src/pages/frieght-contact-information/index.js\" /* webpackChunkName: \"component---src-pages-frieght-contact-information-index-js\" */),\n \"component---src-pages-help-complainthandlingpolicy-js\": () => import(\"./../../../src/pages/help/complainthandlingpolicy.js\" /* webpackChunkName: \"component---src-pages-help-complainthandlingpolicy-js\" */),\n \"component---src-pages-help-complaintpolicy-js\": () => import(\"./../../../src/pages/help/complaintpolicy.js\" /* webpackChunkName: \"component---src-pages-help-complaintpolicy-js\" */),\n \"component---src-pages-help-customerfeedback-js\": () => import(\"./../../../src/pages/help/customerfeedback.js\" /* webpackChunkName: \"component---src-pages-help-customerfeedback-js\" */),\n \"component---src-pages-help-disabalitypolicy-js\": () => import(\"./../../../src/pages/help/disabalitypolicy.js\" /* webpackChunkName: \"component---src-pages-help-disabalitypolicy-js\" */),\n \"component---src-pages-help-persondisabalitypolicy-js\": () => import(\"./../../../src/pages/help/persondisabalitypolicy.js\" /* webpackChunkName: \"component---src-pages-help-persondisabalitypolicy-js\" */),\n \"component---src-pages-help-refundcompensation-js\": () => import(\"./../../../src/pages/help/refundcompensation.js\" /* webpackChunkName: \"component---src-pages-help-refundcompensation-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-information-mmmp-hajj-awareness-js\": () => import(\"./../../../src/pages/information/MMMP-HajjAwareness.js\" /* webpackChunkName: \"component---src-pages-information-mmmp-hajj-awareness-js\" */),\n \"component---src-pages-sample-sample-js\": () => import(\"./../../../src/pages/sample/sample.js\" /* webpackChunkName: \"component---src-pages-sample-sample-js\" */),\n \"component---src-pages-speak-up-js\": () => import(\"./../../../src/pages/Speak-Up.js\" /* webpackChunkName: \"component---src-pages-speak-up-js\" */),\n \"component---src-pages-stations-js-index-js\": () => import(\"./../../../src/pages/stations.js/index.js\" /* webpackChunkName: \"component---src-pages-stations-js-index-js\" */),\n \"component---src-pages-telgani-index-js\": () => import(\"./../../../src/pages/telgani/index.js\" /* webpackChunkName: \"component---src-pages-telgani-index-js\" */),\n \"component---src-pages-tis-app-js\": () => import(\"./../../../src/pages/TISApp.js\" /* webpackChunkName: \"component---src-pages-tis-app-js\" */),\n \"component---src-pages-travel-information-business-east-js\": () => import(\"./../../../src/pages/travel-information/business-east.js\" /* webpackChunkName: \"component---src-pages-travel-information-business-east-js\" */),\n \"component---src-pages-travel-information-business-north-js\": () => import(\"./../../../src/pages/travel-information/business-north.js\" /* webpackChunkName: \"component---src-pages-travel-information-business-north-js\" */),\n \"component---src-pages-travel-information-carparking-js\": () => import(\"./../../../src/pages/travel-information/carparking.js\" /* webpackChunkName: \"component---src-pages-travel-information-carparking-js\" */),\n \"component---src-pages-travel-information-economy-east-js\": () => import(\"./../../../src/pages/travel-information/economy-east.js\" /* webpackChunkName: \"component---src-pages-travel-information-economy-east-js\" */),\n \"component---src-pages-travel-information-economy-north-js\": () => import(\"./../../../src/pages/travel-information/economy-north.js\" /* webpackChunkName: \"component---src-pages-travel-information-economy-north-js\" */),\n \"component---src-pages-travel-information-foodanddrink-js\": () => import(\"./../../../src/pages/travel-information/foodanddrink.js\" /* webpackChunkName: \"component---src-pages-travel-information-foodanddrink-js\" */),\n \"component---src-pages-travel-information-onboard-food-drink-js\": () => import(\"./../../../src/pages/travel-information/onboard-food-drink.js\" /* webpackChunkName: \"component---src-pages-travel-information-onboard-food-drink-js\" */),\n \"component---src-pages-travel-information-passengercharter-js\": () => import(\"./../../../src/pages/travel-information/passengercharter.js\" /* webpackChunkName: \"component---src-pages-travel-information-passengercharter-js\" */),\n \"component---src-pages-travel-information-privatecabin-js\": () => import(\"./../../../src/pages/travel-information/privatecabin.js\" /* webpackChunkName: \"component---src-pages-travel-information-privatecabin-js\" */),\n \"component---src-pages-travel-information-purchasemethods-js\": () => import(\"./../../../src/pages/travel-information/purchasemethods.js\" /* webpackChunkName: \"component---src-pages-travel-information-purchasemethods-js\" */),\n \"component---src-pages-travel-information-refundmodification-js\": () => import(\"./../../../src/pages/travel-information/refundmodification.js\" /* webpackChunkName: \"component---src-pages-travel-information-refundmodification-js\" */),\n \"component---src-pages-travel-information-seat-selection-js\": () => import(\"./../../../src/pages/travel-information/seat-selection.js\" /* webpackChunkName: \"component---src-pages-travel-information-seat-selection-js\" */),\n \"component---src-pages-travel-information-station-lounges-js\": () => import(\"./../../../src/pages/travel-information/station-lounges.js\" /* webpackChunkName: \"component---src-pages-travel-information-station-lounges-js\" */),\n \"component---src-pages-travel-information-stations-east-js\": () => import(\"./../../../src/pages/travel-information/stations-east.js\" /* webpackChunkName: \"component---src-pages-travel-information-stations-east-js\" */),\n \"component---src-pages-travel-information-stations-js\": () => import(\"./../../../src/pages/travel-information/stations.js\" /* webpackChunkName: \"component---src-pages-travel-information-stations-js\" */),\n \"component---src-pages-travel-information-stations-north-js\": () => import(\"./../../../src/pages/travel-information/stations-north.js\" /* webpackChunkName: \"component---src-pages-travel-information-stations-north-js\" */),\n \"component---src-pages-travel-information-ticketrates-js\": () => import(\"./../../../src/pages/travel-information/ticketrates.js\" /* webpackChunkName: \"component---src-pages-travel-information-ticketrates-js\" */),\n \"component---src-pages-travel-information-tickettypes-east-js\": () => import(\"./../../../src/pages/travel-information/tickettypes-east.js\" /* webpackChunkName: \"component---src-pages-travel-information-tickettypes-east-js\" */),\n \"component---src-pages-travel-information-tickettypes-north-js\": () => import(\"./../../../src/pages/travel-information/tickettypes-north.js\" /* webpackChunkName: \"component---src-pages-travel-information-tickettypes-north-js\" */),\n \"component---src-pages-travel-information-timetable-east-js\": () => import(\"./../../../src/pages/travel-information/timetable-east.js\" /* webpackChunkName: \"component---src-pages-travel-information-timetable-east-js\" */),\n \"component---src-pages-travel-information-timetable-north-js\": () => import(\"./../../../src/pages/travel-information/timetable-north.js\" /* webpackChunkName: \"component---src-pages-travel-information-timetable-north-js\" */),\n \"component---src-pages-travel-information-trainschedule-copy-tsx\": () => import(\"./../../../src/pages/travel-information/trainschedule copy.tsx\" /* webpackChunkName: \"component---src-pages-travel-information-trainschedule-copy-tsx\" */),\n \"component---src-pages-travel-information-trainschedule-old-js\": () => import(\"./../../../src/pages/travel-information/trainschedule.old.js\" /* webpackChunkName: \"component---src-pages-travel-information-trainschedule-old-js\" */),\n \"component---src-pages-travel-information-trainschedule-tsx\": () => import(\"./../../../src/pages/travel-information/trainschedule.tsx\" /* webpackChunkName: \"component---src-pages-travel-information-trainschedule-tsx\" */),\n \"component---src-pages-travel-information-travelclasses-east-js\": () => import(\"./../../../src/pages/travel-information/travelclasses-east.js\" /* webpackChunkName: \"component---src-pages-travel-information-travelclasses-east-js\" */),\n \"component---src-pages-travel-information-travelclasses-js\": () => import(\"./../../../src/pages/travel-information/travelclasses.js\" /* webpackChunkName: \"component---src-pages-travel-information-travelclasses-js\" */),\n \"component---src-pages-travel-information-travelclasses-north-js\": () => import(\"./../../../src/pages/travel-information/travelclasses-north.js\" /* webpackChunkName: \"component---src-pages-travel-information-travelclasses-north-js\" */),\n \"component---src-pages-travel-with-sar-timetable-js\": () => import(\"./../../../src/pages/travel-with-sar/timetable-.js\" /* webpackChunkName: \"component---src-pages-travel-with-sar-timetable-js\" */),\n \"component---src-pages-uber-js\": () => import(\"./../../../src/pages/uber.js\" /* webpackChunkName: \"component---src-pages-uber-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":\"UA-100773692-2\",\"head\":false,\"anonymize\":false,\"respectDNT\":false,\"exclude\":[],\"pageTransitionDelay\":0,\"enableWebVitalsTracking\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/images/icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"fc61b41d854468c008c69471855d49f3\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"sourceInstanceName\":\"locale\",\"languages\":[\"ar\",\"en\"],\"defaultLanguage\":\"en\",\"siteUrl\":\"https://sar.com.sa/\",\"i18nextOptions\":{\"interpolation\":{\"escapeValue\":false},\"keySeparator\":false,\"nsSeparator\":false},\"pages\":[{\"matchPath\":\"/:lang?/blog/:uid\",\"getLanguageFromPath\":true},{\"matchPath\":\"/:lang?/sample/\",\"getLanguageFromPath\":true},{\"matchPath\":\"/preview\",\"languages\":[\"ar\"]}]},\n },{\n plugin: require('../node_modules/gatsby-plugin-breakpoints/gatsby-browser.js'),\n options: {\"plugins\":[]},\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","exports.createContentDigest = () => ``\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\"\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","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\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 Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\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 preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\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 slicesMap: pageData.slicesMap ?? {},\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.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = 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 loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\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 Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\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 // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.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 } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.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([componentChunkPromises, 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 if (shouldAbortFetch(rawPath)) {\n return data\n }\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 if (shouldAbortFetch(rawPath)) {\n return data\n }\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\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\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 `html`,\n `body`,\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 serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\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 which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\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\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\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[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\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 {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\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 // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\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 HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\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 {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\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 {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\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_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(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.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 \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\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 getSliceResults,\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 const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \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","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const 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 const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\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","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\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\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\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\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.BreakpointProvider = exports.BreakpointContext = void 0;\nexports.useBreakpoint = useBreakpoint;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _react = _interopRequireWildcard(require(\"react\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nconst defaultValue = {};\nconst BreakpointContext = exports.BreakpointContext = /*#__PURE__*/(0, _react.createContext)(defaultValue);\nconst BreakpointProvider = ({\n children,\n queries\n}) => {\n const [queryMatch, setQueryMatch] = (0, _react.useState)({});\n (0, _react.useEffect)(() => {\n const mediaQueryLists = {};\n const keys = Object.keys(queries);\n let isAttached = false;\n const handleQueryListener = () => {\n const updatedMatches = keys.reduce((acc, media) => {\n acc[media] = !!(mediaQueryLists[media] && mediaQueryLists[media].matches);\n return acc;\n }, {});\n setQueryMatch(updatedMatches);\n };\n if (window && window.matchMedia) {\n const matches = {};\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media] = window.matchMedia(queries[media]);\n matches[media] = mediaQueryLists[media].matches;\n } else {\n matches[media] = false;\n }\n });\n setQueryMatch(matches);\n isAttached = true;\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media].addListener(handleQueryListener);\n }\n });\n }\n return () => {\n if (isAttached) {\n keys.forEach(media => {\n if (typeof queries[media] === 'string') {\n mediaQueryLists[media].removeListener(handleQueryListener);\n }\n });\n }\n };\n }, [queries]);\n return /*#__PURE__*/_react.default.createElement(BreakpointContext.Provider, {\n value: queryMatch\n }, children);\n};\nexports.BreakpointProvider = BreakpointProvider;\nBreakpointProvider.propTypes = {\n children: _propTypes.default.element.isRequired,\n queries: _propTypes.default.object.isRequired\n};\nfunction useBreakpoint() {\n const context = (0, _react.useContext)(BreakpointContext);\n if (context === defaultValue) {\n throw new Error('useBreakpoint must be used within BreakpointProvider');\n }\n return context;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.defaultQueries = void 0;\nconst defaultQueries = exports.defaultQueries = {\n xs: '(max-width: 320px)',\n sm: '(max-width: 720px)',\n md: '(max-width: 1024px)',\n l: '(max-width: 1536px)'\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.wrapRootElement = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _constants = require(\"./constants\");\nvar _BreakpointProvider = require(\"./BreakpointProvider\");\n// eslint-disable-next-line no-unused-vars\n\nconst wrapRootElement = ({\n element\n}, {\n queries = null\n}) => {\n return /*#__PURE__*/_react.default.createElement(_BreakpointProvider.BreakpointProvider, {\n queries: queries !== null ? queries : _constants.defaultQueries\n }, element);\n};\nexports.wrapRootElement = wrapRootElement;","const listOfMetricsSend = new Set();\nfunction debounce(fn, timeout) {\n let timer = null;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(fn, timeout, ...args);\n };\n}\nfunction sendWebVitals() {\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n listOfMetricsSend.add(data.name);\n sendToGoogleAnalytics(data);\n }\n return import(`web-vitals/base`).then(({\n getLCP,\n getFID,\n getCLS\n }) => {\n const debouncedCLS = debounce(sendData, 3000);\n // we don't need to debounce FID - we send it when it happens\n const debouncedFID = sendData;\n // LCP can occur multiple times so we debounce it\n const debouncedLCP = debounce(sendData, 3000);\n\n // With the true flag, we measure all previous occurences too, in case we start listening to late.\n getCLS(debouncedCLS, true);\n getFID(debouncedFID, true);\n getLCP(debouncedLCP, true);\n });\n}\nfunction sendToGoogleAnalytics({\n name,\n value,\n id\n}) {\n window.ga(`send`, `event`, {\n eventCategory: `Web Vitals`,\n eventAction: name,\n // The `id` value will be unique to the current page load. When sending\n // multiple values from the same page (e.g. for CLS), Google Analytics can\n // compute a total by grouping on this ID (note: requires `eventLabel` to\n // be a dimension in your report).\n eventLabel: id,\n // Google Analytics metrics must be integers, so the value is rounded.\n // For CLS the value is first multiplied by 1000 for greater precision\n // (note: increase the multiplier for greater precision if needed).\n eventValue: Math.round(name === `CLS` ? value * 1000 : value),\n // Use a non-interaction event to avoid affecting bounce rate.\n nonInteraction: true,\n // Use `sendBeacon()` if the browser supports it.\n transport: `beacon`\n });\n}\nexport const onRouteUpdate = ({\n location\n}, pluginOptions = {}) => {\n const ga = window.ga;\n if (process.env.NODE_ENV !== `production` || typeof ga !== `function`) {\n return null;\n }\n const pathIsExcluded = location && typeof window.excludeGAPaths !== `undefined` && window.excludeGAPaths.some(rx => rx.test(location.pathname));\n if (pathIsExcluded) return null;\n\n // wrap inside a timeout to make sure react-helmet is done with it's changes (https://github.com/gatsbyjs/gatsby/issues/9139)\n // reactHelmet is using requestAnimationFrame: https://github.com/nfl/react-helmet/blob/5.2.0/src/HelmetUtils.js#L296-L299\n const sendPageView = () => {\n const pagePath = location ? location.pathname + location.search + location.hash : undefined;\n ga(`set`, `page`, pagePath);\n ga(`send`, `pageview`);\n };\n\n // Minimum delay for reactHelmet's requestAnimationFrame\n const delay = Math.max(32, pluginOptions.pageTransitionDelay || 0);\n setTimeout(sendPageView, delay);\n return null;\n};\nexport function onInitialClientRender(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` && typeof ga === `function` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals();\n }\n}","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\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 if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\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 if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.I18nextContext = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar I18nextContext = /*#__PURE__*/_react.default.createContext({\n language: 'en',\n languages: ['en'],\n routed: false,\n defaultLanguage: 'en',\n generateDefaultLanguagePage: false,\n originalPath: '/',\n path: '/'\n});\nexports.I18nextContext = I18nextContext;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.wrapPageElement = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _taggedTemplateLiteralLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/taggedTemplateLiteralLoose\"));\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _gatsby = require(\"gatsby\");\nvar _browserLang = _interopRequireDefault(require(\"browser-lang\"));\nvar _types = require(\"../types\");\nvar _i18next = _interopRequireDefault(require(\"i18next\"));\nvar _reactI18next = require(\"react-i18next\");\nvar _i18nextContext = require(\"../i18nextContext\");\nvar _outdent = _interopRequireDefault(require(\"outdent\"));\nvar _templateObject;\nvar withI18next = function withI18next(i18n, context) {\n return function (children) {\n return /*#__PURE__*/_react.default.createElement(_reactI18next.I18nextProvider, {\n i18n: i18n\n }, /*#__PURE__*/_react.default.createElement(_i18nextContext.I18nextContext.Provider, {\n value: context\n }, children));\n };\n};\nvar removePathPrefix = function removePathPrefix(pathname, stripTrailingSlash) {\n var pathPrefix = (0, _gatsby.withPrefix)('/');\n var result = pathname;\n if (pathname.startsWith(pathPrefix)) {\n result = pathname.replace(pathPrefix, '/');\n }\n if (stripTrailingSlash && result.endsWith('/')) {\n return result.slice(0, -1);\n }\n return result;\n};\nvar wrapPageElement = function wrapPageElement(_ref, _ref2) {\n var _data$localeJsonNodeN, _i18nextOptions$defau;\n var element = _ref.element,\n props = _ref.props;\n var _ref2$i18nextOptions = _ref2.i18nextOptions,\n i18nextOptions = _ref2$i18nextOptions === void 0 ? {} : _ref2$i18nextOptions,\n _ref2$redirect = _ref2.redirect,\n redirect = _ref2$redirect === void 0 ? true : _ref2$redirect,\n _ref2$generateDefault = _ref2.generateDefaultLanguagePage,\n generateDefaultLanguagePage = _ref2$generateDefault === void 0 ? false : _ref2$generateDefault,\n siteUrl = _ref2.siteUrl,\n _ref2$localeJsonNodeN = _ref2.localeJsonNodeName,\n localeJsonNodeName = _ref2$localeJsonNodeN === void 0 ? 'locales' : _ref2$localeJsonNodeN,\n fallbackLanguage = _ref2.fallbackLanguage,\n trailingSlash = _ref2.trailingSlash;\n if (!props) return;\n var data = props.data,\n pageContext = props.pageContext,\n location = props.location;\n var _pageContext$i18n = pageContext.i18n,\n routed = _pageContext$i18n.routed,\n language = _pageContext$i18n.language,\n languages = _pageContext$i18n.languages,\n originalPath = _pageContext$i18n.originalPath,\n defaultLanguage = _pageContext$i18n.defaultLanguage,\n path = _pageContext$i18n.path;\n var isRedirect = redirect && !routed;\n if (isRedirect) {\n var search = location.search;\n\n // Skip build, Browsers only\n if (typeof window !== 'undefined') {\n var detected = window.localStorage.getItem(_types.LANGUAGE_KEY) || (0, _browserLang.default)({\n languages: languages,\n fallback: fallbackLanguage || language\n });\n if (!languages.includes(detected)) {\n detected = language;\n }\n window.localStorage.setItem(_types.LANGUAGE_KEY, detected);\n if (detected !== defaultLanguage) {\n var queryParams = search || '';\n var stripTrailingSlash = trailingSlash === 'never';\n var newUrl = (0, _gatsby.withPrefix)(\"/\" + detected + removePathPrefix(location.pathname, stripTrailingSlash) + queryParams + location.hash);\n // @ts-ignore\n window.___replace(newUrl);\n return null;\n }\n }\n }\n var localeNodes = (data === null || data === void 0 ? void 0 : (_data$localeJsonNodeN = data[localeJsonNodeName]) === null || _data$localeJsonNodeN === void 0 ? void 0 : _data$localeJsonNodeN.edges) || [];\n if (languages.length > 1 && localeNodes.length === 0 && process.env.NODE_ENV === 'development') {\n console.error((0, _outdent.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)([\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n `;\\n \"], [\"\\n No translations were found in \\\"\", \"\\\" key for \\\"\", \"\\\". \\n You need to add a graphql query to every page like this:\\n \\n export const query = graphql\\\\`\\n query($language: String!) {\\n \", \": allLocale(language: {eq: $language}) {\\n edges {\\n node {\\n ns\\n data\\n language\\n }\\n }\\n }\\n }\\n \\\\`;\\n \"])), localeJsonNodeName, originalPath, localeJsonNodeName));\n }\n var namespaces = localeNodes.map(function (_ref3) {\n var node = _ref3.node;\n return node.ns;\n });\n\n // We want to set default namespace to a page namespace if it exists\n // and use other namespaces as fallback\n // this way you dont need to specify namespaces in pages\n var defaultNS = ((_i18nextOptions$defau = i18nextOptions.defaultNS) === null || _i18nextOptions$defau === void 0 ? void 0 : _i18nextOptions$defau.toString()) || 'translation';\n defaultNS = namespaces.find(function (ns) {\n return ns !== defaultNS;\n }) || defaultNS;\n var fallbackNS = namespaces.filter(function (ns) {\n return ns !== defaultNS;\n });\n var resources = localeNodes.reduce(function (res, _ref4) {\n var node = _ref4.node;\n var parsedData = typeof node.data === 'object' ? node.data : JSON.parse(node.data);\n if (!(node.language in res)) res[node.language] = {};\n res[node.language][node.ns || defaultNS] = parsedData;\n return res;\n }, {});\n var i18n = _i18next.default.createInstance();\n i18n.init((0, _extends2.default)({}, i18nextOptions, {\n resources: resources,\n lng: language,\n fallbackLng: defaultLanguage,\n defaultNS: defaultNS,\n fallbackNS: fallbackNS,\n react: (0, _extends2.default)({}, i18nextOptions.react, {\n useSuspense: false\n })\n }));\n if (i18n.language !== language) {\n i18n.changeLanguage(language);\n }\n var context = {\n routed: routed,\n language: language,\n languages: languages,\n originalPath: originalPath,\n defaultLanguage: defaultLanguage,\n generateDefaultLanguagePage: generateDefaultLanguagePage,\n siteUrl: siteUrl,\n path: path\n };\n return withI18next(i18n, context)(element);\n};\nexports.wrapPageElement = wrapPageElement;","\"use strict\";\n\nexports.__esModule = true;\nexports.LANGUAGE_KEY = void 0;\nvar LANGUAGE_KEY = 'gatsby-i18next-language';\nexports.LANGUAGE_KEY = LANGUAGE_KEY;","const {wrapPageElement} = require('./dist/plugin/wrapPageElement');\nexports.wrapPageElement = wrapPageElement;\n","'use strict';\n\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","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}","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}","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};","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}","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\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(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\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(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n strings.raw = raw;\n return strings;\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(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\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(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\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(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\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.7.6 - 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(f,1e4),e.addEventListener(\\\"pt0\\\",w),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):f())))}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.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n {\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 `