inertiax-core 5.0.12 → 5.0.13
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 +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
0% { transform: rotate(0deg); }
|
|
70
70
|
100% { transform: rotate(360deg); }
|
|
71
71
|
}
|
|
72
|
-
`,document.head.appendChild(e)}function Q({delay:r=250,color:e="#29d",includeCSS:t=!0,showSpinner:s=!1}={}){We(r),g.default.configure({showSpinner:s}),t&&ze(e)}function X(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)}var ve=q(require("deepmerge"),1),B=q(require("qs"),1);function G(r){return r instanceof File||r instanceof Blob||r instanceof FileList&&r.length>0||r instanceof FormData&&Array.from(r.values()).some(e=>G(e))||typeof r=="object"&&r!==null&&Object.values(r).some(e=>G(e))}var J=r=>r instanceof FormData;function z(r,e=new FormData,t=null){r=r||{};for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&ge(e,fe(t,s),r[s]);return e}function fe(r,e){return r?r+"["+e+"]":e}function ge(r,e,t){if(Array.isArray(t))return Array.from(t.keys()).forEach(s=>ge(r,fe(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,"");z(t,r,e)}function h(r){return new URL(r.toString(),typeof window>"u"?void 0:window.location.toString())}var be=(r,e,t,s,i)=>{let o=typeof r=="string"?h(r):r;if((G(e)||s)&&!J(e)&&(e=z(e)),J(e))return[o,e];let[p,d]=Y(t,o,e,i);return[h(p),d]};function Y(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,b=e.toString().includes("#"),u=new URL(e.toString(),"http://localhost");return r==="get"&&Object.keys(t).length&&(u.search=B.stringify((0,ve.default)(B.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:"",b?u.hash:""].join(""),t]}function w(r){return r=new URL(r.href),r.hash="",r}var Z=(r,e)=>{r.hash&&!e.hash&&w(r).href===e.href&&(e.hash=r.hash)},U=(r,e)=>w(r).href===w(e).href;var Ie=q(require("deepmerge"),1);function v(r,e){return document.dispatchEvent(new CustomEvent(`inertia:${r}`,e))}var ee=r=>v("before",{cancelable:!0,detail:{visit:r}}),ye=r=>v("error",{detail:{errors:r}}),Pe=r=>v("exception",{cancelable:!0,detail:{exception:r}}),we=r=>v("finish",{detail:{visit:r}}),Ee=r=>v("invalid",{cancelable:!0,detail:{response:r}}),E=r=>v("navigate",{detail:{page:r}}),Se=r=>v("progress",{detail:{progress:r}}),Re=r=>v("start",{detail:{visit:r}}),xe=r=>v("success",{detail:{page:r}}),qe=(r,e)=>v("prefetched",{detail:{fetchedAt:Date.now(),response:r.data,visit:e}}),Fe=r=>v("prefetching",{detail:{visit:r}});var ke=q(require("deepmerge"),1);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 Ae=async r=>{if(typeof window>"u")throw new Error("Unable to encrypt history");let e=Te(),t=await Ve(),s=await rt(t);if(!s)throw new Error("Unable to encrypt history");return await Ye(e,s,r)},F={key:"historyKey",iv:"historyIv"},Ce=async r=>{let e=Te(),t=await Ve();if(!t)throw new Error("Unable to decrypt history");return await Ze(e,t,r)},Ye=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)},Ze=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))},Te=()=>{let r=c.get(F.iv);if(r)return new Uint8Array(r);let e=window.crypto.getRandomValues(new Uint8Array(12));return c.set(F.iv,Array.from(e)),e},et=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"]),tt=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(F.key,Array.from(new Uint8Array(e)))},rt=async r=>{if(r)return r;let e=await et();return e?(await tt(e),e):null},Ve=async()=>{let r=c.get(F.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())}};var te=q(require("deepmerge"),1),re=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 this.resolve(e.frames).then(d=>{if(p===this.componentId){if(e.scrollRegions??(e.scrollRegions=[]),e.frames._top?.url===void 0){let b=typeof window<"u"?window.location:new URL(e.frames._top.url);t=t||U(h(e.frames._top?.url),b)}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&&o=="_top"&&m.reset(e),t||E(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((0,te.default)(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=(0,te.default)(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])=>{if(i&&i!==o)return Promise.resolve();if(this.swappers[o])return 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 V.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 re;var K=typeof window>"u",se=class{constructor(){this.rememberedState="rememberedState";this.scrollRegions="scrollRegions";this.preserveUrl=!1;this.current={};this.queue=[]}remember(e,t,s){let i=n.get(),o=(0,ke.default)(i,{frames:{[e]:{rememberedState:{[s]:t}}}},{arrayMerge:(p,d)=>d});this.replaceState(o)}restore(e,t){if(!K)return this.current?.frames?.[e]?.rememberedState?.[t]}pushState(e){K||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=>se.encryptHistory?Ae(e).then(t):t(e))}processQueue(){let e=this.queue.shift();return e?e().then(()=>this.processQueue()):Promise.resolve()}decrypt(e=null){if(K)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?Ce(e):Promise.resolve(e)}replaceState(e){n.merge(e),!(K||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(F.key),c.remove(F.iv)}isValidState(e){return!!e.page}getAllState(){return this.current}},S=se;S.encryptHistory=!1;var a=new S;var ie=class{constructor(){this.internalListeners=[]}init(){typeof window<"u"&&window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),typeof document<"u"&&document.addEventListener("scroll",I(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((0,Ie.default)(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()),E(n.get())})}).catch(()=>{this.onMissingHistoryItem()});return}this.onMissingHistoryItem()}},R=new ie;var ne=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"}},oe=new ne;var j=class{static handle(){this.clearRememberedStateOnReload(),[this.handleBackForward,this.handleLocation,this.handleDefault].find(t=>t.bind(this)())}static clearRememberedStateOnReload(){oe.isReload()&&a.deleteRememberedState()}static handleBackForward(){return!oe.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()),E(n.get())})}).catch(()=>{R.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()),E(n.get())})}).catch(()=>{R.onMissingHistoryItem()}),!0}static handleDefault(){typeof window<"u"&&n.setUrlHash(window.location.hash),n.set(n.get(),{preserveState:!0,replace:!0}).then(()=>{E(n.get())})}};var _=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 ae=class{constructor(){this.polls=[];this.setupVisibilityListener()}add(e,t,s){let i=new _(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)}},Oe=new ae;var le=(r,e,t)=>{if(r===e)return!0;for(let s in r)if(!t.includes(s)&&r[s]!==e[s]&&!st(r[s],e[s]))return!1;return!0},st=(r,e)=>{switch(typeof r){case"object":return le(r,e,[]);case"function":return r.toString()===e.toString();default:return r===e}};var it={ms:1,s:1e3,m:6e4,h:36e5,d:864e5},ce=r=>{if(typeof r=="number")return r;for(let[e,t]of Object.entries(it))if(r.endsWith(e))return parseFloat(r)*t;return parseInt(r)};var pe=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),b=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,$){e.onPrefetched(f,$)},onPrefetchResponse(f){u(f)}})}).then(u=>(this.remove(e),this.cached.push({params:{...e},staleTimestamp:Date.now()+p,response:b,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:b,staleTimestamp:null,inFlight:!0}),b}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[ce(t),ce(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 le(e,t,["showProgress","replace","prefetch","onBefore","onStart","onProgress","onFinish","onCancel","onSuccess","onError","onPrefetched","onCancelToken","onPrefetching","async"])}},x=new pe;var de=q(require("axios"),1);var k=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 k(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 Le={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 ue=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()}},Ue=new ue,A=class{constructor(e,t,s){this.requestParams=e;this.response=t;this.originatingPage=s}static create(e,t,s){return new A(e,t,s)}async handlePrefetch(){U(this.requestParams.all().url,window.location)&&this.handle()}async handle(){return Ue.add(this),Ue.process()}async process(){if(this.requestParams.all().prefetch)return this.requestParams.all().prefetch=!1,this.requestParams.all().onPrefetched(this.response,this.requestParams.all()),qe(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 ye(s),this.requestParams.all().onError(s)}xe(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 Z(this.requestParams.all().url,t),this.locationVisit(t)}let e={...this.response,data:this.getDataFromResponse(this.response.data)};if(Ee(e))return Le.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;U(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,S.encryptHistory=e.encryptHistory,e.clearHistory&&a.clear(),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 Z(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 C=class{constructor(e,t){this.page=t;this.requestHasFinished=!1;this.requestParams=k.create(e),this.cancelToken=new AbortController}static create(e,t){return new C(e,t)}async send(){this.requestParams.onCancelToken(()=>this.cancel({cancelled:!0})),Re(this.requestParams.all()),this.requestParams.onStart(),this.requestParams.all().prefetch&&(this.requestParams.onPrefetching(),Fe(this.requestParams.all()));let e=this.requestParams.all().prefetch;return(0,de.default)({method:this.requestParams.all().method,url:w(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=A.create(this.requestParams,t,this.page),this.response.handle())).catch(t=>t?.response?(this.response=A.create(this.requestParams,t.response,this.page),this.response.handle()):Promise.reject(t)).catch(t=>{if(!de.default.isCancel(t)&&Pe(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,we(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,Se(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"]=w(h(s)).href),n.get().version&&(e["X-Inertia-Version"]=n.get().version),e}};var H=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 He={},V=class{constructor({frame:e,initialState:t,swapComponent:s}){this.syncRequestStream=new H({maxConcurrent:1,interruptible:!0});this.asyncRequestStream=new H({maxConcurrent:1/0,interruptible:!1});this.frame=e,!He.env.SSR&&(n.init({frame:e,initialState:t,swapComponent:s}),e==="_top"&&(j.handle(),R.init(),R.on("missingHistoryItem",()=>{typeof window<"u"&&this.visit(window.location.href,{preserveState:!0,preserveScroll:!0,replace:!0})}),R.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 R.onGlobalEvent(e,t)}cancel(){this.syncRequestStream.cancelInFlight()}cancelAll(){this.asyncRequestStream.cancelInFlight(),this.syncRequestStream.cancelInFlight()}poll(e,t={},s={}){return Oe.add(e,()=>this.reload(t),{autoStart:s.autoStart??!0,keepAlive:s.keepAlive??!1})}visit(e,t={}){if(He.env.SSR)return;let s=this.getPendingVisit(e,{...t,showProgress:t.showProgress??!t.async}),i=this.getVisitEvents(t);if(i.onBefore(s)===!1||!ee(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=x.get(p);d?(O(d.inFlight),x.use(d,p)):(O(!0),o.send(C.create(p,n.get())))}getCached(e,t={}){return x.findCached(this.getPrefetchParams(e,t))}flush(e,t={}){x.remove(this.getPrefetchParams(e,t))}flushAll(){x.removeAll()}getPrefetching(e,t={}){return x.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||!ee(i))return;L(),this.asyncRequestStream.interruptInFlight();let p={...i,...o};x.add(p,d=>{this.asyncRequestStream.send(C.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]=be(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})})}};
|
|
72
|
+
`,document.head.appendChild(e)}function Q({delay:r=250,color:e="#29d",includeCSS:t=!0,showSpinner:s=!1}={}){We(r),g.default.configure({showSpinner:s}),t&&ze(e)}function X(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)}var ve=q(require("deepmerge"),1),B=q(require("qs"),1);function G(r){return r instanceof File||r instanceof Blob||r instanceof FileList&&r.length>0||r instanceof FormData&&Array.from(r.values()).some(e=>G(e))||typeof r=="object"&&r!==null&&Object.values(r).some(e=>G(e))}var J=r=>r instanceof FormData;function z(r,e=new FormData,t=null){r=r||{};for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&ge(e,fe(t,s),r[s]);return e}function fe(r,e){return r?r+"["+e+"]":e}function ge(r,e,t){if(Array.isArray(t))return Array.from(t.keys()).forEach(s=>ge(r,fe(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,"");z(t,r,e)}function h(r){return new URL(r.toString(),typeof window>"u"?void 0:window.location.toString())}var be=(r,e,t,s,i)=>{let o=typeof r=="string"?h(r):r;if((G(e)||s)&&!J(e)&&(e=z(e)),J(e))return[o,e];let[p,d]=Y(t,o,e,i);return[h(p),d]};function Y(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,b=e.toString().includes("#"),u=new URL(e.toString(),"http://localhost");return r==="get"&&Object.keys(t).length&&(u.search=B.stringify((0,ve.default)(B.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:"",b?u.hash:""].join(""),t]}function w(r){return r=new URL(r.href),r.hash="",r}var Z=(r,e)=>{r.hash&&!e.hash&&w(r).href===e.href&&(e.hash=r.hash)},U=(r,e)=>w(r).href===w(e).href;var Ie=q(require("deepmerge"),1);function v(r,e){return document.dispatchEvent(new CustomEvent(`inertia:${r}`,e))}var ee=r=>v("before",{cancelable:!0,detail:{visit:r}}),ye=r=>v("error",{detail:{errors:r}}),Pe=r=>v("exception",{cancelable:!0,detail:{exception:r}}),we=r=>v("finish",{detail:{visit:r}}),Ee=r=>v("invalid",{cancelable:!0,detail:{response:r}}),E=r=>v("navigate",{detail:{page:r}}),Se=r=>v("progress",{detail:{progress:r}}),Re=r=>v("start",{detail:{visit:r}}),xe=r=>v("success",{detail:{page:r}}),qe=(r,e)=>v("prefetched",{detail:{fetchedAt:Date.now(),response:r.data,visit:e}}),Fe=r=>v("prefetching",{detail:{visit:r}});var ke=q(require("deepmerge"),1);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 Ae=async r=>{if(typeof window>"u")throw new Error("Unable to encrypt history");let e=Te(),t=await Ve(),s=await rt(t);if(!s)throw new Error("Unable to encrypt history");return await Ye(e,s,r)},F={key:"historyKey",iv:"historyIv"},Ce=async r=>{let e=Te(),t=await Ve();if(!t)throw new Error("Unable to decrypt history");return await Ze(e,t,r)},Ye=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=s.encode(i);return window.crypto.subtle.encrypt({name:"AES-GCM",iv:r},e,o)},Ze=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),i=new TextDecoder().decode(s);return JSON.parse(i)},Te=()=>{let r=c.get(F.iv);if(r)return new Uint8Array(r);let e=window.crypto.getRandomValues(new Uint8Array(12));return c.set(F.iv,Array.from(e)),e},et=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"]),tt=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(F.key,Array.from(new Uint8Array(e)))},rt=async r=>{if(r)return r;let e=await et();return e?(await tt(e),e):null},Ve=async()=>{let r=c.get(F.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())}};var te=q(require("deepmerge"),1),re=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 this.resolve(e.frames).then(d=>{if(p===this.componentId){if(e.scrollRegions??(e.scrollRegions=[]),e.frames._top?.url===void 0){let b=typeof window<"u"?window.location:new URL(e.frames._top.url);t=t||U(h(e.frames._top?.url),b)}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&&o=="_top"&&m.reset(e),t||E(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((0,te.default)(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=(0,te.default)(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])=>{if(i&&i!==o)return Promise.resolve();if(this.swappers[o])return 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 V.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 re;var K=typeof window>"u",se=class{constructor(){this.rememberedState="rememberedState";this.scrollRegions="scrollRegions";this.preserveUrl=!1;this.current={};this.queue=[]}remember(e,t,s){let i=n.get(),o=(0,ke.default)(i,{frames:{[e]:{rememberedState:{[s]:t}}}},{arrayMerge:(p,d)=>d});this.replaceState(o)}restore(e,t){if(!K)return this.current?.frames?.[e]?.rememberedState?.[t]}pushState(e){K||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=>se.encryptHistory?Ae(e).then(t):t(e))}processQueue(){let e=this.queue.shift();return e?e().then(()=>this.processQueue()):Promise.resolve()}decrypt(e=null){if(K)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?Ce(e):Promise.resolve(e)}replaceState(e){n.merge(e),!(K||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(F.key),c.remove(F.iv)}isValidState(e){return!!e.page}getAllState(){return this.current}},S=se;S.encryptHistory=!1;var a=new S;var ie=class{constructor(){this.internalListeners=[]}init(){typeof window<"u"&&window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),typeof document<"u"&&document.addEventListener("scroll",I(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((0,Ie.default)(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()),E(n.get())})}).catch(()=>{this.onMissingHistoryItem()});return}this.onMissingHistoryItem()}},R=new ie;var ne=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"}},oe=new ne;var j=class{static handle(){this.clearRememberedStateOnReload(),[this.handleBackForward,this.handleLocation,this.handleDefault].find(t=>t.bind(this)())}static clearRememberedStateOnReload(){oe.isReload()&&a.deleteRememberedState()}static handleBackForward(){return!oe.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()),E(n.get())})}).catch(()=>{R.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()),E(n.get())})}).catch(()=>{R.onMissingHistoryItem()}),!0}static handleDefault(){typeof window<"u"&&n.setUrlHash(window.location.hash),n.set(n.get(),{preserveState:!0,replace:!0}).then(()=>{E(n.get())})}};var _=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 ae=class{constructor(){this.polls=[];this.setupVisibilityListener()}add(e,t,s){let i=new _(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)}},Oe=new ae;var le=(r,e,t)=>{if(r===e)return!0;for(let s in r)if(!t.includes(s)&&r[s]!==e[s]&&!st(r[s],e[s]))return!1;return!0},st=(r,e)=>{switch(typeof r){case"object":return le(r,e,[]);case"function":return r.toString()===e.toString();default:return r===e}};var it={ms:1,s:1e3,m:6e4,h:36e5,d:864e5},ce=r=>{if(typeof r=="number")return r;for(let[e,t]of Object.entries(it))if(r.endsWith(e))return parseFloat(r)*t;return parseInt(r)};var pe=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),b=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,$){e.onPrefetched(f,$)},onPrefetchResponse(f){u(f)}})}).then(u=>(this.remove(e),this.cached.push({params:{...e},staleTimestamp:Date.now()+p,response:b,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:b,staleTimestamp:null,inFlight:!0}),b}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[ce(t),ce(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 le(e,t,["showProgress","replace","prefetch","onBefore","onStart","onProgress","onFinish","onCancel","onSuccess","onError","onPrefetched","onCancelToken","onPrefetching","async"])}},x=new pe;var de=q(require("axios"),1);var k=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 k(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 Le={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 ue=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()}},Ue=new ue,A=class{constructor(e,t,s){this.requestParams=e;this.response=t;this.originatingPage=s}static create(e,t,s){return new A(e,t,s)}async handlePrefetch(){U(this.requestParams.all().url,window.location)&&this.handle()}async handle(){return Ue.add(this),Ue.process()}async process(){if(this.requestParams.all().prefetch)return this.requestParams.all().prefetch=!1,this.requestParams.all().onPrefetched(this.response,this.requestParams.all()),qe(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 ye(s),this.requestParams.all().onError(s)}xe(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 Z(this.requestParams.all().url,t),this.locationVisit(t)}let e={...this.response,data:this.getDataFromResponse(this.response.data)};if(Ee(e))return Le.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;U(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,S.encryptHistory=e.encryptHistory,e.clearHistory&&a.clear(),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 Z(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 C=class{constructor(e,t){this.page=t;this.requestHasFinished=!1;this.requestParams=k.create(e),this.cancelToken=new AbortController}static create(e,t){return new C(e,t)}async send(){this.requestParams.onCancelToken(()=>this.cancel({cancelled:!0})),Re(this.requestParams.all()),this.requestParams.onStart(),this.requestParams.all().prefetch&&(this.requestParams.onPrefetching(),Fe(this.requestParams.all()));let e=this.requestParams.all().prefetch;return(0,de.default)({method:this.requestParams.all().method,url:w(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=A.create(this.requestParams,t,this.page),this.response.handle())).catch(t=>t?.response?(this.response=A.create(this.requestParams,t.response,this.page),this.response.handle()):Promise.reject(t)).catch(t=>{if(!de.default.isCancel(t)&&Pe(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,we(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,Se(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"]=w(h(s)).href),n.get().version&&(e["X-Inertia-Version"]=n.get().version),e}};var H=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 He={},V=class{constructor({frame:e,initialState:t,swapComponent:s}){this.syncRequestStream=new H({maxConcurrent:1,interruptible:!0});this.asyncRequestStream=new H({maxConcurrent:1/0,interruptible:!1});this.frame=e,!He.env.SSR&&(n.init({frame:e,initialState:t,swapComponent:s}),e==="_top"&&(j.handle(),R.init(),R.on("missingHistoryItem",()=>{typeof window<"u"&&this.visit(window.location.href,{preserveState:!0,preserveScroll:!0,replace:!0})}),R.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 R.onGlobalEvent(e,t)}cancel(){this.syncRequestStream.cancelInFlight()}cancelAll(){this.asyncRequestStream.cancelInFlight(),this.syncRequestStream.cancelInFlight()}poll(e,t={},s={}){return Oe.add(e,()=>this.reload(t),{autoStart:s.autoStart??!0,keepAlive:s.keepAlive??!1})}visit(e,t={}){if(He.env.SSR)return;let s=this.getPendingVisit(e,{...t,showProgress:t.showProgress??!t.async}),i=this.getVisitEvents(t);if(i.onBefore(s)===!1||!ee(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=x.get(p);d?(O(d.inFlight),x.use(d,p)):(O(!0),o.send(C.create(p,n.get())))}getCached(e,t={}){return x.findCached(this.getPrefetchParams(e,t))}flush(e,t={}){x.remove(this.getPrefetchParams(e,t))}flushAll(){x.removeAll()}getPrefetching(e,t={}){return x.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||!ee(i))return;L(),this.asyncRequestStream.interruptInFlight();let p={...i,...o};x.add(p,d=>{this.asyncRequestStream.send(C.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]=be(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})})}};
|
|
73
73
|
//# sourceMappingURL=index.js.map
|