{"version":3,"file":"app-2c739d66b06157411dee.js","mappings":"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","sources":["webpack://impulse/./node_modules/camelcase/index.js","webpack://impulse/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://impulse/./node_modules/gatsby-react-router-scroll/index.js","webpack://impulse/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://impulse/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://impulse/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://impulse/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://impulse/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://impulse/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://impulse/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://impulse/./.cache/api-runner-browser-plugins.js","webpack://impulse/./.cache/api-runner-browser.js","webpack://impulse/./.cache/create-content-digest-browser-shim.js","webpack://impulse/./.cache/emitter.js","webpack://impulse/./node_modules/mitt/dist/mitt.es.js","webpack://impulse/./.cache/normalize-page-path.js","webpack://impulse/./.cache/find-path.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://impulse/./.cache/slice/server-slice-renderer.js","webpack://impulse/./.cache/slice/server-slice.js","webpack://impulse/./.cache/slice/inline-slice.js","webpack://impulse/./.cache/slice.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://impulse/./.cache/gatsby-browser-entry.js","webpack://impulse/./.cache/prefetch.js","webpack://impulse/./.cache/loader.js","webpack://impulse/./.cache/head/components/fire-callback-in-effect.js","webpack://impulse/./.cache/head/constants.js","webpack://impulse/./.cache/head/utils.js","webpack://impulse/./.cache/head/head-export-handler-for-browser.js","webpack://impulse/./.cache/page-renderer.js","webpack://impulse/./.cache/route-announcer-props.js","webpack://impulse/./.cache/navigation.js","webpack://impulse/./node_modules/shallow-compare/es/index.js","webpack://impulse/./.cache/ensure-resources.js","webpack://impulse/./.cache/production-app.js","webpack://impulse/./.cache/public-page-renderer-prod.js","webpack://impulse/./.cache/public-page-renderer.js","webpack://impulse/./.cache/react-dom-utils.js","webpack://impulse/./.cache/redirect-utils.js","webpack://impulse/./.cache/register-service-worker.js","webpack://impulse/./.cache/slice/context.js","webpack://impulse/./.cache/static-query.js","webpack://impulse/./.cache/context-utils.js","webpack://impulse/./.cache/strip-prefix.js","webpack://impulse/./node_modules/gatsby-plugin-catch-links/catch-links.js","webpack://impulse/./node_modules/gatsby-plugin-catch-links/gatsby-browser.js","webpack://impulse/./node_modules/gatsby-plugin-catch-links/node_modules/escape-string-regexp/index.js","webpack://impulse/./node_modules/gatsby-plugin-gtag/gatsby-browser.js","webpack://impulse/../src/image-utils.ts","webpack://impulse/../src/components/hooks.ts","webpack://impulse/../src/components/layout-wrapper.tsx","webpack://impulse/../src/components/picture.tsx","webpack://impulse/../src/components/placeholder.tsx","webpack://impulse/../src/components/main-image.tsx","webpack://impulse/../src/components/gatsby-image.server.tsx","webpack://impulse/../src/components/gatsby-image.browser.tsx","webpack://impulse/../src/components/static-image.server.tsx","webpack://impulse/../src/components/static-image.tsx","webpack://impulse/./node_modules/gatsby-plugin-layout/gatsby-browser.js","webpack://impulse/./node_modules/gatsby-plugin-layout/wrap-page.js","webpack://impulse/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://impulse/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://impulse/./src/components/Button.tsx","webpack://impulse/./src/components/Container.tsx","webpack://impulse/./src/components/Divider.tsx","webpack://impulse/./src/components/Form/FormContext.tsx","webpack://impulse/./src/components/Form/EmailInput.tsx","webpack://impulse/./src/components/Form/TelInput.tsx","webpack://impulse/./src/components/Form/TextAreaInput.tsx","webpack://impulse/./src/components/Form/FormInput.tsx","webpack://impulse/./src/components/Form/Form.tsx","webpack://impulse/./src/components/Form/useFormContext.ts","webpack://impulse/./src/components/Image.tsx","webpack://impulse/./src/components/Link.tsx","webpack://impulse/./src/components/PageContext.ts","webpack://impulse/./src/utils/markdown.ts","webpack://impulse/./src/components/Typography.tsx","webpack://impulse/./src/hooks/usePageContext.ts","webpack://impulse/./src/components/Badge.tsx","webpack://impulse/./src/components/FooterForm.tsx","webpack://impulse/./src/components/Logo.tsx","webpack://impulse/./src/components/Footer.tsx","webpack://impulse/./src/components/LanguageSwitch.tsx","webpack://impulse/./src/components/Navigation/NavigationLink.tsx","webpack://impulse/./src/components/Navigation/NavigationSelect.tsx","webpack://impulse/./src/components/Navigation/NavigationRoutes.tsx","webpack://impulse/./src/components/Navigation/NavigationDesktop.tsx","webpack://impulse/./node_modules/@heroicons/react/20/solid/esm/Bars3Icon.js","webpack://impulse/./node_modules/@heroicons/react/20/solid/esm/XMarkIcon.js","webpack://impulse/./src/components/Navigation/NavigationMobile.tsx","webpack://impulse/./src/components/Spacer.tsx","webpack://impulse/./src/components/Header.tsx","webpack://impulse/./src/layouts/Layout.tsx","webpack://impulse/./node_modules/invariant/browser.js","webpack://impulse/./node_modules/lodash/_Symbol.js","webpack://impulse/./node_modules/lodash/_baseGetTag.js","webpack://impulse/./node_modules/lodash/_baseTrim.js","webpack://impulse/./node_modules/lodash/_freeGlobal.js","webpack://impulse/./node_modules/lodash/_getRawTag.js","webpack://impulse/./node_modules/lodash/_objectToString.js","webpack://impulse/./node_modules/lodash/_root.js","webpack://impulse/./node_modules/lodash/_trimmedEndIndex.js","webpack://impulse/./node_modules/lodash/debounce.js","webpack://impulse/./node_modules/lodash/isObject.js","webpack://impulse/./node_modules/lodash/isObjectLike.js","webpack://impulse/./node_modules/lodash/isSymbol.js","webpack://impulse/./node_modules/lodash/now.js","webpack://impulse/./node_modules/lodash/toNumber.js","webpack://impulse/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://impulse/./node_modules/react-server-dom-webpack/index.js","webpack://impulse/./src/assets/icons/Country-FR.svg","webpack://impulse/./src/assets/icons/Country-GB.svg","webpack://impulse/./src/assets/icons/cheveron-up.svg","webpack://impulse/./src/assets/icons/mail.svg","webpack://impulse/./src/assets/images/Logo.svg","webpack://impulse/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://impulse/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://impulse/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://impulse/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://impulse/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://impulse/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://impulse/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://impulse/./node_modules/clsx/dist/clsx.mjs","webpack://impulse/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://impulse/./node_modules/gatsby-script/dist/index.modern.mjs","webpack://impulse/./node_modules/ts-pattern/dist/index.js"],"sourcesContent":["'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-discover-us-template-career-tsx\": () => import(\"./../../../src/pages/discover-us/template-career.tsx\" /* webpackChunkName: \"component---src-pages-discover-us-template-career-tsx\" */),\n \"component---src-pages-discover-us-template-company-tsx\": () => import(\"./../../../src/pages/discover-us/template-company.tsx\" /* webpackChunkName: \"component---src-pages-discover-us-template-company-tsx\" */),\n \"component---src-pages-discover-us-template-job-board-tsx\": () => import(\"./../../../src/pages/discover-us/template-job-board.tsx\" /* webpackChunkName: \"component---src-pages-discover-us-template-job-board-tsx\" */),\n \"component---src-pages-discover-us-template-job-offer-tsx\": () => import(\"./../../../src/pages/discover-us/template-job-offer.tsx\" /* webpackChunkName: \"component---src-pages-discover-us-template-job-offer-tsx\" */),\n \"component---src-pages-news-template-article-tsx\": () => import(\"./../../../src/pages/news/template-article.tsx\" /* webpackChunkName: \"component---src-pages-news-template-article-tsx\" */),\n \"component---src-pages-news-template-news-tsx\": () => import(\"./../../../src/pages/news/template-news.tsx\" /* webpackChunkName: \"component---src-pages-news-template-news-tsx\" */),\n \"component---src-pages-sectors-template-construction-tsx\": () => import(\"./../../../src/pages/sectors/template-construction.tsx\" /* webpackChunkName: \"component---src-pages-sectors-template-construction-tsx\" */),\n \"component---src-pages-sectors-template-energy-and-environment-tsx\": () => import(\"./../../../src/pages/sectors/template-energy-and-environment.tsx\" /* webpackChunkName: \"component---src-pages-sectors-template-energy-and-environment-tsx\" */),\n \"component---src-pages-sectors-template-energy-tsx\": () => import(\"./../../../src/pages/sectors/template-energy.tsx\" /* webpackChunkName: \"component---src-pages-sectors-template-energy-tsx\" */),\n \"component---src-pages-sectors-template-engineering-tsx\": () => import(\"./../../../src/pages/sectors/template-engineering.tsx\" /* webpackChunkName: \"component---src-pages-sectors-template-engineering-tsx\" */),\n \"component---src-pages-sectors-template-housing-tsx\": () => import(\"./../../../src/pages/sectors/template-housing.tsx\" /* webpackChunkName: \"component---src-pages-sectors-template-housing-tsx\" */),\n \"component---src-pages-sectors-template-public-sector-tsx\": () => import(\"./../../../src/pages/sectors/template-public-sector.tsx\" /* webpackChunkName: \"component---src-pages-sectors-template-public-sector-tsx\" */),\n \"component---src-pages-services-template-consulting-tsx\": () => import(\"./../../../src/pages/services/template-consulting.tsx\" /* webpackChunkName: \"component---src-pages-services-template-consulting-tsx\" */),\n \"component---src-pages-services-template-design-tsx\": () => import(\"./../../../src/pages/services/template-design.tsx\" /* webpackChunkName: \"component---src-pages-services-template-design-tsx\" */),\n \"component---src-pages-services-template-international-services-tsx\": () => import(\"./../../../src/pages/services/template-international-services.tsx\" /* webpackChunkName: \"component---src-pages-services-template-international-services-tsx\" */),\n \"component---src-pages-services-template-investment-tsx\": () => import(\"./../../../src/pages/services/template-investment.tsx\" /* webpackChunkName: \"component---src-pages-services-template-investment-tsx\" */),\n \"component---src-pages-services-template-labs-tsx\": () => import(\"./../../../src/pages/services/template-labs.tsx\" /* webpackChunkName: \"component---src-pages-services-template-labs-tsx\" */),\n \"component---src-pages-services-template-studio-tsx\": () => import(\"./../../../src/pages/services/template-studio.tsx\" /* webpackChunkName: \"component---src-pages-services-template-studio-tsx\" */),\n \"component---src-pages-template-404-tsx\": () => import(\"./../../../src/pages/template-404.tsx\" /* webpackChunkName: \"component---src-pages-template-404-tsx\" */),\n \"component---src-pages-template-contact-tsx\": () => import(\"./../../../src/pages/template-contact.tsx\" /* webpackChunkName: \"component---src-pages-template-contact-tsx\" */),\n \"component---src-pages-template-index-tsx\": () => import(\"./../../../src/pages/template-index.tsx\" /* webpackChunkName: \"component---src-pages-template-index-tsx\" */),\n \"component---src-pages-template-privacy-policy-tsx\": () => import(\"./../../../src/pages/template-privacy-policy.tsx\" /* webpackChunkName: \"component---src-pages-template-privacy-policy-tsx\" */),\n \"component---src-pages-template-terms-tsx\": () => import(\"./../../../src/pages/template-terms.tsx\" /* webpackChunkName: \"component---src-pages-template-terms-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":\"G-3NB2F4KL14\",\"head\":true,\"anonymize\":true},\n },{\n plugin: require('../node_modules/gatsby-plugin-catch-links/gatsby-browser.js'),\n options: {\"plugins\":[],\"excludePattern\":\"(http)\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-layout/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/assets/images/favicon-192x192.png\",\"name\":\"Impulse Partners\",\"short_name\":\"Impulse Partners\",\"description\":\"We connect corporate groups with startups that are relevant, mature and capable of delivering. We connect startups with clients depending on their fields of expertise.\",\"start_url\":\"/\",\"lang\":\"en\",\"background_color\":\"#ffffff\",\"theme_color\":\"#ffffff\",\"display\":\"standalone\",\"localize\":[{\"start_url\":\"/fr/\",\"lang\":\"fr\",\"description\":\"Nous créons une passerelle entre grands groupes et start-up afin de répondre aux enjeux de transformation des uns et de développement des autres. Nous favorisons les conditions de la rencontre et de la collaboration.\"}],\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"0cc006c08acf4ad59cf7d831b00747bc\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n 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(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./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","import escapeStringRegexp from \"escape-string-regexp\";\nimport { withPrefix } from \"gatsby\";\nexport const userIsForcingNavigation = event => event.button !== 0 || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n\n// IE does not include leading slash in anchor.pathname\nexport const slashedPathname = pathname => pathname[0] === `/` ? pathname : `/${pathname}`;\nexport const navigationWasHandledElsewhere = event => event.defaultPrevented;\nexport const findClosestAnchor = node => {\n for (; node.parentNode; node = node.parentNode) {\n if (node.nodeName.toLowerCase() === `a`) {\n return node;\n }\n }\n return null;\n};\nexport const anchorsTargetIsEquivalentToSelf = anchor => /* If target attribute is not present it's treated as _self */\nanchor.hasAttribute(`target`) === false ||\n/**\n * The browser defaults to _self, but, not all browsers set\n * a.target to the string value `_self` by default\n */\n\n/**\n * Assumption: some browsers use null/undefined for default\n * attribute values\n */\nanchor.target == null ||\n/**\n * Some browsers use the empty string to mean _self, check\n * for actual `_self`\n */\n[`_self`, ``].includes(anchor.target) ||\n/**\n * As per https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target\n */\nanchor.target === `_parent` && (!anchor.ownerDocument.defaultView.parent ||\n// Assumption: This can be falsey\nanchor.ownerDocument.defaultView.parent === anchor.ownerDocument.defaultView) || anchor.target === `_top` && (!anchor.ownerDocument.defaultView.top ||\n// Assumption: This can be falsey\nanchor.ownerDocument.defaultView.top === anchor.ownerDocument.defaultView);\nexport const authorIsForcingNavigation = anchor =>\n/**\n * HTML5 attribute that informs the browser to handle the\n * href as a downloadable file; let the browser handle it\n */\nanchor.hasAttribute(`download`) === true ||\n/**\n * Let the browser handle anything that doesn't look like a\n * target=\"_self\" anchor\n */\nanchorsTargetIsEquivalentToSelf(anchor) === false;\n\n// https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\nexport const urlsAreOnSameOrigin = (origin, destination) => origin.protocol === destination.protocol && /* a.host includes both hostname and port in the expected format host:port */\norigin.host === destination.host;\nexport const pathIsNotHandledByApp = (destination, pathStartRegEx) => {\n const pathFileExtensionRegEx = /^.*\\.((?!htm)[a-z0-9]{1,5})$/i;\n return (\n /**\n * For when pathPrefix is used in an app and there happens to be a link\n * pointing to the same domain but outside of the app's pathPrefix. For\n * example, a Gatsby app lives at https://example.com/myapp/, with the\n * pathPrefix set to `/myapp`. When adding an absolute link to the same\n * domain but outside of the /myapp path, for example, `` the plugin won't catch it and\n * will navigate to an external link instead of doing a pushState resulting\n * in `https://example.com/myapp/https://example.com/not-my-app`\n */\n pathStartRegEx.test(slashedPathname(destination.pathname)) === false ||\n /**\n * Don't catch links pointed at what look like file extensions (other than\n * .htm/html extensions).\n */\n destination.pathname.search(pathFileExtensionRegEx) !== -1\n );\n};\nexport const hashShouldBeFollowed = (origin, destination) => destination.hash !== `` && (\n/**\n * Dynamically created anchor links (href=\"#my-anchor\") do not always\n * have pathname on IE\n */\ndestination.pathname === `` || /* Don't catch links pointed to the same page but with a hash. */\ndestination.pathname === origin.pathname);\nexport const routeThroughBrowserOrApp = (hrefHandler, pluginOptions) => event => {\n if (window.___failedResources) return true;\n if (userIsForcingNavigation(event)) return true;\n if (navigationWasHandledElsewhere(event)) return true;\n const clickedAnchor = findClosestAnchor(event.target);\n if (clickedAnchor == null) return true;\n if (authorIsForcingNavigation(clickedAnchor)) return true;\n\n // IE clears the host value if the anchor href changed after creation, e.g.\n // in React. Creating a new anchor element to ensure host value is present\n const destination = document.createElement(`a`);\n\n // https://html.spec.whatwg.org/multipage/links.html#concept-hyperlink-url-set\n // If clickedAnchor has no href attribute like `example`, the href getter returns empty string.\n if (clickedAnchor.href !== ``) {\n destination.href = clickedAnchor.href;\n }\n if (`SVGAnimatedString` in window && clickedAnchor.href instanceof SVGAnimatedString) {\n destination.href = clickedAnchor.href.animVal;\n }\n\n // In IE, the default port is included in the anchor host but excluded from\n // the location host. This affects the ability to directly compare\n // location host to anchor host. For example: http://example.com would\n // have a location.host of 'example.com' and an destination.host of\n // 'example.com:80' Creating anchor from the location.href to normalize the\n // host value.\n const origin = document.createElement(`a`);\n origin.href = window.location.href;\n if (urlsAreOnSameOrigin(origin, destination) === false) return true;\n\n // Regex to test pathname against pathPrefix\n const pathStartRegEx = new RegExp(`^${escapeStringRegexp(withPrefix(`/`))}`);\n if (pathIsNotHandledByApp(destination, pathStartRegEx)) return true;\n if (hashShouldBeFollowed(origin, destination)) return true;\n if (pluginOptions.excludePattern) {\n const excludeRegex = new RegExp(pluginOptions.excludePattern);\n if (excludeRegex.test(destination.pathname)) {\n return true;\n }\n }\n event.preventDefault();\n\n // See issue #8907: destination.pathname already includes pathPrefix added\n // by gatsby-transformer-remark but gatsby-link.navigate needs href without\n const destinationPathname = slashedPathname(destination.pathname).replace(pathStartRegEx, `/`);\n hrefHandler(`${destinationPathname}${destination.search}${destination.hash}`);\n return false;\n};\nexport default function (root, pluginOptions, cb) {\n const clickHandler = routeThroughBrowserOrApp(cb, pluginOptions);\n root.addEventListener(`click`, clickHandler);\n return () => root.removeEventListener(`click`, clickHandler);\n}","import { navigate } from \"gatsby\";\nimport catchLinks from \"./catch-links\";\nexport const onClientEntry = (_, pluginOptions = {}) => {\n catchLinks(window, pluginOptions, href => {\n navigate(href);\n });\n};","'use strict';\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\n\nmodule.exports = function (str) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\treturn str.replace(matchOperatorsRe, '\\\\$&');\n};\n","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n var trackingId = window.GATSBY_GTAG_PLUGIN_GA_TRACKING_ID;\n var anonymize = window.GATSBY_GTAG_PLUGIN_ANONYMIZE || false;\n\n if (!trackingId || typeof window.gtag !== 'function') {\n return;\n }\n\n var locationStr = '';\n\n if (location) {\n locationStr = '' + location.pathname + location.search + location.hash;\n }\n\n var anonymizeObj = {};\n if (anonymize) {\n anonymizeObj = { anonymize_ip: true };\n }\n\n window.gtag('config', trackingId, _extends({\n page_path: locationStr\n }, anonymizeObj));\n};","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","\"use strict\";\n\nexports.wrapPageElement = require(\"./wrap-page\");","\"use strict\";\n\nvar React = require(\"react\");\nvar preferDefault = function preferDefault(m) {\n return m && m.default || m;\n};\nvar Layout;\ntry {\n Layout = preferDefault(require(GATSBY_LAYOUT_COMPONENT_PATH));\n} catch (e) {\n if (e.toString().indexOf(\"Error: Cannot find module\") !== -1) {\n throw new Error(\"Couldn't find layout component at \\\"\" + GATSBY_LAYOUT_COMPONENT_PATH + \".\\n\\n\" + \"Please create layout component in that location or specify path to layout component in gatsby-config.js\");\n } else {\n // Logging the error for debugging older browsers as there is no way\n // to wrap the thrown error in a try/catch.\n console.error(e);\n throw e;\n }\n}\n\n// eslint-disable-next-line react/prop-types,react/display-name\nmodule.exports = function (_ref) {\n var element = _ref.element,\n props = _ref.props;\n return /*#__PURE__*/React.createElement(Layout, props, element);\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;","import { ReactNode } from 'react';\n\nimport clsx from 'clsx';\nimport { match } from 'ts-pattern';\n\nimport { Link } from './Link';\n\ninterface ButtonProps {\n children: string | ReactNode;\n href?: string;\n variant?: 'primary' | 'secondary';\n size?: 'large' | 'medium' | 'small';\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport const Button: React.FC = ({\n children: label,\n href,\n variant = 'primary',\n icon,\n size,\n className,\n}) => {\n const ButtonComponent = href ? Link : 'button';\n const sizeClass = match(size)\n .with('small', () => 'px-3 py-1.5 h-8 text-xs')\n .with('large', () => 'px-5 py-3 h-12')\n .otherwise(() => 'px-4 py-2.5 h-10 text-sm');\n\n return (\n \n {label}\n {icon}\n \n );\n};\n","import { ReactNode } from 'react';\n\nimport clsx from 'clsx';\n\ninterface ContainerProps {\n className?: string;\n children: ReactNode;\n spaced?: boolean;\n centered?: boolean;\n}\n\nexport const Container: React.FC = ({\n className,\n children,\n spaced = true,\n centered = true,\n}) => (\n \n {children}\n
\n);\n","import clsx from 'clsx';\n\ninterface DividerProps {\n color: 'neutral-200' | 'neutral-300';\n variant: 'horizontal' | 'vertical';\n className?: string;\n}\n\nexport const Divider: React.FC = ({\n color,\n variant,\n className,\n}) => {\n return (\n \n );\n};\n","import { createContext } from 'react';\n\ninterface FormContext {\n translations?: {\n optionalLabel?: string;\n };\n error?: string;\n}\n\nexport const FormContext = createContext({} as FormContext);\n","interface EmailInputProps {\n name: string;\n placeholder?: string;\n className?: string;\n required?: boolean;\n}\n\nexport const EmailInput: React.FC = ({\n placeholder,\n name,\n className,\n required,\n}) => (\n \n);\n","interface TelInputProps {\n name: string;\n placeholder?: string;\n className?: string;\n required?: boolean;\n}\n\nexport const TelInput: React.FC = ({\n placeholder,\n name,\n className,\n required,\n}) => (\n \n);\n","import { useCallback, useState } from 'react';\n\nimport clsx from 'clsx';\n\ninterface TextAreaInputProps {\n name: string;\n placeholder?: string;\n className?: string;\n required?: boolean;\n autoComplete?: string;\n}\n\nexport const TextAreaInput: React.FC = ({\n name,\n placeholder,\n required,\n className,\n autoComplete,\n}) => {\n const [count, setCount] = useState(0);\n const updateCount = useCallback(\n (e) => setCount(e.target.value.length),\n [setCount],\n );\n\n return (\n
\n \n \n {count} / 300\n \n
\n );\n};\n","import clsx from 'clsx';\nimport { graphql } from 'gatsby';\nimport { match } from 'ts-pattern';\n\nimport { EmailInput } from './EmailInput';\nimport { TelInput } from './TelInput';\nimport { TextAreaInput } from './TextAreaInput';\nimport { useFormContext } from './useFormContext';\n\ninterface FormInputProps {\n type?: 'text' | 'textarea' | 'email' | 'tel';\n data?: {\n label?: string;\n placeholder?: string;\n };\n name: string;\n required?: boolean;\n autoComplete?: string;\n className?: string;\n}\n\nexport const FormInput: React.FC = ({\n type = 'text',\n data,\n name,\n required,\n autoComplete,\n className,\n}) => {\n const { translations } = useFormContext();\n const inputClassName = clsx(\n 'flex items-center justify-start rounded-md border border-neutral-200 bg-white pl-3 py-2 shadow text-sm placeholder:text-sm placeholder:leading-6 placeholder:text-neutral-400 outline-none placeholder-shown:text-ellipsis invalid:border-red-600 invalid:placeholder-shown:border-neutral-200',\n !required && 'pr-20',\n className,\n );\n\n return (\n
\n \n {match(type)\n .with('textarea', () => (\n \n ))\n .with('email', () => (\n \n ))\n .with('tel', () => (\n \n ))\n .otherwise(() => (\n \n ))}\n\n {data?.label && (\n \n {data?.label}\n \n )}\n\n {!required && (\n \n ({translations?.optionalLabel})\n \n )}\n \n
\n );\n};\n","import { useCallback, useState } from 'react';\n\nimport { match } from 'ts-pattern';\n\nimport { FormContext } from './FormContext';\n\nenum FormState {\n FORM_INITIAL = 0,\n FORM_SUCCESS = 1,\n FORM_ERROR = 2,\n}\n\ninterface FormProps {\n children: React.ReactNode;\n onSubmit: (data: any) => Promise;\n className?: string;\n translations?: {\n optionalLabel?: string;\n };\n success?: React.ReactNode;\n}\n\nexport const Form: React.FC = ({\n onSubmit,\n className,\n translations,\n children,\n success,\n}) => {\n const [formState, setFormState] = useState(FormState.FORM_INITIAL);\n const [formError, setFormError] = useState(null);\n const finalOnSubmit = useCallback(\n async (e) => {\n e.preventDefault();\n\n const formData = new FormData(e.target);\n const formProps = Object.fromEntries(formData);\n\n return onSubmit(formProps)\n .then(() => setFormState(FormState.FORM_SUCCESS))\n .catch((error) => {\n setFormState(FormState.FORM_ERROR);\n setFormError(error);\n });\n },\n [onSubmit],\n );\n\n if (formState === FormState.FORM_SUCCESS && success) {\n return success;\n }\n\n return (\n \n
\n {children}\n
\n \n );\n};\n","import { useContext } from 'react';\n\nimport { FormContext } from './FormContext';\n\nconst useFormContext = () => {\n const context = useContext(FormContext);\n\n if (!context) {\n throw new Error(\n 'useFormContext must be used within a FormContext.Provider',\n );\n }\n\n return context;\n};\n\nexport { useFormContext };\n","import { CSSProperties } from 'react';\n\nimport clsx from 'clsx';\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image';\n\ninterface ImageProps {\n src?: string | object;\n className?: string;\n title?: string;\n fit?: CSSProperties['objectFit'];\n}\n\nexport const Image: React.FC = ({\n src,\n className,\n title = '',\n fit = 'cover',\n}) => {\n const imageSharp = getImage(src?.localFile);\n\n return imageSharp ? (\n \n ) : (\n \n );\n};\n","import { Link as GatsbyLink } from 'gatsby';\nimport { match } from 'ts-pattern';\n\nimport { usePageContext } from '@hooks/usePageContext';\n\nexport type SharedProps = {\n href: string;\n className?: string;\n locale?: string;\n};\n\nexport type LinkWithLabel = SharedProps & {\n label: string;\n children?: never;\n};\n\nexport type LinkWithChildren = SharedProps & {\n label?: never;\n children: React.ReactNode;\n};\n\nexport type LinkProps = LinkWithLabel | LinkWithChildren;\n\nexport const Link: React.FC = ({\n href,\n label,\n className,\n children,\n locale: forcedLocale,\n}) => {\n const { locale } = usePageContext();\n\n const finalLocale = forcedLocale || locale;\n const isExternal = !!(href && href.startsWith('http'));\n const finalHref = isExternal\n ? href\n : match(finalLocale)\n .with('en', () => {\n return href;\n })\n .otherwise(() => {\n if (!href) {\n return '';\n }\n\n return href.startsWith('#')\n ? `/${finalLocale}/${href}`\n : `/${finalLocale}${href}`;\n });\n\n return match(isExternal)\n .with(true, () => (\n \n {label || children}\n \n ))\n .with(false, () => (\n \n {label || children}\n \n ))\n .exhaustive();\n};\n","import { createContext } from 'react';\n\ninterface PageContext {\n locale: string;\n navigation?: {\n home?: NavigationNode;\n sectors?: NavigationNode;\n services?: NavigationNode;\n startups?: NavigationNode;\n news?: NavigationNode;\n discover_us?: NavigationNode;\n contact?: NavigationNode;\n we_recruit?: NavigationNode;\n social?: NavigationNode;\n legal_terms?: NavigationNode;\n privacy_policy?: NavigationNode;\n footer?: NavigationNode;\n footer_email_description?: string;\n footer_email_placeholder?: string;\n footer_email_button?: string;\n footer_copyright?: string;\n };\n uri: string;\n languageSwitchRoute: NavigationNode;\n parent?: string;\n entity?: {\n [key: string]: any;\n };\n relatedEntities?: { [key: string]: any }[];\n}\n\nexport const PageContext = createContext({} as PageContext);\n","export const extractMarkdown = (field?: Markdown | string) => {\n if (typeof field === 'string') {\n return field;\n }\n\n const { data } = field || {};\n\n return wrapLiContentWithSpan(data?.childMarkdownRemark?.html || '');\n};\n\n/**\n * Wraps the content of each
  • element in a given HTML string with a with specific class attributes\n * Allows to have a single tag for styling\n *\n * @param htmlString - the HTML string to be processed\n * @returns a new HTML string with
  • contents wrapped in a \n */\nconst wrapLiContentWithSpan = (htmlString: string): string => {\n // TODO: fix mismatch with server\n if (typeof window === 'undefined') {\n return htmlString;\n }\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(htmlString, 'text/html');\n const listItems = doc.querySelectorAll('li');\n\n listItems.forEach((li) => {\n const span = doc.createElement('span');\n\n // Move the existing contents of
  • into the \n while (li.firstChild) {\n span.appendChild(li.firstChild);\n }\n\n // Append the to the
  • \n li.appendChild(span);\n });\n\n return doc.body.innerHTML;\n};\n","import { ReactNode, memo } from 'react';\n\nimport clsx from 'clsx';\nimport { match } from 'ts-pattern';\n\nimport { extractMarkdown } from '@utils/markdown';\n\ninterface TypographyProps {\n children: Markdown | ReactNode;\n variant?:\n | 'body1'\n | 'button'\n | 'caption'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'inherit'\n | 'overline'\n | 'subtitle1'\n | 'subtitle2'\n | 'subtitle3';\n className?: string;\n markdown?: boolean;\n}\n\nexport const Typography: React.FC = memo(\n ({ variant, markdown, className, children }) => {\n const text = (\n markdown ? (\n \n ) : (\n children\n )\n ) as ReactNode;\n\n return match(variant)\n .with('overline', () => (\n \n {text}\n \n ))\n .with('h1', () => (\n \n {text}\n \n ))\n .with('h2', () => (\n

    \n {text}\n

    \n ))\n .with('h3', () => (\n \n {text}\n \n ))\n .with('h4', () => (\n \n {text}\n \n ))\n .with('h5', () => (\n \n {text}\n \n ))\n .with('h6', () =>
    {text}
    )\n .with('subtitle1', () => (\n \n {text}\n \n ))\n .with('subtitle2', () => (\n \n {text}\n \n ))\n .with('subtitle3', () => (\n \n {text}\n \n ))\n .with('body1', () => (\n

    \n {text}\n

    \n ))\n .otherwise(() => (\n \n {text}\n \n ));\n },\n);\n","import { useContext } from 'react';\n\nimport { PageContext } from '@components/PageContext';\n\nconst usePageContext = () => {\n const context = useContext(PageContext);\n\n if (!context) {\n throw new Error(\n 'usePageContext must be used within a PageContext.Provider',\n );\n }\n\n return context;\n};\n\nexport { usePageContext };\n","import { Link } from './Link';\n\ninterface BadgeProps {\n label: string;\n href?: string;\n}\n\nexport const Badge: React.FC = ({ label, href }) => {\n const Wrapper = href ? Link : 'div';\n\n return (\n \n {label}\n \n );\n};\n","import { usePageContext } from '@hooks/usePageContext';\n\nimport MailIcon from '@assets/icons/mail.svg';\n\nimport { Button } from './Button';\nimport { Form } from './Form';\nimport { FormInput } from './Form/FormInput';\nimport { Typography } from './Typography';\n\nexport const FooterForm: React.FC<{}> = () => {\n const { navigation = {} } = usePageContext();\n const { footer_form_redirection } = navigation;\n\n return (\n {\n // return Promise.reject('Erreur: description claire de l’erreur');\n return Promise.resolve();\n }}\n >\n \n {navigation?.footer_email_description}\n \n\n \n footer_form_redirection?.href &&\n window.open(footer_form_redirection.href, '_blank').focus()\n }\n >\n \n \n
  • \n \n );\n};\n","import ClientLogo from '@assets/images/Logo.svg';\n\nexport const Logo: React.FC<{}> = () => (\n \n);\n","import { usePageContext } from '@hooks/usePageContext';\n\nimport { Badge } from './Badge';\nimport { Container } from './Container';\nimport { Divider } from './Divider';\nimport { FooterForm } from './FooterForm';\nimport { Image } from './Image';\nimport { Link } from './Link';\nimport { Logo } from './Logo';\nimport { Typography } from './Typography';\n\nexport const Footer: React.FC<{}> = () => {\n const { navigation = {} } = usePageContext();\n const {\n home = {},\n footer = [],\n we_recruit = {},\n social = [],\n legal_terms = {},\n privacy_policy = {},\n footer_copyright,\n } = navigation;\n\n return (\n
    \n \n
    \n
    \n \n \n \n\n
    \n {footer?.map((el: NavigationNode, index) => (\n
    \n \n {el.label}\n \n\n {index === footer.length - 1 && (\n \n )}\n
    \n ))}\n
    \n
    \n\n \n
    \n\n \n\n
    \n
    \n {social?.map((el: NavigationNode) => (\n \n \n \n ))}\n
    \n\n
    \n \n {legal_terms?.label}\n \n\n \n {privacy_policy?.label}\n \n\n \n {footer_copyright}\n \n
    \n
    \n
    \n
    \n );\n};\n","import { usePageContext } from '@hooks/usePageContext';\n\nimport FrenchFlag from '@assets/icons/Country-FR.svg';\nimport EnglishFlag from '@assets/icons/Country-GB.svg';\n\nimport { Link } from './Link';\n\nconst FlagMap = {\n en: EnglishFlag,\n fr: FrenchFlag,\n};\n\nconst LocaleMap = {\n en: 'fr',\n fr: 'en',\n};\n\nexport const LanguageSwitch: React.FC<{}> = () => {\n const { locale, languageSwitchRoute } = usePageContext();\n const Flag = FlagMap?.[LocaleMap?.[locale]];\n\n return (\n \n {Flag && }\n\n \n {LocaleMap?.[locale]}\n \n \n );\n};\n","import clsx from 'clsx';\n\nimport { Link } from '../Link';\n\nexport type NavigationLinkProps = {\n href: string;\n label: string;\n className?: string;\n};\n\nexport const NavigationLink: React.FC = ({\n href,\n label,\n className,\n}) => (\n \n {label}\n \n);\n","import { useCallback, useState } from 'react';\n\nimport UpIcon from '@assets/icons/cheveron-up.svg';\n\nimport { NavigationLink, NavigationLinkProps } from './NavigationLink';\n\ntype NavigationSelectProps = {\n label: string;\n items: NavigationLinkProps[];\n};\n\n// TODO: see for mobile navigation select using details/summary\nexport const NavigationSelect: React.FC = ({\n label,\n items,\n}) => {\n const [visible, setVisible] = useState(false);\n const toggleVisible = useCallback(() => {\n setVisible((value) => !value);\n }, [setVisible]);\n const handleMouseEnter = useCallback(() => {\n setVisible(true);\n }, [setVisible]);\n\n const handleMouseLeave = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n\n return (\n \n \n {label}\n\n \n
    \n\n \n {items?.map((item, index) => (\n \n ))}\n \n \n );\n};\n","import { usePageContext } from '@hooks/usePageContext';\n\nimport { NavigationLink } from './NavigationLink';\nimport { NavigationSelect } from './NavigationSelect';\n\nexport const NavigationRoutes: React.FC<{}> = () => {\n const { navigation = {} } = usePageContext();\n const { sectors, services, news, discover_us } = navigation;\n\n const routes = Object.values({\n sectors,\n services,\n news,\n discover_us,\n }).map((route) => route);\n\n return routes?.map((route: any) => {\n const { href, label, items } = route || {};\n\n if (typeof items !== 'undefined') {\n return ;\n }\n\n if (!href) {\n return null;\n }\n\n return ;\n });\n};\n","import { usePageContext } from '@hooks/usePageContext';\n\nimport { LanguageSwitch } from '@components/LanguageSwitch';\n\nimport { Button } from '../Button';\nimport { Divider } from '../Divider';\nimport { NavigationRoutes } from './NavigationRoutes';\n\nexport const NavigationDesktop: React.FC<{}> = () => {\n const { navigation } = usePageContext();\n\n return (\n <>\n \n\n \n\n
    \n \n
    \n\n \n \n );\n};\n","import * as React from \"react\";\nfunction Bars3Icon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M2 4.75A.75.75 0 012.75 4h14.5a.75.75 0 010 1.5H2.75A.75.75 0 012 4.75zM2 10a.75.75 0 01.75-.75h14.5a.75.75 0 010 1.5H2.75A.75.75 0 012 10zm0 5.25a.75.75 0 01.75-.75h14.5a.75.75 0 010 1.5H2.75a.75.75 0 01-.75-.75z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = React.forwardRef(Bars3Icon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction XMarkIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z\"\n }));\n}\nconst ForwardRef = React.forwardRef(XMarkIcon);\nexport default ForwardRef;","import { useCallback, useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Bars3Icon, XMarkIcon } from '@heroicons/react/20/solid';\nimport { globalHistory } from '@reach/router';\n\nimport { usePageContext } from '@hooks/usePageContext';\n\nimport { LanguageSwitch } from '@components/LanguageSwitch';\n\nimport { Button } from '../Button';\nimport { Divider } from '../Divider';\nimport { NavigationRoutes } from './NavigationRoutes';\n\ninterface NavigationMobileProps {\n onMenuOpen: (value: boolean) => void;\n}\n\nexport const NavigationMobile: React.FC = ({\n onMenuOpen,\n}) => {\n const { navigation } = usePageContext();\n const [open, setOpen] = useState(false);\n const toggleOpen = useCallback(() => {\n setOpen((open: boolean) => {\n const body = document.querySelector('body');\n const container = document.documentElement;\n\n if (!body || !container) {\n return open;\n }\n\n body.classList.toggle('overflow-hidden');\n\n // disable shadow effect when menu open\n onMenuOpen(open ? container.scrollTop > 56 : open);\n\n return !open;\n });\n }, [onMenuOpen, setOpen]);\n\n useEffect(() => {\n return globalHistory.listen(({ action }) => {\n if (action === 'PUSH') {\n const body = document.querySelector('body');\n const container = document.documentElement;\n\n setOpen(false);\n\n if (body) {\n body.classList.remove('overflow-hidden');\n }\n\n if (container) {\n onMenuOpen(false);\n }\n }\n });\n }, [setOpen]);\n\n return (\n <>\n \n {!open ? (\n \n ) : (\n \n )}\n \n\n {open &&\n createPortal(\n
    \n \n
    \n \n
    \n \n\n \n
    ,\n document.getElementById('nav-mobile'),\n )}\n \n );\n};\n","export const Spacer: React.FC<{}> = () =>
    ;\n","import { useCallback, useEffect, useState } from 'react';\n\nimport { debounce } from 'lodash';\n\nimport { usePageContext } from '@hooks/usePageContext';\n\nimport { Badge } from './Badge';\nimport { Container } from './Container';\nimport { Link } from './Link';\nimport { Logo } from './Logo';\nimport { NavigationDesktop } from './Navigation/NavigationDesktop';\nimport { NavigationMobile } from './Navigation/NavigationMobile';\nimport { Spacer } from './Spacer';\n\nexport const Header: React.FC<{}> = () => {\n const { navigation = {} } = usePageContext();\n const { home = {}, we_recruit = {} } = navigation;\n\n const [scrolled, setScrolled] = useState(false);\n\n const updateScroll = useCallback(() => {\n requestAnimationFrame(() => {\n const body = document.querySelector('body');\n const container = document.documentElement;\n\n if (!body || !container) {\n return;\n }\n\n setScrolled(\n !body.classList.contains('overflow-hidden') && container.scrollTop > 56,\n );\n });\n }, [setScrolled]);\n const debouncedUpdate = debounce(updateScroll, 100, { maxWait: 300 });\n\n useEffect(() => {\n const container = document.documentElement;\n if (!container) {\n return;\n }\n\n container.addEventListener('scroll', debouncedUpdate);\n container.addEventListener('touchend', debouncedUpdate);\n\n return () => {\n container.removeEventListener('scroll', debouncedUpdate);\n container.removeEventListener('touchend', debouncedUpdate);\n };\n }, [debouncedUpdate]);\n\n return (\n
    \n \n \n \n \n \n\n
    \n {we_recruit?.href && (\n \n )}\n
    \n\n \n\n
    \n \n
    \n\n
    \n \n
    \n
    \n \n\n
    \n
    \n );\n};\n","import { useEffect } from 'react';\n\nimport { PageProps, navigate } from 'gatsby';\n\nimport { usePageContext } from '@hooks/usePageContext';\n\nimport { Footer } from '@components/Footer';\nimport { Header } from '@components/Header';\nimport { PageContext } from '@components/PageContext';\n\nconst getRedirectLanguage = () => {\n if (typeof navigator === `undefined`) {\n return 'en';\n }\n\n const lang =\n navigator && navigator.language && navigator.language.split('-')[0];\n if (!lang) return 'en';\n\n switch (lang) {\n case 'fr':\n return 'fr';\n default:\n return 'en';\n }\n};\n\nconst buildRedirectUrl = (urlLang: string, context: object) => {\n const isNonEnglish = urlLang !== 'en';\n const baseHref = context?.languageSwitchRoute?.href;\n\n if (!baseHref) {\n return null\n }\n\n return isNonEnglish ? `/${urlLang}${baseHref}` : baseHref;\n};\n\nexport const Layout: React.FC = ({\n children,\n pageContext,\n location,\n path,\n uri,\n}) => {\n useEffect(() => {\n const urlLang = getRedirectLanguage();\n\n if (urlLang !== pageContext?.locale) {\n const hasTranslatedEquivalent = buildRedirectUrl(urlLang, pageContext)\n\n if (!hasTranslatedEquivalent) {\n return\n }\n \n navigate(buildRedirectUrl(urlLang, pageContext), { replace: true });\n }\n }, []);\n\n return (\n \n \n
    \n
    {children}
    \n
    \n
    \n \n );\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `