{ version: 3, file: "app-e3ff4ff89c683cae9d2e.js", mappings: "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", sources: [ "webpack://husky-site/../../node_modules/@gatsbyjs/reach-router/lib/history.js", "webpack://husky-site/../../node_modules/@gatsbyjs/reach-router/lib/utils.js", "webpack://husky-site/../../node_modules/@loadable/component/dist/loadable.esm.js", "webpack://husky-site/../../node_modules/@reckitt/phx-husky.contexts.screen-recognition/dist/screen-recognition-context.js", "webpack://husky-site/../../node_modules/tslib/tslib.es6.js", "webpack://husky-site/../../node_modules/@reckitt/phx-husky.contexts.screen-recognition/dist/screen-recognition-context-provider.js", "webpack://husky-site/../../node_modules/@reckitt/phx-husky.hooks.use-screen-recognition/dist/use-screen-recognition.js", "webpack://husky-site/../../node_modules/@reckitt/phx-husky.hooks.use-screen-recognition/dist/constants.js", "webpack://husky-site/../../node_modules/camelcase/index.js", "webpack://husky-site/../../node_modules/common-tags/es/TemplateTag/TemplateTag.js", "webpack://husky-site/../../node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/commaLists/commaLists.js", "webpack://husky-site/../../node_modules/common-tags/es/commaListsAnd/commaListsAnd.js", "webpack://husky-site/../../node_modules/common-tags/es/commaListsOr/commaListsOr.js", "webpack://husky-site/../../node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/html/html.js", "webpack://husky-site/../../node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js", "webpack://husky-site/../../node_modules/common-tags/es/safeHtml/safeHtml.js", "webpack://husky-site/../../node_modules/common-tags/es/oneLine/oneLine.js", "webpack://husky-site/../../node_modules/common-tags/es/oneLineTrim/oneLineTrim.js", "webpack://husky-site/../../node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js", "webpack://husky-site/../../node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js", "webpack://husky-site/../../node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js", "webpack://husky-site/../../node_modules/common-tags/es/inlineLists/inlineLists.js", "webpack://husky-site/../../node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js", "webpack://husky-site/../../node_modules/common-tags/es/stripIndent/stripIndent.js", "webpack://husky-site/../../node_modules/common-tags/es/stripIndents/stripIndents.js", "webpack://husky-site/../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js", "webpack://husky-site/../../node_modules/performance-now/lib/performance-now.js", "webpack://husky-site/../../node_modules/raf/index.js", "webpack://husky-site/../../node_modules/react-is/cjs/react-is.production.min.js", "webpack://husky-site/../../node_modules/react-is/index.js", "webpack://husky-site/../../node_modules/scroll-to-element/ease.js", "webpack://husky-site/../../node_modules/scroll-to-element/emitter.js", "webpack://husky-site/../../node_modules/scroll-to-element/index.js", "webpack://husky-site/../../node_modules/scroll-to-element/scroll-to.js", "webpack://husky-site/../../node_modules/scroll-to-element/tween.js", "webpack://husky-site/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js", "webpack://husky-site/../../node_modules/gatsby-link/index.js", "webpack://husky-site/../../node_modules/gatsby-link/parse-path.js", "webpack://husky-site/../../node_modules/gatsby-react-router-scroll/index.js", "webpack://husky-site/../../node_modules/gatsby-react-router-scroll/scroll-handler.js", "webpack://husky-site/../../node_modules/gatsby-react-router-scroll/session-storage.js", "webpack://husky-site/../../node_modules/gatsby-react-router-scroll/use-scroll-restoration.js", "webpack://husky-site/../../node_modules/invariant/browser.js", "webpack://husky-site/../gatsby-debug-log/gatsby-browser.ts", "webpack://husky-site/../../node_modules/gatsby-plugin-anchor-links/errors.js", "webpack://husky-site/../../node_modules/gatsby-plugin-anchor-links/gatsby-browser.js", "webpack://husky-site/../../node_modules/gatsby-plugin-anchor-links/utils.js", "webpack://husky-site/../../node_modules/gatsby-plugin-google-tagmanager/gatsby-browser.js", "webpack://husky-site/../src/image-utils.ts", "webpack://husky-site/../src/components/hooks.ts", "webpack://husky-site/../src/components/layout-wrapper.tsx", "webpack://husky-site/../src/components/picture.tsx", "webpack://husky-site/../src/components/placeholder.tsx", "webpack://husky-site/../src/components/main-image.tsx", "webpack://husky-site/../src/components/gatsby-image.server.tsx", "webpack://husky-site/../src/components/gatsby-image.browser.tsx", "webpack://husky-site/../src/components/static-image.server.tsx", "webpack://husky-site/../src/components/static-image.tsx", "webpack://husky-site/../src/components/later-hydrator.tsx", "webpack://husky-site/../../node_modules/gatsby-plugin-image/gatsby-browser.js", "webpack://husky-site/../../node_modules/gatsby-plugin-loadable-components-ssr/gatsby-browser.js", "webpack://husky-site/../../node_modules/gatsby-plugin-manifest/gatsby-browser.js", "webpack://husky-site/../../node_modules/gatsby-plugin-manifest/get-manifest-pathname.js", "webpack://husky-site/../gatsby-theme-husky/gatsby-browser.js", "webpack://husky-site/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js", "webpack://husky-site/./.cache/api-runner-browser-plugins.js", "webpack://husky-site/./.cache/api-runner-browser.js", "webpack://husky-site/../../node_modules/mitt/dist/mitt.es.js", "webpack://husky-site/./.cache/emitter.js", "webpack://husky-site/./.cache/normalize-page-path.js", "webpack://husky-site/./.cache/find-path.js", "webpack://husky-site/./.cache/gatsby-browser-entry.js", "webpack://husky-site/./.cache/prefetch.js", "webpack://husky-site/./.cache/loader.js", "webpack://husky-site/./.cache/page-renderer.js", "webpack://husky-site/./.cache/route-announcer-props.js", "webpack://husky-site/./.cache/navigation.js", "webpack://husky-site/../../node_modules/shallow-compare/es/index.js", "webpack://husky-site/./.cache/ensure-resources.js", "webpack://husky-site/./.cache/production-app.js", "webpack://husky-site/./.cache/public-page-renderer-prod.js", "webpack://husky-site/./.cache/public-page-renderer.js", "webpack://husky-site/./.cache/react-lifecycles-compat.js", "webpack://husky-site/./.cache/redirect-utils.js", "webpack://husky-site/./.cache/register-service-worker.js", "webpack://husky-site/./.cache/strip-prefix.js", "webpack://husky-site/../../node_modules/@gatsbyjs/reach-router/es/lib/utils.js", "webpack://husky-site/../../node_modules/@gatsbyjs/reach-router/es/lib/history.js", "webpack://husky-site/../../node_modules/@gatsbyjs/reach-router/es/index.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/assertThisInitialized.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/extends.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/inheritsLoose.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/interopRequireDefault.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/setPrototypeOf.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/extends.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js", "webpack://husky-site/../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js" ], sourcesContent: [ ""use strict"; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var getLocation = function getLocation(source) { var _source$location = source.location, search = _source$location.search, hash = _source$location.hash, href = _source$location.href, origin = _source$location.origin, protocol = _source$location.protocol, host = _source$location.host, hostname = _source$location.hostname, port = _source$location.port; var pathname = source.location.pathname; if (!pathname && href && canUseDOM) { var url = new URL(href); pathname = url.pathname; } return { pathname: encodeURI(decodeURI(pathname)), search: search, hash: hash, href: href, origin: origin, protocol: protocol, host: host, hostname: hostname, port: port, state: source.history.state, key: source.history.state && source.history.state.key || "initial" }; }; var createHistory = function createHistory(source, options) { var listeners = []; var location = getLocation(source); var transitioning = false; var resolveTransition = function resolveTransition() {}; return { get location() { return location; }, get transitioning() { return transitioning; }, _onTransitionComplete: function _onTransitionComplete() { transitioning = false; resolveTransition(); }, listen: function listen(listener) { listeners.push(listener); var popstateListener = function popstateListener() { location = getLocation(source); listener({ location: location, action: "POP" }); }; source.addEventListener("popstate", popstateListener); return function () { source.removeEventListener("popstate", popstateListener); listeners = listeners.filter(function (fn) { return fn !== listener; }); }; }, navigate: function navigate(to) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, state = _ref.state, _ref$replace = _ref.replace, replace = _ref$replace === undefined ? false : _ref$replace; if (typeof to === "number") { source.history.go(to); } else { state = _extends({}, state, { key: Date.now() + "" }); // try...catch iOS Safari limits to 100 pushState calls try { if (transitioning || replace) { source.history.replaceState(state, null, to); } else { source.history.pushState(state, null, to); } } catch (e) { source.location[replace ? "replace" : "assign"](to); } } location = getLocation(source); transitioning = true; var transition = new Promise(function (res) { return resolveTransition = res; }); listeners.forEach(function (listener) { return listener({ location: location, action: "PUSH" }); }); return transition; } }; }; //////////////////////////////////////////////////////////////////////////////// // Stores history entries in memory for testing or other platforms like Native var createMemorySource = function createMemorySource() { var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "/"; var searchIndex = initialPath.indexOf("?"); var initialLocation = { pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath, search: searchIndex > -1 ? initialPath.substr(searchIndex) : "" }; var index = 0; var stack = [initialLocation]; var states = [null]; return { get location() { return stack[index]; }, addEventListener: function addEventListener(name, fn) {}, removeEventListener: function removeEventListener(name, fn) {}, history: { get entries() { return stack; }, get index() { return index; }, get state() { return states[index]; }, pushState: function pushState(state, _, uri) { var _uri$split = uri.split("?"), pathname = _uri$split[0], _uri$split$ = _uri$split[1], search = _uri$split$ === undefined ? "" : _uri$split$; index++; stack.push({ pathname: pathname, search: search.length ? "?" + search : search }); states.push(state); }, replaceState: function replaceState(state, _, uri) { var _uri$split2 = uri.split("?"), pathname = _uri$split2[0], _uri$split2$ = _uri$split2[1], search = _uri$split2$ === undefined ? "" : _uri$split2$; stack[index] = { pathname: pathname, search: search }; states[index] = state; }, go: function go(to) { var newIndex = index + to; if (newIndex < 0 || newIndex > states.length - 1) { return; } index = newIndex; } } }; }; //////////////////////////////////////////////////////////////////////////////// // global history - uses window.history as the source if available, otherwise a // memory history var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); var getSource = function getSource() { return canUseDOM ? window : createMemorySource(); }; var globalHistory = createHistory(getSource()); var navigate = globalHistory.navigate; //////////////////////////////////////////////////////////////////////////////// exports.globalHistory = globalHistory; exports.navigate = navigate; exports.createHistory = createHistory; exports.createMemorySource = createMemorySource;", ""use strict"; exports.__esModule = true; exports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined; var _invariant = require("invariant"); var _invariant2 = _interopRequireDefault(_invariant); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } //////////////////////////////////////////////////////////////////////////////// // startsWith(string, search) - Check if `string` starts with `search` var startsWith = function startsWith(string, search) { return string.substr(0, search.length) === search; }; //////////////////////////////////////////////////////////////////////////////// // pick(routes, uri) // // Ranks and picks the best route to match. Each segment gets the highest // amount of points, then the type of segment gets an additional amount of // points where // // static > dynamic > splat > root // // This way we don't have to worry about the order of our routes, let the // computers do it. // // A route looks like this // // { path, default, value } // // And a returned match looks like: // // { route, params, uri } // // I know, I should use TypeScript not comments for these types. var pick = function pick(routes, uri) { var match = void 0; var default_ = void 0; var _uri$split = uri.split("?"), uriPathname = _uri$split[0]; var uriSegments = segmentize(uriPathname); var isRootUri = uriSegments[0] === ""; var ranked = rankRoutes(routes); for (var i = 0, l = ranked.length; i < l; i++) { var missed = false; var route = ranked[i].route; if (route.default) { default_ = { route: route, params: {}, uri: uri }; continue; } var routeSegments = segmentize(route.path); var params = {}; var max = Math.max(uriSegments.length, routeSegments.length); var index = 0; for (; index < max; index++) { var routeSegment = routeSegments[index]; var uriSegment = uriSegments[index]; if (isSplat(routeSegment)) { // Hit a splat, just grab the rest, and return a match // uri: /files/documents/work // route: /files/* var param = routeSegment.slice(1) || "*"; params[param] = uriSegments.slice(index).map(decodeURIComponent).join("/"); break; } if (uriSegment === undefined) { // URI is shorter than the route, no match // uri: /users // route: /users/:userId missed = true; break; } var dynamicMatch = paramRe.exec(routeSegment); if (dynamicMatch && !isRootUri) { var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1; !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; var value = decodeURIComponent(uriSegment); params[dynamicMatch[1]] = value; } else if (routeSegment !== uriSegment) { // Current segments don't match, not dynamic, not splat, so no match // uri: /users/123/settings // route: /users/:id/profile missed = true; break; } } if (!missed) { match = { route: route, params: params, uri: "/" + uriSegments.slice(0, index).join("/") }; break; } } return match || default_ || null; }; //////////////////////////////////////////////////////////////////////////////// // match(path, uri) - Matches just one path to a uri, also lol var match = function match(path, uri) { return pick([{ path: path }], uri); }; //////////////////////////////////////////////////////////////////////////////// // resolve(to, basepath) // // Resolves URIs as though every path is a directory, no files. Relative URIs // in the browser can feel awkward because not only can you be "in a directory" // you can be "at a file", too. For example // // browserSpecResolve('foo', '/bar/') => /bar/foo // browserSpecResolve('foo', '/bar') => /foo // // But on the command line of a file system, it's not as complicated, you can't // `cd` from a file, only directories. This way, links have to know less about // their current path. To go deeper you can do this: // // // // instead of // // // Just like `cd`, if you want to go deeper from the command line, you do this: // // cd deeper // # not // cd $(pwd)/deeper // // By treating every path as a directory, linking to relative paths should // require less contextual information and (fingers crossed) be more intuitive. var resolve = function resolve(to, base) { // /foo/bar, /baz/qux => /foo/bar if (startsWith(to, "/")) { return to; } var _to$split = to.split("?"), toPathname = _to$split[0], toQuery = _to$split[1]; var _base$split = base.split("?"), basePathname = _base$split[0]; var toSegments = segmentize(toPathname); var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b if (toSegments[0] === "") { return addQuery(basePathname, toQuery); } // profile, /users/789 => /users/789/profile if (!startsWith(toSegments[0], ".")) { var pathname = baseSegments.concat(toSegments).join("/"); return addQuery((basePathname === "/" ? "" : "/") + pathname, toQuery); } // ./ /users/123 => /users/123 // ../ /users/123 => /users // ../.. /users/123 => / // ../../one /a/b/c/d => /a/b/one // .././one /a/b/c/d => /a/b/c/one var allSegments = baseSegments.concat(toSegments); var segments = []; for (var i = 0, l = allSegments.length; i < l; i++) { var segment = allSegments[i]; if (segment === "..") segments.pop();else if (segment !== ".") segments.push(segment); } return addQuery("/" + segments.join("/"), toQuery); }; //////////////////////////////////////////////////////////////////////////////// // insertParams(path, params) var insertParams = function insertParams(path, params) { var _path$split = path.split("?"), pathBase = _path$split[0], _path$split$ = _path$split[1], query = _path$split$ === undefined ? "" : _path$split$; var segments = segmentize(pathBase); var constructedPath = "/" + segments.map(function (segment) { var match = paramRe.exec(segment); return match ? params[match[1]] : segment; }).join("/"); var _params$location = params.location; _params$location = _params$location === undefined ? {} : _params$location; var _params$location$sear = _params$location.search, search = _params$location$sear === undefined ? "" : _params$location$sear; var searchSplit = search.split("?")[1] || ""; constructedPath = addQuery(constructedPath, query, searchSplit); return constructedPath; }; var validateRedirect = function validateRedirect(from, to) { var filter = function filter(segment) { return isDynamic(segment); }; var fromString = segmentize(from).filter(filter).sort().join("/"); var toString = segmentize(to).filter(filter).sort().join("/"); return fromString === toString; }; //////////////////////////////////////////////////////////////////////////////// // Junk var paramRe = /^:(.+)/; var SEGMENT_POINTS = 4; var STATIC_POINTS = 3; var DYNAMIC_POINTS = 2; var SPLAT_PENALTY = 1; var ROOT_POINTS = 1; var isRootSegment = function isRootSegment(segment) { return segment === ""; }; var isDynamic = function isDynamic(segment) { return paramRe.test(segment); }; var isSplat = function isSplat(segment) { return segment && segment[0] === "*"; }; var rankRoute = function rankRoute(route, index) { var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) { score += SEGMENT_POINTS; 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; return score; }, 0); return { route: route, score: score, index: index }; }; var rankRoutes = function rankRoutes(routes) { return routes.map(rankRoute).sort(function (a, b) { return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index; }); }; var segmentize = function segmentize(uri) { return uri // strip starting/ending slashes .replace(/(^\/+|\/+$)/g, "").split("/"); }; var addQuery = function addQuery(pathname) { for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { query[_key - 1] = arguments[_key]; } query = query.filter(function (q) { return q && q.length > 0; }); return pathname + (query && query.length > 0 ? "?" + query.join("&") : ""); }; var reservedNames = ["uri", "path"]; /** * Shallow compares two objects. * @param {Object} obj1 The first object to compare. * @param {Object} obj2 The second object to compare. */ var shallowCompare = function shallowCompare(obj1, obj2) { var obj1Keys = Object.keys(obj1); return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) { return obj2.hasOwnProperty(key) && obj1[key] === obj2[key]; }); }; //////////////////////////////////////////////////////////////////////////////// exports.startsWith = startsWith; exports.pick = pick; exports.match = match; exports.resolve = resolve; exports.insertParams = insertParams; exports.validateRedirect = validateRedirect; exports.shallowCompare = shallowCompare;", "import React from 'react'; import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'; import _extends from '@babel/runtime/helpers/esm/extends'; import _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized'; import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; import { isValidElementType } from 'react-is'; import hoistNonReactStatics from 'hoist-non-react-statics'; /* eslint-disable import/prefer-default-export */ function invariant(condition, message) { if (condition) return; var error = new Error("loadable: " + message); error.framesToPop = 1; error.name = 'Invariant Violation'; throw error; } function warn(message) { // eslint-disable-next-line no-console console.warn("loadable: " + message); } var Context = /*#__PURE__*/ React.createContext(); var LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__'; function getRequiredChunkKey(namespace) { return "" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY; } var sharedInternals = /*#__PURE__*/Object.freeze({ __proto__: null, getRequiredChunkKey: getRequiredChunkKey, invariant: invariant, Context: Context }); var LOADABLE_SHARED = { initialChunks: {} }; var STATUS_PENDING = 'PENDING'; var STATUS_RESOLVED = 'RESOLVED'; var STATUS_REJECTED = 'REJECTED'; function resolveConstructor(ctor) { if (typeof ctor === 'function') { return { requireAsync: ctor, resolve: function resolve() { return undefined; }, chunkName: function chunkName() { return undefined; } }; } return ctor; } var withChunkExtractor = function withChunkExtractor(Component) { var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) { return React.createElement(Context.Consumer, null, function (extractor) { return React.createElement(Component, Object.assign({ __chunkExtractor: extractor }, props)); }); }; if (Component.displayName) { LoadableWithChunkExtractor.displayName = Component.displayName + "WithChunkExtractor"; } return LoadableWithChunkExtractor; }; var identity = function identity(v) { return v; }; function createLoadable(_ref) { var _ref$defaultResolveCo = _ref.defaultResolveComponent, defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo, _render = _ref.render, onLoad = _ref.onLoad; function loadable(loadableConstructor, options) { if (options === void 0) { options = {}; } var ctor = resolveConstructor(loadableConstructor); var cache = {}; /** * Cachekey represents the component to be loaded * if key changes - component has to be reloaded * @param props * @returns {null|Component} */ function _getCacheKey(props) { if (options.cacheKey) { return options.cacheKey(props); } if (ctor.resolve) { return ctor.resolve(props); } return 'static'; } /** * Resolves loaded `module` to a specific `Component * @param module * @param props * @param Loadable * @returns Component */ function resolve(module, props, Loadable) { var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module); if (options.resolveComponent && !isValidElementType(Component)) { throw new Error("resolveComponent returned something that is not a React component!"); } hoistNonReactStatics(Loadable, Component, { preload: true }); return Component; } var cachedLoad = function cachedLoad(props) { var cacheKey = _getCacheKey(props); var promise = cache[cacheKey]; if (!promise || promise.status === STATUS_REJECTED) { promise = ctor.requireAsync(props); promise.status = STATUS_PENDING; cache[cacheKey] = promise; promise.then(function () { promise.status = STATUS_RESOLVED; }, function (error) { console.error('loadable-components: failed to asynchronously load component', { fileName: ctor.resolve(props), chunkName: ctor.chunkName(props), error: error ? error.message : error }); promise.status = STATUS_REJECTED; }); } return promise; }; var InnerLoadable = /*#__PURE__*/ function (_React$Component) { _inheritsLoose(InnerLoadable, _React$Component); InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) { var cacheKey = _getCacheKey(props); return _extends({}, state, { cacheKey: cacheKey, // change of a key triggers loading state automatically loading: state.loading || state.cacheKey !== cacheKey }); }; function InnerLoadable(props) { var _this; _this = _React$Component.call(this, props) || this; _this.state = { result: null, error: null, loading: true, cacheKey: _getCacheKey(props) }; invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side if (props.__chunkExtractor) { // This module has been marked with no SSR if (options.ssr === false) { return _assertThisInitialized(_this); } // We run load function, we assume that it won't fail and that it // triggers a synchronous loading of the module ctor.requireAsync(props)["catch"](function () { return null; }); // So we can require now the module synchronously _this.loadSync(); props.__chunkExtractor.addChunk(ctor.chunkName(props)); return _assertThisInitialized(_this); } // Client-side with `isReady` method present (SSR probably) // If module is already loaded, we use a synchronous loading // Only perform this synchronous loading if the component has not // been marked with no SSR, else we risk hydration mismatches if (options.ssr !== false && ( // is ready - was loaded in this session ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) { _this.loadSync(); } return _this; } var _proto = InnerLoadable.prototype; _proto.componentDidMount = function componentDidMount() { this.mounted = true; // retrieve loading promise from a global cache var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache if (cachedPromise && cachedPromise.status === STATUS_REJECTED) { this.setCache(); } // component might be resolved synchronously in the constructor if (this.state.loading) { this.loadAsync(); } }; _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { // Component has to be reloaded on cacheKey change if (prevState.cacheKey !== this.state.cacheKey) { this.loadAsync(); } }; _proto.componentWillUnmount = function componentWillUnmount() { this.mounted = false; }; _proto.safeSetState = function safeSetState(nextState, callback) { if (this.mounted) { this.setState(nextState, callback); } } /** * returns a cache key for the current props * @returns {Component|string} */; _proto.getCacheKey = function getCacheKey() { return _getCacheKey(this.props); } /** * access the persistent cache */; _proto.getCache = function getCache() { return cache[this.getCacheKey()]; } /** * sets the cache value. If called without value sets it as undefined */; _proto.setCache = function setCache(value) { if (value === void 0) { value = undefined; } cache[this.getCacheKey()] = value; }; _proto.triggerOnLoad = function triggerOnLoad() { var _this2 = this; if (onLoad) { setTimeout(function () { onLoad(_this2.state.result, _this2.props); }); } } /** * Synchronously loads component * target module is expected to already exists in the module cache * or be capable to resolve synchronously (webpack target=node) */; _proto.loadSync = function loadSync() { // load sync is expecting component to be in the "loading" state already // sounds weird, but loading=true is the initial state of InnerLoadable if (!this.state.loading) return; try { var loadedModule = ctor.requireSync(this.props); var result = resolve(loadedModule, this.props, Loadable); this.state.result = result; this.state.loading = false; } catch (error) { console.error('loadable-components: failed to synchronously load component, which expected to be available', { fileName: ctor.resolve(this.props), chunkName: ctor.chunkName(this.props), error: error ? error.message : error }); this.state.error = error; } } /** * Asynchronously loads a component. */; _proto.loadAsync = function loadAsync() { var _this3 = this; var promise = this.resolveAsync(); promise.then(function (loadedModule) { var result = resolve(loadedModule, _this3.props, Loadable); _this3.safeSetState({ result: result, loading: false }, function () { return _this3.triggerOnLoad(); }); })["catch"](function (error) { return _this3.safeSetState({ error: error, loading: false }); }); return promise; } /** * Asynchronously resolves(not loads) a component. * Note - this function does not change the state */; _proto.resolveAsync = function resolveAsync() { var _this$props = this.props, __chunkExtractor = _this$props.__chunkExtractor, forwardedRef = _this$props.forwardedRef, props = _objectWithoutPropertiesLoose(_this$props, ["__chunkExtractor", "forwardedRef"]); return cachedLoad(props); }; _proto.render = function render() { var _this$props2 = this.props, forwardedRef = _this$props2.forwardedRef, propFallback = _this$props2.fallback, __chunkExtractor = _this$props2.__chunkExtractor, props = _objectWithoutPropertiesLoose(_this$props2, ["forwardedRef", "fallback", "__chunkExtractor"]); var _this$state = this.state, error = _this$state.error, loading = _this$state.loading, result = _this$state.result; if (options.suspense) { var cachedPromise = this.getCache() || this.loadAsync(); if (cachedPromise.status === STATUS_PENDING) { throw this.loadAsync(); } } if (error) { throw error; } var fallback = propFallback || options.fallback || null; if (loading) { return fallback; } return _render({ fallback: fallback, result: result, options: options, props: _extends({}, props, { ref: forwardedRef }) }); }; return InnerLoadable; }(React.Component); var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable); var Loadable = React.forwardRef(function (props, ref) { return React.createElement(EnhancedInnerLoadable, Object.assign({ forwardedRef: ref }, props)); }); Loadable.displayName = 'Loadable'; // In future, preload could use `` Loadable.preload = function (props) { Loadable.load(props); }; Loadable.load = function (props) { return cachedLoad(props); }; return Loadable; } function lazy(ctor, options) { return loadable(ctor, _extends({}, options, { suspense: true })); } return { loadable: loadable, lazy: lazy }; } function defaultResolveComponent(loadedModule) { // eslint-disable-next-line no-underscore-dangle return loadedModule.__esModule ? loadedModule["default"] : loadedModule["default"] || loadedModule; } /* eslint-disable no-use-before-define, react/no-multi-comp */ var _createLoadable = /*#__PURE__*/ createLoadable({ defaultResolveComponent: defaultResolveComponent, render: function render(_ref) { var Component = _ref.result, props = _ref.props; return React.createElement(Component, props); } }), loadable = _createLoadable.loadable, lazy = _createLoadable.lazy; /* eslint-disable no-use-before-define, react/no-multi-comp */ var _createLoadable$1 = /*#__PURE__*/ createLoadable({ onLoad: function onLoad(result, props) { if (result && props.forwardedRef) { if (typeof props.forwardedRef === 'function') { props.forwardedRef(result); } else { props.forwardedRef.current = result; } } }, render: function render(_ref) { var result = _ref.result, props = _ref.props; if (props.children) { return props.children(result); } return null; } }), loadable$1 = _createLoadable$1.loadable, lazy$1 = _createLoadable$1.lazy; /* eslint-disable no-underscore-dangle, camelcase */ var BROWSER = typeof window !== 'undefined'; function loadableReady(done, _temp) { if (done === void 0) { done = function done() {}; } var _ref = _temp === void 0 ? {} : _temp, _ref$namespace = _ref.namespace, namespace = _ref$namespace === void 0 ? '' : _ref$namespace, _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal, chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob; if (!BROWSER) { warn('`loadableReady()` must be called in browser only'); done(); return Promise.resolve(); } var requiredChunks = null; if (BROWSER) { var id = getRequiredChunkKey(namespace); var dataElement = document.getElementById(id); if (dataElement) { requiredChunks = JSON.parse(dataElement.textContent); var extElement = document.getElementById(id + "_ext"); if (extElement) { var _JSON$parse = JSON.parse(extElement.textContent), namedChunks = _JSON$parse.namedChunks; namedChunks.forEach(function (chunkName) { LOADABLE_SHARED.initialChunks[chunkName] = true; }); } else { // version mismatch throw new Error('loadable-component: @loadable/server does not match @loadable/component'); } } } if (!requiredChunks) { warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side'); done(); return Promise.resolve(); } var resolved = false; return new Promise(function (resolve) { window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || []; var loadedChunks = window[chunkLoadingGlobal]; var originalPush = loadedChunks.push.bind(loadedChunks); function checkReadyState() { if (requiredChunks.every(function (chunk) { return loadedChunks.some(function (_ref2) { var chunks = _ref2[0]; return chunks.indexOf(chunk) > -1; }); })) { if (!resolved) { resolved = true; resolve(); } } } loadedChunks.push = function () { originalPush.apply(void 0, arguments); checkReadyState(); }; checkReadyState(); }).then(done); } /* eslint-disable no-underscore-dangle */ var loadable$2 = loadable; loadable$2.lib = loadable$1; var lazy$2 = lazy; lazy$2.lib = lazy$1; var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals; export default loadable$2; export { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };", "import { createContext } from 'react'; export var ScreenRecognitionContext = createContext({ isMobile: false, isTablet: false, isDesktop: false, isXl: false });", "/****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise */ var _extendStatics = function extendStatics(d, b) { _extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; } || function (d, b) { for (var p in b) { if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; } }; return _extendStatics(d, b); }; export function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); _extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var _assign = function __assign() { _assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return _assign.apply(this, arguments); }; export { _assign as __assign }; export function __rest(s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; } if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } export function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) { if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; } return c > 3 && r && Object.defineProperty(target, key, r), r; } export function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); }; } export function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } export function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } export function __generator(thisArg, body) { var _ = { label: 0, sent: function sent() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) { try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } export var __createBinding = Object.create ? function (o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function get() { return m[k]; } }; } Object.defineProperty(o, k2, desc); } : function (o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }; export function __exportStar(m, o) { for (var p in m) { if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); } } export function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function next() { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } export function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); } } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } /** @deprecated */ export function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) { ar = ar.concat(__read(arguments[i])); } return ar; } /** @deprecated */ export function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) { s += arguments[i].length; } for (var r = Array(s), k = 0, i = 0; i < il; i++) { for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) { r[k] = a[j]; } } return r; } export function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } export function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } export function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } export function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } } export function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } } export function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; } ; var __setModuleDefault = Object.create ? function (o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); } : function (o, v) { o["default"] = v; }; export function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) { if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; } export function __importDefault(mod) { return mod && mod.__esModule ? mod : { default: mod }; } export function __classPrivateFieldGet(receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); } export function __classPrivateFieldSet(receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; } export function __classPrivateFieldIn(state, receiver) { if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object"); return typeof state === "function" ? receiver === state : state.has(receiver); }", "import { __assign } from "tslib"; import { jsx as _jsx } from "react/jsx-runtime"; import { useScreenRecognition } from '@reckitt/phx-husky.hooks.use-screen-recognition'; import { ScreenRecognitionContext } from './screen-recognition-context'; export function ScreenRecognitionProvider(_a) { var children = _a.children; var screenRecognition = useScreenRecognition(); return _jsx(ScreenRecognitionContext.Provider, __assign({ value: screenRecognition }, { children: children }), void 0); }", "import { useEffect, useState } from 'react'; import { DESKTOP_BREAKPOINT, TABLET_BREAKPOINT, XL_BREAKPOINT } from './constants'; export var useScreenRecognition = function useScreenRecognition() { var _a = useState(false), isMobile = _a[0], setIsMobile = _a[1]; var _b = useState(false), isTablet = _b[0], setIsTablet = _b[1]; var _c = useState(false), isDesktop = _c[0], setIsDesktop = _c[1]; var _d = useState(false), isXl = _d[0], setIsXl = _d[1]; var handleResize = function handleResize() { var width = window.innerWidth; setIsMobile(width < TABLET_BREAKPOINT); setIsTablet(width >= TABLET_BREAKPOINT && width < DESKTOP_BREAKPOINT); setIsDesktop(width >= DESKTOP_BREAKPOINT && width < XL_BREAKPOINT); setIsXl(XL_BREAKPOINT <= width); }; useEffect(function () { handleResize(); window.addEventListener('resize', handleResize); return function () { return window.removeEventListener('resize', handleResize); }; }, []); return { isMobile: isMobile, isTablet: isTablet, isDesktop: isDesktop, isXl: isXl }; };", "export var TABLET_BREAKPOINT = 768; export var DESKTOP_BREAKPOINT = 1024; export var XL_BREAKPOINT = 1200;", "'use strict'; var preserveCamelCase = function preserveCamelCase(string) { var isLastCharLower = false; var isLastCharUpper = false; var isLastLastCharUpper = false; for (var i = 0; i < string.length; i++) { var character = string[i]; if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) { string = string.slice(0, i) + '-' + string.slice(i); isLastCharLower = false; isLastLastCharUpper = isLastCharUpper; isLastCharUpper = true; i++; } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) { string = string.slice(0, i - 1) + '-' + string.slice(i - 1); isLastLastCharUpper = isLastCharUpper; isLastCharUpper = false; isLastCharLower = true; } else { isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character; isLastLastCharUpper = isLastCharUpper; isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character; } } return string; }; var camelCase = function camelCase(input, options) { if (!(typeof input === 'string' || Array.isArray(input))) { throw new TypeError('Expected the input to be `string | string[]`'); } options = Object.assign({ pascalCase: false }, options); var postProcess = function postProcess(x) { return options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x; }; if (Array.isArray(input)) { input = input.map(function (x) { return x.trim(); }).filter(function (x) { return x.length; }).join('-'); } else { input = input.trim(); } if (input.length === 0) { return ''; } if (input.length === 1) { return options.pascalCase ? input.toUpperCase() : input.toLowerCase(); } var hasUpperCase = input !== input.toLowerCase(); if (hasUpperCase) { input = preserveCamelCase(input); } input = input.replace(/^[_.\- ]+/, '').toLowerCase().replace(/[_.\- ]+(\w|$)/g, function (_, p1) { return p1.toUpperCase(); }).replace(/\d+(\w|$)/g, function (m) { return m.toUpperCase(); }); return postProcess(input); }; module.exports = camelCase; // TODO: Remove this for the next major release module.exports.default = camelCase;", "var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _templateObject = _taggedTemplateLiteral(['', ''], ['', '']); function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * @class TemplateTag * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag. */ var TemplateTag = function () { /** * constructs a template tag * @constructs TemplateTag * @param {...Object} [...transformers] - an array or arguments list of transformers * @return {Function} - a template tag */ function TemplateTag() { var _this = this; for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) { transformers[_key] = arguments[_key]; } _classCallCheck(this, TemplateTag); this.tag = function (strings) { for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { expressions[_key2 - 1] = arguments[_key2]; } if (typeof strings === 'function') { // if the first argument passed is a function, assume it is a template tag and return // an intermediary tag that processes the template using the aforementioned tag, passing the // result to our tag return _this.interimTag.bind(_this, strings); } if (typeof strings === 'string') { // if the first argument passed is a string, just transform it return _this.transformEndResult(strings); } // else, return a transformed end result of processing the template with our tag strings = strings.map(_this.transformString.bind(_this)); return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions))); }; // if first argument is an array, extrude it as a list of transformers if (transformers.length > 0 && Array.isArray(transformers[0])) { transformers = transformers[0]; } // if any transformers are functions, this means they are not initiated - automatically initiate them this.transformers = transformers.map(function (transformer) { return typeof transformer === 'function' ? transformer() : transformer; }); // return an ES2015 template tag return this.tag; } /** * Applies all transformers to a template literal tagged with this method. * If a function is passed as the first argument, assumes the function is a template tag * and applies it to the template, returning a template tag. * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier * @param {...*} ...expressions - Optional list of substitution values. * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template. */ _createClass(TemplateTag, [{ key: 'interimTag', /** * An intermediary template tag that receives a template tag and passes the result of calling the template with the received * template tag to our own template tag. * @param {Function} nextTag - the received template tag * @param {Array} template - the template to process * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template * @return {*} - the final processed value */ value: function interimTag(previousTag, template) { for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) { substitutions[_key3 - 2] = arguments[_key3]; } return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions))); } /** * Performs bulk processing on the tagged template, transforming each substitution and then * concatenating the resulting values into a string. * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template * @param {String} resultSoFar - this iteration's result string so far * @param {String} remainingPart - the template chunk after the current substitution * @return {String} - the result of joining this iteration's processed substitution with the result */ }, { key: 'processSubstitutions', value: function processSubstitutions(substitutions, resultSoFar, remainingPart) { var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar); return ''.concat(resultSoFar, substitution, remainingPart); } /** * Iterate through each transformer, applying the transformer's `onString` method to the template * strings before all substitutions are processed. * @param {String} str - The input string * @return {String} - The final results of processing each transformer */ }, { key: 'transformString', value: function transformString(str) { var cb = function cb(res, transform) { return transform.onString ? transform.onString(res) : res; }; return this.transformers.reduce(cb, str); } /** * When a substitution is encountered, iterates through each transformer and applies the transformer's * `onSubstitution` method to the substitution. * @param {*} substitution - The current substitution * @param {String} resultSoFar - The result up to and excluding this substitution. * @return {*} - The final result of applying all substitution transformations. */ }, { key: 'transformSubstitution', value: function transformSubstitution(substitution, resultSoFar) { var cb = function cb(res, transform) { return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res; }; return this.transformers.reduce(cb, substitution); } /** * Iterates through each transformer, applying the transformer's `onEndResult` method to the * template literal after all substitutions have finished processing. * @param {String} endResult - The processed template, just before it is returned from the tag * @return {String} - The final results of processing each transformer */ }, { key: 'transformEndResult', value: function transformEndResult(endResult) { var cb = function cb(res, transform) { return transform.onEndResult ? transform.onEndResult(res) : res; }; return this.transformers.reduce(cb, endResult); } }]); return TemplateTag; }(); export default TemplateTag;", "var defaults = { separator: '', conjunction: '', serial: false }; /** * Converts an array substitution to a string containing a list * @param {String} [opts.separator = ''] - the character that separates each item * @param {String} [opts.conjunction = ''] - replace the last separator with this * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case) * * @return {Object} - a TemplateTag transformer */ var inlineArrayTransformer = function inlineArrayTransformer() { var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults; return { onSubstitution: function onSubstitution(substitution, resultSoFar) { // only operate on arrays if (Array.isArray(substitution)) { var arrayLength = substitution.length; var separator = opts.separator; var conjunction = opts.conjunction; var serial = opts.serial; // join each item in the array into a string where each item is separated by separator // be sure to maintain indentation var indent = resultSoFar.match(/(\n?[^\S\n]+)$/); if (indent) { substitution = substitution.join(separator + indent[1]); } else { substitution = substitution.join(separator + ' '); } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution if (conjunction && arrayLength > 1) { var separatorIndex = substitution.lastIndexOf(separator); substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1); } } return substitution; } }; }; export default inlineArrayTransformer;", "function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * strips indentation from a template literal * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial' * @return {Object} - a TemplateTag transformer */ var stripIndentTransformer = function stripIndentTransformer() { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial'; return { onEndResult: function onEndResult(endResult) { if (type === 'initial') { // remove the shortest leading indentation from each line var match = endResult.match(/^[^\S\n]*(?=\S)/gm); var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) { return el.length; }))); if (indent) { var regexp = new RegExp('^.{' + indent + '}', 'gm'); return endResult.replace(regexp, ''); } return endResult; } if (type === 'all') { // remove all indentation from each line return endResult.replace(/^[^\S\n]+/gm, ''); } throw new Error('Unknown type: ' + type); } }; }; export default stripIndentTransformer;", "/** * TemplateTag transformer that trims whitespace on the end result of a tagged template * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right') * @return {Object} - a TemplateTag transformer */ var trimResultTransformer = function trimResultTransformer() { var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; return { onEndResult: function onEndResult(endResult) { if (side === '') { return endResult.trim(); } side = side.toLowerCase(); if (side === 'start' || side === 'left') { return endResult.replace(/^\s*/, ''); } if (side === 'end' || side === 'right') { return endResult.replace(/\s*$/, ''); } throw new Error('Side not supported: ' + side); } }; }; export default trimResultTransformer;", "var splitStringTransformer = function splitStringTransformer(splitBy) { return { onSubstitution: function onSubstitution(substitution, resultSoFar) { if (splitBy != null && typeof splitBy === 'string') { if (typeof substitution === 'string' && substitution.includes(splitBy)) { substitution = substitution.split(splitBy); } } else { throw new Error('You need to specify a string character to split by.'); } return substitution; } }; }; export default splitStringTransformer;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; var commaLists = new TemplateTag(inlineArrayTransformer({ separator: ',' }), stripIndentTransformer, trimResultTransformer); export default commaLists;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; var commaListsAnd = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'and' }), stripIndentTransformer, trimResultTransformer); export default commaListsAnd;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; var commaListsOr = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'or' }), stripIndentTransformer, trimResultTransformer); export default commaListsOr;", "var isValidValue = function isValidValue(x) { return x != null && !Number.isNaN(x) && typeof x !== 'boolean'; }; var removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() { return { onSubstitution: function onSubstitution(substitution) { if (Array.isArray(substitution)) { return substitution.filter(isValidValue); } if (isValidValue(substitution)) { return substitution; } return ''; } }; }; export default removeNonPrintingValuesTransformer;", "var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) { return { onSubstitution: function onSubstitution(substitution, resultSoFar) { if (replaceWhat == null || replaceWith == null) { throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.'); } // Do not touch if null or undefined if (substitution == null) { return substitution; } else { return substitution.toString().replace(replaceWhat, replaceWith); } } }; }; export default replaceSubstitutionTransformer;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; import splitStringTransformer from '../splitStringTransformer'; import removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer'; var html = new TemplateTag(splitStringTransformer('\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer); export default html;", "/** * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced * @param {*} replaceWith - the replacement value * @return {Object} - a TemplateTag transformer */ var replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) { return { onEndResult: function onEndResult(endResult) { if (replaceWhat == null || replaceWith == null) { throw new Error('replaceResultTransformer requires at least 2 arguments.'); } return endResult.replace(replaceWhat, replaceWith); } }; }; export default replaceResultTransformer;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; import splitStringTransformer from '../splitStringTransformer'; import replaceSubstitutionTransformer from '../replaceSubstitutionTransformer'; var safeHtml = new TemplateTag(splitStringTransformer('\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`')); export default safeHtml;", "import TemplateTag from '../TemplateTag'; import trimResultTransformer from '../trimResultTransformer'; import replaceResultTransformer from '../replaceResultTransformer'; var oneLine = new TemplateTag(replaceResultTransformer(/(?:\n(?:\s*))+/g, ' '), trimResultTransformer); export default oneLine;", "import TemplateTag from '../TemplateTag'; import trimResultTransformer from '../trimResultTransformer'; import replaceResultTransformer from '../replaceResultTransformer'; var oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\n\s*)/g, ''), trimResultTransformer); export default oneLineTrim;", "import TemplateTag from '../TemplateTag'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; import replaceResultTransformer from '../replaceResultTransformer'; var oneLineCommaLists = new TemplateTag(inlineArrayTransformer({ separator: ',' }), replaceResultTransformer(/(?:\s+)/g, ' '), trimResultTransformer); export default oneLineCommaLists;", "import TemplateTag from '../TemplateTag'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; import replaceResultTransformer from '../replaceResultTransformer'; var oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'or' }), replaceResultTransformer(/(?:\s+)/g, ' '), trimResultTransformer); export default oneLineCommaListsOr;", "import TemplateTag from '../TemplateTag'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; import replaceResultTransformer from '../replaceResultTransformer'; var oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'and' }), replaceResultTransformer(/(?:\s+)/g, ' '), trimResultTransformer); export default oneLineCommaListsAnd;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; var inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer); export default inlineLists;", "import TemplateTag from '../TemplateTag'; import inlineArrayTransformer from '../inlineArrayTransformer'; import trimResultTransformer from '../trimResultTransformer'; import replaceResultTransformer from '../replaceResultTransformer'; var oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\s+)/g, ' '), trimResultTransformer); export default oneLineInlineLists;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import trimResultTransformer from '../trimResultTransformer'; var stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer); export default stripIndent;", "import TemplateTag from '../TemplateTag'; import stripIndentTransformer from '../stripIndentTransformer'; import trimResultTransformer from '../trimResultTransformer'; var stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer); export default stripIndents;", "'use strict'; var reactIs = require('react-is'); /** * Copyright 2015, Yahoo! Inc. * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ var REACT_STATICS = { childContextTypes: true, contextType: true, contextTypes: true, defaultProps: true, displayName: true, getDefaultProps: true, getDerivedStateFromError: true, getDerivedStateFromProps: true, mixins: true, propTypes: true, type: true }; var KNOWN_STATICS = { name: true, length: true, prototype: true, caller: true, callee: true, arguments: true, arity: true }; var FORWARD_REF_STATICS = { '$$typeof': true, render: true, defaultProps: true, displayName: true, propTypes: true }; var MEMO_STATICS = { '$$typeof': true, compare: true, defaultProps: true, displayName: true, propTypes: true, type: true }; var TYPE_STATICS = {}; TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; function getStatics(component) { // React v16.11 and below if (reactIs.isMemo(component)) { return MEMO_STATICS; } // React v16.12 and above return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; } var defineProperty = Object.defineProperty; var getOwnPropertyNames = Object.getOwnPropertyNames; var getOwnPropertySymbols = Object.getOwnPropertySymbols; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var getPrototypeOf = Object.getPrototypeOf; var objectPrototype = Object.prototype; function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components if (objectPrototype) { var inheritedComponent = getPrototypeOf(sourceComponent); if (inheritedComponent && inheritedComponent !== objectPrototype) { hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); } } var keys = getOwnPropertyNames(sourceComponent); if (getOwnPropertySymbols) { keys = keys.concat(getOwnPropertySymbols(sourceComponent)); } var targetStatics = getStatics(targetComponent); var sourceStatics = getStatics(sourceComponent); for (var i = 0; i < keys.length; ++i) { var key = keys[i]; if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { var descriptor = getOwnPropertyDescriptor(sourceComponent, key); try { // Avoid failures from read-only properties defineProperty(targetComponent, key, descriptor); } catch (e) {} } } } return targetComponent; } module.exports = hoistNonReactStatics;", "// Generated by CoffeeScript 1.12.2 (function () { var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime; if (typeof performance !== "undefined" && performance !== null && performance.now) { module.exports = function () { return performance.now(); }; } else if (typeof process !== "undefined" && process !== null && process.hrtime) { module.exports = function () { return (getNanoSeconds() - nodeLoadTime) / 1e6; }; hrtime = process.hrtime; getNanoSeconds = function getNanoSeconds() { var hr; hr = hrtime(); return hr[0] * 1e9 + hr[1]; }; moduleLoadTime = getNanoSeconds(); upTime = process.uptime() * 1e9; nodeLoadTime = moduleLoadTime - upTime; } else if (Date.now) { module.exports = function () { return Date.now() - loadTime; }; loadTime = Date.now(); } else { module.exports = function () { return new Date().getTime() - loadTime; }; loadTime = new Date().getTime(); } }).call(this);", "var now = require('performance-now'), root = typeof window === 'undefined' ? global : window, vendors = ['moz', 'webkit'], suffix = 'AnimationFrame', raf = root['request' + suffix], caf = root['cancel' + suffix] || root['cancelRequest' + suffix]; for (var i = 0; !raf && i < vendors.length; i++) { raf = root[vendors[i] + 'Request' + suffix]; caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix]; } // Some versions of FF have rAF but not cAF if (!raf || !caf) { var last = 0, id = 0, queue = [], frameDuration = 1000 / 60; raf = function raf(callback) { if (queue.length === 0) { var _now = now(), next = Math.max(0, frameDuration - (_now - last)); last = next + _now; setTimeout(function () { var cp = queue.slice(0); // Clear queue here to prevent // callbacks from appending listeners // to the current frame's queue queue.length = 0; for (var i = 0; i < cp.length; i++) { if (!cp[i].cancelled) { try { cp[i].callback(last); } catch (e) { setTimeout(function () { throw e; }, 0); } } } }, Math.round(next)); } queue.push({ handle: ++id, callback: callback, cancelled: false }); return id; }; caf = function caf(handle) { for (var i = 0; i < queue.length; i++) { if (queue[i].handle === handle) { queue[i].cancelled = true; } } }; } module.exports = function (fn) { // Wrap in a new function to prevent // `cancel` potentially being assigned // to the native rAF function return raf.call(root, fn); }; module.exports.cancel = function () { caf.apply(root, arguments); }; module.exports.polyfill = function (object) { if (!object) { object = root; } object.requestAnimationFrame = raf; object.cancelAnimationFrame = caf; };", "/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; var b = "function" === typeof Symbol && Symbol.for, c = b ? Symbol.for("react.element") : 60103, d = b ? Symbol.for("react.portal") : 60106, e = b ? Symbol.for("react.fragment") : 60107, f = b ? Symbol.for("react.strict_mode") : 60108, g = b ? Symbol.for("react.profiler") : 60114, h = b ? Symbol.for("react.provider") : 60109, k = b ? Symbol.for("react.context") : 60110, l = b ? Symbol.for("react.async_mode") : 60111, m = b ? Symbol.for("react.concurrent_mode") : 60111, n = b ? Symbol.for("react.forward_ref") : 60112, p = b ? Symbol.for("react.suspense") : 60113, q = b ? Symbol.for("react.suspense_list") : 60120, r = b ? Symbol.for("react.memo") : 60115, t = b ? Symbol.for("react.lazy") : 60116, v = b ? Symbol.for("react.block") : 60121, w = b ? Symbol.for("react.fundamental") : 60117, x = b ? Symbol.for("react.responder") : 60118, y = b ? Symbol.for("react.scope") : 60119; function z(a) { if ("object" === typeof a && null !== a) { var u = a.$$typeof; switch (u) { case c: switch (a = a.type, a) { case l: case m: case e: case g: case f: case p: return a; default: switch (a = a && a.$$typeof, a) { case k: case n: case t: case r: case h: return a; default: return u; } } case d: return u; } } } function A(a) { return z(a) === m; } exports.AsyncMode = l; exports.ConcurrentMode = m; exports.ContextConsumer = k; exports.ContextProvider = h; exports.Element = c; exports.ForwardRef = n; exports.Fragment = e; exports.Lazy = t; exports.Memo = r; exports.Portal = d; exports.Profiler = g; exports.StrictMode = f; exports.Suspense = p; exports.isAsyncMode = function (a) { return A(a) || z(a) === l; }; exports.isConcurrentMode = A; exports.isContextConsumer = function (a) { return z(a) === k; }; exports.isContextProvider = function (a) { return z(a) === h; }; exports.isElement = function (a) { return "object" === typeof a && null !== a && a.$$typeof === c; }; exports.isForwardRef = function (a) { return z(a) === n; }; exports.isFragment = function (a) { return z(a) === e; }; exports.isLazy = function (a) { return z(a) === t; }; exports.isMemo = function (a) { return z(a) === r; }; exports.isPortal = function (a) { return z(a) === d; }; exports.isProfiler = function (a) { return z(a) === g; }; exports.isStrictMode = function (a) { return z(a) === f; }; exports.isSuspense = function (a) { return z(a) === p; }; exports.isValidElementType = function (a) { return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v); }; exports.typeOf = z;", "'use strict'; if (process.env.NODE_ENV === 'production') { module.exports = require('./cjs/react-is.production.min.js'); } else { module.exports = require('./cjs/react-is.development.js'); }", "// easing functions from "Tween.js" exports.linear = function (n) { return n; }; exports.inQuad = function (n) { return n * n; }; exports.outQuad = function (n) { return n * (2 - n); }; exports.inOutQuad = function (n) { n *= 2; if (n < 1) return 0.5 * n * n; return -0.5 * (--n * (n - 2) - 1); }; exports.inCube = function (n) { return n * n * n; }; exports.outCube = function (n) { return --n * n * n + 1; }; exports.inOutCube = function (n) { n *= 2; if (n < 1) return 0.5 * n * n * n; return 0.5 * ((n -= 2) * n * n + 2); }; exports.inQuart = function (n) { return n * n * n * n; }; exports.outQuart = function (n) { return 1 - --n * n * n * n; }; exports.inOutQuart = function (n) { n *= 2; if (n < 1) return 0.5 * n * n * n * n; return -0.5 * ((n -= 2) * n * n * n - 2); }; exports.inQuint = function (n) { return n * n * n * n * n; }; exports.outQuint = function (n) { return --n * n * n * n * n + 1; }; exports.inOutQuint = function (n) { n *= 2; if (n < 1) return 0.5 * n * n * n * n * n; return 0.5 * ((n -= 2) * n * n * n * n + 2); }; exports.inSine = function (n) { return 1 - Math.cos(n * Math.PI / 2); }; exports.outSine = function (n) { return Math.sin(n * Math.PI / 2); }; exports.inOutSine = function (n) { return .5 * (1 - Math.cos(Math.PI * n)); }; exports.inExpo = function (n) { return 0 == n ? 0 : Math.pow(1024, n - 1); }; exports.outExpo = function (n) { return 1 == n ? n : 1 - Math.pow(2, -10 * n); }; exports.inOutExpo = function (n) { if (0 == n) return 0; if (1 == n) return 1; if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1); return .5 * (-Math.pow(2, -10 * (n - 1)) + 2); }; exports.inCirc = function (n) { return 1 - Math.sqrt(1 - n * n); }; exports.outCirc = function (n) { return Math.sqrt(1 - --n * n); }; exports.inOutCirc = function (n) { n *= 2; if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1); return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1); }; exports.inBack = function (n) { var s = 1.70158; return n * n * ((s + 1) * n - s); }; exports.outBack = function (n) { var s = 1.70158; return --n * n * ((s + 1) * n + s) + 1; }; exports.inOutBack = function (n) { var s = 1.70158 * 1.525; if ((n *= 2) < 1) return 0.5 * (n * n * ((s + 1) * n - s)); return 0.5 * ((n -= 2) * n * ((s + 1) * n + s) + 2); }; exports.inBounce = function (n) { return 1 - exports.outBounce(1 - n); }; exports.outBounce = function (n) { if (n < 1 / 2.75) { return 7.5625 * n * n; } else if (n < 2 / 2.75) { return 7.5625 * (n -= 1.5 / 2.75) * n + 0.75; } else if (n < 2.5 / 2.75) { return 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375; } else { return 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375; } }; exports.inOutBounce = function (n) { if (n < .5) return exports.inBounce(n * 2) * .5; return exports.outBounce(n * 2 - 1) * .5 + .5; }; exports.inElastic = function (n) { var s, a = 0.1, p = 0.4; if (n === 0) return 0; if (n === 1) return 1; if (!a || a < 1) { a = 1; s = p / 4; } else s = p * Math.asin(1 / a) / (2 * Math.PI); return -(a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p)); }; exports.outElastic = function (n) { var s, a = 0.1, p = 0.4; if (n === 0) return 0; if (n === 1) return 1; if (!a || a < 1) { a = 1; s = p / 4; } else s = p * Math.asin(1 / a) / (2 * Math.PI); return a * Math.pow(2, -10 * n) * Math.sin((n - s) * (2 * Math.PI) / p) + 1; }; exports.inOutElastic = function (n) { var s, a = 0.1, p = 0.4; if (n === 0) return 0; if (n === 1) return 1; if (!a || a < 1) { a = 1; s = p / 4; } else s = p * Math.asin(1 / a) / (2 * Math.PI); if ((n *= 2) < 1) return -0.5 * (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p)); return a * Math.pow(2, -10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p) * 0.5 + 1; }; // aliases exports['in-quad'] = exports.inQuad; exports['out-quad'] = exports.outQuad; exports['in-out-quad'] = exports.inOutQuad; exports['in-cube'] = exports.inCube; exports['out-cube'] = exports.outCube; exports['in-out-cube'] = exports.inOutCube; exports['in-quart'] = exports.inQuart; exports['out-quart'] = exports.outQuart; exports['in-out-quart'] = exports.inOutQuart; exports['in-quint'] = exports.inQuint; exports['out-quint'] = exports.outQuint; exports['in-out-quint'] = exports.inOutQuint; exports['in-sine'] = exports.inSine; exports['out-sine'] = exports.outSine; exports['in-out-sine'] = exports.inOutSine; exports['in-expo'] = exports.inExpo; exports['out-expo'] = exports.outExpo; exports['in-out-expo'] = exports.inOutExpo; exports['in-circ'] = exports.inCirc; exports['out-circ'] = exports.outCirc; exports['in-out-circ'] = exports.inOutCirc; exports['in-back'] = exports.inBack; exports['out-back'] = exports.outBack; exports['in-out-back'] = exports.inOutBack; exports['in-bounce'] = exports.inBounce; exports['out-bounce'] = exports.outBounce; exports['in-out-bounce'] = exports.inOutBounce; exports['in-elastic'] = exports.inElastic; exports['out-elastic'] = exports.outElastic; exports['in-out-elastic'] = exports.inOutElastic;", "function Emitter(obj) { if (obj) return mixin(obj); } ; function mixin(obj) { for (var key in Emitter.prototype) { obj[key] = Emitter.prototype[key]; } return obj; } Emitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) { this._callbacks = this._callbacks || {}; (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn); return this; }; Emitter.prototype.once = function (event, fn) { function on() { this.off(event, on); fn.apply(this, arguments); } on.fn = fn; this.on(event, on); return this; }; Emitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) { this._callbacks = this._callbacks || {}; // all if (0 == arguments.length) { this._callbacks = {}; return this; } // specific event var callbacks = this._callbacks['$' + event]; if (!callbacks) return this; // remove all handlers if (1 == arguments.length) { delete this._callbacks['$' + event]; return this; } // remove specific handler var cb; for (var i = 0; i < callbacks.length; i++) { cb = callbacks[i]; if (cb === fn || cb.fn === fn) { callbacks.splice(i, 1); break; } } // Remove event specific arrays for event types that no // one is subscribed for to avoid memory leak. if (callbacks.length === 0) { delete this._callbacks['$' + event]; } return this; }; Emitter.prototype.emit = function (event) { this._callbacks = this._callbacks || {}; var args = [].slice.call(arguments, 1), callbacks = this._callbacks['$' + event]; if (callbacks) { callbacks = callbacks.slice(0); for (var i = 0, len = callbacks.length; i < len; ++i) { callbacks[i].apply(this, args); } } return this; }; Emitter.prototype.listeners = function (event) { this._callbacks = this._callbacks || {}; return this._callbacks['$' + event] || []; }; Emitter.prototype.hasListeners = function (event) { return !!this.listeners(event).length; }; if (typeof module !== 'undefined') { module.exports = Emitter; }", "var scroll = require('./scroll-to'); function calculateScrollOffset(elem, additionalOffset, alignment) { var body = document.body, html = document.documentElement; var elemRect = elem.getBoundingClientRect(); var clientHeight = html.clientHeight; var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight); additionalOffset = additionalOffset || 0; var scrollPosition; if (alignment === 'bottom') { scrollPosition = elemRect.bottom - clientHeight; } else if (alignment === 'middle') { scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2; } else { // top and default scrollPosition = elemRect.top; } var maxScrollPosition = documentHeight - clientHeight; return Math.min(scrollPosition + additionalOffset + window.pageYOffset, maxScrollPosition); } module.exports = function (elem, options) { options = options || {}; if (typeof elem === 'string') elem = document.querySelector(elem); if (elem) return scroll(0, calculateScrollOffset(elem, options.offset, options.align), options); };", "var Tween = require('./tween'); var raf = require('raf'); function scroll() { var y = window.pageYOffset || document.documentElement.scrollTop; var x = window.pageXOffset || document.documentElement.scrollLeft; return { top: y, left: x }; } function scrollTo(x, y, options) { options = options || {}; // start position var start = scroll(); // setup tween var tween = Tween(start).ease(options.ease || 'out-circ').to({ top: y, left: x }).duration(options.duration || 1000); // scroll tween.update(function (o) { window.scrollTo(o.left | 0, o.top | 0); }); // handle end tween.on('end', function () { animate = function animate() {}; }); // animate function animate() { raf(animate); tween.update(); } animate(); return tween; } module.exports = scrollTo;", "var ease = require('./ease'); var Emitter = require('./emitter'); function extend(obj, src) { for (var key in src) { if (src.hasOwnProperty(key)) obj[key] = src[key]; } return obj; } function Tween(obj) { if (!(this instanceof Tween)) return new Tween(obj); this._from = obj; this.ease('linear'); this.duration(500); } Emitter(Tween.prototype); Tween.prototype.reset = function () { this.isArray = Object.prototype.toString.call(this._from) === '[object Array]'; this._curr = extend({}, this._from); this._done = false; this._start = Date.now(); return this; }; Tween.prototype.to = function (obj) { this.reset(); this._to = obj; return this; }; Tween.prototype.duration = function (ms) { this._duration = ms; return this; }; Tween.prototype.ease = function (fn) { fn = 'function' == typeof fn ? fn : ease[fn]; if (!fn) throw new TypeError('invalid easing function'); this._ease = fn; return this; }; Tween.prototype.stop = function () { this.stopped = true; this._done = true; this.emit('stop'); this.emit('end'); return this; }; Tween.prototype.step = function () { if (this._done) return; var duration = this._duration; var now = Date.now(); var delta = now - this._start; var done = delta >= duration; if (done) { this._from = this._to; this._update(this._to); this._done = true; this.emit('end'); return this; } var from = this._from; var to = this._to; var curr = this._curr; var fn = this._ease; var p = (now - this._start) / duration; var n = fn(p); if (this.isArray) { for (var i = 0; i < from.length; ++i) { curr[i] = from[i] + (to[i] - from[i]) * n; } this._update(curr); return this; } for (var k in from) { curr[k] = from[k] + (to[k] - from[k]) * n; } this._update(curr); return this; }; Tween.prototype.update = function (fn) { if (0 == arguments.length) return this.step(); this._update = fn; return this; }; module.exports = Tween;", ""use strict"; module.exports = Object.assign;", ""use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.withPrefix = withPrefix; exports.withAssetPrefix = withAssetPrefix; exports.navigate = exports.default = void 0; var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _reachRouter = require("@gatsbyjs/reach-router"); var _utils = require("@gatsbyjs/reach-router/lib/utils"); var _parsePath = require("./parse-path"); exports.parsePath = _parsePath.parsePath; var _excluded = ["to", "getProps", "onClick", "onMouseEnter", "activeClassName", "activeStyle", "innerRef", "partiallyActive", "state", "replace", "_location"]; var isAbsolutePath = function isAbsolutePath(path) { return path === null || path === void 0 ? void 0 : path.startsWith("/"); }; function withPrefix(path, prefix) { var _ref, _prefix; if (prefix === void 0) { prefix = getGlobalBasePrefix(); } if (!isLocalLink(path)) { return path; } if (path.startsWith("./") || path.startsWith("../")) { return path; } var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : "/"; return "" + (base !== null && base !== void 0 && base.endsWith("/") ? base.slice(0, -1) : base) + (path.startsWith("/") ? path : "/" + path); } // These global values are wrapped in typeof clauses to ensure the values exist. // This is especially problematic in unit testing of this component. var getGlobalPathPrefix = function getGlobalPathPrefix() { return process.env.NODE_ENV !== "production" ? typeof __PATH_PREFIX__ !== "undefined" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__; }; var getGlobalBasePrefix = function getGlobalBasePrefix() { return process.env.NODE_ENV !== "production" ? typeof __BASE_PATH__ !== "undefined" ? __BASE_PATH__ : undefined : __BASE_PATH__; }; var isLocalLink = function isLocalLink(path) { return path && !path.startsWith("http://") && !path.startsWith("https://") && !path.startsWith("//"); }; function withAssetPrefix(path) { return withPrefix(path, getGlobalPathPrefix()); } function absolutify(path, current) { // If it's already absolute, return as-is if (isAbsolutePath(path)) { return path; } return (0, _utils.resolve)(path, current); } var rewriteLinkPath = function rewriteLinkPath(path, relativeTo) { if (typeof path === "number") { return path; } if (!isLocalLink(path)) { return path; } return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo); }; var NavLinkPropTypes = { activeClassName: _propTypes.default.string, activeStyle: _propTypes.default.object, partiallyActive: _propTypes.default.bool }; // Set up IntersectionObserver var createIntersectionObserver = function createIntersectionObserver(el, cb) { var io = new window.IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (el === entry.target) { // Check if element is within viewport, remove listener, destroy observer, and run link callback. // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0 if (entry.isIntersecting || entry.intersectionRatio > 0) { io.unobserve(el); io.disconnect(); cb(); } } }); }); // Add element to the observer io.observe(el); return { instance: io, el: el }; }; function GatsbyLinkLocationWrapper(props) { return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) { var location = _ref2.location; return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, { _location: location })); }); } var GatsbyLink = /*#__PURE__*/function (_React$Component) { (0, _inheritsLoose2.default)(GatsbyLink, _React$Component); function GatsbyLink(props) { var _this; _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver _this.defaultGetProps = function (_ref3) { var isPartiallyCurrent = _ref3.isPartiallyCurrent, isCurrent = _ref3.isCurrent; if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) { return { className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(" "), style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle) }; } return null; }; var IOSupported = false; if (typeof window !== "undefined" && window.IntersectionObserver) { IOSupported = true; } _this.state = { IOSupported: IOSupported }; _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this)); return _this; } var _proto = GatsbyLink.prototype; _proto._prefetch = function _prefetch() { var currentPath = window.location.pathname; // reach router should have the correct state if (this.props._location && this.props._location.pathname) { currentPath = this.props._location.pathname; } var rewrittenPath = rewriteLinkPath(this.props.to, currentPath); var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation, // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete if (currentPath !== newPathName) { ___loader.enqueue(newPathName); } }; _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { // Preserve non IO functionality if no support if (this.props.to !== prevProps.to && !this.state.IOSupported) { this._prefetch(); } }; _proto.componentDidMount = function componentDidMount() { // Preserve non IO functionality if no support if (!this.state.IOSupported) { this._prefetch(); } }; _proto.componentWillUnmount = function componentWillUnmount() { if (!this.io) { return; } var _this$io = this.io, instance = _this$io.instance, el = _this$io.el; instance.unobserve(el); instance.disconnect(); }; _proto.handleRef = function handleRef(ref) { var _this2 = this; if (this.props.innerRef && this.props.innerRef.hasOwnProperty("current")) { this.props.innerRef.current = ref; } else if (this.props.innerRef) { this.props.innerRef(ref); } if (this.state.IOSupported && ref) { // If IO supported and element reference found, setup Observer functionality this.io = createIntersectionObserver(ref, function () { _this2._prefetch(); }); } }; _proto.render = function render() { var _this3 = this; var _this$props = this.props, to = _this$props.to, _this$props$getProps = _this$props.getProps, getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps, _onClick = _this$props.onClick, _onMouseEnter = _this$props.onMouseEnter, $activeClassName = _this$props.activeClassName, $activeStyle = _this$props.activeStyle, $innerRef = _this$props.innerRef, partiallyActive = _this$props.partiallyActive, state = _this$props.state, replace = _this$props.replace, _location = _this$props._location, rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded); if (process.env.NODE_ENV !== "production" && !isLocalLink(to)) { 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"); } var prefixedTo = rewriteLinkPath(to, _location.pathname); if (!isLocalLink(prefixedTo)) { return /*#__PURE__*/_react.default.createElement("a", (0, _extends2.default)({ href: prefixedTo }, rest)); } return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({ to: prefixedTo, state: state, getProps: getProps, innerRef: this.handleRef, onMouseEnter: function onMouseEnter(e) { if (_onMouseEnter) { _onMouseEnter(e); } ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname); }, onClick: function onClick(e) { if (_onClick) { _onClick(e); } if (e.button === 0 && // ignore right clicks !_this3.props.target && // let browser handle "target=_blank" !e.defaultPrevented && // onClick prevented default !e.metaKey && // ignore clicks with modifier keys... !e.altKey && !e.ctrlKey && !e.shiftKey) { e.preventDefault(); var shouldReplace = replace; var isCurrent = encodeURI(prefixedTo) === _location.pathname; if (typeof replace !== "boolean" && isCurrent) { shouldReplace = true; } // Make sure the necessary scripts and data are // loaded before continuing. window.___navigate(prefixedTo, { state: state, replace: shouldReplace }); } return true; } }, rest)); }; return GatsbyLink; }(_react.default.Component); GatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, { onClick: _propTypes.default.func, to: _propTypes.default.string.isRequired, replace: _propTypes.default.bool, state: _propTypes.default.object }); var _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) { return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({ innerRef: ref }, props)); }); exports.default = _default; var navigate = function navigate(to, options) { window.___navigate(rewriteLinkPath(to, window.location.pathname), options); }; exports.navigate = navigate;", ""use strict"; exports.__esModule = true; exports.parsePath = parsePath; function parsePath(path) { var pathname = path || "/"; var search = ""; var hash = ""; var hashIndex = pathname.indexOf("#"); if (hashIndex !== -1) { hash = pathname.substr(hashIndex); pathname = pathname.substr(0, hashIndex); } var searchIndex = pathname.indexOf("?"); if (searchIndex !== -1) { search = pathname.substr(searchIndex); pathname = pathname.substr(0, searchIndex); } return { pathname: pathname, search: search === "?" ? "" : search, hash: hash === "#" ? "" : hash }; }", ""use strict"; exports.__esModule = true; exports.useScrollRestoration = exports.ScrollContext = void 0; var _scrollHandler = require("./scroll-handler"); exports.ScrollContext = _scrollHandler.ScrollHandler; var _useScrollRestoration = require("./use-scroll-restoration"); exports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;", ""use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.ScrollHandler = exports.ScrollContext = void 0; var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _sessionStorage = require("./session-storage"); function _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); } function _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; } var ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage()); exports.ScrollContext = ScrollContext; ScrollContext.displayName = "GatsbyScrollContext"; var ScrollHandler = /*#__PURE__*/function (_React$Component) { (0, _inheritsLoose2.default)(ScrollHandler, _React$Component); function ScrollHandler() { var _this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; _this._stateStorage = new _sessionStorage.SessionStorage(); _this._isTicking = false; _this._latestKnownScrollY = 0; _this.scrollListener = function () { _this._latestKnownScrollY = window.scrollY; if (!_this._isTicking) { _this._isTicking = true; requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this))); } }; _this.windowScroll = function (position, prevProps) { if (_this.shouldUpdateScroll(prevProps, _this.props)) { window.scrollTo(0, position); } }; _this.scrollToHash = function (hash, prevProps) { var node = document.getElementById(hash.substring(1)); if (node && _this.shouldUpdateScroll(prevProps, _this.props)) { node.scrollIntoView(); } }; _this.shouldUpdateScroll = function (prevRouterProps, routerProps) { var shouldUpdateScroll = _this.props.shouldUpdateScroll; if (!shouldUpdateScroll) { return true; } // Hack to allow accessing this._stateStorage. return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps); }; return _this; } var _proto = ScrollHandler.prototype; _proto._saveScroll = function _saveScroll() { var key = this.props.location.key || null; if (key) { this._stateStorage.save(this.props.location, key, this._latestKnownScrollY); } this._isTicking = false; }; _proto.componentDidMount = function componentDidMount() { window.addEventListener("scroll", this.scrollListener); var scrollPosition; var _this$props$location = this.props.location, key = _this$props$location.key, hash = _this$props$location.hash; if (key) { scrollPosition = this._stateStorage.read(this.props.location, key); } if (scrollPosition) { this.windowScroll(scrollPosition, undefined); } else if (hash) { this.scrollToHash(decodeURI(hash), undefined); } }; _proto.componentWillUnmount = function componentWillUnmount() { window.removeEventListener("scroll", this.scrollListener); }; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { var _this$props$location2 = this.props.location, hash = _this$props$location2.hash, key = _this$props$location2.key; var scrollPosition; if (key) { scrollPosition = this._stateStorage.read(this.props.location, key); } /** There are two pieces of state: the browser url and * history state which keeps track of scroll position * Native behaviour prescribes that we ought to restore scroll position * when a user navigates back in their browser (this is the `POP` action) * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228 * So we _always_ stick to the url as a source of truth — if the url * contains a hash, we scroll to it */ if (hash) { this.scrollToHash(decodeURI(hash), prevProps); } else { this.windowScroll(scrollPosition, prevProps); } }; _proto.render = function render() { return /*#__PURE__*/React.createElement(ScrollContext.Provider, { value: this._stateStorage }, this.props.children); }; return ScrollHandler; }(React.Component); exports.ScrollHandler = ScrollHandler; ScrollHandler.propTypes = { shouldUpdateScroll: _propTypes.default.func, children: _propTypes.default.element.isRequired, location: _propTypes.default.object.isRequired };", ""use strict"; exports.__esModule = true; exports.SessionStorage = void 0; var STATE_KEY_PREFIX = "@@scroll|"; var GATSBY_ROUTER_SCROLL_STATE = "___GATSBY_REACT_ROUTER_SCROLL"; var SessionStorage = /*#__PURE__*/function () { function SessionStorage() {} var _proto = SessionStorage.prototype; _proto.read = function read(location, key) { var stateKey = this.getStateKey(location, key); try { var value = window.sessionStorage.getItem(stateKey); return value ? JSON.parse(value) : 0; } catch (e) { if (process.env.NODE_ENV !== "production") { console.warn("[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available."); } if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) { return window[GATSBY_ROUTER_SCROLL_STATE][stateKey]; } return 0; } }; _proto.save = function save(location, key, value) { var stateKey = this.getStateKey(location, key); var storedValue = JSON.stringify(value); try { window.sessionStorage.setItem(stateKey, storedValue); } catch (e) { if (window && window[GATSBY_ROUTER_SCROLL_STATE]) { window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue); } else { window[GATSBY_ROUTER_SCROLL_STATE] = {}; window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue); } if (process.env.NODE_ENV !== "production") { console.warn("[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available."); } } }; _proto.getStateKey = function getStateKey(location, key) { var stateKeyBase = "" + STATE_KEY_PREFIX + location.pathname; return key === null || typeof key === "undefined" ? stateKeyBase : stateKeyBase + "|" + key; }; return SessionStorage; }(); exports.SessionStorage = SessionStorage;", ""use strict"; exports.__esModule = true; exports.useScrollRestoration = useScrollRestoration; var _scrollHandler = require("./scroll-handler"); var _react = require("react"); var _reachRouter = require("@gatsbyjs/reach-router"); function useScrollRestoration(identifier) { var location = (0, _reachRouter.useLocation)(); var state = (0, _react.useContext)(_scrollHandler.ScrollContext); var ref = (0, _react.useRef)(null); (0, _react.useLayoutEffect)(function () { if (ref.current) { var position = state.read(location, identifier); ref.current.scrollTo(0, position || 0); } }, [location.key]); return { ref: ref, onScroll: function onScroll() { if (ref.current) { state.save(location, identifier, ref.current.scrollTop); } } }; }", "/** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; /** * Use invariant() to assert state which your program assumes to be true. * * Provide sprintf-style format (only %s is supported) and arguments * to provide information about what broke and what you were * expecting. * * The invariant message will be stripped in production, but the invariant * will remain to ensure logic does not differ in production. */ var invariant = function(condition, format, a, b, c, d, e, f) { if (process.env.NODE_ENV !== 'production') { if (format === undefined) { throw new Error('invariant requires an error message argument'); } } if (!condition) { var error; if (format === undefined) { error = new Error( 'Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.' ); } else { var args = [a, b, c, d, e, f]; var argIndex = 0; error = new Error( format.replace(/%s/g, function() { return args[argIndex++]; }) ); error.name = 'Invariant Violation'; } error.framesToPop = 1; // we don't care about invariant's own frame throw error; } }; module.exports = invariant; ", "export const onClientEntry = () => { const isDebugMode = document.location.search.includes('show_debug_info'); if (isDebugMode) { const params = { UMBRACO_BASE_URL: process.env.GATSBY_UMBRACO_BASE_URL, NODE_ENV: process.env.NODE_ENV, }; let parsedEnvs = {}; try { parsedEnvs = JSON.parse(process.env.GATSBY_DEBUG as string); } catch (err) { console.log( 'GATSBY_DEBUG not passed or its not contain a JSON object', err, process.env.GATSBY_DEBUG ); } console.log({ ...params, ...parsedEnvs }); } }; ", ""use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.INVALID_HASH = exports.IMPROPPER_FORMATTING = void 0; var IMPROPPER_FORMATTING = 'Anchor path should contain an absolute root path `/` and selector `#` Ex: `/about#team`'; exports.IMPROPPER_FORMATTING = IMPROPPER_FORMATTING; var INVALID_HASH = 'Anchor Links plugin attempted to scroll to an invalid hash on route change.'; exports.INVALID_HASH = INVALID_HASH;", ""use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.onRouteUpdate = void 0; var _utils = require("./utils"); var onRouteUpdate = function onRouteUpdate(_ref, _ref2) { var location = _ref.location; var _ref2$offset = _ref2.offset, offset = _ref2$offset === void 0 ? 0 : _ref2$offset, _ref2$duration = _ref2.duration, duration = _ref2$duration === void 0 ? 1000 : _ref2$duration; var windowHash; if (_utils.isBrowser) { window.gatsby_scroll_offset = offset; window.gatsby_scroll_duration = duration; windowHash = window.gatsby_scroll_hash; } windowHash ? (0, _utils.scroller)(windowHash, offset) : (0, _utils.checkHash)(location, offset); if (_utils.isBrowser && windowHash) { window.gatsby_scroll_hash = undefined; } }; exports.onRouteUpdate = onRouteUpdate;", ""use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.logWarning = logWarning; exports.scroller = scroller; exports.handleLinkClick = handleLinkClick; exports.handleStrippedLinkClick = handleStrippedLinkClick; exports.stripHashedLocation = stripHashedLocation; exports.checkHash = checkHash; exports.isDevelopment = exports.isBrowser = void 0; var _scrollToElement = _interopRequireDefault(require("scroll-to-element")); var _gatsby = require("gatsby"); var errorTypes = _interopRequireWildcard(require("./errors")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var isBrowser = typeof window !== 'undefined'; exports.isBrowser = isBrowser; var isDevelopment = process.env.NODE_ENV !== 'production'; exports.isDevelopment = isDevelopment; function logWarning(message) { if (isDevelopment) console.warn(message); } function scroller(target) { var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000; (0, _scrollToElement["default"])(target, { duration: duration, offset: offset }); } function handleLinkClick(to, e, onAnchorLinkClick) { /** * Log warnings on click */ var improperFormatting = !to.includes('/') || !to.includes('#'); if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING); if (isBrowser && to.includes('#')) { var _to$split = to.split('#'), _to$split2 = _slicedToArray(_to$split, 2), anchorPath = _to$split2[0], anchor = _to$split2[1]; if (window.location.pathname === (0, _gatsby.withPrefix)(anchorPath)) { e.preventDefault(); scroller("#".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration); } } if (onAnchorLinkClick) onAnchorLinkClick(); } function handleStrippedLinkClick(to, e, onAnchorLinkClick) { /** * Log warnings on click */ var improperFormatting = !to.includes('/') || !to.includes('#'); if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING); var _to$split3 = to.split('#'), _to$split4 = _slicedToArray(_to$split3, 2), anchorPath = _to$split4[0], anchor = _to$split4[1]; /** * Determine location, run scroller or set window variable */ var isSamePage = isBrowser && window.location.pathname === anchorPath; var isDifferentPage = isBrowser && window.location.pathname !== anchorPath; if (isSamePage) { e.preventDefault(); scroller("#".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration); } if (isDifferentPage) { window.gatsby_scroll_hash = "#".concat(anchor); } if (onAnchorLinkClick) onAnchorLinkClick(); } function stripHashedLocation(to) { return to.split('#')[0]; } function checkHash(location, offset) { var hash = location.hash, selector = hash ? hash.substr(1) : null, validElement = selector ? document.getElementById(selector) : null; if (hash && Boolean(validElement)) scroller(hash, offset);else if (hash && selector && !validElement) logWarning(errorTypes.INVALID_HASH); }", "const listOfMetricsSend = new Set(); function debounce(fn, timeout) { let timer = null; return function (...args) { if (timer) { clearTimeout(timer); } timer = setTimeout(fn, timeout, ...args); }; } function sendWebVitals(dataLayerName = `dataLayer`) { const win = window; function sendData(data) { if (listOfMetricsSend.has(data.name)) { return; } listOfMetricsSend.add(data.name); sendToGTM(data, win[dataLayerName]); } return import(`web-vitals/base`).then(({ getLCP, getFID, getCLS }) => { const debouncedCLS = debounce(sendData, 3000); // we don't need to debounce FID - we send it when it happens const debouncedFID = sendData; // LCP can occur multiple times so we debounce it const debouncedLCP = debounce(sendData, 3000); // With the true flag, we measure all previous occurences too, in case we start listening to late. getCLS(debouncedCLS, true); getFID(debouncedFID, true); getLCP(debouncedLCP, true); }); } function sendToGTM({ name, value, id }, dataLayer) { dataLayer.push({ event: `core-web-vitals`, webVitalsMeasurement: { name: name, // The `id` value will be unique to the current page load. When sending // multiple values from the same page (e.g. for CLS), Google Analytics can // compute a total by grouping on this ID (note: requires `eventLabel` to // be a dimension in your report). id, // Google Analytics metrics must be integers, so the value is rounded. // For CLS the value is first multiplied by 1000 for greater precision // (note: increase the multiplier for greater precision if needed). value: Math.round(name === `CLS` ? value * 1000 : value) } }); } export function onRouteUpdate(_, pluginOptions) { if (process.env.NODE_ENV === `production` || pluginOptions.includeInDevelopment) { // wrap inside a timeout to ensure the title has properly been changed setTimeout(() => { const data = pluginOptions.dataLayerName ? window[pluginOptions.dataLayerName] : window.dataLayer; const eventName = pluginOptions.routeChangeEventName ? pluginOptions.routeChangeEventName : `gatsby-route-change`; data.push({ event: eventName }); }, 50); } } export function onInitialClientRender(_, pluginOptions) { // we only load the polyfill in production so we can't enable it in development if (process.env.NODE_ENV === `production` && pluginOptions.enableWebVitalsTracking) { sendWebVitals(pluginOptions.dataLayerName); } }", "/* eslint-disable no-unused-expressions */ import { stripIndent } from "common-tags" import camelCase from "camelcase" import { IGatsbyImageData } from "." const DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2] export const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920] export const EVERY_BREAKPOINT = [ 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096, ] const DEFAULT_FLUID_WIDTH = 800 const DEFAULT_FIXED_WIDTH = 800 const DEFAULT_ASPECT_RATIO = 4 / 3 export type Fit = "cover" | "fill" | "inside" | "outside" | "contain" export type Layout = "fixed" | "fullWidth" | "constrained" export type ImageFormat = "jpg" | "png" | "webp" | "avif" | "auto" | "" /** * The minimal required reporter, as we don't want to import it from gatsby-cli */ export interface IReporter { warn(message: string): void } export interface ISharpGatsbyImageArgs { layout?: Layout formats?: Array placeholder?: "tracedSVG" | "dominantColor" | "blurred" | "none" tracedSVGOptions?: Record width?: number height?: number aspectRatio?: number sizes?: string quality?: number transformOptions?: { fit?: Fit cropFocus?: number | string duotone?: { highlight: string shadow: string opacity?: number } grayscale?: boolean rotate?: number trim?: number } jpgOptions?: Record pngOptions?: Record webpOptions?: Record avifOptions?: Record blurredOptions?: { width?: number; toFormat?: ImageFormat } breakpoints?: Array backgroundColor?: string } export interface IImageSizeArgs { width?: number height?: number layout?: Layout filename: string outputPixelDensities?: Array breakpoints?: Array fit?: Fit reporter?: IReporter sourceMetadata: { width: number; height: number } } export interface IImageSizes { sizes: Array presentationWidth: number presentationHeight: number aspectRatio: number unscaledWidth: number } export interface IImage { src: string width: number height: number format: ImageFormat } export interface IGatsbyImageHelperArgs { pluginName: string generateImageSource: ( filename: string, width: number, height: number, format: ImageFormat, fit?: Fit, options?: Record ) => IImage layout?: Layout formats?: Array filename: string placeholderURL?: string width?: number height?: number sizes?: string reporter?: IReporter sourceMetadata?: { width: number; height: number; format: ImageFormat } fit?: Fit options?: Record breakpoints?: Array backgroundColor?: string aspectRatio?: number } const warn = (message: string): void => console.warn(message) const sortNumeric = (a: number, b: number): number => a - b export const getSizes = (width: number, layout: Layout): string | undefined => { switch (layout) { // If screen is wider than the max size, image width is the max size, // otherwise it's the width of the screen case `constrained`: return `(min-width: ${width}px) ${width}px, 100vw` // Image is always the same width, whatever the size of the screen case `fixed`: return `${width}px` // Image is always the width of the screen case `fullWidth`: return `100vw` default: return undefined } } export const getSrcSet = (images: Array): string => images.map(image => `${image.src} ${image.width}w`).join(`,\n`) export function formatFromFilename(filename: string): ImageFormat | undefined { const dot = filename.lastIndexOf(`.`) if (dot !== -1) { const ext = filename.substr(dot + 1) if (ext === `jpeg`) { return `jpg` } if (ext.length === 3 || ext.length === 4) { return ext as ImageFormat } } return undefined } export function setDefaultDimensions( args: IGatsbyImageHelperArgs ): IGatsbyImageHelperArgs { let { layout = `constrained`, width, height, sourceMetadata, breakpoints, aspectRatio, formats = [`auto`, `webp`], } = args formats = formats.map(format => format.toLowerCase() as ImageFormat) layout = camelCase(layout) as Layout if (width && height) { return { ...args, formats, layout, aspectRatio: width / height } } if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) { aspectRatio = sourceMetadata.width / sourceMetadata.height } if (layout === `fullWidth`) { width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1] height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO)) } else { if (!width) { if (height && aspectRatio) { width = height * aspectRatio } else if (sourceMetadata.width) { width = sourceMetadata.width } else if (height) { width = Math.round(height / DEFAULT_ASPECT_RATIO) } else { width = DEFAULT_FIXED_WIDTH } } if (aspectRatio && !height) { height = Math.round(width / aspectRatio) } else if (!aspectRatio) { aspectRatio = width / height } } return { ...args, width, height, aspectRatio, layout, formats } } /** * Use this for getting an image for the blurred placeholder. This ensures the * aspect ratio and crop match the main image */ export function getLowResolutionImageURL( args: IGatsbyImageHelperArgs, width = 20 ): string { args = setDefaultDimensions(args) const { generateImageSource, filename, aspectRatio } = args return generateImageSource( filename, width, Math.round(width / aspectRatio), args.sourceMetadata.format || `jpg`, args.fit, args.options )?.src } export function generateImageData( args: IGatsbyImageHelperArgs ): IGatsbyImageData { args = setDefaultDimensions(args) let { pluginName, sourceMetadata, generateImageSource, layout, fit, options, width, height, filename, reporter = { warn }, backgroundColor, placeholderURL, } = args if (!pluginName) { reporter.warn( `[gatsby-plugin-image] "generateImageData" was not passed a plugin name` ) } if (typeof generateImageSource !== `function`) { throw new Error(`generateImageSource must be a function`) } if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) { // No metadata means we let the CDN handle max size etc, aspect ratio etc sourceMetadata = { width, height, format: sourceMetadata?.format || formatFromFilename(filename) || `auto`, } } else if (!sourceMetadata.format) { sourceMetadata.format = formatFromFilename(filename) } const formats = new Set(args.formats) if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) { formats.delete(`auto`) formats.delete(``) formats.add(sourceMetadata.format) } if (formats.has(`jpg`) && formats.has(`png`)) { reporter.warn( `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead` ) if (sourceMetadata.format === `jpg`) { formats.delete(`png`) } else { formats.delete(`jpg`) } } const imageSizes = calculateImageSizes({ ...args, sourceMetadata }) const result: IGatsbyImageData["images"] = { sources: [], } let sizes = args.sizes if (!sizes) { sizes = getSizes(imageSizes.presentationWidth, layout) } formats.forEach(format => { const images = imageSizes.sizes .map(size => { const imageSrc = generateImageSource( filename, size, Math.round(size / imageSizes.aspectRatio), format, fit, options ) if ( !imageSrc?.width || !imageSrc.height || !imageSrc.src || !imageSrc.format ) { reporter.warn( `[${pluginName}] The resolver for image ${filename} returned an invalid value.` ) return undefined } return imageSrc }) .filter(Boolean) if (format === `jpg` || format === `png` || format === `auto`) { const unscaled = images.find(img => img.width === imageSizes.unscaledWidth) || images[0] if (unscaled) { result.fallback = { src: unscaled.src, srcSet: getSrcSet(images), sizes, } } } else { result.sources?.push({ srcSet: getSrcSet(images), sizes, type: `image/${format}`, }) } }) const imageProps: Partial = { images: result, layout, backgroundColor, } if (placeholderURL) { imageProps.placeholder = { fallback: placeholderURL } } switch (layout) { case `fixed`: imageProps.width = imageSizes.presentationWidth imageProps.height = imageSizes.presentationHeight break case `fullWidth`: imageProps.width = 1 imageProps.height = 1 / imageSizes.aspectRatio break case `constrained`: imageProps.width = args.width || imageSizes.presentationWidth || 1 imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio } return imageProps as IGatsbyImageData } const dedupeAndSortDensities = (values: Array): Array => Array.from(new Set([1, ...values])).sort(sortNumeric) export function calculateImageSizes(args: IImageSizeArgs): IImageSizes { const { width, height, filename, layout = `constrained`, sourceMetadata: imgDimensions, reporter = { warn }, breakpoints = DEFAULT_BREAKPOINTS, } = args // check that all dimensions provided are positive const userDimensions = { width, height } const erroneousUserDimensions = Object.entries(userDimensions).filter( ([_, size]) => typeof size === `number` && size < 1 ) if (erroneousUserDimensions.length) { throw new Error( `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions .map(dim => dim.join(`: `)) .join(`, `)}` ) } if (layout === `fixed`) { return fixedImageSizes(args) } else if (layout === `constrained`) { return responsiveImageSizes(args) } else if (layout === `fullWidth`) { return responsiveImageSizes({ breakpoints, ...args }) } else { reporter.warn( `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}` ) return { sizes: [imgDimensions.width], presentationWidth: imgDimensions.width, presentationHeight: imgDimensions.height, aspectRatio: imgDimensions.width / imgDimensions.height, unscaledWidth: imgDimensions.width, } } } export function fixedImageSizes({ filename, sourceMetadata: imgDimensions, width, height, fit = `cover`, outputPixelDensities = DEFAULT_PIXEL_DENSITIES, reporter = { warn }, }: IImageSizeArgs): IImageSizes { let aspectRatio = imgDimensions.width / imgDimensions.height // Sort, dedupe and ensure there's a 1 const densities = dedupeAndSortDensities(outputPixelDensities) // If both are provided then we need to check the fit if (width && height) { const calculated = getDimensionsAndAspectRatio(imgDimensions, { width, height, fit, }) width = calculated.width height = calculated.height aspectRatio = calculated.aspectRatio } if (!width) { if (!height) { width = DEFAULT_FIXED_WIDTH } else { width = Math.round(height * aspectRatio) } } else if (!height) { height = Math.round(width / aspectRatio) } const originalWidth = width // will use this for presentationWidth, don't want to lose it const isTopSizeOverriden = imgDimensions.width < width || imgDimensions.height < (height as number) // If the image is smaller than requested, warn the user that it's being processed as such // print out this message with the necessary information before we overwrite it for sizing if (isTopSizeOverriden) { const fixedDimension = imgDimensions.width < width ? `width` : `height` reporter.warn(stripIndent` The requested ${fixedDimension} "${ fixedDimension === `width` ? width : height }px" for the image ${filename} was larger than the actual image ${fixedDimension} of ${ imgDimensions[fixedDimension] }px. If possible, replace the current image with a larger one.`) if (fixedDimension === `width`) { width = imgDimensions.width height = Math.round(width / aspectRatio) } else { height = imgDimensions.height width = height * aspectRatio } } const sizes = densities .filter(size => size >= 1) // remove smaller densities because fixed images don't need them .map(density => Math.round(density * (width as number))) .filter(size => size <= imgDimensions.width) return { sizes, aspectRatio, presentationWidth: originalWidth, presentationHeight: Math.round(originalWidth / aspectRatio), unscaledWidth: width, } } export function responsiveImageSizes({ sourceMetadata: imgDimensions, width, height, fit = `cover`, outputPixelDensities = DEFAULT_PIXEL_DENSITIES, breakpoints, layout, }: IImageSizeArgs): IImageSizes { let sizes let aspectRatio = imgDimensions.width / imgDimensions.height // Sort, dedupe and ensure there's a 1 const densities = dedupeAndSortDensities(outputPixelDensities) // If both are provided then we need to check the fit if (width && height) { const calculated = getDimensionsAndAspectRatio(imgDimensions, { width, height, fit, }) width = calculated.width height = calculated.height aspectRatio = calculated.aspectRatio } // Case 1: width of height were passed in, make sure it isn't larger than the actual image width = width && Math.min(width, imgDimensions.width) height = height && Math.min(height, imgDimensions.height) // Case 2: neither width or height were passed in, use default size if (!width && !height) { width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width) height = width / aspectRatio } // if it still hasn't been found, calculate width from the derived height. // TS isn't smart enough to realise the type for height has been narrowed here if (!width) { width = (height as number) * aspectRatio } const originalWidth = width const isTopSizeOverriden = imgDimensions.width < width || imgDimensions.height < (height as number) if (isTopSizeOverriden) { width = imgDimensions.width height = imgDimensions.height } width = Math.round(width) if (breakpoints?.length > 0) { sizes = breakpoints.filter(size => size <= imgDimensions.width) // If a larger breakpoint has been filtered-out, add the actual image width instead if ( sizes.length < breakpoints.length && !sizes.includes(imgDimensions.width) ) { sizes.push(imgDimensions.width) } } else { sizes = densities.map(density => Math.round(density * (width as number))) sizes = sizes.filter(size => size <= imgDimensions.width) } // ensure that the size passed in is included in the final output if (layout === `constrained` && !sizes.includes(width)) { sizes.push(width) } sizes = sizes.sort(sortNumeric) return { sizes, aspectRatio, presentationWidth: originalWidth, presentationHeight: Math.round(originalWidth / aspectRatio), unscaledWidth: width, } } export function getDimensionsAndAspectRatio( dimensions, options ): { width: number; height: number; aspectRatio: number } { // Calculate the eventual width/height of the image. const imageAspectRatio = dimensions.width / dimensions.height let width = options.width let height = options.height switch (options.fit) { case `fill`: { width = options.width ? options.width : dimensions.width height = options.height ? options.height : dimensions.height break } case `inside`: { const widthOption = options.width ? options.width : Number.MAX_SAFE_INTEGER const heightOption = options.height ? options.height : Number.MAX_SAFE_INTEGER width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio)) height = Math.min( heightOption, Math.round(widthOption / imageAspectRatio) ) break } case `outside`: { const widthOption = options.width ? options.width : 0 const heightOption = options.height ? options.height : 0 width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio)) height = Math.max( heightOption, Math.round(widthOption / imageAspectRatio) ) break } default: { if (options.width && !options.height) { width = options.width height = Math.round(options.width / imageAspectRatio) } if (options.height && !options.width) { width = Math.round(options.height * imageAspectRatio) height = options.height } } } return { width, height, aspectRatio: width / height, } } ", "/* eslint-disable no-unused-expressions */ import { useState, CSSProperties, useEffect, HTMLAttributes, ImgHTMLAttributes, ReactEventHandler, SetStateAction, Dispatch, RefObject, } from "react" import { Node } from "gatsby" import { PlaceholderProps } from "./placeholder" import { MainImageProps } from "./main-image" import type { IGatsbyImageData } from "./gatsby-image.browser" import { IGatsbyImageHelperArgs, generateImageData, Layout, EVERY_BREAKPOINT, IImage, ImageFormat, } from "../image-utils" const imageCache = new Set() // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/ export const hasNativeLazyLoadSupport = (): boolean => typeof HTMLImageElement !== `undefined` && `loading` in HTMLImageElement.prototype export function gatsbyImageIsInstalled(): boolean { return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE } export function storeImageloaded(cacheKey?: string): void { if (cacheKey) { imageCache.add(cacheKey) } } export function hasImageLoaded(cacheKey: string): boolean { return imageCache.has(cacheKey) } export type IGatsbyImageDataParent = T & { gatsbyImageData: IGatsbyImageData } export type FileNode = Node & { childImageSharp?: IGatsbyImageDataParent } const isGatsbyImageData = ( // eslint-disable-next-line @typescript-eslint/no-explicit-any node: IGatsbyImageData | any ): node is IGatsbyImageData => // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object Boolean(node?.images?.fallback?.src) const isGatsbyImageDataParent = ( // eslint-disable-next-line @typescript-eslint/no-explicit-any node: IGatsbyImageDataParent | any ): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData) export type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData export const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => { if (isGatsbyImageData(node)) { return node } if (isGatsbyImageDataParent(node)) { return node.gatsbyImageData } return node?.childImageSharp?.gatsbyImageData } export const getSrc = (node: ImageDataLike): string | undefined => getImage(node)?.images?.fallback?.src export const getSrcSet = (node: ImageDataLike): string | undefined => getImage(node)?.images?.fallback?.srcSet export function getWrapperProps( width: number, height: number, layout: Layout ): Pick, "className" | "style"> & { "data-gatsby-image-wrapper": string } { const wrapperStyle: CSSProperties = {} let className = `gatsby-image-wrapper` // If the plugin isn't installed we need to apply the styles inline if (!gatsbyImageIsInstalled()) { wrapperStyle.position = `relative` wrapperStyle.overflow = `hidden` } if (layout === `fixed`) { wrapperStyle.width = width wrapperStyle.height = height } else if (layout === `constrained`) { if (!gatsbyImageIsInstalled()) { wrapperStyle.display = `inline-block` wrapperStyle.verticalAlign = `top` } className = `gatsby-image-wrapper gatsby-image-wrapper-constrained` } return { className, "data-gatsby-image-wrapper": ``, style: wrapperStyle, } } export async function applyPolyfill( ref: RefObject ): Promise { if (!(`objectFitPolyfill` in window)) { await import( // @ts-ignore typescript can't find the module for some reason ¯\_(ツ)_/¯ /* webpackChunkName: "gatsby-plugin-image-objectfit-polyfill" */ `objectFitPolyfill` ) } ;(window as any).objectFitPolyfill(ref.current) } export interface IUrlBuilderArgs { width: number height: number baseUrl: string format: ImageFormat options: OptionsType } export interface IGetImageDataArgs> { baseUrl: string /** * For constrained and fixed images, the size of the image element */ width?: number height?: number /** * If available, pass the source image width and height */ sourceWidth?: number sourceHeight?: number /** * If only one dimension is passed, then this will be used to calculate the other. */ aspectRatio?: number layout?: Layout /** * Returns a URL based on the passed arguments. Should be a pure function */ urlBuilder: (args: IUrlBuilderArgs) => string /** * Should be a data URI */ placeholderURL?: string backgroundColor?: string /** * Used in error messages etc */ pluginName?: string /** * If you do not support auto-format, pass an array of image types here */ formats?: Array breakpoints?: Array /** * Passed to the urlBuilder function */ options?: OptionsType } /** * Use this hook to generate gatsby-plugin-image data in the browser. */ export function getImageData({ baseUrl, urlBuilder, sourceWidth, sourceHeight, pluginName = `getImageData`, formats = [`auto`], breakpoints, options, ...props }: IGetImageDataArgs): IGatsbyImageData { if ( !breakpoints?.length && (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`) ) { breakpoints = EVERY_BREAKPOINT } const generateImageSource = ( baseUrl: string, width: number, height?: number, format?: ImageFormat ): IImage => { return { width, height, format, src: urlBuilder({ baseUrl, width, height, options, format }), } } const sourceMetadata: IGatsbyImageHelperArgs["sourceMetadata"] = { width: sourceWidth, height: sourceHeight, format: `auto`, } const args: IGatsbyImageHelperArgs = { ...props, pluginName, generateImageSource, filename: baseUrl, formats, breakpoints, sourceMetadata, } return generateImageData(args) } export function getMainProps( isLoading: boolean, isLoaded: boolean, images: IGatsbyImageData["images"], loading?: "eager" | "lazy", toggleLoaded?: (loaded: boolean) => void, cacheKey?: string, ref?: RefObject, style: CSSProperties = {} ): Partial { const onLoad: ReactEventHandler = function (e) { if (isLoaded) { return } storeImageloaded(cacheKey) const target = e.currentTarget const img = new Image() img.src = target.currentSrc if (img.decode) { // Decode the image through javascript to support our transition img .decode() .catch(() => { // ignore error, we just go forward }) .then(() => { toggleLoaded(true) }) } else { toggleLoaded(true) } } // Polyfill "object-fit" if unsupported (mostly IE) if (ref?.current && !(`objectFit` in document.documentElement.style)) { ref.current.dataset.objectFit = style.objectFit ?? `cover` ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}` applyPolyfill(ref) } // fallback when it's not configured in gatsby-config. if (!gatsbyImageIsInstalled()) { style = { height: `100%`, left: 0, position: `absolute`, top: 0, transform: `translateZ(0)`, transition: `opacity 250ms linear`, width: `100%`, willChange: `opacity`, ...style, } } const result = { ...images, loading, shouldLoad: isLoading, "data-main-image": ``, style: { ...style, opacity: isLoaded ? 1 : 0, }, onLoad, ref, } return result } export type PlaceholderImageAttrs = ImgHTMLAttributes & Pick & { "data-placeholder-image"?: string } export function getPlaceholderProps( placeholder: PlaceholderImageAttrs | undefined, isLoaded: boolean, layout: Layout, width?: number, height?: number, backgroundColor?: string, objectFit?: CSSProperties["objectFit"], objectPosition?: CSSProperties["objectPosition"] ): PlaceholderImageAttrs { const wrapperStyle: CSSProperties = {} if (backgroundColor) { wrapperStyle.backgroundColor = backgroundColor if (layout === `fixed`) { wrapperStyle.width = width wrapperStyle.height = height wrapperStyle.backgroundColor = backgroundColor wrapperStyle.position = `relative` } else if (layout === `constrained`) { wrapperStyle.position = `absolute` wrapperStyle.top = 0 wrapperStyle.left = 0 wrapperStyle.bottom = 0 wrapperStyle.right = 0 } else if (layout === `fullWidth`) { wrapperStyle.position = `absolute` wrapperStyle.top = 0 wrapperStyle.left = 0 wrapperStyle.bottom = 0 wrapperStyle.right = 0 } } if (objectFit) { wrapperStyle.objectFit = objectFit } if (objectPosition) { wrapperStyle.objectPosition = objectPosition } const result: PlaceholderImageAttrs = { ...placeholder, "aria-hidden": true, "data-placeholder-image": ``, style: { opacity: isLoaded ? 0 : 1, transition: `opacity 500ms linear`, ...wrapperStyle, }, } // fallback when it's not configured in gatsby-config. if (!gatsbyImageIsInstalled()) { result.style = { height: `100%`, left: 0, position: `absolute`, top: 0, width: `100%`, } } return result } export function useImageLoaded( cacheKey: string, loading: "lazy" | "eager", ref: any ): { isLoaded: boolean isLoading: boolean toggleLoaded: Dispatch> } { const [isLoaded, toggleLoaded] = useState(false) const [isLoading, toggleIsLoading] = useState(loading === `eager`) const rAF = typeof window !== `undefined` && `requestAnimationFrame` in window ? requestAnimationFrame : function (cb: TimerHandler): number { return setTimeout(cb, 16) } const cRAF = typeof window !== `undefined` && `cancelAnimationFrame` in window ? cancelAnimationFrame : clearTimeout useEffect(() => { let interval: number // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873 function toggleIfRefExists(): void { if (ref.current) { if (loading === `eager` && ref.current.complete) { storeImageloaded(cacheKey) toggleLoaded(true) } else { toggleIsLoading(true) } } else { interval = rAF(toggleIfRefExists) } } toggleIfRefExists() return (): void => { cRAF(interval) } }, []) return { isLoading, isLoaded, toggleLoaded, } } export interface IArtDirectedImage { media: string image: IGatsbyImageData } /** * Generate a Gatsby image data object with multiple, art-directed images that display at different * resolutions. * * @param defaultImage The image displayed when no media query matches. * It is also used for all other settings applied to the image, such as width, height and layout. * You should pass a className to the component with media queries to adjust the size of the container, * as this cannot be adjusted automatically. * @param artDirected Array of objects which each contains a `media` string which is a media query * such as `(min-width: 320px)`, and the image object to use when that query matches. */ export function withArtDirection( defaultImage: IGatsbyImageData, artDirected: Array ): IGatsbyImageData { const { images, placeholder, ...props } = defaultImage const output: IGatsbyImageData = { ...props, images: { ...images, sources: [], }, placeholder: placeholder && { ...placeholder, sources: [], }, } artDirected.forEach(({ media, image }) => { if (!media) { if (process.env.NODE_ENV === `development`) { console.warn( "[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping." ) } return } if ( image.layout !== defaultImage.layout && process.env.NODE_ENV === `development` ) { console.warn( `[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` ) } output.images.sources.push( ...image.images.sources.map(source => { return { ...source, media } }), { media, srcSet: image.images.fallback.srcSet, } ) if (!output.placeholder) { return } output.placeholder.sources.push({ media, srcSet: image.placeholder.fallback, }) }) output.images.sources.push(...images.sources) if (placeholder?.sources) { output.placeholder?.sources.push(...placeholder.sources) } return output } ", "// eslint-disable-next-line @typescript-eslint/triple-slash-reference /// import React, { Fragment, FunctionComponent } from "react" import terserMacro from "../../macros/terser.macro" import { Layout } from "../image-utils" export interface ILayoutWrapperProps { layout: Layout width: number height: number } const NativeScriptLoading: FunctionComponent = () => (