{"version":3,"sources":["webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/extends.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://my-gatsby-site/./node_modules/@babel/runtime/helpers/typeof.js","webpack://my-gatsby-site/./node_modules/@mikaelkristiansson/domready/ready.js","webpack://my-gatsby-site/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://my-gatsby-site/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://my-gatsby-site/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://my-gatsby-site/./node_modules/intersection-observer/intersection-observer.js","webpack://my-gatsby-site/./node_modules/raf/index.js","webpack://my-gatsby-site/./node_modules/raf/node_modules/performance-now/lib/performance-now.js","webpack://my-gatsby-site/./node_modules/sal.js/dist/sal.js","webpack://my-gatsby-site/./node_modules/scroll-to-element/ease.js","webpack://my-gatsby-site/./node_modules/scroll-to-element/emitter.js","webpack://my-gatsby-site/./node_modules/scroll-to-element/index.js","webpack://my-gatsby-site/./node_modules/scroll-to-element/scroll-to.js","webpack://my-gatsby-site/./node_modules/scroll-to-element/tween.js","webpack://my-gatsby-site/./node_modules/core-js/internals/a-function.js","webpack://my-gatsby-site/./node_modules/core-js/internals/an-object.js","webpack://my-gatsby-site/./node_modules/core-js/internals/array-includes.js","webpack://my-gatsby-site/./node_modules/core-js/internals/array-species-create.js","webpack://my-gatsby-site/./node_modules/core-js/internals/classof-raw.js","webpack://my-gatsby-site/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://my-gatsby-site/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://my-gatsby-site/./node_modules/core-js/internals/create-property-descriptor.js","webpack://my-gatsby-site/./node_modules/core-js/internals/descriptors.js","webpack://my-gatsby-site/./node_modules/core-js/internals/document-create-element.js","webpack://my-gatsby-site/./node_modules/core-js/internals/engine-user-agent.js","webpack://my-gatsby-site/./node_modules/core-js/internals/engine-v8-version.js","webpack://my-gatsby-site/./node_modules/core-js/internals/enum-bug-keys.js","webpack://my-gatsby-site/./node_modules/core-js/internals/export.js","webpack://my-gatsby-site/./node_modules/core-js/internals/fails.js","webpack://my-gatsby-site/./node_modules/core-js/internals/flatten-into-array.js","webpack://my-gatsby-site/./node_modules/core-js/internals/function-bind-context.js","webpack://my-gatsby-site/./node_modules/core-js/internals/get-built-in.js","webpack://my-gatsby-site/./node_modules/core-js/internals/global.js","webpack://my-gatsby-site/./node_modules/core-js/internals/has.js","webpack://my-gatsby-site/./node_modules/core-js/internals/hidden-keys.js","webpack://my-gatsby-site/./node_modules/core-js/internals/ie8-dom-define.js","webpack://my-gatsby-site/./node_modules/core-js/internals/indexed-object.js","webpack://my-gatsby-site/./node_modules/core-js/internals/inspect-source.js","webpack://my-gatsby-site/./node_modules/core-js/internals/internal-state.js","webpack://my-gatsby-site/./node_modules/core-js/internals/is-array.js","webpack://my-gatsby-site/./node_modules/core-js/internals/is-forced.js","webpack://my-gatsby-site/./node_modules/core-js/internals/is-object.js","webpack://my-gatsby-site/./node_modules/core-js/internals/is-pure.js","webpack://my-gatsby-site/./node_modules/core-js/internals/native-symbol.js","webpack://my-gatsby-site/./node_modules/core-js/internals/native-weak-map.js","webpack://my-gatsby-site/./node_modules/core-js/internals/object-define-property.js","webpack://my-gatsby-site/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://my-gatsby-site/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://my-gatsby-site/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://my-gatsby-site/./node_modules/core-js/internals/object-keys-internal.js","webpack://my-gatsby-site/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://my-gatsby-site/./node_modules/core-js/internals/own-keys.js","webpack://my-gatsby-site/./node_modules/core-js/internals/path.js","webpack://my-gatsby-site/./node_modules/core-js/internals/redefine.js","webpack://my-gatsby-site/./node_modules/core-js/internals/require-object-coercible.js","webpack://my-gatsby-site/./node_modules/core-js/internals/set-global.js","webpack://my-gatsby-site/./node_modules/core-js/internals/shared-key.js","webpack://my-gatsby-site/./node_modules/core-js/internals/shared-store.js","webpack://my-gatsby-site/./node_modules/core-js/internals/shared.js","webpack://my-gatsby-site/./node_modules/core-js/internals/to-absolute-index.js","webpack://my-gatsby-site/./node_modules/core-js/internals/to-indexed-object.js","webpack://my-gatsby-site/./node_modules/core-js/internals/to-integer.js","webpack://my-gatsby-site/./node_modules/core-js/internals/to-length.js","webpack://my-gatsby-site/./node_modules/core-js/internals/to-object.js","webpack://my-gatsby-site/./node_modules/core-js/internals/to-primitive.js","webpack://my-gatsby-site/./node_modules/core-js/internals/uid.js","webpack://my-gatsby-site/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://my-gatsby-site/./node_modules/core-js/internals/well-known-symbol.js","webpack://my-gatsby-site/./node_modules/core-js/modules/es.array.flat.js","webpack://my-gatsby-site/./node_modules/gatsby-link/index.js","webpack://my-gatsby-site/./node_modules/gatsby-link/parse-path.js","webpack://my-gatsby-site/./node_modules/gatsby-react-router-scroll/index.js","webpack://my-gatsby-site/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://my-gatsby-site/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://my-gatsby-site/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://my-gatsby-site/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://my-gatsby-site/./.cache/api-runner-browser-plugins.js","webpack://my-gatsby-site/./.cache/api-runner-browser.js","webpack://my-gatsby-site/./node_modules/mitt/dist/mitt.es.js","webpack://my-gatsby-site/./.cache/emitter.js","webpack://my-gatsby-site/./.cache/normalize-page-path.js","webpack://my-gatsby-site/./.cache/find-path.js","webpack://my-gatsby-site/./.cache/gatsby-browser-entry.js","webpack://my-gatsby-site/./.cache/prefetch.js","webpack://my-gatsby-site/./.cache/loader.js","webpack://my-gatsby-site/./.cache/page-renderer.js","webpack://my-gatsby-site/./.cache/route-announcer-props.js","webpack://my-gatsby-site/./.cache/navigation.js","webpack://my-gatsby-site/./node_modules/shallow-compare/es/index.js","webpack://my-gatsby-site/./.cache/ensure-resources.js","webpack://my-gatsby-site/./.cache/production-app.js","webpack://my-gatsby-site/./.cache/public-page-renderer-prod.js","webpack://my-gatsby-site/./.cache/public-page-renderer.js","webpack://my-gatsby-site/./.cache/react-lifecycles-compat.js","webpack://my-gatsby-site/./.cache/redirect-utils.js","webpack://my-gatsby-site/./.cache/register-service-worker.js","webpack://my-gatsby-site/./.cache/strip-prefix.js","webpack://my-gatsby-site/./src/js/main.js","webpack://my-gatsby-site/./node_modules/gatsby-plugin-anchor-links/errors.js","webpack://my-gatsby-site/./node_modules/gatsby-plugin-anchor-links/gatsby-browser.js","webpack://my-gatsby-site/./node_modules/gatsby-plugin-anchor-links/utils.js","webpack://my-gatsby-site/./node_modules/gatsby-plugin-scroll-reveal/Wrapper.js","webpack://my-gatsby-site/./node_modules/gatsby-plugin-scroll-reveal/gatsby-browser.js","webpack://my-gatsby-site/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://my-gatsby-site/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://my-gatsby-site/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://my-gatsby-site/./node_modules/invariant/browser.js"],"names":["module","exports","self","ReferenceError","__esModule","_setPrototypeOf","o","p","Object","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","prototype","create","constructor","_arrayLikeToArray","arr","len","length","i","arr2","Array","_toConsumableArray","isArray","iter","Symbol","iterator","from","minLen","n","toString","call","slice","name","test","TypeError","_extends","assign","target","arguments","source","key","hasOwnProperty","apply","this","obj","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","defineProperty","getOwnPropertyDescriptor","desc","set","excluded","sourceKeys","keys","indexOf","ie10","navigator","appVersion","listener","fns","doc","document","hack","documentElement","doScroll","domContentLoaded","loaded","readyState","addEventListener","removeEventListener","shift","fn","setTimeout","push","definition","getLocation","_source$location","location","search","hash","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","options","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","popstateListener","action","filter","navigate","to","_ref","undefined","_ref$replace","replace","go","Date","now","replaceState","pushState","e","transition","Promise","res","forEach","createMemorySource","initialPath","searchIndex","initialLocation","substr","index","stack","states","_","uri","_uri$split","split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","createElement","globalHistory","shallowCompare","validateRedirect","insertParams","resolve","match","pick","startsWith","_invariant","_invariant2","default","string","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","route","params","routeSegments","path","max","Math","routeSegment","uriSegment","isSplat","map","decodeURIComponent","join","dynamicMatch","paramRe","exec","reservedNames","value","isDynamic","segment","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","sort","a","b","addQuery","_len","query","_key","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","concat","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","obj1","obj2","obj1Keys","every","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","observe","_observationTargets","some","item","element","nodeType","Error","_registerInstance","entry","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","t","isNaN","_parseRootMargin","opt_rootMargin","margins","margin","parts","parseFloat","unit","_monitoringIntersections","_monitoringInterval","setInterval","addEvent","_domObserver","MutationObserver","attributes","childList","characterData","subtree","clearInterval","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","top","bottom","left","right","width","height","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","time","performance","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","root","body","overflow","min","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","splice","targetArea","intersectionArea","Number","toFixed","callback","opt_options","timeout","timer","bind","rootMargin","node","event","opt_useCapture","attachEvent","detatchEvent","el","err","child","parentNode","assignedSlot","g","vendors","suffix","raf","caf","last","id","queue","_now","next","cp","cancelled","round","handle","cancel","polyfill","object","requestAnimationFrame","cancelAnimationFrame","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","process","hr","uptime","getTime","r","m","c","d","enumerable","toStringTag","s","getOwnPropertySymbols","getOwnPropertyDescriptors","defineProperties","configurable","writable","animateClassName","disabledClassName","enterEventName","exitEventName","selector","once","disabled","u","f","CustomEvent","bubbles","detail","dispatchEvent","classList","add","remove","y","querySelectorAll","contains","console","warn","elements","disable","enable","linear","inQuad","outQuad","inOutQuad","inCube","outCube","inOutCube","inQuart","outQuart","inOutQuart","inQuint","outQuint","inOutQuint","inSine","cos","PI","outSine","sin","inOutSine","inExpo","pow","outExpo","inOutExpo","inCirc","sqrt","outCirc","inOutCirc","inBack","outBack","inOutBack","inBounce","outBounce","inOutBounce","inElastic","asin","outElastic","inOutElastic","Emitter","mixin","on","_callbacks","off","removeListener","removeAllListeners","cb","callbacks","emit","args","hasListeners","scroll","elem","querySelector","additionalOffset","alignment","scrollPosition","elemRect","documentHeight","scrollHeight","offsetHeight","maxScrollPosition","pageYOffset","calculateScrollOffset","offset","align","Tween","x","start","scrollTop","pageXOffset","scrollLeft","tween","ease","duration","animate","update","scrollTo","_from","reset","_curr","src","extend","_done","_start","_to","ms","_duration","_ease","stop","stopped","step","_update","curr","k","it","String","isObject","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","O","includes","SPECIES","wellKnownSymbol","originalArray","C","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","DESCRIPTORS","createPropertyDescriptor","bitmap","fails","global","EXISTS","getBuiltIn","version","userAgent","versions","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","error","flattenIntoArray","original","sourceLen","depth","mapper","thisArg","targetIndex","sourceIndex","mapFn","aFunction","that","variable","namespace","method","check","globalThis","Function","toObject","hasOwn","classof","propertyIsEnumerable","store","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","type","arg","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","toLowerCase","V8_VERSION","symbol","IE8_DOM_DEFINE","anObject","toPrimitive","$defineProperty","P","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","names","result","$propertyIsEnumerable","NASHORN_BUG","1","V","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","uid","SHARED","IS_PURE","mode","copyright","toInteger","integer","IndexedObject","requireObjectCoercible","ceil","floor","argument","input","PREFERRED_STRING","val","valueOf","postfix","random","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","arraySpeciesCreate","proto","flat","depthArg","A","_interopRequireDefault","withPrefix","getGlobalPathPrefix","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_reachRouter","_utils","_parsePath","parsePath","isAbsolutePath","prefix","_prefix","getGlobalBasePrefix","isLocalLink","endsWith","rewriteLinkPath","relativeTo","current","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","bool","GatsbyLinkLocationWrapper","props","Location","_ref2","GatsbyLink","_location","_React$Component","_this","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","Boolean","style","IOSupported","handleRef","_proto","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","ref","_this2","innerRef","entries","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","___navigate","Component","propTypes","func","isRequired","_default","forwardRef","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","React","_interopRequireWildcard","_sessionStorage","createContext","SessionStorage","displayName","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","windowScroll","position","shouldUpdateScroll","scrollToHash","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","save","_this$props$location","read","_this$props$location2","Provider","children","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","storedValue","stringify","setItem","stateKeyBase","identifier","useLocation","useContext","useRef","useLayoutEffect","onScroll","components","plugin","require","plugins","getResourceURLsForPathname","loadPage","loadPageSync","api","defaultReturn","argTransform","results","previous","then","all","handler","evt","mitt","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","Consumer","useStaticQuery","context","graphql","supportedPrefetchStrategy","fakeLink","relList","supports","support","url","reject","link","setAttribute","onload","onerror","getElementsByTagName","getElementsByName","appendChild","req","XMLHttpRequest","open","status","send","preFetched","catch","PageResourceStatus","Success","preferDefault","createPageDataUrl","doFetch","onreadystatechange","toPageResources","pageData","component","page","componentChunkName","webpackCompilationHash","staticQueryHashes","json","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","setApiRunner","apiRunner","prefetchDisabled","fetchPageDataJson","loadObj","pagePath","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","rawPath","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","padding","clip","whiteSpace","border","maybeRedirect","___replace","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","clearTimeout","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","nextProps","pageName","title","pageHeadings","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shouldComponentUpdate","shallowDiffers","_i","getDerivedStateFromProps","loadResources","setState","nextState","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","message","SiteRoot","App","onClientEntryRanRef","mark","renderer","GATSBY_EXPERIMENTAL_CONCURRENT_FEATURES","ReactDOM","domReady","container","hydrate","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","ignoreCase","fromPath","register","reg","installingWorker","installing","log","___failedResources","reload","str","ready","posicion","css","addClass","removeClass","INVALID_HASH","IMPROPPER_FORMATTING","windowHash","_ref2$offset","_ref2$duration","isBrowser","gatsby_scroll_offset","gatsby_scroll_duration","gatsby_scroll_hash","scroller","checkHash","logWarning","handleLinkClick","onAnchorLinkClick","errorTypes","_to$split2","_slicedToArray","anchorPath","anchor","_gatsby","handleStrippedLinkClick","_to$split4","isSamePage","isDifferentPage","stripHashedLocation","validElement","isDevelopment","_scrollToElement","_arrayWithHoles","_arr","_n","_d","_e","_s","done","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","useEffect","_sal","Wrapper","wrapPageElement","_objectWithoutProperties","_classCallCheck","Constructor","_possibleConstructorReturn","_inherits","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","defaultProps","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","primary","_props$component","domProps","array","createRoute","clone","FocusWrapper","FocusHandler","wrapperProps","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","condition","format","argIndex","framesToPop"],"mappings":"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","file":"app-1b3ef2f0566e47b3a3b9.js","sourcesContent":["function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","\"use strict\";\n\nmodule.exports = Object.assign;","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function () {\n 'use strict'; // Exit early if we're not running in a browser.\n\n if (typeof window !== 'object') {\n return;\n } // Exit early if all IntersectionObserver and IntersectionObserverEntry\n // features are natively supported.\n\n\n if ('IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n\n return;\n }\n /**\n * A local reference to the document.\n */\n\n\n var document = window.document;\n /**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\n\n var registry = [];\n /**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\n\n function IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect; // Calculates the intersection ratio.\n\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height; // Sets intersection ratio.\n\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n }\n /**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\n\n\n function IntersectionObserver(callback, opt_options) {\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n } // Binds and throttles `this._checkForIntersections`.\n\n\n this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT); // Private properties.\n\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin); // Public properties.\n\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function (margin) {\n return margin.value + margin.unit;\n }).join(' ');\n }\n /**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\n\n\n IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n /**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\n\n IntersectionObserver.prototype.POLL_INTERVAL = null;\n /**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\n\n IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n /**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\n\n IntersectionObserver.prototype.observe = function (target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n\n this._observationTargets.push({\n element: target,\n entry: null\n });\n\n this._monitorIntersections();\n\n this._checkForIntersections();\n };\n /**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\n\n\n IntersectionObserver.prototype.unobserve = function (target) {\n this._observationTargets = this._observationTargets.filter(function (item) {\n return item.element != target;\n });\n\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n\n this._unregisterInstance();\n }\n };\n /**\n * Stops observing all target elements for intersection changes.\n */\n\n\n IntersectionObserver.prototype.disconnect = function () {\n this._observationTargets = [];\n\n this._unmonitorIntersections();\n\n this._unregisterInstance();\n };\n /**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\n\n\n IntersectionObserver.prototype.takeRecords = function () {\n var records = this._queuedEntries.slice();\n\n this._queuedEntries = [];\n return records;\n };\n /**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\n\n\n IntersectionObserver.prototype._initThresholds = function (opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n return threshold.sort().filter(function (t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n\n return t !== a[i - 1];\n });\n };\n /**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\n\n\n IntersectionObserver.prototype._parseRootMargin = function (opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function (margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n\n return {\n value: parseFloat(parts[1]),\n unit: parts[2]\n };\n }); // Handles shorthand.\n\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n return margins;\n };\n /**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\n\n\n IntersectionObserver.prototype._monitorIntersections = function () {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true; // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(this._checkForIntersections, this.POLL_INTERVAL);\n } else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n };\n /**\n * Stops polling for intersection changes.\n * @private\n */\n\n\n IntersectionObserver.prototype._unmonitorIntersections = function () {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n\n this._domObserver = null;\n }\n }\n };\n /**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\n\n\n IntersectionObserver.prototype._checkForIntersections = function () {\n var rootIsInDom = this._rootIsInDom();\n\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function (item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n\n var rootContainsTarget = this._rootContainsTarget(target);\n\n var oldEntry = item.entry;\n\n var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n };\n /**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\n\n\n IntersectionObserver.prototype._computeTargetAndRootIntersection = function (target, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {}; // If the parent isn't displayed, an intersection can't happen.\n\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body && parent != document.documentElement && parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n } // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n\n\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n if (!intersectionRect) break;\n }\n\n parent = getParentNode(parent);\n }\n\n return intersectionRect;\n };\n /**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._getRootRect = function () {\n var rootRect;\n\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n\n return this._expandRectByRootMargin(rootRect);\n };\n /**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\n\n\n IntersectionObserver.prototype._expandRectByRootMargin = function (rect) {\n var margins = this._rootMarginValues.map(function (margin, i) {\n return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n return newRect;\n };\n /**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\n\n\n IntersectionObserver.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios\n\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n\n if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n };\n /**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootIsInDom = function () {\n return !this.root || containsDeep(document, this.root);\n };\n /**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\n\n\n IntersectionObserver.prototype._rootContainsTarget = function (target) {\n return containsDeep(this.root || document, target);\n };\n /**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\n\n\n IntersectionObserver.prototype._registerInstance = function () {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n };\n /**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\n\n\n IntersectionObserver.prototype._unregisterInstance = function () {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n };\n /**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\n\n\n function now() {\n return window.performance && performance.now && performance.now();\n }\n /**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\n\n\n function throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function () {\n fn();\n timer = null;\n }, timeout);\n }\n };\n }\n /**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\n\n\n function addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n }\n /**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\n\n\n function removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n } else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n }\n /**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\n\n\n function computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n return width >= 0 && height >= 0 && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n }\n /**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\n\n\n function getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {// Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect(); // Older IE\n\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n\n return rect;\n }\n /**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\n\n\n function getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n /**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\n\n\n function containsDeep(parent, child) {\n var node = child;\n\n while (node) {\n if (node == parent) return true;\n node = getParentNode(node);\n }\n\n return false;\n }\n /**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\n\n\n function getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a , return the parent of a slot.\n return parent.assignedSlot.parentNode;\n }\n\n return parent;\n } // Exposes the constructors globally.\n\n\n window.IntersectionObserver = IntersectionObserver;\n window.IntersectionObserverEntry = IntersectionObserverEntry;\n})();","var now = require('performance-now'),\n root = typeof window === 'undefined' ? global : window,\n vendors = ['moz', 'webkit'],\n suffix = 'AnimationFrame',\n raf = root['request' + suffix],\n caf = root['cancel' + suffix] || root['cancelRequest' + suffix];\n\nfor (var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix];\n caf = root[vendors[i] + 'Cancel' + suffix] || root[vendors[i] + 'CancelRequest' + suffix];\n} // Some versions of FF have rAF but not cAF\n\n\nif (!raf || !caf) {\n var last = 0,\n id = 0,\n queue = [],\n frameDuration = 1000 / 60;\n\n raf = function raf(callback) {\n if (queue.length === 0) {\n var _now = now(),\n next = Math.max(0, frameDuration - (_now - last));\n\n last = next + _now;\n setTimeout(function () {\n var cp = queue.slice(0); // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n\n queue.length = 0;\n\n for (var i = 0; i < cp.length; i++) {\n if (!cp[i].cancelled) {\n try {\n cp[i].callback(last);\n } catch (e) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n });\n return id;\n };\n\n caf = function caf(handle) {\n for (var i = 0; i < queue.length; i++) {\n if (queue[i].handle === handle) {\n queue[i].cancelled = true;\n }\n }\n };\n}\n\nmodule.exports = function (fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn);\n};\n\nmodule.exports.cancel = function () {\n caf.apply(root, arguments);\n};\n\nmodule.exports.polyfill = function (object) {\n if (!object) {\n object = root;\n }\n\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n};","// Generated by CoffeeScript 1.12.2\n(function () {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function () {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function () {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n\n hrtime = process.hrtime;\n\n getNanoSeconds = function getNanoSeconds() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function () {\n return Date.now() - loadTime;\n };\n\n loadTime = Date.now();\n } else {\n module.exports = function () {\n return new Date().getTime() - loadTime;\n };\n\n loadTime = new Date().getTime();\n }\n}).call(this);","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == typeof exports ? exports.sal = t() : e.sal = t();\n}(this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) {\n n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n }\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"dist/\", n(n.s = 0);\n }([function (e, t, n) {\n \"use strict\";\n\n n.r(t);\n n(1);\n\n function r(e, t) {\n var n = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n t && (r = r.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, r);\n }\n\n return n;\n }\n\n function o(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? r(n, !0).forEach(function (t) {\n i(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : r(n).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n\n return e;\n }\n\n function i(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n var a = \"Sal was not initialised! Probably it is used in SSR.\",\n s = \"Your browser does not support IntersectionObserver!\\nGet a polyfill from here:\\nhttps://github.com/w3c/IntersectionObserver/tree/master/polyfill\",\n l = {\n rootMargin: \"0% 50%\",\n threshold: .5,\n animateClassName: \"sal-animate\",\n disabledClassName: \"sal-disabled\",\n enterEventName: \"sal:in\",\n exitEventName: \"sal:out\",\n selector: \"[data-sal]\",\n once: !0,\n disabled: !1\n },\n u = [],\n c = null,\n f = function f(e, t) {\n var n = new CustomEvent(e, {\n bubbles: !0,\n detail: t\n });\n t.target.dispatchEvent(n);\n },\n d = function d() {\n document.body.classList.add(l.disabledClassName);\n },\n b = function b() {\n return l.disabled || \"function\" == typeof l.disabled && l.disabled();\n },\n p = function p(e, t) {\n e.forEach(function (e) {\n e.intersectionRatio >= l.threshold ? (!function (e) {\n e.target.classList.add(l.animateClassName), f(l.enterEventName, e);\n }(e), l.once && t.unobserve(e.target)) : l.once || function (e) {\n e.target.classList.remove(l.animateClassName), f(l.exitEventName, e);\n }(e);\n });\n },\n m = function m() {\n d(), c.disconnect(), c = null;\n },\n y = function y() {\n document.body.classList.remove(l.disabledClassName), c = new IntersectionObserver(p, {\n rootMargin: l.rootMargin,\n threshold: l.threshold\n }), (u = [].filter.call(document.querySelectorAll(l.selector), function (e) {\n return !function (e) {\n return e.classList.contains(l.animateClassName);\n }(e, l.animateClassName);\n })).forEach(function (e) {\n return c.observe(e);\n });\n };\n\n t.default = function () {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : l;\n if (e !== l && (l = o({}, l, {}, e)), \"undefined\" == typeof window) return console.warn(a), {\n elements: u,\n disable: m,\n enable: y\n };\n if (!window.IntersectionObserver) throw d(), Error(s);\n return b() ? d() : y(), {\n elements: u,\n disable: m,\n enable: y\n };\n };\n }, function (e, t, n) {}]).default;\n});","// easing functions from \"Tween.js\"\nexports.linear = function (n) {\n return n;\n};\n\nexports.inQuad = function (n) {\n return n * n;\n};\n\nexports.outQuad = function (n) {\n return n * (2 - n);\n};\n\nexports.inOutQuad = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n;\n return -0.5 * (--n * (n - 2) - 1);\n};\n\nexports.inCube = function (n) {\n return n * n * n;\n};\n\nexports.outCube = function (n) {\n return --n * n * n + 1;\n};\n\nexports.inOutCube = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n;\n return 0.5 * ((n -= 2) * n * n + 2);\n};\n\nexports.inQuart = function (n) {\n return n * n * n * n;\n};\n\nexports.outQuart = function (n) {\n return 1 - --n * n * n * n;\n};\n\nexports.inOutQuart = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n;\n return -0.5 * ((n -= 2) * n * n * n - 2);\n};\n\nexports.inQuint = function (n) {\n return n * n * n * n * n;\n};\n\nexports.outQuint = function (n) {\n return --n * n * n * n * n + 1;\n};\n\nexports.inOutQuint = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n * n;\n return 0.5 * ((n -= 2) * n * n * n * n + 2);\n};\n\nexports.inSine = function (n) {\n return 1 - Math.cos(n * Math.PI / 2);\n};\n\nexports.outSine = function (n) {\n return Math.sin(n * Math.PI / 2);\n};\n\nexports.inOutSine = function (n) {\n return .5 * (1 - Math.cos(Math.PI * n));\n};\n\nexports.inExpo = function (n) {\n return 0 == n ? 0 : Math.pow(1024, n - 1);\n};\n\nexports.outExpo = function (n) {\n return 1 == n ? n : 1 - Math.pow(2, -10 * n);\n};\n\nexports.inOutExpo = function (n) {\n if (0 == n) return 0;\n if (1 == n) return 1;\n if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1);\n return .5 * (-Math.pow(2, -10 * (n - 1)) + 2);\n};\n\nexports.inCirc = function (n) {\n return 1 - Math.sqrt(1 - n * n);\n};\n\nexports.outCirc = function (n) {\n return Math.sqrt(1 - --n * n);\n};\n\nexports.inOutCirc = function (n) {\n n *= 2;\n if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1);\n return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1);\n};\n\nexports.inBack = function (n) {\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n};\n\nexports.outBack = function (n) {\n var s = 1.70158;\n return --n * n * ((s + 1) * n + s) + 1;\n};\n\nexports.inOutBack = function (n) {\n var s = 1.70158 * 1.525;\n if ((n *= 2) < 1) return 0.5 * (n * n * ((s + 1) * n - s));\n return 0.5 * ((n -= 2) * n * ((s + 1) * n + s) + 2);\n};\n\nexports.inBounce = function (n) {\n return 1 - exports.outBounce(1 - n);\n};\n\nexports.outBounce = function (n) {\n if (n < 1 / 2.75) {\n return 7.5625 * n * n;\n } else if (n < 2 / 2.75) {\n return 7.5625 * (n -= 1.5 / 2.75) * n + 0.75;\n } else if (n < 2.5 / 2.75) {\n return 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375;\n } else {\n return 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375;\n }\n};\n\nexports.inOutBounce = function (n) {\n if (n < .5) return exports.inBounce(n * 2) * .5;\n return exports.outBounce(n * 2 - 1) * .5 + .5;\n};\n\nexports.inElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return -(a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n};\n\nexports.outElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return a * Math.pow(2, -10 * n) * Math.sin((n - s) * (2 * Math.PI) / p) + 1;\n};\n\nexports.inOutElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n if ((n *= 2) < 1) return -0.5 * (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n return a * Math.pow(2, -10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p) * 0.5 + 1;\n}; // aliases\n\n\nexports['in-quad'] = exports.inQuad;\nexports['out-quad'] = exports.outQuad;\nexports['in-out-quad'] = exports.inOutQuad;\nexports['in-cube'] = exports.inCube;\nexports['out-cube'] = exports.outCube;\nexports['in-out-cube'] = exports.inOutCube;\nexports['in-quart'] = exports.inQuart;\nexports['out-quart'] = exports.outQuart;\nexports['in-out-quart'] = exports.inOutQuart;\nexports['in-quint'] = exports.inQuint;\nexports['out-quint'] = exports.outQuint;\nexports['in-out-quint'] = exports.inOutQuint;\nexports['in-sine'] = exports.inSine;\nexports['out-sine'] = exports.outSine;\nexports['in-out-sine'] = exports.inOutSine;\nexports['in-expo'] = exports.inExpo;\nexports['out-expo'] = exports.outExpo;\nexports['in-out-expo'] = exports.inOutExpo;\nexports['in-circ'] = exports.inCirc;\nexports['out-circ'] = exports.outCirc;\nexports['in-out-circ'] = exports.inOutCirc;\nexports['in-back'] = exports.inBack;\nexports['out-back'] = exports.outBack;\nexports['in-out-back'] = exports.inOutBack;\nexports['in-bounce'] = exports.inBounce;\nexports['out-bounce'] = exports.outBounce;\nexports['in-out-bounce'] = exports.inOutBounce;\nexports['in-elastic'] = exports.inElastic;\nexports['out-elastic'] = exports.outElastic;\nexports['in-out-elastic'] = exports.inOutElastic;","function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n;\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n\n return obj;\n}\n\nEmitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n};\n\nEmitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\nEmitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {}; // all\n\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this; // remove all handlers\n\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n } // remove specific handler\n\n\n var cb;\n\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n } // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n\n\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\nEmitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1),\n callbacks = this._callbacks['$' + event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\nEmitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\nEmitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n};\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}","var scroll = require('./scroll-to');\n\nfunction calculateScrollOffset(elem, additionalOffset, alignment) {\n var body = document.body,\n html = document.documentElement;\n var elemRect = elem.getBoundingClientRect();\n var clientHeight = html.clientHeight;\n var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n additionalOffset = additionalOffset || 0;\n var scrollPosition;\n\n if (alignment === 'bottom') {\n scrollPosition = elemRect.bottom - clientHeight;\n } else if (alignment === 'middle') {\n scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;\n } else {\n // top and default\n scrollPosition = elemRect.top;\n }\n\n var maxScrollPosition = documentHeight - clientHeight;\n return Math.min(scrollPosition + additionalOffset + window.pageYOffset, maxScrollPosition);\n}\n\nmodule.exports = function (elem, options) {\n options = options || {};\n if (typeof elem === 'string') elem = document.querySelector(elem);\n if (elem) return scroll(0, calculateScrollOffset(elem, options.offset, options.align), options);\n};","var Tween = require('./tween');\n\nvar raf = require('raf');\n\nfunction scroll() {\n var y = window.pageYOffset || document.documentElement.scrollTop;\n var x = window.pageXOffset || document.documentElement.scrollLeft;\n return {\n top: y,\n left: x\n };\n}\n\nfunction scrollTo(x, y, options) {\n options = options || {}; // start position\n\n var start = scroll(); // setup tween\n\n var tween = Tween(start).ease(options.ease || 'out-circ').to({\n top: y,\n left: x\n }).duration(options.duration || 1000); // scroll\n\n tween.update(function (o) {\n window.scrollTo(o.left | 0, o.top | 0);\n }); // handle end\n\n tween.on('end', function () {\n animate = function animate() {};\n }); // animate\n\n function animate() {\n raf(animate);\n tween.update();\n }\n\n animate();\n return tween;\n}\n\nmodule.exports = scrollTo;","var ease = require('./ease');\n\nvar Emitter = require('./emitter');\n\nfunction extend(obj, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) obj[key] = src[key];\n }\n\n return obj;\n}\n\nfunction Tween(obj) {\n if (!(this instanceof Tween)) return new Tween(obj);\n this._from = obj;\n this.ease('linear');\n this.duration(500);\n}\n\nEmitter(Tween.prototype);\n\nTween.prototype.reset = function () {\n this.isArray = Object.prototype.toString.call(this._from) === '[object Array]';\n this._curr = extend({}, this._from);\n this._done = false;\n this._start = Date.now();\n return this;\n};\n\nTween.prototype.to = function (obj) {\n this.reset();\n this._to = obj;\n return this;\n};\n\nTween.prototype.duration = function (ms) {\n this._duration = ms;\n return this;\n};\n\nTween.prototype.ease = function (fn) {\n fn = 'function' == typeof fn ? fn : ease[fn];\n if (!fn) throw new TypeError('invalid easing function');\n this._ease = fn;\n return this;\n};\n\nTween.prototype.stop = function () {\n this.stopped = true;\n this._done = true;\n this.emit('stop');\n this.emit('end');\n return this;\n};\n\nTween.prototype.step = function () {\n if (this._done) return;\n var duration = this._duration;\n var now = Date.now();\n var delta = now - this._start;\n var done = delta >= duration;\n\n if (done) {\n this._from = this._to;\n\n this._update(this._to);\n\n this._done = true;\n this.emit('end');\n return this;\n }\n\n var from = this._from;\n var to = this._to;\n var curr = this._curr;\n var fn = this._ease;\n var p = (now - this._start) / duration;\n var n = fn(p);\n\n if (this.isArray) {\n for (var i = 0; i < from.length; ++i) {\n curr[i] = from[i] + (to[i] - from[i]) * n;\n }\n\n this._update(curr);\n\n return this;\n }\n\n for (var k in from) {\n curr[k] = from[k] + (to[k] - from[k]) * n;\n }\n\n this._update(curr);\n\n return this;\n};\n\nTween.prototype.update = function (fn) {\n if (0 == arguments.length) return this.step();\n this._update = fn;\n return this;\n};\n\nmodule.exports = Tween;","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.13.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + (base !== null && base !== void 0 && base.endsWith(\"/\") ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_reachRouter.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-en-about-us-index-js\": () => import(\"./../../../src/pages/en/about_us/index.js\" /* webpackChunkName: \"component---src-pages-en-about-us-index-js\" */),\n \"component---src-pages-en-clients-index-js\": () => import(\"./../../../src/pages/en/clients/index.js\" /* webpackChunkName: \"component---src-pages-en-clients-index-js\" */),\n \"component---src-pages-en-contact-index-js\": () => import(\"./../../../src/pages/en/contact/index.js\" /* webpackChunkName: \"component---src-pages-en-contact-index-js\" */),\n \"component---src-pages-en-contact-thank-you-js\": () => import(\"./../../../src/pages/en/contact/thank-you.js\" /* webpackChunkName: \"component---src-pages-en-contact-thank-you-js\" */),\n \"component---src-pages-en-home-js\": () => import(\"./../../../src/pages/en/home.js\" /* webpackChunkName: \"component---src-pages-en-home-js\" */),\n \"component---src-pages-en-human-talent-index-js\": () => import(\"./../../../src/pages/en/human_talent/index.js\" /* webpackChunkName: \"component---src-pages-en-human-talent-index-js\" */),\n \"component---src-pages-en-index-js\": () => import(\"./../../../src/pages/en/index.js\" /* webpackChunkName: \"component---src-pages-en-index-js\" */),\n \"component---src-pages-en-infrastructure-index-js\": () => import(\"./../../../src/pages/en/infrastructure/index.js\" /* webpackChunkName: \"component---src-pages-en-infrastructure-index-js\" */),\n \"component---src-pages-en-legal-notification-index-js\": () => import(\"./../../../src/pages/en/legal_notification/index.js\" /* webpackChunkName: \"component---src-pages-en-legal-notification-index-js\" */),\n \"component---src-pages-en-news-index-js\": () => import(\"./../../../src/pages/en/news/index.js\" /* webpackChunkName: \"component---src-pages-en-news-index-js\" */),\n \"component---src-pages-en-products-index-js\": () => import(\"./../../../src/pages/en/products/index.js\" /* webpackChunkName: \"component---src-pages-en-products-index-js\" */),\n \"component---src-pages-en-quality-control-index-js\": () => import(\"./../../../src/pages/en/quality_control/index.js\" /* webpackChunkName: \"component---src-pages-en-quality-control-index-js\" */),\n \"component---src-pages-en-search-index-js\": () => import(\"./../../../src/pages/en/search/index.js\" /* webpackChunkName: \"component---src-pages-en-search-index-js\" */),\n \"component---src-pages-en-sustainability-index-js\": () => import(\"./../../../src/pages/en/sustainability/index.js\" /* webpackChunkName: \"component---src-pages-en-sustainability-index-js\" */),\n \"component---src-pages-es-aviso-legal-index-js\": () => import(\"./../../../src/pages/es/aviso-legal/index.js\" /* webpackChunkName: \"component---src-pages-es-aviso-legal-index-js\" */),\n \"component---src-pages-es-clientes-index-js\": () => import(\"./../../../src/pages/es/clientes/index.js\" /* webpackChunkName: \"component---src-pages-es-clientes-index-js\" */),\n \"component---src-pages-es-contacto-gracias-js\": () => import(\"./../../../src/pages/es/contacto/gracias.js\" /* webpackChunkName: \"component---src-pages-es-contacto-gracias-js\" */),\n \"component---src-pages-es-contacto-index-js\": () => import(\"./../../../src/pages/es/contacto/index.js\" /* webpackChunkName: \"component---src-pages-es-contacto-index-js\" */),\n \"component---src-pages-es-gestion-de-calidad-index-js\": () => import(\"./../../../src/pages/es/gestion-de-calidad/index.js\" /* webpackChunkName: \"component---src-pages-es-gestion-de-calidad-index-js\" */),\n \"component---src-pages-es-home-js\": () => import(\"./../../../src/pages/es/home.js\" /* webpackChunkName: \"component---src-pages-es-home-js\" */),\n \"component---src-pages-es-index-js\": () => import(\"./../../../src/pages/es/index.js\" /* webpackChunkName: \"component---src-pages-es-index-js\" */),\n \"component---src-pages-es-infraestructura-index-js\": () => import(\"./../../../src/pages/es/infraestructura/index.js\" /* webpackChunkName: \"component---src-pages-es-infraestructura-index-js\" */),\n \"component---src-pages-es-inicio-js\": () => import(\"./../../../src/pages/es/inicio.js\" /* webpackChunkName: \"component---src-pages-es-inicio-js\" */),\n \"component---src-pages-es-nosotros-index-js\": () => import(\"./../../../src/pages/es/nosotros/index.js\" /* webpackChunkName: \"component---src-pages-es-nosotros-index-js\" */),\n \"component---src-pages-es-noticias-index-js\": () => import(\"./../../../src/pages/es/noticias/index.js\" /* webpackChunkName: \"component---src-pages-es-noticias-index-js\" */),\n \"component---src-pages-es-productos-y-servicios-index-js\": () => import(\"./../../../src/pages/es/productos-y-servicios/index.js\" /* webpackChunkName: \"component---src-pages-es-productos-y-servicios-index-js\" */),\n \"component---src-pages-es-search-index-js\": () => import(\"./../../../src/pages/es/search/index.js\" /* webpackChunkName: \"component---src-pages-es-search-index-js\" */),\n \"component---src-pages-es-sostenibilidad-index-js\": () => import(\"./../../../src/pages/es/sostenibilidad/index.js\" /* webpackChunkName: \"component---src-pages-es-sostenibilidad-index-js\" */),\n \"component---src-pages-es-talento-humano-index-js\": () => import(\"./../../../src/pages/es/talento-humano/index.js\" /* webpackChunkName: \"component---src-pages-es-talento-humano-index-js\" */),\n \"component---src-pages-health-js\": () => import(\"./../../../src/pages/health.js\" /* webpackChunkName: \"component---src-pages-health-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-inicio-js\": () => import(\"./../../../src/pages/inicio.js\" /* webpackChunkName: \"component---src-pages-inicio-js\" */),\n \"component---src-templates-article-index-en-js\": () => import(\"./../../../src/templates/article/index_en.js\" /* webpackChunkName: \"component---src-templates-article-index-en-js\" */),\n \"component---src-templates-article-index-js\": () => import(\"./../../../src/templates/article/index.js\" /* webpackChunkName: \"component---src-templates-article-index-js\" */),\n \"component---src-templates-category-index-en-js\": () => import(\"./../../../src/templates/category/index_en.js\" /* webpackChunkName: \"component---src-templates-category-index-en-js\" */),\n \"component---src-templates-category-index-js\": () => import(\"./../../../src/templates/category/index.js\" /* webpackChunkName: \"component---src-templates-category-index-js\" */),\n \"component---src-templates-tag-index-en-js\": () => import(\"./../../../src/templates/tag/index_en.js\" /* webpackChunkName: \"component---src-templates-tag-index-en-js\" */),\n \"component---src-templates-tag-index-js\": () => import(\"./../../../src/templates/tag/index.js\" /* webpackChunkName: \"component---src-templates-tag-index-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-scroll-reveal/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-anchor-links/gatsby-browser.js'),\n options: {\"plugins\":[],\"offset\":-350},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n }\n\n const pageElement = createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n\n if (redirect != null) {\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname, { withErrorDetails: true }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname, {\n withErrorDetails: true,\n })\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n performance.mark(`onInitialClientRender`)\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n process.env.GATSBY_EXPERIMENTAL_CONCURRENT_FEATURES\n ? ReactDOM.unstable_createRoot\n : ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n const container =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.unstable_createRoot) {\n renderer(container, {\n hydrate: true,\n }).render()\n } else {\n renderer(, container)\n }\n })\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import $ from 'jquery/dist/jquery.slim'\n// import './jquery-3.2.1.js'\n// import './jquery-3.2.1.min.js'\n// import './jquery-3.2.1.slim.min.js'\n// import './jquery.min.js'\n// import './owl.carousel.js'\n\n $(document).ready(function(){\nconsole.log('hola')\n $(window).scroll(function(){\n var barra = $(window).scrollTop();\n var posicion = barra * 0.20;\n $('.inicio').css({\n 'background-position': '0 +' + posicion + 'px'\n });\n });\n });\n\n $(function(){\n $(window).scroll(function() {\n if ($(this).scrollTop() >= 10) {\n $('header').addClass('stickytop');\n }\n else {\n $('header').removeClass('stickytop');\n }\n });\n }); \n\n // $(document).ready(function() {\n\n\n // // nosotros\n // $('.cd-horizontal-timeline .timeline ol li > a').first().addClass('selected');\n // $('.cd-horizontal-timeline .events-content ol li').first().addClass('selected');\n\n // })","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INVALID_HASH = exports.IMPROPPER_FORMATTING = void 0;\nvar IMPROPPER_FORMATTING = 'Anchor path should contain an absolute root path `/` and selector `#` Ex: `/about#team`';\nexports.IMPROPPER_FORMATTING = IMPROPPER_FORMATTING;\nvar INVALID_HASH = 'Anchor Links plugin attempted to scroll to an invalid hash on route change.';\nexports.INVALID_HASH = INVALID_HASH;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.onRouteUpdate = void 0;\n\nvar _utils = require(\"./utils\");\n\nvar onRouteUpdate = function onRouteUpdate(_ref, _ref2) {\n var location = _ref.location;\n var _ref2$offset = _ref2.offset,\n offset = _ref2$offset === void 0 ? 0 : _ref2$offset,\n _ref2$duration = _ref2.duration,\n duration = _ref2$duration === void 0 ? 1000 : _ref2$duration;\n var windowHash;\n\n if (_utils.isBrowser) {\n window.gatsby_scroll_offset = offset;\n window.gatsby_scroll_duration = duration;\n windowHash = window.gatsby_scroll_hash;\n }\n\n windowHash ? (0, _utils.scroller)(windowHash, offset) : (0, _utils.checkHash)(location, offset);\n\n if (_utils.isBrowser && windowHash) {\n window.gatsby_scroll_hash = undefined;\n }\n};\n\nexports.onRouteUpdate = onRouteUpdate;","\"use strict\";\n\nfunction _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); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logWarning = logWarning;\nexports.scroller = scroller;\nexports.handleLinkClick = handleLinkClick;\nexports.handleStrippedLinkClick = handleStrippedLinkClick;\nexports.stripHashedLocation = stripHashedLocation;\nexports.checkHash = checkHash;\nexports.isDevelopment = exports.isBrowser = void 0;\n\nvar _scrollToElement = _interopRequireDefault(require(\"scroll-to-element\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar errorTypes = _interopRequireWildcard(require(\"./errors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _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; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _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.\"); }\n\nfunction _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); }\n\nfunction _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; }\n\nfunction _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; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar isBrowser = typeof window !== 'undefined';\nexports.isBrowser = isBrowser;\nvar isDevelopment = process.env.NODE_ENV !== 'production';\nexports.isDevelopment = isDevelopment;\n\nfunction logWarning(message) {\n if (isDevelopment) console.warn(message);\n}\n\nfunction scroller(target) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n (0, _scrollToElement[\"default\"])(target, {\n duration: duration,\n offset: offset\n });\n}\n\nfunction handleLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n if (isBrowser && to.includes('#')) {\n var _to$split = to.split('#'),\n _to$split2 = _slicedToArray(_to$split, 2),\n anchorPath = _to$split2[0],\n anchor = _to$split2[1];\n\n if (window.location.pathname === (0, _gatsby.withPrefix)(anchorPath)) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction handleStrippedLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n var _to$split3 = to.split('#'),\n _to$split4 = _slicedToArray(_to$split3, 2),\n anchorPath = _to$split4[0],\n anchor = _to$split4[1];\n /**\n * Determine location, run scroller or set window variable\n */\n\n\n var isSamePage = isBrowser && window.location.pathname === anchorPath;\n var isDifferentPage = isBrowser && window.location.pathname !== anchorPath;\n\n if (isSamePage) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n\n if (isDifferentPage) {\n window.gatsby_scroll_hash = \"#\".concat(anchor);\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction stripHashedLocation(to) {\n return to.split('#')[0];\n}\n\nfunction checkHash(location, offset) {\n var hash = location.hash,\n selector = hash ? hash.substr(1) : null,\n validElement = selector ? document.getElementById(selector) : null;\n if (hash && Boolean(validElement)) scroller(hash, offset);else if (hash && selector && !validElement) logWarning(errorTypes.INVALID_HASH);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = Wrapper;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _sal = _interopRequireDefault(require(\"sal.js\"));\n\nfunction Wrapper(_ref) {\n var children = _ref.children,\n path = _ref.path,\n options = _ref.options;\n (0, _react.useEffect)(function () {\n (0, _sal.default)(options);\n }, [path]);\n return children;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nrequire('sal.js/dist/sal.css');\n\nrequire('intersection-observer');\n\nvar React = require(\"react\");\n\nvar Wrapper = require('./Wrapper').default;\n\nexports.wrapPageElement = function (_ref, _ref2) {\n var element = _ref.element,\n props = _ref.props;\n var plugins = _ref2.plugins,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref2, [\"plugins\"]);\n return (\n /*#__PURE__*/\n React.createElement(Wrapper, {\n options: options,\n path: props.path\n }, element)\n );\n};","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n}; ////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\n\n\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\n}; ////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\n\n\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n } // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n}; ////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\n\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return {\n route: route,\n score: score,\n index: index\n };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\n\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n\n\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\n\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = {\n pathname: pathname,\n search: search\n };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\"; ////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\n });\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: {\n unlisten: null\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n return {\n navigate: navigate,\n location: location\n };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, {\n replace: true\n });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(LocationContext.Provider, {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n });\n });\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value; // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {}; ////////////////////////////////////////////////////////////////////////////////\n\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n } // Support React < 16 with this hook\n\n\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), {\n replace: replace,\n state: state\n });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n });\n });\n}; ////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var results = match(context.basepath, location.pathname);\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}; ////////////////////////////////////////////////////////////////////////\n\n\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n"],"sourceRoot":""}