{"version":3,"file":"app-a018911f9b15b43d6ad5.js","mappings":"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","sources":["webpack://hugel/./node_modules/browser-lang/dist/index.js","webpack://hugel/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://hugel/./node_modules/gatsby-react-router-scroll/index.js","webpack://hugel/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://hugel/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://hugel/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://hugel/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://hugel/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://hugel/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://hugel/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://hugel/./.cache/api-runner-browser-plugins.js","webpack://hugel/./.cache/api-runner-browser.js","webpack://hugel/./.cache/create-content-digest-browser-shim.js","webpack://hugel/./.cache/emitter.js","webpack://hugel/./node_modules/mitt/dist/mitt.es.js","webpack://hugel/./.cache/normalize-page-path.js","webpack://hugel/./.cache/find-path.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://hugel/./.cache/slice/server-slice-renderer.js","webpack://hugel/./.cache/slice/server-slice.js","webpack://hugel/./.cache/slice/inline-slice.js","webpack://hugel/./.cache/slice.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://hugel/./.cache/gatsby-browser-entry.js","webpack://hugel/./.cache/prefetch.js","webpack://hugel/./.cache/loader.js","webpack://hugel/./.cache/head/components/fire-callback-in-effect.js","webpack://hugel/./.cache/head/constants.js","webpack://hugel/./.cache/head/utils.js","webpack://hugel/./.cache/head/head-export-handler-for-browser.js","webpack://hugel/./.cache/page-renderer.js","webpack://hugel/./.cache/route-announcer-props.js","webpack://hugel/./.cache/navigation.js","webpack://hugel/./node_modules/shallow-compare/es/index.js","webpack://hugel/./.cache/ensure-resources.js","webpack://hugel/./.cache/production-app.js","webpack://hugel/./.cache/public-page-renderer-prod.js","webpack://hugel/./.cache/public-page-renderer.js","webpack://hugel/./.cache/react-dom-utils.js","webpack://hugel/./.cache/redirect-utils.js","webpack://hugel/./.cache/register-service-worker.js","webpack://hugel/./.cache/slice/context.js","webpack://hugel/./.cache/static-query.js","webpack://hugel/./.cache/context-utils.js","webpack://hugel/./.cache/strip-prefix.js","webpack://hugel/./node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js","webpack://hugel/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://hugel/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://hugel/./node_modules/gatsby-plugin-react-i18next/dist/i18nextContext.js","webpack://hugel/./node_modules/gatsby-plugin-react-i18next/dist/plugin/wrapPageElement.js","webpack://hugel/./node_modules/gatsby-plugin-react-i18next/dist/types.js","webpack://hugel/./node_modules/gatsby-plugin-react-i18next/gatsby-browser.js","webpack://hugel/./node_modules/gatsby-plugin-scroll-reveal/Wrapper.js","webpack://hugel/./node_modules/gatsby-plugin-scroll-reveal/gatsby-browser.js","webpack://hugel/./node_modules/gatsby-plugin-styled-components/gatsby-browser.js","webpack://hugel/./node_modules/i18next/dist/cjs/i18next.js","webpack://hugel/./node_modules/intersection-observer/intersection-observer.js","webpack://hugel/./node_modules/invariant/browser.js","webpack://hugel/./node_modules/outdent/lib-module/index.js","webpack://hugel/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://hugel/./node_modules/react-server-dom-webpack/index.js","webpack://hugel/./node_modules/sal.js/dist/sal.js","webpack://hugel/./node_modules/shallowequal/index.js","webpack://hugel/./node_modules/styled-components/node_modules/tslib/tslib.es6.js","webpack://hugel/./node_modules/stylis/src/Enum.js","webpack://hugel/./node_modules/stylis/src/Utility.js","webpack://hugel/./node_modules/stylis/src/Tokenizer.js","webpack://hugel/./node_modules/stylis/src/Serializer.js","webpack://hugel/./node_modules/stylis/src/Prefixer.js","webpack://hugel/./node_modules/stylis/src/Middleware.js","webpack://hugel/./node_modules/stylis/src/Parser.js","webpack://hugel/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://hugel/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://hugel/./node_modules/void-elements/index.js","webpack://hugel/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://hugel/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://hugel/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://hugel/./node_modules/@babel/runtime/helpers/createClass.js","webpack://hugel/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://hugel/./node_modules/@babel/runtime/helpers/extends.js","webpack://hugel/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://hugel/./node_modules/@babel/runtime/helpers/inherits.js","webpack://hugel/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://hugel/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://hugel/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://hugel/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://hugel/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://hugel/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://hugel/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://hugel/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://hugel/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://hugel/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js","webpack://hugel/./node_modules/@babel/runtime/helpers/toArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://hugel/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://hugel/./node_modules/@babel/runtime/helpers/typeof.js","webpack://hugel/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://hugel/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://hugel/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://hugel/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://hugel/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://hugel/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://hugel/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://hugel/./node_modules/react-i18next/dist/es/utils.js","webpack://hugel/./node_modules/react-i18next/dist/es/unescape.js","webpack://hugel/./node_modules/react-i18next/dist/es/defaults.js","webpack://hugel/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://hugel/./node_modules/react-i18next/dist/es/TransWithoutContext.js","webpack://hugel/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://hugel/./node_modules/react-i18next/dist/es/context.js","webpack://hugel/./node_modules/react-i18next/dist/es/Trans.js","webpack://hugel/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://hugel/./node_modules/react-i18next/dist/es/withTranslation.js","webpack://hugel/./node_modules/react-i18next/dist/es/Translation.js","webpack://hugel/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://hugel/./node_modules/react-i18next/dist/es/useSSR.js","webpack://hugel/./node_modules/react-i18next/dist/es/withSSR.js","webpack://hugel/./node_modules/react-i18next/dist/es/index.js"],"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 applyTrailingSlashOption = (input, option = `always`) => {\n const hasHtmlSuffix = input.endsWith(`.html`);\n const hasXmlSuffix = input.endsWith(`.xml`);\n const hasPdfSuffix = input.endsWith(`.pdf`);\n if (input === `/`) return input;\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = `never`;\n }\n if (option === `always`) {\n return input.endsWith(`/`) ? input : `${input}/`;\n }\n if (option === `never`) {\n return input.endsWith(`/`) ? 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-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-500-tsx\": () => import(\"./../../../src/pages/500.tsx\" /* webpackChunkName: \"component---src-pages-500-tsx\" */),\n \"component---src-pages-about-us-tsx\": () => import(\"./../../../src/pages/about-us.tsx\" /* webpackChunkName: \"component---src-pages-about-us-tsx\" */),\n \"component---src-pages-careers-tsx\": () => import(\"./../../../src/pages/careers.tsx\" /* webpackChunkName: \"component---src-pages-careers-tsx\" */),\n \"component---src-pages-clinical-resources-tsx\": () => import(\"./../../../src/pages/clinical-resources.tsx\" /* webpackChunkName: \"component---src-pages-clinical-resources-tsx\" */),\n \"component---src-pages-contact-tsx\": () => import(\"./../../../src/pages/contact.tsx\" /* webpackChunkName: \"component---src-pages-contact-tsx\" */),\n \"component---src-pages-contact-us-tsx\": () => import(\"./../../../src/pages/contact-us.tsx\" /* webpackChunkName: \"component---src-pages-contact-us-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-our-approach-tsx\": () => import(\"./../../../src/pages/our-approach.tsx\" /* webpackChunkName: \"component---src-pages-our-approach-tsx\" */),\n \"component---src-pages-our-mission-tsx\": () => import(\"./../../../src/pages/our-mission.tsx\" /* webpackChunkName: \"component---src-pages-our-mission-tsx\" */),\n \"component---src-pages-our-people-tsx\": () => import(\"./../../../src/pages/our-people.tsx\" /* webpackChunkName: \"component---src-pages-our-people-tsx\" */),\n \"component---src-pages-press-tsx\": () => import(\"./../../../src/pages/press.tsx\" /* webpackChunkName: \"component---src-pages-press-tsx\" */),\n \"component---src-pages-privacy-policy-tsx\": () => import(\"./../../../src/pages/privacy-policy.tsx\" /* webpackChunkName: \"component---src-pages-privacy-policy-tsx\" */),\n \"component---src-pages-privacy-statement-tsx\": () => import(\"./../../../src/pages/privacy-statement.tsx\" /* webpackChunkName: \"component---src-pages-privacy-statement-tsx\" */),\n \"component---src-pages-terms-of-use-tsx\": () => import(\"./../../../src/pages/terms-of-use.tsx\" /* webpackChunkName: \"component---src-pages-terms-of-use-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-styled-components/gatsby-browser.js'),\n options: {\"plugins\":[],\"displayName\":true,\"fileName\":true,\"minify\":true,\"namespace\":\"\",\"transpileTemplateLiterals\":true,\"topLevelImportPaths\":[],\"pure\":false,\"disableVendorPrefixes\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/images/Hugel_favicon-32x32.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"526e41ed62a1bcec562f3c1a72481e91\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-scroll-reveal/gatsby-browser.js'),\n options: {\"plugins\":[],\"threshold\":1,\"once\":true,\"disable\":false,\"selector\":\"[data-sal]\",\"animateClassName\":\"sal-animate\",\"disabledClassName\":\"sal-disabled\",\"rootMargin\":\"0% 50%\",\"enterEventName\":\"sal:in\",\"exitEventName\":\"sal:out\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js'),\n options: {\"plugins\":[],\"id\":\"GTM-M3JP4C7\",\"includeInDevelopment\":false,\"defaultDataLayer\":null,\"routeChangeEventName\":\"gatsby-route-change\",\"enableWebVitalsTracking\":false,\"selfHostedOrigin\":\"https://www.googletagmanager.com\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-i18next/gatsby-browser.js'),\n options: {\"plugins\":[],\"languages\":[\"en\",\"fr\"],\"defaultLanguage\":\"en\",\"i18nextOptions\":{\"fallbackLng\":\"en\",\"supportedLngs\":[\"en\",\"fr\"],\"defaultNS\":\"common\",\"interpolation\":{\"escapeValue\":false}}},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","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 htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n [attribute.name]: 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","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(dataLayerName = `dataLayer`) {\n const win = window;\n function sendData(data) {\n if (listOfMetricsSend.has(data.name)) {\n return;\n }\n listOfMetricsSend.add(data.name);\n sendToGTM(data, win[dataLayerName]);\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 sendToGTM({\n name,\n value,\n id\n}, dataLayer) {\n dataLayer.push({\n event: `core-web-vitals`,\n webVitalsMeasurement: {\n name: 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 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 value: Math.round(name === `CLS` ? value * 1000 : value)\n }\n });\n}\nexport function onRouteUpdate(_, pluginOptions) {\n if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) {\n // wrap inside a timeout to ensure the title has properly been changed\n setTimeout(() => {\n const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer;\n const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`;\n data.push({\n event: eventName\n });\n }, 50);\n }\n}\nexport function onInitialClientRender(_, pluginOptions) {\n // we only load the polyfill in production so we can't enable it in development\n if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) {\n sendWebVitals(pluginOptions.dataLayerName);\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 _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = Wrapper;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _sal = _interopRequireDefault(require(\"sal.js\"));\n\nfunction Wrapper(_ref) {\n var children = _ref.children,\n path = _ref.path,\n options = _ref.options;\n (0, _react.useEffect)(function () {\n (0, _sal.default)(options);\n }, [path]);\n return children;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nrequire('sal.js/dist/sal.css');\n\nrequire('intersection-observer');\n\nvar React = require(\"react\");\n\nvar Wrapper = require('./Wrapper').default;\n\nexports.wrapPageElement = function (_ref, _ref2) {\n var element = _ref.element,\n props = _ref.props;\n var plugins = _ref2.plugins,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref2, [\"plugins\"]);\n return (\n /*#__PURE__*/\n React.createElement(Wrapper, {\n options: options,\n path: props.path\n }, element)\n );\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _styledComponents = require(\"styled-components\");\n// eslint-disable-next-line react/prop-types,react/display-name\nexports.wrapRootElement = function (_ref, pluginOptions) {\n var element = _ref.element;\n return /*#__PURE__*/_react.default.createElement(_styledComponents.StyleSheetManager, {\n disableVendorPrefixes: (pluginOptions === null || pluginOptions === void 0 ? void 0 : pluginOptions.disableVendorPrefixes) === true\n }, element);\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$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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};\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck__default[\"default\"](this, Logger);\n this.init(concreteLogger, options);\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 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 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 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 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$6(_objectSpread$6({}, {\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 return Logger;\n}();\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck__default[\"default\"](this, EventEmitter);\n this.observers = {};\n }\n _createClass__default[\"default\"](EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\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 if (!listener) {\n delete this.observers[event];\n return;\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 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 if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\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}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\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 if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\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 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 if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\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 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 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 if (!matched) {\n var ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\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 for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\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 while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); }; }\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; } }\nvar ResourceStore = function (_EventEmitter) {\n _inherits__default[\"default\"](ResourceStore, _EventEmitter);\n var _super = _createSuper$3(ResourceStore);\n function ResourceStore(data) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _classCallCheck__default[\"default\"](this, ResourceStore);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default[\"default\"](_this));\n }\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n return _this;\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 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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\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 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 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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$5(_objectSpread$5({}, pack), resources);\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 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$5(_objectSpread$5({}, {}), 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 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 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$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); }; }\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; } }\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n _inherits__default[\"default\"](Translator, _EventEmitter);\n var _super = _createSuper$2(Translator);\n function Translator(services) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck__default[\"default\"](this, Translator);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default[\"default\"](_this));\n }\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized__default[\"default\"](_this));\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n _this.logger = baseLogger.create('translator');\n return _this;\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 if (key === undefined || key === null) {\n return false;\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 if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\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 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 if (_typeof__default[\"default\"](options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (_typeof__default[\"default\"](options) === 'object') options = _objectSpread$4({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\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 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 var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\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$4(_objectSpread$4({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\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 if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\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 if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, 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 var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\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 var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\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 _this2.emit('missingKey', l, namespace, k, res);\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 res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\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 if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, 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$4(_objectSpread$4({}, options), {\n interpolation: _objectSpread$4(_objectSpread$4({}, 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 if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\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 if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n 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 return null;\n }\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\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$4({\n i18nResolved: resolved\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\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 var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\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 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 _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 codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\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 if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n var possibleKey;\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 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 return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck__default[\"default\"](this, LanguageUtil);\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\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 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 return p.join('-');\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 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 if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this.formatLanguageCode(code);\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this.getLanguagePartFromCode(code);\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n 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 var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\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 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 fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\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};\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}\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck__default[\"default\"](this, PluralResolver);\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\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 this.rules = createRules();\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 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 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 if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\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 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (!rule) {\n return [];\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 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 if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n return this.getSuffixRetroCompatible(rule, count);\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 var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\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 var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\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 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 return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck__default[\"default\"](this, Interpolator);\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\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 var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\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(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\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 while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\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 replaces++;\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 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\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 if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\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 delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread$3({}, options);\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\n 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 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 if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\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 str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\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 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 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 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 return {\n formatName: formatName,\n formatOptions: formatOptions\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 if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck__default[\"default\"](this, Formatter);\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\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) {\n var _this = this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var formats = _format.split(this.formatSeparator);\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n if (_this.formats[formatName]) {\n var formatted = mem;\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$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n return mem;\n }, value);\n return result;\n }\n }]);\n return Formatter;\n}();\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); }; }\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; } }\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nvar Connector = function (_EventEmitter) {\n _inherits__default[\"default\"](Connector, _EventEmitter);\n var _super = _createSuper$1(Connector);\n function Connector(backend, store, services) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _classCallCheck__default[\"default\"](this, Connector);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default[\"default\"](_this));\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 if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n _createClass__default[\"default\"](Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\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 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 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 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 if (data) {\n this.store.addResourceBundle(lng, ns, data);\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 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 if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n 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 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 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 this.readingCalls++;\n var resolver = function resolver(err, data) {\n _this3.readingCalls--;\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\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 callback(err, data);\n };\n var fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\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 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 if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\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 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 _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 var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\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 if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {\n isUpdate: isUpdate\n });\n var fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n var r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\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 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 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 if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default[\"default\"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); }; }\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; } }\nfunction noop() {}\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}\nvar I18n = function (_EventEmitter) {\n _inherits__default[\"default\"](I18n, _EventEmitter);\n var _super = _createSuper(I18n);\n function I18n() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _classCallCheck__default[\"default\"](this, I18n);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized__default[\"default\"](_this));\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 if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n return _possibleConstructorReturn__default[\"default\"](_this, _assertThisInitialized__default[\"default\"](_this));\n }\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n _createClass__default[\"default\"](I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\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 var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\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 var formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\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 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 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 _this2.emit.apply(_this2, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\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 _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 this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\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 if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\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 (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n return _this2;\n };\n });\n var deferred = defer();\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 _this2.emit('initialized', _this2.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\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 if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\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 if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\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 if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\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 for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\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 this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n _this4.setResolvedLanguage(l);\n };\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n _this4.translator.changeLanguage(l);\n _this4.isLanguageChangingTo = undefined;\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\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 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 if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\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 options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\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;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n return _this5.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\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 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 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 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\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 var lng = options.lng || this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\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 var deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\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 if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n 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 return I18n;\n}(EventEmitter);\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});\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nmodule.exports = instance;\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * A local reference to the document.\n */\nvar document = window.document;\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array