{"version":3,"file":"index.umd.js","sources":["../node_modules/@swup/plugin/dist/index.modern.js","../node_modules/swup/dist/Swup.modern.js","../src/index.js"],"sourcesContent":["const r=r=>String(r).split(\".\").concat([\"0\",\"0\"]).slice(0,3).join(\".\");class n{constructor(){this.isSwupPlugin=!0,this.requires={},this.swup=void 0,this.version=void 0}mount(){}unmount(){}_beforeMount(){if(!this.name)throw new Error(\"You must define a name of plugin when creating a class.\")}_afterUnmount(){}_checkRequirements(){return\"object\"!=typeof this.requires||Object.entries(this.requires).forEach(([n,e])=>{if(!function(n,e,t){const i=function(r,n){var e;if(\"swup\"===r)return null!=(e=n.version)?e:\"\";{var t;const e=n.findPlugin(r);return null!=(t=null==e?void 0:e.version)?t:\"\"}}(n,t);return!!i&&((n,e)=>e.every(e=>{const[,t,i]=e.match(/^([\\D]+)?(.*)$/)||[];var s,o;return((r,n)=>{const e={\"\":r=>0===r,\">\":r=>r>0,\">=\":r=>r>=0,\"<\":r=>r<0,\"<=\":r=>r<=0};return(e[n]||e[\"\"])(r)})((o=i,s=r(s=n),o=r(o),s.localeCompare(o,void 0,{numeric:!0})),t||\">=\")}))(i,e)}(n,e=Array.isArray(e)?e:[e],this.swup)){const r=`${n} ${e.join(\", \")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${r}`)}}),!0}}export{n as default};\n//# sourceMappingURL=index.modern.js.map\n","import t from\"delegate-it\";function e(){return e=Object.assign?Object.assign.bind():function(t){for(var e=1;eString(t).toLowerCase().replace(/[\\s/_.]+/g,\"-\").replace(/[^\\w-]+/g,\"\").replace(/--+/g,\"-\").replace(/^-+|-+$/g,\"\")||e||\"\",i=({hash:t}={})=>location.pathname+location.search+(t?location.hash:\"\"),s=(t,n={})=>{const s=e({url:t=t||i({hash:!0}),random:Math.random(),source:\"swup\"},n);history.pushState(s,\"\",t)},o=(t=null,n={})=>{t=t||i({hash:!0});const s=e({},history.state,{url:t,random:Math.random(),source:\"swup\"},n);history.replaceState(s,\"\",t)},r=[\"base\"],a=(e,n,i,s={})=>{let{base:o=document}=s,a=function(t,e){if(null==t)return{};var n,i,s={},o=Object.keys(t);for(i=0;i=0||(s[n]=t[n]);return s}(s,r);const l=t(o,e,n,i,a);return{destroy:()=>l.destroy()}},l=(t,e=document)=>e.querySelector(t),u=(t,e=document)=>Array.from(e.querySelectorAll(t)),h=t=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{t()})})},c=t=>window.CSS&&window.CSS.escape?CSS.escape(t):t,d=t=>1e3*Number(t.slice(0,-1).replace(\",\",\".\")),p=(t,e)=>{var n,i;let s=document.createElement(\"html\");s.innerHTML=t;let o=[];e.forEach(t=>{if(null==l(t,s))return console.warn(`[swup] Container ${t} not found on page.`),null;u(t).length!==u(t,s).length&&console.warn(\"[swup] Mismatched number of containers found on new page.\"),u(t).forEach((e,n)=>{u(t,s)[n].setAttribute(\"data-swup\",String(o.length)),o.push(u(t,s)[n].outerHTML)})});const r=(null==(n=l(\"title\",s))?void 0:n.innerText)||\"\",a=null==(i=l(\"body\",s))?void 0:i.className;return s.innerHTML=\"\",s=null,{title:r,pageClass:a,blocks:o,originalContent:t}},g=(t,n)=>{const i={url:window.location.pathname+window.location.search,method:\"GET\",data:null,headers:{}},{url:s,method:o,headers:r,data:a}=e({},i,t),l=new XMLHttpRequest;return l.onreadystatechange=function(){4===l.readyState&&n(l)},l.open(o,s,!0),Object.entries(r).forEach(([t,e])=>{l.setRequestHeader(t,e)}),l.send(a),l};class m extends URL{constructor(t,e=document.baseURI){super(t.toString(),e)}get url(){return this.pathname+this.search}static fromElement(t){const e=t.getAttribute(\"href\")||t.getAttribute(\"xlink:href\");return new m(e)}static fromUrl(t){return new m(t)}}const f=(t,e)=>{let n=0;e.forEach(e=>{null==l(e,t)?console.warn(`[swup] Container ${e} not found on page.`):u(e).forEach((i,s)=>{u(e,t)[s].setAttribute(\"data-swup\",String(n)),n++})})},v=t=>/^to-/.test(t)||[\"is-changing\",\"is-rendering\",\"is-popstate\"].includes(t),w=()=>{const t=document.documentElement.className.split(\" \").filter(v);document.documentElement.classList.remove(...t)};class E{constructor(t){this.pages={},this.last=null,this.swup=void 0,this.swup=t}getCacheUrl(t){return this.swup.resolveUrl(m.fromUrl(t).url)}cacheUrl(t){t.url=this.getCacheUrl(t.url),t.url in this.pages==0&&(this.pages[t.url]=t),t.responseURL=this.getCacheUrl(t.responseURL),this.last=this.pages[t.url],this.swup.log(`Cache (${Object.keys(this.pages).length})`,this.pages)}getPage(t){return t=this.getCacheUrl(t),this.pages[t]}getCurrentPage(){return this.getPage(i())}exists(t){return(t=this.getCacheUrl(t))in this.pages}empty(){this.pages={},this.last=null,this.swup.log(\"Cache cleared\")}remove(t){delete this.pages[this.getCacheUrl(t)]}}const P=function({event:t,skipTransition:e}={}){if(e)return this.triggerEvent(\"transitionEnd\",t),this.cleanupAnimationClasses(),[Promise.resolve()];h(()=>{this.triggerEvent(\"animationInStart\"),document.documentElement.classList.remove(\"is-animating\")});const n=this.getAnimationPromises(\"in\");return Promise.all(n).then(()=>{this.triggerEvent(\"animationInDone\"),this.triggerEvent(\"transitionEnd\",t),this.cleanupAnimationClasses()}),n},S=t=>t?(\"#\"===t.charAt(0)&&(t=t.substring(1)),t=decodeURIComponent(t),t=c(t),l(`#${t}`)||l(`a[name='${t}']`)):null;let b=\"transition\",k=\"transitionend\",U=\"animation\",y=\"animationend\";function L(t){const e=this.options.animationSelector;if(!1===e)return[Promise.resolve()];const n=u(e,document.body);return n.length?n.map(t=>function(t,e,n=null){const{type:i,timeout:s,propCount:o}=function(t,e=null){const n=window.getComputedStyle(t),i=`${b}Duration`,s=`${U}Delay`,o=`${U}Duration`,r=n[`${b}Delay`].split(\", \"),a=(n[i]||\"\").split(\", \"),l=C(r,a),u=(n[s]||\"\").split(\", \"),h=(n[o]||\"\").split(\", \"),c=C(u,h);let d=\"\",p=0,g=0;return\"transition\"===e?l>0&&(d=\"transition\",p=l,g=a.length):\"animation\"===e?c>0&&(d=\"animation\",p=c,g=h.length):(p=Math.max(l,c),d=p>0?l>c?\"transition\":\"animation\":null,g=d?\"transition\"===d?a.length:h.length:0),{type:d,timeout:p,propCount:g}}(t,n);return i&&s?new Promise(e=>{const n=\"transition\"===i?k:y,r=performance.now();let a=0;const l=()=>{t.removeEventListener(n,u),e()},u=e=>{if(e.target===t){if(!(t=>!!t.elapsedTime)(e))throw new Error(\"Not a transition or animation event.\");(performance.now()-r)/1e3=o&&l()}};setTimeout(()=>{ad(e)+d(t[n])))}void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(b=\"WebkitTransition\",k=\"webkitTransitionEnd\"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(U=\"WebkitAnimation\",y=\"webkitAnimationEnd\");const T=function(t){const n=p(t.responseText,this.options.containers);return n?e({},n,{responseURL:t.responseURL||window.location.href}):(console.warn(\"[swup] Received page is invalid.\"),null)};function H(t){const n=this.options.requestHeaders,{url:i}=t;return this.cache.exists(i)?(this.triggerEvent(\"pageRetrievedFromCache\"),Promise.resolve(this.cache.getPage(i))):new Promise((s,o)=>{g(e({},t,{headers:n}),t=>{if(500===t.status)return this.triggerEvent(\"serverError\"),void o(i);const n=this.getPageData(t);if(!n||!n.blocks.length)return void o(i);const r=e({},n,{url:i});this.cache.cacheUrl(r),this.triggerEvent(\"pageLoaded\"),s(r)})})}const R=function({event:t,skipTransition:e}={}){const n=t instanceof PopStateEvent;if(e)return this.triggerEvent(\"animationSkipped\"),[Promise.resolve()];this.triggerEvent(\"animationOutStart\"),document.documentElement.classList.add(\"is-changing\",\"is-leaving\",\"is-animating\"),n&&document.documentElement.classList.add(\"is-popstate\");const i=this.getAnimationPromises(\"out\");return Promise.all(i).then(()=>{this.triggerEvent(\"animationOutDone\")}),i};function A(t){const{url:e}=t;this.shouldIgnoreVisit(e)?window.location.href=e:this.performPageLoad(t)}function $(t){const{url:e,event:o,customTransition:r}=null!=t?t:{},a=o instanceof PopStateEvent,l=this.shouldSkipTransition({url:e,event:o});this.triggerEvent(\"transitionStart\",o),this.updateTransition(i(),e,r),null!=r&&document.documentElement.classList.add(`to-${n(r)}`);const u=this.leavePage({event:o,skipTransition:l});a||s(e+(this.scrollToElement||\"\")),this.currentPageUrl=i();const h=this.fetchPage(t);Promise.all([h,...u]).then(([t])=>{this.renderPage(t,{event:o,skipTransition:l})}).catch(t=>{void 0!==t&&(this.options.skipPopStateHandling=()=>(window.location=t,!0),history.go(-1))})}const _=function({blocks:t,title:e}){return t.forEach((t,e)=>{document.body.querySelector(`[data-swup=\"${e}\"]`).outerHTML=t}),document.title=e,Promise.resolve()};function O(t,e){this._handlers[t]?this._handlers[t].push(e):console.warn(`Unsupported event ${t}.`)}function x(t,e){t&&e?this._handlers[t].includes(e)?this._handlers[t]=this._handlers[t].filter(t=>t!==e):console.warn(`Handler for event '${t}' not found.`):t?this._handlers[t]=[]:Object.keys(this._handlers).forEach(t=>{this._handlers[t]=[]})}function q(t,e){this._handlers[t].forEach(t=>{try{t(e)}catch(t){console.error(t)}});const n=new CustomEvent(`swup:${t}`,{detail:t});document.dispatchEvent(n)}const D=function(t){var e;if(null==(e=t)?void 0:e.isSwupPlugin){if(t.swup=this,!t._checkRequirements||t._checkRequirements())return t._beforeMount&&t._beforeMount(),t.mount(),this.plugins.push(t),this.plugins}else console.error(\"Not a swup plugin instance\",t)};function I(t){const e=this.findPlugin(t);if(e)return e.unmount(),e._afterUnmount&&e._afterUnmount(),this.plugins=this.plugins.filter(t=>t!==e),this.plugins;console.error(\"No such plugin\",e)}function M(t){return this.plugins.find(e=>e===t||e.name===t)}const N=function(t,{event:n,skipTransition:s}={}){if(document.documentElement.classList.remove(\"is-leaving\"),!this.isSameResolvedUrl(i(),t.url))return;const{url:r}=m.fromUrl(t.responseURL);this.isSameResolvedUrl(i(),r)||(this.cache.cacheUrl(e({},t,{url:r})),this.currentPageUrl=i(),o(r)),s||document.documentElement.classList.add(\"is-rendering\"),this.triggerEvent(\"willReplaceContent\",n),this.replaceContent(t).then(()=>{this.triggerEvent(\"contentReplaced\",n),this.triggerEvent(\"pageView\",n),this.options.cache||this.cache.empty(),this.enterPage({event:n,skipTransition:s}),this.scrollToElement=null})};function W(t,e,n){this.transition={from:t,to:e,custom:n}}function V({event:t}){return!(!(t instanceof PopStateEvent)||this.options.animateHistoryBrowsing)}class j{constructor(t={}){this.version=\"3.0.2\",this._handlers={animationInDone:[],animationInStart:[],animationOutDone:[],animationOutStart:[],animationSkipped:[],clickLink:[],contentReplaced:[],disabled:[],enabled:[],openPageInNewTab:[],pageLoaded:[],pageRetrievedFromCache:[],pageView:[],popState:[],samePage:[],samePageWithHash:[],serverError:[],transitionStart:[],transitionEnd:[],willReplaceContent:[]},this.scrollToElement=null,this.options=void 0,this.plugins=[],this.transition={},this.cache=void 0,this.currentPageUrl=i(),this.delegatedListeners={},this.boundPopStateHandler=void 0,this.loadPage=A,this.performPageLoad=$,this.leavePage=R,this.renderPage=N,this.replaceContent=_,this.enterPage=P,this.triggerEvent=q,this.delegateEvent=a,this.on=O,this.off=x,this.updateTransition=W,this.shouldSkipTransition=V,this.getAnimationPromises=L,this.getPageData=T,this.fetchPage=H,this.getAnchorElement=S,this.log=()=>{},this.use=D,this.unuse=I,this.findPlugin=M,this.getCurrentUrl=i,this.cleanupAnimationClasses=w,this.defaults={animateHistoryBrowsing:!1,animationSelector:'[class*=\"transition-\"]',cache:!0,containers:[\"#swup\"],ignoreVisit:(t,{el:e}={})=>!(null==e||!e.closest(\"[data-no-swup]\")),linkSelector:\"a[href]\",plugins:[],resolveUrl:t=>t,requestHeaders:{\"X-Requested-With\":\"swup\",Accept:\"text/html, application/xhtml+xml\"},skipPopStateHandling:t=>{var e;return\"swup\"!==(null==(e=t.state)?void 0:e.source)}},this.options=e({},this.defaults,t),this.boundPopStateHandler=this.popStateHandler.bind(this),this.cache=new E(this),this.enable()}enable(){\"undefined\"!=typeof Promise?(this.delegatedListeners.click=a(this.options.linkSelector,\"click\",this.linkClickHandler.bind(this)),window.addEventListener(\"popstate\",this.boundPopStateHandler),f(document.documentElement,this.options.containers),this.options.plugins.forEach(t=>this.use(t)),o(),this.triggerEvent(\"enabled\"),document.documentElement.classList.add(\"swup-enabled\"),this.triggerEvent(\"pageView\")):console.warn(\"Promise is not supported\")}destroy(){this.delegatedListeners.click.destroy(),window.removeEventListener(\"popstate\",this.boundPopStateHandler),this.cache.empty(),this.options.plugins.forEach(t=>{this.unuse(t)}),u(\"[data-swup]\").forEach(t=>{t.removeAttribute(\"data-swup\")}),this.off(),this.triggerEvent(\"disabled\"),document.documentElement.classList.remove(\"swup-enabled\")}shouldIgnoreVisit(t,{el:e}={}){const{origin:n,url:i,hash:s}=m.fromUrl(t);return n!==window.location.origin||!(!e||!this.triggerWillOpenNewWindow(e))||!!this.options.ignoreVisit(i+s,{el:e})}linkClickHandler(t){const e=t.delegateTarget,{href:n,url:s,hash:o}=m.fromElement(e);if(this.shouldIgnoreVisit(n,{el:e}))return;if(t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return void this.triggerEvent(\"openPageInNewTab\",t);if(0!==t.button)return;if(this.triggerEvent(\"clickLink\",t),t.preventDefault(),!s||s===i())return void this.handleLinkToSamePage(s,o,t);if(this.isSameResolvedUrl(s,i()))return;this.scrollToElement=o||null;const r=e.getAttribute(\"data-swup-transition\")||void 0;this.performPageLoad({url:s,customTransition:r})}handleLinkToSamePage(t,e,n){if(e){if(this.triggerEvent(\"samePageWithHash\",n),!S(e))return console.warn(`Element for offset not found (#${e})`);o(t+e)}else this.triggerEvent(\"samePage\",n)}triggerWillOpenNewWindow(t){return!!t.matches('[download], [target=\"_blank\"]')}popStateHandler(t){var e,n;if(this.options.skipPopStateHandling(t))return;if(this.isSameResolvedUrl(i(),this.currentPageUrl))return;const s=null!=(e=null==(n=t.state)?void 0:n.url)?e:location.href;if(this.shouldIgnoreVisit(s))return;const{url:o,hash:r}=m.fromUrl(s);r?this.scrollToElement=r:t.preventDefault(),this.triggerEvent(\"popState\",t),this.options.animateHistoryBrowsing||(document.documentElement.classList.remove(\"is-animating\"),w()),this.performPageLoad({url:o,event:t})}resolveUrl(t){if(\"function\"!=typeof this.options.resolveUrl)return console.warn(\"[swup] options.resolveUrl expects a callback function.\"),t;const e=this.options.resolveUrl(t);return e&&\"string\"==typeof e?e.startsWith(\"//\")||e.startsWith(\"http\")?(console.warn(\"[swup] options.resolveUrl needs to return a relative url\"),t):e:(console.warn(\"[swup] options.resolveUrl needs to return a url\"),t)}isSameResolvedUrl(t,e){return this.resolveUrl(t)===this.resolveUrl(e)}}export{m as Location,n as classify,w as cleanupAnimationClasses,s as createHistoryRecord,j as default,a as delegateEvent,c as escapeCssIdentifier,g as fetch,i as getCurrentUrl,p as getDataFromHtml,f as markSwupElements,h as nextTick,l as query,u as queryAll,d as toMs,o as updateHistoryRecord};\n//# sourceMappingURL=Swup.modern.js.map\n","import Plugin from '@swup/plugin';\nimport { fetch, getCurrentUrl, Location, queryAll } from 'swup';\n\nexport default class PreloadPlugin extends Plugin {\n\tname = 'PreloadPlugin';\n\n\trequires = { swup: '>=3.0.0' };\n\n\tpreloadPromises = new Map();\n\n\tdefaults = {\n\t\tthrottle: 5\n\t};\n\n\tconstructor(options = {}) {\n\t\tsuper();\n\t\tthis.options = { ...this.defaults, ...options };\n\t}\n\n\tmount() {\n\t\tconst swup = this.swup;\n\n\t\tif (!swup.options.cache) {\n\t\t\tconsole.warn('PreloadPlugin: swup cache needs to be enabled for preloading');\n\t\t\treturn;\n\t\t}\n\n\t\tswup._handlers.pagePreloaded = [];\n\t\tswup._handlers.hoverLink = [];\n\n\t\tswup.preloadPage = this.preloadPage;\n\t\tswup.preloadPages = this.preloadPages;\n\n\t\t// replace page-fetch promise handler with custom method\n\t\tthis.originalSwupFetchPage = swup.fetchPage.bind(swup);\n\t\tswup.fetchPage = this.fetchPreloadedPage.bind(this);\n\n\t\t// register mouseenter handler\n\t\tswup.delegatedListeners.mouseenter = swup.delegateEvent(\n\t\t\tswup.options.linkSelector,\n\t\t\t'mouseenter',\n\t\t\tthis.onMouseEnter.bind(this),\n\t\t\t{ capture: true }\n\t\t);\n\n\t\t// register touchstart handler\n\t\tswup.delegatedListeners.touchstart = swup.delegateEvent(\n\t\t\tswup.options.linkSelector,\n\t\t\t'touchstart',\n\t\t\tthis.onTouchStart.bind(this),\n\t\t\t{ capture: true }\n\t\t);\n\n\t\t// initial preload of links with [data-swup-preload] attr\n\t\tswup.preloadPages();\n\n\t\t// do the same on every content replace\n\t\tswup.on('contentReplaced', this.onContentReplaced);\n\n\t\t// cache unmodified dom of initial/current page\n\t\tswup.preloadPage(getCurrentUrl());\n\t}\n\n\tunmount() {\n\t\tconst swup = this.swup;\n\n\t\tif (!swup.options.cache) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.preloadPromises = null;\n\n\t\tswup._handlers.pagePreloaded = null;\n\t\tswup._handlers.hoverLink = null;\n\n\t\tswup.preloadPage = null;\n\t\tswup.preloadPages = null;\n\n\t\tif (this.originalSwupFetchPage) {\n\t\t\tswup.fetchPage = this.originalSwupFetchPage;\n\t\t\tthis.originalSwupFetchPage = null;\n\t\t}\n\n\t\tswup.delegatedListeners.mouseenter.destroy();\n\t\tswup.delegatedListeners.touchstart.destroy();\n\n\t\tswup.off('contentReplaced', this.onContentReplaced);\n\t}\n\n\tonContentReplaced = () => {\n\t\tthis.swup.preloadPages();\n\t};\n\n\t/**\n\t * Apply swup.ignoreLink (will become available in swup@3)\n\t */\n\tshouldIgnoreVisit(href, { el } = {}) {\n\t\treturn this.swup.shouldIgnoreVisit(href, { el });\n\t}\n\n\tdeviceSupportsHover() {\n\t\treturn window.matchMedia('(hover: hover)').matches;\n\t}\n\n\tonMouseEnter = (event) => {\n\t\t// Make sure mouseenter is only fired once even on links with nested html\n\t\tif (event.target !== event.delegateTarget) return;\n\t\t// Return early on devices that don't support hover\n\t\tif (!this.deviceSupportsHover()) return;\n\t\tthis.swup.triggerEvent('hoverLink', event);\n\t\tthis.preloadLink(event.delegateTarget);\n\t};\n\n\tonTouchStart = (event) => {\n\t\t// Return early on devices that support hover\n\t\tif (this.deviceSupportsHover()) return;\n\t\tthis.preloadLink(event.delegateTarget);\n\t};\n\n\tpreloadLink(linkEl) {\n\t\tconst swup = this.swup;\n\t\tconst { url } = Location.fromElement(linkEl);\n\n\t\t// Bail early if the visit should be ignored by swup\n\t\tif (this.shouldIgnoreVisit(linkEl.href, { el: linkEl })) return;\n\n\t\t// Bail early if the link points to the current page\n\t\tif (url === getCurrentUrl()) return;\n\n\t\t// Bail early if the page is already in the cache\n\t\tif (swup.cache.exists(url)) return;\n\n\t\t// Bail early if there is already a preload running\n\t\tif (this.preloadPromises.has(url)) return;\n\n\t\t// Bail early if there are more then the maximum concurrent preloads running\n\t\tif (this.preloadPromises.size >= this.options.throttle) return;\n\n\t\tconst preloadPromise = this.preloadPage(url);\n\t\tpreloadPromise.url = url;\n\t\tpreloadPromise\n\t\t\t.catch(() => {})\n\t\t\t.finally(() => {\n\t\t\t\tthis.preloadPromises.delete(url);\n\t\t\t});\n\t\tthis.preloadPromises.set(url, preloadPromise);\n\t}\n\n\tpreloadPage = (pageUrl) => {\n\t\tconst swup = this.swup;\n\t\tconst { url } = Location.fromUrl(pageUrl);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Resolve and return early if the page is already in the cache\n\t\t\tif (swup.cache.exists(url)) {\n\t\t\t\tresolve(swup.cache.getPage(url));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst headers = swup.options.requestHeaders;\n\n\t\t\tfetch({ url, headers }, (response) => {\n\t\t\t\t// Reject and bail early if the server responded with an error\n\t\t\t\tif (response.status === 500) {\n\t\t\t\t\tswup.triggerEvent('serverError');\n\t\t\t\t\treject(url);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Parse the JSON data from the response\n\t\t\t\tconst page = swup.getPageData(response);\n\n\t\t\t\t// Reject and return early if something went wrong in `getPageData`\n\t\t\t\tif (!page || !page.blocks.length) {\n\t\t\t\t\treject(url);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Finally, prepare the page, store it in the cache, trigger an event and resolve\n\t\t\t\tconst cacheablePageData = { ...page, url };\n\t\t\t\tswup.cache.cacheUrl(cacheablePageData);\n\t\t\t\tswup.triggerEvent('pagePreloaded', cacheablePageData);\n\t\t\t\tresolve(cacheablePageData);\n\t\t\t});\n\t\t});\n\t};\n\n\tpreloadPages = () => {\n\t\tqueryAll('[data-swup-preload]').forEach((el) => {\n\t\t\tif (this.shouldIgnoreVisit(el.href, { el })) return;\n\t\t\tthis.swup.preloadPage(el.href);\n\t\t});\n\t};\n\n\tfetchPreloadedPage(data) {\n\t\tconst { url } = data;\n\n\t\tconst preloadPromise = this.preloadPromises.get(url);\n\n\t\tif (preloadPromise != null) return preloadPromise;\n\n\t\treturn this.originalSwupFetchPage(data);\n\t}\n}\n"],"names":["r","String","split","concat","slice","join","n","constructor","this","isSwupPlugin","requires","swup","version","mount","unmount","_beforeMount","name","Error","_afterUnmount","_checkRequirements","Object","entries","forEach","e","t","i","findPlugin","every","match","s","o","localeCompare","numeric","Array","isArray","assign","bind","arguments","length","prototype","hasOwnProperty","call","apply","hash","location","pathname","search","m","URL","document","baseURI","super","toString","url","static","getAttribute","PreloadPlugin","Plugin","options","preloadPromises","defaults","throttle","onContentReplaced","preloadPages","onMouseEnter","event","target","delegateTarget","deviceSupportsHover","triggerEvent","preloadLink","onTouchStart","preloadPage","pageUrl","Location","fromUrl","resolve","reject","cache","exists","getPage","window","method","data","headers","a","l","XMLHttpRequest","onreadystatechange","readyState","response","status","page","getPageData","blocks","cacheUrl","cacheablePageData","open","setRequestHeader","send","fetch","requestHeaders","from","querySelectorAll","queryAll","el","shouldIgnoreVisit","href","_handlers","pagePreloaded","hoverLink","originalSwupFetchPage","fetchPage","fetchPreloadedPage","delegatedListeners","mouseenter","delegateEvent","linkSelector","capture","touchstart","on","getCurrentUrl","console","warn","destroy","off","_temp","matchMedia","matches","linkEl","fromElement","has","size","preloadPromise","catch","finally","delete","set","get"],"mappings":"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"}