@inertiajs/core 1.1.0 → 1.3.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import{default as B}from"axios";import oe from"deepmerge";function L(t,e){let i;return function(...n){clearTimeout(i),i=setTimeout(()=>t.apply(this,n),e)}}function m(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var j=t=>m("before",{cancelable:!0,detail:{visit:t}}),H=t=>m("error",{detail:{errors:t}}),$=t=>m("exception",{cancelable:!0,detail:{exception:t}}),N=t=>m("finish",{detail:{visit:t}}),q=t=>m("invalid",{cancelable:!0,detail:{response:t}}),x=t=>m("navigate",{detail:{page:t}}),W=t=>m("progress",{detail:{progress:t}}),X=t=>m("start",{detail:{visit:t}}),K=t=>m("success",{detail:{page:t}});function I(t){return t instanceof File||t instanceof Blob||t instanceof FileList&&t.length>0||t instanceof FormData&&Array.from(t.values()).some(e=>I(e))||typeof t=="object"&&t!==null&&Object.values(t).some(e=>I(e))}function A(t,e=new FormData,i=null){t=t||{};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&_(e,J(i,n),t[n]);return e}function J(t,e){return t?t+"["+e+"]":e}function _(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(n=>_(t,J(e,n.toString()),i[n]));if(i instanceof Date)return t.append(e,i.toISOString());if(i instanceof File)return t.append(e,i,i.name);if(i instanceof Blob)return t.append(e,i);if(typeof i=="boolean")return t.append(e,i?"1":"0");if(typeof i=="string")return t.append(e,i);if(typeof i=="number")return t.append(e,`${i}`);if(i==null)return t.append(e,"");A(i,t,e)}var z={modal:null,listener:null,show(t){typeof t=="object"&&(t=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);let e=document.createElement("html");e.innerHTML=t,e.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let i=document.createElement("iframe");if(i.style.backgroundColor="white",i.style.borderRadius="5px",i.style.width="100%",i.style.height="100%",this.modal.appendChild(i),document.body.prepend(this.modal),document.body.style.overflow="hidden",!i.contentWindow)throw new Error("iframe not yet ready.");i.contentWindow.document.open(),i.contentWindow.document.write(e.outerHTML),i.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(t){t.keyCode===27&&this.hide()}};import re from"deepmerge";import*as O from"qs";function b(t){return new URL(t.toString(),window.location.toString())}function k(t,e,i,n="brackets"){let s=/^https?:\/\//.test(e.toString()),l=s||e.toString().startsWith("/"),h=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),g=e.toString().includes("?")||t==="get"&&Object.keys(i).length,f=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return t==="get"&&Object.keys(i).length&&(c.search=O.stringify(re(O.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:n}),i={}),[[s?`${c.protocol}//${c.host}`:"",l?c.pathname:"",h?c.pathname.substring(1):"",g?c.search:"",f?c.hash:""].join(""),i]}function w(t){return t=new URL(t.href),t.hash="",t}var Q=typeof window>"u",C=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:i,swapComponent:n}){this.page=e,this.resolveComponent=i,this.swapComponent=n,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{preserveState:!0}).then(()=>x(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",L(this.handleScrollEvent.bind(this),100),!0)}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...this.page,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&setTimeout(()=>document.getElementById(window.location.hash.slice(1))?.scrollIntoView())}restoreScrollPositions(){this.page.scrollRegions&&this.scrollRegions().forEach((e,i)=>{let n=this.page.scrollRegions[i];if(n)typeof e.scrollTo=="function"?e.scrollTo(n.left,n.top):(e.scrollTop=n.top,e.scrollLeft=n.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){window.history.state.version=e.version,this.setPage(window.history.state,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),x(e)})}locationVisit(e,i){try{let n={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(n)),window.location.href=e.href,w(window.location).href===w(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let i=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=window.history.state?.rememberedState??{},e.scrollRegions=window.history.state?.scrollRegions??[],this.setPage(e,{preserveScroll:i.preserveScroll,preserveState:!0}).then(()=>{i.preserveScroll&&this.restoreScrollPositions(),x(e)})}isLocationVisitResponse(e){return!!(e&&e.status===409&&e.headers["x-inertia-location"])}isInertiaResponse(e){return!!e?.headers["x-inertia"]}createVisitId(){return this.visitId={},this.visitId}cancelVisit(e,{cancelled:i=!1,interrupted:n=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=i,e.interrupted=n,N(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,N(e),e.onFinish(e))}resolvePreserveOption(e,i){return typeof e=="function"?e(i):e==="errors"?Object.keys(i.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:i="get",data:n={},replace:s=!1,preserveScroll:l=!1,preserveState:h=!1,only:g=[],except:f=[],headers:c={},errorBag:o="",forceFormData:v=!1,onCancelToken:T=()=>{},onBefore:d=()=>{},onStart:p=()=>{},onProgress:P=()=>{},onFinish:y=()=>{},onCancel:ie=()=>{},onSuccess:D=()=>{},onError:U=()=>{},queryStringArrayFormat:F="brackets"}={}){let S=typeof e=="string"?b(e):e;if((I(n)||v)&&!(n instanceof FormData)&&(n=A(n)),!(n instanceof FormData)){let[r,a]=k(i,S,n,F);S=b(r),n=a}let R={url:S,method:i,data:n,replace:s,preserveScroll:l,preserveState:h,only:g,except:f,headers:c,errorBag:o,forceFormData:v,queryStringArrayFormat:F,cancelled:!1,completed:!1,interrupted:!1};if(d(R)===!1||!j(R))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let G=this.createVisitId();this.activeVisit={...R,onCancelToken:T,onBefore:d,onStart:p,onProgress:P,onFinish:y,onCancel:ie,onSuccess:D,onError:U,queryStringArrayFormat:F,cancelToken:new AbortController},T({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),X(R),p(R);let M=!!(g.length||f.length);B({method:i,url:w(S).href,data:i==="get"?{}:n,params:i==="get"?n:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...M?{"X-Inertia-Partial-Component":this.page.component}:{},...g.length?{"X-Inertia-Partial-Data":g.join(",")}:{},...f.length?{"X-Inertia-Partial-Except":f.join(",")}:{},...o&&o.length?{"X-Inertia-Error-Bag":o}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:r=>{n instanceof FormData&&(r.percentage=r.progress?Math.round(r.progress*100):0,W(r),P(r))}}).then(r=>{if(!this.isInertiaResponse(r))return Promise.reject({response:r});let a=r.data;M&&a.component===this.page.component&&(a.props=oe(this.page.props,a.props,{arrayMerge:(he,ne)=>ne})),l=this.resolvePreserveOption(l,a),h=this.resolvePreserveOption(h,a),h&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let E=S,V=b(a.url);return E.hash&&!V.hash&&w(E).href===V.href&&(V.hash=E.hash,a.url=V.href),this.setPage(a,{visitId:G,replace:s,preserveScroll:l,preserveState:h})}).then(()=>{let r=this.page.props.errors||{};if(Object.keys(r).length>0){let a=o?r[o]?r[o]:{}:r;return H(a),U(a)}return K(this.page),D(this.page)}).catch(r=>{if(this.isInertiaResponse(r.response))return this.setPage(r.response.data,{visitId:G});if(this.isLocationVisitResponse(r.response)){let a=b(r.response.headers["x-inertia-location"]),E=S;E.hash&&!a.hash&&w(E).href===a.href&&(a.hash=E.hash),this.locationVisit(a,l===!0)}else if(r.response)q(r.response)&&z.show(r.response.data);else return Promise.reject(r)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(r=>{if(!B.isCancel(r)){let a=$(r);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(r)}})}setPage(e,{visitId:i=this.createVisitId(),replace:n=!1,preserveScroll:s=!1,preserveState:l=!1}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>{i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},n=n||b(e.url).href===window.location.href,n?this.replaceState(e):this.pushState(e),this.swapComponent({component:h,page:e,preserveState:l}).then(()=>{s||this.resetScrollPositions(),n||x(e)}))})}pushState(e){this.page=e,window.history.pushState(e,"",e.url)}replaceState(e){this.page=e,window.history.replaceState(e,"",e.url)}handlePopstateEvent(e){if(e.state!==null){let i=e.state,n=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(s=>{n===this.visitId&&(this.page=i,this.swapComponent({component:s,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),x(i)}))})}else{let i=b(this.page.url);i.hash=window.location.hash,this.replaceState({...this.page,url:i.href}),this.resetScrollPositions()}}get(e,i={},n={}){return this.visit(e,{...n,method:"get",data:i})}reload(e={}){return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0})}replace(e,i={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${i.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...i,replace:!0})}post(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"post",data:i})}put(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"put",data:i})}patch(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"patch",data:i})}delete(e,i={}){return this.visit(e,{preserveState:!0,...i,method:"delete"})}remember(e,i="default"){Q||this.replaceState({...this.page,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!Q)return window.history.state?.rememberedState?.[e]}on(e,i){let n=s=>{let l=i(s);s.cancelable&&!s.defaultPrevented&&l===!1&&s.preventDefault()};return document.addEventListener(`inertia:${e}`,n),()=>document.removeEventListener(`inertia:${e}`,n)}};var se={buildDOMElement(t){let e=document.createElement("template");e.innerHTML=t;let i=e.content.firstChild;if(!t.startsWith("<script "))return i;let n=document.createElement("script");return n.innerHTML=i.innerHTML,i.getAttributeNames().forEach(s=>{n.setAttribute(s,i.getAttribute(s)||"")}),n},isInertiaManagedElement(t){return t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("inertia")!==null},findMatchingElementIndex(t,e){let i=t.getAttribute("inertia");return i!==null?e.findIndex(n=>n.getAttribute("inertia")===i):-1},update:L(function(t){let e=t.map(n=>this.buildDOMElement(n));Array.from(document.head.childNodes).filter(n=>this.isInertiaManagedElement(n)).forEach(n=>{let s=this.findMatchingElementIndex(n,e);if(s===-1){n?.parentNode?.removeChild(n);return}let l=e.splice(s,1)[0];l&&!n.isEqualNode(l)&&n?.parentNode?.replaceChild(l,n)}),e.forEach(n=>document.head.appendChild(n))},1)};function Y(t,e,i){let n={},s=0;function l(){let o=s+=1;return n[o]=[],o.toString()}function h(o){o===null||Object.keys(n).indexOf(o)===-1||(delete n[o],c())}function g(o,v=[]){o!==null&&Object.keys(n).indexOf(o)>-1&&(n[o]=v),c()}function f(){let o=e(""),v={...o?{title:`<title inertia="">${o}</title>`}:{}},T=Object.values(n).reduce((d,p)=>d.concat(p),[]).reduce((d,p)=>{if(p.indexOf("<")===-1)return d;if(p.indexOf("<title ")===0){let y=p.match(/(<title [^>]+>)(.*?)(<\/title>)/);return d.title=y?`${y[1]}${e(y[2])}${y[3]}`:p,d}let P=p.match(/ inertia="[^"]+"/);return P?d[P[0]]=p:d[Object.keys(d).length]=p,d},v);return Object.values(T)}function c(){t?i(f()):se.update(f())}return c(),{forceUpdate:c,createProvider:function(){let o=l();return{update:v=>g(o,v),disconnect:()=>h(o)}}}}import u from"nprogress";var Z=null;function ae(t){document.addEventListener("inertia:start",le.bind(null,t)),document.addEventListener("inertia:progress",ce),document.addEventListener("inertia:finish",de)}function le(t){Z=setTimeout(()=>u.start(),t)}function ce(t){u.isStarted()&&t.detail.progress?.percentage&&u.set(Math.max(u.status,t.detail.progress.percentage/100*.9))}function de(t){if(clearTimeout(Z),u.isStarted())t.detail.visit.completed?u.done():t.detail.visit.interrupted?u.set(0):t.detail.visit.cancelled&&(u.done(),u.remove());else return}function pe(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
1
+ import{default as Q}from"axios";function T(t,e){let i;return function(...r){clearTimeout(i),i=setTimeout(()=>t.apply(this,r),e)}}function f(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var H=t=>f("before",{cancelable:!0,detail:{visit:t}}),q=t=>f("error",{detail:{errors:t}}),$=t=>f("exception",{cancelable:!0,detail:{exception:t}}),N=t=>f("finish",{detail:{visit:t}}),W=t=>f("invalid",{cancelable:!0,detail:{response:t}}),x=t=>f("navigate",{detail:{page:t}}),X=t=>f("progress",{detail:{progress:t}}),K=t=>f("start",{detail:{visit:t}}),B=t=>f("success",{detail:{page:t}});function I(t){return t instanceof File||t instanceof Blob||t instanceof FileList&&t.length>0||t instanceof FormData&&Array.from(t.values()).some(e=>I(e))||typeof t=="object"&&t!==null&&Object.values(t).some(e=>I(e))}function k(t,e=new FormData,i=null){t=t||{};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&z(e,J(i,r),t[r]);return e}function J(t,e){return t?t+"["+e+"]":e}function z(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(r=>z(t,J(e,r.toString()),i[r]));if(i instanceof Date)return t.append(e,i.toISOString());if(i instanceof File)return t.append(e,i,i.name);if(i instanceof Blob)return t.append(e,i);if(typeof i=="boolean")return t.append(e,i?"1":"0");if(typeof i=="string")return t.append(e,i);if(typeof i=="number")return t.append(e,`${i}`);if(i==null)return t.append(e,"");k(i,t,e)}var _={modal:null,listener:null,show(t){typeof t=="object"&&(t=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);let e=document.createElement("html");e.innerHTML=t,e.querySelectorAll("a").forEach(r=>r.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let i=document.createElement("iframe");if(i.style.backgroundColor="white",i.style.borderRadius="5px",i.style.width="100%",i.style.height="100%",this.modal.appendChild(i),document.body.prepend(this.modal),document.body.style.overflow="hidden",!i.contentWindow)throw new Error("iframe not yet ready.");i.contentWindow.document.open(),i.contentWindow.document.write(e.outerHTML),i.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(t){t.keyCode===27&&this.hide()}};import oe from"deepmerge";import*as O from"qs";function b(t){return new URL(t.toString(),window.location.toString())}function D(t,e,i,r="brackets"){let s=/^https?:\/\//.test(e.toString()),l=s||e.toString().startsWith("/"),h=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),g=e.toString().includes("?")||t==="get"&&Object.keys(i).length,m=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return t==="get"&&Object.keys(i).length&&(c.search=O.stringify(oe(O.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:r}),i={}),[[s?`${c.protocol}//${c.host}`:"",l?c.pathname:"",h?c.pathname.substring(1):"",g?c.search:"",m?c.hash:""].join(""),i]}function E(t){return t=new URL(t.href),t.hash="",t}var C=typeof window>"u",Y=!C&&/CriOS/.test(window.navigator.userAgent),Z=t=>{requestAnimationFrame(()=>{requestAnimationFrame(t)})},F=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:i,swapComponent:r}){this.page=e,this.resolveComponent=i,this.swapComponent=r,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){let i=window.location.hash;this.page.url.includes(i)||(this.page.url+=i),this.setPage(e,{preserveScroll:!0,preserveState:!0}).then(()=>x(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0)}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...this.page,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){Z(()=>{window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&document.getElementById(window.location.hash.slice(1))?.scrollIntoView()})}restoreScrollPositions(){Z(()=>{this.page.scrollRegions&&this.scrollRegions().forEach((e,i)=>{let r=this.page.scrollRegions[i];if(r)typeof e.scrollTo=="function"?e.scrollTo(r.left,r.top):(e.scrollTop=r.top,e.scrollLeft=r.left);else return})})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){window.history.state.version=e.version,this.setPage(window.history.state,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),x(e)})}locationVisit(e,i){try{let r={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(r)),window.location.href=e.href,E(window.location).href===E(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let i=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=window.history.state?.rememberedState??{},e.scrollRegions=window.history.state?.scrollRegions??[],this.setPage(e,{preserveScroll:i.preserveScroll,preserveState:!0}).then(()=>{i.preserveScroll&&this.restoreScrollPositions(),x(e)})}isLocationVisitResponse(e){return!!(e&&e.status===409&&e.headers["x-inertia-location"])}isInertiaResponse(e){return!!e?.headers["x-inertia"]}createVisitId(){return this.visitId={},this.visitId}cancelVisit(e,{cancelled:i=!1,interrupted:r=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=i,e.interrupted=r,N(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,N(e),e.onFinish(e))}resolvePreserveOption(e,i){return typeof e=="function"?e(i):e==="errors"?Object.keys(i.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:i="get",data:r={},replace:s=!1,preserveScroll:l=!1,preserveState:h=!1,only:g=[],except:m=[],headers:c={},errorBag:o="",forceFormData:v=!1,onCancelToken:L=()=>{},onBefore:d=()=>{},onStart:p=()=>{},onProgress:P=()=>{},onFinish:y=()=>{},onCancel:ne=()=>{},onSuccess:U=()=>{},onError:G=()=>{},queryStringArrayFormat:A="brackets"}={}){let S=typeof e=="string"?b(e):e;if((I(r)||v)&&!(r instanceof FormData)&&(r=k(r)),!(r instanceof FormData)){let[n,a]=D(i,S,r,A);S=b(n),r=a}let R={url:S,method:i,data:r,replace:s,preserveScroll:l,preserveState:h,only:g,except:m,headers:c,errorBag:o,forceFormData:v,queryStringArrayFormat:A,cancelled:!1,completed:!1,interrupted:!1};if(d(R)===!1||!H(R))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let M=this.createVisitId();this.activeVisit={...R,onCancelToken:L,onBefore:d,onStart:p,onProgress:P,onFinish:y,onCancel:ne,onSuccess:U,onError:G,queryStringArrayFormat:A,cancelToken:new AbortController},L({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),K(R),p(R);let j=!!(g.length||m.length);Q({method:i,url:E(S).href,data:i==="get"?{}:r,params:i==="get"?r:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...j?{"X-Inertia-Partial-Component":this.page.component}:{},...g.length?{"X-Inertia-Partial-Data":g.join(",")}:{},...m.length?{"X-Inertia-Partial-Except":m.join(",")}:{},...o&&o.length?{"X-Inertia-Error-Bag":o}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:n=>{r instanceof FormData&&(n.percentage=n.progress?Math.round(n.progress*100):0,X(n),P(n))}}).then(n=>{if(!this.isInertiaResponse(n))return Promise.reject({response:n});let a=n.data;j&&a.component===this.page.component&&(a.props={...this.page.props,...a.props}),l=this.resolvePreserveOption(l,a),h=this.resolvePreserveOption(h,a),h&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let w=S,V=b(a.url);return w.hash&&!V.hash&&E(w).href===V.href&&(V.hash=w.hash,a.url=V.href),this.setPage(a,{visitId:M,replace:s,preserveScroll:l,preserveState:h})}).then(()=>{let n=this.page.props.errors||{};if(Object.keys(n).length>0){let a=o?n[o]?n[o]:{}:n;return q(a),G(a)}return B(this.page),U(this.page)}).catch(n=>{if(this.isInertiaResponse(n.response))return this.setPage(n.response.data,{visitId:M});if(this.isLocationVisitResponse(n.response)){let a=b(n.response.headers["x-inertia-location"]),w=S;w.hash&&!a.hash&&E(w).href===a.href&&(a.hash=w.hash),this.locationVisit(a,l===!0)}else if(n.response)W(n.response)&&_.show(n.response.data);else return Promise.reject(n)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(n=>{if(!Q.isCancel(n)){let a=$(n);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(n)}})}setPage(e,{visitId:i=this.createVisitId(),replace:r=!1,preserveScroll:s=!1,preserveState:l=!1}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>{i===this.visitId&&(e.scrollRegions=this.page.scrollRegions||[],e.rememberedState=e.rememberedState||{},r=r||b(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e),this.swapComponent({component:h,page:e,preserveState:l}).then(()=>{s?this.restoreScrollPositions():this.resetScrollPositions(),r||x(e)}))})}pushState(e){this.page=e,Y?setTimeout(()=>window.history.pushState(e,"",e.url)):window.history.pushState(e,"",e.url)}replaceState(e){this.page=e,Y?setTimeout(()=>window.history.replaceState(e,"",e.url)):window.history.replaceState(e,"",e.url)}handlePopstateEvent(e){if(e.state!==null){let i=e.state,r=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(s=>{r===this.visitId&&(this.page=i,this.swapComponent({component:s,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),x(i)}))})}else{let i=b(this.page.url);i.hash=window.location.hash,this.replaceState({...this.page,url:i.href}),this.resetScrollPositions()}}get(e,i={},r={}){return this.visit(e,{...r,method:"get",data:i})}reload(e={}){return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0})}replace(e,i={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${i.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...i,replace:!0})}post(e,i={},r={}){return this.visit(e,{preserveState:!0,...r,method:"post",data:i})}put(e,i={},r={}){return this.visit(e,{preserveState:!0,...r,method:"put",data:i})}patch(e,i={},r={}){return this.visit(e,{preserveState:!0,...r,method:"patch",data:i})}delete(e,i={}){return this.visit(e,{preserveState:!0,...i,method:"delete"})}remember(e,i="default"){C||this.replaceState({...this.page,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!C)return window.history.state?.rememberedState?.[e]}on(e,i){if(C)return()=>{};let r=s=>{let l=i(s);s.cancelable&&!s.defaultPrevented&&l===!1&&s.preventDefault()};return document.addEventListener(`inertia:${e}`,r),()=>document.removeEventListener(`inertia:${e}`,r)}};var se={buildDOMElement(t){let e=document.createElement("template");e.innerHTML=t;let i=e.content.firstChild;if(!t.startsWith("<script "))return i;let r=document.createElement("script");return r.innerHTML=i.innerHTML,i.getAttributeNames().forEach(s=>{r.setAttribute(s,i.getAttribute(s)||"")}),r},isInertiaManagedElement(t){return t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("inertia")!==null},findMatchingElementIndex(t,e){let i=t.getAttribute("inertia");return i!==null?e.findIndex(r=>r.getAttribute("inertia")===i):-1},update:T(function(t){let e=t.map(r=>this.buildDOMElement(r));Array.from(document.head.childNodes).filter(r=>this.isInertiaManagedElement(r)).forEach(r=>{let s=this.findMatchingElementIndex(r,e);if(s===-1){r?.parentNode?.removeChild(r);return}let l=e.splice(s,1)[0];l&&!r.isEqualNode(l)&&r?.parentNode?.replaceChild(l,r)}),e.forEach(r=>document.head.appendChild(r))},1)};function ee(t,e,i){let r={},s=0;function l(){let o=s+=1;return r[o]=[],o.toString()}function h(o){o===null||Object.keys(r).indexOf(o)===-1||(delete r[o],c())}function g(o,v=[]){o!==null&&Object.keys(r).indexOf(o)>-1&&(r[o]=v),c()}function m(){let o=e(""),v={...o?{title:`<title inertia="">${o}</title>`}:{}},L=Object.values(r).reduce((d,p)=>d.concat(p),[]).reduce((d,p)=>{if(p.indexOf("<")===-1)return d;if(p.indexOf("<title ")===0){let y=p.match(/(<title [^>]+>)(.*?)(<\/title>)/);return d.title=y?`${y[1]}${e(y[2])}${y[3]}`:p,d}let P=p.match(/ inertia="[^"]+"/);return P?d[P[0]]=p:d[Object.keys(d).length]=p,d},v);return Object.values(L)}function c(){t?i(m()):se.update(m())}return c(),{forceUpdate:c,createProvider:function(){let o=l();return{update:v=>g(o,v),disconnect:()=>h(o)}}}}import u from"nprogress";var te=null;function ae(t){document.addEventListener("inertia:start",le.bind(null,t)),document.addEventListener("inertia:progress",ce),document.addEventListener("inertia:finish",de)}function le(t){te=setTimeout(()=>u.start(),t)}function ce(t){u.isStarted()&&t.detail.progress?.percentage&&u.set(Math.max(u.status,t.detail.progress.percentage/100*.9))}function de(t){if(clearTimeout(te),u.isStarted())t.detail.visit.completed?u.done():t.detail.visit.interrupted?u.set(0):t.detail.visit.cancelled&&(u.done(),u.remove());else return}function pe(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
2
2
  #nprogress {
3
3
  pointer-events: none;
4
4
  }
@@ -69,5 +69,5 @@ import{default as B}from"axios";import oe from"deepmerge";function L(t,e){let i;
69
69
  0% { transform: rotate(0deg); }
70
70
  100% { transform: rotate(360deg); }
71
71
  }
72
- `,document.head.appendChild(e)}function ee({delay:t=250,color:e="#29d",includeCSS:i=!0,showSpinner:n=!1}={}){ae(t),u.configure({showSpinner:n}),i&&pe(e)}function te(t){let e=t.currentTarget.tagName.toLowerCase()==="a";return!(t.target&&(t?.target).isContentEditable||t.defaultPrevented||e&&t.which>1||e&&t.altKey||e&&t.ctrlKey||e&&t.metaKey||e&&t.shiftKey)}var De=new C;export{Y as createHeadManager,b as hrefToUrl,k as mergeDataIntoQueryString,De as router,ee as setupProgress,te as shouldIntercept,w as urlWithoutHash};
72
+ `,document.head.appendChild(e)}function ie({delay:t=250,color:e="#29d",includeCSS:i=!0,showSpinner:r=!1}={}){ae(t),u.configure({showSpinner:r}),i&&pe(e)}function re(t){let e=t.currentTarget.tagName.toLowerCase()==="a";return!(t.target&&(t?.target).isContentEditable||t.defaultPrevented||e&&t.altKey||e&&t.ctrlKey||e&&t.metaKey||e&&t.shiftKey||e&&"button"in t&&t.button!==0)}var Ne=new F;export{ee as createHeadManager,b as hrefToUrl,D as mergeDataIntoQueryString,Ne as router,ie as setupProgress,re as shouldIntercept,E as urlWithoutHash};
73
73
  //# sourceMappingURL=index.esm.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/router.ts", "../src/debounce.ts", "../src/events.ts", "../src/files.ts", "../src/formData.ts", "../src/modal.ts", "../src/url.ts", "../src/head.ts", "../src/progress.ts", "../src/shouldIntercept.ts", "../src/index.ts"],
4
- "sourcesContent": ["import { default as Axios, AxiosResponse } from 'axios'\nimport deepmerge from 'deepmerge'\nimport debounce from './debounce'\nimport {\n fireBeforeEvent,\n fireErrorEvent,\n fireExceptionEvent,\n fireFinishEvent,\n fireInvalidEvent,\n fireNavigateEvent,\n fireProgressEvent,\n fireStartEvent,\n fireSuccessEvent,\n} from './events'\nimport { hasFiles } from './files'\nimport { objectToFormData } from './formData'\nimport modal from './modal'\nimport {\n ActiveVisit,\n GlobalEvent,\n GlobalEventNames,\n GlobalEventResult,\n LocationVisit,\n Page,\n PageHandler,\n PageResolver,\n PendingVisit,\n PreserveStateOption,\n RequestPayload,\n VisitId,\n VisitOptions,\n} from './types'\nimport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\n\nconst isServer = typeof window === 'undefined'\n\nexport class Router {\n protected page!: Page\n protected resolveComponent!: PageResolver\n protected swapComponent!: PageHandler\n protected navigationType?: string\n protected activeVisit?: ActiveVisit\n protected visitId: VisitId = null\n\n public init({\n initialPage,\n resolveComponent,\n swapComponent,\n }: {\n initialPage: Page\n resolveComponent: PageResolver\n swapComponent: PageHandler\n }): void {\n this.page = initialPage\n this.resolveComponent = resolveComponent\n this.swapComponent = swapComponent\n\n this.setNavigationType()\n this.clearRememberedStateOnReload()\n\n if (this.isBackForwardVisit()) {\n this.handleBackForwardVisit(this.page)\n } else if (this.isLocationVisit()) {\n this.handleLocationVisit(this.page)\n } else {\n this.handleInitialPageVisit(this.page)\n }\n\n this.setupEventListeners()\n }\n\n protected setNavigationType(): void {\n this.navigationType =\n window.performance && window.performance.getEntriesByType('navigation').length > 0\n ? (window.performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming).type\n : 'navigate'\n }\n\n protected clearRememberedStateOnReload(): void {\n if (this.navigationType === 'reload' && window.history.state?.rememberedState) {\n delete window.history.state.rememberedState\n }\n }\n\n protected handleInitialPageVisit(page: Page): void {\n this.page.url += window.location.hash\n this.setPage(page, { preserveState: true }).then(() => fireNavigateEvent(page))\n }\n\n protected setupEventListeners(): void {\n window.addEventListener('popstate', this.handlePopstateEvent.bind(this))\n document.addEventListener('scroll', debounce(this.handleScrollEvent.bind(this), 100), true)\n }\n\n protected scrollRegions(): NodeListOf<Element> {\n return document.querySelectorAll('[scroll-region]')\n }\n\n protected handleScrollEvent(event: Event): void {\n if (\n typeof (event.target as Element).hasAttribute === 'function' &&\n (event.target as Element).hasAttribute('scroll-region')\n ) {\n this.saveScrollPositions()\n }\n }\n\n protected saveScrollPositions(): void {\n this.replaceState({\n ...this.page,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\n }),\n })\n }\n\n protected resetScrollPositions(): void {\n window.scrollTo(0, 0)\n this.scrollRegions().forEach((region) => {\n if (typeof region.scrollTo === 'function') {\n region.scrollTo(0, 0)\n } else {\n region.scrollTop = 0\n region.scrollLeft = 0\n }\n })\n this.saveScrollPositions()\n if (window.location.hash) {\n // We're using a setTimeout() here as a workaround for a bug in the React adapter where the\n // rendering isn't completing fast enough, causing the anchor link to not be scrolled to.\n setTimeout(() => document.getElementById(window.location.hash.slice(1))?.scrollIntoView())\n }\n }\n\n protected restoreScrollPositions(): void {\n if (this.page.scrollRegions) {\n this.scrollRegions().forEach((region: Element, index: number) => {\n const scrollPosition = this.page.scrollRegions[index]\n if (!scrollPosition) {\n return\n } else if (typeof region.scrollTo === 'function') {\n region.scrollTo(scrollPosition.left, scrollPosition.top)\n } else {\n region.scrollTop = scrollPosition.top\n region.scrollLeft = scrollPosition.left\n }\n })\n }\n }\n\n protected isBackForwardVisit(): boolean {\n return window.history.state && this.navigationType === 'back_forward'\n }\n\n protected handleBackForwardVisit(page: Page): void {\n window.history.state.version = page.version\n this.setPage(window.history.state, { preserveScroll: true, preserveState: true }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n\n protected locationVisit(url: URL, preserveScroll: LocationVisit['preserveScroll']): boolean | void {\n try {\n const locationVisit: LocationVisit = { preserveScroll }\n window.sessionStorage.setItem('inertiaLocationVisit', JSON.stringify(locationVisit))\n window.location.href = url.href\n if (urlWithoutHash(window.location).href === urlWithoutHash(url).href) {\n window.location.reload()\n }\n } catch (error) {\n return false\n }\n }\n\n protected isLocationVisit(): boolean {\n try {\n return window.sessionStorage.getItem('inertiaLocationVisit') !== null\n } catch (error) {\n return false\n }\n }\n\n protected handleLocationVisit(page: Page): void {\n const locationVisit: LocationVisit = JSON.parse(window.sessionStorage.getItem('inertiaLocationVisit') || '')\n window.sessionStorage.removeItem('inertiaLocationVisit')\n page.url += window.location.hash\n page.rememberedState = window.history.state?.rememberedState ?? {}\n page.scrollRegions = window.history.state?.scrollRegions ?? []\n this.setPage(page, { preserveScroll: locationVisit.preserveScroll, preserveState: true }).then(() => {\n if (locationVisit.preserveScroll) {\n this.restoreScrollPositions()\n }\n fireNavigateEvent(page)\n })\n }\n\n protected isLocationVisitResponse(response: AxiosResponse): boolean {\n return !!(response && response.status === 409 && response.headers['x-inertia-location'])\n }\n\n protected isInertiaResponse(response: AxiosResponse): boolean {\n return !!response?.headers['x-inertia']\n }\n\n protected createVisitId(): VisitId {\n this.visitId = {}\n return this.visitId\n }\n\n protected cancelVisit(\n activeVisit: ActiveVisit,\n { cancelled = false, interrupted = false }: { cancelled?: boolean; interrupted?: boolean },\n ): void {\n if (activeVisit && !activeVisit.completed && !activeVisit.cancelled && !activeVisit.interrupted) {\n activeVisit.cancelToken.abort()\n activeVisit.onCancel()\n activeVisit.completed = false\n activeVisit.cancelled = cancelled\n activeVisit.interrupted = interrupted\n fireFinishEvent(activeVisit)\n activeVisit.onFinish(activeVisit)\n }\n }\n\n protected finishVisit(visit: ActiveVisit): void {\n if (!visit.cancelled && !visit.interrupted) {\n visit.completed = true\n visit.cancelled = false\n visit.interrupted = false\n fireFinishEvent(visit)\n visit.onFinish(visit)\n }\n }\n\n protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean | string {\n if (typeof value === 'function') {\n return value(page)\n } else if (value === 'errors') {\n return Object.keys(page.props.errors || {}).length > 0\n } else {\n return value\n }\n }\n\n public cancel(): void {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n }\n\n public visit(\n href: string | URL,\n {\n method = 'get',\n data = {},\n replace = false,\n preserveScroll = false,\n preserveState = false,\n only = [],\n except = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n queryStringArrayFormat = 'brackets',\n }: VisitOptions = {},\n ): void {\n let url = typeof href === 'string' ? hrefToUrl(href) : href\n\n if ((hasFiles(data) || forceFormData) && !(data instanceof FormData)) {\n data = objectToFormData(data)\n }\n\n if (!(data instanceof FormData)) {\n const [_href, _data] = mergeDataIntoQueryString(method, url, data, queryStringArrayFormat)\n url = hrefToUrl(_href)\n data = _data\n }\n\n const visit: PendingVisit = {\n url,\n method,\n data,\n replace,\n preserveScroll,\n preserveState,\n only,\n except,\n headers,\n errorBag,\n forceFormData,\n queryStringArrayFormat,\n cancelled: false,\n completed: false,\n interrupted: false,\n }\n\n if (onBefore(visit) === false || !fireBeforeEvent(visit)) {\n return\n }\n\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { interrupted: true })\n }\n\n this.saveScrollPositions()\n\n const visitId = this.createVisitId()\n this.activeVisit = {\n ...visit,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n queryStringArrayFormat,\n cancelToken: new AbortController(),\n }\n\n onCancelToken({\n cancel: () => {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n },\n })\n\n fireStartEvent(visit)\n onStart(visit)\n\n const isPartial = !!(only.length || except.length)\n\n Axios({\n method,\n url: urlWithoutHash(url).href,\n data: method === 'get' ? {} : data,\n params: method === 'get' ? data : {},\n signal: this.activeVisit.cancelToken.signal,\n headers: {\n ...headers,\n Accept: 'text/html, application/xhtml+xml',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-Inertia': true,\n ...(isPartial\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n }\n : {}),\n ...(only.length\n ? {\n 'X-Inertia-Partial-Data': only.join(','),\n }\n : {}),\n ...(except.length\n ? {\n 'X-Inertia-Partial-Except': except.join(','),\n }\n : {}),\n ...(errorBag && errorBag.length ? { 'X-Inertia-Error-Bag': errorBag } : {}),\n ...(this.page.version ? { 'X-Inertia-Version': this.page.version } : {}),\n },\n onUploadProgress: (progress) => {\n if (data instanceof FormData) {\n progress.percentage = progress.progress ? Math.round(progress.progress * 100) : 0\n fireProgressEvent(progress)\n onProgress(progress)\n }\n },\n })\n .then((response) => {\n if (!this.isInertiaResponse(response)) {\n return Promise.reject({ response })\n }\n\n const pageResponse: Page = response.data\n if (isPartial && pageResponse.component === this.page.component) {\n pageResponse.props = deepmerge(this.page.props, pageResponse.props, {\n arrayMerge: (_target: any[], source: any[]) => source,\n })\n }\n preserveScroll = this.resolvePreserveOption(preserveScroll, pageResponse) as boolean\n preserveState = this.resolvePreserveOption(preserveState, pageResponse)\n if (preserveState && window.history.state?.rememberedState && pageResponse.component === this.page.component) {\n pageResponse.rememberedState = window.history.state.rememberedState\n }\n const requestUrl = url\n const responseUrl = hrefToUrl(pageResponse.url)\n if (requestUrl.hash && !responseUrl.hash && urlWithoutHash(requestUrl).href === responseUrl.href) {\n responseUrl.hash = requestUrl.hash\n pageResponse.url = responseUrl.href\n }\n return this.setPage(pageResponse, { visitId, replace, preserveScroll, preserveState })\n })\n .then(() => {\n const errors = this.page.props.errors || {}\n if (Object.keys(errors).length > 0) {\n const scopedErrors = errorBag ? (errors[errorBag] ? errors[errorBag] : {}) : errors\n fireErrorEvent(scopedErrors)\n return onError(scopedErrors)\n }\n fireSuccessEvent(this.page)\n return onSuccess(this.page)\n })\n .catch((error) => {\n if (this.isInertiaResponse(error.response)) {\n return this.setPage(error.response.data, { visitId })\n } else if (this.isLocationVisitResponse(error.response)) {\n const locationUrl = hrefToUrl(error.response.headers['x-inertia-location'])\n const requestUrl = url\n if (requestUrl.hash && !locationUrl.hash && urlWithoutHash(requestUrl).href === locationUrl.href) {\n locationUrl.hash = requestUrl.hash\n }\n this.locationVisit(locationUrl, preserveScroll === true)\n } else if (error.response) {\n if (fireInvalidEvent(error.response)) {\n modal.show(error.response.data)\n }\n } else {\n return Promise.reject(error)\n }\n })\n .then(() => {\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n })\n .catch((error) => {\n if (!Axios.isCancel(error)) {\n const throwException = fireExceptionEvent(error)\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n if (throwException) {\n return Promise.reject(error)\n }\n }\n })\n }\n\n protected setPage(\n page: Page,\n {\n visitId = this.createVisitId(),\n replace = false,\n preserveScroll = false,\n preserveState = false,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n } = {},\n ): Promise<void> {\n return Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n page.scrollRegions = page.scrollRegions || []\n page.rememberedState = page.rememberedState || {}\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n this.swapComponent({ component, page, preserveState }).then(() => {\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n })\n }\n\n protected pushState(page: Page): void {\n this.page = page\n window.history.pushState(page, '', page.url)\n }\n\n protected replaceState(page: Page): void {\n this.page = page\n window.history.replaceState(page, '', page.url)\n }\n\n protected handlePopstateEvent(event: PopStateEvent): void {\n if (event.state !== null) {\n const page = event.state\n const visitId = this.createVisitId()\n Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n this.page = page\n this.swapComponent({ component, page, preserveState: false }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n })\n } else {\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...this.page, url: url.href })\n this.resetScrollPositions()\n }\n }\n\n public get(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Omit<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { ...options, preserveScroll: true, preserveState: true })\n }\n\n public replace(url: URL | string, options: Omit<VisitOptions, 'replace'> = {}): void {\n console.warn(\n `Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${\n options.method ?? 'get'\n }() instead.`,\n )\n return this.visit(url, { preserveState: true, ...options, replace: true })\n }\n\n public post(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'put', data })\n }\n\n public patch(\n url: URL | string,\n data: RequestPayload = {},\n options: Omit<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'patch', data })\n }\n\n public delete(url: URL | string, options: Omit<VisitOptions, 'method'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'delete' })\n }\n\n public remember(data: unknown, key = 'default'): void {\n if (isServer) {\n return\n }\n\n this.replaceState({\n ...this.page,\n rememberedState: {\n ...this.page?.rememberedState,\n [key]: data,\n },\n })\n }\n\n public restore(key = 'default'): unknown {\n if (isServer) {\n return\n }\n\n return window.history.state?.rememberedState?.[key]\n }\n\n public on<TEventName extends GlobalEventNames>(\n type: TEventName,\n callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>,\n ): VoidFunction {\n const listener = ((event: GlobalEvent<TEventName>) => {\n const response = callback(event)\n if (event.cancelable && !event.defaultPrevented && response === false) {\n event.preventDefault()\n }\n }) as EventListener\n\n document.addEventListener(`inertia:${type}`, listener)\n return () => document.removeEventListener(`inertia:${type}`, listener)\n }\n}\n", "export default function debounce<F extends (...params: any[]) => ReturnType<F>>(fn: F, delay: number): F {\n let timeoutID: NodeJS.Timeout\n return function (...args: unknown[]) {\n clearTimeout(timeoutID)\n timeoutID = setTimeout(() => fn.apply(this, args), delay)\n } as F\n}\n", "import { GlobalEventDetails, GlobalEventNames, GlobalEventTrigger } from './types'\n\nfunction fireEvent<TEventName extends GlobalEventNames>(\n name: TEventName,\n options: CustomEventInit<GlobalEventDetails<TEventName>>,\n): boolean {\n return document.dispatchEvent(new CustomEvent(`inertia:${name}`, options))\n}\n\nexport const fireBeforeEvent: GlobalEventTrigger<'before'> = (visit) => {\n return fireEvent('before', { cancelable: true, detail: { visit } })\n}\n\nexport const fireErrorEvent: GlobalEventTrigger<'error'> = (errors) => {\n return fireEvent('error', { detail: { errors } })\n}\n\nexport const fireExceptionEvent: GlobalEventTrigger<'exception'> = (exception) => {\n return fireEvent('exception', { cancelable: true, detail: { exception } })\n}\n\nexport const fireFinishEvent: GlobalEventTrigger<'finish'> = (visit) => {\n return fireEvent('finish', { detail: { visit } })\n}\n\nexport const fireInvalidEvent: GlobalEventTrigger<'invalid'> = (response) => {\n return fireEvent('invalid', { cancelable: true, detail: { response } })\n}\n\nexport const fireNavigateEvent: GlobalEventTrigger<'navigate'> = (page) => {\n return fireEvent('navigate', { detail: { page } })\n}\n\nexport const fireProgressEvent: GlobalEventTrigger<'progress'> = (progress) => {\n return fireEvent('progress', { detail: { progress } })\n}\n\nexport const fireStartEvent: GlobalEventTrigger<'start'> = (visit) => {\n return fireEvent('start', { detail: { visit } })\n}\n\nexport const fireSuccessEvent: GlobalEventTrigger<'success'> = (page) => {\n return fireEvent('success', { detail: { page } })\n}\n", "import { FormDataConvertible, RequestPayload } from './types'\n\nexport function hasFiles(data: RequestPayload | FormDataConvertible): boolean {\n return (\n data instanceof File ||\n data instanceof Blob ||\n (data instanceof FileList && data.length > 0) ||\n (data instanceof FormData && Array.from(data.values()).some((value) => hasFiles(value))) ||\n (typeof data === 'object' && data !== null && Object.values(data).some((value) => hasFiles(value)))\n )\n}\n", "import { FormDataConvertible } from './types'\n\nexport function objectToFormData(\n source: Record<string, FormDataConvertible>,\n form: FormData = new FormData(),\n parentKey: string | null = null,\n): FormData {\n source = source || {}\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n append(form, composeKey(parentKey, key), source[key])\n }\n }\n\n return form\n}\n\nfunction composeKey(parent: string | null, key: string): string {\n return parent ? parent + '[' + key + ']' : key\n}\n\nfunction append(form: FormData, key: string, value: FormDataConvertible): void {\n if (Array.isArray(value)) {\n return Array.from(value.keys()).forEach((index) => append(form, composeKey(key, index.toString()), value[index]))\n } else if (value instanceof Date) {\n return form.append(key, value.toISOString())\n } else if (value instanceof File) {\n return form.append(key, value, value.name)\n } else if (value instanceof Blob) {\n return form.append(key, value)\n } else if (typeof value === 'boolean') {\n return form.append(key, value ? '1' : '0')\n } else if (typeof value === 'string') {\n return form.append(key, value)\n } else if (typeof value === 'number') {\n return form.append(key, `${value}`)\n } else if (value === null || value === undefined) {\n return form.append(key, '')\n }\n\n objectToFormData(value, form, key)\n}\n", "export default {\n modal: null,\n listener: null,\n\n show(html: Record<string, unknown> | string): void {\n if (typeof html === 'object') {\n html = `All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(\n html,\n )}`\n }\n\n const page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach((a) => a.setAttribute('target', '_top'))\n\n this.modal = document.createElement('div')\n this.modal.style.position = 'fixed'\n this.modal.style.width = '100vw'\n this.modal.style.height = '100vh'\n this.modal.style.padding = '50px'\n this.modal.style.boxSizing = 'border-box'\n this.modal.style.backgroundColor = 'rgba(0, 0, 0, .6)'\n this.modal.style.zIndex = 200000\n this.modal.addEventListener('click', () => this.hide())\n\n const iframe = document.createElement('iframe')\n iframe.style.backgroundColor = 'white'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n this.modal.appendChild(iframe)\n\n document.body.prepend(this.modal)\n document.body.style.overflow = 'hidden'\n if (!iframe.contentWindow) {\n throw new Error('iframe not yet ready.')\n }\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n this.listener = this.hideOnEscape.bind(this)\n document.addEventListener('keydown', this.listener)\n },\n\n hide(): void {\n this.modal.outerHTML = ''\n this.modal = null\n document.body.style.overflow = 'visible'\n document.removeEventListener('keydown', this.listener)\n },\n\n hideOnEscape(event: KeyboardEvent): void {\n if (event.keyCode === 27) {\n this.hide()\n }\n },\n}\n", "import deepmerge from 'deepmerge'\nimport * as qs from 'qs'\nimport { FormDataConvertible, Method } from './types'\n\nexport function hrefToUrl(href: string | URL): URL {\n return new URL(href.toString(), window.location.toString())\n}\n\nexport function mergeDataIntoQueryString(\n method: Method,\n href: URL | string,\n data: Record<string, FormDataConvertible>,\n qsArrayFormat: 'indices' | 'brackets' = 'brackets',\n): [string, Record<string, FormDataConvertible>] {\n const hasHost = /^https?:\\/\\//.test(href.toString())\n const hasAbsolutePath = hasHost || href.toString().startsWith('/')\n const hasRelativePath = !hasAbsolutePath && !href.toString().startsWith('#') && !href.toString().startsWith('?')\n const hasSearch = href.toString().includes('?') || (method === 'get' && Object.keys(data).length)\n const hasHash = href.toString().includes('#')\n\n const url = new URL(href.toString(), 'http://localhost')\n\n if (method === 'get' && Object.keys(data).length) {\n url.search = qs.stringify(deepmerge(qs.parse(url.search, { ignoreQueryPrefix: true }), data), {\n encodeValuesOnly: true,\n arrayFormat: qsArrayFormat,\n })\n data = {}\n }\n\n return [\n [\n hasHost ? `${url.protocol}//${url.host}` : '',\n hasAbsolutePath ? url.pathname : '',\n hasRelativePath ? url.pathname.substring(1) : '',\n hasSearch ? url.search : '',\n hasHash ? url.hash : '',\n ].join(''),\n data,\n ]\n}\n\nexport function urlWithoutHash(url: URL | Location): URL {\n url = new URL(url.href)\n url.hash = ''\n return url\n}\n", "import debounce from './debounce'\n\nconst Renderer = {\n buildDOMElement(tag: string): ChildNode {\n const template = document.createElement('template')\n template.innerHTML = tag\n const node = template.content.firstChild as Element\n\n if (!tag.startsWith('<script ')) {\n return node\n }\n\n const script = document.createElement('script')\n script.innerHTML = node.innerHTML\n node.getAttributeNames().forEach((name) => {\n script.setAttribute(name, node.getAttribute(name) || '')\n })\n\n return script\n },\n\n isInertiaManagedElement(element: Element): boolean {\n return element.nodeType === Node.ELEMENT_NODE && element.getAttribute('inertia') !== null\n },\n\n findMatchingElementIndex(element: Element, elements: Array<Element>): number {\n const key = element.getAttribute('inertia')\n if (key !== null) {\n return elements.findIndex((element) => element.getAttribute('inertia') === key)\n }\n\n return -1\n },\n\n update: debounce(function (elements: Array<string>) {\n const sourceElements = elements.map((element) => this.buildDOMElement(element))\n const targetElements = Array.from(document.head.childNodes).filter((element) =>\n this.isInertiaManagedElement(element as Element),\n )\n\n targetElements.forEach((targetElement) => {\n const index = this.findMatchingElementIndex(targetElement as Element, sourceElements)\n if (index === -1) {\n targetElement?.parentNode?.removeChild(targetElement)\n return\n }\n\n const sourceElement = sourceElements.splice(index, 1)[0]\n if (sourceElement && !targetElement.isEqualNode(sourceElement)) {\n targetElement?.parentNode?.replaceChild(sourceElement, targetElement)\n }\n })\n\n sourceElements.forEach((element) => document.head.appendChild(element))\n }, 1),\n}\n\nexport default function createHeadManager(\n isServer: boolean,\n titleCallback: (title: string) => string,\n onUpdate: (elements: string[]) => void,\n): {\n forceUpdate: () => void\n createProvider: () => {\n update: (elements: string[]) => void\n disconnect: () => void\n }\n} {\n const states: Record<string, Array<string>> = {}\n let lastProviderId = 0\n\n function connect(): string {\n const id = (lastProviderId += 1)\n states[id] = []\n return id.toString()\n }\n\n function disconnect(id: string): void {\n if (id === null || Object.keys(states).indexOf(id) === -1) {\n return\n }\n\n delete states[id]\n commit()\n }\n\n function update(id: string, elements: Array<string> = []): void {\n if (id !== null && Object.keys(states).indexOf(id) > -1) {\n states[id] = elements\n }\n\n commit()\n }\n\n function collect(): Array<string> {\n const title = titleCallback('')\n\n const defaults: Record<string, string> = {\n ...(title ? { title: `<title inertia=\"\">${title}</title>` } : {}),\n }\n\n const elements = Object.values(states)\n .reduce((carry, elements) => carry.concat(elements), [])\n .reduce((carry, element) => {\n if (element.indexOf('<') === -1) {\n return carry\n }\n\n if (element.indexOf('<title ') === 0) {\n const title = element.match(/(<title [^>]+>)(.*?)(<\\/title>)/)\n carry.title = title ? `${title[1]}${titleCallback(title[2])}${title[3]}` : element\n return carry\n }\n\n const match = element.match(/ inertia=\"[^\"]+\"/)\n if (match) {\n carry[match[0]] = element\n } else {\n carry[Object.keys(carry).length] = element\n }\n\n return carry\n }, defaults)\n\n return Object.values(elements)\n }\n\n function commit(): void {\n isServer ? onUpdate(collect()) : Renderer.update(collect())\n }\n\n // By committing during initialization, we can guarantee that the default\n // tags are set, as well as that they exist during SSR itself.\n commit()\n\n return {\n forceUpdate: commit,\n createProvider: function () {\n const id = connect()\n\n return {\n update: (elements) => update(id, elements),\n disconnect: () => disconnect(id),\n }\n },\n }\n}\n", "import NProgress from 'nprogress'\nimport { GlobalEvent } from './types'\n\nlet timeout: NodeJS.Timeout | null = null\n\nfunction addEventListeners(delay: number): void {\n document.addEventListener('inertia:start', start.bind(null, delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number): void {\n timeout = setTimeout(() => NProgress.start(), delay)\n}\n\nfunction progress(event: GlobalEvent<'progress'>) {\n if (NProgress.isStarted() && event.detail.progress?.percentage) {\n NProgress.set(Math.max(NProgress.status!, (event.detail.progress.percentage / 100) * 0.9))\n }\n}\n\nfunction finish(event: GlobalEvent<'finish'>) {\n clearTimeout(timeout!)\n if (!NProgress.isStarted()) {\n return\n } else if (event.detail.visit.completed) {\n NProgress.done()\n } else if (event.detail.visit.interrupted) {\n NProgress.set(0)\n } else if (event.detail.visit.cancelled) {\n NProgress.done()\n NProgress.remove()\n }\n}\n\nfunction injectCSS(color: string): void {\n const element = document.createElement('style')\n element.type = 'text/css'\n element.textContent = `\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: ${color};\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n document.head.appendChild(element)\n}\n\nexport default function setupProgress({\n delay = 250,\n color = '#29d',\n includeCSS = true,\n showSpinner = false,\n} = {}): void {\n addEventListeners(delay)\n NProgress.configure({ showSpinner })\n if (includeCSS) {\n injectCSS(color)\n }\n}\n", "export default function shouldIntercept(event: KeyboardEvent): boolean {\n const isLink = (event.currentTarget as HTMLElement).tagName.toLowerCase() === 'a'\n return !(\n (event.target && (event?.target as HTMLElement).isContentEditable) ||\n event.defaultPrevented ||\n (isLink && event.which > 1) ||\n (isLink && event.altKey) ||\n (isLink && event.ctrlKey) ||\n (isLink && event.metaKey) ||\n (isLink && event.shiftKey)\n )\n}\n", "import { Router } from './router'\n\nexport { default as createHeadManager } from './head'\nexport { default as setupProgress } from './progress'\nexport { default as shouldIntercept } from './shouldIntercept'\nexport * from './types'\nexport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\nexport { type Router }\n\nexport const router = new Router()\n"],
5
- "mappings": "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",
6
- "names": ["Axios", "deepmerge", "debounce", "fn", "delay", "timeoutID", "args", "fireEvent", "name", "options", "fireBeforeEvent", "visit", "fireErrorEvent", "errors", "fireExceptionEvent", "exception", "fireFinishEvent", "fireInvalidEvent", "response", "fireNavigateEvent", "page", "fireProgressEvent", "progress", "fireStartEvent", "fireSuccessEvent", "hasFiles", "data", "value", "objectToFormData", "source", "form", "parentKey", "key", "append", "composeKey", "parent", "value", "index", "modal_default", "html", "page", "a", "iframe", "event", "deepmerge", "qs", "hrefToUrl", "href", "mergeDataIntoQueryString", "method", "data", "qsArrayFormat", "hasHost", "hasAbsolutePath", "hasRelativePath", "hasSearch", "hasHash", "url", "urlWithoutHash", "isServer", "Router", "initialPage", "resolveComponent", "swapComponent", "page", "fireNavigateEvent", "debounce", "event", "region", "index", "scrollPosition", "url", "preserveScroll", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "href", "method", "data", "replace", "preserveState", "only", "except", "headers", "errorBag", "forceFormData", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "queryStringArrayFormat", "hrefToUrl", "hasFiles", "objectToFormData", "_href", "_data", "mergeDataIntoQueryString", "fireBeforeEvent", "visitId", "fireStartEvent", "isPartial", "Axios", "progress", "fireProgressEvent", "pageResponse", "deepmerge", "_target", "source", "requestUrl", "responseUrl", "errors", "scopedErrors", "fireErrorEvent", "fireSuccessEvent", "error", "locationUrl", "fireInvalidEvent", "modal_default", "throwException", "fireExceptionEvent", "component", "options", "key", "type", "callback", "listener", "Renderer", "tag", "template", "node", "script", "name", "element", "elements", "key", "debounce", "sourceElements", "targetElement", "index", "sourceElement", "createHeadManager", "isServer", "titleCallback", "onUpdate", "states", "lastProviderId", "connect", "id", "disconnect", "commit", "update", "collect", "title", "defaults", "carry", "match", "NProgress", "timeout", "addEventListeners", "delay", "start", "progress", "finish", "event", "injectCSS", "color", "element", "setupProgress", "includeCSS", "showSpinner", "shouldIntercept", "event", "isLink", "router", "Router"]
4
+ "sourcesContent": ["import { default as Axios, AxiosResponse } from 'axios'\nimport debounce from './debounce'\nimport {\n fireBeforeEvent,\n fireErrorEvent,\n fireExceptionEvent,\n fireFinishEvent,\n fireInvalidEvent,\n fireNavigateEvent,\n fireProgressEvent,\n fireStartEvent,\n fireSuccessEvent,\n} from './events'\nimport { hasFiles } from './files'\nimport { objectToFormData } from './formData'\nimport modal from './modal'\nimport {\n ActiveVisit,\n GlobalEvent,\n GlobalEventNames,\n GlobalEventResult,\n LocationVisit,\n Page,\n PageHandler,\n PageResolver,\n PendingVisit,\n PreserveStateOption,\n RequestPayload,\n VisitId,\n VisitOptions,\n} from './types'\nimport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\n\nconst isServer = typeof window === 'undefined'\nconst isChromeIOS = !isServer && /CriOS/.test(window.navigator.userAgent)\nconst nextFrame = (callback: () => void) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(callback)\n })\n}\n\nexport class Router {\n protected page!: Page\n protected resolveComponent!: PageResolver\n protected swapComponent!: PageHandler\n protected navigationType?: string\n protected activeVisit?: ActiveVisit\n protected visitId: VisitId = null\n\n public init({\n initialPage,\n resolveComponent,\n swapComponent,\n }: {\n initialPage: Page\n resolveComponent: PageResolver\n swapComponent: PageHandler\n }): void {\n this.page = initialPage\n this.resolveComponent = resolveComponent\n this.swapComponent = swapComponent\n\n this.setNavigationType()\n this.clearRememberedStateOnReload()\n\n if (this.isBackForwardVisit()) {\n this.handleBackForwardVisit(this.page)\n } else if (this.isLocationVisit()) {\n this.handleLocationVisit(this.page)\n } else {\n this.handleInitialPageVisit(this.page)\n }\n\n this.setupEventListeners()\n }\n\n protected setNavigationType(): void {\n this.navigationType =\n window.performance &&\n window.performance.getEntriesByType &&\n window.performance.getEntriesByType('navigation').length > 0\n ? (window.performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming).type\n : 'navigate'\n }\n\n protected clearRememberedStateOnReload(): void {\n if (this.navigationType === 'reload' && window.history.state?.rememberedState) {\n delete window.history.state.rememberedState\n }\n }\n\n protected handleInitialPageVisit(page: Page): void {\n const hash = window.location.hash\n if (!this.page.url.includes(hash)) {\n this.page.url += hash\n }\n this.setPage(page, { preserveScroll: true, preserveState: true }).then(() => fireNavigateEvent(page))\n }\n\n protected setupEventListeners(): void {\n window.addEventListener('popstate', this.handlePopstateEvent.bind(this))\n document.addEventListener('scroll', debounce(this.handleScrollEvent.bind(this), 100), true)\n }\n\n protected scrollRegions(): NodeListOf<Element> {\n return document.querySelectorAll('[scroll-region]')\n }\n\n protected handleScrollEvent(event: Event): void {\n if (\n typeof (event.target as Element).hasAttribute === 'function' &&\n (event.target as Element).hasAttribute('scroll-region')\n ) {\n this.saveScrollPositions()\n }\n }\n\n protected saveScrollPositions(): void {\n this.replaceState({\n ...this.page,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\n }),\n })\n }\n\n protected resetScrollPositions(): void {\n nextFrame(() => {\n window.scrollTo(0, 0)\n this.scrollRegions().forEach((region) => {\n if (typeof region.scrollTo === 'function') {\n region.scrollTo(0, 0)\n } else {\n region.scrollTop = 0\n region.scrollLeft = 0\n }\n })\n this.saveScrollPositions()\n if (window.location.hash) {\n document.getElementById(window.location.hash.slice(1))?.scrollIntoView()\n }\n })\n }\n\n protected restoreScrollPositions(): void {\n nextFrame(() => {\n if (!this.page.scrollRegions) return\n\n this.scrollRegions().forEach((region: Element, index: number) => {\n const scrollPosition = this.page.scrollRegions[index]\n if (!scrollPosition) {\n return\n } else if (typeof region.scrollTo === 'function') {\n region.scrollTo(scrollPosition.left, scrollPosition.top)\n } else {\n region.scrollTop = scrollPosition.top\n region.scrollLeft = scrollPosition.left\n }\n })\n })\n }\n\n protected isBackForwardVisit(): boolean {\n return window.history.state && this.navigationType === 'back_forward'\n }\n\n protected handleBackForwardVisit(page: Page): void {\n window.history.state.version = page.version\n this.setPage(window.history.state, { preserveScroll: true, preserveState: true }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n\n protected locationVisit(url: URL, preserveScroll: LocationVisit['preserveScroll']): boolean | void {\n try {\n const locationVisit: LocationVisit = { preserveScroll }\n window.sessionStorage.setItem('inertiaLocationVisit', JSON.stringify(locationVisit))\n window.location.href = url.href\n if (urlWithoutHash(window.location).href === urlWithoutHash(url).href) {\n window.location.reload()\n }\n } catch (error) {\n return false\n }\n }\n\n protected isLocationVisit(): boolean {\n try {\n return window.sessionStorage.getItem('inertiaLocationVisit') !== null\n } catch (error) {\n return false\n }\n }\n\n protected handleLocationVisit(page: Page): void {\n const locationVisit: LocationVisit = JSON.parse(window.sessionStorage.getItem('inertiaLocationVisit') || '')\n window.sessionStorage.removeItem('inertiaLocationVisit')\n page.url += window.location.hash\n page.rememberedState = window.history.state?.rememberedState ?? {}\n page.scrollRegions = window.history.state?.scrollRegions ?? []\n this.setPage(page, { preserveScroll: locationVisit.preserveScroll, preserveState: true }).then(() => {\n if (locationVisit.preserveScroll) {\n this.restoreScrollPositions()\n }\n fireNavigateEvent(page)\n })\n }\n\n protected isLocationVisitResponse(response: AxiosResponse): boolean {\n return !!(response && response.status === 409 && response.headers['x-inertia-location'])\n }\n\n protected isInertiaResponse(response: AxiosResponse): boolean {\n return !!response?.headers['x-inertia']\n }\n\n protected createVisitId(): VisitId {\n this.visitId = {}\n return this.visitId\n }\n\n protected cancelVisit(\n activeVisit: ActiveVisit,\n { cancelled = false, interrupted = false }: { cancelled?: boolean; interrupted?: boolean },\n ): void {\n if (activeVisit && !activeVisit.completed && !activeVisit.cancelled && !activeVisit.interrupted) {\n activeVisit.cancelToken.abort()\n activeVisit.onCancel()\n activeVisit.completed = false\n activeVisit.cancelled = cancelled\n activeVisit.interrupted = interrupted\n fireFinishEvent(activeVisit)\n activeVisit.onFinish(activeVisit)\n }\n }\n\n protected finishVisit(visit: ActiveVisit): void {\n if (!visit.cancelled && !visit.interrupted) {\n visit.completed = true\n visit.cancelled = false\n visit.interrupted = false\n fireFinishEvent(visit)\n visit.onFinish(visit)\n }\n }\n\n protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean {\n if (typeof value === 'function') {\n return value(page)\n } else if (value === 'errors') {\n return Object.keys(page.props.errors || {}).length > 0\n } else {\n return value\n }\n }\n\n public cancel(): void {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n }\n\n public visit(\n href: string | URL,\n {\n method = 'get',\n data = {},\n replace = false,\n preserveScroll = false,\n preserveState = false,\n only = [],\n except = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n queryStringArrayFormat = 'brackets',\n }: VisitOptions = {},\n ): void {\n let url = typeof href === 'string' ? hrefToUrl(href) : href\n\n if ((hasFiles(data) || forceFormData) && !(data instanceof FormData)) {\n data = objectToFormData(data)\n }\n\n if (!(data instanceof FormData)) {\n const [_href, _data] = mergeDataIntoQueryString(method, url, data, queryStringArrayFormat)\n url = hrefToUrl(_href)\n data = _data\n }\n\n const visit: PendingVisit = {\n url,\n method,\n data,\n replace,\n preserveScroll,\n preserveState,\n only,\n except,\n headers,\n errorBag,\n forceFormData,\n queryStringArrayFormat,\n cancelled: false,\n completed: false,\n interrupted: false,\n }\n\n if (onBefore(visit) === false || !fireBeforeEvent(visit)) {\n return\n }\n\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { interrupted: true })\n }\n\n this.saveScrollPositions()\n\n const visitId = this.createVisitId()\n this.activeVisit = {\n ...visit,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n queryStringArrayFormat,\n cancelToken: new AbortController(),\n }\n\n onCancelToken({\n cancel: () => {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n },\n })\n\n fireStartEvent(visit)\n onStart(visit)\n\n const isPartial = !!(only.length || except.length)\n\n Axios({\n method,\n url: urlWithoutHash(url).href,\n data: method === 'get' ? {} : data,\n params: method === 'get' ? data : {},\n signal: this.activeVisit.cancelToken.signal,\n headers: {\n ...headers,\n Accept: 'text/html, application/xhtml+xml',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-Inertia': true,\n ...(isPartial\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n }\n : {}),\n ...(only.length\n ? {\n 'X-Inertia-Partial-Data': only.join(','),\n }\n : {}),\n ...(except.length\n ? {\n 'X-Inertia-Partial-Except': except.join(','),\n }\n : {}),\n ...(errorBag && errorBag.length ? { 'X-Inertia-Error-Bag': errorBag } : {}),\n ...(this.page.version ? { 'X-Inertia-Version': this.page.version } : {}),\n },\n onUploadProgress: (progress) => {\n if (data instanceof FormData) {\n progress.percentage = progress.progress ? Math.round(progress.progress * 100) : 0\n fireProgressEvent(progress)\n onProgress(progress)\n }\n },\n })\n .then((response) => {\n if (!this.isInertiaResponse(response)) {\n return Promise.reject({ response })\n }\n\n const pageResponse: Page = response.data\n if (isPartial && pageResponse.component === this.page.component) {\n pageResponse.props = { ...this.page.props, ...pageResponse.props }\n }\n preserveScroll = this.resolvePreserveOption(preserveScroll, pageResponse) as boolean\n preserveState = this.resolvePreserveOption(preserveState, pageResponse)\n if (preserveState && window.history.state?.rememberedState && pageResponse.component === this.page.component) {\n pageResponse.rememberedState = window.history.state.rememberedState\n }\n const requestUrl = url\n const responseUrl = hrefToUrl(pageResponse.url)\n if (requestUrl.hash && !responseUrl.hash && urlWithoutHash(requestUrl).href === responseUrl.href) {\n responseUrl.hash = requestUrl.hash\n pageResponse.url = responseUrl.href\n }\n return this.setPage(pageResponse, { visitId, replace, preserveScroll, preserveState })\n })\n .then(() => {\n const errors = this.page.props.errors || {}\n if (Object.keys(errors).length > 0) {\n const scopedErrors = errorBag ? (errors[errorBag] ? errors[errorBag] : {}) : errors\n fireErrorEvent(scopedErrors)\n return onError(scopedErrors)\n }\n fireSuccessEvent(this.page)\n return onSuccess(this.page)\n })\n .catch((error) => {\n if (this.isInertiaResponse(error.response)) {\n return this.setPage(error.response.data, { visitId })\n } else if (this.isLocationVisitResponse(error.response)) {\n const locationUrl = hrefToUrl(error.response.headers['x-inertia-location'])\n const requestUrl = url\n if (requestUrl.hash && !locationUrl.hash && urlWithoutHash(requestUrl).href === locationUrl.href) {\n locationUrl.hash = requestUrl.hash\n }\n this.locationVisit(locationUrl, preserveScroll === true)\n } else if (error.response) {\n if (fireInvalidEvent(error.response)) {\n modal.show(error.response.data)\n }\n } else {\n return Promise.reject(error)\n }\n })\n .then(() => {\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n })\n .catch((error) => {\n if (!Axios.isCancel(error)) {\n const throwException = fireExceptionEvent(error)\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n if (throwException) {\n return Promise.reject(error)\n }\n }\n })\n }\n\n protected setPage(\n page: Page,\n {\n visitId = this.createVisitId(),\n replace = false,\n preserveScroll = false,\n preserveState = false,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n } = {},\n ): Promise<void> {\n return Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n page.scrollRegions = this.page.scrollRegions || []\n page.rememberedState = page.rememberedState || {}\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n this.swapComponent({ component, page, preserveState }).then(() => {\n preserveScroll ? this.restoreScrollPositions() : this.resetScrollPositions()\n\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n })\n }\n\n protected pushState(page: Page): void {\n this.page = page\n if (isChromeIOS) {\n // Defer history.pushState to the next event loop tick to prevent timing conflicts.\n // Ensure any previous history.replaceState completes before pushState is executed.\n setTimeout(() => window.history.pushState(page, '', page.url))\n } else {\n window.history.pushState(page, '', page.url)\n }\n }\n\n protected replaceState(page: Page): void {\n this.page = page\n if (isChromeIOS) {\n // Defer history.replaceState to the next event loop tick to prevent timing conflicts.\n // Ensure any previous history.pushState completes before replaceState is executed.\n setTimeout(() => window.history.replaceState(page, '', page.url))\n } else {\n window.history.replaceState(page, '', page.url)\n }\n }\n\n protected handlePopstateEvent(event: PopStateEvent): void {\n if (event.state !== null) {\n const page = event.state\n const visitId = this.createVisitId()\n Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n this.page = page\n this.swapComponent({ component, page, preserveState: false }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n })\n } else {\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...this.page, url: url.href })\n this.resetScrollPositions()\n }\n }\n\n public get(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Omit<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { ...options, preserveScroll: true, preserveState: true })\n }\n\n public replace(url: URL | string, options: Omit<VisitOptions, 'replace'> = {}): void {\n console.warn(\n `Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${\n options.method ?? 'get'\n }() instead.`,\n )\n return this.visit(url, { preserveState: true, ...options, replace: true })\n }\n\n public post(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'put', data })\n }\n\n public patch(\n url: URL | string,\n data: RequestPayload = {},\n options: Omit<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'patch', data })\n }\n\n public delete(url: URL | string, options: Omit<VisitOptions, 'method'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'delete' })\n }\n\n public remember(data: unknown, key = 'default'): void {\n if (isServer) {\n return\n }\n\n this.replaceState({\n ...this.page,\n rememberedState: {\n ...this.page?.rememberedState,\n [key]: data,\n },\n })\n }\n\n public restore(key = 'default'): unknown {\n if (isServer) {\n return\n }\n\n return window.history.state?.rememberedState?.[key]\n }\n\n public on<TEventName extends GlobalEventNames>(\n type: TEventName,\n callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>,\n ): VoidFunction {\n if (isServer) {\n return () => {}\n }\n\n const listener = ((event: GlobalEvent<TEventName>) => {\n const response = callback(event)\n if (event.cancelable && !event.defaultPrevented && response === false) {\n event.preventDefault()\n }\n }) as EventListener\n\n document.addEventListener(`inertia:${type}`, listener)\n return () => document.removeEventListener(`inertia:${type}`, listener)\n }\n}\n", "export default function debounce<F extends (...params: any[]) => ReturnType<F>>(fn: F, delay: number): F {\n let timeoutID: NodeJS.Timeout\n return function (...args: unknown[]) {\n clearTimeout(timeoutID)\n timeoutID = setTimeout(() => fn.apply(this, args), delay)\n } as F\n}\n", "import { GlobalEventDetails, GlobalEventNames, GlobalEventTrigger } from './types'\n\nfunction fireEvent<TEventName extends GlobalEventNames>(\n name: TEventName,\n options: CustomEventInit<GlobalEventDetails<TEventName>>,\n): boolean {\n return document.dispatchEvent(new CustomEvent(`inertia:${name}`, options))\n}\n\nexport const fireBeforeEvent: GlobalEventTrigger<'before'> = (visit) => {\n return fireEvent('before', { cancelable: true, detail: { visit } })\n}\n\nexport const fireErrorEvent: GlobalEventTrigger<'error'> = (errors) => {\n return fireEvent('error', { detail: { errors } })\n}\n\nexport const fireExceptionEvent: GlobalEventTrigger<'exception'> = (exception) => {\n return fireEvent('exception', { cancelable: true, detail: { exception } })\n}\n\nexport const fireFinishEvent: GlobalEventTrigger<'finish'> = (visit) => {\n return fireEvent('finish', { detail: { visit } })\n}\n\nexport const fireInvalidEvent: GlobalEventTrigger<'invalid'> = (response) => {\n return fireEvent('invalid', { cancelable: true, detail: { response } })\n}\n\nexport const fireNavigateEvent: GlobalEventTrigger<'navigate'> = (page) => {\n return fireEvent('navigate', { detail: { page } })\n}\n\nexport const fireProgressEvent: GlobalEventTrigger<'progress'> = (progress) => {\n return fireEvent('progress', { detail: { progress } })\n}\n\nexport const fireStartEvent: GlobalEventTrigger<'start'> = (visit) => {\n return fireEvent('start', { detail: { visit } })\n}\n\nexport const fireSuccessEvent: GlobalEventTrigger<'success'> = (page) => {\n return fireEvent('success', { detail: { page } })\n}\n", "import { FormDataConvertible, RequestPayload } from './types'\n\nexport function hasFiles(data: RequestPayload | FormDataConvertible): boolean {\n return (\n data instanceof File ||\n data instanceof Blob ||\n (data instanceof FileList && data.length > 0) ||\n (data instanceof FormData && Array.from(data.values()).some((value) => hasFiles(value))) ||\n (typeof data === 'object' && data !== null && Object.values(data).some((value) => hasFiles(value)))\n )\n}\n", "import { FormDataConvertible } from './types'\n\nexport function objectToFormData(\n source: Record<string, FormDataConvertible>,\n form: FormData = new FormData(),\n parentKey: string | null = null,\n): FormData {\n source = source || {}\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n append(form, composeKey(parentKey, key), source[key])\n }\n }\n\n return form\n}\n\nfunction composeKey(parent: string | null, key: string): string {\n return parent ? parent + '[' + key + ']' : key\n}\n\nfunction append(form: FormData, key: string, value: FormDataConvertible): void {\n if (Array.isArray(value)) {\n return Array.from(value.keys()).forEach((index) => append(form, composeKey(key, index.toString()), value[index]))\n } else if (value instanceof Date) {\n return form.append(key, value.toISOString())\n } else if (value instanceof File) {\n return form.append(key, value, value.name)\n } else if (value instanceof Blob) {\n return form.append(key, value)\n } else if (typeof value === 'boolean') {\n return form.append(key, value ? '1' : '0')\n } else if (typeof value === 'string') {\n return form.append(key, value)\n } else if (typeof value === 'number') {\n return form.append(key, `${value}`)\n } else if (value === null || value === undefined) {\n return form.append(key, '')\n }\n\n objectToFormData(value, form, key)\n}\n", "export default {\n modal: null,\n listener: null,\n\n show(html: Record<string, unknown> | string): void {\n if (typeof html === 'object') {\n html = `All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(\n html,\n )}`\n }\n\n const page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach((a) => a.setAttribute('target', '_top'))\n\n this.modal = document.createElement('div')\n this.modal.style.position = 'fixed'\n this.modal.style.width = '100vw'\n this.modal.style.height = '100vh'\n this.modal.style.padding = '50px'\n this.modal.style.boxSizing = 'border-box'\n this.modal.style.backgroundColor = 'rgba(0, 0, 0, .6)'\n this.modal.style.zIndex = 200000\n this.modal.addEventListener('click', () => this.hide())\n\n const iframe = document.createElement('iframe')\n iframe.style.backgroundColor = 'white'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n this.modal.appendChild(iframe)\n\n document.body.prepend(this.modal)\n document.body.style.overflow = 'hidden'\n if (!iframe.contentWindow) {\n throw new Error('iframe not yet ready.')\n }\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n this.listener = this.hideOnEscape.bind(this)\n document.addEventListener('keydown', this.listener)\n },\n\n hide(): void {\n this.modal.outerHTML = ''\n this.modal = null\n document.body.style.overflow = 'visible'\n document.removeEventListener('keydown', this.listener)\n },\n\n hideOnEscape(event: KeyboardEvent): void {\n if (event.keyCode === 27) {\n this.hide()\n }\n },\n}\n", "import deepmerge from 'deepmerge'\nimport * as qs from 'qs'\nimport { FormDataConvertible, Method } from './types'\n\nexport function hrefToUrl(href: string | URL): URL {\n return new URL(href.toString(), window.location.toString())\n}\n\nexport function mergeDataIntoQueryString(\n method: Method,\n href: URL | string,\n data: Record<string, FormDataConvertible>,\n qsArrayFormat: 'indices' | 'brackets' = 'brackets',\n): [string, Record<string, FormDataConvertible>] {\n const hasHost = /^https?:\\/\\//.test(href.toString())\n const hasAbsolutePath = hasHost || href.toString().startsWith('/')\n const hasRelativePath = !hasAbsolutePath && !href.toString().startsWith('#') && !href.toString().startsWith('?')\n const hasSearch = href.toString().includes('?') || (method === 'get' && Object.keys(data).length)\n const hasHash = href.toString().includes('#')\n\n const url = new URL(href.toString(), 'http://localhost')\n\n if (method === 'get' && Object.keys(data).length) {\n url.search = qs.stringify(deepmerge(qs.parse(url.search, { ignoreQueryPrefix: true }), data), {\n encodeValuesOnly: true,\n arrayFormat: qsArrayFormat,\n })\n data = {}\n }\n\n return [\n [\n hasHost ? `${url.protocol}//${url.host}` : '',\n hasAbsolutePath ? url.pathname : '',\n hasRelativePath ? url.pathname.substring(1) : '',\n hasSearch ? url.search : '',\n hasHash ? url.hash : '',\n ].join(''),\n data,\n ]\n}\n\nexport function urlWithoutHash(url: URL | Location): URL {\n url = new URL(url.href)\n url.hash = ''\n return url\n}\n", "import debounce from './debounce'\n\nconst Renderer = {\n buildDOMElement(tag: string): ChildNode {\n const template = document.createElement('template')\n template.innerHTML = tag\n const node = template.content.firstChild as Element\n\n if (!tag.startsWith('<script ')) {\n return node\n }\n\n const script = document.createElement('script')\n script.innerHTML = node.innerHTML\n node.getAttributeNames().forEach((name) => {\n script.setAttribute(name, node.getAttribute(name) || '')\n })\n\n return script\n },\n\n isInertiaManagedElement(element: Element): boolean {\n return element.nodeType === Node.ELEMENT_NODE && element.getAttribute('inertia') !== null\n },\n\n findMatchingElementIndex(element: Element, elements: Array<Element>): number {\n const key = element.getAttribute('inertia')\n if (key !== null) {\n return elements.findIndex((element) => element.getAttribute('inertia') === key)\n }\n\n return -1\n },\n\n update: debounce(function (elements: Array<string>) {\n const sourceElements = elements.map((element) => this.buildDOMElement(element))\n const targetElements = Array.from(document.head.childNodes).filter((element) =>\n this.isInertiaManagedElement(element as Element),\n )\n\n targetElements.forEach((targetElement) => {\n const index = this.findMatchingElementIndex(targetElement as Element, sourceElements)\n if (index === -1) {\n targetElement?.parentNode?.removeChild(targetElement)\n return\n }\n\n const sourceElement = sourceElements.splice(index, 1)[0]\n if (sourceElement && !targetElement.isEqualNode(sourceElement)) {\n targetElement?.parentNode?.replaceChild(sourceElement, targetElement)\n }\n })\n\n sourceElements.forEach((element) => document.head.appendChild(element))\n }, 1),\n}\n\nexport default function createHeadManager(\n isServer: boolean,\n titleCallback: (title: string) => string,\n onUpdate: (elements: string[]) => void,\n): {\n forceUpdate: () => void\n createProvider: () => {\n update: (elements: string[]) => void\n disconnect: () => void\n }\n} {\n const states: Record<string, Array<string>> = {}\n let lastProviderId = 0\n\n function connect(): string {\n const id = (lastProviderId += 1)\n states[id] = []\n return id.toString()\n }\n\n function disconnect(id: string): void {\n if (id === null || Object.keys(states).indexOf(id) === -1) {\n return\n }\n\n delete states[id]\n commit()\n }\n\n function update(id: string, elements: Array<string> = []): void {\n if (id !== null && Object.keys(states).indexOf(id) > -1) {\n states[id] = elements\n }\n\n commit()\n }\n\n function collect(): Array<string> {\n const title = titleCallback('')\n\n const defaults: Record<string, string> = {\n ...(title ? { title: `<title inertia=\"\">${title}</title>` } : {}),\n }\n\n const elements = Object.values(states)\n .reduce((carry, elements) => carry.concat(elements), [])\n .reduce((carry, element) => {\n if (element.indexOf('<') === -1) {\n return carry\n }\n\n if (element.indexOf('<title ') === 0) {\n const title = element.match(/(<title [^>]+>)(.*?)(<\\/title>)/)\n carry.title = title ? `${title[1]}${titleCallback(title[2])}${title[3]}` : element\n return carry\n }\n\n const match = element.match(/ inertia=\"[^\"]+\"/)\n if (match) {\n carry[match[0]] = element\n } else {\n carry[Object.keys(carry).length] = element\n }\n\n return carry\n }, defaults)\n\n return Object.values(elements)\n }\n\n function commit(): void {\n isServer ? onUpdate(collect()) : Renderer.update(collect())\n }\n\n // By committing during initialization, we can guarantee that the default\n // tags are set, as well as that they exist during SSR itself.\n commit()\n\n return {\n forceUpdate: commit,\n createProvider: function () {\n const id = connect()\n\n return {\n update: (elements) => update(id, elements),\n disconnect: () => disconnect(id),\n }\n },\n }\n}\n", "import NProgress from 'nprogress'\nimport { GlobalEvent } from './types'\n\nlet timeout: NodeJS.Timeout | null = null\n\nfunction addEventListeners(delay: number): void {\n document.addEventListener('inertia:start', start.bind(null, delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number): void {\n timeout = setTimeout(() => NProgress.start(), delay)\n}\n\nfunction progress(event: GlobalEvent<'progress'>) {\n if (NProgress.isStarted() && event.detail.progress?.percentage) {\n NProgress.set(Math.max(NProgress.status!, (event.detail.progress.percentage / 100) * 0.9))\n }\n}\n\nfunction finish(event: GlobalEvent<'finish'>) {\n clearTimeout(timeout!)\n if (!NProgress.isStarted()) {\n return\n } else if (event.detail.visit.completed) {\n NProgress.done()\n } else if (event.detail.visit.interrupted) {\n NProgress.set(0)\n } else if (event.detail.visit.cancelled) {\n NProgress.done()\n NProgress.remove()\n }\n}\n\nfunction injectCSS(color: string): void {\n const element = document.createElement('style')\n element.type = 'text/css'\n element.textContent = `\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: ${color};\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n document.head.appendChild(element)\n}\n\nexport default function setupProgress({\n delay = 250,\n color = '#29d',\n includeCSS = true,\n showSpinner = false,\n} = {}): void {\n addEventListeners(delay)\n NProgress.configure({ showSpinner })\n if (includeCSS) {\n injectCSS(color)\n }\n}\n", "export default function shouldIntercept(event: MouseEvent | KeyboardEvent): boolean {\n const isLink = (event.currentTarget as HTMLElement).tagName.toLowerCase() === 'a'\n return !(\n (event.target && (event?.target as HTMLElement).isContentEditable) ||\n event.defaultPrevented ||\n (isLink && event.altKey) ||\n (isLink && event.ctrlKey) ||\n (isLink && event.metaKey) ||\n (isLink && event.shiftKey) ||\n (isLink && 'button' in event && event.button !== 0)\n )\n}\n", "import { Router } from './router'\n\nexport { default as createHeadManager } from './head'\nexport { default as setupProgress } from './progress'\nexport { default as shouldIntercept } from './shouldIntercept'\nexport * from './types'\nexport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\nexport { type Router }\n\nexport const router = new Router()\n"],
5
+ "mappings": "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",
6
+ "names": ["Axios", "debounce", "fn", "delay", "timeoutID", "args", "fireEvent", "name", "options", "fireBeforeEvent", "visit", "fireErrorEvent", "errors", "fireExceptionEvent", "exception", "fireFinishEvent", "fireInvalidEvent", "response", "fireNavigateEvent", "page", "fireProgressEvent", "progress", "fireStartEvent", "fireSuccessEvent", "hasFiles", "data", "value", "objectToFormData", "source", "form", "parentKey", "key", "append", "composeKey", "parent", "value", "index", "modal_default", "html", "page", "a", "iframe", "event", "deepmerge", "qs", "hrefToUrl", "href", "mergeDataIntoQueryString", "method", "data", "qsArrayFormat", "hasHost", "hasAbsolutePath", "hasRelativePath", "hasSearch", "hasHash", "url", "urlWithoutHash", "isServer", "isChromeIOS", "nextFrame", "callback", "Router", "initialPage", "resolveComponent", "swapComponent", "page", "hash", "fireNavigateEvent", "debounce", "event", "region", "index", "scrollPosition", "url", "preserveScroll", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "href", "method", "data", "replace", "preserveState", "only", "except", "headers", "errorBag", "forceFormData", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "queryStringArrayFormat", "hrefToUrl", "hasFiles", "objectToFormData", "_href", "_data", "mergeDataIntoQueryString", "fireBeforeEvent", "visitId", "fireStartEvent", "isPartial", "Axios", "progress", "fireProgressEvent", "pageResponse", "requestUrl", "responseUrl", "errors", "scopedErrors", "fireErrorEvent", "fireSuccessEvent", "error", "locationUrl", "fireInvalidEvent", "modal_default", "throwException", "fireExceptionEvent", "component", "options", "key", "type", "listener", "Renderer", "tag", "template", "node", "script", "name", "element", "elements", "key", "debounce", "sourceElements", "targetElement", "index", "sourceElement", "createHeadManager", "isServer", "titleCallback", "onUpdate", "states", "lastProviderId", "connect", "id", "disconnect", "commit", "update", "collect", "title", "defaults", "carry", "match", "NProgress", "timeout", "addEventListeners", "delay", "start", "progress", "finish", "event", "injectCSS", "color", "element", "setupProgress", "includeCSS", "showSpinner", "shouldIntercept", "event", "isLink", "router", "Router"]
7
7
  }
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var ce=Object.create;var O=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var fe=(t,e)=>{for(var i in e)O(t,i,{get:e[i],enumerable:!0})},K=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pe(e))!ue.call(t,o)&&o!==i&&O(t,o,{get:()=>e[o],enumerable:!(n=de(e,o))||n.enumerable});return t};var L=(t,e,i)=>(i=t!=null?ce(he(t)):{},K(e||!t||!t.__esModule?O(i,"default",{value:t,enumerable:!0}):i,t)),me=t=>K(O({},"__esModule",{value:!0}),t);var xe={};fe(xe,{createHeadManager:()=>M,hrefToUrl:()=>g,mergeDataIntoQueryString:()=>N,router:()=>Se,setupProgress:()=>j,shouldIntercept:()=>H,urlWithoutHash:()=>E});module.exports=me(xe);var G=L(require("axios"),1),oe=L(require("deepmerge"),1);function T(t,e){let i;return function(...n){clearTimeout(i),i=setTimeout(()=>t.apply(this,n),e)}}function m(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var J=t=>m("before",{cancelable:!0,detail:{visit:t}}),_=t=>m("error",{detail:{errors:t}}),z=t=>m("exception",{cancelable:!0,detail:{exception:t}}),D=t=>m("finish",{detail:{visit:t}}),B=t=>m("invalid",{cancelable:!0,detail:{response:t}}),x=t=>m("navigate",{detail:{page:t}}),Q=t=>m("progress",{detail:{progress:t}}),Y=t=>m("start",{detail:{visit:t}}),Z=t=>m("success",{detail:{page:t}});function C(t){return t instanceof File||t instanceof Blob||t instanceof FileList&&t.length>0||t instanceof FormData&&Array.from(t.values()).some(e=>C(e))||typeof t=="object"&&t!==null&&Object.values(t).some(e=>C(e))}function U(t,e=new FormData,i=null){t=t||{};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&te(e,ee(i,n),t[n]);return e}function ee(t,e){return t?t+"["+e+"]":e}function te(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(n=>te(t,ee(e,n.toString()),i[n]));if(i instanceof Date)return t.append(e,i.toISOString());if(i instanceof File)return t.append(e,i,i.name);if(i instanceof Blob)return t.append(e,i);if(typeof i=="boolean")return t.append(e,i?"1":"0");if(typeof i=="string")return t.append(e,i);if(typeof i=="number")return t.append(e,`${i}`);if(i==null)return t.append(e,"");U(i,t,e)}var ie={modal:null,listener:null,show(t){typeof t=="object"&&(t=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);let e=document.createElement("html");e.innerHTML=t,e.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let i=document.createElement("iframe");if(i.style.backgroundColor="white",i.style.borderRadius="5px",i.style.width="100%",i.style.height="100%",this.modal.appendChild(i),document.body.prepend(this.modal),document.body.style.overflow="hidden",!i.contentWindow)throw new Error("iframe not yet ready.");i.contentWindow.document.open(),i.contentWindow.document.write(e.outerHTML),i.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(t){t.keyCode===27&&this.hide()}};var ne=L(require("deepmerge"),1),F=L(require("qs"),1);function g(t){return new URL(t.toString(),window.location.toString())}function N(t,e,i,n="brackets"){let o=/^https?:\/\//.test(e.toString()),l=o||e.toString().startsWith("/"),h=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),v=e.toString().includes("?")||t==="get"&&Object.keys(i).length,f=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return t==="get"&&Object.keys(i).length&&(c.search=F.stringify((0,ne.default)(F.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:n}),i={}),[[o?`${c.protocol}//${c.host}`:"",l?c.pathname:"",h?c.pathname.substring(1):"",v?c.search:"",f?c.hash:""].join(""),i]}function E(t){return t=new URL(t.href),t.hash="",t}var re=typeof window>"u",A=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:i,swapComponent:n}){this.page=e,this.resolveComponent=i,this.swapComponent=n,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{preserveState:!0}).then(()=>x(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0)}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...this.page,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&setTimeout(()=>document.getElementById(window.location.hash.slice(1))?.scrollIntoView())}restoreScrollPositions(){this.page.scrollRegions&&this.scrollRegions().forEach((e,i)=>{let n=this.page.scrollRegions[i];if(n)typeof e.scrollTo=="function"?e.scrollTo(n.left,n.top):(e.scrollTop=n.top,e.scrollLeft=n.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){window.history.state.version=e.version,this.setPage(window.history.state,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),x(e)})}locationVisit(e,i){try{let n={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(n)),window.location.href=e.href,E(window.location).href===E(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let i=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=window.history.state?.rememberedState??{},e.scrollRegions=window.history.state?.scrollRegions??[],this.setPage(e,{preserveScroll:i.preserveScroll,preserveState:!0}).then(()=>{i.preserveScroll&&this.restoreScrollPositions(),x(e)})}isLocationVisitResponse(e){return!!(e&&e.status===409&&e.headers["x-inertia-location"])}isInertiaResponse(e){return!!e?.headers["x-inertia"]}createVisitId(){return this.visitId={},this.visitId}cancelVisit(e,{cancelled:i=!1,interrupted:n=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=i,e.interrupted=n,D(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,D(e),e.onFinish(e))}resolvePreserveOption(e,i){return typeof e=="function"?e(i):e==="errors"?Object.keys(i.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:i="get",data:n={},replace:o=!1,preserveScroll:l=!1,preserveState:h=!1,only:v=[],except:f=[],headers:c={},errorBag:s="",forceFormData:b=!1,onCancelToken:V=()=>{},onBefore:d=()=>{},onStart:p=()=>{},onProgress:P=()=>{},onFinish:y=()=>{},onCancel:ae=()=>{},onSuccess:$=()=>{},onError:q=()=>{},queryStringArrayFormat:k="brackets"}={}){let S=typeof e=="string"?g(e):e;if((C(n)||b)&&!(n instanceof FormData)&&(n=U(n)),!(n instanceof FormData)){let[r,a]=N(i,S,n,k);S=g(r),n=a}let R={url:S,method:i,data:n,replace:o,preserveScroll:l,preserveState:h,only:v,except:f,headers:c,errorBag:s,forceFormData:b,queryStringArrayFormat:k,cancelled:!1,completed:!1,interrupted:!1};if(d(R)===!1||!J(R))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let W=this.createVisitId();this.activeVisit={...R,onCancelToken:V,onBefore:d,onStart:p,onProgress:P,onFinish:y,onCancel:ae,onSuccess:$,onError:q,queryStringArrayFormat:k,cancelToken:new AbortController},V({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),Y(R),p(R);let X=!!(v.length||f.length);(0,G.default)({method:i,url:E(S).href,data:i==="get"?{}:n,params:i==="get"?n:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...X?{"X-Inertia-Partial-Component":this.page.component}:{},...v.length?{"X-Inertia-Partial-Data":v.join(",")}:{},...f.length?{"X-Inertia-Partial-Except":f.join(",")}:{},...s&&s.length?{"X-Inertia-Error-Bag":s}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:r=>{n instanceof FormData&&(r.percentage=r.progress?Math.round(r.progress*100):0,Q(r),P(r))}}).then(r=>{if(!this.isInertiaResponse(r))return Promise.reject({response:r});let a=r.data;X&&a.component===this.page.component&&(a.props=(0,oe.default)(this.page.props,a.props,{arrayMerge:(Pe,le)=>le})),l=this.resolvePreserveOption(l,a),h=this.resolvePreserveOption(h,a),h&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let w=S,I=g(a.url);return w.hash&&!I.hash&&E(w).href===I.href&&(I.hash=w.hash,a.url=I.href),this.setPage(a,{visitId:W,replace:o,preserveScroll:l,preserveState:h})}).then(()=>{let r=this.page.props.errors||{};if(Object.keys(r).length>0){let a=s?r[s]?r[s]:{}:r;return _(a),q(a)}return Z(this.page),$(this.page)}).catch(r=>{if(this.isInertiaResponse(r.response))return this.setPage(r.response.data,{visitId:W});if(this.isLocationVisitResponse(r.response)){let a=g(r.response.headers["x-inertia-location"]),w=S;w.hash&&!a.hash&&E(w).href===a.href&&(a.hash=w.hash),this.locationVisit(a,l===!0)}else if(r.response)B(r.response)&&ie.show(r.response.data);else return Promise.reject(r)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(r=>{if(!G.default.isCancel(r)){let a=z(r);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(r)}})}setPage(e,{visitId:i=this.createVisitId(),replace:n=!1,preserveScroll:o=!1,preserveState:l=!1}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>{i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},n=n||g(e.url).href===window.location.href,n?this.replaceState(e):this.pushState(e),this.swapComponent({component:h,page:e,preserveState:l}).then(()=>{o||this.resetScrollPositions(),n||x(e)}))})}pushState(e){this.page=e,window.history.pushState(e,"",e.url)}replaceState(e){this.page=e,window.history.replaceState(e,"",e.url)}handlePopstateEvent(e){if(e.state!==null){let i=e.state,n=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(o=>{n===this.visitId&&(this.page=i,this.swapComponent({component:o,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),x(i)}))})}else{let i=g(this.page.url);i.hash=window.location.hash,this.replaceState({...this.page,url:i.href}),this.resetScrollPositions()}}get(e,i={},n={}){return this.visit(e,{...n,method:"get",data:i})}reload(e={}){return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0})}replace(e,i={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${i.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...i,replace:!0})}post(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"post",data:i})}put(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"put",data:i})}patch(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"patch",data:i})}delete(e,i={}){return this.visit(e,{preserveState:!0,...i,method:"delete"})}remember(e,i="default"){re||this.replaceState({...this.page,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!re)return window.history.state?.rememberedState?.[e]}on(e,i){let n=o=>{let l=i(o);o.cancelable&&!o.defaultPrevented&&l===!1&&o.preventDefault()};return document.addEventListener(`inertia:${e}`,n),()=>document.removeEventListener(`inertia:${e}`,n)}};var ge={buildDOMElement(t){let e=document.createElement("template");e.innerHTML=t;let i=e.content.firstChild;if(!t.startsWith("<script "))return i;let n=document.createElement("script");return n.innerHTML=i.innerHTML,i.getAttributeNames().forEach(o=>{n.setAttribute(o,i.getAttribute(o)||"")}),n},isInertiaManagedElement(t){return t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("inertia")!==null},findMatchingElementIndex(t,e){let i=t.getAttribute("inertia");return i!==null?e.findIndex(n=>n.getAttribute("inertia")===i):-1},update:T(function(t){let e=t.map(n=>this.buildDOMElement(n));Array.from(document.head.childNodes).filter(n=>this.isInertiaManagedElement(n)).forEach(n=>{let o=this.findMatchingElementIndex(n,e);if(o===-1){n?.parentNode?.removeChild(n);return}let l=e.splice(o,1)[0];l&&!n.isEqualNode(l)&&n?.parentNode?.replaceChild(l,n)}),e.forEach(n=>document.head.appendChild(n))},1)};function M(t,e,i){let n={},o=0;function l(){let s=o+=1;return n[s]=[],s.toString()}function h(s){s===null||Object.keys(n).indexOf(s)===-1||(delete n[s],c())}function v(s,b=[]){s!==null&&Object.keys(n).indexOf(s)>-1&&(n[s]=b),c()}function f(){let s=e(""),b={...s?{title:`<title inertia="">${s}</title>`}:{}},V=Object.values(n).reduce((d,p)=>d.concat(p),[]).reduce((d,p)=>{if(p.indexOf("<")===-1)return d;if(p.indexOf("<title ")===0){let y=p.match(/(<title [^>]+>)(.*?)(<\/title>)/);return d.title=y?`${y[1]}${e(y[2])}${y[3]}`:p,d}let P=p.match(/ inertia="[^"]+"/);return P?d[P[0]]=p:d[Object.keys(d).length]=p,d},b);return Object.values(V)}function c(){t?i(f()):ge.update(f())}return c(),{forceUpdate:c,createProvider:function(){let s=l();return{update:b=>v(s,b),disconnect:()=>h(s)}}}}var u=L(require("nprogress"),1),se=null;function ve(t){document.addEventListener("inertia:start",be.bind(null,t)),document.addEventListener("inertia:progress",Ee),document.addEventListener("inertia:finish",we)}function be(t){se=setTimeout(()=>u.default.start(),t)}function Ee(t){u.default.isStarted()&&t.detail.progress?.percentage&&u.default.set(Math.max(u.default.status,t.detail.progress.percentage/100*.9))}function we(t){if(clearTimeout(se),u.default.isStarted())t.detail.visit.completed?u.default.done():t.detail.visit.interrupted?u.default.set(0):t.detail.visit.cancelled&&(u.default.done(),u.default.remove());else return}function ye(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
1
+ "use strict";var ce=Object.create;var I=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty;var me=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},B=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of pe(e))!ue.call(t,o)&&o!==i&&I(t,o,{get:()=>e[o],enumerable:!(r=de(e,o))||r.enumerable});return t};var O=(t,e,i)=>(i=t!=null?ce(he(t)):{},B(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),fe=t=>B(I({},"__esModule",{value:!0}),t);var xe={};me(xe,{createHeadManager:()=>j,hrefToUrl:()=>g,mergeDataIntoQueryString:()=>A,router:()=>Se,setupProgress:()=>H,shouldIntercept:()=>q,urlWithoutHash:()=>w});module.exports=fe(xe);var M=O(require("axios"),1);function T(t,e){let i;return function(...r){clearTimeout(i),i=setTimeout(()=>t.apply(this,r),e)}}function f(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var J=t=>f("before",{cancelable:!0,detail:{visit:t}}),z=t=>f("error",{detail:{errors:t}}),_=t=>f("exception",{cancelable:!0,detail:{exception:t}}),U=t=>f("finish",{detail:{visit:t}}),Q=t=>f("invalid",{cancelable:!0,detail:{response:t}}),x=t=>f("navigate",{detail:{page:t}}),Y=t=>f("progress",{detail:{progress:t}}),Z=t=>f("start",{detail:{visit:t}}),ee=t=>f("success",{detail:{page:t}});function C(t){return t instanceof File||t instanceof Blob||t instanceof FileList&&t.length>0||t instanceof FormData&&Array.from(t.values()).some(e=>C(e))||typeof t=="object"&&t!==null&&Object.values(t).some(e=>C(e))}function G(t,e=new FormData,i=null){t=t||{};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&ie(e,te(i,r),t[r]);return e}function te(t,e){return t?t+"["+e+"]":e}function ie(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(r=>ie(t,te(e,r.toString()),i[r]));if(i instanceof Date)return t.append(e,i.toISOString());if(i instanceof File)return t.append(e,i,i.name);if(i instanceof Blob)return t.append(e,i);if(typeof i=="boolean")return t.append(e,i?"1":"0");if(typeof i=="string")return t.append(e,i);if(typeof i=="number")return t.append(e,`${i}`);if(i==null)return t.append(e,"");G(i,t,e)}var re={modal:null,listener:null,show(t){typeof t=="object"&&(t=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);let e=document.createElement("html");e.innerHTML=t,e.querySelectorAll("a").forEach(r=>r.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let i=document.createElement("iframe");if(i.style.backgroundColor="white",i.style.borderRadius="5px",i.style.width="100%",i.style.height="100%",this.modal.appendChild(i),document.body.prepend(this.modal),document.body.style.overflow="hidden",!i.contentWindow)throw new Error("iframe not yet ready.");i.contentWindow.document.open(),i.contentWindow.document.write(e.outerHTML),i.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(t){t.keyCode===27&&this.hide()}};var ne=O(require("deepmerge"),1),F=O(require("qs"),1);function g(t){return new URL(t.toString(),window.location.toString())}function A(t,e,i,r="brackets"){let o=/^https?:\/\//.test(e.toString()),l=o||e.toString().startsWith("/"),h=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),v=e.toString().includes("?")||t==="get"&&Object.keys(i).length,m=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return t==="get"&&Object.keys(i).length&&(c.search=F.stringify((0,ne.default)(F.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:r}),i={}),[[o?`${c.protocol}//${c.host}`:"",l?c.pathname:"",h?c.pathname.substring(1):"",v?c.search:"",m?c.hash:""].join(""),i]}function w(t){return t=new URL(t.href),t.hash="",t}var N=typeof window>"u",oe=!N&&/CriOS/.test(window.navigator.userAgent),se=t=>{requestAnimationFrame(()=>{requestAnimationFrame(t)})},k=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:i,swapComponent:r}){this.page=e,this.resolveComponent=i,this.swapComponent=r,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){let i=window.location.hash;this.page.url.includes(i)||(this.page.url+=i),this.setPage(e,{preserveScroll:!0,preserveState:!0}).then(()=>x(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0)}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...this.page,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){se(()=>{window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&document.getElementById(window.location.hash.slice(1))?.scrollIntoView()})}restoreScrollPositions(){se(()=>{this.page.scrollRegions&&this.scrollRegions().forEach((e,i)=>{let r=this.page.scrollRegions[i];if(r)typeof e.scrollTo=="function"?e.scrollTo(r.left,r.top):(e.scrollTop=r.top,e.scrollLeft=r.left);else return})})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){window.history.state.version=e.version,this.setPage(window.history.state,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),x(e)})}locationVisit(e,i){try{let r={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(r)),window.location.href=e.href,w(window.location).href===w(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let i=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=window.history.state?.rememberedState??{},e.scrollRegions=window.history.state?.scrollRegions??[],this.setPage(e,{preserveScroll:i.preserveScroll,preserveState:!0}).then(()=>{i.preserveScroll&&this.restoreScrollPositions(),x(e)})}isLocationVisitResponse(e){return!!(e&&e.status===409&&e.headers["x-inertia-location"])}isInertiaResponse(e){return!!e?.headers["x-inertia"]}createVisitId(){return this.visitId={},this.visitId}cancelVisit(e,{cancelled:i=!1,interrupted:r=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=i,e.interrupted=r,U(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,U(e),e.onFinish(e))}resolvePreserveOption(e,i){return typeof e=="function"?e(i):e==="errors"?Object.keys(i.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:i="get",data:r={},replace:o=!1,preserveScroll:l=!1,preserveState:h=!1,only:v=[],except:m=[],headers:c={},errorBag:s="",forceFormData:b=!1,onCancelToken:L=()=>{},onBefore:d=()=>{},onStart:p=()=>{},onProgress:P=()=>{},onFinish:y=()=>{},onCancel:le=()=>{},onSuccess:$=()=>{},onError:W=()=>{},queryStringArrayFormat:D="brackets"}={}){let S=typeof e=="string"?g(e):e;if((C(r)||b)&&!(r instanceof FormData)&&(r=G(r)),!(r instanceof FormData)){let[n,a]=A(i,S,r,D);S=g(n),r=a}let R={url:S,method:i,data:r,replace:o,preserveScroll:l,preserveState:h,only:v,except:m,headers:c,errorBag:s,forceFormData:b,queryStringArrayFormat:D,cancelled:!1,completed:!1,interrupted:!1};if(d(R)===!1||!J(R))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let X=this.createVisitId();this.activeVisit={...R,onCancelToken:L,onBefore:d,onStart:p,onProgress:P,onFinish:y,onCancel:le,onSuccess:$,onError:W,queryStringArrayFormat:D,cancelToken:new AbortController},L({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),Z(R),p(R);let K=!!(v.length||m.length);(0,M.default)({method:i,url:w(S).href,data:i==="get"?{}:r,params:i==="get"?r:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...K?{"X-Inertia-Partial-Component":this.page.component}:{},...v.length?{"X-Inertia-Partial-Data":v.join(",")}:{},...m.length?{"X-Inertia-Partial-Except":m.join(",")}:{},...s&&s.length?{"X-Inertia-Error-Bag":s}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:n=>{r instanceof FormData&&(n.percentage=n.progress?Math.round(n.progress*100):0,Y(n),P(n))}}).then(n=>{if(!this.isInertiaResponse(n))return Promise.reject({response:n});let a=n.data;K&&a.component===this.page.component&&(a.props={...this.page.props,...a.props}),l=this.resolvePreserveOption(l,a),h=this.resolvePreserveOption(h,a),h&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let E=S,V=g(a.url);return E.hash&&!V.hash&&w(E).href===V.href&&(V.hash=E.hash,a.url=V.href),this.setPage(a,{visitId:X,replace:o,preserveScroll:l,preserveState:h})}).then(()=>{let n=this.page.props.errors||{};if(Object.keys(n).length>0){let a=s?n[s]?n[s]:{}:n;return z(a),W(a)}return ee(this.page),$(this.page)}).catch(n=>{if(this.isInertiaResponse(n.response))return this.setPage(n.response.data,{visitId:X});if(this.isLocationVisitResponse(n.response)){let a=g(n.response.headers["x-inertia-location"]),E=S;E.hash&&!a.hash&&w(E).href===a.href&&(a.hash=E.hash),this.locationVisit(a,l===!0)}else if(n.response)Q(n.response)&&re.show(n.response.data);else return Promise.reject(n)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(n=>{if(!M.default.isCancel(n)){let a=_(n);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(n)}})}setPage(e,{visitId:i=this.createVisitId(),replace:r=!1,preserveScroll:o=!1,preserveState:l=!1}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>{i===this.visitId&&(e.scrollRegions=this.page.scrollRegions||[],e.rememberedState=e.rememberedState||{},r=r||g(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e),this.swapComponent({component:h,page:e,preserveState:l}).then(()=>{o?this.restoreScrollPositions():this.resetScrollPositions(),r||x(e)}))})}pushState(e){this.page=e,oe?setTimeout(()=>window.history.pushState(e,"",e.url)):window.history.pushState(e,"",e.url)}replaceState(e){this.page=e,oe?setTimeout(()=>window.history.replaceState(e,"",e.url)):window.history.replaceState(e,"",e.url)}handlePopstateEvent(e){if(e.state!==null){let i=e.state,r=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(o=>{r===this.visitId&&(this.page=i,this.swapComponent({component:o,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),x(i)}))})}else{let i=g(this.page.url);i.hash=window.location.hash,this.replaceState({...this.page,url:i.href}),this.resetScrollPositions()}}get(e,i={},r={}){return this.visit(e,{...r,method:"get",data:i})}reload(e={}){return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0})}replace(e,i={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${i.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...i,replace:!0})}post(e,i={},r={}){return this.visit(e,{preserveState:!0,...r,method:"post",data:i})}put(e,i={},r={}){return this.visit(e,{preserveState:!0,...r,method:"put",data:i})}patch(e,i={},r={}){return this.visit(e,{preserveState:!0,...r,method:"patch",data:i})}delete(e,i={}){return this.visit(e,{preserveState:!0,...i,method:"delete"})}remember(e,i="default"){N||this.replaceState({...this.page,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!N)return window.history.state?.rememberedState?.[e]}on(e,i){if(N)return()=>{};let r=o=>{let l=i(o);o.cancelable&&!o.defaultPrevented&&l===!1&&o.preventDefault()};return document.addEventListener(`inertia:${e}`,r),()=>document.removeEventListener(`inertia:${e}`,r)}};var ge={buildDOMElement(t){let e=document.createElement("template");e.innerHTML=t;let i=e.content.firstChild;if(!t.startsWith("<script "))return i;let r=document.createElement("script");return r.innerHTML=i.innerHTML,i.getAttributeNames().forEach(o=>{r.setAttribute(o,i.getAttribute(o)||"")}),r},isInertiaManagedElement(t){return t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("inertia")!==null},findMatchingElementIndex(t,e){let i=t.getAttribute("inertia");return i!==null?e.findIndex(r=>r.getAttribute("inertia")===i):-1},update:T(function(t){let e=t.map(r=>this.buildDOMElement(r));Array.from(document.head.childNodes).filter(r=>this.isInertiaManagedElement(r)).forEach(r=>{let o=this.findMatchingElementIndex(r,e);if(o===-1){r?.parentNode?.removeChild(r);return}let l=e.splice(o,1)[0];l&&!r.isEqualNode(l)&&r?.parentNode?.replaceChild(l,r)}),e.forEach(r=>document.head.appendChild(r))},1)};function j(t,e,i){let r={},o=0;function l(){let s=o+=1;return r[s]=[],s.toString()}function h(s){s===null||Object.keys(r).indexOf(s)===-1||(delete r[s],c())}function v(s,b=[]){s!==null&&Object.keys(r).indexOf(s)>-1&&(r[s]=b),c()}function m(){let s=e(""),b={...s?{title:`<title inertia="">${s}</title>`}:{}},L=Object.values(r).reduce((d,p)=>d.concat(p),[]).reduce((d,p)=>{if(p.indexOf("<")===-1)return d;if(p.indexOf("<title ")===0){let y=p.match(/(<title [^>]+>)(.*?)(<\/title>)/);return d.title=y?`${y[1]}${e(y[2])}${y[3]}`:p,d}let P=p.match(/ inertia="[^"]+"/);return P?d[P[0]]=p:d[Object.keys(d).length]=p,d},b);return Object.values(L)}function c(){t?i(m()):ge.update(m())}return c(),{forceUpdate:c,createProvider:function(){let s=l();return{update:b=>v(s,b),disconnect:()=>h(s)}}}}var u=O(require("nprogress"),1),ae=null;function ve(t){document.addEventListener("inertia:start",be.bind(null,t)),document.addEventListener("inertia:progress",we),document.addEventListener("inertia:finish",Ee)}function be(t){ae=setTimeout(()=>u.default.start(),t)}function we(t){u.default.isStarted()&&t.detail.progress?.percentage&&u.default.set(Math.max(u.default.status,t.detail.progress.percentage/100*.9))}function Ee(t){if(clearTimeout(ae),u.default.isStarted())t.detail.visit.completed?u.default.done():t.detail.visit.interrupted?u.default.set(0):t.detail.visit.cancelled&&(u.default.done(),u.default.remove());else return}function ye(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
2
2
  #nprogress {
3
3
  pointer-events: none;
4
4
  }
@@ -69,5 +69,5 @@
69
69
  0% { transform: rotate(0deg); }
70
70
  100% { transform: rotate(360deg); }
71
71
  }
72
- `,document.head.appendChild(e)}function j({delay:t=250,color:e="#29d",includeCSS:i=!0,showSpinner:n=!1}={}){ve(t),u.default.configure({showSpinner:n}),i&&ye(e)}function H(t){let e=t.currentTarget.tagName.toLowerCase()==="a";return!(t.target&&(t?.target).isContentEditable||t.defaultPrevented||e&&t.which>1||e&&t.altKey||e&&t.ctrlKey||e&&t.metaKey||e&&t.shiftKey)}var Se=new A;
72
+ `,document.head.appendChild(e)}function H({delay:t=250,color:e="#29d",includeCSS:i=!0,showSpinner:r=!1}={}){ve(t),u.default.configure({showSpinner:r}),i&&ye(e)}function q(t){let e=t.currentTarget.tagName.toLowerCase()==="a";return!(t.target&&(t?.target).isContentEditable||t.defaultPrevented||e&&t.altKey||e&&t.ctrlKey||e&&t.metaKey||e&&t.shiftKey||e&&"button"in t&&t.button!==0)}var Se=new k;
73
73
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/router.ts", "../src/debounce.ts", "../src/events.ts", "../src/files.ts", "../src/formData.ts", "../src/modal.ts", "../src/url.ts", "../src/head.ts", "../src/progress.ts", "../src/shouldIntercept.ts"],
4
- "sourcesContent": ["import { Router } from './router'\n\nexport { default as createHeadManager } from './head'\nexport { default as setupProgress } from './progress'\nexport { default as shouldIntercept } from './shouldIntercept'\nexport * from './types'\nexport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\nexport { type Router }\n\nexport const router = new Router()\n", "import { default as Axios, AxiosResponse } from 'axios'\nimport deepmerge from 'deepmerge'\nimport debounce from './debounce'\nimport {\n fireBeforeEvent,\n fireErrorEvent,\n fireExceptionEvent,\n fireFinishEvent,\n fireInvalidEvent,\n fireNavigateEvent,\n fireProgressEvent,\n fireStartEvent,\n fireSuccessEvent,\n} from './events'\nimport { hasFiles } from './files'\nimport { objectToFormData } from './formData'\nimport modal from './modal'\nimport {\n ActiveVisit,\n GlobalEvent,\n GlobalEventNames,\n GlobalEventResult,\n LocationVisit,\n Page,\n PageHandler,\n PageResolver,\n PendingVisit,\n PreserveStateOption,\n RequestPayload,\n VisitId,\n VisitOptions,\n} from './types'\nimport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\n\nconst isServer = typeof window === 'undefined'\n\nexport class Router {\n protected page!: Page\n protected resolveComponent!: PageResolver\n protected swapComponent!: PageHandler\n protected navigationType?: string\n protected activeVisit?: ActiveVisit\n protected visitId: VisitId = null\n\n public init({\n initialPage,\n resolveComponent,\n swapComponent,\n }: {\n initialPage: Page\n resolveComponent: PageResolver\n swapComponent: PageHandler\n }): void {\n this.page = initialPage\n this.resolveComponent = resolveComponent\n this.swapComponent = swapComponent\n\n this.setNavigationType()\n this.clearRememberedStateOnReload()\n\n if (this.isBackForwardVisit()) {\n this.handleBackForwardVisit(this.page)\n } else if (this.isLocationVisit()) {\n this.handleLocationVisit(this.page)\n } else {\n this.handleInitialPageVisit(this.page)\n }\n\n this.setupEventListeners()\n }\n\n protected setNavigationType(): void {\n this.navigationType =\n window.performance && window.performance.getEntriesByType('navigation').length > 0\n ? (window.performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming).type\n : 'navigate'\n }\n\n protected clearRememberedStateOnReload(): void {\n if (this.navigationType === 'reload' && window.history.state?.rememberedState) {\n delete window.history.state.rememberedState\n }\n }\n\n protected handleInitialPageVisit(page: Page): void {\n this.page.url += window.location.hash\n this.setPage(page, { preserveState: true }).then(() => fireNavigateEvent(page))\n }\n\n protected setupEventListeners(): void {\n window.addEventListener('popstate', this.handlePopstateEvent.bind(this))\n document.addEventListener('scroll', debounce(this.handleScrollEvent.bind(this), 100), true)\n }\n\n protected scrollRegions(): NodeListOf<Element> {\n return document.querySelectorAll('[scroll-region]')\n }\n\n protected handleScrollEvent(event: Event): void {\n if (\n typeof (event.target as Element).hasAttribute === 'function' &&\n (event.target as Element).hasAttribute('scroll-region')\n ) {\n this.saveScrollPositions()\n }\n }\n\n protected saveScrollPositions(): void {\n this.replaceState({\n ...this.page,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\n }),\n })\n }\n\n protected resetScrollPositions(): void {\n window.scrollTo(0, 0)\n this.scrollRegions().forEach((region) => {\n if (typeof region.scrollTo === 'function') {\n region.scrollTo(0, 0)\n } else {\n region.scrollTop = 0\n region.scrollLeft = 0\n }\n })\n this.saveScrollPositions()\n if (window.location.hash) {\n // We're using a setTimeout() here as a workaround for a bug in the React adapter where the\n // rendering isn't completing fast enough, causing the anchor link to not be scrolled to.\n setTimeout(() => document.getElementById(window.location.hash.slice(1))?.scrollIntoView())\n }\n }\n\n protected restoreScrollPositions(): void {\n if (this.page.scrollRegions) {\n this.scrollRegions().forEach((region: Element, index: number) => {\n const scrollPosition = this.page.scrollRegions[index]\n if (!scrollPosition) {\n return\n } else if (typeof region.scrollTo === 'function') {\n region.scrollTo(scrollPosition.left, scrollPosition.top)\n } else {\n region.scrollTop = scrollPosition.top\n region.scrollLeft = scrollPosition.left\n }\n })\n }\n }\n\n protected isBackForwardVisit(): boolean {\n return window.history.state && this.navigationType === 'back_forward'\n }\n\n protected handleBackForwardVisit(page: Page): void {\n window.history.state.version = page.version\n this.setPage(window.history.state, { preserveScroll: true, preserveState: true }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n\n protected locationVisit(url: URL, preserveScroll: LocationVisit['preserveScroll']): boolean | void {\n try {\n const locationVisit: LocationVisit = { preserveScroll }\n window.sessionStorage.setItem('inertiaLocationVisit', JSON.stringify(locationVisit))\n window.location.href = url.href\n if (urlWithoutHash(window.location).href === urlWithoutHash(url).href) {\n window.location.reload()\n }\n } catch (error) {\n return false\n }\n }\n\n protected isLocationVisit(): boolean {\n try {\n return window.sessionStorage.getItem('inertiaLocationVisit') !== null\n } catch (error) {\n return false\n }\n }\n\n protected handleLocationVisit(page: Page): void {\n const locationVisit: LocationVisit = JSON.parse(window.sessionStorage.getItem('inertiaLocationVisit') || '')\n window.sessionStorage.removeItem('inertiaLocationVisit')\n page.url += window.location.hash\n page.rememberedState = window.history.state?.rememberedState ?? {}\n page.scrollRegions = window.history.state?.scrollRegions ?? []\n this.setPage(page, { preserveScroll: locationVisit.preserveScroll, preserveState: true }).then(() => {\n if (locationVisit.preserveScroll) {\n this.restoreScrollPositions()\n }\n fireNavigateEvent(page)\n })\n }\n\n protected isLocationVisitResponse(response: AxiosResponse): boolean {\n return !!(response && response.status === 409 && response.headers['x-inertia-location'])\n }\n\n protected isInertiaResponse(response: AxiosResponse): boolean {\n return !!response?.headers['x-inertia']\n }\n\n protected createVisitId(): VisitId {\n this.visitId = {}\n return this.visitId\n }\n\n protected cancelVisit(\n activeVisit: ActiveVisit,\n { cancelled = false, interrupted = false }: { cancelled?: boolean; interrupted?: boolean },\n ): void {\n if (activeVisit && !activeVisit.completed && !activeVisit.cancelled && !activeVisit.interrupted) {\n activeVisit.cancelToken.abort()\n activeVisit.onCancel()\n activeVisit.completed = false\n activeVisit.cancelled = cancelled\n activeVisit.interrupted = interrupted\n fireFinishEvent(activeVisit)\n activeVisit.onFinish(activeVisit)\n }\n }\n\n protected finishVisit(visit: ActiveVisit): void {\n if (!visit.cancelled && !visit.interrupted) {\n visit.completed = true\n visit.cancelled = false\n visit.interrupted = false\n fireFinishEvent(visit)\n visit.onFinish(visit)\n }\n }\n\n protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean | string {\n if (typeof value === 'function') {\n return value(page)\n } else if (value === 'errors') {\n return Object.keys(page.props.errors || {}).length > 0\n } else {\n return value\n }\n }\n\n public cancel(): void {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n }\n\n public visit(\n href: string | URL,\n {\n method = 'get',\n data = {},\n replace = false,\n preserveScroll = false,\n preserveState = false,\n only = [],\n except = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n queryStringArrayFormat = 'brackets',\n }: VisitOptions = {},\n ): void {\n let url = typeof href === 'string' ? hrefToUrl(href) : href\n\n if ((hasFiles(data) || forceFormData) && !(data instanceof FormData)) {\n data = objectToFormData(data)\n }\n\n if (!(data instanceof FormData)) {\n const [_href, _data] = mergeDataIntoQueryString(method, url, data, queryStringArrayFormat)\n url = hrefToUrl(_href)\n data = _data\n }\n\n const visit: PendingVisit = {\n url,\n method,\n data,\n replace,\n preserveScroll,\n preserveState,\n only,\n except,\n headers,\n errorBag,\n forceFormData,\n queryStringArrayFormat,\n cancelled: false,\n completed: false,\n interrupted: false,\n }\n\n if (onBefore(visit) === false || !fireBeforeEvent(visit)) {\n return\n }\n\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { interrupted: true })\n }\n\n this.saveScrollPositions()\n\n const visitId = this.createVisitId()\n this.activeVisit = {\n ...visit,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n queryStringArrayFormat,\n cancelToken: new AbortController(),\n }\n\n onCancelToken({\n cancel: () => {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n },\n })\n\n fireStartEvent(visit)\n onStart(visit)\n\n const isPartial = !!(only.length || except.length)\n\n Axios({\n method,\n url: urlWithoutHash(url).href,\n data: method === 'get' ? {} : data,\n params: method === 'get' ? data : {},\n signal: this.activeVisit.cancelToken.signal,\n headers: {\n ...headers,\n Accept: 'text/html, application/xhtml+xml',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-Inertia': true,\n ...(isPartial\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n }\n : {}),\n ...(only.length\n ? {\n 'X-Inertia-Partial-Data': only.join(','),\n }\n : {}),\n ...(except.length\n ? {\n 'X-Inertia-Partial-Except': except.join(','),\n }\n : {}),\n ...(errorBag && errorBag.length ? { 'X-Inertia-Error-Bag': errorBag } : {}),\n ...(this.page.version ? { 'X-Inertia-Version': this.page.version } : {}),\n },\n onUploadProgress: (progress) => {\n if (data instanceof FormData) {\n progress.percentage = progress.progress ? Math.round(progress.progress * 100) : 0\n fireProgressEvent(progress)\n onProgress(progress)\n }\n },\n })\n .then((response) => {\n if (!this.isInertiaResponse(response)) {\n return Promise.reject({ response })\n }\n\n const pageResponse: Page = response.data\n if (isPartial && pageResponse.component === this.page.component) {\n pageResponse.props = deepmerge(this.page.props, pageResponse.props, {\n arrayMerge: (_target: any[], source: any[]) => source,\n })\n }\n preserveScroll = this.resolvePreserveOption(preserveScroll, pageResponse) as boolean\n preserveState = this.resolvePreserveOption(preserveState, pageResponse)\n if (preserveState && window.history.state?.rememberedState && pageResponse.component === this.page.component) {\n pageResponse.rememberedState = window.history.state.rememberedState\n }\n const requestUrl = url\n const responseUrl = hrefToUrl(pageResponse.url)\n if (requestUrl.hash && !responseUrl.hash && urlWithoutHash(requestUrl).href === responseUrl.href) {\n responseUrl.hash = requestUrl.hash\n pageResponse.url = responseUrl.href\n }\n return this.setPage(pageResponse, { visitId, replace, preserveScroll, preserveState })\n })\n .then(() => {\n const errors = this.page.props.errors || {}\n if (Object.keys(errors).length > 0) {\n const scopedErrors = errorBag ? (errors[errorBag] ? errors[errorBag] : {}) : errors\n fireErrorEvent(scopedErrors)\n return onError(scopedErrors)\n }\n fireSuccessEvent(this.page)\n return onSuccess(this.page)\n })\n .catch((error) => {\n if (this.isInertiaResponse(error.response)) {\n return this.setPage(error.response.data, { visitId })\n } else if (this.isLocationVisitResponse(error.response)) {\n const locationUrl = hrefToUrl(error.response.headers['x-inertia-location'])\n const requestUrl = url\n if (requestUrl.hash && !locationUrl.hash && urlWithoutHash(requestUrl).href === locationUrl.href) {\n locationUrl.hash = requestUrl.hash\n }\n this.locationVisit(locationUrl, preserveScroll === true)\n } else if (error.response) {\n if (fireInvalidEvent(error.response)) {\n modal.show(error.response.data)\n }\n } else {\n return Promise.reject(error)\n }\n })\n .then(() => {\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n })\n .catch((error) => {\n if (!Axios.isCancel(error)) {\n const throwException = fireExceptionEvent(error)\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n if (throwException) {\n return Promise.reject(error)\n }\n }\n })\n }\n\n protected setPage(\n page: Page,\n {\n visitId = this.createVisitId(),\n replace = false,\n preserveScroll = false,\n preserveState = false,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n } = {},\n ): Promise<void> {\n return Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n page.scrollRegions = page.scrollRegions || []\n page.rememberedState = page.rememberedState || {}\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n this.swapComponent({ component, page, preserveState }).then(() => {\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n })\n }\n\n protected pushState(page: Page): void {\n this.page = page\n window.history.pushState(page, '', page.url)\n }\n\n protected replaceState(page: Page): void {\n this.page = page\n window.history.replaceState(page, '', page.url)\n }\n\n protected handlePopstateEvent(event: PopStateEvent): void {\n if (event.state !== null) {\n const page = event.state\n const visitId = this.createVisitId()\n Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n this.page = page\n this.swapComponent({ component, page, preserveState: false }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n })\n } else {\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...this.page, url: url.href })\n this.resetScrollPositions()\n }\n }\n\n public get(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Omit<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { ...options, preserveScroll: true, preserveState: true })\n }\n\n public replace(url: URL | string, options: Omit<VisitOptions, 'replace'> = {}): void {\n console.warn(\n `Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${\n options.method ?? 'get'\n }() instead.`,\n )\n return this.visit(url, { preserveState: true, ...options, replace: true })\n }\n\n public post(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'put', data })\n }\n\n public patch(\n url: URL | string,\n data: RequestPayload = {},\n options: Omit<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'patch', data })\n }\n\n public delete(url: URL | string, options: Omit<VisitOptions, 'method'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'delete' })\n }\n\n public remember(data: unknown, key = 'default'): void {\n if (isServer) {\n return\n }\n\n this.replaceState({\n ...this.page,\n rememberedState: {\n ...this.page?.rememberedState,\n [key]: data,\n },\n })\n }\n\n public restore(key = 'default'): unknown {\n if (isServer) {\n return\n }\n\n return window.history.state?.rememberedState?.[key]\n }\n\n public on<TEventName extends GlobalEventNames>(\n type: TEventName,\n callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>,\n ): VoidFunction {\n const listener = ((event: GlobalEvent<TEventName>) => {\n const response = callback(event)\n if (event.cancelable && !event.defaultPrevented && response === false) {\n event.preventDefault()\n }\n }) as EventListener\n\n document.addEventListener(`inertia:${type}`, listener)\n return () => document.removeEventListener(`inertia:${type}`, listener)\n }\n}\n", "export default function debounce<F extends (...params: any[]) => ReturnType<F>>(fn: F, delay: number): F {\n let timeoutID: NodeJS.Timeout\n return function (...args: unknown[]) {\n clearTimeout(timeoutID)\n timeoutID = setTimeout(() => fn.apply(this, args), delay)\n } as F\n}\n", "import { GlobalEventDetails, GlobalEventNames, GlobalEventTrigger } from './types'\n\nfunction fireEvent<TEventName extends GlobalEventNames>(\n name: TEventName,\n options: CustomEventInit<GlobalEventDetails<TEventName>>,\n): boolean {\n return document.dispatchEvent(new CustomEvent(`inertia:${name}`, options))\n}\n\nexport const fireBeforeEvent: GlobalEventTrigger<'before'> = (visit) => {\n return fireEvent('before', { cancelable: true, detail: { visit } })\n}\n\nexport const fireErrorEvent: GlobalEventTrigger<'error'> = (errors) => {\n return fireEvent('error', { detail: { errors } })\n}\n\nexport const fireExceptionEvent: GlobalEventTrigger<'exception'> = (exception) => {\n return fireEvent('exception', { cancelable: true, detail: { exception } })\n}\n\nexport const fireFinishEvent: GlobalEventTrigger<'finish'> = (visit) => {\n return fireEvent('finish', { detail: { visit } })\n}\n\nexport const fireInvalidEvent: GlobalEventTrigger<'invalid'> = (response) => {\n return fireEvent('invalid', { cancelable: true, detail: { response } })\n}\n\nexport const fireNavigateEvent: GlobalEventTrigger<'navigate'> = (page) => {\n return fireEvent('navigate', { detail: { page } })\n}\n\nexport const fireProgressEvent: GlobalEventTrigger<'progress'> = (progress) => {\n return fireEvent('progress', { detail: { progress } })\n}\n\nexport const fireStartEvent: GlobalEventTrigger<'start'> = (visit) => {\n return fireEvent('start', { detail: { visit } })\n}\n\nexport const fireSuccessEvent: GlobalEventTrigger<'success'> = (page) => {\n return fireEvent('success', { detail: { page } })\n}\n", "import { FormDataConvertible, RequestPayload } from './types'\n\nexport function hasFiles(data: RequestPayload | FormDataConvertible): boolean {\n return (\n data instanceof File ||\n data instanceof Blob ||\n (data instanceof FileList && data.length > 0) ||\n (data instanceof FormData && Array.from(data.values()).some((value) => hasFiles(value))) ||\n (typeof data === 'object' && data !== null && Object.values(data).some((value) => hasFiles(value)))\n )\n}\n", "import { FormDataConvertible } from './types'\n\nexport function objectToFormData(\n source: Record<string, FormDataConvertible>,\n form: FormData = new FormData(),\n parentKey: string | null = null,\n): FormData {\n source = source || {}\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n append(form, composeKey(parentKey, key), source[key])\n }\n }\n\n return form\n}\n\nfunction composeKey(parent: string | null, key: string): string {\n return parent ? parent + '[' + key + ']' : key\n}\n\nfunction append(form: FormData, key: string, value: FormDataConvertible): void {\n if (Array.isArray(value)) {\n return Array.from(value.keys()).forEach((index) => append(form, composeKey(key, index.toString()), value[index]))\n } else if (value instanceof Date) {\n return form.append(key, value.toISOString())\n } else if (value instanceof File) {\n return form.append(key, value, value.name)\n } else if (value instanceof Blob) {\n return form.append(key, value)\n } else if (typeof value === 'boolean') {\n return form.append(key, value ? '1' : '0')\n } else if (typeof value === 'string') {\n return form.append(key, value)\n } else if (typeof value === 'number') {\n return form.append(key, `${value}`)\n } else if (value === null || value === undefined) {\n return form.append(key, '')\n }\n\n objectToFormData(value, form, key)\n}\n", "export default {\n modal: null,\n listener: null,\n\n show(html: Record<string, unknown> | string): void {\n if (typeof html === 'object') {\n html = `All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(\n html,\n )}`\n }\n\n const page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach((a) => a.setAttribute('target', '_top'))\n\n this.modal = document.createElement('div')\n this.modal.style.position = 'fixed'\n this.modal.style.width = '100vw'\n this.modal.style.height = '100vh'\n this.modal.style.padding = '50px'\n this.modal.style.boxSizing = 'border-box'\n this.modal.style.backgroundColor = 'rgba(0, 0, 0, .6)'\n this.modal.style.zIndex = 200000\n this.modal.addEventListener('click', () => this.hide())\n\n const iframe = document.createElement('iframe')\n iframe.style.backgroundColor = 'white'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n this.modal.appendChild(iframe)\n\n document.body.prepend(this.modal)\n document.body.style.overflow = 'hidden'\n if (!iframe.contentWindow) {\n throw new Error('iframe not yet ready.')\n }\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n this.listener = this.hideOnEscape.bind(this)\n document.addEventListener('keydown', this.listener)\n },\n\n hide(): void {\n this.modal.outerHTML = ''\n this.modal = null\n document.body.style.overflow = 'visible'\n document.removeEventListener('keydown', this.listener)\n },\n\n hideOnEscape(event: KeyboardEvent): void {\n if (event.keyCode === 27) {\n this.hide()\n }\n },\n}\n", "import deepmerge from 'deepmerge'\nimport * as qs from 'qs'\nimport { FormDataConvertible, Method } from './types'\n\nexport function hrefToUrl(href: string | URL): URL {\n return new URL(href.toString(), window.location.toString())\n}\n\nexport function mergeDataIntoQueryString(\n method: Method,\n href: URL | string,\n data: Record<string, FormDataConvertible>,\n qsArrayFormat: 'indices' | 'brackets' = 'brackets',\n): [string, Record<string, FormDataConvertible>] {\n const hasHost = /^https?:\\/\\//.test(href.toString())\n const hasAbsolutePath = hasHost || href.toString().startsWith('/')\n const hasRelativePath = !hasAbsolutePath && !href.toString().startsWith('#') && !href.toString().startsWith('?')\n const hasSearch = href.toString().includes('?') || (method === 'get' && Object.keys(data).length)\n const hasHash = href.toString().includes('#')\n\n const url = new URL(href.toString(), 'http://localhost')\n\n if (method === 'get' && Object.keys(data).length) {\n url.search = qs.stringify(deepmerge(qs.parse(url.search, { ignoreQueryPrefix: true }), data), {\n encodeValuesOnly: true,\n arrayFormat: qsArrayFormat,\n })\n data = {}\n }\n\n return [\n [\n hasHost ? `${url.protocol}//${url.host}` : '',\n hasAbsolutePath ? url.pathname : '',\n hasRelativePath ? url.pathname.substring(1) : '',\n hasSearch ? url.search : '',\n hasHash ? url.hash : '',\n ].join(''),\n data,\n ]\n}\n\nexport function urlWithoutHash(url: URL | Location): URL {\n url = new URL(url.href)\n url.hash = ''\n return url\n}\n", "import debounce from './debounce'\n\nconst Renderer = {\n buildDOMElement(tag: string): ChildNode {\n const template = document.createElement('template')\n template.innerHTML = tag\n const node = template.content.firstChild as Element\n\n if (!tag.startsWith('<script ')) {\n return node\n }\n\n const script = document.createElement('script')\n script.innerHTML = node.innerHTML\n node.getAttributeNames().forEach((name) => {\n script.setAttribute(name, node.getAttribute(name) || '')\n })\n\n return script\n },\n\n isInertiaManagedElement(element: Element): boolean {\n return element.nodeType === Node.ELEMENT_NODE && element.getAttribute('inertia') !== null\n },\n\n findMatchingElementIndex(element: Element, elements: Array<Element>): number {\n const key = element.getAttribute('inertia')\n if (key !== null) {\n return elements.findIndex((element) => element.getAttribute('inertia') === key)\n }\n\n return -1\n },\n\n update: debounce(function (elements: Array<string>) {\n const sourceElements = elements.map((element) => this.buildDOMElement(element))\n const targetElements = Array.from(document.head.childNodes).filter((element) =>\n this.isInertiaManagedElement(element as Element),\n )\n\n targetElements.forEach((targetElement) => {\n const index = this.findMatchingElementIndex(targetElement as Element, sourceElements)\n if (index === -1) {\n targetElement?.parentNode?.removeChild(targetElement)\n return\n }\n\n const sourceElement = sourceElements.splice(index, 1)[0]\n if (sourceElement && !targetElement.isEqualNode(sourceElement)) {\n targetElement?.parentNode?.replaceChild(sourceElement, targetElement)\n }\n })\n\n sourceElements.forEach((element) => document.head.appendChild(element))\n }, 1),\n}\n\nexport default function createHeadManager(\n isServer: boolean,\n titleCallback: (title: string) => string,\n onUpdate: (elements: string[]) => void,\n): {\n forceUpdate: () => void\n createProvider: () => {\n update: (elements: string[]) => void\n disconnect: () => void\n }\n} {\n const states: Record<string, Array<string>> = {}\n let lastProviderId = 0\n\n function connect(): string {\n const id = (lastProviderId += 1)\n states[id] = []\n return id.toString()\n }\n\n function disconnect(id: string): void {\n if (id === null || Object.keys(states).indexOf(id) === -1) {\n return\n }\n\n delete states[id]\n commit()\n }\n\n function update(id: string, elements: Array<string> = []): void {\n if (id !== null && Object.keys(states).indexOf(id) > -1) {\n states[id] = elements\n }\n\n commit()\n }\n\n function collect(): Array<string> {\n const title = titleCallback('')\n\n const defaults: Record<string, string> = {\n ...(title ? { title: `<title inertia=\"\">${title}</title>` } : {}),\n }\n\n const elements = Object.values(states)\n .reduce((carry, elements) => carry.concat(elements), [])\n .reduce((carry, element) => {\n if (element.indexOf('<') === -1) {\n return carry\n }\n\n if (element.indexOf('<title ') === 0) {\n const title = element.match(/(<title [^>]+>)(.*?)(<\\/title>)/)\n carry.title = title ? `${title[1]}${titleCallback(title[2])}${title[3]}` : element\n return carry\n }\n\n const match = element.match(/ inertia=\"[^\"]+\"/)\n if (match) {\n carry[match[0]] = element\n } else {\n carry[Object.keys(carry).length] = element\n }\n\n return carry\n }, defaults)\n\n return Object.values(elements)\n }\n\n function commit(): void {\n isServer ? onUpdate(collect()) : Renderer.update(collect())\n }\n\n // By committing during initialization, we can guarantee that the default\n // tags are set, as well as that they exist during SSR itself.\n commit()\n\n return {\n forceUpdate: commit,\n createProvider: function () {\n const id = connect()\n\n return {\n update: (elements) => update(id, elements),\n disconnect: () => disconnect(id),\n }\n },\n }\n}\n", "import NProgress from 'nprogress'\nimport { GlobalEvent } from './types'\n\nlet timeout: NodeJS.Timeout | null = null\n\nfunction addEventListeners(delay: number): void {\n document.addEventListener('inertia:start', start.bind(null, delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number): void {\n timeout = setTimeout(() => NProgress.start(), delay)\n}\n\nfunction progress(event: GlobalEvent<'progress'>) {\n if (NProgress.isStarted() && event.detail.progress?.percentage) {\n NProgress.set(Math.max(NProgress.status!, (event.detail.progress.percentage / 100) * 0.9))\n }\n}\n\nfunction finish(event: GlobalEvent<'finish'>) {\n clearTimeout(timeout!)\n if (!NProgress.isStarted()) {\n return\n } else if (event.detail.visit.completed) {\n NProgress.done()\n } else if (event.detail.visit.interrupted) {\n NProgress.set(0)\n } else if (event.detail.visit.cancelled) {\n NProgress.done()\n NProgress.remove()\n }\n}\n\nfunction injectCSS(color: string): void {\n const element = document.createElement('style')\n element.type = 'text/css'\n element.textContent = `\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: ${color};\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n document.head.appendChild(element)\n}\n\nexport default function setupProgress({\n delay = 250,\n color = '#29d',\n includeCSS = true,\n showSpinner = false,\n} = {}): void {\n addEventListeners(delay)\n NProgress.configure({ showSpinner })\n if (includeCSS) {\n injectCSS(color)\n }\n}\n", "export default function shouldIntercept(event: KeyboardEvent): boolean {\n const isLink = (event.currentTarget as HTMLElement).tagName.toLowerCase() === 'a'\n return !(\n (event.target && (event?.target as HTMLElement).isContentEditable) ||\n event.defaultPrevented ||\n (isLink && event.which > 1) ||\n (isLink && event.altKey) ||\n (isLink && event.ctrlKey) ||\n (isLink && event.metaKey) ||\n (isLink && event.shiftKey)\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "createHeadManager", "hrefToUrl", "mergeDataIntoQueryString", "router", "setupProgress", "shouldIntercept", "urlWithoutHash", "__toCommonJS", "import_axios", "import_deepmerge", "debounce", "fn", "delay", "timeoutID", "args", "fireEvent", "name", "options", "fireBeforeEvent", "visit", "fireErrorEvent", "errors", "fireExceptionEvent", "exception", "fireFinishEvent", "fireInvalidEvent", "response", "fireNavigateEvent", "page", "fireProgressEvent", "progress", "fireStartEvent", "fireSuccessEvent", "hasFiles", "data", "value", "objectToFormData", "source", "form", "parentKey", "key", "append", "composeKey", "parent", "value", "index", "modal_default", "html", "page", "a", "iframe", "event", "import_deepmerge", "qs", "hrefToUrl", "href", "mergeDataIntoQueryString", "method", "data", "qsArrayFormat", "hasHost", "hasAbsolutePath", "hasRelativePath", "hasSearch", "hasHash", "url", "deepmerge", "urlWithoutHash", "isServer", "Router", "initialPage", "resolveComponent", "swapComponent", "page", "fireNavigateEvent", "debounce", "event", "region", "index", "scrollPosition", "url", "preserveScroll", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "href", "method", "data", "replace", "preserveState", "only", "except", "headers", "errorBag", "forceFormData", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "queryStringArrayFormat", "hrefToUrl", "hasFiles", "objectToFormData", "_href", "_data", "mergeDataIntoQueryString", "fireBeforeEvent", "visitId", "fireStartEvent", "isPartial", "Axios", "progress", "fireProgressEvent", "pageResponse", "deepmerge", "_target", "source", "requestUrl", "responseUrl", "errors", "scopedErrors", "fireErrorEvent", "fireSuccessEvent", "error", "locationUrl", "fireInvalidEvent", "modal_default", "throwException", "fireExceptionEvent", "component", "options", "key", "type", "callback", "listener", "Renderer", "tag", "template", "node", "script", "name", "element", "elements", "key", "debounce", "sourceElements", "targetElement", "index", "sourceElement", "createHeadManager", "isServer", "titleCallback", "onUpdate", "states", "lastProviderId", "connect", "id", "disconnect", "commit", "update", "collect", "title", "defaults", "carry", "match", "import_nprogress", "timeout", "addEventListeners", "delay", "start", "progress", "finish", "NProgress", "event", "injectCSS", "color", "element", "setupProgress", "includeCSS", "showSpinner", "shouldIntercept", "event", "isLink", "router", "Router"]
4
+ "sourcesContent": ["import { Router } from './router'\n\nexport { default as createHeadManager } from './head'\nexport { default as setupProgress } from './progress'\nexport { default as shouldIntercept } from './shouldIntercept'\nexport * from './types'\nexport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\nexport { type Router }\n\nexport const router = new Router()\n", "import { default as Axios, AxiosResponse } from 'axios'\nimport debounce from './debounce'\nimport {\n fireBeforeEvent,\n fireErrorEvent,\n fireExceptionEvent,\n fireFinishEvent,\n fireInvalidEvent,\n fireNavigateEvent,\n fireProgressEvent,\n fireStartEvent,\n fireSuccessEvent,\n} from './events'\nimport { hasFiles } from './files'\nimport { objectToFormData } from './formData'\nimport modal from './modal'\nimport {\n ActiveVisit,\n GlobalEvent,\n GlobalEventNames,\n GlobalEventResult,\n LocationVisit,\n Page,\n PageHandler,\n PageResolver,\n PendingVisit,\n PreserveStateOption,\n RequestPayload,\n VisitId,\n VisitOptions,\n} from './types'\nimport { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url'\n\nconst isServer = typeof window === 'undefined'\nconst isChromeIOS = !isServer && /CriOS/.test(window.navigator.userAgent)\nconst nextFrame = (callback: () => void) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(callback)\n })\n}\n\nexport class Router {\n protected page!: Page\n protected resolveComponent!: PageResolver\n protected swapComponent!: PageHandler\n protected navigationType?: string\n protected activeVisit?: ActiveVisit\n protected visitId: VisitId = null\n\n public init({\n initialPage,\n resolveComponent,\n swapComponent,\n }: {\n initialPage: Page\n resolveComponent: PageResolver\n swapComponent: PageHandler\n }): void {\n this.page = initialPage\n this.resolveComponent = resolveComponent\n this.swapComponent = swapComponent\n\n this.setNavigationType()\n this.clearRememberedStateOnReload()\n\n if (this.isBackForwardVisit()) {\n this.handleBackForwardVisit(this.page)\n } else if (this.isLocationVisit()) {\n this.handleLocationVisit(this.page)\n } else {\n this.handleInitialPageVisit(this.page)\n }\n\n this.setupEventListeners()\n }\n\n protected setNavigationType(): void {\n this.navigationType =\n window.performance &&\n window.performance.getEntriesByType &&\n window.performance.getEntriesByType('navigation').length > 0\n ? (window.performance.getEntriesByType('navigation')[0] as PerformanceNavigationTiming).type\n : 'navigate'\n }\n\n protected clearRememberedStateOnReload(): void {\n if (this.navigationType === 'reload' && window.history.state?.rememberedState) {\n delete window.history.state.rememberedState\n }\n }\n\n protected handleInitialPageVisit(page: Page): void {\n const hash = window.location.hash\n if (!this.page.url.includes(hash)) {\n this.page.url += hash\n }\n this.setPage(page, { preserveScroll: true, preserveState: true }).then(() => fireNavigateEvent(page))\n }\n\n protected setupEventListeners(): void {\n window.addEventListener('popstate', this.handlePopstateEvent.bind(this))\n document.addEventListener('scroll', debounce(this.handleScrollEvent.bind(this), 100), true)\n }\n\n protected scrollRegions(): NodeListOf<Element> {\n return document.querySelectorAll('[scroll-region]')\n }\n\n protected handleScrollEvent(event: Event): void {\n if (\n typeof (event.target as Element).hasAttribute === 'function' &&\n (event.target as Element).hasAttribute('scroll-region')\n ) {\n this.saveScrollPositions()\n }\n }\n\n protected saveScrollPositions(): void {\n this.replaceState({\n ...this.page,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\n }),\n })\n }\n\n protected resetScrollPositions(): void {\n nextFrame(() => {\n window.scrollTo(0, 0)\n this.scrollRegions().forEach((region) => {\n if (typeof region.scrollTo === 'function') {\n region.scrollTo(0, 0)\n } else {\n region.scrollTop = 0\n region.scrollLeft = 0\n }\n })\n this.saveScrollPositions()\n if (window.location.hash) {\n document.getElementById(window.location.hash.slice(1))?.scrollIntoView()\n }\n })\n }\n\n protected restoreScrollPositions(): void {\n nextFrame(() => {\n if (!this.page.scrollRegions) return\n\n this.scrollRegions().forEach((region: Element, index: number) => {\n const scrollPosition = this.page.scrollRegions[index]\n if (!scrollPosition) {\n return\n } else if (typeof region.scrollTo === 'function') {\n region.scrollTo(scrollPosition.left, scrollPosition.top)\n } else {\n region.scrollTop = scrollPosition.top\n region.scrollLeft = scrollPosition.left\n }\n })\n })\n }\n\n protected isBackForwardVisit(): boolean {\n return window.history.state && this.navigationType === 'back_forward'\n }\n\n protected handleBackForwardVisit(page: Page): void {\n window.history.state.version = page.version\n this.setPage(window.history.state, { preserveScroll: true, preserveState: true }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n\n protected locationVisit(url: URL, preserveScroll: LocationVisit['preserveScroll']): boolean | void {\n try {\n const locationVisit: LocationVisit = { preserveScroll }\n window.sessionStorage.setItem('inertiaLocationVisit', JSON.stringify(locationVisit))\n window.location.href = url.href\n if (urlWithoutHash(window.location).href === urlWithoutHash(url).href) {\n window.location.reload()\n }\n } catch (error) {\n return false\n }\n }\n\n protected isLocationVisit(): boolean {\n try {\n return window.sessionStorage.getItem('inertiaLocationVisit') !== null\n } catch (error) {\n return false\n }\n }\n\n protected handleLocationVisit(page: Page): void {\n const locationVisit: LocationVisit = JSON.parse(window.sessionStorage.getItem('inertiaLocationVisit') || '')\n window.sessionStorage.removeItem('inertiaLocationVisit')\n page.url += window.location.hash\n page.rememberedState = window.history.state?.rememberedState ?? {}\n page.scrollRegions = window.history.state?.scrollRegions ?? []\n this.setPage(page, { preserveScroll: locationVisit.preserveScroll, preserveState: true }).then(() => {\n if (locationVisit.preserveScroll) {\n this.restoreScrollPositions()\n }\n fireNavigateEvent(page)\n })\n }\n\n protected isLocationVisitResponse(response: AxiosResponse): boolean {\n return !!(response && response.status === 409 && response.headers['x-inertia-location'])\n }\n\n protected isInertiaResponse(response: AxiosResponse): boolean {\n return !!response?.headers['x-inertia']\n }\n\n protected createVisitId(): VisitId {\n this.visitId = {}\n return this.visitId\n }\n\n protected cancelVisit(\n activeVisit: ActiveVisit,\n { cancelled = false, interrupted = false }: { cancelled?: boolean; interrupted?: boolean },\n ): void {\n if (activeVisit && !activeVisit.completed && !activeVisit.cancelled && !activeVisit.interrupted) {\n activeVisit.cancelToken.abort()\n activeVisit.onCancel()\n activeVisit.completed = false\n activeVisit.cancelled = cancelled\n activeVisit.interrupted = interrupted\n fireFinishEvent(activeVisit)\n activeVisit.onFinish(activeVisit)\n }\n }\n\n protected finishVisit(visit: ActiveVisit): void {\n if (!visit.cancelled && !visit.interrupted) {\n visit.completed = true\n visit.cancelled = false\n visit.interrupted = false\n fireFinishEvent(visit)\n visit.onFinish(visit)\n }\n }\n\n protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean {\n if (typeof value === 'function') {\n return value(page)\n } else if (value === 'errors') {\n return Object.keys(page.props.errors || {}).length > 0\n } else {\n return value\n }\n }\n\n public cancel(): void {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n }\n\n public visit(\n href: string | URL,\n {\n method = 'get',\n data = {},\n replace = false,\n preserveScroll = false,\n preserveState = false,\n only = [],\n except = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n queryStringArrayFormat = 'brackets',\n }: VisitOptions = {},\n ): void {\n let url = typeof href === 'string' ? hrefToUrl(href) : href\n\n if ((hasFiles(data) || forceFormData) && !(data instanceof FormData)) {\n data = objectToFormData(data)\n }\n\n if (!(data instanceof FormData)) {\n const [_href, _data] = mergeDataIntoQueryString(method, url, data, queryStringArrayFormat)\n url = hrefToUrl(_href)\n data = _data\n }\n\n const visit: PendingVisit = {\n url,\n method,\n data,\n replace,\n preserveScroll,\n preserveState,\n only,\n except,\n headers,\n errorBag,\n forceFormData,\n queryStringArrayFormat,\n cancelled: false,\n completed: false,\n interrupted: false,\n }\n\n if (onBefore(visit) === false || !fireBeforeEvent(visit)) {\n return\n }\n\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { interrupted: true })\n }\n\n this.saveScrollPositions()\n\n const visitId = this.createVisitId()\n this.activeVisit = {\n ...visit,\n onCancelToken,\n onBefore,\n onStart,\n onProgress,\n onFinish,\n onCancel,\n onSuccess,\n onError,\n queryStringArrayFormat,\n cancelToken: new AbortController(),\n }\n\n onCancelToken({\n cancel: () => {\n if (this.activeVisit) {\n this.cancelVisit(this.activeVisit, { cancelled: true })\n }\n },\n })\n\n fireStartEvent(visit)\n onStart(visit)\n\n const isPartial = !!(only.length || except.length)\n\n Axios({\n method,\n url: urlWithoutHash(url).href,\n data: method === 'get' ? {} : data,\n params: method === 'get' ? data : {},\n signal: this.activeVisit.cancelToken.signal,\n headers: {\n ...headers,\n Accept: 'text/html, application/xhtml+xml',\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-Inertia': true,\n ...(isPartial\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n }\n : {}),\n ...(only.length\n ? {\n 'X-Inertia-Partial-Data': only.join(','),\n }\n : {}),\n ...(except.length\n ? {\n 'X-Inertia-Partial-Except': except.join(','),\n }\n : {}),\n ...(errorBag && errorBag.length ? { 'X-Inertia-Error-Bag': errorBag } : {}),\n ...(this.page.version ? { 'X-Inertia-Version': this.page.version } : {}),\n },\n onUploadProgress: (progress) => {\n if (data instanceof FormData) {\n progress.percentage = progress.progress ? Math.round(progress.progress * 100) : 0\n fireProgressEvent(progress)\n onProgress(progress)\n }\n },\n })\n .then((response) => {\n if (!this.isInertiaResponse(response)) {\n return Promise.reject({ response })\n }\n\n const pageResponse: Page = response.data\n if (isPartial && pageResponse.component === this.page.component) {\n pageResponse.props = { ...this.page.props, ...pageResponse.props }\n }\n preserveScroll = this.resolvePreserveOption(preserveScroll, pageResponse) as boolean\n preserveState = this.resolvePreserveOption(preserveState, pageResponse)\n if (preserveState && window.history.state?.rememberedState && pageResponse.component === this.page.component) {\n pageResponse.rememberedState = window.history.state.rememberedState\n }\n const requestUrl = url\n const responseUrl = hrefToUrl(pageResponse.url)\n if (requestUrl.hash && !responseUrl.hash && urlWithoutHash(requestUrl).href === responseUrl.href) {\n responseUrl.hash = requestUrl.hash\n pageResponse.url = responseUrl.href\n }\n return this.setPage(pageResponse, { visitId, replace, preserveScroll, preserveState })\n })\n .then(() => {\n const errors = this.page.props.errors || {}\n if (Object.keys(errors).length > 0) {\n const scopedErrors = errorBag ? (errors[errorBag] ? errors[errorBag] : {}) : errors\n fireErrorEvent(scopedErrors)\n return onError(scopedErrors)\n }\n fireSuccessEvent(this.page)\n return onSuccess(this.page)\n })\n .catch((error) => {\n if (this.isInertiaResponse(error.response)) {\n return this.setPage(error.response.data, { visitId })\n } else if (this.isLocationVisitResponse(error.response)) {\n const locationUrl = hrefToUrl(error.response.headers['x-inertia-location'])\n const requestUrl = url\n if (requestUrl.hash && !locationUrl.hash && urlWithoutHash(requestUrl).href === locationUrl.href) {\n locationUrl.hash = requestUrl.hash\n }\n this.locationVisit(locationUrl, preserveScroll === true)\n } else if (error.response) {\n if (fireInvalidEvent(error.response)) {\n modal.show(error.response.data)\n }\n } else {\n return Promise.reject(error)\n }\n })\n .then(() => {\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n })\n .catch((error) => {\n if (!Axios.isCancel(error)) {\n const throwException = fireExceptionEvent(error)\n if (this.activeVisit) {\n this.finishVisit(this.activeVisit)\n }\n if (throwException) {\n return Promise.reject(error)\n }\n }\n })\n }\n\n protected setPage(\n page: Page,\n {\n visitId = this.createVisitId(),\n replace = false,\n preserveScroll = false,\n preserveState = false,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n } = {},\n ): Promise<void> {\n return Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n page.scrollRegions = this.page.scrollRegions || []\n page.rememberedState = page.rememberedState || {}\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n this.swapComponent({ component, page, preserveState }).then(() => {\n preserveScroll ? this.restoreScrollPositions() : this.resetScrollPositions()\n\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n })\n }\n\n protected pushState(page: Page): void {\n this.page = page\n if (isChromeIOS) {\n // Defer history.pushState to the next event loop tick to prevent timing conflicts.\n // Ensure any previous history.replaceState completes before pushState is executed.\n setTimeout(() => window.history.pushState(page, '', page.url))\n } else {\n window.history.pushState(page, '', page.url)\n }\n }\n\n protected replaceState(page: Page): void {\n this.page = page\n if (isChromeIOS) {\n // Defer history.replaceState to the next event loop tick to prevent timing conflicts.\n // Ensure any previous history.pushState completes before replaceState is executed.\n setTimeout(() => window.history.replaceState(page, '', page.url))\n } else {\n window.history.replaceState(page, '', page.url)\n }\n }\n\n protected handlePopstateEvent(event: PopStateEvent): void {\n if (event.state !== null) {\n const page = event.state\n const visitId = this.createVisitId()\n Promise.resolve(this.resolveComponent(page.component)).then((component) => {\n if (visitId === this.visitId) {\n this.page = page\n this.swapComponent({ component, page, preserveState: false }).then(() => {\n this.restoreScrollPositions()\n fireNavigateEvent(page)\n })\n }\n })\n } else {\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...this.page, url: url.href })\n this.resetScrollPositions()\n }\n }\n\n public get(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Omit<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { ...options, preserveScroll: true, preserveState: true })\n }\n\n public replace(url: URL | string, options: Omit<VisitOptions, 'replace'> = {}): void {\n console.warn(\n `Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${\n options.method ?? 'get'\n }() instead.`,\n )\n return this.visit(url, { preserveState: true, ...options, replace: true })\n }\n\n public post(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(url: URL | string, data: RequestPayload = {}, options: Omit<VisitOptions, 'method' | 'data'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'put', data })\n }\n\n public patch(\n url: URL | string,\n data: RequestPayload = {},\n options: Omit<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'patch', data })\n }\n\n public delete(url: URL | string, options: Omit<VisitOptions, 'method'> = {}): void {\n return this.visit(url, { preserveState: true, ...options, method: 'delete' })\n }\n\n public remember(data: unknown, key = 'default'): void {\n if (isServer) {\n return\n }\n\n this.replaceState({\n ...this.page,\n rememberedState: {\n ...this.page?.rememberedState,\n [key]: data,\n },\n })\n }\n\n public restore(key = 'default'): unknown {\n if (isServer) {\n return\n }\n\n return window.history.state?.rememberedState?.[key]\n }\n\n public on<TEventName extends GlobalEventNames>(\n type: TEventName,\n callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>,\n ): VoidFunction {\n if (isServer) {\n return () => {}\n }\n\n const listener = ((event: GlobalEvent<TEventName>) => {\n const response = callback(event)\n if (event.cancelable && !event.defaultPrevented && response === false) {\n event.preventDefault()\n }\n }) as EventListener\n\n document.addEventListener(`inertia:${type}`, listener)\n return () => document.removeEventListener(`inertia:${type}`, listener)\n }\n}\n", "export default function debounce<F extends (...params: any[]) => ReturnType<F>>(fn: F, delay: number): F {\n let timeoutID: NodeJS.Timeout\n return function (...args: unknown[]) {\n clearTimeout(timeoutID)\n timeoutID = setTimeout(() => fn.apply(this, args), delay)\n } as F\n}\n", "import { GlobalEventDetails, GlobalEventNames, GlobalEventTrigger } from './types'\n\nfunction fireEvent<TEventName extends GlobalEventNames>(\n name: TEventName,\n options: CustomEventInit<GlobalEventDetails<TEventName>>,\n): boolean {\n return document.dispatchEvent(new CustomEvent(`inertia:${name}`, options))\n}\n\nexport const fireBeforeEvent: GlobalEventTrigger<'before'> = (visit) => {\n return fireEvent('before', { cancelable: true, detail: { visit } })\n}\n\nexport const fireErrorEvent: GlobalEventTrigger<'error'> = (errors) => {\n return fireEvent('error', { detail: { errors } })\n}\n\nexport const fireExceptionEvent: GlobalEventTrigger<'exception'> = (exception) => {\n return fireEvent('exception', { cancelable: true, detail: { exception } })\n}\n\nexport const fireFinishEvent: GlobalEventTrigger<'finish'> = (visit) => {\n return fireEvent('finish', { detail: { visit } })\n}\n\nexport const fireInvalidEvent: GlobalEventTrigger<'invalid'> = (response) => {\n return fireEvent('invalid', { cancelable: true, detail: { response } })\n}\n\nexport const fireNavigateEvent: GlobalEventTrigger<'navigate'> = (page) => {\n return fireEvent('navigate', { detail: { page } })\n}\n\nexport const fireProgressEvent: GlobalEventTrigger<'progress'> = (progress) => {\n return fireEvent('progress', { detail: { progress } })\n}\n\nexport const fireStartEvent: GlobalEventTrigger<'start'> = (visit) => {\n return fireEvent('start', { detail: { visit } })\n}\n\nexport const fireSuccessEvent: GlobalEventTrigger<'success'> = (page) => {\n return fireEvent('success', { detail: { page } })\n}\n", "import { FormDataConvertible, RequestPayload } from './types'\n\nexport function hasFiles(data: RequestPayload | FormDataConvertible): boolean {\n return (\n data instanceof File ||\n data instanceof Blob ||\n (data instanceof FileList && data.length > 0) ||\n (data instanceof FormData && Array.from(data.values()).some((value) => hasFiles(value))) ||\n (typeof data === 'object' && data !== null && Object.values(data).some((value) => hasFiles(value)))\n )\n}\n", "import { FormDataConvertible } from './types'\n\nexport function objectToFormData(\n source: Record<string, FormDataConvertible>,\n form: FormData = new FormData(),\n parentKey: string | null = null,\n): FormData {\n source = source || {}\n\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n append(form, composeKey(parentKey, key), source[key])\n }\n }\n\n return form\n}\n\nfunction composeKey(parent: string | null, key: string): string {\n return parent ? parent + '[' + key + ']' : key\n}\n\nfunction append(form: FormData, key: string, value: FormDataConvertible): void {\n if (Array.isArray(value)) {\n return Array.from(value.keys()).forEach((index) => append(form, composeKey(key, index.toString()), value[index]))\n } else if (value instanceof Date) {\n return form.append(key, value.toISOString())\n } else if (value instanceof File) {\n return form.append(key, value, value.name)\n } else if (value instanceof Blob) {\n return form.append(key, value)\n } else if (typeof value === 'boolean') {\n return form.append(key, value ? '1' : '0')\n } else if (typeof value === 'string') {\n return form.append(key, value)\n } else if (typeof value === 'number') {\n return form.append(key, `${value}`)\n } else if (value === null || value === undefined) {\n return form.append(key, '')\n }\n\n objectToFormData(value, form, key)\n}\n", "export default {\n modal: null,\n listener: null,\n\n show(html: Record<string, unknown> | string): void {\n if (typeof html === 'object') {\n html = `All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(\n html,\n )}`\n }\n\n const page = document.createElement('html')\n page.innerHTML = html\n page.querySelectorAll('a').forEach((a) => a.setAttribute('target', '_top'))\n\n this.modal = document.createElement('div')\n this.modal.style.position = 'fixed'\n this.modal.style.width = '100vw'\n this.modal.style.height = '100vh'\n this.modal.style.padding = '50px'\n this.modal.style.boxSizing = 'border-box'\n this.modal.style.backgroundColor = 'rgba(0, 0, 0, .6)'\n this.modal.style.zIndex = 200000\n this.modal.addEventListener('click', () => this.hide())\n\n const iframe = document.createElement('iframe')\n iframe.style.backgroundColor = 'white'\n iframe.style.borderRadius = '5px'\n iframe.style.width = '100%'\n iframe.style.height = '100%'\n this.modal.appendChild(iframe)\n\n document.body.prepend(this.modal)\n document.body.style.overflow = 'hidden'\n if (!iframe.contentWindow) {\n throw new Error('iframe not yet ready.')\n }\n iframe.contentWindow.document.open()\n iframe.contentWindow.document.write(page.outerHTML)\n iframe.contentWindow.document.close()\n\n this.listener = this.hideOnEscape.bind(this)\n document.addEventListener('keydown', this.listener)\n },\n\n hide(): void {\n this.modal.outerHTML = ''\n this.modal = null\n document.body.style.overflow = 'visible'\n document.removeEventListener('keydown', this.listener)\n },\n\n hideOnEscape(event: KeyboardEvent): void {\n if (event.keyCode === 27) {\n this.hide()\n }\n },\n}\n", "import deepmerge from 'deepmerge'\nimport * as qs from 'qs'\nimport { FormDataConvertible, Method } from './types'\n\nexport function hrefToUrl(href: string | URL): URL {\n return new URL(href.toString(), window.location.toString())\n}\n\nexport function mergeDataIntoQueryString(\n method: Method,\n href: URL | string,\n data: Record<string, FormDataConvertible>,\n qsArrayFormat: 'indices' | 'brackets' = 'brackets',\n): [string, Record<string, FormDataConvertible>] {\n const hasHost = /^https?:\\/\\//.test(href.toString())\n const hasAbsolutePath = hasHost || href.toString().startsWith('/')\n const hasRelativePath = !hasAbsolutePath && !href.toString().startsWith('#') && !href.toString().startsWith('?')\n const hasSearch = href.toString().includes('?') || (method === 'get' && Object.keys(data).length)\n const hasHash = href.toString().includes('#')\n\n const url = new URL(href.toString(), 'http://localhost')\n\n if (method === 'get' && Object.keys(data).length) {\n url.search = qs.stringify(deepmerge(qs.parse(url.search, { ignoreQueryPrefix: true }), data), {\n encodeValuesOnly: true,\n arrayFormat: qsArrayFormat,\n })\n data = {}\n }\n\n return [\n [\n hasHost ? `${url.protocol}//${url.host}` : '',\n hasAbsolutePath ? url.pathname : '',\n hasRelativePath ? url.pathname.substring(1) : '',\n hasSearch ? url.search : '',\n hasHash ? url.hash : '',\n ].join(''),\n data,\n ]\n}\n\nexport function urlWithoutHash(url: URL | Location): URL {\n url = new URL(url.href)\n url.hash = ''\n return url\n}\n", "import debounce from './debounce'\n\nconst Renderer = {\n buildDOMElement(tag: string): ChildNode {\n const template = document.createElement('template')\n template.innerHTML = tag\n const node = template.content.firstChild as Element\n\n if (!tag.startsWith('<script ')) {\n return node\n }\n\n const script = document.createElement('script')\n script.innerHTML = node.innerHTML\n node.getAttributeNames().forEach((name) => {\n script.setAttribute(name, node.getAttribute(name) || '')\n })\n\n return script\n },\n\n isInertiaManagedElement(element: Element): boolean {\n return element.nodeType === Node.ELEMENT_NODE && element.getAttribute('inertia') !== null\n },\n\n findMatchingElementIndex(element: Element, elements: Array<Element>): number {\n const key = element.getAttribute('inertia')\n if (key !== null) {\n return elements.findIndex((element) => element.getAttribute('inertia') === key)\n }\n\n return -1\n },\n\n update: debounce(function (elements: Array<string>) {\n const sourceElements = elements.map((element) => this.buildDOMElement(element))\n const targetElements = Array.from(document.head.childNodes).filter((element) =>\n this.isInertiaManagedElement(element as Element),\n )\n\n targetElements.forEach((targetElement) => {\n const index = this.findMatchingElementIndex(targetElement as Element, sourceElements)\n if (index === -1) {\n targetElement?.parentNode?.removeChild(targetElement)\n return\n }\n\n const sourceElement = sourceElements.splice(index, 1)[0]\n if (sourceElement && !targetElement.isEqualNode(sourceElement)) {\n targetElement?.parentNode?.replaceChild(sourceElement, targetElement)\n }\n })\n\n sourceElements.forEach((element) => document.head.appendChild(element))\n }, 1),\n}\n\nexport default function createHeadManager(\n isServer: boolean,\n titleCallback: (title: string) => string,\n onUpdate: (elements: string[]) => void,\n): {\n forceUpdate: () => void\n createProvider: () => {\n update: (elements: string[]) => void\n disconnect: () => void\n }\n} {\n const states: Record<string, Array<string>> = {}\n let lastProviderId = 0\n\n function connect(): string {\n const id = (lastProviderId += 1)\n states[id] = []\n return id.toString()\n }\n\n function disconnect(id: string): void {\n if (id === null || Object.keys(states).indexOf(id) === -1) {\n return\n }\n\n delete states[id]\n commit()\n }\n\n function update(id: string, elements: Array<string> = []): void {\n if (id !== null && Object.keys(states).indexOf(id) > -1) {\n states[id] = elements\n }\n\n commit()\n }\n\n function collect(): Array<string> {\n const title = titleCallback('')\n\n const defaults: Record<string, string> = {\n ...(title ? { title: `<title inertia=\"\">${title}</title>` } : {}),\n }\n\n const elements = Object.values(states)\n .reduce((carry, elements) => carry.concat(elements), [])\n .reduce((carry, element) => {\n if (element.indexOf('<') === -1) {\n return carry\n }\n\n if (element.indexOf('<title ') === 0) {\n const title = element.match(/(<title [^>]+>)(.*?)(<\\/title>)/)\n carry.title = title ? `${title[1]}${titleCallback(title[2])}${title[3]}` : element\n return carry\n }\n\n const match = element.match(/ inertia=\"[^\"]+\"/)\n if (match) {\n carry[match[0]] = element\n } else {\n carry[Object.keys(carry).length] = element\n }\n\n return carry\n }, defaults)\n\n return Object.values(elements)\n }\n\n function commit(): void {\n isServer ? onUpdate(collect()) : Renderer.update(collect())\n }\n\n // By committing during initialization, we can guarantee that the default\n // tags are set, as well as that they exist during SSR itself.\n commit()\n\n return {\n forceUpdate: commit,\n createProvider: function () {\n const id = connect()\n\n return {\n update: (elements) => update(id, elements),\n disconnect: () => disconnect(id),\n }\n },\n }\n}\n", "import NProgress from 'nprogress'\nimport { GlobalEvent } from './types'\n\nlet timeout: NodeJS.Timeout | null = null\n\nfunction addEventListeners(delay: number): void {\n document.addEventListener('inertia:start', start.bind(null, delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number): void {\n timeout = setTimeout(() => NProgress.start(), delay)\n}\n\nfunction progress(event: GlobalEvent<'progress'>) {\n if (NProgress.isStarted() && event.detail.progress?.percentage) {\n NProgress.set(Math.max(NProgress.status!, (event.detail.progress.percentage / 100) * 0.9))\n }\n}\n\nfunction finish(event: GlobalEvent<'finish'>) {\n clearTimeout(timeout!)\n if (!NProgress.isStarted()) {\n return\n } else if (event.detail.visit.completed) {\n NProgress.done()\n } else if (event.detail.visit.interrupted) {\n NProgress.set(0)\n } else if (event.detail.visit.cancelled) {\n NProgress.done()\n NProgress.remove()\n }\n}\n\nfunction injectCSS(color: string): void {\n const element = document.createElement('style')\n element.type = 'text/css'\n element.textContent = `\n #nprogress {\n pointer-events: none;\n }\n\n #nprogress .bar {\n background: ${color};\n\n position: fixed;\n z-index: 1031;\n top: 0;\n left: 0;\n\n width: 100%;\n height: 2px;\n }\n\n #nprogress .peg {\n display: block;\n position: absolute;\n right: 0px;\n width: 100px;\n height: 100%;\n box-shadow: 0 0 10px ${color}, 0 0 5px ${color};\n opacity: 1.0;\n\n -webkit-transform: rotate(3deg) translate(0px, -4px);\n -ms-transform: rotate(3deg) translate(0px, -4px);\n transform: rotate(3deg) translate(0px, -4px);\n }\n\n #nprogress .spinner {\n display: block;\n position: fixed;\n z-index: 1031;\n top: 15px;\n right: 15px;\n }\n\n #nprogress .spinner-icon {\n width: 18px;\n height: 18px;\n box-sizing: border-box;\n\n border: solid 2px transparent;\n border-top-color: ${color};\n border-left-color: ${color};\n border-radius: 50%;\n\n -webkit-animation: nprogress-spinner 400ms linear infinite;\n animation: nprogress-spinner 400ms linear infinite;\n }\n\n .nprogress-custom-parent {\n overflow: hidden;\n position: relative;\n }\n\n .nprogress-custom-parent #nprogress .spinner,\n .nprogress-custom-parent #nprogress .bar {\n position: absolute;\n }\n\n @-webkit-keyframes nprogress-spinner {\n 0% { -webkit-transform: rotate(0deg); }\n 100% { -webkit-transform: rotate(360deg); }\n }\n @keyframes nprogress-spinner {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n `\n document.head.appendChild(element)\n}\n\nexport default function setupProgress({\n delay = 250,\n color = '#29d',\n includeCSS = true,\n showSpinner = false,\n} = {}): void {\n addEventListeners(delay)\n NProgress.configure({ showSpinner })\n if (includeCSS) {\n injectCSS(color)\n }\n}\n", "export default function shouldIntercept(event: MouseEvent | KeyboardEvent): boolean {\n const isLink = (event.currentTarget as HTMLElement).tagName.toLowerCase() === 'a'\n return !(\n (event.target && (event?.target as HTMLElement).isContentEditable) ||\n event.defaultPrevented ||\n (isLink && event.altKey) ||\n (isLink && event.ctrlKey) ||\n (isLink && event.metaKey) ||\n (isLink && event.shiftKey) ||\n (isLink && 'button' in event && event.button !== 0)\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "createHeadManager", "hrefToUrl", "mergeDataIntoQueryString", "router", "setupProgress", "shouldIntercept", "urlWithoutHash", "__toCommonJS", "import_axios", "debounce", "fn", "delay", "timeoutID", "args", "fireEvent", "name", "options", "fireBeforeEvent", "visit", "fireErrorEvent", "errors", "fireExceptionEvent", "exception", "fireFinishEvent", "fireInvalidEvent", "response", "fireNavigateEvent", "page", "fireProgressEvent", "progress", "fireStartEvent", "fireSuccessEvent", "hasFiles", "data", "value", "objectToFormData", "source", "form", "parentKey", "key", "append", "composeKey", "parent", "value", "index", "modal_default", "html", "page", "a", "iframe", "event", "import_deepmerge", "qs", "hrefToUrl", "href", "mergeDataIntoQueryString", "method", "data", "qsArrayFormat", "hasHost", "hasAbsolutePath", "hasRelativePath", "hasSearch", "hasHash", "url", "deepmerge", "urlWithoutHash", "isServer", "isChromeIOS", "nextFrame", "callback", "Router", "initialPage", "resolveComponent", "swapComponent", "page", "hash", "fireNavigateEvent", "debounce", "event", "region", "index", "scrollPosition", "url", "preserveScroll", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "href", "method", "data", "replace", "preserveState", "only", "except", "headers", "errorBag", "forceFormData", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "queryStringArrayFormat", "hrefToUrl", "hasFiles", "objectToFormData", "_href", "_data", "mergeDataIntoQueryString", "fireBeforeEvent", "visitId", "fireStartEvent", "isPartial", "Axios", "progress", "fireProgressEvent", "pageResponse", "requestUrl", "responseUrl", "errors", "scopedErrors", "fireErrorEvent", "fireSuccessEvent", "error", "locationUrl", "fireInvalidEvent", "modal_default", "throwException", "fireExceptionEvent", "component", "options", "key", "type", "listener", "Renderer", "tag", "template", "node", "script", "name", "element", "elements", "key", "debounce", "sourceElements", "targetElement", "index", "sourceElement", "createHeadManager", "isServer", "titleCallback", "onUpdate", "states", "lastProviderId", "connect", "id", "disconnect", "commit", "update", "collect", "title", "defaults", "carry", "match", "import_nprogress", "timeout", "addEventListeners", "delay", "start", "progress", "finish", "NProgress", "event", "injectCSS", "color", "element", "setupProgress", "includeCSS", "showSpinner", "shouldIntercept", "event", "isLink", "router", "Router"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/core",
3
- "version": "1.1.0",
3
+ "version": "1.3.0-beta.1",
4
4
  "license": "MIT",
5
5
  "description": "A framework for creating server-driven single page apps.",
6
6
  "contributors": [
package/types/router.d.ts CHANGED
@@ -34,7 +34,7 @@ export declare class Router {
34
34
  interrupted?: boolean;
35
35
  }): void;
36
36
  protected finishVisit(visit: ActiveVisit): void;
37
- protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean | string;
37
+ protected resolvePreserveOption(value: PreserveStateOption, page: Page): boolean;
38
38
  cancel(): void;
39
39
  visit(href: string | URL, { method, data, replace, preserveScroll, preserveState, only, except, headers, errorBag, forceFormData, onCancelToken, onBefore, onStart, onProgress, onFinish, onCancel, onSuccess, onError, queryStringArrayFormat, }?: VisitOptions): void;
40
40
  protected setPage(page: Page, { visitId, replace, preserveScroll, preserveState, }?: {
@@ -1 +1 @@
1
- export default function shouldIntercept(event: KeyboardEvent): boolean;
1
+ export default function shouldIntercept(event: MouseEvent | KeyboardEvent): boolean;
package/types/types.d.ts CHANGED
@@ -35,7 +35,7 @@ export type PageHandler = ({ component, page, preserveState, }: {
35
35
  page: Page;
36
36
  preserveState: PreserveStateOption;
37
37
  }) => Promise<unknown>;
38
- export type PreserveStateOption = boolean | string | ((page: Page) => boolean);
38
+ export type PreserveStateOption = boolean | 'errors' | ((page: Page) => boolean);
39
39
  export type Progress = AxiosProgressEvent;
40
40
  export type LocationVisit = {
41
41
  preserveScroll: boolean;