inertiax-core 2.4.1 → 2.5.0
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 +1 -1
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{default as Y}from"axios";function T(i,e){let t;return function(...n){clearTimeout(t),t=setTimeout(()=>i.apply(this,n),e)}}function b(i,e){return document.dispatchEvent(new CustomEvent(`inertia:${i}`,e))}var $=i=>b("before",{cancelable:!0,detail:{visit:i}}),q=i=>b("error",{detail:{errors:i}}),W=i=>b("exception",{cancelable:!0,detail:{exception:i}}),I=i=>b("finish",{detail:{visit:i}}),_=i=>b("invalid",{cancelable:!0,detail:{response:i}}),S=i=>b("navigate",{detail:{page:i}}),K=i=>b("progress",{detail:{progress:i}}),X=i=>b("start",{detail:{visit:i}}),J=i=>b("success",{detail:{page:i}});function O(i){return i instanceof File||i instanceof Blob||i instanceof FileList&&i.length>0||i instanceof FormData&&Array.from(i.values()).some(e=>O(e))||typeof i=="object"&&i!==null&&Object.values(i).some(e=>O(e))}function A(i,e=new FormData,t=null){i=i||{};for(let n in i)Object.prototype.hasOwnProperty.call(i,n)&&B(e,z(t,n),i[n]);return e}function z(i,e){return i?i+"["+e+"]":e}function B(i,e,t){if(Array.isArray(t))return Array.from(t.keys()).forEach(n=>B(i,z(e,n.toString()),t[n]));if(t instanceof Date)return i.append(e,t.toISOString());if(t instanceof File)return i.append(e,t,t.name);if(t instanceof Blob)return i.append(e,t);if(typeof t=="boolean")return i.append(e,t?"1":"0");if(typeof t=="string")return i.append(e,t);if(typeof t=="number")return i.append(e,`${t}`);if(t==null)return i.append(e,"");A(t,i,e)}var Q={modal:null,listener:null,show(i){typeof i=="object"&&(i=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(i)}`);let e=document.createElement("html");e.innerHTML=i,e.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let t=document.createElement("iframe");if(t.style.backgroundColor="white",t.style.borderRadius="5px",t.style.width="100%",t.style.height="100%",this.modal.appendChild(t),document.body.prepend(this.modal),document.body.style.overflow="hidden",!t.contentWindow)throw new Error("iframe not yet ready.");t.contentWindow.document.open(),t.contentWindow.document.write(e.outerHTML),t.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(i){i.keyCode===27&&this.hide()}};import se from"deepmerge";import*as C from"qs";function E(i){return new URL(i.toString(),window.location.toString())}function D(i,e,t,n="brackets"){let o=/^https?:\/\//.test(e.toString()),l=o||e.toString().startsWith("/"),d=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),p=e.toString().includes("?")||i==="get"&&Object.keys(t).length,h=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return i==="get"&&Object.keys(t).length&&(c.search=C.stringify(se(C.parse(c.search,{ignoreQueryPrefix:!0}),t),{encodeValuesOnly:!0,arrayFormat:n}),t={}),[[o?`${c.protocol}//${c.host}`:"",l?c.pathname:"",d?c.pathname.substring(1):"",p?c.search:"",h?c.hash:""].join(""),t]}function w(i){return i=new URL(i.href),i.hash="",i}var Z=typeof window>"u",F=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:t,swapComponent:n}){this.page=e,this.resolveComponent=t,this.swapComponent=n,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{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 t=e.target;if(t.closest("[data-inertia-ignore]"))return;let n=t.closest("a"),o=t.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId,l=t.closest("[data-hint]")?.dataset.hint,d=t.closest("[data-component]")?.dataset.component;if(!(!n||n.rel=="external"||n.target=="_blank")&&n.href&&n.href.startsWith(location.origin)){let p=n.attributes.getNamedItem("href")?.value,h=n.dataset["preserve-scroll"],c=n.dataset["preserve-state"];if(e.preventDefault(),e.stopPropagation(),p?.startsWith("#")){let s=this.page;s.url=n.href,this.setPage(s,{preserveScroll:h,preserveState:c}).then(()=>{S(s)})}else this.visit(n.href,{method:n.dataset.method,target:n.dataset.target||o,hint:l,component:d,preserveScroll:h,preserveState:c})}})}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...history.state,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,t)=>{let n=this.page.scrollRegions[t];if(n)typeof e.scrollTo=="function"?e.scrollTo(n.left,n.top):(e.scrollTop=n.top,e.scrollLeft=n.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){let t;e.props?t=e:(window.history.state.version=e.version,t=window.history.state),this.setPage(t,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),S(e)})}locationVisit(e,t){try{let n={preserveScroll:t};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(n)),window.location.href=e.href,w(window.location).href===w(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let t=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:t.preserveScroll,preserveState:!0}).then(()=>{t.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:t=!1,interrupted:n=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=t,e.interrupted=n,I(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,I(e),e.onFinish(e))}resolvePreserveOption(e,t){return typeof e=="function"?e(t):e==="errors"?Object.keys(t.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:t="get",data:n={},replace:o=!1,preserveScroll:l=!1,preserveState:d=!1,preserveURL:p=!1,only:h=[],headers:c={},errorBag:s="",forceFormData:y=!1,target:u=null,component:f=null,hint:m=f,onCancelToken:R=()=>{},onBefore:P=()=>{},onStart:M=()=>{},onProgress:U=()=>{},onFinish:re=()=>{},onCancel:oe=()=>{},onSuccess:G=()=>{},onError:H=()=>{},transformProps:N=()=>{},queryStringArrayFormat:k="brackets"}={}){let x=typeof e=="string"?E(e):e;if((O(n)||y)&&!(n instanceof FormData)&&(n=A(n)),!(n instanceof FormData)){let[r,a]=D(t,x,n,k);x=E(r),n=a}let L={url:x,method:t,data:n,replace:o,preserveScroll:l,preserveState:d,preserveURL:p,only:h,headers:c,errorBag:s,target:u,hint:m,component:f,forceFormData:y,transformProps:N,queryStringArrayFormat:k,noProgress:!1,cancelled:!1,completed:!1,interrupted:!1};if(P(L)===!1||!$(L))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions(),L.target&&(L.noProgress=!0);let j=this.createVisitId();if(this.activeVisit={...L,onCancelToken:R,onBefore:P,onStart:M,onProgress:U,onFinish:re,onCancel:oe,onSuccess:G,onError:H,queryStringArrayFormat:k,cancelToken:new AbortController},R({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),m&&Promise.resolve(this.resolveComponent(m)).then(r=>{u&&u!=="_top"&&u!=="_parent"&&u!=="main"?this.swapComponent({component:r,page:{...this.page,target:u,url:w(x).pathname},preserveState:d}):this.swapComponent({component:r,page:{...this.page,url:w(x).pathname},preserveState:d})}),X(L),f){(!u||u==="_top"||u==="_parent"||u==="main")&&(o=o||E(this.page.url).href===window.location.href,o?this.replaceState(this.page):this.pushState(this.page)),l||this.resetScrollPositions(),o||S(this.page),I(this.activeVisit);return}M(L),Y({method:t,url:w(x).href,data:t==="get"?{}:n,params:t==="get"?n:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...h.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":h.join(",")}:{},...s&&s.length?{"X-Inertia-Error-Bag":s}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:r=>{n instanceof FormData&&(r.percentage=r.progress?Math.round(r.progress*100):0,K(r),U(r))}}).then(r=>{if(!this.isInertiaResponse(r))return Promise.reject({response:r});let a=r.data;r.headers["x-inertia-frame"]&&(u=r.headers["x-inertia-frame"]),h.length&&a.component===this.page.component&&(a.props={...this.page.props,...a.props}),l=this.resolvePreserveOption(l,a),d=this.resolvePreserveOption(d,a),d&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let g=x,V=E(a.url);return g.hash&&!V.hash&&w(g).href===V.href&&(V.hash=g.hash,a.url=V.href),N&&N(a.props),this.setPage(a,{target:u,visitId:j,replace:o,preserveScroll:l,preserveState:d,preserveURL:p})}).then(r=>{let a=r.props.errors||{};if(Object.keys(a).length>0){let g=s?a[s]?a[s]:{}:a;return q(g),H(g)}return J(r),G(r)}).catch(r=>{if(this.isInertiaResponse(r.response))return this.setPage(r.response.data,{visitId:j});if(this.isLocationVisitResponse(r.response)){let a=E(r.response.headers["x-inertia-location"]),g=x;g.hash&&!a.hash&&w(g).href===a.href&&(a.hash=g.hash),this.locationVisit(a,l===!0)}else if(r.response)_(r.response)&&Q.show(r.response.data);else return Promise.reject(r)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(r=>{if(!Y.isCancel(r)){let a=W(r);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(r)}})}setPage(e,{visitId:t=this.createVisitId(),replace:n=!1,preserveURL:o=!1,preserveScroll:l=!1,preserveState:d=!1,target:p=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>(t===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},o&&(e.url=window.location.href),!p||p==="_top"||p==="_parent"||p==="main"?(n=n||E(e.url).href===window.location.href,n?this.replaceState(e):this.pushState(e)):e.target=p,this.swapComponent({component:h,page:e,preserveState:d}).then(()=>{l||this.resetScrollPositions(),n||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&&e.state.component){let t=e.state,n=this.createVisitId();Promise.resolve(this.resolveComponent(t.component)).then(o=>{n===this.visitId&&(this.page=t,this.swapComponent({component:o,page:t,preserveState:!1}).then(()=>{this.restoreScrollPositions(),S(t)}))})}else{if(!this.page.url)return;let t=E(this.page.url);t.hash=window.location.hash,this.replaceState({...history.state,url:t.href}),this.resetScrollPositions()}}get(e,t={},n={}){return this.visit(e,{...n,method:"get",data:t})}reload(e={}){return this.visit(window.location.href,{preserveScroll:!0,preserveState:!0,preserveURL:!0,...e})}replace(e,t={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${t.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...t,replace:!0})}post(e,t={},n={}){return this.visit(e,{preserveState:!0,...n,method:"post",data:t})}put(e,t={},n={}){return this.visit(e,{preserveState:!0,...n,method:"put",data:t})}patch(e,t={},n={}){return this.visit(e,{preserveState:!0,...n,method:"patch",data:t})}delete(e,t={}){return this.visit(e,{preserveState:!0,...t,method:"delete"})}remember(e,t="default"){Z||this.replaceState({...history.state,rememberedState:{...this.page?.rememberedState,[t]:e}})}restore(e="default"){if(!Z)return window.history.state?.rememberedState?.[e]}on(e,t){let n=o=>{let l=t(o);o.cancelable&&!o.defaultPrevented&&l===!1&&o.preventDefault()};return document.addEventListener(`inertia:${e}`,n),()=>document.removeEventListener(`inertia:${e}`,n)}};var ae={buildDOMElement(i){let e=document.createElement("template");e.innerHTML=i;let t=e.content.firstChild;if(!i.startsWith("<script "))return t;let n=document.createElement("script");return n.innerHTML=t.innerHTML,t.getAttributeNames().forEach(o=>{n.setAttribute(o,t.getAttribute(o)||"")}),n},isInertiaManagedElement(i){return i.nodeType===Node.ELEMENT_NODE&&i.getAttribute("inertia")!==null},findMatchingElementIndex(i,e){let t=i.getAttribute("inertia");return t!==null?e.findIndex(n=>n.getAttribute("inertia")===t):-1},update:T(function(i){let e=i.map(n=>this.buildDOMElement(n));Array.from(document.head.childNodes).filter(n=>this.isInertiaManagedElement(n)).forEach(n=>{let o=this.findMatchingElementIndex(n,e);if(o===-1){n?.parentNode?.removeChild(n);return}let l=e.splice(o,1)[0];l&&!n.isEqualNode(l)&&n?.parentNode?.replaceChild(l,n)}),e.forEach(n=>document.head.appendChild(n))},1)};function ee(i,e,t){let n={},o=0;function l(){let s=o+=1;return n[s]=[],s.toString()}function d(s){s===null||Object.keys(n).indexOf(s)===-1||(delete n[s],c())}function p(s,y=[]){s!==null&&Object.keys(n).indexOf(s)>-1&&(n[s]=y),c()}function h(){let s=e(""),y={...s?{title:`<title inertia="">${s}</title>`}:{}},u=Object.values(n).reduce((f,m)=>f.concat(m),[]).reduce((f,m)=>{if(m.indexOf("<")===-1)return f;if(m.indexOf("<title ")===0){let P=m.match(/(<title [^>]+>)(.*?)(<\/title>)/);return f.title=P?`${P[1]}${e(P[2])}${P[3]}`:m,f}let R=m.match(/ inertia="[^"]+"/);return R?f[R[0]]=m:f[Object.keys(f).length]=m,f},y);return Object.values(u)}function c(){i?t(h()):ae.update(h())}return c(),{forceUpdate:c,createProvider:function(){let s=l();return{update:y=>p(s,y),disconnect:()=>d(s)}}}}import v from"nprogress";var te=null;function le(i){document.addEventListener("inertia:start",ce(i)),document.addEventListener("inertia:progress",de),document.addEventListener("inertia:finish",pe)}function ce(i){return function(e){e.detail.visit.noProgress||(te=setTimeout(()=>v.start(),i))}}function de(i){v.isStarted()&&i.detail.progress?.percentage&&v.set(Math.max(v.status,i.detail.progress.percentage/100*.9))}function pe(i){if(clearTimeout(te),v.isStarted())i.detail.visit.completed?v.done():i.detail.visit.interrupted?v.set(0):i.detail.visit.cancelled&&(v.done(),v.remove());else return}function he(i){let e=document.createElement("style");e.type="text/css",e.textContent=`
|
|
1
|
+
import{default as Y}from"axios";function T(i,e){let t;return function(...n){clearTimeout(t),t=setTimeout(()=>i.apply(this,n),e)}}function b(i,e){return document.dispatchEvent(new CustomEvent(`inertia:${i}`,e))}var $=i=>b("before",{cancelable:!0,detail:{visit:i}}),q=i=>b("error",{detail:{errors:i}}),W=i=>b("exception",{cancelable:!0,detail:{exception:i}}),I=i=>b("finish",{detail:{visit:i}}),_=i=>b("invalid",{cancelable:!0,detail:{response:i}}),P=i=>b("navigate",{detail:{page:i}}),K=i=>b("progress",{detail:{progress:i}}),X=i=>b("start",{detail:{visit:i}}),J=i=>b("success",{detail:{page:i}});function O(i){return i instanceof File||i instanceof Blob||i instanceof FileList&&i.length>0||i instanceof FormData&&Array.from(i.values()).some(e=>O(e))||typeof i=="object"&&i!==null&&Object.values(i).some(e=>O(e))}function A(i,e=new FormData,t=null){i=i||{};for(let n in i)Object.prototype.hasOwnProperty.call(i,n)&&B(e,z(t,n),i[n]);return e}function z(i,e){return i?i+"["+e+"]":e}function B(i,e,t){if(Array.isArray(t))return Array.from(t.keys()).forEach(n=>B(i,z(e,n.toString()),t[n]));if(t instanceof Date)return i.append(e,t.toISOString());if(t instanceof File)return i.append(e,t,t.name);if(t instanceof Blob)return i.append(e,t);if(typeof t=="boolean")return i.append(e,t?"1":"0");if(typeof t=="string")return i.append(e,t);if(typeof t=="number")return i.append(e,`${t}`);if(t==null)return i.append(e,"");A(t,i,e)}var Q={modal:null,listener:null,show(i){typeof i=="object"&&(i=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(i)}`);let e=document.createElement("html");e.innerHTML=i,e.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let t=document.createElement("iframe");if(t.style.backgroundColor="white",t.style.borderRadius="5px",t.style.width="100%",t.style.height="100%",this.modal.appendChild(t),document.body.prepend(this.modal),document.body.style.overflow="hidden",!t.contentWindow)throw new Error("iframe not yet ready.");t.contentWindow.document.open(),t.contentWindow.document.write(e.outerHTML),t.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(i){i.keyCode===27&&this.hide()}};import se from"deepmerge";import*as C from"qs";function E(i){return new URL(i.toString(),window.location.toString())}function D(i,e,t,n="brackets"){let o=/^https?:\/\//.test(e.toString()),l=o||e.toString().startsWith("/"),d=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),p=e.toString().includes("?")||i==="get"&&Object.keys(t).length,h=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return i==="get"&&Object.keys(t).length&&(c.search=C.stringify(se(C.parse(c.search,{ignoreQueryPrefix:!0}),t),{encodeValuesOnly:!0,arrayFormat:n}),t={}),[[o?`${c.protocol}//${c.host}`:"",l?c.pathname:"",d?c.pathname.substring(1):"",p?c.search:"",h?c.hash:""].join(""),t]}function w(i){return i=new URL(i.href),i.hash="",i}var Z=typeof window>"u",F=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:t,swapComponent:n}){this.page=e,this.resolveComponent=t,this.swapComponent=n,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{preserveScroll:!0,preserveState:!0}).then(()=>P(e))}setupEventListeners(){window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),document.addEventListener("scroll",T(this.handleScrollEvent.bind(this),100),!0),document.addEventListener("click",e=>{let t=e.target;if(e.defaultPrevented||t.closest("[data-inertia-ignore]"))return;let n=t.closest("a"),o=t.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId,l=t.closest("[data-hint]")?.dataset.hint,d=t.closest("[data-component]")?.dataset.component;if(!(!n||n.rel=="external"||n.target=="_blank")&&n.href&&n.href.startsWith(location.origin)){let p=n.attributes.getNamedItem("href")?.value,h=n.dataset["preserve-scroll"],c=n.dataset["preserve-state"];if(e.preventDefault(),e.stopPropagation(),p?.startsWith("#")){let s=this.page;s.url=n.href,this.setPage(s,{preserveScroll:h,preserveState:c}).then(()=>{P(s)})}else this.visit(n.href,{method:n.dataset.method,target:n.dataset.target||o,hint:l,component:d,preserveScroll:h,preserveState:c})}})}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...history.state,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,t)=>{let n=this.page.scrollRegions[t];if(n)typeof e.scrollTo=="function"?e.scrollTo(n.left,n.top):(e.scrollTop=n.top,e.scrollLeft=n.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){let t;e.props?t=e:(window.history.state.version=e.version,t=window.history.state),this.setPage(t,{preserveScroll:!0,preserveState:!0}).then(()=>{this.restoreScrollPositions(),P(e)})}locationVisit(e,t){try{let n={preserveScroll:t};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(n)),window.location.href=e.href,w(window.location).href===w(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let t=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:t.preserveScroll,preserveState:!0}).then(()=>{t.preserveScroll&&this.restoreScrollPositions(),P(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:t=!1,interrupted:n=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=t,e.interrupted=n,I(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,I(e),e.onFinish(e))}resolvePreserveOption(e,t){return typeof e=="function"?e(t):e==="errors"?Object.keys(t.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:t="get",data:n={},replace:o=!1,preserveScroll:l=!1,preserveState:d=!1,preserveURL:p=!1,only:h=[],headers:c={},errorBag:s="",forceFormData:y=!1,target:u=null,component:f=null,hint:m=f,onCancelToken:R=()=>{},onBefore:L=()=>{},onStart:M=()=>{},onProgress:U=()=>{},onFinish:re=()=>{},onCancel:oe=()=>{},onSuccess:G=()=>{},onError:H=()=>{},transformProps:N=()=>{},queryStringArrayFormat:k="brackets"}={}){let x=typeof e=="string"?E(e):e;if((O(n)||y)&&!(n instanceof FormData)&&(n=A(n)),!(n instanceof FormData)){let[r,a]=D(t,x,n,k);x=E(r),n=a}let S={url:x,method:t,data:n,replace:o,preserveScroll:l,preserveState:d,preserveURL:p,only:h,headers:c,errorBag:s,target:u,hint:m,component:f,forceFormData:y,transformProps:N,queryStringArrayFormat:k,noProgress:!1,cancelled:!1,completed:!1,interrupted:!1};if(L(S)===!1||!$(S))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions(),S.target&&(S.noProgress=!0);let j=this.createVisitId();if(this.activeVisit={...S,onCancelToken:R,onBefore:L,onStart:M,onProgress:U,onFinish:re,onCancel:oe,onSuccess:G,onError:H,queryStringArrayFormat:k,cancelToken:new AbortController},R({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),m&&Promise.resolve(this.resolveComponent(m)).then(r=>{u&&u!=="_top"&&u!=="_parent"&&u!=="main"?this.swapComponent({component:r,page:{...this.page,target:u,url:w(x).pathname},preserveState:d}):this.swapComponent({component:r,page:{...this.page,url:w(x).pathname},preserveState:d})}),X(S),f){(!u||u==="_top"||u==="_parent"||u==="main")&&(o=o||E(this.page.url).href===window.location.href,o?this.replaceState(this.page):this.pushState(this.page)),l||this.resetScrollPositions(),o||P(this.page),I(this.activeVisit);return}M(S),console.log("visit",S),Y({method:t,url:w(x).href,data:t==="get"?{}:n,params:t==="get"?n:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...h.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":h.join(",")}:{},...s&&s.length?{"X-Inertia-Error-Bag":s}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:r=>{n instanceof FormData&&(r.percentage=r.progress?Math.round(r.progress*100):0,K(r),U(r))}}).then(r=>{if(!this.isInertiaResponse(r))return Promise.reject({response:r});let a=r.data;r.headers["x-inertia-frame"]&&(u=r.headers["x-inertia-frame"]),h.length&&a.component===this.page.component&&(a.props={...this.page.props,...a.props}),l=this.resolvePreserveOption(l,a),d=this.resolvePreserveOption(d,a),d&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let g=x,V=E(a.url);return g.hash&&!V.hash&&w(g).href===V.href&&(V.hash=g.hash,a.url=V.href),N&&N(a.props),this.setPage(a,{target:u,visitId:j,replace:o,preserveScroll:l,preserveState:d,preserveURL:p})}).then(r=>{let a=r.props.errors||{};if(Object.keys(a).length>0){let g=s?a[s]?a[s]:{}:a;return q(g),H(g)}return J(r),G(r)}).catch(r=>{if(this.isInertiaResponse(r.response))return this.setPage(r.response.data,{visitId:j});if(this.isLocationVisitResponse(r.response)){let a=E(r.response.headers["x-inertia-location"]),g=x;g.hash&&!a.hash&&w(g).href===a.href&&(a.hash=g.hash),this.locationVisit(a,l===!0)}else if(r.response)_(r.response)&&Q.show(r.response.data);else return Promise.reject(r)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(r=>{if(!Y.isCancel(r)){let a=W(r);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(r)}})}setPage(e,{visitId:t=this.createVisitId(),replace:n=!1,preserveURL:o=!1,preserveScroll:l=!1,preserveState:d=!1,target:p=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>(t===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},o&&(e.url=window.location.href),!p||p==="_top"||p==="_parent"||p==="main"?(n=n||E(e.url).href===window.location.href,n?this.replaceState(e):this.pushState(e)):e.target=p,this.swapComponent({component:h,page:e,preserveState:d}).then(()=>{l||this.resetScrollPositions(),n||P(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&&e.state.component){let t=e.state,n=this.createVisitId();Promise.resolve(this.resolveComponent(t.component)).then(o=>{n===this.visitId&&(this.page=t,this.swapComponent({component:o,page:t,preserveState:!1}).then(()=>{this.restoreScrollPositions(),P(t)}))})}else{if(!this.page.url)return;let t=E(this.page.url);t.hash=window.location.hash,this.replaceState({...history.state,url:t.href}),this.resetScrollPositions()}}get(e,t={},n={}){return this.visit(e,{...n,method:"get",data:t})}reload(e={}){return this.visit(window.location.href,{preserveScroll:!0,preserveState:!0,preserveURL:!0,...e})}replace(e,t={}){return console.warn(`Inertia.replace() has been deprecated and will be removed in a future release. Please use Inertia.${t.method??"get"}() instead.`),this.visit(e,{preserveState:!0,...t,replace:!0})}post(e,t={},n={}){return this.visit(e,{preserveState:!0,...n,method:"post",data:t})}put(e,t={},n={}){return this.visit(e,{preserveState:!0,...n,method:"put",data:t})}patch(e,t={},n={}){return this.visit(e,{preserveState:!0,...n,method:"patch",data:t})}delete(e,t={}){return this.visit(e,{preserveState:!0,...t,method:"delete"})}remember(e,t="default"){Z||this.replaceState({...history.state,rememberedState:{...this.page?.rememberedState,[t]:e}})}restore(e="default"){if(!Z)return window.history.state?.rememberedState?.[e]}on(e,t){let n=o=>{let l=t(o);o.cancelable&&!o.defaultPrevented&&l===!1&&o.preventDefault()};return document.addEventListener(`inertia:${e}`,n),()=>document.removeEventListener(`inertia:${e}`,n)}};var ae={buildDOMElement(i){let e=document.createElement("template");e.innerHTML=i;let t=e.content.firstChild;if(!i.startsWith("<script "))return t;let n=document.createElement("script");return n.innerHTML=t.innerHTML,t.getAttributeNames().forEach(o=>{n.setAttribute(o,t.getAttribute(o)||"")}),n},isInertiaManagedElement(i){return i.nodeType===Node.ELEMENT_NODE&&i.getAttribute("inertia")!==null},findMatchingElementIndex(i,e){let t=i.getAttribute("inertia");return t!==null?e.findIndex(n=>n.getAttribute("inertia")===t):-1},update:T(function(i){let e=i.map(n=>this.buildDOMElement(n));Array.from(document.head.childNodes).filter(n=>this.isInertiaManagedElement(n)).forEach(n=>{let o=this.findMatchingElementIndex(n,e);if(o===-1){n?.parentNode?.removeChild(n);return}let l=e.splice(o,1)[0];l&&!n.isEqualNode(l)&&n?.parentNode?.replaceChild(l,n)}),e.forEach(n=>document.head.appendChild(n))},1)};function ee(i,e,t){let n={},o=0;function l(){let s=o+=1;return n[s]=[],s.toString()}function d(s){s===null||Object.keys(n).indexOf(s)===-1||(delete n[s],c())}function p(s,y=[]){s!==null&&Object.keys(n).indexOf(s)>-1&&(n[s]=y),c()}function h(){let s=e(""),y={...s?{title:`<title inertia="">${s}</title>`}:{}},u=Object.values(n).reduce((f,m)=>f.concat(m),[]).reduce((f,m)=>{if(m.indexOf("<")===-1)return f;if(m.indexOf("<title ")===0){let L=m.match(/(<title [^>]+>)(.*?)(<\/title>)/);return f.title=L?`${L[1]}${e(L[2])}${L[3]}`:m,f}let R=m.match(/ inertia="[^"]+"/);return R?f[R[0]]=m:f[Object.keys(f).length]=m,f},y);return Object.values(u)}function c(){i?t(h()):ae.update(h())}return c(),{forceUpdate:c,createProvider:function(){let s=l();return{update:y=>p(s,y),disconnect:()=>d(s)}}}}import v from"nprogress";var te=null;function le(i){document.addEventListener("inertia:start",ce(i)),document.addEventListener("inertia:progress",de),document.addEventListener("inertia:finish",pe)}function ce(i){return function(e){e.detail.visit.noProgress||(te=setTimeout(()=>v.start(),i))}}function de(i){v.isStarted()&&i.detail.progress?.percentage&&v.set(Math.max(v.status,i.detail.progress.percentage/100*.9))}function pe(i){if(clearTimeout(te),v.isStarted())i.detail.visit.completed?v.done():i.detail.visit.interrupted?v.set(0):i.detail.visit.cancelled&&(v.done(),v.remove());else return}function he(i){let e=document.createElement("style");e.type="text/css",e.textContent=`
|
|
2
2
|
#nprogress {
|
|
3
3
|
pointer-events: none;
|
|
4
4
|
}
|
package/dist/index.esm.js.map
CHANGED
|
@@ -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 if (target.closest('[data-inertia-ignore]')) return\n \n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n\n const hint = (target.closest('[data-hint]') as HTMLElement)?.dataset.hint\n const component = (target.closest('[data-component]') as HTMLElement)?.dataset.component\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n\n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n const href = anchorElement.attributes.getNamedItem('href')?.value\n const preserveScroll = anchorElement.dataset['preserve-scroll']\n const preserveState = anchorElement.dataset['preserve-state']\n event.preventDefault()\n event.stopPropagation()\n if (href?.startsWith('#')) {\n const page = this.page\n page.url = anchorElement.href\n this.setPage(page, {preserveScroll, preserveState}).then(() => {\n fireNavigateEvent(page)\n })\n }\n else {\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n hint, component, preserveScroll, preserveState\n })\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 ...history.state,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\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 component = null,\n hint = component,\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 hint,\n component,\n forceFormData,\n transformProps,\n queryStringArrayFormat,\n noProgress: false,\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 if (visit.target) visit.noProgress = true\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 if (hint) {\n Promise.resolve(this.resolveComponent(hint)).then((component) => {\n if (target && target !== '_top' && target !== '_parent' && target !== 'main') { \n this.swapComponent({ component, page: { ...this.page, target, url: urlWithoutHash(url).pathname }, preserveState })\n }\n else {\n this.swapComponent({ component, page: {...this.page, url: urlWithoutHash(url).pathname}, preserveState })\n }\n })\n }\n \n \n fireStartEvent(visit)\n \n if (component) {\n if (!target || target === '_top' || target === '_parent' || target === 'main') { \n replace = replace || hrefToUrl(this.page.url).href === window.location.href\n replace ? this.replaceState(this.page) : this.pushState(this.page)\n }\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(this.page)\n }\n fireFinishEvent(this.activeVisit)\n return\n }\n \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 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 && event.state.component) {\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 if (!this.page.url) return\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...history.state, 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 ...history.state,\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(delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number) {\n return function (event: GlobalEvent<'start'>) {\n if (event.detail.visit.noProgress) return\n timeout = setTimeout(() => NProgress.start(), delay)\n }\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 if (event.defaultPrevented || target.closest('[data-inertia-ignore]')) return\n \n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n\n const hint = (target.closest('[data-hint]') as HTMLElement)?.dataset.hint\n const component = (target.closest('[data-component]') as HTMLElement)?.dataset.component\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n\n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n const href = anchorElement.attributes.getNamedItem('href')?.value\n const preserveScroll = anchorElement.dataset['preserve-scroll']\n const preserveState = anchorElement.dataset['preserve-state']\n event.preventDefault()\n event.stopPropagation()\n if (href?.startsWith('#')) {\n const page = this.page\n page.url = anchorElement.href\n this.setPage(page, {preserveScroll, preserveState}).then(() => {\n fireNavigateEvent(page)\n })\n }\n else {\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n hint, component, preserveScroll, preserveState\n })\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 ...history.state,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\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 component = null,\n hint = component,\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 hint,\n component,\n forceFormData,\n transformProps,\n queryStringArrayFormat,\n noProgress: false,\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 if (visit.target) visit.noProgress = true\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 if (hint) {\n Promise.resolve(this.resolveComponent(hint)).then((component) => {\n if (target && target !== '_top' && target !== '_parent' && target !== 'main') { \n this.swapComponent({ component, page: { ...this.page, target, url: urlWithoutHash(url).pathname }, preserveState })\n }\n else {\n this.swapComponent({ component, page: {...this.page, url: urlWithoutHash(url).pathname}, preserveState })\n }\n })\n }\n \n \n fireStartEvent(visit)\n \n if (component) {\n if (!target || target === '_top' || target === '_parent' || target === 'main') { \n replace = replace || hrefToUrl(this.page.url).href === window.location.href\n replace ? this.replaceState(this.page) : this.pushState(this.page)\n }\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(this.page)\n }\n fireFinishEvent(this.activeVisit)\n return\n }\n \n onStart(visit)\n console.log('visit', visit)\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 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 && event.state.component) {\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 if (!this.page.url) return\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...history.state, 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 ...history.state,\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(delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number) {\n return function (event: GlobalEvent<'start'>) {\n if (event.detail.visit.noProgress) return\n timeout = setTimeout(() => NProgress.start(), delay)\n }\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", "hint", "component", "href", "preserveScroll", "preserveState", "region", "index", "scrollPosition", "currentState", "url", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "method", "data", "replace", "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", "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 de=Object.create;var I=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var ue=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty;var me=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},J=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of he(e))!fe.call(t,r)&&r!==i&&I(t,r,{get:()=>e[r],enumerable:!(n=pe(e,r))||n.enumerable});return t};var O=(t,e,i)=>(i=t!=null?de(ue(t)):{},J(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),ge=t=>J(I({},"__esModule",{value:!0}),t);var Pe={};me(Pe,{createHeadManager:()=>H,hrefToUrl:()=>b,mergeDataIntoQueryString:()=>k,router:()=>Se,setupProgress:()=>j,shouldIntercept:()=>$,urlWithoutHash:()=>E});module.exports=ge(Pe);var G=O(require("axios"),1);function T(t,e){let i;return function(...n){clearTimeout(i),i=setTimeout(()=>t.apply(this,n),e)}}function w(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var z=t=>w("before",{cancelable:!0,detail:{visit:t}}),B=t=>w("error",{detail:{errors:t}}),Q=t=>w("exception",{cancelable:!0,detail:{exception:t}}),C=t=>w("finish",{detail:{visit:t}}),Y=t=>w("invalid",{cancelable:!0,detail:{response:t}}),S=t=>w("navigate",{detail:{page:t}}),Z=t=>w("progress",{detail:{progress:t}}),ee=t=>w("start",{detail:{visit:t}}),te=t=>w("success",{detail:{page:t}});function F(t){return t instanceof File||t instanceof Blob||t instanceof FileList&&t.length>0||t instanceof FormData&&Array.from(t.values()).some(e=>F(e))||typeof t=="object"&&t!==null&&Object.values(t).some(e=>F(e))}function U(t,e=new FormData,i=null){t=t||{};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&ne(e,ie(i,n),t[n]);return e}function ie(t,e){return t?t+"["+e+"]":e}function ne(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(n=>ne(t,ie(e,n.toString()),i[n]));if(i instanceof Date)return t.append(e,i.toISOString());if(i instanceof File)return t.append(e,i,i.name);if(i instanceof Blob)return t.append(e,i);if(typeof i=="boolean")return t.append(e,i?"1":"0");if(typeof i=="string")return t.append(e,i);if(typeof i=="number")return t.append(e,`${i}`);if(i==null)return t.append(e,"");U(i,t,e)}var re={modal:null,listener:null,show(t){typeof t=="object"&&(t=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);let e=document.createElement("html");e.innerHTML=t,e.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let i=document.createElement("iframe");if(i.style.backgroundColor="white",i.style.borderRadius="5px",i.style.width="100%",i.style.height="100%",this.modal.appendChild(i),document.body.prepend(this.modal),document.body.style.overflow="hidden",!i.contentWindow)throw new Error("iframe not yet ready.");i.contentWindow.document.open(),i.contentWindow.document.write(e.outerHTML),i.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(t){t.keyCode===27&&this.hide()}};var oe=O(require("deepmerge"),1),N=O(require("qs"),1);function b(t){return new URL(t.toString(),window.location.toString())}function k(t,e,i,n="brackets"){let r=/^https?:\/\//.test(e.toString()),l=r||e.toString().startsWith("/"),d=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),p=e.toString().includes("?")||t==="get"&&Object.keys(i).length,h=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return t==="get"&&Object.keys(i).length&&(c.search=N.stringify((0,oe.default)(N.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:n}),i={}),[[r?`${c.protocol}//${c.host}`:"",l?c.pathname:"",d?c.pathname.substring(1):"",p?c.search:"",h?c.hash:""].join(""),i]}function E(t){return t=new URL(t.href),t.hash="",t}var se=typeof window>"u",A=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:i,swapComponent:n}){this.page=e,this.resolveComponent=i,this.swapComponent=n,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{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;if(i.closest("[data-inertia-ignore]"))return;let n=i.closest("a"),r=i.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId,l=i.closest("[data-hint]")?.dataset.hint,d=i.closest("[data-component]")?.dataset.component;if(!(!n||n.rel=="external"||n.target=="_blank")&&n.href&&n.href.startsWith(location.origin)){let p=n.attributes.getNamedItem("href")?.value,h=n.dataset["preserve-scroll"],c=n.dataset["preserve-state"];if(e.preventDefault(),e.stopPropagation(),p?.startsWith("#")){let s=this.page;s.url=n.href,this.setPage(s,{preserveScroll:h,preserveState:c}).then(()=>{S(s)})}else this.visit(n.href,{method:n.dataset.method,target:n.dataset.target||r,hint:l,component:d,preserveScroll:h,preserveState:c})}})}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...history.state,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&setTimeout(()=>document.getElementById(window.location.hash.slice(1))?.scrollIntoView())}restoreScrollPositions(){this.page.scrollRegions&&this.scrollRegions().forEach((e,i)=>{let n=this.page.scrollRegions[i];if(n)typeof e.scrollTo=="function"?e.scrollTo(n.left,n.top):(e.scrollTop=n.top,e.scrollLeft=n.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){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 n={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(n)),window.location.href=e.href,E(window.location).href===E(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let i=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=window.history.state?.rememberedState??{},e.scrollRegions=window.history.state?.scrollRegions??[],this.setPage(e,{preserveScroll:i.preserveScroll,preserveState:!0}).then(()=>{i.preserveScroll&&this.restoreScrollPositions(),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:n=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=i,e.interrupted=n,C(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,C(e),e.onFinish(e))}resolvePreserveOption(e,i){return typeof e=="function"?e(i):e==="errors"?Object.keys(i.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:i="get",data:n={},replace:r=!1,preserveScroll:l=!1,preserveState:d=!1,preserveURL:p=!1,only:h=[],headers:c={},errorBag:s="",forceFormData:y=!1,target:u=null,component:f=null,hint:m=f,onCancelToken:R=()=>{},onBefore:P=()=>{},onStart:q=()=>{},onProgress:W=()=>{},onFinish:le=()=>{},onCancel:ce=()=>{},onSuccess:_=()=>{},onError:K=()=>{},transformProps:D=()=>{},queryStringArrayFormat:M="brackets"}={}){let x=typeof e=="string"?b(e):e;if((F(n)||y)&&!(n instanceof FormData)&&(n=U(n)),!(n instanceof FormData)){let[o,a]=k(i,x,n,M);x=b(o),n=a}let L={url:x,method:i,data:n,replace:r,preserveScroll:l,preserveState:d,preserveURL:p,only:h,headers:c,errorBag:s,target:u,hint:m,component:f,forceFormData:y,transformProps:D,queryStringArrayFormat:M,noProgress:!1,cancelled:!1,completed:!1,interrupted:!1};if(P(L)===!1||!z(L))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions(),L.target&&(L.noProgress=!0);let X=this.createVisitId();if(this.activeVisit={...L,onCancelToken:R,onBefore:P,onStart:q,onProgress:W,onFinish:le,onCancel:ce,onSuccess:_,onError:K,queryStringArrayFormat:M,cancelToken:new AbortController},R({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),m&&Promise.resolve(this.resolveComponent(m)).then(o=>{u&&u!=="_top"&&u!=="_parent"&&u!=="main"?this.swapComponent({component:o,page:{...this.page,target:u,url:E(x).pathname},preserveState:d}):this.swapComponent({component:o,page:{...this.page,url:E(x).pathname},preserveState:d})}),ee(L),f){(!u||u==="_top"||u==="_parent"||u==="main")&&(r=r||b(this.page.url).href===window.location.href,r?this.replaceState(this.page):this.pushState(this.page)),l||this.resetScrollPositions(),r||S(this.page),C(this.activeVisit);return}q(L),(0,G.default)({method:i,url:E(x).href,data:i==="get"?{}:n,params:i==="get"?n:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...h.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":h.join(",")}:{},...s&&s.length?{"X-Inertia-Error-Bag":s}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:o=>{n instanceof FormData&&(o.percentage=o.progress?Math.round(o.progress*100):0,Z(o),W(o))}}).then(o=>{if(!this.isInertiaResponse(o))return Promise.reject({response:o});let a=o.data;o.headers["x-inertia-frame"]&&(u=o.headers["x-inertia-frame"]),h.length&&a.component===this.page.component&&(a.props={...this.page.props,...a.props}),l=this.resolvePreserveOption(l,a),d=this.resolvePreserveOption(d,a),d&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let v=x,V=b(a.url);return v.hash&&!V.hash&&E(v).href===V.href&&(V.hash=v.hash,a.url=V.href),D&&D(a.props),this.setPage(a,{target:u,visitId:X,replace:r,preserveScroll:l,preserveState:d,preserveURL:p})}).then(o=>{let a=o.props.errors||{};if(Object.keys(a).length>0){let v=s?a[s]?a[s]:{}:a;return B(v),K(v)}return te(o),_(o)}).catch(o=>{if(this.isInertiaResponse(o.response))return this.setPage(o.response.data,{visitId:X});if(this.isLocationVisitResponse(o.response)){let a=b(o.response.headers["x-inertia-location"]),v=x;v.hash&&!a.hash&&E(v).href===a.href&&(a.hash=v.hash),this.locationVisit(a,l===!0)}else if(o.response)Y(o.response)&&re.show(o.response.data);else return Promise.reject(o)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(o=>{if(!G.default.isCancel(o)){let a=Q(o);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(o)}})}setPage(e,{visitId:i=this.createVisitId(),replace:n=!1,preserveURL:r=!1,preserveScroll:l=!1,preserveState:d=!1,target:p=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>(i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},r&&(e.url=window.location.href),!p||p==="_top"||p==="_parent"||p==="main"?(n=n||b(e.url).href===window.location.href,n?this.replaceState(e):this.pushState(e)):e.target=p,this.swapComponent({component:h,page:e,preserveState:d}).then(()=>{l||this.resetScrollPositions(),n||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&&e.state.component){let i=e.state,n=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(r=>{n===this.visitId&&(this.page=i,this.swapComponent({component:r,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),S(i)}))})}else{if(!this.page.url)return;let i=b(this.page.url);i.hash=window.location.hash,this.replaceState({...history.state,url:i.href}),this.resetScrollPositions()}}get(e,i={},n={}){return this.visit(e,{...n,method:"get",data:i})}reload(e={}){return this.visit(window.location.href,{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={},n={}){return this.visit(e,{preserveState:!0,...n,method:"post",data:i})}put(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"put",data:i})}patch(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"patch",data:i})}delete(e,i={}){return this.visit(e,{preserveState:!0,...i,method:"delete"})}remember(e,i="default"){se||this.replaceState({...history.state,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!se)return window.history.state?.rememberedState?.[e]}on(e,i){let n=r=>{let l=i(r);r.cancelable&&!r.defaultPrevented&&l===!1&&r.preventDefault()};return document.addEventListener(`inertia:${e}`,n),()=>document.removeEventListener(`inertia:${e}`,n)}};var ve={buildDOMElement(t){let e=document.createElement("template");e.innerHTML=t;let i=e.content.firstChild;if(!t.startsWith("<script "))return i;let n=document.createElement("script");return n.innerHTML=i.innerHTML,i.getAttributeNames().forEach(r=>{n.setAttribute(r,i.getAttribute(r)||"")}),n},isInertiaManagedElement(t){return t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("inertia")!==null},findMatchingElementIndex(t,e){let i=t.getAttribute("inertia");return i!==null?e.findIndex(n=>n.getAttribute("inertia")===i):-1},update:T(function(t){let e=t.map(n=>this.buildDOMElement(n));Array.from(document.head.childNodes).filter(n=>this.isInertiaManagedElement(n)).forEach(n=>{let r=this.findMatchingElementIndex(n,e);if(r===-1){n?.parentNode?.removeChild(n);return}let l=e.splice(r,1)[0];l&&!n.isEqualNode(l)&&n?.parentNode?.replaceChild(l,n)}),e.forEach(n=>document.head.appendChild(n))},1)};function H(t,e,i){let n={},r=0;function l(){let s=r+=1;return n[s]=[],s.toString()}function d(s){s===null||Object.keys(n).indexOf(s)===-1||(delete n[s],c())}function p(s,y=[]){s!==null&&Object.keys(n).indexOf(s)>-1&&(n[s]=y),c()}function h(){let s=e(""),y={...s?{title:`<title inertia="">${s}</title>`}:{}},u=Object.values(n).reduce((f,m)=>f.concat(m),[]).reduce((f,m)=>{if(m.indexOf("<")===-1)return f;if(m.indexOf("<title ")===0){let P=m.match(/(<title [^>]+>)(.*?)(<\/title>)/);return f.title=P?`${P[1]}${e(P[2])}${P[3]}`:m,f}let R=m.match(/ inertia="[^"]+"/);return R?f[R[0]]=m:f[Object.keys(f).length]=m,f},y);return Object.values(u)}function c(){t?i(h()):ve.update(h())}return c(),{forceUpdate:c,createProvider:function(){let s=l();return{update:y=>p(s,y),disconnect:()=>d(s)}}}}var g=O(require("nprogress"),1),ae=null;function be(t){document.addEventListener("inertia:start",Ee(t)),document.addEventListener("inertia:progress",we),document.addEventListener("inertia:finish",ye)}function Ee(t){return function(e){e.detail.visit.noProgress||(ae=setTimeout(()=>g.default.start(),t))}}function we(t){g.default.isStarted()&&t.detail.progress?.percentage&&g.default.set(Math.max(g.default.status,t.detail.progress.percentage/100*.9))}function ye(t){if(clearTimeout(ae),g.default.isStarted())t.detail.visit.completed?g.default.done():t.detail.visit.interrupted?g.default.set(0):t.detail.visit.cancelled&&(g.default.done(),g.default.remove());else return}function xe(t){let e=document.createElement("style");e.type="text/css",e.textContent=`
|
|
1
|
+
"use strict";var de=Object.create;var I=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var ue=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty;var me=(t,e)=>{for(var i in e)I(t,i,{get:e[i],enumerable:!0})},J=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of he(e))!fe.call(t,r)&&r!==i&&I(t,r,{get:()=>e[r],enumerable:!(n=pe(e,r))||n.enumerable});return t};var O=(t,e,i)=>(i=t!=null?de(ue(t)):{},J(e||!t||!t.__esModule?I(i,"default",{value:t,enumerable:!0}):i,t)),ge=t=>J(I({},"__esModule",{value:!0}),t);var Pe={};me(Pe,{createHeadManager:()=>H,hrefToUrl:()=>b,mergeDataIntoQueryString:()=>k,router:()=>Se,setupProgress:()=>j,shouldIntercept:()=>$,urlWithoutHash:()=>E});module.exports=ge(Pe);var G=O(require("axios"),1);function T(t,e){let i;return function(...n){clearTimeout(i),i=setTimeout(()=>t.apply(this,n),e)}}function w(t,e){return document.dispatchEvent(new CustomEvent(`inertia:${t}`,e))}var z=t=>w("before",{cancelable:!0,detail:{visit:t}}),B=t=>w("error",{detail:{errors:t}}),Q=t=>w("exception",{cancelable:!0,detail:{exception:t}}),C=t=>w("finish",{detail:{visit:t}}),Y=t=>w("invalid",{cancelable:!0,detail:{response:t}}),P=t=>w("navigate",{detail:{page:t}}),Z=t=>w("progress",{detail:{progress:t}}),ee=t=>w("start",{detail:{visit:t}}),te=t=>w("success",{detail:{page:t}});function F(t){return t instanceof File||t instanceof Blob||t instanceof FileList&&t.length>0||t instanceof FormData&&Array.from(t.values()).some(e=>F(e))||typeof t=="object"&&t!==null&&Object.values(t).some(e=>F(e))}function U(t,e=new FormData,i=null){t=t||{};for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&ne(e,ie(i,n),t[n]);return e}function ie(t,e){return t?t+"["+e+"]":e}function ne(t,e,i){if(Array.isArray(i))return Array.from(i.keys()).forEach(n=>ne(t,ie(e,n.toString()),i[n]));if(i instanceof Date)return t.append(e,i.toISOString());if(i instanceof File)return t.append(e,i,i.name);if(i instanceof Blob)return t.append(e,i);if(typeof i=="boolean")return t.append(e,i?"1":"0");if(typeof i=="string")return t.append(e,i);if(typeof i=="number")return t.append(e,`${i}`);if(i==null)return t.append(e,"");U(i,t,e)}var re={modal:null,listener:null,show(t){typeof t=="object"&&(t=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(t)}`);let e=document.createElement("html");e.innerHTML=t,e.querySelectorAll("a").forEach(n=>n.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());let i=document.createElement("iframe");if(i.style.backgroundColor="white",i.style.borderRadius="5px",i.style.width="100%",i.style.height="100%",this.modal.appendChild(i),document.body.prepend(this.modal),document.body.style.overflow="hidden",!i.contentWindow)throw new Error("iframe not yet ready.");i.contentWindow.document.open(),i.contentWindow.document.write(e.outerHTML),i.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(t){t.keyCode===27&&this.hide()}};var oe=O(require("deepmerge"),1),N=O(require("qs"),1);function b(t){return new URL(t.toString(),window.location.toString())}function k(t,e,i,n="brackets"){let r=/^https?:\/\//.test(e.toString()),l=r||e.toString().startsWith("/"),d=!l&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),p=e.toString().includes("?")||t==="get"&&Object.keys(i).length,h=e.toString().includes("#"),c=new URL(e.toString(),"http://localhost");return t==="get"&&Object.keys(i).length&&(c.search=N.stringify((0,oe.default)(N.parse(c.search,{ignoreQueryPrefix:!0}),i),{encodeValuesOnly:!0,arrayFormat:n}),i={}),[[r?`${c.protocol}//${c.host}`:"",l?c.pathname:"",d?c.pathname.substring(1):"",p?c.search:"",h?c.hash:""].join(""),i]}function E(t){return t=new URL(t.href),t.hash="",t}var se=typeof window>"u",A=class{constructor(){this.visitId=null}init({initialPage:e,resolveComponent:i,swapComponent:n}){this.page=e,this.resolveComponent=i,this.swapComponent=n,this.setNavigationType(),this.clearRememberedStateOnReload(),this.isBackForwardVisit()?this.handleBackForwardVisit(this.page):this.isLocationVisit()?this.handleLocationVisit(this.page):this.handleInitialPageVisit(this.page),this.setupEventListeners()}setNavigationType(){this.navigationType=window.performance&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}clearRememberedStateOnReload(){this.navigationType==="reload"&&window.history.state?.rememberedState&&delete window.history.state.rememberedState}handleInitialPageVisit(e){this.page.url+=window.location.hash,this.setPage(e,{preserveScroll:!0,preserveState:!0}).then(()=>P(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;if(e.defaultPrevented||i.closest("[data-inertia-ignore]"))return;let n=i.closest("a"),r=i.closest("[data-inertia-frame-id]")?.dataset.inertiaFrameId,l=i.closest("[data-hint]")?.dataset.hint,d=i.closest("[data-component]")?.dataset.component;if(!(!n||n.rel=="external"||n.target=="_blank")&&n.href&&n.href.startsWith(location.origin)){let p=n.attributes.getNamedItem("href")?.value,h=n.dataset["preserve-scroll"],c=n.dataset["preserve-state"];if(e.preventDefault(),e.stopPropagation(),p?.startsWith("#")){let s=this.page;s.url=n.href,this.setPage(s,{preserveScroll:h,preserveState:c}).then(()=>{P(s)})}else this.visit(n.href,{method:n.dataset.method,target:n.dataset.target||r,hint:l,component:d,preserveScroll:h,preserveState:c})}})}scrollRegions(){return document.querySelectorAll("[scroll-region]")}handleScrollEvent(e){typeof e.target.hasAttribute=="function"&&e.target.hasAttribute("scroll-region")&&this.saveScrollPositions()}saveScrollPositions(){this.replaceState({...history.state,scrollRegions:Array.from(this.scrollRegions()).map(e=>({top:e.scrollTop,left:e.scrollLeft}))})}resetScrollPositions(){window.scrollTo(0,0),this.scrollRegions().forEach(e=>{typeof e.scrollTo=="function"?e.scrollTo(0,0):(e.scrollTop=0,e.scrollLeft=0)}),this.saveScrollPositions(),window.location.hash&&setTimeout(()=>document.getElementById(window.location.hash.slice(1))?.scrollIntoView())}restoreScrollPositions(){this.page.scrollRegions&&this.scrollRegions().forEach((e,i)=>{let n=this.page.scrollRegions[i];if(n)typeof e.scrollTo=="function"?e.scrollTo(n.left,n.top):(e.scrollTop=n.top,e.scrollLeft=n.left);else return})}isBackForwardVisit(){return window.history.state&&this.navigationType==="back_forward"}handleBackForwardVisit(e){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(),P(e)})}locationVisit(e,i){try{let n={preserveScroll:i};window.sessionStorage.setItem("inertiaLocationVisit",JSON.stringify(n)),window.location.href=e.href,E(window.location).href===E(e).href&&window.location.reload()}catch{return!1}}isLocationVisit(){try{return window.sessionStorage.getItem("inertiaLocationVisit")!==null}catch{return!1}}handleLocationVisit(e){let i=JSON.parse(window.sessionStorage.getItem("inertiaLocationVisit")||"");window.sessionStorage.removeItem("inertiaLocationVisit"),e.url+=window.location.hash,e.rememberedState=window.history.state?.rememberedState??{},e.scrollRegions=window.history.state?.scrollRegions??[],this.setPage(e,{preserveScroll:i.preserveScroll,preserveState:!0}).then(()=>{i.preserveScroll&&this.restoreScrollPositions(),P(e)})}isLocationVisitResponse(e){return!!(e&&e.status===409&&e.headers["x-inertia-location"])}isInertiaResponse(e){return!!e?.headers["x-inertia"]}createVisitId(){return this.visitId={},this.visitId}cancelVisit(e,{cancelled:i=!1,interrupted:n=!1}){e&&!e.completed&&!e.cancelled&&!e.interrupted&&(e.cancelToken.abort(),e.onCancel(),e.completed=!1,e.cancelled=i,e.interrupted=n,C(e),e.onFinish(e))}finishVisit(e){!e.cancelled&&!e.interrupted&&(e.completed=!0,e.cancelled=!1,e.interrupted=!1,C(e),e.onFinish(e))}resolvePreserveOption(e,i){return typeof e=="function"?e(i):e==="errors"?Object.keys(i.props.errors||{}).length>0:e}cancel(){this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}visit(e,{method:i="get",data:n={},replace:r=!1,preserveScroll:l=!1,preserveState:d=!1,preserveURL:p=!1,only:h=[],headers:c={},errorBag:s="",forceFormData:y=!1,target:u=null,component:f=null,hint:m=f,onCancelToken:R=()=>{},onBefore:L=()=>{},onStart:q=()=>{},onProgress:W=()=>{},onFinish:le=()=>{},onCancel:ce=()=>{},onSuccess:_=()=>{},onError:K=()=>{},transformProps:D=()=>{},queryStringArrayFormat:M="brackets"}={}){let x=typeof e=="string"?b(e):e;if((F(n)||y)&&!(n instanceof FormData)&&(n=U(n)),!(n instanceof FormData)){let[o,a]=k(i,x,n,M);x=b(o),n=a}let S={url:x,method:i,data:n,replace:r,preserveScroll:l,preserveState:d,preserveURL:p,only:h,headers:c,errorBag:s,target:u,hint:m,component:f,forceFormData:y,transformProps:D,queryStringArrayFormat:M,noProgress:!1,cancelled:!1,completed:!1,interrupted:!1};if(L(S)===!1||!z(S))return;this.activeVisit&&this.cancelVisit(this.activeVisit,{interrupted:!0}),this.saveScrollPositions(),S.target&&(S.noProgress=!0);let X=this.createVisitId();if(this.activeVisit={...S,onCancelToken:R,onBefore:L,onStart:q,onProgress:W,onFinish:le,onCancel:ce,onSuccess:_,onError:K,queryStringArrayFormat:M,cancelToken:new AbortController},R({cancel:()=>{this.activeVisit&&this.cancelVisit(this.activeVisit,{cancelled:!0})}}),m&&Promise.resolve(this.resolveComponent(m)).then(o=>{u&&u!=="_top"&&u!=="_parent"&&u!=="main"?this.swapComponent({component:o,page:{...this.page,target:u,url:E(x).pathname},preserveState:d}):this.swapComponent({component:o,page:{...this.page,url:E(x).pathname},preserveState:d})}),ee(S),f){(!u||u==="_top"||u==="_parent"||u==="main")&&(r=r||b(this.page.url).href===window.location.href,r?this.replaceState(this.page):this.pushState(this.page)),l||this.resetScrollPositions(),r||P(this.page),C(this.activeVisit);return}q(S),console.log("visit",S),(0,G.default)({method:i,url:E(x).href,data:i==="get"?{}:n,params:i==="get"?n:{},signal:this.activeVisit.cancelToken.signal,headers:{...c,Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0,...h.length?{"X-Inertia-Partial-Component":this.page.component,"X-Inertia-Partial-Data":h.join(",")}:{},...s&&s.length?{"X-Inertia-Error-Bag":s}:{},...this.page.version?{"X-Inertia-Version":this.page.version}:{}},onUploadProgress:o=>{n instanceof FormData&&(o.percentage=o.progress?Math.round(o.progress*100):0,Z(o),W(o))}}).then(o=>{if(!this.isInertiaResponse(o))return Promise.reject({response:o});let a=o.data;o.headers["x-inertia-frame"]&&(u=o.headers["x-inertia-frame"]),h.length&&a.component===this.page.component&&(a.props={...this.page.props,...a.props}),l=this.resolvePreserveOption(l,a),d=this.resolvePreserveOption(d,a),d&&window.history.state?.rememberedState&&a.component===this.page.component&&(a.rememberedState=window.history.state.rememberedState);let v=x,V=b(a.url);return v.hash&&!V.hash&&E(v).href===V.href&&(V.hash=v.hash,a.url=V.href),D&&D(a.props),this.setPage(a,{target:u,visitId:X,replace:r,preserveScroll:l,preserveState:d,preserveURL:p})}).then(o=>{let a=o.props.errors||{};if(Object.keys(a).length>0){let v=s?a[s]?a[s]:{}:a;return B(v),K(v)}return te(o),_(o)}).catch(o=>{if(this.isInertiaResponse(o.response))return this.setPage(o.response.data,{visitId:X});if(this.isLocationVisitResponse(o.response)){let a=b(o.response.headers["x-inertia-location"]),v=x;v.hash&&!a.hash&&E(v).href===a.href&&(a.hash=v.hash),this.locationVisit(a,l===!0)}else if(o.response)Y(o.response)&&re.show(o.response.data);else return Promise.reject(o)}).then(()=>{this.activeVisit&&this.finishVisit(this.activeVisit)}).catch(o=>{if(!G.default.isCancel(o)){let a=Q(o);if(this.activeVisit&&this.finishVisit(this.activeVisit),a)return Promise.reject(o)}})}setPage(e,{visitId:i=this.createVisitId(),replace:n=!1,preserveURL:r=!1,preserveScroll:l=!1,preserveState:d=!1,target:p=null}={}){return Promise.resolve(this.resolveComponent(e.component)).then(h=>(i===this.visitId&&(e.scrollRegions=e.scrollRegions||[],e.rememberedState=e.rememberedState||{},r&&(e.url=window.location.href),!p||p==="_top"||p==="_parent"||p==="main"?(n=n||b(e.url).href===window.location.href,n?this.replaceState(e):this.pushState(e)):e.target=p,this.swapComponent({component:h,page:e,preserveState:d}).then(()=>{l||this.resetScrollPositions(),n||P(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&&e.state.component){let i=e.state,n=this.createVisitId();Promise.resolve(this.resolveComponent(i.component)).then(r=>{n===this.visitId&&(this.page=i,this.swapComponent({component:r,page:i,preserveState:!1}).then(()=>{this.restoreScrollPositions(),P(i)}))})}else{if(!this.page.url)return;let i=b(this.page.url);i.hash=window.location.hash,this.replaceState({...history.state,url:i.href}),this.resetScrollPositions()}}get(e,i={},n={}){return this.visit(e,{...n,method:"get",data:i})}reload(e={}){return this.visit(window.location.href,{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={},n={}){return this.visit(e,{preserveState:!0,...n,method:"post",data:i})}put(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"put",data:i})}patch(e,i={},n={}){return this.visit(e,{preserveState:!0,...n,method:"patch",data:i})}delete(e,i={}){return this.visit(e,{preserveState:!0,...i,method:"delete"})}remember(e,i="default"){se||this.replaceState({...history.state,rememberedState:{...this.page?.rememberedState,[i]:e}})}restore(e="default"){if(!se)return window.history.state?.rememberedState?.[e]}on(e,i){let n=r=>{let l=i(r);r.cancelable&&!r.defaultPrevented&&l===!1&&r.preventDefault()};return document.addEventListener(`inertia:${e}`,n),()=>document.removeEventListener(`inertia:${e}`,n)}};var ve={buildDOMElement(t){let e=document.createElement("template");e.innerHTML=t;let i=e.content.firstChild;if(!t.startsWith("<script "))return i;let n=document.createElement("script");return n.innerHTML=i.innerHTML,i.getAttributeNames().forEach(r=>{n.setAttribute(r,i.getAttribute(r)||"")}),n},isInertiaManagedElement(t){return t.nodeType===Node.ELEMENT_NODE&&t.getAttribute("inertia")!==null},findMatchingElementIndex(t,e){let i=t.getAttribute("inertia");return i!==null?e.findIndex(n=>n.getAttribute("inertia")===i):-1},update:T(function(t){let e=t.map(n=>this.buildDOMElement(n));Array.from(document.head.childNodes).filter(n=>this.isInertiaManagedElement(n)).forEach(n=>{let r=this.findMatchingElementIndex(n,e);if(r===-1){n?.parentNode?.removeChild(n);return}let l=e.splice(r,1)[0];l&&!n.isEqualNode(l)&&n?.parentNode?.replaceChild(l,n)}),e.forEach(n=>document.head.appendChild(n))},1)};function H(t,e,i){let n={},r=0;function l(){let s=r+=1;return n[s]=[],s.toString()}function d(s){s===null||Object.keys(n).indexOf(s)===-1||(delete n[s],c())}function p(s,y=[]){s!==null&&Object.keys(n).indexOf(s)>-1&&(n[s]=y),c()}function h(){let s=e(""),y={...s?{title:`<title inertia="">${s}</title>`}:{}},u=Object.values(n).reduce((f,m)=>f.concat(m),[]).reduce((f,m)=>{if(m.indexOf("<")===-1)return f;if(m.indexOf("<title ")===0){let L=m.match(/(<title [^>]+>)(.*?)(<\/title>)/);return f.title=L?`${L[1]}${e(L[2])}${L[3]}`:m,f}let R=m.match(/ inertia="[^"]+"/);return R?f[R[0]]=m:f[Object.keys(f).length]=m,f},y);return Object.values(u)}function c(){t?i(h()):ve.update(h())}return c(),{forceUpdate:c,createProvider:function(){let s=l();return{update:y=>p(s,y),disconnect:()=>d(s)}}}}var g=O(require("nprogress"),1),ae=null;function be(t){document.addEventListener("inertia:start",Ee(t)),document.addEventListener("inertia:progress",we),document.addEventListener("inertia:finish",ye)}function Ee(t){return function(e){e.detail.visit.noProgress||(ae=setTimeout(()=>g.default.start(),t))}}function we(t){g.default.isStarted()&&t.detail.progress?.percentage&&g.default.set(Math.max(g.default.status,t.detail.progress.percentage/100*.9))}function ye(t){if(clearTimeout(ae),g.default.isStarted())t.detail.visit.completed?g.default.done():t.detail.visit.interrupted?g.default.set(0):t.detail.visit.cancelled&&(g.default.done(),g.default.remove());else return}function xe(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 if (target.closest('[data-inertia-ignore]')) return\n \n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n\n const hint = (target.closest('[data-hint]') as HTMLElement)?.dataset.hint\n const component = (target.closest('[data-component]') as HTMLElement)?.dataset.component\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n\n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n const href = anchorElement.attributes.getNamedItem('href')?.value\n const preserveScroll = anchorElement.dataset['preserve-scroll']\n const preserveState = anchorElement.dataset['preserve-state']\n event.preventDefault()\n event.stopPropagation()\n if (href?.startsWith('#')) {\n const page = this.page\n page.url = anchorElement.href\n this.setPage(page, {preserveScroll, preserveState}).then(() => {\n fireNavigateEvent(page)\n })\n }\n else {\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n hint, component, preserveScroll, preserveState\n })\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 ...history.state,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\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 component = null,\n hint = component,\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 hint,\n component,\n forceFormData,\n transformProps,\n queryStringArrayFormat,\n noProgress: false,\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 if (visit.target) visit.noProgress = true\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 if (hint) {\n Promise.resolve(this.resolveComponent(hint)).then((component) => {\n if (target && target !== '_top' && target !== '_parent' && target !== 'main') { \n this.swapComponent({ component, page: { ...this.page, target, url: urlWithoutHash(url).pathname }, preserveState })\n }\n else {\n this.swapComponent({ component, page: {...this.page, url: urlWithoutHash(url).pathname}, preserveState })\n }\n })\n }\n \n \n fireStartEvent(visit)\n \n if (component) {\n if (!target || target === '_top' || target === '_parent' || target === 'main') { \n replace = replace || hrefToUrl(this.page.url).href === window.location.href\n replace ? this.replaceState(this.page) : this.pushState(this.page)\n }\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(this.page)\n }\n fireFinishEvent(this.activeVisit)\n return\n }\n \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 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 && event.state.component) {\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 if (!this.page.url) return\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...history.state, 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 ...history.state,\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(delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number) {\n return function (event: GlobalEvent<'start'>) {\n if (event.detail.visit.noProgress) return\n timeout = setTimeout(() => NProgress.start(), delay)\n }\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 if (event.defaultPrevented || target.closest('[data-inertia-ignore]')) return\n \n const anchorElement = target.closest('a')\n const frameId = (target.closest('[data-inertia-frame-id]') as HTMLElement)?.dataset.inertiaFrameId\n\n const hint = (target.closest('[data-hint]') as HTMLElement)?.dataset.hint\n const component = (target.closest('[data-component]') as HTMLElement)?.dataset.component\n if (!anchorElement || anchorElement.rel == 'external' || anchorElement.target == '_blank') return\n\n if (anchorElement.href && anchorElement.href.startsWith(location.origin)) {\n const href = anchorElement.attributes.getNamedItem('href')?.value\n const preserveScroll = anchorElement.dataset['preserve-scroll']\n const preserveState = anchorElement.dataset['preserve-state']\n event.preventDefault()\n event.stopPropagation()\n if (href?.startsWith('#')) {\n const page = this.page\n page.url = anchorElement.href\n this.setPage(page, {preserveScroll, preserveState}).then(() => {\n fireNavigateEvent(page)\n })\n }\n else {\n this.visit(anchorElement.href, {\n method: anchorElement.dataset['method'] as Method,\n target: anchorElement.dataset['target'] || frameId,\n hint, component, preserveScroll, preserveState\n })\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 ...history.state,\n scrollRegions: Array.from(this.scrollRegions()).map((region) => {\n return {\n top: region.scrollTop,\n left: region.scrollLeft,\n }\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 component = null,\n hint = component,\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 hint,\n component,\n forceFormData,\n transformProps,\n queryStringArrayFormat,\n noProgress: false,\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 if (visit.target) visit.noProgress = true\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 if (hint) {\n Promise.resolve(this.resolveComponent(hint)).then((component) => {\n if (target && target !== '_top' && target !== '_parent' && target !== 'main') { \n this.swapComponent({ component, page: { ...this.page, target, url: urlWithoutHash(url).pathname }, preserveState })\n }\n else {\n this.swapComponent({ component, page: {...this.page, url: urlWithoutHash(url).pathname}, preserveState })\n }\n })\n }\n \n \n fireStartEvent(visit)\n \n if (component) {\n if (!target || target === '_top' || target === '_parent' || target === 'main') { \n replace = replace || hrefToUrl(this.page.url).href === window.location.href\n replace ? this.replaceState(this.page) : this.pushState(this.page)\n }\n if (!preserveScroll) {\n this.resetScrollPositions()\n }\n if (!replace) {\n fireNavigateEvent(this.page)\n }\n fireFinishEvent(this.activeVisit)\n return\n }\n \n onStart(visit)\n console.log('visit', visit)\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 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 && event.state.component) {\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 if (!this.page.url) return\n const url = hrefToUrl(this.page.url)\n url.hash = window.location.hash\n this.replaceState({ ...history.state, 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 ...history.state,\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(delay))\n document.addEventListener('inertia:progress', progress)\n document.addEventListener('inertia:finish', finish)\n}\n\nfunction start(delay: number) {\n return function (event: GlobalEvent<'start'>) {\n if (event.detail.visit.noProgress) return\n timeout = setTimeout(() => NProgress.start(), delay)\n }\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", "hint", "component", "href", "preserveScroll", "preserveState", "region", "index", "scrollPosition", "currentState", "url", "locationVisit", "urlWithoutHash", "response", "activeVisit", "cancelled", "interrupted", "fireFinishEvent", "visit", "value", "method", "data", "replace", "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", "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", "event", "NProgress", "injectCSS", "color", "element", "setupProgress", "includeCSS", "showSpinner", "shouldIntercept", "event", "isLink", "router", "Router"]
|
|
7
7
|
}
|