inertiax-core 1.1.2 → 1.1.3

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";function T(t,e){let i;return function(...r){clearTimeout(i),i=setTimeout(()=>t.apply(this,r),e)}}function v(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var j=t=>v("before",{cancelable:!0,detail:{visit:t}}),H=t=>v("error",{detail:{errors:t}}),$=t=>v("exception",{cancelable:!0,detail:{exception:t}}),k=t=>v("finish",{detail:{visit:t}}),q=t=>v("invalid",{cancelable:!0,detail:{response:t}}),S=t=>v("navigate",{detail:{page:t}}),W=t=>v("progress",{detail:{progress:t}}),_=t=>v("start",{detail:{visit:t}}),K=t=>v("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 r in t)Object.prototype.hasOwnProperty.call(t,r)&&J(e,X(i,r),t[r]);return e}function X(t,e){return t?t+"["+e+"]":e}function J(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(r=>J(t,X(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,"");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(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 ne from"deepmerge";import*as O from"qs";function E(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("/"),u=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),d=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(ne(O.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:r}),i={}),[[s?`${c.protocol}//${c.host}`:"",l?c.pathname:"",u?c.pathname.substring(1):"",d?c.search:"",f?c.hash:""].join(""),i]}function x(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: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("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,{preserveScroll:!0,preserveState:!0}).then(()=>S(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0),document.addEventListener("click",e=>{let i=e.target,r=i.closest("a"),s=i.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId;!r||r.rel=="external"||r.target=="_blank"||r.href&&r.href.startsWith(location.origin)&&(e.preventDefault(),e.stopPropagation(),this.visit(r.href,{method:r.dataset.method,target:r.dataset.target||s}))})}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 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){let i;e.props?i=e:(window.history.state.version=e.version,i=window.history.state),this.setPage(i,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),S(e)})}locationVisit(e,i){try{let r={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(r)),window.location.href=e.href,x(window.location).href===x(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(),S(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,k(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,k(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:u=!1,preserveURL:d=!1,only:f=[],headers:c={},errorBag:a="",forceFormData:b=!1,target:P=null,onCancelToken:p=()=>{},onBefore:h=()=>{},onStart:R=()=>{},onProgress:w=()=>{},onFinish:ie=()=>{},onCancel:re=()=>{},onSuccess:U=()=>{},onError:M=()=>{},transformProps:F=()=>{},queryStringArrayFormat:N="brackets"}={}){let y=typeof e=="string"?E(e):e;if((I(r)||b)&&!(r instanceof FormData)&&(r=A(r)),!(r instanceof FormData)){let[n,o]=D(i,y,r,N);y=E(n),r=o}let L={url:y,method:i,data:r,replace:s,preserveScroll:l,preserveState:u,preserveURL:d,only:f,headers:c,errorBag:a,target:P,forceFormData:b,transformProps:F,queryStringArrayFormat:N,cancelled:!1,completed:!1,interrupted:!1};if(h(L)===!1||!j(L))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let G=this.createVisitId();this.activeVisit={...L,onCancelToken:p,onBefore:h,onStart:R,onProgress:w,onFinish:ie,onCancel:re,onSuccess:U,onError:M,queryStringArrayFormat:N,cancelToken:new AbortController},p({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),_(L),R(L),B({method:i,url:x(y).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,...f.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":f.join(",")}:{},...a&&a.length?{"X-Inertia-Error-Bag":a}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:n=>{r instanceof FormData&&(n.percentage=n.progress?Math.round(n.progress*100):0,W(n),w(n))}}).then(n=>{if(!this.isInertiaResponse(n))return Promise.reject({response:n});let o=n.data;n.headers["x-inertia-frame"]&&(P=n.headers["x-inertia-frame"]),f.length&&o.component===this.page.component&&(o.props={...this.page.props,...o.props}),l=this.resolvePreserveOption(l,o),u=this.resolvePreserveOption(u,o),u&&window.history.state?.rememberedState&&o.component===this.page.component&&(o.rememberedState=window.history.state.rememberedState);let m=y,V=E(o.url);return m.hash&&!V.hash&&x(m).href===V.href&&(V.hash=m.hash,o.url=V.href),F&&F(o.props),this.setPage(o,{target:P,visitId:G,replace:s,preserveScroll:l,preserveState:u,preserveURL:d})}).then(n=>{let o=n.props.errors||{};if(Object.keys(o).length>0){let m=a?o[a]?o[a]:{}:o;return H(m),M(m)}return K(n),U(n)}).catch(n=>{if(this.isInertiaResponse(n.response))return this.setPage(n.response.data,{visitId:G});if(this.isLocationVisitResponse(n.response)){let o=E(n.response.headers["x-inertia-location"]),m=y;m.hash&&!o.hash&&x(m).href===o.href&&(o.hash=m.hash),this.locationVisit(o,l===!0)}else if(n.response)q(n.response)&&z.show(n.response.data);else return Promise.reject(n)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(n=>{if(!B.isCancel(n)){let o=$(n);if(this.activeVisit&&this.finishVisit(this.activeVisit),o)return Promise.reject(n)}})}setPage(e,{visitId:i=this.createVisitId(),replace:r=!1,preserveURL:s=!1,preserveScroll:l=!1,preserveState:u=!1,target:d=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(f=>(i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},s&&(e.url=window.location.href),!d||d==="_top"||d==="_parent"||d==="main"?(r=r||E(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e)):e.target=d,this.swapComponent({component:f,page:e,preserveState:u}).then(()=>{l||this.resetScrollPositions(),r||S(e)})),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,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(),S(i)}))})}else{let i=E(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,preserveURL:!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"){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 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 oe={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 Y(t,e,i){let r={},s=0;function l(){let a=s+=1;return r[a]=[],a.toString()}function u(a){a===null||Object.keys(r).indexOf(a)===-1||(delete r[a],c())}function d(a,b=[]){a!==null&&Object.keys(r).indexOf(a)>-1&&(r[a]=b),c()}function f(){let a=e(""),b={...a?{title:`<title inertia="">${a}</title>`}:{}},P=Object.values(r).reduce((p,h)=>p.concat(h),[]).reduce((p,h)=>{if(h.indexOf("<")===-1)return p;if(h.indexOf("<title ")===0){let w=h.match(/(<title [^>]+>)(.*?)(<\/title>)/);return p.title=w?`${w[1]}${e(w[2])}${w[3]}`:h,p}let R=h.match(/ inertia="[^"]+"/);return R?p[R[0]]=h:p[Object.keys(p).length]=h,p},b);return Object.values(P)}function c(){t?i(f()):oe.update(f())}return c(),{forceUpdate:c,createProvider:function(){let a=l();return{update:b=>d(a,b),disconnect:()=>u(a)}}}}import g from"nprogress";var Z=null;function se(t){document.addEventListener("inertia:start",ae.bind(null,t)),document.addEventListener("inertia:progress",le),document.addEventListener("inertia:finish",ce)}function ae(t){Z=setTimeout(()=>g.start(),t)}function le(t){g.isStarted()&&t.detail.progress?.percentage&&g.set(Math.max(g.status,t.detail.progress.percentage/100*.9))}function ce(t){if(clearTimeout(Z),g.isStarted())t.detail.visit.completed?g.done():t.detail.visit.interrupted?g.set(0):t.detail.visit.cancelled&&(g.done(),g.remove());else return}function de(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
1
+ import{default as B}from"axios";function T(t,e){let i;return function(...r){clearTimeout(i),i=setTimeout(()=>t.apply(this,r),e)}}function v(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var j=t=>v("before",{cancelable:!0,detail:{visit:t}}),H=t=>v("error",{detail:{errors:t}}),$=t=>v("exception",{cancelable:!0,detail:{exception:t}}),k=t=>v("finish",{detail:{visit:t}}),q=t=>v("invalid",{cancelable:!0,detail:{response:t}}),S=t=>v("navigate",{detail:{page:t}}),W=t=>v("progress",{detail:{progress:t}}),_=t=>v("start",{detail:{visit:t}}),K=t=>v("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 r in t)Object.prototype.hasOwnProperty.call(t,r)&&J(e,X(i,r),t[r]);return e}function X(t,e){return t?t+"["+e+"]":e}function J(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(r=>J(t,X(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,"");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(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 ne from"deepmerge";import*as O from"qs";function E(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("/"),u=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),d=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(ne(O.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:r}),i={}),[[s?`${c.protocol}//${c.host}`:"",l?c.pathname:"",u?c.pathname.substring(1):"",d?c.search:"",f?c.hash:""].join(""),i]}function x(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: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("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,{preserveScroll:!0,preserveState:!0}).then(()=>S(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0),document.addEventListener("click",e=>{let i=e.target,r=i.closest("a"),s=i.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId;!r||r.rel=="external"||r.target=="_blank"||r.href&&r.href.startsWith(location.origin)&&(e.preventDefault(),e.stopPropagation(),this.visit(r.href,{method:r.dataset.method,target:r.dataset.target||s}))})}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 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){let i;e.props?i=e:(window.history.state.version=e.version,i=window.history.state),this.setPage(i,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),S(e)})}locationVisit(e,i){try{let r={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(r)),window.location.href=e.href,x(window.location).href===x(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(),S(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,k(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,k(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:u=!1,preserveURL:d=!1,only:f=[],headers:c={},errorBag:a="",forceFormData:b=!1,target:P=null,onCancelToken:p=()=>{},onBefore:h=()=>{},onStart:R=()=>{},onProgress:w=()=>{},onFinish:ie=()=>{},onCancel:re=()=>{},onSuccess:U=()=>{},onError:M=()=>{},transformProps:F=()=>{},queryStringArrayFormat:N="brackets"}={}){let y=typeof e=="string"?E(e):e;if((I(r)||b)&&!(r instanceof FormData)&&(r=A(r)),!(r instanceof FormData)){let[n,o]=D(i,y,r,N);y=E(n),r=o}let L={url:y,method:i,data:r,replace:s,preserveScroll:l,preserveState:u,preserveURL:d,only:f,headers:c,errorBag:a,target:P,forceFormData:b,transformProps:F,queryStringArrayFormat:N,cancelled:!1,completed:!1,interrupted:!1};if(h(L)===!1||!j(L))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let G=this.createVisitId();this.activeVisit={...L,onCancelToken:p,onBefore:h,onStart:R,onProgress:w,onFinish:ie,onCancel:re,onSuccess:U,onError:M,queryStringArrayFormat:N,cancelToken:new AbortController},p({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),_(L),R(L),B({method:i,url:x(y).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,...f.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":f.join(",")}:{},...a&&a.length?{"X-Inertia-Error-Bag":a}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:n=>{r instanceof FormData&&(n.percentage=n.progress?Math.round(n.progress*100):0,W(n),w(n))}}).then(n=>{if(!this.isInertiaResponse(n))return Promise.reject({response:n});let o=n.data;n.headers["x-inertia-frame"]&&(P=n.headers["x-inertia-frame"]),f.length&&o.component===this.page.component&&(o.props={...this.page.props,...o.props}),l=this.resolvePreserveOption(l,o),u=this.resolvePreserveOption(u,o),u&&window.history.state?.rememberedState&&o.component===this.page.component&&(o.rememberedState=window.history.state.rememberedState);let m=y,V=E(o.url);return m.hash&&!V.hash&&x(m).href===V.href&&(V.hash=m.hash,o.url=V.href),F&&F(o.props),this.setPage(o,{target:P,visitId:G,replace:s,preserveScroll:l,preserveState:u,preserveURL:d})}).then(n=>{let o=n.props.errors||{};if(Object.keys(o).length>0){let m=a?o[a]?o[a]:{}:o;return H(m),M(m)}return K(n),U(n)}).catch(n=>{if(this.isInertiaResponse(n.response))return this.setPage(n.response.data,{visitId:G});if(this.isLocationVisitResponse(n.response)){let o=E(n.response.headers["x-inertia-location"]),m=y;m.hash&&!o.hash&&x(m).href===o.href&&(o.hash=m.hash),this.locationVisit(o,l===!0)}else if(n.response)q(n.response)&&z.show(n.response.data);else return Promise.reject(n)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(n=>{if(!B.isCancel(n)){let o=$(n);if(this.activeVisit&&this.finishVisit(this.activeVisit),o)return Promise.reject(n)}})}setPage(e,{visitId:i=this.createVisitId(),replace:r=!1,preserveURL:s=!1,preserveScroll:l=!1,preserveState:u=!1,target:d=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(f=>(i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},s&&(e.url=window.location.href),!d||d==="_top"||d==="_parent"||d==="main"?(r=r||E(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e)):e.target=d,this.swapComponent({component:f,page:e,preserveState:u}).then(()=>{l||this.resetScrollPositions(),r||S(e)})),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,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(),S(i)}))})}else{let i=E(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,{preserveScroll:!0,preserveState:!0,preserveURL:!0,...e})}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"){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 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 oe={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 Y(t,e,i){let r={},s=0;function l(){let a=s+=1;return r[a]=[],a.toString()}function u(a){a===null||Object.keys(r).indexOf(a)===-1||(delete r[a],c())}function d(a,b=[]){a!==null&&Object.keys(r).indexOf(a)>-1&&(r[a]=b),c()}function f(){let a=e(""),b={...a?{title:`<title inertia="">${a}</title>`}:{}},P=Object.values(r).reduce((p,h)=>p.concat(h),[]).reduce((p,h)=>{if(h.indexOf("<")===-1)return p;if(h.indexOf("<title ")===0){let w=h.match(/(<title [^>]+>)(.*?)(<\/title>)/);return p.title=w?`${w[1]}${e(w[2])}${w[3]}`:h,p}let R=h.match(/ inertia="[^"]+"/);return R?p[R[0]]=h:p[Object.keys(p).length]=h,p},b);return Object.values(P)}function c(){t?i(f()):oe.update(f())}return c(),{forceUpdate:c,createProvider:function(){let a=l();return{update:b=>d(a,b),disconnect:()=>u(a)}}}}import g from"nprogress";var Z=null;function se(t){document.addEventListener("inertia:start",ae.bind(null,t)),document.addEventListener("inertia:progress",le),document.addEventListener("inertia:finish",ce)}function ae(t){Z=setTimeout(()=>g.start(),t)}function le(t){g.isStarted()&&t.detail.progress?.percentage&&g.set(Math.max(g.status,t.detail.progress.percentage/100*.9))}function ce(t){if(clearTimeout(Z),g.isStarted())t.detail.visit.completed?g.done():t.detail.visit.interrupted?g.set(0):t.detail.visit.cancelled&&(g.done(),g.remove());else return}function de(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
2
2
  #nprogress {
3
3
  pointer-events: none;
4
4
  }
@@ -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 { AxiosResponse, default as Axios } 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 Method,\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, { 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 document.addEventListener('click', (event) => {\n const target = event.target as Element\n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n \n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n event.preventDefault()\n event.stopPropagation()\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n })\n }\n })\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 let currentState\n\n /* This ensures we give precedence to a fresh state.\n 'page' here holds the props from the latest backend request.\n This prevents user A logging out and user B seeing sensitive data\n from user A by going back in the history (shared computer)\n */\n if (page.props) {\n currentState = page\n } else {\n window.history.state.version = page.version\n currentState = window.history.state\n }\n\n this.setPage(currentState, { 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 preserveURL = false,\n only = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n target = null,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n transformProps = () => {},\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 preserveURL, \n only,\n headers,\n errorBag,\n target,\n forceFormData,\n transformProps,\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 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 ...(only.length\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n 'X-Inertia-Partial-Data': only.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\n // if an X-Inertia-Frame header is present, use its value to override target frame id\n if (response.headers['x-inertia-frame']) {\n target = response.headers['x-inertia-frame']\n }\n\n if (only.length && pageResponse.component === this.page.component) {\n pageResponse.props = { ...this.page.props, ...pageResponse.props }\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 if (transformProps) {\n transformProps(pageResponse.props)\n }\n return this.setPage(pageResponse, { target, visitId, replace, preserveScroll, preserveState, preserveURL })\n })\n .then((page: Page) => {\n const errors = 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(page)\n return onSuccess(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 preserveURL = false,\n preserveScroll = false,\n preserveState = false,\n target = null,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveURL?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n target?: string | null\n } = {},\n ): Promise<Page> {\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 if (preserveURL) {\n page.url = window.location.href\n }\n if (!target || target === '_top' || target === '_parent' || target === 'main') {\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n }\n else {\n page.target = target\n }\n \n this.swapComponent({ component, page, preserveState }).then(() => {\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n return page\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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Exclude<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { ...options, preserveScroll: true, preserveState: true, preserveURL: true })\n }\n\n public replace(url: URL | string, options: Exclude<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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): 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: Exclude<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: Exclude<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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",
4
+ "sourcesContent": ["import { AxiosResponse, default as Axios } 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 Method,\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, { 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 document.addEventListener('click', (event) => {\n const target = event.target as Element\n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n \n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n event.preventDefault()\n event.stopPropagation()\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n })\n }\n })\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 let currentState\n\n /* This ensures we give precedence to a fresh state.\n 'page' here holds the props from the latest backend request.\n This prevents user A logging out and user B seeing sensitive data\n from user A by going back in the history (shared computer)\n */\n if (page.props) {\n currentState = page\n } else {\n window.history.state.version = page.version\n currentState = window.history.state\n }\n\n this.setPage(currentState, { 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 preserveURL = false,\n only = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n target = null,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n transformProps = () => {},\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 preserveURL, \n only,\n headers,\n errorBag,\n target,\n forceFormData,\n transformProps,\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 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 ...(only.length\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n 'X-Inertia-Partial-Data': only.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\n // if an X-Inertia-Frame header is present, use its value to override target frame id\n if (response.headers['x-inertia-frame']) {\n target = response.headers['x-inertia-frame']\n }\n\n if (only.length && pageResponse.component === this.page.component) {\n pageResponse.props = { ...this.page.props, ...pageResponse.props }\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 if (transformProps) {\n transformProps(pageResponse.props)\n }\n return this.setPage(pageResponse, { target, visitId, replace, preserveScroll, preserveState, preserveURL })\n })\n .then((page: Page) => {\n const errors = 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(page)\n return onSuccess(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 preserveURL = false,\n preserveScroll = false,\n preserveState = false,\n target = null,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveURL?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n target?: string | null\n } = {},\n ): Promise<Page> {\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 if (preserveURL) {\n page.url = window.location.href\n }\n if (!target || target === '_top' || target === '_parent' || target === 'main') {\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n }\n else {\n page.target = target\n }\n \n this.swapComponent({ component, page, preserveState }).then(() => {\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n return page\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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Exclude<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { preserveScroll: true, preserveState: true, preserveURL: true, ...options })\n }\n\n public replace(url: URL | string, options: Exclude<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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): 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: Exclude<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: Exclude<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
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", "Router", "initialPage", "resolveComponent", "swapComponent", "page", "fireNavigateEvent", "debounce", "event", "target", "anchorElement", "frameId", "region", "index", "scrollPosition", "currentState", "url", "preserveScroll", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "href", "method", "data", "replace", "preserveState", "preserveURL", "only", "headers", "errorBag", "forceFormData", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "transformProps", "queryStringArrayFormat", "hrefToUrl", "hasFiles", "objectToFormData", "_href", "_data", "mergeDataIntoQueryString", "fireBeforeEvent", "visitId", "fireStartEvent", "Axios", "progress", "fireProgressEvent", "pageResponse", "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"]
7
7
  }
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var le=Object.create;var I=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var pe=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var ue=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},K=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of de(e))!he.call(t,n)&&n!==i&&I(t,n,{get:()=>e[n],enumerable:!(r=ce(e,n))||r.enumerable});return t};var O=(t,e,i)=>(i=t!=null?le(pe(t)):{},K(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),fe=t=>K(I({},"__esModule",{value:!0}),t);var ye={};ue(ye,{createHeadManager:()=>j,hrefToUrl:()=>b,mergeDataIntoQueryString:()=>N,router:()=>xe,setupProgress:()=>H,shouldIntercept:()=>$,urlWithoutHash:()=>w});module.exports=fe(ye);var G=O(require("axios"),1);function T(t,e){let i;return function(...r){clearTimeout(i),i=setTimeout(()=>t.apply(this,r),e)}}function v(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var X=t=>v("before",{cancelable:!0,detail:{visit:t}}),J=t=>v("error",{detail:{errors:t}}),z=t=>v("exception",{cancelable:!0,detail:{exception:t}}),U=t=>v("finish",{detail:{visit:t}}),B=t=>v("invalid",{cancelable:!0,detail:{response:t}}),S=t=>v("navigate",{detail:{page:t}}),Q=t=>v("progress",{detail:{progress:t}}),Y=t=>v("start",{detail:{visit:t}}),Z=t=>v("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 M(t,e=new FormData,i=null){t=t||{};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&te(e,ee(i,r),t[r]);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(r=>te(t,ee(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,"");M(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(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 re=O(require("deepmerge"),1),F=O(require("qs"),1);function b(t){return new URL(t.toString(),window.location.toString())}function N(t,e,i,r="brackets"){let n=/^https?:\/\//.test(e.toString()),l=n||e.toString().startsWith("/"),u=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),d=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,re.default)(F.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:r}),i={}),[[n?`${c.protocol}//${c.host}`:"",l?c.pathname:"",u?c.pathname.substring(1):"",d?c.search:"",f?c.hash:""].join(""),i]}function w(t){return t=new URL(t.href),t.hash="",t}var ne=typeof window>"u",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("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,{preserveScroll:!0,preserveState:!0}).then(()=>S(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0),document.addEventListener("click",e=>{let i=e.target,r=i.closest("a"),n=i.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId;!r||r.rel=="external"||r.target=="_blank"||r.href&&r.href.startsWith(location.origin)&&(e.preventDefault(),e.stopPropagation(),this.visit(r.href,{method:r.dataset.method,target:r.dataset.target||n}))})}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 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){let i;e.props?i=e:(window.history.state.version=e.version,i=window.history.state),this.setPage(i,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),S(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(),S(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:n=!1,preserveScroll:l=!1,preserveState:u=!1,preserveURL:d=!1,only:f=[],headers:c={},errorBag:a="",forceFormData:E=!1,target:P=null,onCancelToken:p=()=>{},onBefore:h=()=>{},onStart:R=()=>{},onProgress:x=()=>{},onFinish:se=()=>{},onCancel:ae=()=>{},onSuccess:q=()=>{},onError:W=()=>{},transformProps:A=()=>{},queryStringArrayFormat:D="brackets"}={}){let y=typeof e=="string"?b(e):e;if((C(r)||E)&&!(r instanceof FormData)&&(r=M(r)),!(r instanceof FormData)){let[o,s]=N(i,y,r,D);y=b(o),r=s}let L={url:y,method:i,data:r,replace:n,preserveScroll:l,preserveState:u,preserveURL:d,only:f,headers:c,errorBag:a,target:P,forceFormData:E,transformProps:A,queryStringArrayFormat:D,cancelled:!1,completed:!1,interrupted:!1};if(h(L)===!1||!X(L))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let _=this.createVisitId();this.activeVisit={...L,onCancelToken:p,onBefore:h,onStart:R,onProgress:x,onFinish:se,onCancel:ae,onSuccess:q,onError:W,queryStringArrayFormat:D,cancelToken:new AbortController},p({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),Y(L),R(L),(0,G.default)({method:i,url:w(y).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,...f.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":f.join(",")}:{},...a&&a.length?{"X-Inertia-Error-Bag":a}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:o=>{r instanceof FormData&&(o.percentage=o.progress?Math.round(o.progress*100):0,Q(o),x(o))}}).then(o=>{if(!this.isInertiaResponse(o))return Promise.reject({response:o});let s=o.data;o.headers["x-inertia-frame"]&&(P=o.headers["x-inertia-frame"]),f.length&&s.component===this.page.component&&(s.props={...this.page.props,...s.props}),l=this.resolvePreserveOption(l,s),u=this.resolvePreserveOption(u,s),u&&window.history.state?.rememberedState&&s.component===this.page.component&&(s.rememberedState=window.history.state.rememberedState);let g=y,V=b(s.url);return g.hash&&!V.hash&&w(g).href===V.href&&(V.hash=g.hash,s.url=V.href),A&&A(s.props),this.setPage(s,{target:P,visitId:_,replace:n,preserveScroll:l,preserveState:u,preserveURL:d})}).then(o=>{let s=o.props.errors||{};if(Object.keys(s).length>0){let g=a?s[a]?s[a]:{}:s;return J(g),W(g)}return Z(o),q(o)}).catch(o=>{if(this.isInertiaResponse(o.response))return this.setPage(o.response.data,{visitId:_});if(this.isLocationVisitResponse(o.response)){let s=b(o.response.headers["x-inertia-location"]),g=y;g.hash&&!s.hash&&w(g).href===s.href&&(s.hash=g.hash),this.locationVisit(s,l===!0)}else if(o.response)B(o.response)&&ie.show(o.response.data);else return Promise.reject(o)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(o=>{if(!G.default.isCancel(o)){let s=z(o);if(this.activeVisit&&this.finishVisit(this.activeVisit),s)return Promise.reject(o)}})}setPage(e,{visitId:i=this.createVisitId(),replace:r=!1,preserveURL:n=!1,preserveScroll:l=!1,preserveState:u=!1,target:d=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(f=>(i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},n&&(e.url=window.location.href),!d||d==="_top"||d==="_parent"||d==="main"?(r=r||b(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e)):e.target=d,this.swapComponent({component:f,page:e,preserveState:u}).then(()=>{l||this.resetScrollPositions(),r||S(e)})),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,r=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(n=>{r===this.visitId&&(this.page=i,this.swapComponent({component:n,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),S(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,preserveURL:!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"){ne||this.replaceState({...this.page,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!ne)return window.history.state?.rememberedState?.[e]}on(e,i){let r=n=>{let l=i(n);n.cancelable&&!n.defaultPrevented&&l===!1&&n.preventDefault()};return document.addEventListener(`inertia:${e}`,r),()=>document.removeEventListener(`inertia:${e}`,r)}};var me={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(n=>{r.setAttribute(n,i.getAttribute(n)||"")}),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 n=this.findMatchingElementIndex(r,e);if(n===-1){r?.parentNode?.removeChild(r);return}let l=e.splice(n,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={},n=0;function l(){let a=n+=1;return r[a]=[],a.toString()}function u(a){a===null||Object.keys(r).indexOf(a)===-1||(delete r[a],c())}function d(a,E=[]){a!==null&&Object.keys(r).indexOf(a)>-1&&(r[a]=E),c()}function f(){let a=e(""),E={...a?{title:`<title inertia="">${a}</title>`}:{}},P=Object.values(r).reduce((p,h)=>p.concat(h),[]).reduce((p,h)=>{if(h.indexOf("<")===-1)return p;if(h.indexOf("<title ")===0){let x=h.match(/(<title [^>]+>)(.*?)(<\/title>)/);return p.title=x?`${x[1]}${e(x[2])}${x[3]}`:h,p}let R=h.match(/ inertia="[^"]+"/);return R?p[R[0]]=h:p[Object.keys(p).length]=h,p},E);return Object.values(P)}function c(){t?i(f()):me.update(f())}return c(),{forceUpdate:c,createProvider:function(){let a=l();return{update:E=>d(a,E),disconnect:()=>u(a)}}}}var m=O(require("nprogress"),1),oe=null;function ge(t){document.addEventListener("inertia:start",ve.bind(null,t)),document.addEventListener("inertia:progress",be),document.addEventListener("inertia:finish",Ee)}function ve(t){oe=setTimeout(()=>m.default.start(),t)}function be(t){m.default.isStarted()&&t.detail.progress?.percentage&&m.default.set(Math.max(m.default.status,t.detail.progress.percentage/100*.9))}function Ee(t){if(clearTimeout(oe),m.default.isStarted())t.detail.visit.completed?m.default.done():t.detail.visit.interrupted?m.default.set(0):t.detail.visit.cancelled&&(m.default.done(),m.default.remove());else return}function we(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
1
+ "use strict";var le=Object.create;var I=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var pe=Object.getPrototypeOf,he=Object.prototype.hasOwnProperty;var ue=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},K=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of de(e))!he.call(t,n)&&n!==i&&I(t,n,{get:()=>e[n],enumerable:!(r=ce(e,n))||r.enumerable});return t};var O=(t,e,i)=>(i=t!=null?le(pe(t)):{},K(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),fe=t=>K(I({},"__esModule",{value:!0}),t);var ye={};ue(ye,{createHeadManager:()=>j,hrefToUrl:()=>b,mergeDataIntoQueryString:()=>N,router:()=>xe,setupProgress:()=>H,shouldIntercept:()=>$,urlWithoutHash:()=>w});module.exports=fe(ye);var G=O(require("axios"),1);function T(t,e){let i;return function(...r){clearTimeout(i),i=setTimeout(()=>t.apply(this,r),e)}}function v(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var X=t=>v("before",{cancelable:!0,detail:{visit:t}}),J=t=>v("error",{detail:{errors:t}}),z=t=>v("exception",{cancelable:!0,detail:{exception:t}}),U=t=>v("finish",{detail:{visit:t}}),B=t=>v("invalid",{cancelable:!0,detail:{response:t}}),S=t=>v("navigate",{detail:{page:t}}),Q=t=>v("progress",{detail:{progress:t}}),Y=t=>v("start",{detail:{visit:t}}),Z=t=>v("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 M(t,e=new FormData,i=null){t=t||{};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&te(e,ee(i,r),t[r]);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(r=>te(t,ee(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,"");M(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(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 re=O(require("deepmerge"),1),F=O(require("qs"),1);function b(t){return new URL(t.toString(),window.location.toString())}function N(t,e,i,r="brackets"){let n=/^https?:\/\//.test(e.toString()),l=n||e.toString().startsWith("/"),u=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),d=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,re.default)(F.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:r}),i={}),[[n?`${c.protocol}//${c.host}`:"",l?c.pathname:"",u?c.pathname.substring(1):"",d?c.search:"",f?c.hash:""].join(""),i]}function w(t){return t=new URL(t.href),t.hash="",t}var ne=typeof window>"u",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("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,{preserveScroll:!0,preserveState:!0}).then(()=>S(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0),document.addEventListener("click",e=>{let i=e.target,r=i.closest("a"),n=i.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId;!r||r.rel=="external"||r.target=="_blank"||r.href&&r.href.startsWith(location.origin)&&(e.preventDefault(),e.stopPropagation(),this.visit(r.href,{method:r.dataset.method,target:r.dataset.target||n}))})}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 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){let i;e.props?i=e:(window.history.state.version=e.version,i=window.history.state),this.setPage(i,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),S(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(),S(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:n=!1,preserveScroll:l=!1,preserveState:u=!1,preserveURL:d=!1,only:f=[],headers:c={},errorBag:a="",forceFormData:E=!1,target:P=null,onCancelToken:p=()=>{},onBefore:h=()=>{},onStart:R=()=>{},onProgress:x=()=>{},onFinish:se=()=>{},onCancel:ae=()=>{},onSuccess:q=()=>{},onError:W=()=>{},transformProps:A=()=>{},queryStringArrayFormat:D="brackets"}={}){let y=typeof e=="string"?b(e):e;if((C(r)||E)&&!(r instanceof FormData)&&(r=M(r)),!(r instanceof FormData)){let[o,s]=N(i,y,r,D);y=b(o),r=s}let L={url:y,method:i,data:r,replace:n,preserveScroll:l,preserveState:u,preserveURL:d,only:f,headers:c,errorBag:a,target:P,forceFormData:E,transformProps:A,queryStringArrayFormat:D,cancelled:!1,completed:!1,interrupted:!1};if(h(L)===!1||!X(L))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions();let _=this.createVisitId();this.activeVisit={...L,onCancelToken:p,onBefore:h,onStart:R,onProgress:x,onFinish:se,onCancel:ae,onSuccess:q,onError:W,queryStringArrayFormat:D,cancelToken:new AbortController},p({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),Y(L),R(L),(0,G.default)({method:i,url:w(y).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,...f.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":f.join(",")}:{},...a&&a.length?{"X-Inertia-Error-Bag":a}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:o=>{r instanceof FormData&&(o.percentage=o.progress?Math.round(o.progress*100):0,Q(o),x(o))}}).then(o=>{if(!this.isInertiaResponse(o))return Promise.reject({response:o});let s=o.data;o.headers["x-inertia-frame"]&&(P=o.headers["x-inertia-frame"]),f.length&&s.component===this.page.component&&(s.props={...this.page.props,...s.props}),l=this.resolvePreserveOption(l,s),u=this.resolvePreserveOption(u,s),u&&window.history.state?.rememberedState&&s.component===this.page.component&&(s.rememberedState=window.history.state.rememberedState);let g=y,V=b(s.url);return g.hash&&!V.hash&&w(g).href===V.href&&(V.hash=g.hash,s.url=V.href),A&&A(s.props),this.setPage(s,{target:P,visitId:_,replace:n,preserveScroll:l,preserveState:u,preserveURL:d})}).then(o=>{let s=o.props.errors||{};if(Object.keys(s).length>0){let g=a?s[a]?s[a]:{}:s;return J(g),W(g)}return Z(o),q(o)}).catch(o=>{if(this.isInertiaResponse(o.response))return this.setPage(o.response.data,{visitId:_});if(this.isLocationVisitResponse(o.response)){let s=b(o.response.headers["x-inertia-location"]),g=y;g.hash&&!s.hash&&w(g).href===s.href&&(s.hash=g.hash),this.locationVisit(s,l===!0)}else if(o.response)B(o.response)&&ie.show(o.response.data);else return Promise.reject(o)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(o=>{if(!G.default.isCancel(o)){let s=z(o);if(this.activeVisit&&this.finishVisit(this.activeVisit),s)return Promise.reject(o)}})}setPage(e,{visitId:i=this.createVisitId(),replace:r=!1,preserveURL:n=!1,preserveScroll:l=!1,preserveState:u=!1,target:d=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(f=>(i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},n&&(e.url=window.location.href),!d||d==="_top"||d==="_parent"||d==="main"?(r=r||b(e.url).href===window.location.href,r?this.replaceState(e):this.pushState(e)):e.target=d,this.swapComponent({component:f,page:e,preserveState:u}).then(()=>{l||this.resetScrollPositions(),r||S(e)})),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,r=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(n=>{r===this.visitId&&(this.page=i,this.swapComponent({component:n,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),S(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,{preserveScroll:!0,preserveState:!0,preserveURL:!0,...e})}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"){ne||this.replaceState({...this.page,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!ne)return window.history.state?.rememberedState?.[e]}on(e,i){let r=n=>{let l=i(n);n.cancelable&&!n.defaultPrevented&&l===!1&&n.preventDefault()};return document.addEventListener(`inertia:${e}`,r),()=>document.removeEventListener(`inertia:${e}`,r)}};var me={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(n=>{r.setAttribute(n,i.getAttribute(n)||"")}),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 n=this.findMatchingElementIndex(r,e);if(n===-1){r?.parentNode?.removeChild(r);return}let l=e.splice(n,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={},n=0;function l(){let a=n+=1;return r[a]=[],a.toString()}function u(a){a===null||Object.keys(r).indexOf(a)===-1||(delete r[a],c())}function d(a,E=[]){a!==null&&Object.keys(r).indexOf(a)>-1&&(r[a]=E),c()}function f(){let a=e(""),E={...a?{title:`<title inertia="">${a}</title>`}:{}},P=Object.values(r).reduce((p,h)=>p.concat(h),[]).reduce((p,h)=>{if(h.indexOf("<")===-1)return p;if(h.indexOf("<title ")===0){let x=h.match(/(<title [^>]+>)(.*?)(<\/title>)/);return p.title=x?`${x[1]}${e(x[2])}${x[3]}`:h,p}let R=h.match(/ inertia="[^"]+"/);return R?p[R[0]]=h:p[Object.keys(p).length]=h,p},E);return Object.values(P)}function c(){t?i(f()):me.update(f())}return c(),{forceUpdate:c,createProvider:function(){let a=l();return{update:E=>d(a,E),disconnect:()=>u(a)}}}}var m=O(require("nprogress"),1),oe=null;function ge(t){document.addEventListener("inertia:start",ve.bind(null,t)),document.addEventListener("inertia:progress",be),document.addEventListener("inertia:finish",Ee)}function ve(t){oe=setTimeout(()=>m.default.start(),t)}function be(t){m.default.isStarted()&&t.detail.progress?.percentage&&m.default.set(Math.max(m.default.status,t.detail.progress.percentage/100*.9))}function Ee(t){if(clearTimeout(oe),m.default.isStarted())t.detail.visit.completed?m.default.done():t.detail.visit.interrupted?m.default.set(0):t.detail.visit.cancelled&&(m.default.done(),m.default.remove());else return}function we(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
2
2
  #nprogress {
3
3
  pointer-events: none;
4
4
  }
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 { AxiosResponse, default as Axios } 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 Method,\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, { 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 document.addEventListener('click', (event) => {\n const target = event.target as Element\n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n \n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n event.preventDefault()\n event.stopPropagation()\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n })\n }\n })\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 let currentState\n\n /* This ensures we give precedence to a fresh state.\n 'page' here holds the props from the latest backend request.\n This prevents user A logging out and user B seeing sensitive data\n from user A by going back in the history (shared computer)\n */\n if (page.props) {\n currentState = page\n } else {\n window.history.state.version = page.version\n currentState = window.history.state\n }\n\n this.setPage(currentState, { 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 preserveURL = false,\n only = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n target = null,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n transformProps = () => {},\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 preserveURL, \n only,\n headers,\n errorBag,\n target,\n forceFormData,\n transformProps,\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 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 ...(only.length\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n 'X-Inertia-Partial-Data': only.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\n // if an X-Inertia-Frame header is present, use its value to override target frame id\n if (response.headers['x-inertia-frame']) {\n target = response.headers['x-inertia-frame']\n }\n\n if (only.length && pageResponse.component === this.page.component) {\n pageResponse.props = { ...this.page.props, ...pageResponse.props }\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 if (transformProps) {\n transformProps(pageResponse.props)\n }\n return this.setPage(pageResponse, { target, visitId, replace, preserveScroll, preserveState, preserveURL })\n })\n .then((page: Page) => {\n const errors = 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(page)\n return onSuccess(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 preserveURL = false,\n preserveScroll = false,\n preserveState = false,\n target = null,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveURL?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n target?: string | null\n } = {},\n ): Promise<Page> {\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 if (preserveURL) {\n page.url = window.location.href\n }\n if (!target || target === '_top' || target === '_parent' || target === 'main') {\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n }\n else {\n page.target = target\n }\n \n this.swapComponent({ component, page, preserveState }).then(() => {\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n return page\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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Exclude<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { ...options, preserveScroll: true, preserveState: true, preserveURL: true })\n }\n\n public replace(url: URL | string, options: Exclude<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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): 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: Exclude<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: Exclude<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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",
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 { AxiosResponse, default as Axios } 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 Method,\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, { 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 document.addEventListener('click', (event) => {\n const target = event.target as Element\n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n \n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n event.preventDefault()\n event.stopPropagation()\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n })\n }\n })\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 let currentState\n\n /* This ensures we give precedence to a fresh state.\n 'page' here holds the props from the latest backend request.\n This prevents user A logging out and user B seeing sensitive data\n from user A by going back in the history (shared computer)\n */\n if (page.props) {\n currentState = page\n } else {\n window.history.state.version = page.version\n currentState = window.history.state\n }\n\n this.setPage(currentState, { 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 preserveURL = false,\n only = [],\n headers = {},\n errorBag = '',\n forceFormData = false,\n target = null,\n onCancelToken = () => {},\n onBefore = () => {},\n onStart = () => {},\n onProgress = () => {},\n onFinish = () => {},\n onCancel = () => {},\n onSuccess = () => {},\n onError = () => {},\n transformProps = () => {},\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 preserveURL, \n only,\n headers,\n errorBag,\n target,\n forceFormData,\n transformProps,\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 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 ...(only.length\n ? {\n 'X-Inertia-Partial-Component': this.page.component,\n 'X-Inertia-Partial-Data': only.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\n // if an X-Inertia-Frame header is present, use its value to override target frame id\n if (response.headers['x-inertia-frame']) {\n target = response.headers['x-inertia-frame']\n }\n\n if (only.length && pageResponse.component === this.page.component) {\n pageResponse.props = { ...this.page.props, ...pageResponse.props }\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 if (transformProps) {\n transformProps(pageResponse.props)\n }\n return this.setPage(pageResponse, { target, visitId, replace, preserveScroll, preserveState, preserveURL })\n })\n .then((page: Page) => {\n const errors = 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(page)\n return onSuccess(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 preserveURL = false,\n preserveScroll = false,\n preserveState = false,\n target = null,\n }: {\n visitId?: VisitId\n replace?: boolean\n preserveURL?: boolean\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n target?: string | null\n } = {},\n ): Promise<Page> {\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 if (preserveURL) {\n page.url = window.location.href\n }\n if (!target || target === '_top' || target === '_parent' || target === 'main') {\n replace = replace || hrefToUrl(page.url).href === window.location.href\n replace ? this.replaceState(page) : this.pushState(page)\n }\n else {\n page.target = target\n }\n \n this.swapComponent({ component, page, preserveState }).then(() => {\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(page)\n }\n })\n }\n return page\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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { ...options, method: 'get', data })\n }\n\n public reload(options: Exclude<VisitOptions, 'preserveScroll' | 'preserveState'> = {}): void {\n return this.visit(window.location.href, { preserveScroll: true, preserveState: true, preserveURL: true, ...options })\n }\n\n public replace(url: URL | string, options: Exclude<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(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): void {\n return this.visit(url, { preserveState: true, ...options, method: 'post', data })\n }\n\n public put(\n url: URL | string,\n data: RequestPayload = {},\n options: Exclude<VisitOptions, 'method' | 'data'> = {},\n ): 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: Exclude<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: Exclude<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
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", "Router", "initialPage", "resolveComponent", "swapComponent", "page", "fireNavigateEvent", "debounce", "event", "target", "anchorElement", "frameId", "region", "index", "scrollPosition", "currentState", "url", "preserveScroll", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "href", "method", "data", "replace", "preserveState", "preserveURL", "only", "headers", "errorBag", "forceFormData", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "transformProps", "queryStringArrayFormat", "hrefToUrl", "hasFiles", "objectToFormData", "_href", "_data", "mergeDataIntoQueryString", "fireBeforeEvent", "visitId", "fireStartEvent", "Axios", "progress", "fireProgressEvent", "pageResponse", "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"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inertiax-core",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "license": "MIT",
5
5
  "description": "A framework for creating server-driven single page apps.",
6
6
  "contributors": [