{"version":3,"file":"app-b346850b3d418edd5444.js","mappings":"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","sources":["webpack://allie-web/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://allie-web/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://allie-web/./node_modules/camelcase/index.js","webpack://allie-web/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://allie-web/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://allie-web/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://allie-web/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://allie-web/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://allie-web/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://allie-web/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://allie-web/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://allie-web/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://allie-web/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://allie-web/./node_modules/common-tags/es/html/html.js","webpack://allie-web/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://allie-web/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://allie-web/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://allie-web/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://allie-web/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://allie-web/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://allie-web/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://allie-web/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://allie-web/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://allie-web/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://allie-web/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://allie-web/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://allie-web/./node_modules/i18next/dist/esm/i18next.js","webpack://allie-web/./node_modules/react-i18next/dist/es/unescape.js","webpack://allie-web/./node_modules/react-i18next/dist/es/context.js","webpack://allie-web/./node_modules/gatsby-link/index.js","webpack://allie-web/./node_modules/gatsby-link/parse-path.js","webpack://allie-web/./node_modules/gatsby-react-router-scroll/index.js","webpack://allie-web/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://allie-web/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://allie-web/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://allie-web/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://allie-web/./.cache/api-runner-browser-plugins.js","webpack://allie-web/./.cache/api-runner-browser.js","webpack://allie-web/./node_modules/mitt/dist/mitt.es.js","webpack://allie-web/./.cache/emitter.js","webpack://allie-web/./.cache/normalize-page-path.js","webpack://allie-web/./.cache/find-path.js","webpack://allie-web/./.cache/gatsby-browser-entry.js","webpack://allie-web/./.cache/prefetch.js","webpack://allie-web/./.cache/loader.js","webpack://allie-web/./.cache/page-renderer.js","webpack://allie-web/./.cache/route-announcer-props.js","webpack://allie-web/./.cache/navigation.js","webpack://allie-web/./node_modules/shallow-compare/es/index.js","webpack://allie-web/./.cache/ensure-resources.js","webpack://allie-web/./.cache/production-app.js","webpack://allie-web/./.cache/public-page-renderer-prod.js","webpack://allie-web/./.cache/public-page-renderer.js","webpack://allie-web/./.cache/react-lifecycles-compat.js","webpack://allie-web/./.cache/redirect-utils.js","webpack://allie-web/./.cache/register-service-worker.js","webpack://allie-web/./.cache/strip-prefix.js","webpack://allie-web/./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","webpack://allie-web/./node_modules/i18next-xhr-backend/dist/esm/i18nextXHRBackend.js","webpack://allie-web/./src/services/i18n.js","webpack://allie-web/./gatsby-browser.js","webpack://allie-web/./wrap-root-element.js","webpack://allie-web/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://allie-web/../src/image-utils.ts","webpack://allie-web/../src/components/hooks.ts","webpack://allie-web/../src/components/layout-wrapper.tsx","webpack://allie-web/../src/components/picture.tsx","webpack://allie-web/../src/components/placeholder.tsx","webpack://allie-web/../src/components/main-image.tsx","webpack://allie-web/../src/components/gatsby-image.server.tsx","webpack://allie-web/../src/components/gatsby-image.browser.tsx","webpack://allie-web/../src/components/static-image.server.tsx","webpack://allie-web/../src/components/static-image.tsx","webpack://allie-web/../src/components/later-hydrator.tsx","webpack://allie-web/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://allie-web/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://allie-web/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://allie-web/./src/configs/envConfig.js","webpack://allie-web/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://allie-web/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://allie-web/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://allie-web/./node_modules/invariant/browser.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/createClass.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/extends.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/typeof.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://allie-web/./node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n return {\n get location() {\n return location;\n },\n get transitioning() {\n return transitioning;\n },\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\nvar _invariant = require(\"invariant\");\nvar _invariant2 = _interopRequireDefault(_invariant);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n var dynamicMatch = paramRe.exec(routeSegment);\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","'use strict';\n\nvar preserveCamelCase = function preserveCamelCase(string) {\n var isLastCharLower = false;\n var isLastCharUpper = false;\n var isLastLastCharUpper = false;\n for (var i = 0; i < string.length; i++) {\n var character = string[i];\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n return string;\n};\nvar camelCase = function camelCase(input, options) {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n options = Object.assign({\n pascalCase: false\n }, options);\n var postProcess = function postProcess(x) {\n return options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n };\n if (Array.isArray(input)) {\n input = input.map(function (x) {\n return x.trim();\n }).filter(function (x) {\n return x.length;\n }).join('-');\n } else {\n input = input.trim();\n }\n if (input.length === 0) {\n return '';\n }\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n var hasUpperCase = input !== input.toLowerCase();\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n input = input.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, function (_, p1) {\n return p1.toUpperCase();\n }).replace(/\\d+(\\w|$)/g, function (m) {\n return m.toUpperCase();\n });\n return postProcess(input);\n};\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n _classCallCheck(this, TemplateTag);\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n }\n\n // else, return a transformed end result of processing the template with our tag\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n };\n\n // if first argument is an array, extrude it as a list of transformers\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n }\n\n // if any transformers are functions, this means they are not initiated - automatically initiate them\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n });\n\n // return an ES2015 template tag\n return this.tag;\n }\n\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n return this.transformers.reduce(cb, str);\n }\n\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n return this.transformers.reduce(cb, substitution);\n }\n\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n return TemplateTag;\n}();\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial;\n // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n }\n // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n return substitution;\n }\n };\n};\nexport default inlineArrayTransformer;","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n return endResult;\n }\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n throw new Error('Unknown type: ' + type);\n }\n };\n};\nexport default stripIndentTransformer;","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n side = side.toLowerCase();\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n throw new Error('Side not supported: ' + side);\n }\n };\n};\nexport default trimResultTransformer;","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n return substitution;\n }\n };\n};\nexport default splitStringTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsOr;","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n if (isValidValue(substitution)) {\n return substitution;\n }\n return '';\n }\n };\n};\nexport default removeNonPrintingValuesTransformer;","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n }\n\n // Do not touch if null or undefined\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\nexport default replaceSubstitutionTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default html;","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\nexport default replaceResultTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\nexport default safeHtml;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\nexport default oneLine;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\nexport default oneLineTrim;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsOr;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default inlineLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineInlineLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\nexport default stripIndent;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\nexport default stripIndents;","\"use strict\";\n\nmodule.exports = Object.assign;","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Logger);\n this.init(concreteLogger, options);\n }\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n return Logger;\n}();\nvar baseLogger = new Logger();\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.observers = {};\n }\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n return EventEmitter;\n}();\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n function ResourceStore(data) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _classCallCheck(this, ResourceStore);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n return _this;\n }\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n return ResourceStore;\n}(EventEmitter);\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n function Translator(services) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Translator);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n return key;\n }\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread({}, options, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread({}, options, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n return null;\n }\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n var possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(code);\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this.formatLanguageCode(code);\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this.getLanguagePartFromCode(code);\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n return LanguageUtil;\n}();\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, PluralResolver);\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n var rule = this.getRule(code);\n if (!rule) {\n return [];\n }\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n var rule = this.getRule(code);\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n return PluralResolver;\n}();\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Interpolator);\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\n }\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread({}, options, data, {\n interpolationkey: key\n })) : path;\n }\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread({}, options, data, {\n interpolationkey: k\n }));\n };\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions = _objectSpread({}, options);\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread({}, options, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n function Connector(backend, store, services) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _classCallCheck(this, Connector);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ;else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n return Connector;\n}(EventEmitter);\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n options.supportedLngs = options.whitelist;\n }\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\nfunction noop() {}\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n function I18n() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _classCallCheck(this, I18n);\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n return _this2;\n };\n });\n var deferred = defer();\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n _this2.emit('initialized', _this2.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.translator.changeLanguage(l);\n _this4.isLanguageChangingTo = undefined;\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n var deferred = defer();\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages\n };\n }\n }]);\n return I18n;\n}(EventEmitter);\nvar i18next = new I18n();\nexport default i18next;","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n this.usedNamespaces = {};\n }\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-about-us-about-hkpca-js\": () => import(\"./../../../src/pages/about-us/about-hkpca.js\" /* webpackChunkName: \"component---src-pages-about-us-about-hkpca-js\" */),\n \"component---src-pages-about-us-article-of-association-js\": () => import(\"./../../../src/pages/about-us/article-of-association.js\" /* webpackChunkName: \"component---src-pages-about-us-article-of-association-js\" */),\n \"component---src-pages-about-us-executive-committee-js\": () => import(\"./../../../src/pages/about-us/executive-committee.js\" /* webpackChunkName: \"component---src-pages-about-us-executive-committee-js\" */),\n \"component---src-pages-about-us-index-js\": () => import(\"./../../../src/pages/about-us/index.js\" /* webpackChunkName: \"component---src-pages-about-us-index-js\" */),\n \"component---src-pages-about-us-message-from-the-president-js\": () => import(\"./../../../src/pages/about-us/message-from-the-president.js\" /* webpackChunkName: \"component---src-pages-about-us-message-from-the-president-js\" */),\n \"component---src-pages-contact-us-js\": () => import(\"./../../../src/pages/contact-us.js\" /* webpackChunkName: \"component---src-pages-contact-us-js\" */),\n \"component---src-pages-custom-list-js\": () => import(\"./../../../src/pages/custom-list.js\" /* webpackChunkName: \"component---src-pages-custom-list-js\" */),\n \"component---src-pages-custom-page-js\": () => import(\"./../../../src/pages/custom-page.js\" /* webpackChunkName: \"component---src-pages-custom-page-js\" */),\n \"component---src-pages-custom-post-js\": () => import(\"./../../../src/pages/custom-post.js\" /* webpackChunkName: \"component---src-pages-custom-post-js\" */),\n \"component---src-pages-disclaimer-js\": () => import(\"./../../../src/pages/disclaimer.js\" /* webpackChunkName: \"component---src-pages-disclaimer-js\" */),\n \"component---src-pages-ebook-js\": () => import(\"./../../../src/pages/ebook.js\" /* webpackChunkName: \"component---src-pages-ebook-js\" */),\n \"component---src-pages-event-detail-js\": () => import(\"./../../../src/pages/event/detail.js\" /* webpackChunkName: \"component---src-pages-event-detail-js\" */),\n \"component---src-pages-event-exhibition-js\": () => import(\"./../../../src/pages/event/exhibition.js\" /* webpackChunkName: \"component---src-pages-event-exhibition-js\" */),\n \"component---src-pages-event-index-js\": () => import(\"./../../../src/pages/event/index.js\" /* webpackChunkName: \"component---src-pages-event-index-js\" */),\n \"component---src-pages-event-other-activities-js\": () => import(\"./../../../src/pages/event/other-activities.js\" /* webpackChunkName: \"component---src-pages-event-other-activities-js\" */),\n \"component---src-pages-event-seminar-training-js\": () => import(\"./../../../src/pages/event/seminar-training.js\" /* webpackChunkName: \"component---src-pages-event-seminar-training-js\" */),\n \"component---src-pages-exhibition-detail-js\": () => import(\"./../../../src/pages/exhibition/detail.js\" /* webpackChunkName: \"component---src-pages-exhibition-detail-js\" */),\n \"component---src-pages-exhibition-iec-exhibition-js\": () => import(\"./../../../src/pages/exhibition/iec-exhibition.js\" /* webpackChunkName: \"component---src-pages-exhibition-iec-exhibition-js\" */),\n \"component---src-pages-exhibition-index-js\": () => import(\"./../../../src/pages/exhibition/index.js\" /* webpackChunkName: \"component---src-pages-exhibition-index-js\" */),\n \"component---src-pages-exhibition-other-exhibition-js\": () => import(\"./../../../src/pages/exhibition/other-exhibition.js\" /* webpackChunkName: \"component---src-pages-exhibition-other-exhibition-js\" */),\n \"component---src-pages-form-download-detail-js\": () => import(\"./../../../src/pages/form-download-detail.js\" /* webpackChunkName: \"component---src-pages-form-download-detail-js\" */),\n \"component---src-pages-form-download-js\": () => import(\"./../../../src/pages/form-download.js\" /* webpackChunkName: \"component---src-pages-form-download-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-job-opportunities-js\": () => import(\"./../../../src/pages/job-opportunities.js\" /* webpackChunkName: \"component---src-pages-job-opportunities-js\" */),\n \"component---src-pages-job-opportunity-detail-js\": () => import(\"./../../../src/pages/job-opportunity-detail.js\" /* webpackChunkName: \"component---src-pages-job-opportunity-detail-js\" */),\n \"component---src-pages-journal-detail-js\": () => import(\"./../../../src/pages/journal-detail.js\" /* webpackChunkName: \"component---src-pages-journal-detail-js\" */),\n \"component---src-pages-journal-js\": () => import(\"./../../../src/pages/journal.js\" /* webpackChunkName: \"component---src-pages-journal-js\" */),\n \"component---src-pages-link-exchange-js\": () => import(\"./../../../src/pages/link-exchange.js\" /* webpackChunkName: \"component---src-pages-link-exchange-js\" */),\n \"component---src-pages-market-information-detail-js\": () => import(\"./../../../src/pages/market-information/detail.js\" /* webpackChunkName: \"component---src-pages-market-information-detail-js\" */),\n \"component---src-pages-market-information-ep-policies-js\": () => import(\"./../../../src/pages/market-information/ep-policies.js\" /* webpackChunkName: \"component---src-pages-market-information-ep-policies-js\" */),\n \"component---src-pages-market-information-index-js\": () => import(\"./../../../src/pages/market-information/index.js\" /* webpackChunkName: \"component---src-pages-market-information-index-js\" */),\n \"component---src-pages-market-information-market-news-js\": () => import(\"./../../../src/pages/market-information/market-news.js\" /* webpackChunkName: \"component---src-pages-market-information-market-news-js\" */),\n \"component---src-pages-market-information-marketing-research-js\": () => import(\"./../../../src/pages/market-information/marketing-research.js\" /* webpackChunkName: \"component---src-pages-market-information-marketing-research-js\" */),\n \"component---src-pages-market-information-technical-article-js\": () => import(\"./../../../src/pages/market-information/technical-article.js\" /* webpackChunkName: \"component---src-pages-market-information-technical-article-js\" */),\n \"component---src-pages-member-index-js\": () => import(\"./../../../src/pages/member/index.js\" /* webpackChunkName: \"component---src-pages-member-index-js\" */),\n \"component---src-pages-member-join-event-js\": () => import(\"./../../../src/pages/member/join-event.js\" /* webpackChunkName: \"component---src-pages-member-join-event-js\" */),\n \"component---src-pages-member-join-us-js\": () => import(\"./../../../src/pages/member/join-us.js\" /* webpackChunkName: \"component---src-pages-member-join-us-js\" */),\n \"component---src-pages-member-member-list-js\": () => import(\"./../../../src/pages/member/member-list.js\" /* webpackChunkName: \"component---src-pages-member-member-list-js\" */),\n \"component---src-pages-member-member-news-detail-js\": () => import(\"./../../../src/pages/member/member-news/detail.js\" /* webpackChunkName: \"component---src-pages-member-member-news-detail-js\" */),\n \"component---src-pages-member-member-news-list-js\": () => import(\"./../../../src/pages/member/member-news/list.js\" /* webpackChunkName: \"component---src-pages-member-member-news-list-js\" */),\n \"component---src-pages-news-detail-js\": () => import(\"./../../../src/pages/news/detail.js\" /* webpackChunkName: \"component---src-pages-news-detail-js\" */),\n \"component---src-pages-news-index-js\": () => import(\"./../../../src/pages/news/index.js\" /* webpackChunkName: \"component---src-pages-news-index-js\" */),\n \"component---src-pages-partner-js\": () => import(\"./../../../src/pages/partner.js\" /* webpackChunkName: \"component---src-pages-partner-js\" */),\n \"component---src-pages-photo-js\": () => import(\"./../../../src/pages/photo.js\" /* webpackChunkName: \"component---src-pages-photo-js\" */),\n \"component---src-pages-post-detail-js\": () => import(\"./../../../src/pages/post-detail.js\" /* webpackChunkName: \"component---src-pages-post-detail-js\" */),\n \"component---src-pages-search-result-js\": () => import(\"./../../../src/pages/search-result.js\" /* webpackChunkName: \"component---src-pages-search-result-js\" */),\n \"component---src-pages-survey-detail-js\": () => import(\"./../../../src/pages/survey-detail.js\" /* webpackChunkName: \"component---src-pages-survey-detail-js\" */),\n \"component---src-pages-survey-js\": () => import(\"./../../../src/pages/survey.js\" /* webpackChunkName: \"component---src-pages-survey-js\" */),\n \"component---src-pages-test-js\": () => import(\"./../../../src/pages/test.js\" /* webpackChunkName: \"component---src-pages-test-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"UA-216816880-1\"],\"gtagConfig\":{\"anonymize_ip\":true},\"pluginConfig\":{\"head\":true}},\n },{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/images/icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"219452b1c1db04809810a7d422e56bd8\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\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 // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\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\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.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 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 page and it doesn't exist, we're done\n if (pagePath === `/404.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 Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // 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 false\n }\n\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 false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(pageData.path, {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).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 // window.___webpackCompilationHash gets set in production-app.js after navigationInit() is called\n // So on a direct visit of a page with a browser redirect this check is truthy and thus the codepath is hit\n // While the resource actually exists, but only too late\n // TODO: This should probably be fixed by setting ___webpackCompilationHash before navigationInit() is called\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 // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\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, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\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(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\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 ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // 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 !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\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 window.___webpackCompilationHash = page.page.webpackCompilationHash\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 renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, )\n } else {\n renderer(, rootElement)\n }\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += \"; Domain=\".concat(opt.domain);\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += \"; Path=\".concat(opt.path);\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n var query = search.substring(1);\n var params = query.split('&');\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\nvar hasLocalStorageSupport = null;\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\nvar hasSessionStorageSupport = null;\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n return found;\n }\n};\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n return found;\n }\n};\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1; // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i); // if there is no match (null) return undefined\n\n if (!language) return undefined; // return the given group match\n\n return language[lookupFromSubdomainIndex];\n }\n};\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Browser);\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n return Browser;\n}();\nBrowser.type = 'languageDetector';\nexport { Browser as default };","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '',\n e = encodeURIComponent; // Must encode data\n\n for (var paramName in params) {\n queryString += '&' + e(paramName) + '=' + e(params[paramName]);\n }\n if (!queryString) {\n return url;\n }\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n} // https://gist.github.com/Xeoncross/7663273\n\nfunction ajax(url, options, callback, data, cache) {\n if (data && _typeof(data) === 'object') {\n if (!cache) {\n data['_t'] = new Date();\n } // URL encoded form data must be in querystring format\n\n data = addQueryString('', data).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XMLHttpRequest) {\n x = new XMLHttpRequest();\n } else {\n x = new ActiveXObject('MSXML2.XMLHTTP.3.0');\n }\n x.open(data ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (data) {\n x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType(\"application/json\");\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n x.send(data);\n } catch (e) {\n console && console.log(e);\n }\n}\nfunction getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: JSON.parse,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n crossDomain: false,\n ajax: ajax\n };\n}\nvar Backend = /*#__PURE__*/\nfunction () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Backend);\n this.init(services, options);\n this.type = 'backend';\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback) {\n var _this = this;\n this.options.ajax(url, this.options, function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */);\n\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */);\n\n var ret, err;\n try {\n ret = _this.options.parse(data, url);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n if (err) return callback(err, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var _this2 = this;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n languages.forEach(function (lng) {\n var url = _this2.services.interpolator.interpolate(_this2.options.addPath, {\n lng: lng,\n ns: namespace\n });\n _this2.options.ajax(url, _this2.options, function (data, xhr) {//const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n }, payload);\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","import i18n from 'i18next'\r\nimport LanguageDetector from 'i18next-browser-languagedetector'\r\nimport { initReactI18next } from 'react-i18next'\r\nimport enTranslation from '@src/locales/en/translation.json'\r\nimport zhTwTranslation from '@src/locales/zh-tw/translation.json'\r\nimport backend from \"i18next-xhr-backend\"\r\nimport envConfig from '@src/configs/envConfig'\r\nimport { getLanguage } from '@src/utils/commonUtil'\r\n\r\nconst i18nURL = envConfig.apiHost + envConfig.basePath + envConfig.i18nPath + '{{lng}}'\r\n\r\ni18n\r\n .use(backend)\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n react: {\r\n useSuspense: false // <---- this will do the magic\r\n },\r\n backend: {\r\n loadPath: i18nURL,\r\n // allowMultiLoading: false,\r\n // crossDomain: true\r\n },\r\n // we init with resources\r\n // resources: {\r\n // en: {\r\n // translations: enTranslation\r\n // },\r\n // tc: {\r\n // translations: zhTwTranslation\r\n // }\r\n // },\r\n fallbackLng: 'en',\r\n lng: 'sc',\r\n debug: false,\r\n // have a common namespace used around the full app\r\n // ns: ['aboutUs', 'member'],\r\n // defaultNS: 'member',\r\n // keySeparator: true, // we use content as keys\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n })\r\n\r\nexport default i18n\r\n","import element from './wrap-root-element'\r\nimport '@src/styles/global.scss'\r\nimport '@src/styles/flex.scss'\r\n\r\n// import '@board-web/styles/home.scss'\r\n// import '@bill-web/styles/home.scss'\r\n// import '@bill-web/styles/fonts/flaticon.css'\r\n\r\nexport const wrapRootElement = element\r\n\r\n","import React from 'react'\r\nimport '@src/services/i18n'\r\n// import { MuiThemeProvider } from '@material-ui/core/styles'\r\n// import Layout from '@src/components/layouts/layout'\r\n// import RootStore from '@board-web/stores/RootStore'\r\n\r\n// import RootStore from '@bill-web/stores/RootStore'\r\n// import Layout from '@bill-web/components/layouts/layout'\r\n// import billTheme from '@bill-web/styles/themes/billTheme'\r\n\r\n// import RootStore from '@hkpca-web/stores/RootStore'\r\n// import Layout from '@hkpca-web/components/layouts/layout'\r\n\r\n// import RootStore from '@ef-web/stores/RootStore'\r\n// import Layout from '@ef-web/components/layouts/layout'\r\n\r\n\r\n\r\n// const rootStore = new RootStore()\r\n\r\nexport default ({ element }) => (\r\n <>\r\n {element}\r\n \r\n)\r\n","\"use strict\";\n\nexports.onRouteUpdate = function (_ref) {\n var location = _ref.location;\n\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null; // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(sendPageView);\n });\n } else {\n // simulate 2 rAF calls\n setTimeout(sendPageView, 32);\n }\n\n return null;\n};","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport camelCase from \"camelcase\"\nimport { IGatsbyImageData } from \".\"\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 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.substr(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(stripIndent`\n The 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","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\nconst imageCache = new Set()\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 function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type FileNode = Node & {\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\nexport type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData\nexport const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => {\n if (isGatsbyImageData(node)) {\n return node\n }\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\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 async function applyPolyfill(\n ref: RefObject\n): Promise {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\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 toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject,\n style: CSSProperties = {}\n): Partial {\n const onLoad: ReactEventHandler = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\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 onLoad,\n ref,\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 function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\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","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\nimport React, { Fragment, FunctionComponent } 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: string | null = null\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n if (layout === `constrained`) {\n sizer = `
\"\"
`\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 if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {\n // eslint-disable-next-line no-undef\n SERVER && \n }\n \n )\n }\n","/* eslint-disable filenames/match-regex */\nimport React, {\n FunctionComponent,\n ImgHTMLAttributes,\n forwardRef,\n LegacyRef,\n} 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 innerRef: LegacyRef\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 innerRef,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture = forwardRef(\n function Picture(\n { fallback, sources = [], shouldLoad = true, ...props },\n ref\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)\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 return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React, { forwardRef } from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage = forwardRef(\n function MainImage(props, ref) {\n return (\n <>\n \n \n \n )\n }\n)\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React, {\n ElementType,\n FunctionComponent,\n CSSProperties,\n WeakValidationMap,\n} from \"react\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\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\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImageHydrator: FunctionComponent<{\n as?: ElementType\n style?: CSSProperties\n className?: string\n}> = function GatsbyImageHydrator({ as: Type = `div`, children, ...props }) {\n return {children}\n}\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as,\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 if (preactClass) {\n className = preactClass\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 (\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 undefined,\n undefined,\n undefined,\n imgStyle\n )}\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 return PropTypes.string(props, propName, componentName, ...rest)\n}\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","/* eslint-disable no-unused-expressions */\nimport React, {\n Component,\n ElementType,\n createRef,\n MutableRefObject,\n FunctionComponent,\n ImgHTMLAttributes,\n RefObject,\n CSSProperties,\n} from \"react\"\nimport {\n getWrapperProps,\n hasNativeLazyLoadSupport,\n storeImageloaded,\n hasImageLoaded,\n gatsbyImageIsInstalled,\n} from \"./hooks\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport { Layout } from \"../image-utils\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport { Unobserver } from \"./intersection-observer\"\nimport { render } from \"react-dom\"\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?: () => void\n onError?: () => void\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\nclass GatsbyImageHydrator extends Component<\n GatsbyImageProps,\n { isLoading: boolean; isLoaded: boolean }\n> {\n root: RefObject = createRef<\n HTMLImageElement | undefined\n >()\n hydrated: MutableRefObject = { current: false }\n forceRender: MutableRefObject = {\n // In dev we use render not hydrate, to avoid hydration warnings\n current: process.env.NODE_ENV === `development`,\n }\n lazyHydrator: () => void | null = null\n ref = createRef()\n unobserveRef: Unobserver\n\n constructor(props) {\n super(props)\n\n this.state = {\n isLoading: hasNativeLazyLoadSupport(),\n isLoaded: false,\n }\n }\n\n _lazyHydrate(props, state): Promise {\n const hasSSRHtml = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n )\n // On first server hydration do nothing\n if (hasNativeLazyLoadSupport() && hasSSRHtml && !this.hydrated.current) {\n this.hydrated.current = true\n return Promise.resolve()\n }\n\n return import(`./lazy-hydrate`).then(({ lazyHydrate }) => {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading || hasImageLoaded(cacheKey),\n isLoaded: state.isLoaded || hasImageLoaded(cacheKey),\n toggleIsLoaded: () => {\n props.onLoad?.()\n\n this.setState({\n isLoaded: true,\n })\n },\n ref: this.ref,\n ...props,\n },\n this.root,\n this.hydrated,\n this.forceRender\n )\n })\n }\n\n /**\n * Choose if setupIntersectionObserver should use the image cache or not.\n */\n _setupIntersectionObserver(useCache = true): void {\n import(`./intersection-observer`).then(({ createIntersectionObserver }) => {\n const intersectionObserver = createIntersectionObserver(() => {\n if (this.root.current) {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.props.onStartLoad?.({\n wasCached: useCache && hasImageLoaded(cacheKey),\n })\n this.setState({\n isLoading: true,\n isLoaded: useCache && hasImageLoaded(cacheKey),\n })\n }\n })\n\n if (this.root.current) {\n this.unobserveRef = intersectionObserver(this.root)\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n let hasChanged = false\n if (!this.state.isLoading && nextState.isLoading && !nextState.isLoaded) {\n // Props have changed between SSR and hydration, so we need to force render instead of hydrate\n this.forceRender.current = true\n }\n // this check mostly means people do not have the correct ref checks in place, we want to reset some state to suppport loading effects\n if (this.props.image.images !== nextProps.image.images) {\n // reset state, we'll rely on intersection observer to reload\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n render(null, this.root.current)\n }\n }\n\n this.setState(\n {\n isLoading: false,\n isLoaded: false,\n },\n () => {\n this._setupIntersectionObserver(false)\n }\n )\n\n hasChanged = true\n }\n\n if (this.root.current && !hasChanged) {\n this._lazyHydrate(nextProps, nextState)\n }\n\n return false\n }\n\n componentDidMount(): void {\n if (this.root.current) {\n const ssrElement = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n const cacheKey = JSON.stringify(this.props.image.images)\n\n // when SSR and native lazyload is supported we'll do nothing ;)\n if (\n hasNativeLazyLoadSupport() &&\n ssrElement &&\n gatsbyImageIsInstalled()\n ) {\n this.props.onStartLoad?.({ wasCached: false })\n\n // When the image is already loaded before we have hydrated, we trigger onLoad and cache the item\n if (ssrElement.complete) {\n this.props.onLoad?.()\n storeImageloaded(cacheKey)\n } else {\n // We need the current class context (this) inside our named onLoad function\n // The named function is necessary to easily remove the listener afterward.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this\n // add an onLoad to the image\n ssrElement.addEventListener(`load`, function onLoad() {\n ssrElement.removeEventListener(`load`, onLoad)\n\n _this.props.onLoad?.()\n storeImageloaded(cacheKey)\n })\n }\n\n return\n }\n\n // Fallback to custom lazy loading (intersection observer)\n this._setupIntersectionObserver(true)\n }\n }\n\n componentWillUnmount(): void {\n // Cleanup when onmount happens\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n this.lazyHydrator()\n }\n }\n\n return\n }\n\n render(): JSX.Element {\n const Type = this.props.as || `div`\n const { width, height, layout } = this.props.image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n let className = this.props.className\n // preact class\n if (this.props.class) {\n className = this.props.class\n }\n\n const sizer = getSizer(layout, width, height)\n\n return (\n \n )\n }\n}\n\nexport const GatsbyImage: FunctionComponent =\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 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 const { className, class: classSafe, backgroundColor, image } = props\n const { width, height, layout } = image\n const propsKey = JSON.stringify([\n width,\n height,\n layout,\n className,\n classSafe,\n backgroundColor,\n ])\n return \n }\n\nGatsbyImage.propTypes = propTypes\n\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}\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 /* 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","import * as React from \"react\"\nexport function LaterHydrator({\n children,\n}: React.PropsWithChildren>): React.ReactNode {\n React.useEffect(() => {\n // eslint-disable-next-line no-unused-expressions\n import(`./lazy-hydrate`)\n }, [])\n\n return children\n}\n","import React from \"react\"\nimport { LaterHydrator } from \".\"\n\nexport function wrapRootElement({ element }) {\n return {element}\n}\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","module.exports = {\r\n App: process.env.APP,\r\n apiHost: process.env.API_HOST,\r\n basePath: process.env.BASE_PATH,\r\n baseUrl: process.env.BASE_URL,\r\n requestTimeout: process.env.REQUEST_TIMEOUT,\r\n i18nPath: process.env.I18N_PATH,\r\n}\r\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n var dynamicMatch = paramRe.exec(routeSegment);\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n return {\n get location() {\n return location;\n },\n get transitioning() {\n return transitioning;\n },\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n function LocationProvider() {\n var _temp, _this, _ret;\n _classCallCheck(this, LocationProvider);\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n var refs = this.state.refs,\n history = this.props.history;\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n return RouterImpl;\n}(React.PureComponent);\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n _classCallCheck(this, FocusHandlerImpl);\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n var requestFocus = this.props.requestFocus;\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n return FocusHandlerImpl;\n}(React.Component);\npolyfill(FocusHandlerImpl);\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n return RedirectImpl;\n}(React.Component);\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n return context.location;\n};\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n return context.navigate;\n};\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","/**\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","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","push","popstateListener","action","addEventListener","removeEventListener","filter","fn","navigate","to","_ref","undefined","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","Promise","res","forEach","createMemorySource","initialPath","searchIndex","indexOf","initialLocation","substr","index","stack","states","name","entries","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","document","createElement","globalHistory","exports","__esModule","shallowCompare","validateRedirect","insertParams","resolve","match","pick","startsWith","obj","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","slice","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","value","isDynamic","segment","test","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","Array","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","from","obj1","obj2","obj1Keys","keys","every","camelCase","input","isArray","TypeError","pascalCase","x","trim","toUpperCase","toLowerCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","p1","m","charAt","module","strings","raw","_createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","_templateObject","freeze","TemplateTag","_this","this","transformers","instance","_classCallCheck","tag","_len2","expressions","_key2","interimTag","bind","transformEndResult","transformString","processSubstitutions","transformer","previousTag","template","_len3","substitutions","_key3","apply","resultSoFar","remainingPart","substitution","transformSubstitution","shift","str","transform","onString","onSubstitution","endResult","onEndResult","defaults","separator","conjunction","serial","opts","arrayLength","indent","separatorIndex","lastIndexOf","type","min","arr","arr2","_toConsumableArray","el","regexp","RegExp","Error","side","splitBy","includes","isValidValue","Number","isNaN","replaceWhat","replaceWith","toString","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","consoleLogger","log","args","output","warn","error","console","Logger","concreteLogger","init","prefix","logger","debug","bool","forward","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","event","observer","defer","rej","promise","reject","makeString","object","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","deepExtend","overwrite","prop","String","regexEscape","_entityMap","s","isIE10","navigator","userAgent","deepFind","keySeparator","paths","current","j","p","mix","joinedPath","ResourceStore","_EventEmitter","ns","defaultNS","ignoreJSONStructure","splice","lng","result","silent","addNamespaces","emit","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","handle","translator","processor","process","checkedLoadedFor","Translator","services","t","copy","create","language","interpolation","resolved","nsSeparator","namespaces","interpolator","nestingRegexp","parts","lastKey","_this2","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","code","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","option","substring","capitalize","LanguageUtil","whitelist","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","deprecate","isSupportedCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","find","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","c","fc","sets","nr","_rulesPluralsTypes","n","PluralResolver","rules","set","numbers","plurals","rule","getRule","number","idx","noAbs","abs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","format","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","f","missingInterpolationHandler","regex","safeValue","todo","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","JSON","formatters","doReduce","r","elem","v","Connector","backend","store","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","err","addResourceBundle","_getLastOfPath2","what","remove","done","fcName","tried","wait","setTimeout","read","queueLoad","loadOne","prepareLoading","_this5","isUpdate","transformOptions","nonExplicitWhitelist","noop","I18n","modules","external","isInitialized","isClone","initImmediate","createClassOnDemand","ClassOrObject","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","_format","lu","on","languageDetector","detection","_this2$store","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","rest","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","enumerableOnly","symbols","getOwnPropertyDescriptors","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","unescape","text","I18nContext","createContext","getDefaults","ReportNamespaces","usedNamespaces","getI18n","initReactI18next","setDefaults","react","setI18n","_interopRequireDefault","withPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","_excluded","isAbsolutePath","_prefix","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","GatsbyLinkLocationWrapper","Location","_ref2","GatsbyLink","_location","_React$Component","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","Boolean","style","IOSupported","IntersectionObserver","handleRef","_proto","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","unobserve","disconnect","ref","cb","innerRef","entry","isIntersecting","intersectionRatio","observe","render","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","prefixedTo","Link","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","___navigate","Component","propTypes","func","isRequired","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","React","nodeInterop","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","_sessionStorage","WeakMap","cacheBabelInterop","cacheNodeInterop","SessionStorage","displayName","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","requestAnimationFrame","_saveScroll","windowScroll","position","shouldUpdateScroll","scrollTo","scrollToHash","node","getElementById","scrollIntoView","prevRouterProps","routerProps","save","scrollPosition","_this$props$location","_this$props$location2","Provider","children","element","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","storedValue","stringify","setItem","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","onScroll","scrollTop","components","plugin","require","plugins","_require$publicLoader","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","_typeof","previous","next","then","all","handler","off","evt","mitt","pathCache","Map","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","Consumer","useStaticQuery","_context$query","graphql","PropTypes","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","url","link","setAttribute","onload","onerror","getElementsByTagName","getElementsByName","parentNode","appendChild","req","XMLHttpRequest","open","status","preFetched","PageResourceStatus","Success","preferDefault","createPageDataUrl","fixedPath","stripSurroundingSlashes","__PATH_PREFIX__","doFetch","method","onreadystatechange","readyState","toPageResources","pageData","component","page","componentChunkName","webpackCompilationHash","staticQueryHashes","json","BaseLoader","loadComponent","_defineProperty","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","inFlightPromise","inFlightNetworkRequests","response","apiRunner","prefetchDisabled","some","loadObj","pagePath","_loadObj$retries","retries","memoizedGet","responseText","jsonPayload","payload","fetchPageDataJson","notFound","rawPath","loadAppData","loadPageDataJson","allData","_pageData","_pageData$staticQuery","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","_slicedToArray","emitter","withErrorDetails","connection","effectiveType","saveData","doesConnectionSupportPrefetch","shouldPrefetch","add","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","appData","___chunkMapping","chunk","ProdLoader","_BaseLoader","_inherits","_super","_createSuper","asyncRequires","chunkName","_get","_getPrototypeOf","componentUrls","setLoader","_loader","publicLoader","prefetch","isPageNotFound","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","id","top","width","height","padding","overflow","clip","whiteSpace","border","maybeRedirect","_window$location","___replace","nextRoute","reason","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","clearTimeout","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","_prevLocation$state","_nextLocation$state","RouteUpdates","_React$Component2","_super2","shallowDiffers","_i","EnsureResources","setState","nextState","setApiRunner","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","_window","browserLoc","message","SiteRoot","_ref4","App","onClientEntryRanRef","performance","mark","renderer","ReactDOM","hydrateRoot","runRender","rootElement","doc","documentElement","doScroll","ProdPageRenderer","InternalPageRenderer","polyfill","redirectMap","redirectIgnoreCaseMap","ignoreCase","fromPath","register","reg","installingWorker","installing","___failedResources","each","fieldContentRegExp","cookie","minutes","domain","cookieOptions","sameSite","expires","setTime","getTime","opt","encodeURIComponent","maxAge","floor","toUTCString","httpOnly","secure","serializeCookie","nameEQ","ca","cookie$1","lookup","lookupCookie","cookieMinutes","cookieDomain","querystring","pos","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","localStorage","testKey","removeItem","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","lookupSessionStorage","navigator$1","userLanguage","htmlTag","getAttribute","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","order","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","addQueryString","queryString","paramName","ajax","queryStringParams","ActiveXObject","crossDomain","setRequestHeader","withCredentials","overrideMimeType","h","customHeaders","Backend","loadPath","addPath","allowMultiLoading","parsePayload","loadUrl","xhr","i18nURL","envConfig","i18n","use","LanguageDetector","wrapRootElement","gtag","excludeGtagPaths","rx","sendPageView","page_path","I","HTMLImageElement","W","z","C","o","d","dataset","objectFit","objectPosition","objectFitPolyfill","loading","shouldLoad","opacity","onLoad","currentTarget","Image","src","currentSrc","decode","catch","backgroundColor","left","bottom","right","F","V","G","layout","paddingTop","maxWidth","display","alt","role","U","B","J","Y","srcSet","decoding","X","fallback","sources","sizes","u","media","Z","K","Q","$","tt","image","et","rt","root","hydrated","forceRender","lazyHydrator","unobserveRef","isLoading","isLoaded","constructor","_lazyHydrate","querySelector","lazyHydrate","images","toggleIsLoaded","_setupIntersectionObserver","createIntersectionObserver","onStartLoad","wasCached","shouldComponentUpdate","complete","class","dangerouslySetInnerHTML","__html","suppressHydrationWarning","it","at","nt","ot","st","lt","__imageData","__error","dt","LaterHydrator","localizedManifests","defaultFilename","localizedManifest","app","start_url","lang","APP","apiHost","basePath","baseUrl","BASE_URL","requestTimeout","i18nPath","_objectWithoutProperties","_possibleConstructorReturn","self","ReferenceError","subClass","superClass","setPrototypeOf","__proto__","createNamedContext","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","toArray","array","child","createRoute","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_temp2","shouldFocus","focus","getDerivedStateFromProps","myURIChanged","navigatedUpToMe","contains","activeElement","_props2","_props2$component","Comp","outline","tabIndex","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","condition","argIndex","framesToPop","toPropertyKey","_defineProperties","excluded","sourceKeys","_setPrototypeOf","hint","prim","Symbol","toPrimitive","arg","iterator","_assertThisInitialized","getPrototypeOf","_toPropertyKey"],"sourceRoot":""}