inertiax-core 5.0.6 → 5.0.8
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 +2 -2
- package/dist/index.esm.js.map +4 -4
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
- package/types/history.d.ts +0 -1
- package/types/page.d.ts +3 -2
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function T(r,e){let t;return function(...s){clearTimeout(t),t=setTimeout(()=>r.apply(this,s),e)}}var
|
|
1
|
+
function T(r,e){let t;return function(...s){clearTimeout(t),t=setTimeout(()=>r.apply(this,s),e)}}var Te={buildDOMElement(r){let e=document.createElement("template");e.innerHTML=r;let t=e.content.firstChild;if(!r.startsWith("<script "))return t;let s=document.createElement("script");return s.innerHTML=t.innerHTML,t.getAttributeNames().forEach(i=>{s.setAttribute(i,t.getAttribute(i)||"")}),s},isInertiaManagedElement(r){return r.nodeType===Node.ELEMENT_NODE&&r.getAttribute("inertia")!==null},findMatchingElementIndex(r,e){let t=r.getAttribute("inertia");return t!==null?e.findIndex(s=>s.getAttribute("inertia")===t):-1},update:T(function(r){let e=r.map(s=>this.buildDOMElement(s));Array.from(document.head.childNodes).filter(s=>this.isInertiaManagedElement(s)).forEach(s=>{let i=this.findMatchingElementIndex(s,e);if(i===-1){s?.parentNode?.removeChild(s);return}let o=e.splice(i,1)[0];o&&!s.isEqualNode(o)&&s?.parentNode?.replaceChild(o,s)}),e.forEach(s=>document.head.appendChild(s))},1)};function ne(r,e,t){let s={},i=0;function o(){let l=i+=1;return s[l]=[],l.toString()}function p(l){l===null||Object.keys(s).indexOf(l)===-1||(delete s[l],u())}function d(l,f=[]){l!==null&&Object.keys(s).indexOf(l)>-1&&(s[l]=f),u()}function v(){let l=e(""),f={...l?{title:`<title inertia="">${l}</title>`}:{}},K=Object.values(s).reduce((y,P)=>y.concat(P),[]).reduce((y,P)=>{if(P.indexOf("<")===-1)return y;if(P.indexOf("<title ")===0){let O=P.match(/(<title [^>]+>)(.*?)(<\/title>)/);return y.title=O?`${O[1]}${e(O[2])}${O[3]}`:P,y}let ie=P.match(/ inertia="[^"]+"/);return ie?y[ie[0]]=P:y[Object.keys(y).length]=P,y},f);return Object.values(K)}function u(){r?t(v()):Te.update(v())}return u(),{forceUpdate:u,createProvider:function(){let l=o();return{update:f=>d(l,f),disconnect:()=>p(l)}}}}import b from"nprogress";var A=(()=>{if(typeof document>"u")return null;let r=document.createElement("style");return r.innerHTML="#nprogress { display: none; }",r})(),L=0,Ve=()=>{if(A&&document.head.contains(A))return document.head.removeChild(A)},U=(r=!1)=>{L=Math.max(0,L-1),(r||L===0)&&Ve()},H=()=>{L++,A&&!document.head.contains(A)&&document.head.appendChild(A)};function ke(r){document.addEventListener("inertia:start",e=>Ie(e,r)),document.addEventListener("inertia:progress",Oe)}function Ie(r,e){r.detail.visit.showProgress||H();let t=setTimeout(()=>b.start(),e);document.addEventListener("inertia:finish",s=>Le(s,t),{once:!0})}function Oe(r){b.isStarted()&&r.detail.progress?.percentage&&b.set(Math.max(b.status,r.detail.progress.percentage/100*.9))}function Le(r,e){clearTimeout(e),b.isStarted()&&(r.detail.visit.completed?b.done():r.detail.visit.interrupted?b.set(0):r.detail.visit.cancelled&&(b.done(),b.remove()))}function Ue(r){let e=document.createElement("style");e.textContent=`
|
|
2
2
|
#nprogress {
|
|
3
3
|
pointer-events: none;
|
|
4
4
|
}
|
|
@@ -69,5 +69,5 @@ function T(r,e){let t;return function(...s){clearTimeout(t),t=setTimeout(()=>r.a
|
|
|
69
69
|
0% { transform: rotate(0deg); }
|
|
70
70
|
100% { transform: rotate(360deg); }
|
|
71
71
|
}
|
|
72
|
-
`,document.head.appendChild(e)}function oe({delay:r=250,color:e="#29d",includeCSS:t=!0,showSpinner:s=!1}={}){Ve(r),v.configure({showSpinner:s}),t&&Le(e)}function ae(r){let e=r.currentTarget.tagName.toLowerCase()==="a";return!(r.target&&(r?.target).isContentEditable||r.defaultPrevented||e&&r.which>1||e&&r.altKey||e&&r.ctrlKey||e&&r.metaKey||e&&r.shiftKey||e&&"button"in r&&r.button!==0)}import Ue from"deepmerge";import*as N from"qs";function D(r){return r instanceof File||r instanceof Blob||r instanceof FileList&&r.length>0||r instanceof FormData&&Array.from(r.values()).some(e=>D(e))||typeof r=="object"&&r!==null&&Object.values(r).some(e=>D(e))}var j=r=>r instanceof FormData;function $(r,e=new FormData,t=null){r=r||{};for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&ce(e,le(t,s),r[s]);return e}function le(r,e){return r?r+"["+e+"]":e}function ce(r,e,t){if(Array.isArray(t))return Array.from(t.keys()).forEach(s=>ce(r,le(e,s.toString()),t[s]));if(t instanceof Date)return r.append(e,t.toISOString());if(t instanceof File)return r.append(e,t,t.name);if(t instanceof Blob)return r.append(e,t);if(typeof t=="boolean")return r.append(e,t?"1":"0");if(typeof t=="string")return r.append(e,t);if(typeof t=="number")return r.append(e,`${t}`);if(t==null)return r.append(e,"");$(t,r,e)}function h(r){return new URL(r.toString(),typeof window>"u"?void 0:window.location.toString())}var pe=(r,e,t,s,i)=>{let o=typeof r=="string"?h(r):r;if((D(e)||s)&&!j(e)&&(e=$(e)),j(e))return[o,e];let[u,d]=ue(t,o,e,i);return[h(u),d]};function ue(r,e,t,s="brackets"){let i=/^https?:\/\//.test(e.toString()),o=i||e.toString().startsWith("/"),u=!o&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),d=e.toString().includes("?")||r==="get"&&Object.keys(t).length,P=e.toString().includes("#"),p=new URL(e.toString(),"http://localhost");return r==="get"&&Object.keys(t).length&&(p.search=N.stringify(Ue(N.parse(p.search,{ignoreQueryPrefix:!0}),t),{encodeValuesOnly:!0,arrayFormat:s}),t={}),[[i?`${p.protocol}//${p.host}`:"",o?p.pathname:"",u?p.pathname.substring(1):"",d?p.search:"",P?p.hash:""].join(""),t]}function R(r){return r=new URL(r.href),r.hash="",r}var _=(r,e)=>{r.hash&&!e.hash&&R(r).href===e.href&&(e.hash=r.hash)},V=(r,e)=>R(r).href===R(e).href;function g(r,e){return document.dispatchEvent(new CustomEvent(`inertia:${r}`,e))}var W=r=>g("before",{cancelable:!0,detail:{visit:r}}),de=r=>g("error",{detail:{errors:r}}),he=r=>g("exception",{cancelable:!0,detail:{exception:r}}),me=r=>g("finish",{detail:{visit:r}}),fe=r=>g("invalid",{cancelable:!0,detail:{response:r}}),w=r=>g("navigate",{detail:{page:r}}),ge=r=>g("progress",{detail:{progress:r}}),ve=r=>g("start",{detail:{visit:r}}),be=r=>g("success",{detail:{page:r}}),ye=(r,e)=>g("prefetched",{detail:{fetchedAt:Date.now(),response:r.data,visit:e}}),Pe=r=>g("prefetching",{detail:{visit:r}});var c=class{static set(e,t){typeof window<"u"&&window.sessionStorage.setItem(e,JSON.stringify(t))}static get(e){if(typeof window<"u")return JSON.parse(window.sessionStorage.getItem(e)||"null")}static merge(e,t){let s=this.get(e);s===null?this.set(e,t):this.set(e,{...s,...t})}static remove(e){typeof window<"u"&&window.sessionStorage.removeItem(e)}static removeNested(e,t){let s=this.get(e);s!==null&&(delete s[t],this.set(e,s))}static exists(e){try{return this.get(e)!==null}catch{return!1}}static clear(){typeof window<"u"&&window.sessionStorage.clear()}};c.locationVisitKey="inertiaLocationVisit";var we=async r=>{if(typeof window>"u")throw new Error("Unable to encrypt history");let e=Se(),t=await Re(),s=await Me(t);if(!s)throw new Error("Unable to encrypt history");return await He(e,s,r)},x={key:"historyKey",iv:"historyIv"},Ee=async r=>{let e=Se(),t=await Re();if(!t)throw new Error("Unable to decrypt history");return await De(e,t,r)},He=async(r,e,t)=>{if(typeof window>"u")throw new Error("Unable to encrypt history");if(typeof window.crypto.subtle>"u")return console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve(t);let s=new TextEncoder,i=JSON.stringify(t),o=new Uint8Array(i.length);return s.encodeInto(i,o),window.crypto.subtle.encrypt({name:"AES-GCM",iv:r},e,o)},De=async(r,e,t)=>{if(typeof window.crypto.subtle>"u")return console.warn("Decryption is not supported in this environment. SSL is required."),Promise.resolve(t);let s=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:r},e,t);return JSON.parse(new TextDecoder().decode(s))},Se=()=>{let r=c.get(x.iv);if(r)return new Uint8Array(r);let e=window.crypto.getRandomValues(new Uint8Array(12));return c.set(x.iv,Array.from(e)),e},Ne=async()=>typeof window.crypto.subtle>"u"?(console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve(null)):window.crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),Ge=async r=>{if(typeof window.crypto.subtle>"u")return console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve();let e=await window.crypto.subtle.exportKey("raw",r);c.set(x.key,Array.from(new Uint8Array(e)))},Me=async r=>{if(r)return r;let e=await Ne();return e?(await Ge(e),e):null},Re=async()=>{let r=c.get(x.key);return r?await window.crypto.subtle.importKey("raw",new Uint8Array(r),{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]):null};var m=class{static save(e){a.replaceState({...e,scrollRegions:Array.from(this.regions()).map(t=>({top:t.scrollTop,left:t.scrollLeft}))})}static regions(){return document.querySelectorAll("[scroll-region]")}static reset(e){typeof window<"u"&&window.scrollTo(0,0),this.regions().forEach(t=>{typeof t.scrollTo=="function"?t.scrollTo(0,0):(t.scrollTop=0,t.scrollLeft=0)}),this.save(e),window.location.hash&&setTimeout(()=>document.getElementById(window.location.hash.slice(1))?.scrollIntoView())}static restore(e){e.scrollRegions&&this.regions().forEach((t,s)=>{let i=e.scrollRegions[s];i&&(typeof t.scrollTo=="function"?t.scrollTo(i.left,i.top):(t.scrollTop=i.top,t.scrollLeft=i.left))})}static onScroll(e){let t=e.target;typeof t.hasAttribute=="function"&&t.hasAttribute("scroll-region")&&this.save(n.get())}};var Q=class{constructor(){this.page={frames:{},version:null,scrollRegions:[]};this.swappers={};this.componentId={};this.listeners=[];this.isFirstPageLoad=!0;this.cleared=!1}init({frame:e,initialState:t,swapComponent:s}){var i;return(i=this.page).version||(i.version=t?.version),t?.component&&this.merge({frames:{[e]:t}}),this.swappers[e]=s,this}async set(e,{replace:t=!1,preserveScroll:s=!1,preserveState:i=!1}={}){this.componentId={};let o=this.componentId;return e.clearHistory&&a.clear(),this.resolve(e.frames).then(u=>{if(o===this.componentId){if(e.scrollRegions??(e.scrollRegions=[]),e.frames._top?.url===void 0){let d=typeof window<"u"?window.location:new URL(e.frames._top.url);t=t||V(h(e.frames._top?.url),d)}return t?a.replaceState(e):a.pushState(e),this.page=e,this.cleared=!1,this.isFirstPageLoad&&this.fireEventsFor("firstLoad"),this.isFirstPageLoad=!1,this.swap({components:u,page:e,preserveState:i}).then(()=>{s||m.reset(e),t||w(e)})}})}async setQuietly(e,{preserveState:t=!1}={}){return this.resolve(e.frames).then(s=>(this.page=e,this.cleared=!1,this.swap({components:s,page:e,preserveState:t})))}async setFrame(e,t,s={}){return this.set({...this.page,frames:{...this.page.frames,[e]:t}},s)}clear(){this.cleared=!0}isCleared(){return this.cleared}frame(e){return this.page.frames[e]||{}}get(){return this.page}merge(e){this.page={...this.page,...e,frames:{...this.page.frames,...e.frames}}}setUrlHash(e){this.page.frames._top.url+=e}remember(e,t){this.page.frames[e].rememberedState=t}scrollRegions(e){this.page.scrollRegions=e}swap({components:e,page:t,preserveState:s}){return Promise.all(Object.entries(e).map(([i,o])=>this.swappers[i]({component:o,frame:t.frames[i],preserveState:s})))}async resolve(e){let t={};return await Promise.all(Object.keys(e).map(async s=>{let i=e[s];t[s]=await k.resolveComponent(i.component)})),t}isTheSame(e,t){return this.page.frames[e].component===t.component}on(e,t){return this.listeners.push({event:e,callback:t}),()=>{this.listeners=this.listeners.filter(s=>s.event!==e&&s.callback!==t)}}fireEventsFor(e){this.listeners.filter(t=>t.event===e).forEach(t=>t.callback())}},n=new Q;var G=typeof window>"u",X=class{constructor(){this.rememberedState="rememberedState";this.scrollRegions="scrollRegions";this.preserveUrl=!1;this.current={};this.queue=[];this.initialState=null}remember(e,t,s){this.replaceState({...n.get(),frames:{...n.get().frames,[e]:{...n.get().frames[e],rememberedState:{...n.get().frames[e]?.rememberedState??{},[s]:t}}}})}restore(e,t){if(!G)return this.initialState?.frames?.[e]?.rememberedState?.[t]}pushState(e){G||this.preserveUrl||(this.current=e,this.addToQueue(()=>this.getPageData(e).then(t=>{window.history.pushState({page:t,timestamp:Date.now()},"",e.frames._top.url)})))}getPageData(e){return new Promise(t=>e.encryptHistory?we(e).then(t):t(e))}processQueue(){let e=this.queue.shift();return e?e().then(()=>this.processQueue()):Promise.resolve()}decrypt(e=null){if(G)return Promise.resolve(e??n.get());let t=e??window.history.state?.page;return this.decryptPageData(t).then(s=>{if(!s)throw new Error("Unable to decrypt history");return this.initialState===null?this.initialState=s??void 0:this.current=s??{},s})}decryptPageData(e){return e instanceof ArrayBuffer?Ee(e):Promise.resolve(e)}replaceState(e){n.merge(e),!(G||this.preserveUrl)&&(this.current=e,this.addToQueue(()=>this.getPageData(e).then(t=>{window.history.replaceState({page:t,timestamp:Date.now()},"",e.frames._top.url)})))}addToQueue(e){this.queue.push(e),this.processQueue()}getState(e,t){return this.current?.[e]??t}deleteRememberedState(){this.current.frames&&(Object.values(this.current.frames).forEach(e=>{delete e.rememberedState}),this.replaceState(this.current))}hasAnyState(){return!!this.getAllState()}clear(){c.remove(x.key),c.remove(x.iv)}isValidState(e){return!!e.page}getAllState(){return this.current}},a=new X;var J=class{constructor(){this.internalListeners=[]}init(){typeof window<"u"&&window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),typeof document<"u"&&document.addEventListener("scroll",T(m.onScroll.bind(m),100),!0)}onGlobalEvent(e,t){let s=i=>{let o=t(i);i.cancelable&&!i.defaultPrevented&&o===!1&&i.preventDefault()};return this.registerListener(`inertia:${e}`,s)}on(e,t){return this.internalListeners.push({event:e,listener:t}),()=>{this.internalListeners=this.internalListeners.filter(s=>s.listener!==t)}}onMissingHistoryItem(){n.clear(),this.fireInternalEvent("missingHistoryItem")}fireInternalEvent(e){this.internalListeners.filter(t=>t.event===e).forEach(t=>t.listener())}registerListener(e,t){return document.addEventListener(e,t),()=>document.removeEventListener(e,t)}handlePopstateEvent(e){let t=e.state||null;if(t===null){let s=h(n.frame("_top").url);s.hash=window.location.hash,a.replaceState({...n.get(),frames:{...n.get().frames,_top:{...n.frame("_top"),url:s.href}}}),m.reset(n.get());return}if(a.isValidState(t)){a.decrypt(t.page).then(s=>{n.setQuietly(s,{preserveState:!1}).then(()=>{m.restore(n.get()),w(n.get())})}).catch(()=>{this.onMissingHistoryItem()});return}this.onMissingHistoryItem()}},E=new J;var z=class{constructor(){typeof window<"u"&&window?.performance.getEntriesByType("navigation").length>0?this.type=window.performance.getEntriesByType("navigation")[0].type:this.type="navigate"}get(){return this.type}isBackForward(){return this.type==="back_forward"}isReload(){return this.type==="reload"}},Y=new z;var M=class{static handle(){this.clearRememberedStateOnReload(),[this.handleBackForward,this.handleLocation,this.handleDefault].find(t=>t.bind(this)())}static clearRememberedStateOnReload(){Y.isReload()&&a.deleteRememberedState()}static handleBackForward(){return!Y.isBackForward()||!a.hasAnyState()||!window.history.state?.page?!1:(a.decrypt().then(e=>{n.set(e,{preserveScroll:!0,preserveState:!0}).then(()=>{m.restore(n.get()),w(n.get())})}).catch(()=>{E.onMissingHistoryItem()}),!0)}static handleLocation(){if(!c.exists(c.locationVisitKey))return!1;let e=c.get(c.locationVisitKey)||{};return c.remove(c.locationVisitKey),typeof window<"u"&&n.setUrlHash(window.location.hash),a.decrypt().then(()=>{let t=a.getState("frames",{}),s=a.getState(a.scrollRegions,[]);Object.entries(t).forEach(([i,o])=>{n.remember(i,o.rememberedState)}),n.scrollRegions(s),n.set(n.get(),{preserveScroll:e.preserveScroll,preserveState:!0}).then(()=>{e.preserveScroll&&m.restore(n.get()),w(n.get())})}).catch(()=>{E.onMissingHistoryItem()}),!0}static handleDefault(){typeof window<"u"&&n.setUrlHash(window.location.hash),n.set(n.get(),{preserveState:!0}).then(()=>{w(n.get())})}};var B=class{constructor(e,t,s){this.id=null;this.throttle=!1;this.keepAlive=!1;this.cbCount=0;this.keepAlive=s.keepAlive??!1,this.cb=t,this.interval=e,(s.autoStart??!0)&&this.start()}stop(){this.id&&clearInterval(this.id)}start(){typeof window>"u"||(this.stop(),this.id=window.setInterval(()=>{(!this.throttle||this.cbCount%10===0)&&this.cb(),this.throttle&&this.cbCount++},this.interval))}isInBackground(e){this.throttle=this.keepAlive?!1:e,this.throttle&&(this.cbCount=0)}};var Z=class{constructor(){this.polls=[];this.setupVisibilityListener()}add(e,t,s){let i=new B(e,t,s);return this.polls.push(i),{stop:()=>i.stop(),start:()=>i.start()}}clear(){this.polls.forEach(e=>e.stop()),this.polls=[]}setupVisibilityListener(){typeof document>"u"||document.addEventListener("visibilitychange",()=>{this.polls.forEach(e=>e.isInBackground(document.hidden))},!1)}},xe=new Z;var ee=(r,e,t)=>{if(r===e)return!0;for(let s in r)if(!t.includes(s)&&r[s]!==e[s]&&!Be(r[s],e[s]))return!1;return!0},Be=(r,e)=>{switch(typeof r){case"object":return ee(r,e,[]);case"function":return r.toString()===e.toString();default:return r===e}};var Ke={ms:1,s:1e3,m:6e4,h:36e5,d:864e5},te=r=>{if(typeof r=="number")return r;for(let[e,t]of Object.entries(Ke))if(r.endsWith(e))return parseFloat(r)*t;return parseInt(r)};var re=class{constructor(){this.cached=[];this.inFlightRequests=[];this.removalTimers=[];this.currentUseId=null}add(e,t,{cacheFor:s}){if(this.findInFlight(e))return Promise.resolve();let o=this.findCached(e);if(!e.fresh&&o&&o.staleTimestamp>Date.now())return Promise.resolve();let[u,d]=this.extractStaleValues(s),P=new Promise((p,l)=>{t({...e,onCancel:()=>{this.remove(e),e.onCancel(),l()},onError:f=>{this.remove(e),e.onError(f),l()},onPrefetching(f){e.onPrefetching(f)},onPrefetched(f,K){e.onPrefetched(f,K)},onPrefetchResponse(f){p(f)}})}).then(p=>(this.remove(e),this.cached.push({params:{...e},staleTimestamp:Date.now()+u,response:P,singleUse:s===0,timestamp:Date.now(),inFlight:!1}),this.scheduleForRemoval(e,d),this.inFlightRequests=this.inFlightRequests.filter(l=>!this.paramsAreEqual(l.params,e)),p.handlePrefetch(),p));return this.inFlightRequests.push({params:{...e},response:P,staleTimestamp:null,inFlight:!0}),P}removeAll(){this.cached=[],this.removalTimers.forEach(e=>{clearTimeout(e.timer)}),this.removalTimers=[]}remove(e){this.cached=this.cached.filter(t=>!this.paramsAreEqual(t.params,e)),this.clearTimer(e)}extractStaleValues(e){let[t,s]=this.cacheForToStaleAndExpires(e);return[te(t),te(s)]}cacheForToStaleAndExpires(e){if(!Array.isArray(e))return[e,e];switch(e.length){case 0:return[0,0];case 1:return[e[0],e[0]];default:return[e[0],e[1]]}}clearTimer(e){let t=this.removalTimers.find(s=>this.paramsAreEqual(s.params,e));t&&(clearTimeout(t.timer),this.removalTimers=this.removalTimers.filter(s=>s!==t))}scheduleForRemoval(e,t){if(!(typeof window>"u")&&(this.clearTimer(e),t>0)){let s=window.setTimeout(()=>this.remove(e),t);this.removalTimers.push({params:e,timer:s})}}get(e){return this.findCached(e)||this.findInFlight(e)}use(e,t){let s=`${t.url.pathname}-${Date.now()}-${Math.random().toString(36).substring(7)}`;return this.currentUseId=s,e.response.then(i=>{if(this.currentUseId===s)return i.mergeParams({...t,onPrefetched:()=>{}}),this.removeSingleUseItems(t),i.handle()})}removeSingleUseItems(e){this.cached=this.cached.filter(t=>this.paramsAreEqual(t.params,e)?!t.singleUse:!0)}findCached(e){return this.cached.find(t=>this.paramsAreEqual(t.params,e))||null}findInFlight(e){return this.inFlightRequests.find(t=>this.paramsAreEqual(t.params,e))||null}paramsAreEqual(e,t){return ee(e,t,["showProgress","replace","prefetch","onBefore","onStart","onProgress","onFinish","onCancel","onSuccess","onError","onPrefetched","onCancelToken","onPrefetching","async"])}},S=new re;import{default as Ae}from"axios";var C=class{constructor(e){this.callbacks=[];if(!e.prefetch)this.params=e;else{let t={onBefore:this.wrapCallback(e,"onBefore"),onStart:this.wrapCallback(e,"onStart"),onProgress:this.wrapCallback(e,"onProgress"),onFinish:this.wrapCallback(e,"onFinish"),onCancel:this.wrapCallback(e,"onCancel"),onSuccess:this.wrapCallback(e,"onSuccess"),onError:this.wrapCallback(e,"onError"),onCancelToken:this.wrapCallback(e,"onCancelToken"),onPrefetched:this.wrapCallback(e,"onPrefetched"),onPrefetching:this.wrapCallback(e,"onPrefetching")};this.params={...e,...t,onPrefetchResponse:e.onPrefetchResponse||(()=>{})}}}static create(e){return new C(e)}data(){return this.params.method==="get"?{}:this.params.data}queryParams(){return this.params.method==="get"?this.params.data:{}}isPartial(){return this.params.only.length>0||this.params.except.length>0||this.params.reset.length>0}onCancelToken(e){this.params.onCancelToken({cancel:e})}markAsFinished(){this.params.completed=!0,this.params.cancelled=!1,this.params.interrupted=!1}markAsCancelled({cancelled:e=!0,interrupted:t=!1}){this.params.onCancel(),this.params.completed=!1,this.params.cancelled=e,this.params.interrupted=t}wasCancelledAtAll(){return this.params.cancelled||this.params.interrupted}onFinish(){this.params.onFinish(this.params)}onStart(){this.params.onStart(this.params)}onPrefetching(){this.params.onPrefetching(this.params)}onPrefetchResponse(e){this.params.onPrefetchResponse&&this.params.onPrefetchResponse(e)}all(){return this.params}headers(){let e={...this.params.headers};this.isPartial()&&(e["X-Inertia-Partial-Component"]=n.frame(this.params.frame).component);let t=this.params.only.concat(this.params.reset);return t.length>0&&(e["X-Inertia-Partial-Data"]=t.join(",")),this.params.except.length>0&&(e["X-Inertia-Partial-Except"]=this.params.except.join(",")),this.params.reset.length>0&&(e["X-Inertia-Reset"]=this.params.reset.join(",")),this.params.errorBag&&this.params.errorBag.length>0&&(e["X-Inertia-Error-Bag"]=this.params.errorBag),e}setPreserveOptions(e){this.params.preserveScroll=this.resolvePreserveOption(this.params.preserveScroll,e),this.params.preserveState=this.resolvePreserveOption(this.params.preserveState,e)}runCallbacks(){this.callbacks.forEach(({name:e,args:t})=>{this.params[e](...t)})}merge(e){this.params={...this.params,...e}}wrapCallback(e,t){return(...s)=>{this.recordCallback(t,s),e[t](...s)}}recordCallback(e,t){this.callbacks.push({name:e,args:t})}resolvePreserveOption(e,t){return typeof e=="function"?e(t):e==="errors"?Object.keys(t.frames[this.params.frame].props.errors||{}).length>0:e}};var qe={modal:null,listener:null,show(r){typeof r=="object"&&(r=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(r)}`);let e=document.createElement("html");e.innerHTML=r,e.querySelectorAll("a").forEach(s=>s.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(r){r.keyCode===27&&this.hide()}};var se=class{constructor(){this.queue=[];this.processing=!1}add(e){this.queue.push(e)}async process(){return this.processing||(this.processing=!0,await this.processQueue(),this.processing=!1),Promise.resolve()}async processQueue(){let e=this.queue.shift();return e?(await e.process(),this.processQueue()):Promise.resolve()}},Fe=new se,q=class{constructor(e,t,s){this.requestParams=e;this.response=t;this.originatingPage=s}static create(e,t,s){return new q(e,t,s)}async handlePrefetch(){V(this.requestParams.all().url,window.location)&&this.handle()}async handle(){return Fe.add(this),Fe.process()}async process(){if(this.requestParams.all().prefetch)return this.requestParams.all().prefetch=!1,this.requestParams.all().onPrefetched(this.response,this.requestParams.all()),ye(this.response,this.requestParams.all()),Promise.resolve();if(this.requestParams.runCallbacks(),!this.isInertiaResponse())return this.handleNonInertiaResponse();await a.processQueue(),a.preserveUrl=this.requestParams.all().preserveUrl,await this.setFrame();let e=this.requestParams.all().frame,t=n.frame(e).props.errors||{};if(Object.keys(t).length>0){let s=this.getScopedErrors(t);return de(s),this.requestParams.all().onError(s)}be(n.get()),await this.requestParams.all().onSuccess(n.get()),a.preserveUrl=!1}mergeParams(e){this.requestParams.merge(e)}async handleNonInertiaResponse(){if(this.isLocationVisit()){let t=h(this.getHeader("x-inertia-location"));return _(this.requestParams.all().url,t),this.locationVisit(t)}let e={...this.response,data:this.getDataFromResponse(this.response.data)};if(fe(e))return qe.show(e.data)}isInertiaResponse(){return this.hasHeader("x-inertia")}hasStatus(e){return this.response.status===e}getHeader(e){return this.response.headers[e]}hasHeader(e){return this.getHeader(e)!==void 0}isLocationVisit(){return this.hasStatus(409)&&this.hasHeader("x-inertia-location")}locationVisit(e){try{if(c.set(c.locationVisitKey,{preserveScroll:this.requestParams.all().preserveScroll===!0}),typeof window>"u")return;V(window.location,e)?window.location.reload():window.location.href=e.href}catch{return!1}}async setFrame(){let e=this.getDataFromResponse(this.response.data);return this.shouldSetFrame(e)?(this.mergeProps(e),await this.setRememberedState(e),this.requestParams.setPreserveOptions(e),e.url=a.preserveUrl?n.frame("_top").url:this.pageUrl(e),delete e.version,n.setFrame(this.requestParams.all().frame,e,{replace:this.requestParams.all().replace,preserveScroll:this.requestParams.all().preserveScroll,preserveState:this.requestParams.all().preserveState})):Promise.resolve()}getDataFromResponse(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}shouldSetFrame(e){let t=this.requestParams.all().frame;if(!this.requestParams.all().async||this.originatingPage.frames[t].component!==e.component)return!0;if(this.originatingPage.frames[t].component!==n.frame(t).component)return!1;let s=h(this.originatingPage.frames._top.url),i=h(n.frame("_top").url);return s.origin===i.origin&&s.pathname===i.pathname}pageUrl(e){let t=h(e.url);return _(this.requestParams.all().url,t),t.href}mergeProps(e){let t=this.requestParams.all().frame;this.requestParams.isPartial()&&e.component===n.frame(t).component&&((e.mergeProps||[]).forEach(i=>{let o=e.props[i];Array.isArray(o)?e.props[i]=[...n.frame(t).props[i]||[],...o]:typeof o=="object"&&(e.props[i]={...n.frame(t).props[i]||[],...o})}),e.props={...n.frame(t).props,...e.props})}async setRememberedState(e){let t=await a.getState("frames",{}),s=this.requestParams.all().frame,i=t[s]?.rememberedState||{};this.requestParams.all().preserveState&&i&&e.component===n.frame(s).component&&(e.rememberedState=i)}getScopedErrors(e){return this.requestParams.all().errorBag?e[this.requestParams.all().errorBag||""]||{}:e}};var F=class{constructor(e,t){this.page=t;this.requestHasFinished=!1;this.requestParams=C.create(e),this.cancelToken=new AbortController}static create(e,t){return new F(e,t)}async send(){this.requestParams.onCancelToken(()=>this.cancel({cancelled:!0})),ve(this.requestParams.all()),this.requestParams.onStart(),this.requestParams.all().prefetch&&(this.requestParams.onPrefetching(),Pe(this.requestParams.all()));let e=this.requestParams.all().prefetch;return Ae({method:this.requestParams.all().method,url:R(this.requestParams.all().url).href,data:this.requestParams.data(),params:this.requestParams.queryParams(),signal:this.cancelToken.signal,headers:this.getHeaders(),onUploadProgress:this.onProgress.bind(this),responseType:"text"}).then(t=>(this.response=q.create(this.requestParams,t,this.page),this.response.handle())).catch(t=>t?.response?(this.response=q.create(this.requestParams,t.response,this.page),this.response.handle()):Promise.reject(t)).catch(t=>{if(!Ae.isCancel(t)&&he(t))return Promise.reject(t)}).finally(()=>{this.finish(),e&&this.response&&this.requestParams.onPrefetchResponse(this.response)})}finish(){this.requestParams.wasCancelledAtAll()||(this.requestParams.markAsFinished(),this.fireFinishEvents())}fireFinishEvents(){this.requestHasFinished||(this.requestHasFinished=!0,me(this.requestParams.all()),this.requestParams.onFinish())}cancel({cancelled:e=!1,interrupted:t=!1}){this.requestHasFinished||(this.cancelToken.abort(),this.requestParams.markAsCancelled({cancelled:e,interrupted:t}),this.fireFinishEvents())}onProgress(e){this.requestParams.data()instanceof FormData&&(e.percentage=e.progress?Math.round(e.progress*100):0,ge(e),this.requestParams.all().onProgress(e))}getHeaders(){let e={...this.requestParams.headers(),Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0},t=this.requestParams.all().frame,s=n.frame(t).url;return s&&(e["X-Inertia-Referer"]=R(h(s)).href),n.get().version&&(e["X-Inertia-Version"]=n.get().version),e}};var I=class{constructor({maxConcurrent:e,interruptible:t}){this.requests=[];this.maxConcurrent=e,this.interruptible=t}send(e){this.requests.push(e),e.send().then(()=>{this.requests=this.requests.filter(t=>t!==e)})}interruptInFlight(){this.cancel({interrupted:!0},!1)}cancelInFlight(){this.cancel({cancelled:!0},!0)}cancel({cancelled:e=!1,interrupted:t=!1}={},s){if(!this.shouldCancel(s))return;this.requests.shift()?.cancel({interrupted:t,cancelled:e})}shouldCancel(e){return e?!0:this.interruptible&&this.requests.length>=this.maxConcurrent}};var k=class{constructor({frame:e,initialState:t,swapComponent:s}){this.syncRequestStream=new I({maxConcurrent:1,interruptible:!0});this.asyncRequestStream=new I({maxConcurrent:1/0,interruptible:!1});this.frame=e,!import.meta.env.SSR&&(n.init({frame:e,initialState:t,swapComponent:s}),e==="_top"&&(M.handle(),E.init(),E.on("missingHistoryItem",()=>{typeof window<"u"&&this.visit(window.location.href,{preserveState:!0,preserveScroll:!0,replace:!0})}),E.onGlobalEvent("navigate",()=>{this.loadDeferredProps()})))}get(e,t={},s={}){return this.visit(e,{...s,method:"get",data:t})}post(e,t={},s={}){return this.visit(e,{preserveState:!0,...s,method:"post",data:t})}put(e,t={},s={}){return this.visit(e,{preserveState:!0,...s,method:"put",data:t})}patch(e,t={},s={}){return this.visit(e,{preserveState:!0,...s,method:"patch",data:t})}delete(e,t={}){return this.visit(e,{preserveState:!0,...t,method:"delete"})}reload(e={}){if(!(typeof window>"u"))return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0,async:!0,headers:{...e.headers||{},"Cache-Control":"no-cache"}})}remember(e,t="default"){a.remember(this.frame,e,t)}restore(e="default"){return a.restore(this.frame,e)}on(e,t){return E.onGlobalEvent(e,t)}cancel(){this.syncRequestStream.cancelInFlight()}cancelAll(){this.asyncRequestStream.cancelInFlight(),this.syncRequestStream.cancelInFlight()}poll(e,t={},s={}){return xe.add(e,()=>this.reload(t),{autoStart:s.autoStart??!0,keepAlive:s.keepAlive??!1})}visit(e,t={}){if(import.meta.env.SSR)return;let s=this.getPendingVisit(e,{...t,showProgress:t.showProgress??!t.async}),i=this.getVisitEvents(t);if(i.onBefore(s)===!1||!W(s))return;let o=s.async?this.asyncRequestStream:this.syncRequestStream;o.interruptInFlight(),!n.isCleared()&&!s.preserveUrl&&m.save(n.get());let u={...s,...i},d=S.get(u);d?(U(d.inFlight),S.use(d,u)):(U(!0),o.send(F.create(u,n.get())))}getCached(e,t={}){return S.findCached(this.getPrefetchParams(e,t))}flush(e,t={}){S.remove(this.getPrefetchParams(e,t))}flushAll(){S.removeAll()}getPrefetching(e,t={}){return S.findInFlight(this.getPrefetchParams(e,t))}prefetch(e,t={},{cacheFor:s}){if(t.method!=="get")throw new Error("Prefetch requests must use the GET method");let i=this.getPendingVisit(e,{...t,async:!0,showProgress:!1,prefetch:!0}),o=this.getVisitEvents(t);if(o.onBefore(i)===!1||!W(i))return;H(),this.asyncRequestStream.interruptInFlight();let u={...i,...o};S.add(u,d=>{this.asyncRequestStream.send(F.create(d,n.get()))},{cacheFor:s})}clearHistory(){a.clear()}decryptHistory(){return a.decrypt()}getPrefetchParams(e,t){return{...this.getPendingVisit(e,{...t,async:!0,showProgress:!1,prefetch:!0}),...this.getVisitEvents(t)}}getPendingVisit(e,t,s={}){let i={method:"get",data:{},replace:!1,preserveScroll:!1,preserveState:!1,only:[],except:[],headers:{},errorBag:"",forceFormData:!1,queryStringArrayFormat:"brackets",async:!1,showProgress:!0,fresh:!1,reset:[],preserveUrl:!1,prefetch:!1,frame:this.frame,...t},[o,u]=pe(e,i.data,i.method,i.forceFormData,i.queryStringArrayFormat);return{cancelled:!1,completed:!1,interrupted:!1,...i,...s,url:o,data:u}}getVisitEvents(e){return{onCancelToken:e.onCancelToken||(()=>{}),onBefore:e.onBefore||(()=>{}),onStart:e.onStart||(()=>{}),onProgress:e.onProgress||(()=>{}),onFinish:e.onFinish||(()=>{}),onCancel:e.onCancel||(()=>{}),onSuccess:e.onSuccess||(()=>{}),onError:e.onError||(()=>{}),onPrefetched:e.onPrefetched||(()=>{}),onPrefetching:e.onPrefetching||(()=>{})}}loadDeferredProps(){let e=n.frame(this.frame)?.deferredProps;e&&Object.entries(e).forEach(([t,s])=>{this.reload({only:s})})}};export{k as Router,ne as createHeadManager,H as hideProgress,h as hrefToUrl,ue as mergeDataIntoQueryString,U as revealProgress,oe as setupProgress,ae as shouldIntercept,R as urlWithoutHash};
|
|
72
|
+
`,document.head.appendChild(e)}function oe({delay:r=250,color:e="#29d",includeCSS:t=!0,showSpinner:s=!1}={}){ke(r),b.configure({showSpinner:s}),t&&Ue(e)}function ae(r){let e=r.currentTarget.tagName.toLowerCase()==="a";return!(r.target&&(r?.target).isContentEditable||r.defaultPrevented||e&&r.which>1||e&&r.altKey||e&&r.ctrlKey||e&&r.metaKey||e&&r.shiftKey||e&&"button"in r&&r.button!==0)}import He from"deepmerge";import*as N from"qs";function D(r){return r instanceof File||r instanceof Blob||r instanceof FileList&&r.length>0||r instanceof FormData&&Array.from(r.values()).some(e=>D(e))||typeof r=="object"&&r!==null&&Object.values(r).some(e=>D(e))}var j=r=>r instanceof FormData;function _(r,e=new FormData,t=null){r=r||{};for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&ce(e,le(t,s),r[s]);return e}function le(r,e){return r?r+"["+e+"]":e}function ce(r,e,t){if(Array.isArray(t))return Array.from(t.keys()).forEach(s=>ce(r,le(e,s.toString()),t[s]));if(t instanceof Date)return r.append(e,t.toISOString());if(t instanceof File)return r.append(e,t,t.name);if(t instanceof Blob)return r.append(e,t);if(typeof t=="boolean")return r.append(e,t?"1":"0");if(typeof t=="string")return r.append(e,t);if(typeof t=="number")return r.append(e,`${t}`);if(t==null)return r.append(e,"");_(t,r,e)}function h(r){return new URL(r.toString(),typeof window>"u"?void 0:window.location.toString())}var pe=(r,e,t,s,i)=>{let o=typeof r=="string"?h(r):r;if((D(e)||s)&&!j(e)&&(e=_(e)),j(e))return[o,e];let[p,d]=ue(t,o,e,i);return[h(p),d]};function ue(r,e,t,s="brackets"){let i=/^https?:\/\//.test(e.toString()),o=i||e.toString().startsWith("/"),p=!o&&!e.toString().startsWith("#")&&!e.toString().startsWith("?"),d=e.toString().includes("?")||r==="get"&&Object.keys(t).length,v=e.toString().includes("#"),u=new URL(e.toString(),"http://localhost");return r==="get"&&Object.keys(t).length&&(u.search=N.stringify(He(N.parse(u.search,{ignoreQueryPrefix:!0}),t),{encodeValuesOnly:!0,arrayFormat:s}),t={}),[[i?`${u.protocol}//${u.host}`:"",o?u.pathname:"",p?u.pathname.substring(1):"",d?u.search:"",v?u.hash:""].join(""),t]}function R(r){return r=new URL(r.href),r.hash="",r}var $=(r,e)=>{r.hash&&!e.hash&&R(r).href===e.href&&(e.hash=r.hash)},V=(r,e)=>R(r).href===R(e).href;import je from"deepmerge";function g(r,e){return document.dispatchEvent(new CustomEvent(`inertia:${r}`,e))}var W=r=>g("before",{cancelable:!0,detail:{visit:r}}),de=r=>g("error",{detail:{errors:r}}),he=r=>g("exception",{cancelable:!0,detail:{exception:r}}),me=r=>g("finish",{detail:{visit:r}}),fe=r=>g("invalid",{cancelable:!0,detail:{response:r}}),w=r=>g("navigate",{detail:{page:r}}),ge=r=>g("progress",{detail:{progress:r}}),ve=r=>g("start",{detail:{visit:r}}),be=r=>g("success",{detail:{page:r}}),ye=(r,e)=>g("prefetched",{detail:{fetchedAt:Date.now(),response:r.data,visit:e}}),Pe=r=>g("prefetching",{detail:{visit:r}});import Ke from"deepmerge";var c=class{static set(e,t){typeof window<"u"&&window.sessionStorage.setItem(e,JSON.stringify(t))}static get(e){if(typeof window<"u")return JSON.parse(window.sessionStorage.getItem(e)||"null")}static merge(e,t){let s=this.get(e);s===null?this.set(e,t):this.set(e,{...s,...t})}static remove(e){typeof window<"u"&&window.sessionStorage.removeItem(e)}static removeNested(e,t){let s=this.get(e);s!==null&&(delete s[t],this.set(e,s))}static exists(e){try{return this.get(e)!==null}catch{return!1}}static clear(){typeof window<"u"&&window.sessionStorage.clear()}};c.locationVisitKey="inertiaLocationVisit";var we=async r=>{if(typeof window>"u")throw new Error("Unable to encrypt history");let e=Se(),t=await Re(),s=await Be(t);if(!s)throw new Error("Unable to encrypt history");return await De(e,s,r)},x={key:"historyKey",iv:"historyIv"},Ee=async r=>{let e=Se(),t=await Re();if(!t)throw new Error("Unable to decrypt history");return await Ne(e,t,r)},De=async(r,e,t)=>{if(typeof window>"u")throw new Error("Unable to encrypt history");if(typeof window.crypto.subtle>"u")return console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve(t);let s=new TextEncoder,i=JSON.stringify(t),o=new Uint8Array(i.length);return s.encodeInto(i,o),window.crypto.subtle.encrypt({name:"AES-GCM",iv:r},e,o)},Ne=async(r,e,t)=>{if(typeof window.crypto.subtle>"u")return console.warn("Decryption is not supported in this environment. SSL is required."),Promise.resolve(t);let s=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:r},e,t);return JSON.parse(new TextDecoder().decode(s))},Se=()=>{let r=c.get(x.iv);if(r)return new Uint8Array(r);let e=window.crypto.getRandomValues(new Uint8Array(12));return c.set(x.iv,Array.from(e)),e},Me=async()=>typeof window.crypto.subtle>"u"?(console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve(null)):window.crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),Ge=async r=>{if(typeof window.crypto.subtle>"u")return console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve();let e=await window.crypto.subtle.exportKey("raw",r);c.set(x.key,Array.from(new Uint8Array(e)))},Be=async r=>{if(r)return r;let e=await Me();return e?(await Ge(e),e):null},Re=async()=>{let r=c.get(x.key);return r?await window.crypto.subtle.importKey("raw",new Uint8Array(r),{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]):null};var m=class{static save(e){a.replaceState({...e,scrollRegions:Array.from(this.regions()).map(t=>({top:t.scrollTop,left:t.scrollLeft}))})}static regions(){return document.querySelectorAll("[scroll-region]")}static reset(e){typeof window<"u"&&window.scrollTo(0,0),this.regions().forEach(t=>{typeof t.scrollTo=="function"?t.scrollTo(0,0):(t.scrollTop=0,t.scrollLeft=0)}),this.save(e),window.location.hash&&setTimeout(()=>document.getElementById(window.location.hash.slice(1))?.scrollIntoView())}static restore(e){e.scrollRegions&&this.regions().forEach((t,s)=>{let i=e.scrollRegions[s];i&&(typeof t.scrollTo=="function"?t.scrollTo(i.left,i.top):(t.scrollTop=i.top,t.scrollLeft=i.left))})}static onScroll(e){let t=e.target;(typeof t.hasAttribute=="function"&&t.hasAttribute("scroll-region")||t==document)&&this.save(n.get())}};import xe from"deepmerge";var Q=class{constructor(){this.page={frames:{},version:null,scrollRegions:[]};this.swappers={};this.componentId={};this.listeners=[];this.isFirstPageLoad=!0;this.cleared=!1}init({frame:e,initialState:t,swapComponent:s}){var i;return(i=this.page).version||(i.version=t?.version),t?.component&&this.merge({frames:{[e]:t}}),this.swappers[e]=s,this}async set(e,{replace:t=!1,preserveScroll:s=!1,preserveState:i=!1,frame:o}={}){this.componentId={};let p=this.componentId;return e.clearHistory&&a.clear(),this.resolve(e.frames).then(d=>{if(p===this.componentId){if(e.scrollRegions??(e.scrollRegions=[]),e.frames._top?.url===void 0){let v=typeof window<"u"?window.location:new URL(e.frames._top.url);t=t||V(h(e.frames._top?.url),v)}return t?a.replaceState(e):a.pushState(e),this.page=e,this.cleared=!1,this.isFirstPageLoad&&this.fireEventsFor("firstLoad"),this.isFirstPageLoad=!1,this.swap({components:d,page:e,preserveState:i,frame:o}).then(()=>{s||m.reset(e),t||w(e)})}})}async setQuietly(e,{preserveState:t=!1}={}){return this.resolve(e.frames).then(s=>(this.page=e,this.cleared=!1,this.swap({components:s,page:e,preserveState:t})))}async setFrame(e,t,s={}){return this.set(xe(this.page,{frames:{[e]:t}},{arrayMerge:(i,o)=>o}),{frame:e,...s})}clear(){this.cleared=!0}isCleared(){return this.cleared}frame(e){return this.page.frames[e]||{}}get(){return this.page}merge(e){this.page=xe(this.page,e,{arrayMerge:(t,s)=>s})}setUrlHash(e){this.page.frames._top.url+=e}remember(e,t){this.page.frames[e].rememberedState=t}scrollRegions(e){this.page.scrollRegions=e}swap({components:e,page:t,preserveState:s,frame:i}){return Promise.all(Object.entries(e).map(([o,p])=>i&&i!==o?Promise.resolve():this.swappers[o]({component:p,frame:t.frames[o],preserveState:s})))}async resolve(e){let t={};return await Promise.all(Object.keys(e).map(async s=>{let i=e[s];t[s]=await k.resolveComponent(i.component)})),t}isTheSame(e,t){return this.page.frames[e].component===t.component}on(e,t){return this.listeners.push({event:e,callback:t}),()=>{this.listeners=this.listeners.filter(s=>s.event!==e&&s.callback!==t)}}fireEventsFor(e){this.listeners.filter(t=>t.event===e).forEach(t=>t.callback())}},n=new Q;var M=typeof window>"u",X=class{constructor(){this.rememberedState="rememberedState";this.scrollRegions="scrollRegions";this.preserveUrl=!1;this.current={};this.queue=[]}remember(e,t,s){let i=n.get(),o=Ke(i,{frames:{[e]:{rememberedState:{[s]:t}}}},{arrayMerge:(p,d)=>d});this.replaceState(o)}restore(e,t){if(!M)return this.current?.frames?.[e]?.rememberedState?.[t]}pushState(e){M||this.preserveUrl||(this.current=e,this.addToQueue(()=>this.getPageData(e).then(t=>{window.history.pushState({page:t,timestamp:Date.now()},"",e.frames._top.url)})))}getPageData(e){return new Promise(t=>e.encryptHistory?we(e).then(t):t(e))}processQueue(){let e=this.queue.shift();return e?e().then(()=>this.processQueue()):Promise.resolve()}decrypt(e=null){if(M)return Promise.resolve(e??n.get());let t=e??window.history.state?.page;return this.decryptPageData(t).then(s=>{if(!s)throw new Error("Unable to decrypt history");return this.current=s??{},s})}decryptPageData(e){return e instanceof ArrayBuffer?Ee(e):Promise.resolve(e)}replaceState(e){n.merge(e),!(M||this.preserveUrl)&&(this.current=e,this.addToQueue(()=>this.getPageData(e).then(t=>{window.history.replaceState({page:t,timestamp:Date.now()},"",e.frames._top.url)})))}addToQueue(e){this.queue.push(e),this.processQueue()}getState(e,t){return this.current?.[e]??t}deleteRememberedState(){this.current.frames&&(Object.values(this.current.frames).forEach(e=>{delete e.rememberedState}),this.replaceState(this.current))}hasAnyState(){return!!this.getAllState()}clear(){c.remove(x.key),c.remove(x.iv)}isValidState(e){return!!e.page}getAllState(){return this.current}},a=new X;var J=class{constructor(){this.internalListeners=[]}init(){typeof window<"u"&&window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),typeof document<"u"&&document.addEventListener("scroll",T(m.onScroll.bind(m),100),!0)}onGlobalEvent(e,t){let s=i=>{let o=t(i);i.cancelable&&!i.defaultPrevented&&o===!1&&i.preventDefault()};return this.registerListener(`inertia:${e}`,s)}on(e,t){return this.internalListeners.push({event:e,listener:t}),()=>{this.internalListeners=this.internalListeners.filter(s=>s.listener!==t)}}onMissingHistoryItem(){n.clear(),this.fireInternalEvent("missingHistoryItem")}fireInternalEvent(e){this.internalListeners.filter(t=>t.event===e).forEach(t=>t.listener())}registerListener(e,t){return document.addEventListener(e,t),()=>document.removeEventListener(e,t)}handlePopstateEvent(e){let t=e.state||null;if(t===null){let s=h(n.frame("_top").url);s.hash=window.location.hash,a.replaceState(je(n.get(),{frames:{_top:{url:s.href}}},{arrayMerge:(i,o)=>o})),m.reset(n.get());return}if(a.isValidState(t)){a.decrypt(t.page).then(s=>{n.setQuietly(s,{preserveState:!1}).then(()=>{m.restore(n.get()),w(n.get())})}).catch(()=>{this.onMissingHistoryItem()});return}this.onMissingHistoryItem()}},E=new J;var z=class{constructor(){typeof window<"u"&&window?.performance.getEntriesByType("navigation").length>0?this.type=window.performance.getEntriesByType("navigation")[0].type:this.type="navigate"}get(){return this.type}isBackForward(){return this.type==="back_forward"}isReload(){return this.type==="reload"}},Y=new z;var G=class{static handle(){this.clearRememberedStateOnReload(),[this.handleBackForward,this.handleLocation,this.handleDefault].find(t=>t.bind(this)())}static clearRememberedStateOnReload(){Y.isReload()&&a.deleteRememberedState()}static handleBackForward(){return!Y.isBackForward()||!a.hasAnyState()||!window.history.state?.page?!1:(a.decrypt().then(e=>{n.set(e,{preserveScroll:!0,preserveState:!0,replace:!0}).then(()=>{m.restore(n.get()),w(n.get())})}).catch(()=>{E.onMissingHistoryItem()}),!0)}static handleLocation(){if(!c.exists(c.locationVisitKey))return!1;let e=c.get(c.locationVisitKey)||{};return c.remove(c.locationVisitKey),typeof window<"u"&&n.setUrlHash(window.location.hash),a.decrypt().then(()=>{let t=a.getState("frames",{}),s=a.getState(a.scrollRegions,[]);Object.entries(t).forEach(([i,o])=>{n.remember(i,o.rememberedState)}),n.scrollRegions(s),n.set(n.get(),{preserveScroll:e.preserveScroll,preserveState:!0}).then(()=>{e.preserveScroll&&m.restore(n.get()),w(n.get())})}).catch(()=>{E.onMissingHistoryItem()}),!0}static handleDefault(){typeof window<"u"&&n.setUrlHash(window.location.hash),n.set(n.get(),{preserveState:!0,replace:!0}).then(()=>{w(n.get())})}};var B=class{constructor(e,t,s){this.id=null;this.throttle=!1;this.keepAlive=!1;this.cbCount=0;this.keepAlive=s.keepAlive??!1,this.cb=t,this.interval=e,(s.autoStart??!0)&&this.start()}stop(){this.id&&clearInterval(this.id)}start(){typeof window>"u"||(this.stop(),this.id=window.setInterval(()=>{(!this.throttle||this.cbCount%10===0)&&this.cb(),this.throttle&&this.cbCount++},this.interval))}isInBackground(e){this.throttle=this.keepAlive?!1:e,this.throttle&&(this.cbCount=0)}};var Z=class{constructor(){this.polls=[];this.setupVisibilityListener()}add(e,t,s){let i=new B(e,t,s);return this.polls.push(i),{stop:()=>i.stop(),start:()=>i.start()}}clear(){this.polls.forEach(e=>e.stop()),this.polls=[]}setupVisibilityListener(){typeof document>"u"||document.addEventListener("visibilitychange",()=>{this.polls.forEach(e=>e.isInBackground(document.hidden))},!1)}},qe=new Z;var ee=(r,e,t)=>{if(r===e)return!0;for(let s in r)if(!t.includes(s)&&r[s]!==e[s]&&!_e(r[s],e[s]))return!1;return!0},_e=(r,e)=>{switch(typeof r){case"object":return ee(r,e,[]);case"function":return r.toString()===e.toString();default:return r===e}};var $e={ms:1,s:1e3,m:6e4,h:36e5,d:864e5},te=r=>{if(typeof r=="number")return r;for(let[e,t]of Object.entries($e))if(r.endsWith(e))return parseFloat(r)*t;return parseInt(r)};var re=class{constructor(){this.cached=[];this.inFlightRequests=[];this.removalTimers=[];this.currentUseId=null}add(e,t,{cacheFor:s}){if(this.findInFlight(e))return Promise.resolve();let o=this.findCached(e);if(!e.fresh&&o&&o.staleTimestamp>Date.now())return Promise.resolve();let[p,d]=this.extractStaleValues(s),v=new Promise((u,l)=>{t({...e,onCancel:()=>{this.remove(e),e.onCancel(),l()},onError:f=>{this.remove(e),e.onError(f),l()},onPrefetching(f){e.onPrefetching(f)},onPrefetched(f,K){e.onPrefetched(f,K)},onPrefetchResponse(f){u(f)}})}).then(u=>(this.remove(e),this.cached.push({params:{...e},staleTimestamp:Date.now()+p,response:v,singleUse:s===0,timestamp:Date.now(),inFlight:!1}),this.scheduleForRemoval(e,d),this.inFlightRequests=this.inFlightRequests.filter(l=>!this.paramsAreEqual(l.params,e)),u.handlePrefetch(),u));return this.inFlightRequests.push({params:{...e},response:v,staleTimestamp:null,inFlight:!0}),v}removeAll(){this.cached=[],this.removalTimers.forEach(e=>{clearTimeout(e.timer)}),this.removalTimers=[]}remove(e){this.cached=this.cached.filter(t=>!this.paramsAreEqual(t.params,e)),this.clearTimer(e)}extractStaleValues(e){let[t,s]=this.cacheForToStaleAndExpires(e);return[te(t),te(s)]}cacheForToStaleAndExpires(e){if(!Array.isArray(e))return[e,e];switch(e.length){case 0:return[0,0];case 1:return[e[0],e[0]];default:return[e[0],e[1]]}}clearTimer(e){let t=this.removalTimers.find(s=>this.paramsAreEqual(s.params,e));t&&(clearTimeout(t.timer),this.removalTimers=this.removalTimers.filter(s=>s!==t))}scheduleForRemoval(e,t){if(!(typeof window>"u")&&(this.clearTimer(e),t>0)){let s=window.setTimeout(()=>this.remove(e),t);this.removalTimers.push({params:e,timer:s})}}get(e){return this.findCached(e)||this.findInFlight(e)}use(e,t){let s=`${t.url.pathname}-${Date.now()}-${Math.random().toString(36).substring(7)}`;return this.currentUseId=s,e.response.then(i=>{if(this.currentUseId===s)return i.mergeParams({...t,onPrefetched:()=>{}}),this.removeSingleUseItems(t),i.handle()})}removeSingleUseItems(e){this.cached=this.cached.filter(t=>this.paramsAreEqual(t.params,e)?!t.singleUse:!0)}findCached(e){return this.cached.find(t=>this.paramsAreEqual(t.params,e))||null}findInFlight(e){return this.inFlightRequests.find(t=>this.paramsAreEqual(t.params,e))||null}paramsAreEqual(e,t){return ee(e,t,["showProgress","replace","prefetch","onBefore","onStart","onProgress","onFinish","onCancel","onSuccess","onError","onPrefetched","onCancelToken","onPrefetching","async"])}},S=new re;import{default as Ce}from"axios";var C=class{constructor(e){this.callbacks=[];if(!e.prefetch)this.params=e;else{let t={onBefore:this.wrapCallback(e,"onBefore"),onStart:this.wrapCallback(e,"onStart"),onProgress:this.wrapCallback(e,"onProgress"),onFinish:this.wrapCallback(e,"onFinish"),onCancel:this.wrapCallback(e,"onCancel"),onSuccess:this.wrapCallback(e,"onSuccess"),onError:this.wrapCallback(e,"onError"),onCancelToken:this.wrapCallback(e,"onCancelToken"),onPrefetched:this.wrapCallback(e,"onPrefetched"),onPrefetching:this.wrapCallback(e,"onPrefetching")};this.params={...e,...t,onPrefetchResponse:e.onPrefetchResponse||(()=>{})}}}static create(e){return new C(e)}data(){return this.params.method==="get"?{}:this.params.data}queryParams(){return this.params.method==="get"?this.params.data:{}}isPartial(){return this.params.only.length>0||this.params.except.length>0||this.params.reset.length>0}onCancelToken(e){this.params.onCancelToken({cancel:e})}markAsFinished(){this.params.completed=!0,this.params.cancelled=!1,this.params.interrupted=!1}markAsCancelled({cancelled:e=!0,interrupted:t=!1}){this.params.onCancel(),this.params.completed=!1,this.params.cancelled=e,this.params.interrupted=t}wasCancelledAtAll(){return this.params.cancelled||this.params.interrupted}onFinish(){this.params.onFinish(this.params)}onStart(){this.params.onStart(this.params)}onPrefetching(){this.params.onPrefetching(this.params)}onPrefetchResponse(e){this.params.onPrefetchResponse&&this.params.onPrefetchResponse(e)}all(){return this.params}headers(){let e={...this.params.headers};this.isPartial()&&(e["X-Inertia-Partial-Component"]=n.frame(this.params.frame).component);let t=this.params.only.concat(this.params.reset);return t.length>0&&(e["X-Inertia-Partial-Data"]=t.join(",")),this.params.except.length>0&&(e["X-Inertia-Partial-Except"]=this.params.except.join(",")),this.params.reset.length>0&&(e["X-Inertia-Reset"]=this.params.reset.join(",")),this.params.errorBag&&this.params.errorBag.length>0&&(e["X-Inertia-Error-Bag"]=this.params.errorBag),e}setPreserveOptions(e){this.params.preserveScroll=this.resolvePreserveOption(this.params.preserveScroll,e),this.params.preserveState=this.resolvePreserveOption(this.params.preserveState,e)}runCallbacks(){this.callbacks.forEach(({name:e,args:t})=>{this.params[e](...t)})}merge(e){this.params={...this.params,...e}}wrapCallback(e,t){return(...s)=>{this.recordCallback(t,s),e[t](...s)}}recordCallback(e,t){this.callbacks.push({name:e,args:t})}resolvePreserveOption(e,t){return typeof e=="function"?e(t):e==="errors"?Object.keys(t.frames[this.params.frame].props.errors||{}).length>0:e}};var Fe={modal:null,listener:null,show(r){typeof r=="object"&&(r=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.<hr>${JSON.stringify(r)}`);let e=document.createElement("html");e.innerHTML=r,e.querySelectorAll("a").forEach(s=>s.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(r){r.keyCode===27&&this.hide()}};var se=class{constructor(){this.queue=[];this.processing=!1}add(e){this.queue.push(e)}async process(){return this.processing||(this.processing=!0,await this.processQueue(),this.processing=!1),Promise.resolve()}async processQueue(){let e=this.queue.shift();return e?(await e.process(),this.processQueue()):Promise.resolve()}},Ae=new se,q=class{constructor(e,t,s){this.requestParams=e;this.response=t;this.originatingPage=s}static create(e,t,s){return new q(e,t,s)}async handlePrefetch(){V(this.requestParams.all().url,window.location)&&this.handle()}async handle(){return Ae.add(this),Ae.process()}async process(){if(this.requestParams.all().prefetch)return this.requestParams.all().prefetch=!1,this.requestParams.all().onPrefetched(this.response,this.requestParams.all()),ye(this.response,this.requestParams.all()),Promise.resolve();if(this.requestParams.runCallbacks(),!this.isInertiaResponse())return this.handleNonInertiaResponse();await a.processQueue(),a.preserveUrl=this.requestParams.all().preserveUrl,await this.setFrame();let e=this.requestParams.all().frame,t=n.frame(e).props.errors||{};if(Object.keys(t).length>0){let s=this.getScopedErrors(t);return de(s),this.requestParams.all().onError(s)}be(n.get()),await this.requestParams.all().onSuccess(n.get()),a.preserveUrl=!1}mergeParams(e){this.requestParams.merge(e)}async handleNonInertiaResponse(){if(this.isLocationVisit()){let t=h(this.getHeader("x-inertia-location"));return $(this.requestParams.all().url,t),this.locationVisit(t)}let e={...this.response,data:this.getDataFromResponse(this.response.data)};if(fe(e))return Fe.show(e.data)}isInertiaResponse(){return this.hasHeader("x-inertia")}hasStatus(e){return this.response.status===e}getHeader(e){return this.response.headers[e]}hasHeader(e){return this.getHeader(e)!==void 0}isLocationVisit(){return this.hasStatus(409)&&this.hasHeader("x-inertia-location")}locationVisit(e){try{if(c.set(c.locationVisitKey,{preserveScroll:this.requestParams.all().preserveScroll===!0}),typeof window>"u")return;V(window.location,e)?window.location.reload():window.location.href=e.href}catch{return!1}}async setFrame(){let e=this.getDataFromResponse(this.response.data);return this.shouldSetFrame(e)?(this.mergeProps(e),await this.setRememberedState(e),this.requestParams.setPreserveOptions(e),e.url=a.preserveUrl?n.frame("_top").url:this.pageUrl(e),delete e.version,n.setFrame(this.requestParams.all().frame,e,{replace:this.requestParams.all().replace,preserveScroll:this.requestParams.all().preserveScroll,preserveState:this.requestParams.all().preserveState})):Promise.resolve()}getDataFromResponse(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}shouldSetFrame(e){let t=this.requestParams.all().frame;if(!this.requestParams.all().async||this.originatingPage.frames[t].component!==e.component)return!0;if(this.originatingPage.frames[t].component!==n.frame(t).component)return!1;let s=h(this.originatingPage.frames._top.url),i=h(n.frame("_top").url);return s.origin===i.origin&&s.pathname===i.pathname}pageUrl(e){let t=h(e.url);return $(this.requestParams.all().url,t),t.href}mergeProps(e){let t=this.requestParams.all().frame;this.requestParams.isPartial()&&e.component===n.frame(t).component&&((e.mergeProps||[]).forEach(i=>{let o=e.props[i];Array.isArray(o)?e.props[i]=[...n.frame(t).props[i]||[],...o]:typeof o=="object"&&(e.props[i]={...n.frame(t).props[i]||[],...o})}),e.props={...n.frame(t).props,...e.props})}async setRememberedState(e){let t=await a.getState("frames",{}),s=this.requestParams.all().frame,i=t[s]?.rememberedState||{};this.requestParams.all().preserveState&&i&&e.component===n.frame(s).component&&(e.rememberedState=i)}getScopedErrors(e){return this.requestParams.all().errorBag?e[this.requestParams.all().errorBag||""]||{}:e}};var F=class{constructor(e,t){this.page=t;this.requestHasFinished=!1;this.requestParams=C.create(e),this.cancelToken=new AbortController}static create(e,t){return new F(e,t)}async send(){this.requestParams.onCancelToken(()=>this.cancel({cancelled:!0})),ve(this.requestParams.all()),this.requestParams.onStart(),this.requestParams.all().prefetch&&(this.requestParams.onPrefetching(),Pe(this.requestParams.all()));let e=this.requestParams.all().prefetch;return Ce({method:this.requestParams.all().method,url:R(this.requestParams.all().url).href,data:this.requestParams.data(),params:this.requestParams.queryParams(),signal:this.cancelToken.signal,headers:this.getHeaders(),onUploadProgress:this.onProgress.bind(this),responseType:"text"}).then(t=>(this.response=q.create(this.requestParams,t,this.page),this.response.handle())).catch(t=>t?.response?(this.response=q.create(this.requestParams,t.response,this.page),this.response.handle()):Promise.reject(t)).catch(t=>{if(!Ce.isCancel(t)&&he(t))return Promise.reject(t)}).finally(()=>{this.finish(),e&&this.response&&this.requestParams.onPrefetchResponse(this.response)})}finish(){this.requestParams.wasCancelledAtAll()||(this.requestParams.markAsFinished(),this.fireFinishEvents())}fireFinishEvents(){this.requestHasFinished||(this.requestHasFinished=!0,me(this.requestParams.all()),this.requestParams.onFinish())}cancel({cancelled:e=!1,interrupted:t=!1}){this.requestHasFinished||(this.cancelToken.abort(),this.requestParams.markAsCancelled({cancelled:e,interrupted:t}),this.fireFinishEvents())}onProgress(e){this.requestParams.data()instanceof FormData&&(e.percentage=e.progress?Math.round(e.progress*100):0,ge(e),this.requestParams.all().onProgress(e))}getHeaders(){let e={...this.requestParams.headers(),Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0},t=this.requestParams.all().frame,s=n.frame(t).url;return s&&(e["X-Inertia-Referer"]=R(h(s)).href),n.get().version&&(e["X-Inertia-Version"]=n.get().version),e}};var I=class{constructor({maxConcurrent:e,interruptible:t}){this.requests=[];this.maxConcurrent=e,this.interruptible=t}send(e){this.requests.push(e),e.send().then(()=>{this.requests=this.requests.filter(t=>t!==e)})}interruptInFlight(){this.cancel({interrupted:!0},!1)}cancelInFlight(){this.cancel({cancelled:!0},!0)}cancel({cancelled:e=!1,interrupted:t=!1}={},s){if(!this.shouldCancel(s))return;this.requests.shift()?.cancel({interrupted:t,cancelled:e})}shouldCancel(e){return e?!0:this.interruptible&&this.requests.length>=this.maxConcurrent}};var k=class{constructor({frame:e,initialState:t,swapComponent:s}){this.syncRequestStream=new I({maxConcurrent:1,interruptible:!0});this.asyncRequestStream=new I({maxConcurrent:1/0,interruptible:!1});this.frame=e,!import.meta.env.SSR&&(n.init({frame:e,initialState:t,swapComponent:s}),e==="_top"&&(G.handle(),E.init(),E.on("missingHistoryItem",()=>{typeof window<"u"&&this.visit(window.location.href,{preserveState:!0,preserveScroll:!0,replace:!0})}),E.onGlobalEvent("navigate",()=>{this.loadDeferredProps()})))}get(e,t={},s={}){return this.visit(e,{...s,method:"get",data:t})}post(e,t={},s={}){return this.visit(e,{preserveState:!0,...s,method:"post",data:t})}put(e,t={},s={}){return this.visit(e,{preserveState:!0,...s,method:"put",data:t})}patch(e,t={},s={}){return this.visit(e,{preserveState:!0,...s,method:"patch",data:t})}delete(e,t={}){return this.visit(e,{preserveState:!0,...t,method:"delete"})}reload(e={}){if(!(typeof window>"u"))return this.visit(window.location.href,{...e,preserveScroll:!0,preserveState:!0,async:!0,headers:{...e.headers||{},"Cache-Control":"no-cache"}})}remember(e,t="default"){a.remember(this.frame,e,t)}restore(e="default"){return a.restore(this.frame,e)}on(e,t){return E.onGlobalEvent(e,t)}cancel(){this.syncRequestStream.cancelInFlight()}cancelAll(){this.asyncRequestStream.cancelInFlight(),this.syncRequestStream.cancelInFlight()}poll(e,t={},s={}){return qe.add(e,()=>this.reload(t),{autoStart:s.autoStart??!0,keepAlive:s.keepAlive??!1})}visit(e,t={}){if(import.meta.env.SSR)return;let s=this.getPendingVisit(e,{...t,showProgress:t.showProgress??!t.async}),i=this.getVisitEvents(t);if(i.onBefore(s)===!1||!W(s))return;let o=s.async?this.asyncRequestStream:this.syncRequestStream;o.interruptInFlight(),!n.isCleared()&&!s.preserveUrl&&m.save(n.get());let p={...s,...i},d=S.get(p);d?(U(d.inFlight),S.use(d,p)):(U(!0),o.send(F.create(p,n.get())))}getCached(e,t={}){return S.findCached(this.getPrefetchParams(e,t))}flush(e,t={}){S.remove(this.getPrefetchParams(e,t))}flushAll(){S.removeAll()}getPrefetching(e,t={}){return S.findInFlight(this.getPrefetchParams(e,t))}prefetch(e,t={},{cacheFor:s}){if(t.method!=="get")throw new Error("Prefetch requests must use the GET method");let i=this.getPendingVisit(e,{...t,async:!0,showProgress:!1,prefetch:!0}),o=this.getVisitEvents(t);if(o.onBefore(i)===!1||!W(i))return;H(),this.asyncRequestStream.interruptInFlight();let p={...i,...o};S.add(p,d=>{this.asyncRequestStream.send(F.create(d,n.get()))},{cacheFor:s})}clearHistory(){a.clear()}decryptHistory(){return a.decrypt()}getPrefetchParams(e,t){return{...this.getPendingVisit(e,{...t,async:!0,showProgress:!1,prefetch:!0}),...this.getVisitEvents(t)}}getPendingVisit(e,t,s={}){let i={method:"get",data:{},replace:!1,preserveScroll:!1,preserveState:!1,only:[],except:[],headers:{},errorBag:"",forceFormData:!1,queryStringArrayFormat:"brackets",async:!1,showProgress:!0,fresh:!1,reset:[],preserveUrl:!1,prefetch:!1,frame:this.frame,...t},[o,p]=pe(e,i.data,i.method,i.forceFormData,i.queryStringArrayFormat);return{cancelled:!1,completed:!1,interrupted:!1,...i,...s,url:o,data:p}}getVisitEvents(e){return{onCancelToken:e.onCancelToken||(()=>{}),onBefore:e.onBefore||(()=>{}),onStart:e.onStart||(()=>{}),onProgress:e.onProgress||(()=>{}),onFinish:e.onFinish||(()=>{}),onCancel:e.onCancel||(()=>{}),onSuccess:e.onSuccess||(()=>{}),onError:e.onError||(()=>{}),onPrefetched:e.onPrefetched||(()=>{}),onPrefetching:e.onPrefetching||(()=>{})}}loadDeferredProps(){let e=n.frame(this.frame)?.deferredProps;e&&Object.entries(e).forEach(([t,s])=>{this.reload({only:s})})}};export{k as Router,ne as createHeadManager,H as hideProgress,h as hrefToUrl,ue as mergeDataIntoQueryString,U as revealProgress,oe as setupProgress,ae as shouldIntercept,R as urlWithoutHash};
|
|
73
73
|
//# sourceMappingURL=index.esm.js.map
|