@inertiajs/react 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{router as st}from"@inertiajs/core";import{router as Re,setupProgress as xe}from"@inertiajs/core";import{createElement as Ie}from"react";import{createHeadManager as ve,router as ie}from"@inertiajs/core";import{createElement as w,useEffect as be,useMemo as Ce,useState as ke}from"react";import{createContext as Te}from"react";var se=Te(void 0);se.displayName="InertiaHeadContext";var B=se;import{createContext as Fe}from"react";var ae=Fe(void 0);ae.displayName="InertiaPageContext";var N=ae;function _({children:p,initialPage:n,initialComponent:s,resolveComponent:a,titleCallback:i,onHeadUpdate:f}){let[u,m]=ke({component:s||null,page:n,key:null}),d=Ce(()=>ve(typeof window>"u",i||(c=>c),f||(()=>{})),[]);if(be(()=>{ie.init({initialPage:n,resolveComponent:a,swapComponent:async({component:c,page:e,preserveState:l})=>{m(t=>({component:c,page:e,key:l?t.key:Date.now()}))}}),ie.on("navigate",()=>d.forceUpdate())},[]),!u.component)return w(B.Provider,{value:d},w(N.Provider,{value:u.page},null));let g=p||(({Component:c,props:e,key:l})=>{let t=w(c,{key:l,...e});return typeof c.layout=="function"?c.layout(t):Array.isArray(c.layout)?c.layout.concat(t).reverse().reduce((h,S)=>w(S,{children:h,...e})):t});return w(B.Provider,{value:d},w(N.Provider,{value:u.page},g({Component:u.component,key:u.key,props:u.page.props})))}_.displayName="Inertia";async function pe({id:p="app",resolve:n,setup:s,title:a,progress:i={},page:f,render:u}){let m=typeof window>"u",d=m?null:document.getElementById(p),g=f||JSON.parse(d.dataset.page),c=t=>Promise.resolve(n(t)).then(h=>h.default||h),e=[],l=await Promise.all([c(g.component),Re.decryptHistory().catch(()=>{})]).then(([t])=>s({el:d,App:_,props:{initialPage:g,initialComponent:t,resolveComponent:c,titleCallback:a,onHeadUpdate:m?h=>e=h:null}}));if(!m&&i&&xe(i),m){let t=await u(Ie("div",{id:p,"data-page":JSON.stringify(g)},l));return{head:e,body:t}}}import{useEffect as Ae,useState as De}from"react";import{useContext as Ee}from"react";function q(){let p=Ee(N);if(!p)throw new Error("usePage must be used within the Inertia component");return p}var ue=({children:p,data:n,fallback:s})=>{if(!n)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[a,i]=De(!1),f=q().props,u=Array.isArray(n)?n:[n];return Ae(()=>{i(u.every(m=>f[m]!==void 0))},[f,u]),a?p:s};ue.displayName="InertiaDeferred";var Oe=ue;import ce,{useContext as we,useEffect as Me,useMemo as Le}from"react";var He=function({children:p,title:n}){let s=we(B),a=Le(()=>s.createProvider(),[s]);Me(()=>()=>{a.disconnect()},[a]);function i(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function f(e){let l=Object.keys(e.props).reduce((t,h)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(h))return t;let S=e.props[h];return S===""?t+` ${h}`:t+` ${h}="${S}"`},"");return`<${e.type}${l}>`}function u(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((l,t)=>l+m(t),"")}function m(e){let l=f(e);return e.props.children&&(l+=u(e)),e.props.dangerouslySetInnerHTML&&(l+=e.props.dangerouslySetInnerHTML.__html),i(e)||(l+=`</${e.type}>`),l}function d(e){return ce.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function g(e){return m(d(e))}function c(e){let l=ce.Children.toArray(e).filter(t=>t).map(t=>g(t));return n&&!l.find(t=>t.startsWith("<title"))&&l.push(`<title inertia>${n}</title>`),l}return a.update(c(p)),null},Be=He;import{mergeDataIntoQueryString as Ne,router as te,shouldIntercept as re}from"@inertiajs/core";import{createElement as Ve,forwardRef as je,useEffect as le,useMemo as fe,useRef as Ue,useState as $e}from"react";var R=()=>{},de=je(({children:p,as:n="a",data:s={},href:a,method:i="get",preserveScroll:f=!1,preserveState:u=null,replace:m=!1,only:d=[],except:g=[],headers:c={},queryStringArrayFormat:e="brackets",async:l=!1,onClick:t=R,onCancelToken:h=R,onBefore:S=R,onStart:I=R,onProgress:E=R,onFinish:Q=R,onCancel:U=R,onSuccess:Y=R,onError:M=R,prefetch:F=!1,cacheFor:b=0,...z},G)=>{let[X,$]=$e(0),L=Ue(null);n=n.toLowerCase(),i=typeof a=="object"?a.method:i.toLowerCase();let[A,Z]=Ne(i,typeof a=="object"?a.url:a||"",s,e),D=A;s=Z;let W={data:s,method:i,preserveScroll:f,preserveState:u??i!=="get",replace:m,only:d,except:g,headers:c,async:l},K={...W,onCancelToken:h,onBefore:S,onStart(r){$(O=>O+1),I(r)},onProgress:E,onFinish(r){$(O=>O-1),Q(r)},onCancel:U,onSuccess:Y,onError:M},H=()=>{te.prefetch(D,W,{cacheFor:ee})},k=fe(()=>F===!0?["hover"]:F===!1?[]:Array.isArray(F)?F:[F],Array.isArray(F)?F:[F]),ee=fe(()=>b!==0?b:k.length===1&&k[0]==="click"?0:3e4,[b,k]);le(()=>()=>{clearTimeout(L.current)},[]),le(()=>{k.includes("mount")&&setTimeout(()=>H())},k);let o={onClick:r=>{t(r),re(r)&&(r.preventDefault(),te.visit(D,K))}},y={onMouseEnter:()=>{L.current=window.setTimeout(()=>{H()},75)},onMouseLeave:()=>{clearTimeout(L.current)},onClick:o.onClick},P={onMouseDown:r=>{re(r)&&(r.preventDefault(),H())},onMouseUp:r=>{r.preventDefault(),te.visit(D,K)},onClick:r=>{t(r),re(r)&&r.preventDefault()}};return i!=="get"&&(n="button"),Ve(n,{...z,...{a:{href:D},button:{type:"button"}}[n]||{},ref:G,...k.includes("hover")?y:k.includes("click")?P:o,"data-loading":X>0?"":void 0},p)});de.displayName="InertiaLink";var We=de;import{router as ge}from"@inertiajs/core";import qe from"lodash.clonedeep";import Je from"lodash.isequal";import{useCallback as v,useEffect as Qe,useRef as J,useState as x}from"react";import{router as me}from"@inertiajs/core";import{useEffect as Ke,useState as _e}from"react";function V(p,n){let[s,a]=_e(()=>{let i=me.restore(n);return i!==void 0?i:p});return Ke(()=>{me.remember(s,n)},[s,n]),[s,a]}function Pe(p,n){let s=J(null),a=typeof p=="string"?p:null,[i,f]=x((typeof p=="string"?n:p)||{}),u=J(null),m=J(null),[d,g]=a?V(i,`${a}:data`):x(i),[c,e]=a?V({},`${a}:errors`):x({}),[l,t]=x(!1),[h,S]=x(!1),[I,E]=x(null),[Q,U]=x(!1),[Y,M]=x(!1),F=J(o=>o);Qe(()=>(s.current=!0,()=>{s.current=!1}),[]);let b=v((...o)=>{let y=typeof o[0]=="object",P=y?o[0].method:o[0],C=y?o[0].url:o[1],r=(y?o[1]:o[2])??{},O={...r,onCancelToken:T=>{if(u.current=T,r.onCancelToken)return r.onCancelToken(T)},onBefore:T=>{if(U(!1),M(!1),clearTimeout(m.current),r.onBefore)return r.onBefore(T)},onStart:T=>{if(S(!0),r.onStart)return r.onStart(T)},onProgress:T=>{if(E(T),r.onProgress)return r.onProgress(T)},onSuccess:T=>{if(s.current&&(S(!1),E(null),e({}),t(!1),U(!0),M(!0),f(qe(d)),m.current=setTimeout(()=>{s.current&&M(!1)},2e3)),r.onSuccess)return r.onSuccess(T)},onError:T=>{if(s.current&&(S(!1),E(null),e(T),t(!0)),r.onError)return r.onError(T)},onCancel:()=>{if(s.current&&(S(!1),E(null)),r.onCancel)return r.onCancel()},onFinish:T=>{if(s.current&&(S(!1),E(null)),u.current=null,r.onFinish)return r.onFinish(T)}};P==="delete"?ge.delete(C,{...O,data:F.current(d)}):ge[P](C,F.current(d),O)},[d,e,F]),z=v((o,y)=>{g(typeof o=="string"?P=>({...P,[o]:y}):typeof o=="function"?P=>o(P):o)},[g]),G=v((o,y)=>{f(typeof o>"u"?()=>d:P=>({...P,...typeof o=="string"?{[o]:y}:o}))},[d,f]),X=v((...o)=>{o.length===0?g(i):g(y=>Object.keys(i).filter(P=>o.includes(P)).reduce((P,C)=>(P[C]=i[C],P),{...y}))},[g,i]),$=v((o,y)=>{e(P=>{let C={...P,...typeof o=="string"?{[o]:y}:o};return t(Object.keys(C).length>0),C})},[e,t]),L=v((...o)=>{e(y=>{let P=Object.keys(y).reduce((C,r)=>({...C,...o.length>0&&!o.includes(r)?{[r]:y[r]}:{}}),{});return t(Object.keys(P).length>0),P})},[e,t]),A=o=>(y,P)=>{b(o,y,P)},Z=v(A("get"),[b]),D=v(A("post"),[b]),W=v(A("put"),[b]),K=v(A("patch"),[b]),H=v(A("delete"),[b]),k=v(()=>{u.current&&u.current.cancel()},[]),ee=v(o=>{F.current=o},[]);return{data:d,setData:z,isDirty:!Je(d,i),errors:c,hasErrors:l,processing:h,progress:I,wasSuccessful:Q,recentlySuccessful:Y,transform:ee,setDefaults:G,reset:X,setError:$,clearErrors:L,submit:b,get:Z,post:D,put:W,patch:K,delete:H,cancel:k}}import{router as Ye}from"@inertiajs/core";import{useEffect as ze,useRef as Ge}from"react";function ye(p,n={},s={keepAlive:!1,autoStart:!0}){let a=Ge(Ye.poll(p,n,{...s,autoStart:!1}));return ze(()=>((s.autoStart??!0)&&a.current.start(),()=>a.current.stop()),[]),{stop:a.current.stop,start:a.current.start}}import{router as j}from"@inertiajs/core";import{useEffect as Xe,useState as oe}from"react";function he(p={}){let n=typeof window>"u"?null:j.getCached(window.location.pathname,p),s=typeof window>"u"?null:j.getPrefetching(window.location.pathname,p),[a,i]=oe(n?.staleTimestamp||null),[f,u]=oe(s!==null),[m,d]=oe(n!==null);return Xe(()=>{let g=j.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&u(!0)}),c=j.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(u(!1),d(!0),i(e.detail.fetchedAt))});return()=>{c(),g()}},[]),{lastUpdatedAt:a,isPrefetching:f,isPrefetched:m,flush:()=>j.flush(window.location.pathname,p)}}import{router as Ze}from"@inertiajs/core";import{createElement as et,useCallback as tt,useEffect as rt,useRef as ne,useState as ot}from"react";var Se=({children:p,data:n,params:s,buffer:a,as:i,always:f,fallback:u})=>{f=f??!1,i=i??"div",u=u??null;let[m,d]=ot(!1),g=ne(!1),c=ne(!1),e=ne(null),l=tt(()=>{if(n)return{only:Array.isArray(n)?n:[n]};if(!s)throw new Error("You must provide either a `data` or `params` prop.");return s},[s,n]);return rt(()=>{if(!e.current)return;let t=new IntersectionObserver(h=>{if(!h[0].isIntersecting||(!f&&g.current&&t.disconnect(),c.current))return;g.current=!0,c.current=!0;let S=l();Ze.reload({...S,onStart:I=>{c.current=!0,S.onStart?.(I)},onFinish:I=>{d(!0),c.current=!1,S.onFinish?.(I),f||t.disconnect()}})},{rootMargin:`${a||0}px`});return t.observe(e.current),()=>{t.disconnect()}},[e,l,a]),f||!m?et(i,{props:null,ref:e},m?p:u):m?p:null};Se.displayName="InertiaWhenVisible";var nt=Se;var br=st;export{Oe as Deferred,Be as Head,We as Link,nt as WhenVisible,pe as createInertiaApp,br as router,Pe as useForm,q as usePage,ye as usePoll,he as usePrefetch,V as useRemember};
1
+ import{router as ct}from"@inertiajs/core";import{router as ke,setupProgress as Ae}from"@inertiajs/core";import{createElement as Oe}from"react";import{createHeadManager as De,router as ue}from"@inertiajs/core";import{createElement as w,useEffect as xe,useMemo as Ie,useState as Ee}from"react";import{createContext as Ce}from"react";var ie=Ce(void 0);ie.displayName="InertiaHeadContext";var K=ie;import{createContext as Re}from"react";var pe=Re(void 0);pe.displayName="InertiaPageContext";var B=pe;function _({children:p,initialPage:n,initialComponent:s,resolveComponent:i,titleCallback:a,onHeadUpdate:g}){let[u,f]=Ee({component:s||null,page:n,key:null}),c=Ie(()=>De(typeof window>"u",a||(l=>l),g||(()=>{})),[]);if(xe(()=>{ue.init({initialPage:n,resolveComponent:i,swapComponent:async({component:l,page:e,preserveState:d})=>{f(t=>({component:l,page:e,key:d?t.key:Date.now()}))}}),ue.on("navigate",()=>c.forceUpdate())},[]),!u.component)return w(K.Provider,{value:c},w(B.Provider,{value:u.page},null));let m=p||(({Component:l,props:e,key:d})=>{let t=w(l,{key:d,...e});return typeof l.layout=="function"?l.layout(t):Array.isArray(l.layout)?l.layout.concat(t).reverse().reduce((h,F)=>w(F,{children:h,...e})):t});return w(K.Provider,{value:c},w(B.Provider,{value:u.page},m({Component:u.component,key:u.key,props:u.page.props})))}_.displayName="Inertia";async function ce({id:p="app",resolve:n,setup:s,title:i,progress:a={},page:g,render:u}){let f=typeof window>"u",c=f?null:document.getElementById(p),m=g||JSON.parse(c.dataset.page),l=t=>Promise.resolve(n(t)).then(h=>h.default||h),e=[],d=await Promise.all([l(m.component),ke.decryptHistory().catch(()=>{})]).then(([t])=>s({el:c,App:_,props:{initialPage:m,initialComponent:t,resolveComponent:l,titleCallback:i,onHeadUpdate:f?h=>e=h:null}}));if(!f&&a&&Ae(a),f){let t=await u(Oe("div",{id:p,"data-page":JSON.stringify(m)},d));return{head:e,body:t}}}import{useEffect as le,useMemo as Me,useState as Le}from"react";import{useContext as we}from"react";function q(){let p=we(B);if(!p)throw new Error("usePage must be used within the Inertia component");return p}var de=({children:p,data:n,fallback:s})=>{if(!n)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[i,a]=Le(!1),g=q().props,u=Me(()=>Array.isArray(n)?n:[n],[n]);return le(()=>{let f=fe.on("start",c=>{(c.detail.visit.only.length===0&&c.detail.visit.except.length===0||c.detail.visit.only.find(m=>u.includes(m)))&&a(!1)});return()=>{f()}},[]),le(()=>{a(u.every(f=>g[f]!==void 0))},[g,u]),i?p:s};de.displayName="InertiaDeferred";var He=de;import me,{useContext as Ke,useEffect as Be,useMemo as Ve}from"react";var Ne=function({children:p,title:n}){let s=Ke(K),i=Ve(()=>s.createProvider(),[s]);Be(()=>()=>{i.disconnect()},[i]);function a(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function g(e){let d=Object.keys(e.props).reduce((t,h)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(h))return t;let F=e.props[h];return F===""?t+` ${h}`:t+` ${h}="${F}"`},"");return`<${e.type}${d}>`}function u(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((d,t)=>d+f(t),"")}function f(e){let d=g(e);return e.props.children&&(d+=u(e)),e.props.dangerouslySetInnerHTML&&(d+=e.props.dangerouslySetInnerHTML.__html),a(e)||(d+=`</${e.type}>`),d}function c(e){return me.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function m(e){return f(c(e))}function l(e){let d=me.Children.toArray(e).filter(t=>t).map(t=>m(t));return n&&!d.find(t=>t.startsWith("<title"))&&d.push(`<title inertia>${n}</title>`),d}return i.update(l(p)),null},je=Ne;import{mergeDataIntoQueryString as Ue,router as re,shouldIntercept as oe}from"@inertiajs/core";import{createElement as $e,forwardRef as We,useEffect as ge,useMemo as Pe,useRef as _e,useState as qe}from"react";var D=()=>{},ye=We(({children:p,as:n="a",data:s={},href:i,method:a="get",preserveScroll:g=!1,preserveState:u=null,replace:f=!1,only:c=[],except:m=[],headers:l={},queryStringArrayFormat:e="brackets",async:d=!1,onClick:t=D,onCancelToken:h=D,onBefore:F=D,onStart:I=D,onProgress:E=D,onFinish:Y=D,onCancel:j=D,onSuccess:z=D,onError:M=D,prefetch:T=!1,cacheFor:b=0,...G},X)=>{let[Z,U]=qe(0),L=_e(null);n=n.toLowerCase(),a=typeof i=="object"?i.method:a.toLowerCase();let[k,ee]=Ue(a,typeof i=="object"?i.url:i||"",s,e),A=k;s=ee;let $={data:s,method:a,preserveScroll:g,preserveState:u??a!=="get",replace:f,only:c,except:m,headers:l,async:d},W={...$,onCancelToken:h,onBefore:F,onStart(r){U(O=>O+1),I(r)},onProgress:E,onFinish(r){U(O=>O-1),Y(r)},onCancel:j,onSuccess:z,onError:M},H=()=>{re.prefetch(A,$,{cacheFor:te})},R=Pe(()=>T===!0?["hover"]:T===!1?[]:Array.isArray(T)?T:[T],Array.isArray(T)?T:[T]),te=Pe(()=>b!==0?b:R.length===1&&R[0]==="click"?0:3e4,[b,R]);ge(()=>()=>{clearTimeout(L.current)},[]),ge(()=>{R.includes("mount")&&setTimeout(()=>H())},R);let o={onClick:r=>{t(r),oe(r)&&(r.preventDefault(),re.visit(A,W))}},y={onMouseEnter:()=>{L.current=window.setTimeout(()=>{H()},75)},onMouseLeave:()=>{clearTimeout(L.current)},onClick:o.onClick},P={onMouseDown:r=>{oe(r)&&(r.preventDefault(),H())},onMouseUp:r=>{r.preventDefault(),re.visit(A,W)},onClick:r=>{t(r),oe(r)&&r.preventDefault()}};return a!=="get"&&(n="button"),$e(n,{...G,...{a:{href:A},button:{type:"button"}}[n]||{},ref:X,...R.includes("hover")?y:R.includes("click")?P:o,"data-loading":Z>0?"":void 0},p)});ye.displayName="InertiaLink";var Je=ye;import{router as Fe}from"@inertiajs/core";import{cloneDeep as J,isEqual as ze}from"es-toolkit";import{get as Ge,has as Xe,set as ne}from"es-toolkit/compat";import{useCallback as v,useEffect as Ze,useRef as Q,useState as x}from"react";import{router as he}from"@inertiajs/core";import{useEffect as Qe,useState as Ye}from"react";function V(p,n){let[s,i]=Ye(()=>{let a=he.restore(n);return a!==void 0?a:p});return Qe(()=>{he.remember(s,n)},[s,n]),[s,i]}function Se(p,n){let s=Q(null),i=typeof p=="string"?p:null,[a,g]=x((typeof p=="string"?n:p)||{}),u=Q(null),f=Q(null),[c,m]=i?V(a,`${i}:data`):x(a),[l,e]=i?V({},`${i}:errors`):x({}),[d,t]=x(!1),[h,F]=x(!1),[I,E]=x(null),[Y,j]=x(!1),[z,M]=x(!1),T=Q(o=>o);Ze(()=>(s.current=!0,()=>{s.current=!1}),[]);let b=v((...o)=>{let y=typeof o[0]=="object",P=y?o[0].method:o[0],C=y?o[0].url:o[1],r=(y?o[1]:o[2])??{},O={...r,onCancelToken:S=>{if(u.current=S,r.onCancelToken)return r.onCancelToken(S)},onBefore:S=>{if(j(!1),M(!1),clearTimeout(f.current),r.onBefore)return r.onBefore(S)},onStart:S=>{if(F(!0),r.onStart)return r.onStart(S)},onProgress:S=>{if(E(S),r.onProgress)return r.onProgress(S)},onSuccess:S=>{if(s.current&&(F(!1),E(null),e({}),t(!1),j(!0),M(!0),g(J(c)),f.current=setTimeout(()=>{s.current&&M(!1)},2e3)),r.onSuccess)return r.onSuccess(S)},onError:S=>{if(s.current&&(F(!1),E(null),e(S),t(!0)),r.onError)return r.onError(S)},onCancel:()=>{if(s.current&&(F(!1),E(null)),r.onCancel)return r.onCancel()},onFinish:S=>{if(s.current&&(F(!1),E(null)),u.current=null,r.onFinish)return r.onFinish(S)}};P==="delete"?Fe.delete(C,{...O,data:T.current(c)}):Fe[P](C,T.current(c),O)},[c,e,T]),G=v((o,y)=>{m(typeof o=="string"?P=>ne(J(P),o,y):typeof o=="function"?P=>o(P):o)},[m]),X=v((o,y)=>{g(typeof o>"u"?()=>c:P=>typeof o=="string"?ne(J(P),o,y):Object.assign(J(P),o))},[c,g]),Z=v((...o)=>{o.length===0?m(a):m(y=>o.filter(P=>Xe(a,P)).reduce((P,C)=>ne(P,C,Ge(a,C)),{...y}))},[m,a]),U=v((o,y)=>{e(P=>{let C={...P,...typeof o=="string"?{[o]:y}:o};return t(Object.keys(C).length>0),C})},[e,t]),L=v((...o)=>{e(y=>{let P=Object.keys(y).reduce((C,r)=>({...C,...o.length>0&&!o.includes(r)?{[r]:y[r]}:{}}),{});return t(Object.keys(P).length>0),P})},[e,t]),k=o=>(y,P)=>{b(o,y,P)},ee=v(k("get"),[b]),A=v(k("post"),[b]),$=v(k("put"),[b]),W=v(k("patch"),[b]),H=v(k("delete"),[b]),R=v(()=>{u.current&&u.current.cancel()},[]),te=v(o=>{T.current=o},[]);return{data:c,setData:G,isDirty:!ze(c,a),errors:l,hasErrors:d,processing:h,progress:I,wasSuccessful:Y,recentlySuccessful:z,transform:te,setDefaults:X,reset:Z,setError:U,clearErrors:L,submit:b,get:ee,post:A,put:$,patch:W,delete:H,cancel:R}}import{router as et}from"@inertiajs/core";import{useEffect as tt,useRef as rt}from"react";function Te(p,n={},s={keepAlive:!1,autoStart:!0}){let i=rt(et.poll(p,n,{...s,autoStart:!1}));return tt(()=>((s.autoStart??!0)&&i.current.start(),()=>i.current.stop()),[]),{stop:i.current.stop,start:i.current.start}}import{router as N}from"@inertiajs/core";import{useEffect as ot,useState as se}from"react";function ve(p={}){let n=typeof window>"u"?null:N.getCached(window.location.pathname,p),s=typeof window>"u"?null:N.getPrefetching(window.location.pathname,p),[i,a]=se(n?.staleTimestamp||null),[g,u]=se(s!==null),[f,c]=se(n!==null);return ot(()=>{let m=N.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&u(!0)}),l=N.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(u(!1),c(!0),a(e.detail.fetchedAt))});return()=>{l(),m()}},[]),{lastUpdatedAt:i,isPrefetching:g,isPrefetched:f,flush:()=>N.flush(window.location.pathname,p)}}import{router as nt}from"@inertiajs/core";import{createElement as st,useCallback as at,useEffect as it,useRef as ae,useState as pt}from"react";var be=({children:p,data:n,params:s,buffer:i,as:a,always:g,fallback:u})=>{g=g??!1,a=a??"div",u=u??null;let[f,c]=pt(!1),m=ae(!1),l=ae(!1),e=ae(null),d=at(()=>{if(n)return{only:Array.isArray(n)?n:[n]};if(!s)throw new Error("You must provide either a `data` or `params` prop.");return s},[s,n]);return it(()=>{if(!e.current)return;let t=new IntersectionObserver(h=>{if(!h[0].isIntersecting||(!g&&m.current&&t.disconnect(),l.current))return;m.current=!0,l.current=!0;let F=d();nt.reload({...F,onStart:I=>{l.current=!0,F.onStart?.(I)},onFinish:I=>{c(!0),l.current=!1,F.onFinish?.(I),g||t.disconnect()}})},{rootMargin:`${i||0}px`});return t.observe(e.current),()=>{t.disconnect()}},[e,d,i]),g||!f?st(a,{props:null,ref:e},f?p:u):f?p:null};be.displayName="InertiaWhenVisible";var ut=be;var fe=ct;export{He as Deferred,je as Head,Je as Link,ut as WhenVisible,ce as createInertiaApp,fe as router,Se as useForm,q as usePage,Te as usePoll,ve as usePrefetch,V as useRemember};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/HeadContext.ts", "../src/PageContext.ts", "../src/Deferred.ts", "../src/usePage.ts", "../src/Head.ts", "../src/Link.ts", "../src/useForm.ts", "../src/useRemember.ts", "../src/usePoll.ts", "../src/usePrefetch.ts", "../src/WhenVisible.ts"],
4
- "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './Deferred'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './WhenVisible'\n", "import { Page, PageProps, PageResolver, router, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import { ReactElement, useEffect, useState } from 'react'\nimport usePage from './usePage'\n\ninterface DeferredProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data: string | string[]\n}\n\nconst Deferred = ({ children, data, fallback }: DeferredProps) => {\n if (!data) {\n throw new Error('`<Deferred>` requires a `data` prop to be a string or array of strings')\n }\n\n const [loaded, setLoaded] = useState(false)\n const pageProps = usePage().props\n const keys = Array.isArray(data) ? data : [data]\n\n useEffect(() => {\n setLoaded(keys.every((key) => pageProps[key] !== undefined))\n }, [pageProps, keys])\n\n return loaded ? children : fallback\n}\n\nDeferred.displayName = 'InertiaDeferred'\n\nexport default Deferred\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useEffect, useMemo, useRef, useState } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string | { url: string; method: Method }\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: (event: PendingVisit) => void\n onProgress?: (progress: Progress) => void\n onFinish?: (event: PendingVisit) => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n async?: boolean\n cacheFor?: number | string\n prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[]\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n async = false,\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n prefetch = false,\n cacheFor = 0,\n ...props\n },\n ref,\n ) => {\n const [inFlightCount, setInFlightCount] = useState(0)\n const hoverTimeout = useRef<number>(null)\n\n as = as.toLowerCase()\n method = typeof href === 'object' ? href.method : (method.toLowerCase() as Method)\n const [_href, _data] = mergeDataIntoQueryString(\n method,\n typeof href === 'object' ? href.url : href || '',\n data,\n queryStringArrayFormat,\n )\n const url = _href\n data = _data\n\n const baseParams = {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n async,\n }\n\n const visitParams = {\n ...baseParams,\n onCancelToken,\n onBefore,\n onStart(event) {\n setInFlightCount((count) => count + 1)\n onStart(event)\n },\n onProgress,\n onFinish(event) {\n setInFlightCount((count) => count - 1)\n onFinish(event)\n },\n onCancel,\n onSuccess,\n onError,\n }\n\n const doPrefetch = () => {\n router.prefetch(url, baseParams, { cacheFor: cacheForValue })\n }\n\n const prefetchModes: LinkPrefetchOption[] = useMemo(\n () => {\n if (prefetch === true) {\n return ['hover']\n }\n\n if (prefetch === false) {\n return []\n }\n\n if (Array.isArray(prefetch)) {\n return prefetch\n }\n\n return [prefetch]\n },\n Array.isArray(prefetch) ? prefetch : [prefetch],\n )\n\n const cacheForValue = useMemo(() => {\n if (cacheFor !== 0) {\n // If they've provided a value, respect it\n return cacheFor\n }\n\n if (prefetchModes.length === 1 && prefetchModes[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return 30_000\n }, [cacheFor, prefetchModes])\n\n useEffect(() => {\n return () => {\n clearTimeout(hoverTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (prefetchModes.includes('mount')) {\n setTimeout(() => doPrefetch())\n }\n }, prefetchModes)\n\n const regularEvents = {\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(url, visitParams)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseEnter: () => {\n hoverTimeout.current = window.setTimeout(() => {\n doPrefetch()\n }, 75)\n },\n onMouseLeave: () => {\n clearTimeout(hoverTimeout.current)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMouseDown: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n doPrefetch()\n }\n },\n onMouseUp: (event) => {\n event.preventDefault()\n router.visit(url, visitParams)\n },\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n // Let the mouseup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n if (method !== 'get') {\n as = 'button'\n }\n\n const elProps = {\n a: { href: url },\n button: { type: 'button' },\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(elProps[as] || {}),\n ref,\n ...(() => {\n if (prefetchModes.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n 'data-loading': inFlightCount > 0 ? '' : undefined,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import { FormDataConvertible, Method, Progress, router, VisitOptions } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport isEqual from 'lodash.isequal'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype setDataByObject<TForm> = (data: TForm) => void\ntype setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void\ntype FormDataType = Record<string, FormDataConvertible>\ntype FormOptions = Omit<VisitOptions, 'data'>\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: keyof TForm, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: (keyof TForm)[]) => void\n clearErrors: (...fields: (keyof TForm)[]) => void\n setError(field: keyof TForm, value: string): void\n setError(errors: Record<keyof TForm, string>): void\n submit: (...args: [Method, string, FormOptions?] | [{ url: string; method: Method }, FormOptions?]) => void\n get: (url: string, options?: FormOptions) => void\n patch: (url: string, options?: FormOptions) => void\n post: (url: string, options?: FormOptions) => void\n put: (url: string, options?: FormOptions) => void\n delete: (url: string, options?: FormOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<keyof TForm, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<keyof TForm, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n const transform = useRef((data) => data)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (...args) => {\n const objectPassed = typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : args[0]\n const url = objectPassed ? args[0].url : args[1]\n const options = (objectPassed ? args[1] : args[2]) ?? {}\n\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n setDefaults(cloneDeep(data))\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform.current(data) })\n } else {\n router[method](url, transform.current(data), _options)\n }\n },\n [data, setErrors, transform],\n )\n\n const setDataFunction = useCallback(\n (keyOrData: keyof TForm | Function | TForm, maybeValue?: TForm[keyof TForm]) => {\n if (typeof keyOrData === 'string') {\n setData((data) => ({ ...data, [keyOrData]: maybeValue }))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n [setData],\n )\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: keyof TForm | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => ({\n ...defaults,\n ...(typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : (fieldOrFields as TForm)),\n }))\n }\n },\n [data, setDefaults],\n )\n\n const reset = useCallback(\n (...fields) => {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData((data) =>\n (Object.keys(defaults) as Array<keyof TForm>)\n .filter((key) => fields.includes(key))\n .reduce(\n (carry, key) => {\n carry[key] = defaults[key]\n return carry\n },\n { ...data },\n ),\n )\n }\n },\n [setData, defaults],\n )\n\n const setError = useCallback(\n (fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) => {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<keyof TForm, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const clearErrors = useCallback(\n (...fields) => {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<keyof TForm>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const createSubmitMethod = (method) => (url, options) => {\n submit(method, url, options)\n }\n const get = useCallback(createSubmitMethod('get'), [submit])\n const post = useCallback(createSubmitMethod('post'), [submit])\n const put = useCallback(createSubmitMethod('put'), [submit])\n const patch = useCallback(createSubmitMethod('patch'), [submit])\n const deleteMethod = useCallback(createSubmitMethod('delete'), [submit])\n\n const cancel = useCallback(() => {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n }, [])\n\n const transformFunction = useCallback((callback) => {\n transform.current = callback\n }, [])\n\n return {\n data,\n setData: setDataFunction,\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform: transformFunction,\n setDefaults: setDefaultsFunction,\n reset,\n setError,\n clearErrors,\n submit,\n get,\n post,\n put,\n patch,\n delete: deleteMethod,\n cancel,\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { useEffect, useRef } from 'react'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n) {\n const pollRef = useRef(\n router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n }),\n )\n\n useEffect(() => {\n if (options.autoStart ?? true) {\n pollRef.current.start()\n }\n\n return () => pollRef.current.stop()\n }, [])\n\n return {\n stop: pollRef.current.stop,\n start: pollRef.current.start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { useEffect, useState } from 'react'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: number | null\n isPrefetching: boolean\n isPrefetched: boolean\n flush: () => void\n} {\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n const [lastUpdatedAt, setLastUpdatedAt] = useState<number | null>(cached?.staleTimestamp || null)\n const [isPrefetching, setIsPrefetching] = useState(inFlight !== null)\n const [isPrefetched, setIsPrefetched] = useState(cached !== null)\n\n useEffect(() => {\n const onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(true)\n }\n })\n\n const onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(false)\n setIsPrefetched(true)\n setLastUpdatedAt(e.detail.fetchedAt)\n }\n })\n\n return () => {\n onPrefetchedListener()\n onPrefetchingListener()\n }\n }, [])\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { createElement, ReactElement, useCallback, useEffect, useRef, useState } from 'react'\n\ninterface WhenVisibleProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data?: string | string[]\n params?: ReloadOptions\n buffer?: number\n as?: string\n always?: boolean\n}\n\nconst WhenVisible = ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps) => {\n always = always ?? false\n as = as ?? 'div'\n fallback = fallback ?? null\n\n const [loaded, setLoaded] = useState(false)\n const hasFetched = useRef<boolean>(false)\n const fetching = useRef<boolean>(false)\n const ref = useRef<HTMLDivElement>(null)\n\n const getReloadParams = useCallback<() => Partial<ReloadOptions>>(() => {\n if (data) {\n return {\n only: (Array.isArray(data) ? data : [data]) as string[],\n }\n }\n\n if (!params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return params\n }, [params, data])\n\n useEffect(() => {\n if (!ref.current) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!always && hasFetched.current) {\n observer.disconnect()\n }\n\n if (fetching.current) {\n return\n }\n\n hasFetched.current = true\n fetching.current = true\n\n const reloadParams = getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n fetching.current = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n setLoaded(true)\n fetching.current = false\n reloadParams.onFinish?.(e)\n\n if (!always) {\n observer.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${buffer || 0}px`,\n },\n )\n\n observer.observe(ref.current)\n\n return () => {\n observer.disconnect()\n }\n }, [ref, getReloadParams, buffer])\n\n if (always || !loaded) {\n return createElement(\n as,\n {\n props: null,\n ref,\n },\n loaded ? children : fallback,\n )\n }\n\n return loaded ? children : null\n}\n\nWhenVisible.displayName = 'InertiaWhenVisible'\n\nexport default WhenVisible\n"],
5
- "mappings": "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",
6
- "names": ["Router", "router", "setupProgress", "createElement", "createHeadManager", "router", "createElement", "useEffect", "useMemo", "useState", "createContext", "headContext", "HeadContext_default", "createContext", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "useState", "headManager", "useMemo", "createHeadManager", "title", "useEffect", "router", "component", "page", "preserveState", "createElement", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "router", "initialComponent", "App", "elements", "setupProgress", "body", "createElement", "useEffect", "useState", "useContext", "usePage", "page", "useContext", "PageContext_default", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "useState", "pageProps", "usePage", "keys", "useEffect", "key", "Deferred_default", "React", "useContext", "useEffect", "useMemo", "Head", "children", "title", "headManager", "useContext", "HeadContext_default", "provider", "useMemo", "useEffect", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "mergeDataIntoQueryString", "router", "shouldIntercept", "createElement", "forwardRef", "useEffect", "useMemo", "useRef", "useState", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "async", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "prefetch", "cacheFor", "props", "ref", "inFlightCount", "setInFlightCount", "hoverTimeout", "_href", "_data", "url", "baseParams", "visitParams", "event", "count", "doPrefetch", "cacheForValue", "prefetchModes", "regularEvents", "prefetchHoverEvents", "prefetchClickEvents", "Link_default", "router", "cloneDeep", "isEqual", "useCallback", "useEffect", "useRef", "useState", "router", "useEffect", "useState", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "useRef", "rememberKey", "defaults", "setDefaults", "useState", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "useEffect", "submit", "useCallback", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "cloneDeep", "router", "setDataFunction", "keyOrData", "maybeValue", "setDefaultsFunction", "fieldOrFields", "reset", "fields", "key", "carry", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "get", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "isEqual", "router", "useEffect", "useRef", "usePoll", "interval", "requestOptions", "options", "pollRef", "router", "useEffect", "useState", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "onPrefetchedListener", "router", "createElement", "useCallback", "useEffect", "useRef", "useState", "WhenVisible", "children", "data", "params", "buffer", "as", "always", "fallback", "loaded", "setLoaded", "hasFetched", "fetching", "ref", "getReloadParams", "observer", "entries", "reloadParams", "e", "WhenVisible_default", "router", "Router"]
4
+ "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './Deferred'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './WhenVisible'\n", "import { Page, PageProps, PageResolver, router, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import { ReactElement, useEffect, useMemo, useState } from 'react'\nimport { router } from '.'\nimport usePage from './usePage'\n\ninterface DeferredProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data: string | string[]\n}\n\nconst Deferred = ({ children, data, fallback }: DeferredProps) => {\n if (!data) {\n throw new Error('`<Deferred>` requires a `data` prop to be a string or array of strings')\n }\n\n const [loaded, setLoaded] = useState(false)\n const pageProps = usePage().props\n const keys = useMemo(() => (Array.isArray(data) ? data : [data]), [data])\n\n useEffect(() => {\n const removeListener = router.on('start', (e) => {\n if (\n (e.detail.visit.only.length === 0 && e.detail.visit.except.length === 0) ||\n e.detail.visit.only.find((key) => keys.includes(key))\n ) {\n setLoaded(false)\n }\n })\n\n return () => {\n removeListener()\n }\n }, [])\n\n useEffect(() => {\n setLoaded(keys.every((key) => pageProps[key] !== undefined))\n }, [pageProps, keys])\n\n return loaded ? children : fallback\n}\n\nDeferred.displayName = 'InertiaDeferred'\n\nexport default Deferred\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useEffect, useMemo, useRef, useState } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string | { url: string; method: Method }\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: (event: PendingVisit) => void\n onProgress?: (progress: Progress) => void\n onFinish?: (event: PendingVisit) => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n async?: boolean\n cacheFor?: number | string\n prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[]\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n async = false,\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n prefetch = false,\n cacheFor = 0,\n ...props\n },\n ref,\n ) => {\n const [inFlightCount, setInFlightCount] = useState(0)\n const hoverTimeout = useRef<number>(null)\n\n as = as.toLowerCase()\n method = typeof href === 'object' ? href.method : (method.toLowerCase() as Method)\n const [_href, _data] = mergeDataIntoQueryString(\n method,\n typeof href === 'object' ? href.url : href || '',\n data,\n queryStringArrayFormat,\n )\n const url = _href\n data = _data\n\n const baseParams = {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n async,\n }\n\n const visitParams = {\n ...baseParams,\n onCancelToken,\n onBefore,\n onStart(event) {\n setInFlightCount((count) => count + 1)\n onStart(event)\n },\n onProgress,\n onFinish(event) {\n setInFlightCount((count) => count - 1)\n onFinish(event)\n },\n onCancel,\n onSuccess,\n onError,\n }\n\n const doPrefetch = () => {\n router.prefetch(url, baseParams, { cacheFor: cacheForValue })\n }\n\n const prefetchModes: LinkPrefetchOption[] = useMemo(\n () => {\n if (prefetch === true) {\n return ['hover']\n }\n\n if (prefetch === false) {\n return []\n }\n\n if (Array.isArray(prefetch)) {\n return prefetch\n }\n\n return [prefetch]\n },\n Array.isArray(prefetch) ? prefetch : [prefetch],\n )\n\n const cacheForValue = useMemo(() => {\n if (cacheFor !== 0) {\n // If they've provided a value, respect it\n return cacheFor\n }\n\n if (prefetchModes.length === 1 && prefetchModes[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return 30_000\n }, [cacheFor, prefetchModes])\n\n useEffect(() => {\n return () => {\n clearTimeout(hoverTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (prefetchModes.includes('mount')) {\n setTimeout(() => doPrefetch())\n }\n }, prefetchModes)\n\n const regularEvents = {\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(url, visitParams)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseEnter: () => {\n hoverTimeout.current = window.setTimeout(() => {\n doPrefetch()\n }, 75)\n },\n onMouseLeave: () => {\n clearTimeout(hoverTimeout.current)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMouseDown: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n doPrefetch()\n }\n },\n onMouseUp: (event) => {\n event.preventDefault()\n router.visit(url, visitParams)\n },\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n // Let the mouseup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n if (method !== 'get') {\n as = 'button'\n }\n\n const elProps = {\n a: { href: url },\n button: { type: 'button' },\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(elProps[as] || {}),\n ref,\n ...(() => {\n if (prefetchModes.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n 'data-loading': inFlightCount > 0 ? '' : undefined,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import {\n FormDataConvertible,\n FormDataKeys,\n FormDataValues,\n Method,\n Progress,\n router,\n VisitOptions,\n} from '@inertiajs/core'\nimport { cloneDeep, isEqual } from 'es-toolkit'\nimport { get, has, set } from 'es-toolkit/compat'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype SetDataByObject<TForm> = (data: TForm) => void\ntype SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype SetDataByKeyValuePair<TForm> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void\ntype FormDataType = Record<string, FormDataConvertible>\ntype FormOptions = Omit<VisitOptions, 'data'>\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<FormDataKeys<TForm>, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: FormDataKeys<TForm>, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: FormDataKeys<TForm>[]) => void\n clearErrors: (...fields: FormDataKeys<TForm>[]) => void\n setError(field: FormDataKeys<TForm>, value: string): void\n setError(errors: Record<FormDataKeys<TForm>, string>): void\n submit: (...args: [Method, string, FormOptions?] | [{ url: string; method: Method }, FormOptions?]) => void\n get: (url: string, options?: FormOptions) => void\n patch: (url: string, options?: FormOptions) => void\n post: (url: string, options?: FormOptions) => void\n put: (url: string, options?: FormOptions) => void\n delete: (url: string, options?: FormOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<FormDataKeys<TForm>, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<FormDataKeys<TForm>, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n const transform = useRef((data) => data)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (...args) => {\n const objectPassed = typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : args[0]\n const url = objectPassed ? args[0].url : args[1]\n const options = (objectPassed ? args[1] : args[2]) ?? {}\n\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n setDefaults(cloneDeep(data))\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform.current(data) })\n } else {\n router[method](url, transform.current(data), _options)\n }\n },\n [data, setErrors, transform],\n )\n\n const setDataFunction = useCallback(\n (keyOrData: FormDataKeys<TForm> | Function | TForm, maybeValue?: any) => {\n if (typeof keyOrData === 'string') {\n setData((data) => set(cloneDeep(data), keyOrData, maybeValue))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n [setData],\n )\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => {\n return typeof fieldOrFields === 'string'\n ? set(cloneDeep(defaults), fieldOrFields, maybeValue)\n : Object.assign(cloneDeep(defaults), fieldOrFields)\n })\n }\n },\n [data, setDefaults],\n )\n\n const reset = useCallback(\n (...fields) => {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData((data) =>\n (fields as Array<FormDataKeys<TForm>>)\n .filter((key) => has(defaults, key))\n .reduce(\n (carry, key) => {\n return set(carry, key, get(defaults, key))\n },\n { ...data } as TForm,\n ),\n )\n }\n },\n [setData, defaults],\n )\n\n const setError = useCallback(\n (fieldOrFields: FormDataKeys<TForm> | Record<FormDataKeys<TForm>, string>, maybeValue?: string) => {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<FormDataKeys<TForm>, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const clearErrors = useCallback(\n (...fields) => {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<FormDataKeys<TForm>>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const createSubmitMethod = (method) => (url, options) => {\n submit(method, url, options)\n }\n const getMethod = useCallback(createSubmitMethod('get'), [submit])\n const post = useCallback(createSubmitMethod('post'), [submit])\n const put = useCallback(createSubmitMethod('put'), [submit])\n const patch = useCallback(createSubmitMethod('patch'), [submit])\n const deleteMethod = useCallback(createSubmitMethod('delete'), [submit])\n\n const cancel = useCallback(() => {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n }, [])\n\n const transformFunction = useCallback((callback) => {\n transform.current = callback\n }, [])\n\n return {\n data,\n setData: setDataFunction,\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform: transformFunction,\n setDefaults: setDefaultsFunction,\n reset,\n setError,\n clearErrors,\n submit,\n get: getMethod,\n post,\n put,\n patch,\n delete: deleteMethod,\n cancel,\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { useEffect, useRef } from 'react'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n) {\n const pollRef = useRef(\n router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n }),\n )\n\n useEffect(() => {\n if (options.autoStart ?? true) {\n pollRef.current.start()\n }\n\n return () => pollRef.current.stop()\n }, [])\n\n return {\n stop: pollRef.current.stop,\n start: pollRef.current.start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { useEffect, useState } from 'react'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: number | null\n isPrefetching: boolean\n isPrefetched: boolean\n flush: () => void\n} {\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n const [lastUpdatedAt, setLastUpdatedAt] = useState<number | null>(cached?.staleTimestamp || null)\n const [isPrefetching, setIsPrefetching] = useState(inFlight !== null)\n const [isPrefetched, setIsPrefetched] = useState(cached !== null)\n\n useEffect(() => {\n const onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(true)\n }\n })\n\n const onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(false)\n setIsPrefetched(true)\n setLastUpdatedAt(e.detail.fetchedAt)\n }\n })\n\n return () => {\n onPrefetchedListener()\n onPrefetchingListener()\n }\n }, [])\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { createElement, ReactElement, useCallback, useEffect, useRef, useState } from 'react'\n\ninterface WhenVisibleProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data?: string | string[]\n params?: ReloadOptions\n buffer?: number\n as?: string\n always?: boolean\n}\n\nconst WhenVisible = ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps) => {\n always = always ?? false\n as = as ?? 'div'\n fallback = fallback ?? null\n\n const [loaded, setLoaded] = useState(false)\n const hasFetched = useRef<boolean>(false)\n const fetching = useRef<boolean>(false)\n const ref = useRef<HTMLDivElement>(null)\n\n const getReloadParams = useCallback<() => Partial<ReloadOptions>>(() => {\n if (data) {\n return {\n only: (Array.isArray(data) ? data : [data]) as string[],\n }\n }\n\n if (!params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return params\n }, [params, data])\n\n useEffect(() => {\n if (!ref.current) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!always && hasFetched.current) {\n observer.disconnect()\n }\n\n if (fetching.current) {\n return\n }\n\n hasFetched.current = true\n fetching.current = true\n\n const reloadParams = getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n fetching.current = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n setLoaded(true)\n fetching.current = false\n reloadParams.onFinish?.(e)\n\n if (!always) {\n observer.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${buffer || 0}px`,\n },\n )\n\n observer.observe(ref.current)\n\n return () => {\n observer.disconnect()\n }\n }, [ref, getReloadParams, buffer])\n\n if (always || !loaded) {\n return createElement(\n as,\n {\n props: null,\n ref,\n },\n loaded ? children : fallback,\n )\n }\n\n return loaded ? children : null\n}\n\nWhenVisible.displayName = 'InertiaWhenVisible'\n\nexport default WhenVisible\n"],
5
+ "mappings": "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",
6
+ "names": ["Router", "router", "setupProgress", "createElement", "createHeadManager", "router", "createElement", "useEffect", "useMemo", "useState", "createContext", "headContext", "HeadContext_default", "createContext", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "useState", "headManager", "useMemo", "createHeadManager", "title", "useEffect", "router", "component", "page", "preserveState", "createElement", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "router", "initialComponent", "App", "elements", "setupProgress", "body", "createElement", "useEffect", "useMemo", "useState", "useContext", "usePage", "page", "useContext", "PageContext_default", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "useState", "pageProps", "usePage", "keys", "useMemo", "useEffect", "removeListener", "router", "e", "key", "Deferred_default", "React", "useContext", "useEffect", "useMemo", "Head", "children", "title", "headManager", "useContext", "HeadContext_default", "provider", "useMemo", "useEffect", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "mergeDataIntoQueryString", "router", "shouldIntercept", "createElement", "forwardRef", "useEffect", "useMemo", "useRef", "useState", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "async", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "prefetch", "cacheFor", "props", "ref", "inFlightCount", "setInFlightCount", "hoverTimeout", "_href", "_data", "url", "baseParams", "visitParams", "event", "count", "doPrefetch", "cacheForValue", "prefetchModes", "regularEvents", "prefetchHoverEvents", "prefetchClickEvents", "Link_default", "router", "cloneDeep", "isEqual", "get", "has", "set", "useCallback", "useEffect", "useRef", "useState", "router", "useEffect", "useState", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "useRef", "rememberKey", "defaults", "setDefaults", "useState", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "useEffect", "submit", "useCallback", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "cloneDeep", "router", "setDataFunction", "keyOrData", "maybeValue", "set", "setDefaultsFunction", "fieldOrFields", "reset", "fields", "key", "has", "carry", "get", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "getMethod", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "isEqual", "router", "useEffect", "useRef", "usePoll", "interval", "requestOptions", "options", "pollRef", "router", "useEffect", "useState", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "onPrefetchedListener", "router", "createElement", "useCallback", "useEffect", "useRef", "useState", "WhenVisible", "children", "data", "params", "buffer", "as", "always", "fallback", "loaded", "setLoaded", "hasFetched", "fetching", "ref", "getReloadParams", "observer", "entries", "reloadParams", "e", "WhenVisible_default", "router", "Router"]
7
7
  }
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var He=Object.create;var G=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,je=Object.prototype.hasOwnProperty;var Ue=(r,t)=>{for(var o in t)G(r,o,{get:t[o],enumerable:!0})},ye=(r,t,o,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ne(t))!je.call(r,n)&&n!==o&&G(r,n,{get:()=>t[n],enumerable:!(p=Be(t,n))||p.enumerable});return r};var ce=(r,t,o)=>(o=r!=null?He(Ve(r)):{},ye(t||!r||!r.__esModule?G(o,"default",{value:r,enumerable:!0}):o,r)),$e=r=>ye(G({},"__esModule",{value:!0}),r);var _e={};Ue(_e,{Deferred:()=>ke,Head:()=>Re,Link:()=>Ie,WhenVisible:()=>Me,createInertiaApp:()=>le,router:()=>Ke,useForm:()=>me,usePage:()=>q,usePoll:()=>ge,usePrefetch:()=>Pe,useRemember:()=>B});module.exports=$e(_e);var Le=require("@inertiajs/core");var Z=require("@inertiajs/core"),ve=require("react");var _=require("@inertiajs/core"),C=require("react");var he=require("react"),Se=(0,he.createContext)(void 0);Se.displayName="InertiaHeadContext";var W=Se;var Te=require("react"),Fe=(0,Te.createContext)(void 0);Fe.displayName="InertiaPageContext";var K=Fe;function X({children:r,initialPage:t,initialComponent:o,resolveComponent:p,titleCallback:n,onHeadUpdate:d}){let[c,g]=(0,C.useState)({component:o||null,page:t,key:null}),m=(0,C.useMemo)(()=>(0,_.createHeadManager)(typeof window>"u",n||(l=>l),d||(()=>{})),[]);if((0,C.useEffect)(()=>{_.router.init({initialPage:t,resolveComponent:p,swapComponent:async({component:l,page:e,preserveState:f})=>{g(s=>({component:l,page:e,key:f?s.key:Date.now()}))}}),_.router.on("navigate",()=>m.forceUpdate())},[]),!c.component)return(0,C.createElement)(W.Provider,{value:m},(0,C.createElement)(K.Provider,{value:c.page},null));let P=r||(({Component:l,props:e,key:f})=>{let s=(0,C.createElement)(l,{key:f,...e});return typeof l.layout=="function"?l.layout(s):Array.isArray(l.layout)?l.layout.concat(s).reverse().reduce((S,T)=>(0,C.createElement)(T,{children:S,...e})):s});return(0,C.createElement)(W.Provider,{value:m},(0,C.createElement)(K.Provider,{value:c.page},P({Component:c.component,key:c.key,props:c.page.props})))}X.displayName="Inertia";async function le({id:r="app",resolve:t,setup:o,title:p,progress:n={},page:d,render:c}){let g=typeof window>"u",m=g?null:document.getElementById(r),P=d||JSON.parse(m.dataset.page),l=s=>Promise.resolve(t(s)).then(S=>S.default||S),e=[],f=await Promise.all([l(P.component),Z.router.decryptHistory().catch(()=>{})]).then(([s])=>o({el:m,App:X,props:{initialPage:P,initialComponent:s,resolveComponent:l,titleCallback:p,onHeadUpdate:g?S=>e=S:null}}));if(!g&&n&&(0,Z.setupProgress)(n),g){let s=await c((0,ve.createElement)("div",{id:r,"data-page":JSON.stringify(P)},f));return{head:e,body:s}}}var ee=require("react");var be=require("react");function q(){let r=(0,be.useContext)(K);if(!r)throw new Error("usePage must be used within the Inertia component");return r}var Ce=({children:r,data:t,fallback:o})=>{if(!t)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[p,n]=(0,ee.useState)(!1),d=q().props,c=Array.isArray(t)?t:[t];return(0,ee.useEffect)(()=>{n(c.every(g=>d[g]!==void 0))},[d,c]),p?r:o};Ce.displayName="InertiaDeferred";var ke=Ce;var A=ce(require("react"),1);var We=function({children:r,title:t}){let o=(0,A.useContext)(W),p=(0,A.useMemo)(()=>o.createProvider(),[o]);(0,A.useEffect)(()=>()=>{p.disconnect()},[p]);function n(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function d(e){let f=Object.keys(e.props).reduce((s,S)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(S))return s;let T=e.props[S];return T===""?s+` ${S}`:s+` ${S}="${T}"`},"");return`<${e.type}${f}>`}function c(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((f,s)=>f+g(s),"")}function g(e){let f=d(e);return e.props.children&&(f+=c(e)),e.props.dangerouslySetInnerHTML&&(f+=e.props.dangerouslySetInnerHTML.__html),n(e)||(f+=`</${e.type}>`),f}function m(e){return A.default.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function P(e){return g(m(e))}function l(e){let f=A.default.Children.toArray(e).filter(s=>s).map(s=>P(s));return t&&!f.find(s=>s.startsWith("<title"))&&f.push(`<title inertia>${t}</title>`),f}return p.update(l(r)),null},Re=We;var I=require("@inertiajs/core"),v=require("react"),D=()=>{},xe=(0,v.forwardRef)(({children:r,as:t="a",data:o={},href:p,method:n="get",preserveScroll:d=!1,preserveState:c=null,replace:g=!1,only:m=[],except:P=[],headers:l={},queryStringArrayFormat:e="brackets",async:f=!1,onClick:s=D,onCancelToken:S=D,onBefore:T=D,onStart:O=D,onProgress:w=D,onFinish:oe=D,onCancel:J=D,onSuccess:ne=D,onError:j=D,prefetch:b=!1,cacheFor:R=0,...se},ae)=>{let[ie,Q]=(0,v.useState)(0),U=(0,v.useRef)(null);t=t.toLowerCase(),n=typeof p=="object"?p.method:n.toLowerCase();let[M,pe]=(0,I.mergeDataIntoQueryString)(n,typeof p=="object"?p.url:p||"",o,e),L=M;o=pe;let Y={data:o,method:n,preserveScroll:d,preserveState:c??n!=="get",replace:g,only:m,except:P,headers:l,async:f},z={...Y,onCancelToken:S,onBefore:T,onStart(a){Q(H=>H+1),O(a)},onProgress:w,onFinish(a){Q(H=>H-1),oe(a)},onCancel:J,onSuccess:ne,onError:j},$=()=>{I.router.prefetch(L,Y,{cacheFor:ue})},E=(0,v.useMemo)(()=>b===!0?["hover"]:b===!1?[]:Array.isArray(b)?b:[b],Array.isArray(b)?b:[b]),ue=(0,v.useMemo)(()=>R!==0?R:E.length===1&&E[0]==="click"?0:3e4,[R,E]);(0,v.useEffect)(()=>()=>{clearTimeout(U.current)},[]),(0,v.useEffect)(()=>{E.includes("mount")&&setTimeout(()=>$())},E);let i={onClick:a=>{s(a),(0,I.shouldIntercept)(a)&&(a.preventDefault(),I.router.visit(L,z))}},h={onMouseEnter:()=>{U.current=window.setTimeout(()=>{$()},75)},onMouseLeave:()=>{clearTimeout(U.current)},onClick:i.onClick},y={onMouseDown:a=>{(0,I.shouldIntercept)(a)&&(a.preventDefault(),$())},onMouseUp:a=>{a.preventDefault(),I.router.visit(L,z)},onClick:a=>{s(a),(0,I.shouldIntercept)(a)&&a.preventDefault()}};return n!=="get"&&(t="button"),(0,v.createElement)(t,{...se,...{a:{href:L},button:{type:"button"}}[t]||{},ref:ae,...E.includes("hover")?h:E.includes("click")?y:i,"data-loading":ie>0?"":void 0},r)});xe.displayName="InertiaLink";var Ie=xe;var de=require("@inertiajs/core"),Ee=ce(require("lodash.clonedeep"),1),Ae=ce(require("lodash.isequal"),1),u=require("react");var fe=require("@inertiajs/core"),te=require("react");function B(r,t){let[o,p]=(0,te.useState)(()=>{let n=fe.router.restore(t);return n!==void 0?n:r});return(0,te.useEffect)(()=>{fe.router.remember(o,t)},[o,t]),[o,p]}function me(r,t){let o=(0,u.useRef)(null),p=typeof r=="string"?r:null,[n,d]=(0,u.useState)((typeof r=="string"?t:r)||{}),c=(0,u.useRef)(null),g=(0,u.useRef)(null),[m,P]=p?B(n,`${p}:data`):(0,u.useState)(n),[l,e]=p?B({},`${p}:errors`):(0,u.useState)({}),[f,s]=(0,u.useState)(!1),[S,T]=(0,u.useState)(!1),[O,w]=(0,u.useState)(null),[oe,J]=(0,u.useState)(!1),[ne,j]=(0,u.useState)(!1),b=(0,u.useRef)(i=>i);(0,u.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]);let R=(0,u.useCallback)((...i)=>{let h=typeof i[0]=="object",y=h?i[0].method:i[0],x=h?i[0].url:i[1],a=(h?i[1]:i[2])??{},H={...a,onCancelToken:F=>{if(c.current=F,a.onCancelToken)return a.onCancelToken(F)},onBefore:F=>{if(J(!1),j(!1),clearTimeout(g.current),a.onBefore)return a.onBefore(F)},onStart:F=>{if(T(!0),a.onStart)return a.onStart(F)},onProgress:F=>{if(w(F),a.onProgress)return a.onProgress(F)},onSuccess:F=>{if(o.current&&(T(!1),w(null),e({}),s(!1),J(!0),j(!0),d((0,Ee.default)(m)),g.current=setTimeout(()=>{o.current&&j(!1)},2e3)),a.onSuccess)return a.onSuccess(F)},onError:F=>{if(o.current&&(T(!1),w(null),e(F),s(!0)),a.onError)return a.onError(F)},onCancel:()=>{if(o.current&&(T(!1),w(null)),a.onCancel)return a.onCancel()},onFinish:F=>{if(o.current&&(T(!1),w(null)),c.current=null,a.onFinish)return a.onFinish(F)}};y==="delete"?de.router.delete(x,{...H,data:b.current(m)}):de.router[y](x,b.current(m),H)},[m,e,b]),se=(0,u.useCallback)((i,h)=>{P(typeof i=="string"?y=>({...y,[i]:h}):typeof i=="function"?y=>i(y):i)},[P]),ae=(0,u.useCallback)((i,h)=>{d(typeof i>"u"?()=>m:y=>({...y,...typeof i=="string"?{[i]:h}:i}))},[m,d]),ie=(0,u.useCallback)((...i)=>{i.length===0?P(n):P(h=>Object.keys(n).filter(y=>i.includes(y)).reduce((y,x)=>(y[x]=n[x],y),{...h}))},[P,n]),Q=(0,u.useCallback)((i,h)=>{e(y=>{let x={...y,...typeof i=="string"?{[i]:h}:i};return s(Object.keys(x).length>0),x})},[e,s]),U=(0,u.useCallback)((...i)=>{e(h=>{let y=Object.keys(h).reduce((x,a)=>({...x,...i.length>0&&!i.includes(a)?{[a]:h[a]}:{}}),{});return s(Object.keys(y).length>0),y})},[e,s]),M=i=>(h,y)=>{R(i,h,y)},pe=(0,u.useCallback)(M("get"),[R]),L=(0,u.useCallback)(M("post"),[R]),Y=(0,u.useCallback)(M("put"),[R]),z=(0,u.useCallback)(M("patch"),[R]),$=(0,u.useCallback)(M("delete"),[R]),E=(0,u.useCallback)(()=>{c.current&&c.current.cancel()},[]),ue=(0,u.useCallback)(i=>{b.current=i},[]);return{data:m,setData:se,isDirty:!(0,Ae.default)(m,n),errors:l,hasErrors:f,processing:S,progress:O,wasSuccessful:oe,recentlySuccessful:ne,transform:ue,setDefaults:ae,reset:ie,setError:Q,clearErrors:U,submit:R,get:pe,post:L,put:Y,patch:z,delete:$,cancel:E}}var De=require("@inertiajs/core"),re=require("react");function ge(r,t={},o={keepAlive:!1,autoStart:!0}){let p=(0,re.useRef)(De.router.poll(r,t,{...o,autoStart:!1}));return(0,re.useEffect)(()=>((o.autoStart??!0)&&p.current.start(),()=>p.current.stop()),[]),{stop:p.current.stop,start:p.current.start}}var N=require("@inertiajs/core"),V=require("react");function Pe(r={}){let t=typeof window>"u"?null:N.router.getCached(window.location.pathname,r),o=typeof window>"u"?null:N.router.getPrefetching(window.location.pathname,r),[p,n]=(0,V.useState)(t?.staleTimestamp||null),[d,c]=(0,V.useState)(o!==null),[g,m]=(0,V.useState)(t!==null);return(0,V.useEffect)(()=>{let P=N.router.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&c(!0)}),l=N.router.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(c(!1),m(!0),n(e.detail.fetchedAt))});return()=>{l(),P()}},[]),{lastUpdatedAt:p,isPrefetching:d,isPrefetched:g,flush:()=>N.router.flush(window.location.pathname,r)}}var Oe=require("@inertiajs/core"),k=require("react"),we=({children:r,data:t,params:o,buffer:p,as:n,always:d,fallback:c})=>{d=d??!1,n=n??"div",c=c??null;let[g,m]=(0,k.useState)(!1),P=(0,k.useRef)(!1),l=(0,k.useRef)(!1),e=(0,k.useRef)(null),f=(0,k.useCallback)(()=>{if(t)return{only:Array.isArray(t)?t:[t]};if(!o)throw new Error("You must provide either a `data` or `params` prop.");return o},[o,t]);return(0,k.useEffect)(()=>{if(!e.current)return;let s=new IntersectionObserver(S=>{if(!S[0].isIntersecting||(!d&&P.current&&s.disconnect(),l.current))return;P.current=!0,l.current=!0;let T=f();Oe.router.reload({...T,onStart:O=>{l.current=!0,T.onStart?.(O)},onFinish:O=>{m(!0),l.current=!1,T.onFinish?.(O),d||s.disconnect()}})},{rootMargin:`${p||0}px`});return s.observe(e.current),()=>{s.disconnect()}},[e,f,p]),d||!g?(0,k.createElement)(n,{props:null,ref:e},g?r:c):g?r:null};we.displayName="InertiaWhenVisible";var Me=we;var Ke=Le.router;
1
+ var He=Object.create;var ee=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Be=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var je=(r,t)=>{for(var o in t)ee(r,o,{get:t[o],enumerable:!0})},Fe=(r,t,o,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Be(t))!Ne.call(r,n)&&n!==o&&ee(r,n,{get:()=>t[n],enumerable:!(p=Ke(t,n))||p.enumerable});return r};var Ue=(r,t,o)=>(o=r!=null?He(Ve(r)):{},Fe(t||!r||!r.__esModule?ee(o,"default",{value:r,enumerable:!0}):o,r)),$e=r=>Fe(ee({},"__esModule",{value:!0}),r);var _e={};je(_e,{Deferred:()=>xe,Head:()=>Ie,Link:()=>ke,WhenVisible:()=>Me,createInertiaApp:()=>de,router:()=>fe,useForm:()=>Pe,usePage:()=>Y,usePoll:()=>ye,usePrefetch:()=>he,useRemember:()=>N});module.exports=$e(_e);var Le=require("@inertiajs/core");var re=require("@inertiajs/core"),Ce=require("react");var Q=require("@inertiajs/core"),C=require("react");var Se=require("react"),Te=(0,Se.createContext)(void 0);Te.displayName="InertiaHeadContext";var q=Te;var ve=require("react"),be=(0,ve.createContext)(void 0);be.displayName="InertiaPageContext";var J=be;function te({children:r,initialPage:t,initialComponent:o,resolveComponent:p,titleCallback:n,onHeadUpdate:P}){let[c,m]=(0,C.useState)({component:o||null,page:t,key:null}),l=(0,C.useMemo)(()=>(0,Q.createHeadManager)(typeof window>"u",n||(d=>d),P||(()=>{})),[]);if((0,C.useEffect)(()=>{Q.router.init({initialPage:t,resolveComponent:p,swapComponent:async({component:d,page:e,preserveState:f})=>{m(s=>({component:d,page:e,key:f?s.key:Date.now()}))}}),Q.router.on("navigate",()=>l.forceUpdate())},[]),!c.component)return(0,C.createElement)(q.Provider,{value:l},(0,C.createElement)(J.Provider,{value:c.page},null));let g=r||(({Component:d,props:e,key:f})=>{let s=(0,C.createElement)(d,{key:f,...e});return typeof d.layout=="function"?d.layout(s):Array.isArray(d.layout)?d.layout.concat(s).reverse().reduce((F,S)=>(0,C.createElement)(S,{children:F,...e})):s});return(0,C.createElement)(q.Provider,{value:l},(0,C.createElement)(J.Provider,{value:c.page},g({Component:c.component,key:c.key,props:c.page.props})))}te.displayName="Inertia";async function de({id:r="app",resolve:t,setup:o,title:p,progress:n={},page:P,render:c}){let m=typeof window>"u",l=m?null:document.getElementById(r),g=P||JSON.parse(l.dataset.page),d=s=>Promise.resolve(t(s)).then(F=>F.default||F),e=[],f=await Promise.all([d(g.component),re.router.decryptHistory().catch(()=>{})]).then(([s])=>o({el:l,App:te,props:{initialPage:g,initialComponent:s,resolveComponent:d,titleCallback:p,onHeadUpdate:m?F=>e=F:null}}));if(!m&&n&&(0,re.setupProgress)(n),m){let s=await c((0,Ce.createElement)("div",{id:r,"data-page":JSON.stringify(g)},f));return{head:e,body:s}}}var H=require("react");var Re=require("react");function Y(){let r=(0,Re.useContext)(J);if(!r)throw new Error("usePage must be used within the Inertia component");return r}var De=({children:r,data:t,fallback:o})=>{if(!t)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[p,n]=(0,H.useState)(!1),P=Y().props,c=(0,H.useMemo)(()=>Array.isArray(t)?t:[t],[t]);return(0,H.useEffect)(()=>{let m=fe.on("start",l=>{(l.detail.visit.only.length===0&&l.detail.visit.except.length===0||l.detail.visit.only.find(g=>c.includes(g)))&&n(!1)});return()=>{m()}},[]),(0,H.useEffect)(()=>{n(c.every(m=>P[m]!==void 0))},[P,c]),p?r:o};De.displayName="InertiaDeferred";var xe=De;var k=Ue(require("react"),1);var We=function({children:r,title:t}){let o=(0,k.useContext)(q),p=(0,k.useMemo)(()=>o.createProvider(),[o]);(0,k.useEffect)(()=>()=>{p.disconnect()},[p]);function n(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function P(e){let f=Object.keys(e.props).reduce((s,F)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(F))return s;let S=e.props[F];return S===""?s+` ${F}`:s+` ${F}="${S}"`},"");return`<${e.type}${f}>`}function c(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((f,s)=>f+m(s),"")}function m(e){let f=P(e);return e.props.children&&(f+=c(e)),e.props.dangerouslySetInnerHTML&&(f+=e.props.dangerouslySetInnerHTML.__html),n(e)||(f+=`</${e.type}>`),f}function l(e){return k.default.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function g(e){return m(l(e))}function d(e){let f=k.default.Children.toArray(e).filter(s=>s).map(s=>g(s));return t&&!f.find(s=>s.startsWith("<title"))&&f.push(`<title inertia>${t}</title>`),f}return p.update(d(r)),null},Ie=We;var I=require("@inertiajs/core"),v=require("react"),A=()=>{},Ee=(0,v.forwardRef)(({children:r,as:t="a",data:o={},href:p,method:n="get",preserveScroll:P=!1,preserveState:c=null,replace:m=!1,only:l=[],except:g=[],headers:d={},queryStringArrayFormat:e="brackets",async:f=!1,onClick:s=A,onCancelToken:F=A,onBefore:S=A,onStart:w=A,onProgress:M=A,onFinish:se=A,onCancel:z=A,onSuccess:ae=A,onError:$=A,prefetch:b=!1,cacheFor:D=0,...ie},pe)=>{let[ue,G]=(0,v.useState)(0),W=(0,v.useRef)(null);t=t.toLowerCase(),n=typeof p=="object"?p.method:n.toLowerCase();let[L,ce]=(0,I.mergeDataIntoQueryString)(n,typeof p=="object"?p.url:p||"",o,e),B=L;o=ce;let X={data:o,method:n,preserveScroll:P,preserveState:c??n!=="get",replace:m,only:l,except:g,headers:d,async:f},Z={...X,onCancelToken:F,onBefore:S,onStart(a){G(V=>V+1),w(a)},onProgress:M,onFinish(a){G(V=>V-1),se(a)},onCancel:z,onSuccess:ae,onError:$},_=()=>{I.router.prefetch(B,X,{cacheFor:le})},E=(0,v.useMemo)(()=>b===!0?["hover"]:b===!1?[]:Array.isArray(b)?b:[b],Array.isArray(b)?b:[b]),le=(0,v.useMemo)(()=>D!==0?D:E.length===1&&E[0]==="click"?0:3e4,[D,E]);(0,v.useEffect)(()=>()=>{clearTimeout(W.current)},[]),(0,v.useEffect)(()=>{E.includes("mount")&&setTimeout(()=>_())},E);let i={onClick:a=>{s(a),(0,I.shouldIntercept)(a)&&(a.preventDefault(),I.router.visit(B,Z))}},h={onMouseEnter:()=>{W.current=window.setTimeout(()=>{_()},75)},onMouseLeave:()=>{clearTimeout(W.current)},onClick:i.onClick},y={onMouseDown:a=>{(0,I.shouldIntercept)(a)&&(a.preventDefault(),_())},onMouseUp:a=>{a.preventDefault(),I.router.visit(B,Z)},onClick:a=>{s(a),(0,I.shouldIntercept)(a)&&a.preventDefault()}};return n!=="get"&&(t="button"),(0,v.createElement)(t,{...ie,...{a:{href:B},button:{type:"button"}}[t]||{},ref:pe,...E.includes("hover")?h:E.includes("click")?y:i,"data-loading":ue>0?"":void 0},r)});Ee.displayName="InertiaLink";var ke=Ee;var ge=require("@inertiajs/core"),K=require("es-toolkit"),O=require("es-toolkit/compat"),u=require("react");var me=require("@inertiajs/core"),oe=require("react");function N(r,t){let[o,p]=(0,oe.useState)(()=>{let n=me.router.restore(t);return n!==void 0?n:r});return(0,oe.useEffect)(()=>{me.router.remember(o,t)},[o,t]),[o,p]}function Pe(r,t){let o=(0,u.useRef)(null),p=typeof r=="string"?r:null,[n,P]=(0,u.useState)((typeof r=="string"?t:r)||{}),c=(0,u.useRef)(null),m=(0,u.useRef)(null),[l,g]=p?N(n,`${p}:data`):(0,u.useState)(n),[d,e]=p?N({},`${p}:errors`):(0,u.useState)({}),[f,s]=(0,u.useState)(!1),[F,S]=(0,u.useState)(!1),[w,M]=(0,u.useState)(null),[se,z]=(0,u.useState)(!1),[ae,$]=(0,u.useState)(!1),b=(0,u.useRef)(i=>i);(0,u.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]);let D=(0,u.useCallback)((...i)=>{let h=typeof i[0]=="object",y=h?i[0].method:i[0],x=h?i[0].url:i[1],a=(h?i[1]:i[2])??{},V={...a,onCancelToken:T=>{if(c.current=T,a.onCancelToken)return a.onCancelToken(T)},onBefore:T=>{if(z(!1),$(!1),clearTimeout(m.current),a.onBefore)return a.onBefore(T)},onStart:T=>{if(S(!0),a.onStart)return a.onStart(T)},onProgress:T=>{if(M(T),a.onProgress)return a.onProgress(T)},onSuccess:T=>{if(o.current&&(S(!1),M(null),e({}),s(!1),z(!0),$(!0),P((0,K.cloneDeep)(l)),m.current=setTimeout(()=>{o.current&&$(!1)},2e3)),a.onSuccess)return a.onSuccess(T)},onError:T=>{if(o.current&&(S(!1),M(null),e(T),s(!0)),a.onError)return a.onError(T)},onCancel:()=>{if(o.current&&(S(!1),M(null)),a.onCancel)return a.onCancel()},onFinish:T=>{if(o.current&&(S(!1),M(null)),c.current=null,a.onFinish)return a.onFinish(T)}};y==="delete"?ge.router.delete(x,{...V,data:b.current(l)}):ge.router[y](x,b.current(l),V)},[l,e,b]),ie=(0,u.useCallback)((i,h)=>{g(typeof i=="string"?y=>(0,O.set)((0,K.cloneDeep)(y),i,h):typeof i=="function"?y=>i(y):i)},[g]),pe=(0,u.useCallback)((i,h)=>{P(typeof i>"u"?()=>l:y=>typeof i=="string"?(0,O.set)((0,K.cloneDeep)(y),i,h):Object.assign((0,K.cloneDeep)(y),i))},[l,P]),ue=(0,u.useCallback)((...i)=>{i.length===0?g(n):g(h=>i.filter(y=>(0,O.has)(n,y)).reduce((y,x)=>(0,O.set)(y,x,(0,O.get)(n,x)),{...h}))},[g,n]),G=(0,u.useCallback)((i,h)=>{e(y=>{let x={...y,...typeof i=="string"?{[i]:h}:i};return s(Object.keys(x).length>0),x})},[e,s]),W=(0,u.useCallback)((...i)=>{e(h=>{let y=Object.keys(h).reduce((x,a)=>({...x,...i.length>0&&!i.includes(a)?{[a]:h[a]}:{}}),{});return s(Object.keys(y).length>0),y})},[e,s]),L=i=>(h,y)=>{D(i,h,y)},ce=(0,u.useCallback)(L("get"),[D]),B=(0,u.useCallback)(L("post"),[D]),X=(0,u.useCallback)(L("put"),[D]),Z=(0,u.useCallback)(L("patch"),[D]),_=(0,u.useCallback)(L("delete"),[D]),E=(0,u.useCallback)(()=>{c.current&&c.current.cancel()},[]),le=(0,u.useCallback)(i=>{b.current=i},[]);return{data:l,setData:ie,isDirty:!(0,K.isEqual)(l,n),errors:d,hasErrors:f,processing:F,progress:w,wasSuccessful:se,recentlySuccessful:ae,transform:le,setDefaults:pe,reset:ue,setError:G,clearErrors:W,submit:D,get:ce,post:B,put:X,patch:Z,delete:_,cancel:E}}var Ae=require("@inertiajs/core"),ne=require("react");function ye(r,t={},o={keepAlive:!1,autoStart:!0}){let p=(0,ne.useRef)(Ae.router.poll(r,t,{...o,autoStart:!1}));return(0,ne.useEffect)(()=>((o.autoStart??!0)&&p.current.start(),()=>p.current.stop()),[]),{stop:p.current.stop,start:p.current.start}}var j=require("@inertiajs/core"),U=require("react");function he(r={}){let t=typeof window>"u"?null:j.router.getCached(window.location.pathname,r),o=typeof window>"u"?null:j.router.getPrefetching(window.location.pathname,r),[p,n]=(0,U.useState)(t?.staleTimestamp||null),[P,c]=(0,U.useState)(o!==null),[m,l]=(0,U.useState)(t!==null);return(0,U.useEffect)(()=>{let g=j.router.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&c(!0)}),d=j.router.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(c(!1),l(!0),n(e.detail.fetchedAt))});return()=>{d(),g()}},[]),{lastUpdatedAt:p,isPrefetching:P,isPrefetched:m,flush:()=>j.router.flush(window.location.pathname,r)}}var Oe=require("@inertiajs/core"),R=require("react"),we=({children:r,data:t,params:o,buffer:p,as:n,always:P,fallback:c})=>{P=P??!1,n=n??"div",c=c??null;let[m,l]=(0,R.useState)(!1),g=(0,R.useRef)(!1),d=(0,R.useRef)(!1),e=(0,R.useRef)(null),f=(0,R.useCallback)(()=>{if(t)return{only:Array.isArray(t)?t:[t]};if(!o)throw new Error("You must provide either a `data` or `params` prop.");return o},[o,t]);return(0,R.useEffect)(()=>{if(!e.current)return;let s=new IntersectionObserver(F=>{if(!F[0].isIntersecting||(!P&&g.current&&s.disconnect(),d.current))return;g.current=!0,d.current=!0;let S=f();Oe.router.reload({...S,onStart:w=>{d.current=!0,S.onStart?.(w)},onFinish:w=>{l(!0),d.current=!1,S.onFinish?.(w),P||s.disconnect()}})},{rootMargin:`${p||0}px`});return s.observe(e.current),()=>{s.disconnect()}},[e,f,p]),P||!m?(0,R.createElement)(n,{props:null,ref:e},m?r:c):m?r:null};we.displayName="InertiaWhenVisible";var Me=we;var fe=Le.router;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/createInertiaApp.ts", "../src/App.ts", "../src/HeadContext.ts", "../src/PageContext.ts", "../src/Deferred.ts", "../src/usePage.ts", "../src/Head.ts", "../src/Link.ts", "../src/useForm.ts", "../src/useRemember.ts", "../src/usePoll.ts", "../src/usePrefetch.ts", "../src/WhenVisible.ts"],
4
- "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './Deferred'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './WhenVisible'\n", "import { Page, PageProps, PageResolver, router, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import { ReactElement, useEffect, useState } from 'react'\nimport usePage from './usePage'\n\ninterface DeferredProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data: string | string[]\n}\n\nconst Deferred = ({ children, data, fallback }: DeferredProps) => {\n if (!data) {\n throw new Error('`<Deferred>` requires a `data` prop to be a string or array of strings')\n }\n\n const [loaded, setLoaded] = useState(false)\n const pageProps = usePage().props\n const keys = Array.isArray(data) ? data : [data]\n\n useEffect(() => {\n setLoaded(keys.every((key) => pageProps[key] !== undefined))\n }, [pageProps, keys])\n\n return loaded ? children : fallback\n}\n\nDeferred.displayName = 'InertiaDeferred'\n\nexport default Deferred\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useEffect, useMemo, useRef, useState } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string | { url: string; method: Method }\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: (event: PendingVisit) => void\n onProgress?: (progress: Progress) => void\n onFinish?: (event: PendingVisit) => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n async?: boolean\n cacheFor?: number | string\n prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[]\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n async = false,\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n prefetch = false,\n cacheFor = 0,\n ...props\n },\n ref,\n ) => {\n const [inFlightCount, setInFlightCount] = useState(0)\n const hoverTimeout = useRef<number>(null)\n\n as = as.toLowerCase()\n method = typeof href === 'object' ? href.method : (method.toLowerCase() as Method)\n const [_href, _data] = mergeDataIntoQueryString(\n method,\n typeof href === 'object' ? href.url : href || '',\n data,\n queryStringArrayFormat,\n )\n const url = _href\n data = _data\n\n const baseParams = {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n async,\n }\n\n const visitParams = {\n ...baseParams,\n onCancelToken,\n onBefore,\n onStart(event) {\n setInFlightCount((count) => count + 1)\n onStart(event)\n },\n onProgress,\n onFinish(event) {\n setInFlightCount((count) => count - 1)\n onFinish(event)\n },\n onCancel,\n onSuccess,\n onError,\n }\n\n const doPrefetch = () => {\n router.prefetch(url, baseParams, { cacheFor: cacheForValue })\n }\n\n const prefetchModes: LinkPrefetchOption[] = useMemo(\n () => {\n if (prefetch === true) {\n return ['hover']\n }\n\n if (prefetch === false) {\n return []\n }\n\n if (Array.isArray(prefetch)) {\n return prefetch\n }\n\n return [prefetch]\n },\n Array.isArray(prefetch) ? prefetch : [prefetch],\n )\n\n const cacheForValue = useMemo(() => {\n if (cacheFor !== 0) {\n // If they've provided a value, respect it\n return cacheFor\n }\n\n if (prefetchModes.length === 1 && prefetchModes[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return 30_000\n }, [cacheFor, prefetchModes])\n\n useEffect(() => {\n return () => {\n clearTimeout(hoverTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (prefetchModes.includes('mount')) {\n setTimeout(() => doPrefetch())\n }\n }, prefetchModes)\n\n const regularEvents = {\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(url, visitParams)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseEnter: () => {\n hoverTimeout.current = window.setTimeout(() => {\n doPrefetch()\n }, 75)\n },\n onMouseLeave: () => {\n clearTimeout(hoverTimeout.current)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMouseDown: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n doPrefetch()\n }\n },\n onMouseUp: (event) => {\n event.preventDefault()\n router.visit(url, visitParams)\n },\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n // Let the mouseup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n if (method !== 'get') {\n as = 'button'\n }\n\n const elProps = {\n a: { href: url },\n button: { type: 'button' },\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(elProps[as] || {}),\n ref,\n ...(() => {\n if (prefetchModes.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n 'data-loading': inFlightCount > 0 ? '' : undefined,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import { FormDataConvertible, Method, Progress, router, VisitOptions } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport isEqual from 'lodash.isequal'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype setDataByObject<TForm> = (data: TForm) => void\ntype setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void\ntype FormDataType = Record<string, FormDataConvertible>\ntype FormOptions = Omit<VisitOptions, 'data'>\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: keyof TForm, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: (keyof TForm)[]) => void\n clearErrors: (...fields: (keyof TForm)[]) => void\n setError(field: keyof TForm, value: string): void\n setError(errors: Record<keyof TForm, string>): void\n submit: (...args: [Method, string, FormOptions?] | [{ url: string; method: Method }, FormOptions?]) => void\n get: (url: string, options?: FormOptions) => void\n patch: (url: string, options?: FormOptions) => void\n post: (url: string, options?: FormOptions) => void\n put: (url: string, options?: FormOptions) => void\n delete: (url: string, options?: FormOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<keyof TForm, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<keyof TForm, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n const transform = useRef((data) => data)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (...args) => {\n const objectPassed = typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : args[0]\n const url = objectPassed ? args[0].url : args[1]\n const options = (objectPassed ? args[1] : args[2]) ?? {}\n\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n setDefaults(cloneDeep(data))\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform.current(data) })\n } else {\n router[method](url, transform.current(data), _options)\n }\n },\n [data, setErrors, transform],\n )\n\n const setDataFunction = useCallback(\n (keyOrData: keyof TForm | Function | TForm, maybeValue?: TForm[keyof TForm]) => {\n if (typeof keyOrData === 'string') {\n setData((data) => ({ ...data, [keyOrData]: maybeValue }))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n [setData],\n )\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: keyof TForm | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => ({\n ...defaults,\n ...(typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : (fieldOrFields as TForm)),\n }))\n }\n },\n [data, setDefaults],\n )\n\n const reset = useCallback(\n (...fields) => {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData((data) =>\n (Object.keys(defaults) as Array<keyof TForm>)\n .filter((key) => fields.includes(key))\n .reduce(\n (carry, key) => {\n carry[key] = defaults[key]\n return carry\n },\n { ...data },\n ),\n )\n }\n },\n [setData, defaults],\n )\n\n const setError = useCallback(\n (fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) => {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<keyof TForm, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const clearErrors = useCallback(\n (...fields) => {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<keyof TForm>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const createSubmitMethod = (method) => (url, options) => {\n submit(method, url, options)\n }\n const get = useCallback(createSubmitMethod('get'), [submit])\n const post = useCallback(createSubmitMethod('post'), [submit])\n const put = useCallback(createSubmitMethod('put'), [submit])\n const patch = useCallback(createSubmitMethod('patch'), [submit])\n const deleteMethod = useCallback(createSubmitMethod('delete'), [submit])\n\n const cancel = useCallback(() => {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n }, [])\n\n const transformFunction = useCallback((callback) => {\n transform.current = callback\n }, [])\n\n return {\n data,\n setData: setDataFunction,\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform: transformFunction,\n setDefaults: setDefaultsFunction,\n reset,\n setError,\n clearErrors,\n submit,\n get,\n post,\n put,\n patch,\n delete: deleteMethod,\n cancel,\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { useEffect, useRef } from 'react'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n) {\n const pollRef = useRef(\n router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n }),\n )\n\n useEffect(() => {\n if (options.autoStart ?? true) {\n pollRef.current.start()\n }\n\n return () => pollRef.current.stop()\n }, [])\n\n return {\n stop: pollRef.current.stop,\n start: pollRef.current.start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { useEffect, useState } from 'react'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: number | null\n isPrefetching: boolean\n isPrefetched: boolean\n flush: () => void\n} {\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n const [lastUpdatedAt, setLastUpdatedAt] = useState<number | null>(cached?.staleTimestamp || null)\n const [isPrefetching, setIsPrefetching] = useState(inFlight !== null)\n const [isPrefetched, setIsPrefetched] = useState(cached !== null)\n\n useEffect(() => {\n const onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(true)\n }\n })\n\n const onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(false)\n setIsPrefetched(true)\n setLastUpdatedAt(e.detail.fetchedAt)\n }\n })\n\n return () => {\n onPrefetchedListener()\n onPrefetchingListener()\n }\n }, [])\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { createElement, ReactElement, useCallback, useEffect, useRef, useState } from 'react'\n\ninterface WhenVisibleProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data?: string | string[]\n params?: ReloadOptions\n buffer?: number\n as?: string\n always?: boolean\n}\n\nconst WhenVisible = ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps) => {\n always = always ?? false\n as = as ?? 'div'\n fallback = fallback ?? null\n\n const [loaded, setLoaded] = useState(false)\n const hasFetched = useRef<boolean>(false)\n const fetching = useRef<boolean>(false)\n const ref = useRef<HTMLDivElement>(null)\n\n const getReloadParams = useCallback<() => Partial<ReloadOptions>>(() => {\n if (data) {\n return {\n only: (Array.isArray(data) ? data : [data]) as string[],\n }\n }\n\n if (!params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return params\n }, [params, data])\n\n useEffect(() => {\n if (!ref.current) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!always && hasFetched.current) {\n observer.disconnect()\n }\n\n if (fetching.current) {\n return\n }\n\n hasFetched.current = true\n fetching.current = true\n\n const reloadParams = getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n fetching.current = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n setLoaded(true)\n fetching.current = false\n reloadParams.onFinish?.(e)\n\n if (!always) {\n observer.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${buffer || 0}px`,\n },\n )\n\n observer.observe(ref.current)\n\n return () => {\n observer.disconnect()\n }\n }, [ref, getReloadParams, buffer])\n\n if (always || !loaded) {\n return createElement(\n as,\n {\n props: null,\n ref,\n },\n loaded ? children : fallback,\n )\n }\n\n return loaded ? children : null\n}\n\nWhenVisible.displayName = 'InertiaWhenVisible'\n\nexport default WhenVisible\n"],
5
- "mappings": "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",
6
- "names": ["index_exports", "__export", "Deferred_default", "Head_default", "Link_default", "WhenVisible_default", "createInertiaApp", "router", "useForm", "usePage", "usePoll", "usePrefetch", "useRemember", "__toCommonJS", "import_core", "import_core", "import_react", "import_core", "import_react", "import_react", "headContext", "HeadContext_default", "import_react", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "headManager", "title", "component", "page", "preserveState", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "initialComponent", "App", "elements", "body", "import_react", "import_react", "usePage", "page", "PageContext_default", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "pageProps", "usePage", "keys", "key", "Deferred_default", "import_react", "Head", "children", "title", "headManager", "HeadContext_default", "provider", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "import_core", "import_react", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "async", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "prefetch", "cacheFor", "props", "ref", "inFlightCount", "setInFlightCount", "hoverTimeout", "_href", "_data", "url", "baseParams", "visitParams", "event", "count", "doPrefetch", "cacheForValue", "prefetchModes", "regularEvents", "prefetchHoverEvents", "prefetchClickEvents", "Link_default", "import_core", "import_lodash", "import_react", "import_core", "import_react", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "rememberKey", "defaults", "setDefaults", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "submit", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "cloneDeep", "setDataFunction", "keyOrData", "maybeValue", "setDefaultsFunction", "fieldOrFields", "reset", "fields", "key", "carry", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "get", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "isEqual", "import_core", "import_react", "usePoll", "interval", "requestOptions", "options", "pollRef", "import_core", "import_react", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "onPrefetchedListener", "import_core", "import_react", "WhenVisible", "children", "data", "params", "buffer", "as", "always", "fallback", "loaded", "setLoaded", "hasFetched", "fetching", "ref", "getReloadParams", "observer", "entries", "reloadParams", "e", "WhenVisible_default", "router", "Router"]
4
+ "sourcesContent": ["import { router as Router } from '@inertiajs/core'\n\nexport const router = Router\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './Deferred'\nexport { default as Head } from './Head'\nexport { InertiaLinkProps, default as Link } from './Link'\nexport { InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePage } from './usePage'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './WhenVisible'\n", "import { Page, PageProps, PageResolver, router, setupProgress } from '@inertiajs/core'\nimport { ComponentType, FunctionComponent, Key, ReactElement, ReactNode, createElement } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport App from './App'\n\ntype ReactInstance = ReactElement\ntype ReactComponent = ReactNode\n\ntype HeadManagerOnUpdate = (elements: string[]) => void // TODO: When shipped, replace with: Inertia.HeadManagerOnUpdate\ntype HeadManagerTitleCallback = (title: string) => string // TODO: When shipped, replace with: Inertia.HeadManagerTitleCallback\n\ntype AppType<SharedProps extends PageProps = PageProps> = FunctionComponent<\n {\n children?: (props: { Component: ComponentType; key: Key; props: Page<SharedProps>['props'] }) => ReactNode\n } & SetupOptions<unknown, SharedProps>['props']\n>\n\nexport type SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: AppType\n props: {\n initialPage: Page<SharedProps>\n initialComponent: ReactComponent\n resolveComponent: PageResolver\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdate\n }\n}\n\ntype BaseInertiaAppOptions = {\n title?: HeadManagerTitleCallback\n resolve: PageResolver\n}\n\ntype CreateInertiaAppSetupReturnType = ReactInstance | void\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: string\n page?: Page | string\n render?: undefined\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n setup(options: SetupOptions<HTMLElement, SharedProps>): CreateInertiaAppSetupReturnType\n}\n\ntype CreateInertiaAppSSRContent = { head: string[]; body: string }\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = BaseInertiaAppOptions & {\n id?: undefined\n page: Page | string\n render: typeof renderToString\n progress?: undefined\n setup(options: SetupOptions<null, SharedProps>): ReactInstance\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<CreateInertiaAppSetupReturnType>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<CreateInertiaAppSSRContent>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): Promise<\n CreateInertiaAppSetupReturnType | CreateInertiaAppSSRContent\n> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n // @ts-expect-error\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const reactApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n return setup({\n // @ts-expect-error\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createElement(\n 'div',\n {\n id,\n 'data-page': JSON.stringify(initialPage),\n },\n // @ts-expect-error\n reactApp,\n ),\n )\n\n return { head, body }\n }\n}\n", "import { createHeadManager, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nexport default function App({\n children,\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback,\n onHeadUpdate,\n}) {\n const [current, setCurrent] = useState({\n component: initialComponent || null,\n page: initialPage,\n key: null,\n })\n\n const headManager = useMemo(() => {\n return createHeadManager(\n typeof window === 'undefined',\n titleCallback || ((title) => title),\n onHeadUpdate || (() => {}),\n )\n }, [])\n\n useEffect(() => {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async ({ component, page, preserveState }) => {\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\n }))\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }, [])\n\n if (!current.component) {\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(PageContext.Provider, { value: current.page }, null),\n )\n }\n\n const renderChildren =\n children ||\n (({ Component, props, key }) => {\n const child = createElement(Component, { key, ...props })\n\n if (typeof Component.layout === 'function') {\n return Component.layout(child)\n }\n\n if (Array.isArray(Component.layout)) {\n return Component.layout\n .concat(child)\n .reverse()\n .reduce((children, Layout) => createElement(Layout, { children, ...props }))\n }\n\n return child\n })\n\n return createElement(\n HeadContext.Provider,\n { value: headManager },\n createElement(\n PageContext.Provider,\n { value: current.page },\n renderChildren({\n Component: current.component,\n key: current.key,\n props: current.page.props,\n }),\n ),\n )\n}\n\nApp.displayName = 'Inertia'\n", "import { createContext } from 'react'\n\nconst headContext = createContext(undefined)\nheadContext.displayName = 'InertiaHeadContext'\n\nexport default headContext\n", "import { createContext } from 'react'\n\nconst pageContext = createContext(undefined)\npageContext.displayName = 'InertiaPageContext'\n\nexport default pageContext\n", "import { ReactElement, useEffect, useMemo, useState } from 'react'\nimport { router } from '.'\nimport usePage from './usePage'\n\ninterface DeferredProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data: string | string[]\n}\n\nconst Deferred = ({ children, data, fallback }: DeferredProps) => {\n if (!data) {\n throw new Error('`<Deferred>` requires a `data` prop to be a string or array of strings')\n }\n\n const [loaded, setLoaded] = useState(false)\n const pageProps = usePage().props\n const keys = useMemo(() => (Array.isArray(data) ? data : [data]), [data])\n\n useEffect(() => {\n const removeListener = router.on('start', (e) => {\n if (\n (e.detail.visit.only.length === 0 && e.detail.visit.except.length === 0) ||\n e.detail.visit.only.find((key) => keys.includes(key))\n ) {\n setLoaded(false)\n }\n })\n\n return () => {\n removeListener()\n }\n }, [])\n\n useEffect(() => {\n setLoaded(keys.every((key) => pageProps[key] !== undefined))\n }, [pageProps, keys])\n\n return loaded ? children : fallback\n}\n\nDeferred.displayName = 'InertiaDeferred'\n\nexport default Deferred\n", "import { Page, PageProps } from '@inertiajs/core'\nimport { useContext } from 'react'\nimport PageContext from './PageContext'\n\nexport default function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps> {\n const page = useContext(PageContext)\n\n if (!page) {\n throw new Error('usePage must be used within the Inertia component')\n }\n\n return page\n}\n", "import React, { FunctionComponent, useContext, useEffect, useMemo } from 'react'\nimport HeadContext from './HeadContext'\n\ntype InertiaHeadProps = {\n title?: string\n children?: React.ReactNode\n}\n\ntype InertiaHead = FunctionComponent<InertiaHeadProps>\n\nconst Head: InertiaHead = function ({ children, title }) {\n const headManager = useContext(HeadContext)\n const provider = useMemo(() => headManager.createProvider(), [headManager])\n\n useEffect(() => {\n return () => {\n provider.disconnect()\n }\n }, [provider])\n\n function isUnaryTag(node) {\n return (\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n }\n\n function renderTagStart(node) {\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n if (['head-key', 'children', 'dangerouslySetInnerHTML'].includes(name)) {\n return carry\n }\n const value = node.props[name]\n if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n }\n\n function renderTagChildren(node) {\n return typeof node.props.children === 'string'\n ? node.props.children\n : node.props.children.reduce((html, child) => html + renderTag(child), '')\n }\n\n function renderTag(node) {\n let html = renderTagStart(node)\n if (node.props.children) {\n html += renderTagChildren(node)\n }\n if (node.props.dangerouslySetInnerHTML) {\n html += node.props.dangerouslySetInnerHTML.__html\n }\n if (!isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n }\n\n function ensureNodeHasInertiaProp(node) {\n return React.cloneElement(node, {\n inertia: node.props['head-key'] !== undefined ? node.props['head-key'] : '',\n })\n }\n\n function renderNode(node) {\n return renderTag(ensureNodeHasInertiaProp(node))\n }\n\n function renderNodes(nodes) {\n const computed = React.Children.toArray(nodes)\n .filter((node) => node)\n .map((node) => renderNode(node))\n if (title && !computed.find((tag) => tag.startsWith('<title'))) {\n computed.push(`<title inertia>${title}</title>`)\n }\n return computed\n }\n\n provider.update(renderNodes(children))\n\n return null\n}\nexport default Head\n", "import {\n FormDataConvertible,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n PreserveStateOption,\n Progress,\n router,\n shouldIntercept,\n} from '@inertiajs/core'\nimport { createElement, forwardRef, useEffect, useMemo, useRef, useState } from 'react'\n\nconst noop = () => undefined\n\ninterface BaseInertiaLinkProps {\n as?: string\n data?: Record<string, FormDataConvertible>\n href: string | { url: string; method: Method }\n method?: Method\n headers?: Record<string, string>\n onClick?: (event: React.MouseEvent<Element>) => void\n preserveScroll?: PreserveStateOption\n preserveState?: PreserveStateOption\n replace?: boolean\n only?: string[]\n except?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: (event: PendingVisit) => void\n onProgress?: (progress: Progress) => void\n onFinish?: (event: PendingVisit) => void\n onCancel?: () => void\n onSuccess?: () => void\n onError?: () => void\n queryStringArrayFormat?: 'indices' | 'brackets'\n async?: boolean\n cacheFor?: number | string\n prefetch?: boolean | LinkPrefetchOption | LinkPrefetchOption[]\n}\n\nexport type InertiaLinkProps = BaseInertiaLinkProps &\n Omit<React.HTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps> &\n Omit<React.AllHTMLAttributes<HTMLElement>, keyof BaseInertiaLinkProps>\n\nconst Link = forwardRef<unknown, InertiaLinkProps>(\n (\n {\n children,\n as = 'a',\n data = {},\n href,\n method = 'get',\n preserveScroll = false,\n preserveState = null,\n replace = false,\n only = [],\n except = [],\n headers = {},\n queryStringArrayFormat = 'brackets',\n async = false,\n onClick = noop,\n onCancelToken = noop,\n onBefore = noop,\n onStart = noop,\n onProgress = noop,\n onFinish = noop,\n onCancel = noop,\n onSuccess = noop,\n onError = noop,\n prefetch = false,\n cacheFor = 0,\n ...props\n },\n ref,\n ) => {\n const [inFlightCount, setInFlightCount] = useState(0)\n const hoverTimeout = useRef<number>(null)\n\n as = as.toLowerCase()\n method = typeof href === 'object' ? href.method : (method.toLowerCase() as Method)\n const [_href, _data] = mergeDataIntoQueryString(\n method,\n typeof href === 'object' ? href.url : href || '',\n data,\n queryStringArrayFormat,\n )\n const url = _href\n data = _data\n\n const baseParams = {\n data,\n method,\n preserveScroll,\n preserveState: preserveState ?? method !== 'get',\n replace,\n only,\n except,\n headers,\n async,\n }\n\n const visitParams = {\n ...baseParams,\n onCancelToken,\n onBefore,\n onStart(event) {\n setInFlightCount((count) => count + 1)\n onStart(event)\n },\n onProgress,\n onFinish(event) {\n setInFlightCount((count) => count - 1)\n onFinish(event)\n },\n onCancel,\n onSuccess,\n onError,\n }\n\n const doPrefetch = () => {\n router.prefetch(url, baseParams, { cacheFor: cacheForValue })\n }\n\n const prefetchModes: LinkPrefetchOption[] = useMemo(\n () => {\n if (prefetch === true) {\n return ['hover']\n }\n\n if (prefetch === false) {\n return []\n }\n\n if (Array.isArray(prefetch)) {\n return prefetch\n }\n\n return [prefetch]\n },\n Array.isArray(prefetch) ? prefetch : [prefetch],\n )\n\n const cacheForValue = useMemo(() => {\n if (cacheFor !== 0) {\n // If they've provided a value, respect it\n return cacheFor\n }\n\n if (prefetchModes.length === 1 && prefetchModes[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return 30_000\n }, [cacheFor, prefetchModes])\n\n useEffect(() => {\n return () => {\n clearTimeout(hoverTimeout.current)\n }\n }, [])\n\n useEffect(() => {\n if (prefetchModes.includes('mount')) {\n setTimeout(() => doPrefetch())\n }\n }, prefetchModes)\n\n const regularEvents = {\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(url, visitParams)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseEnter: () => {\n hoverTimeout.current = window.setTimeout(() => {\n doPrefetch()\n }, 75)\n },\n onMouseLeave: () => {\n clearTimeout(hoverTimeout.current)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMouseDown: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n doPrefetch()\n }\n },\n onMouseUp: (event) => {\n event.preventDefault()\n router.visit(url, visitParams)\n },\n onClick: (event) => {\n onClick(event)\n\n if (shouldIntercept(event)) {\n // Let the mouseup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n if (method !== 'get') {\n as = 'button'\n }\n\n const elProps = {\n a: { href: url },\n button: { type: 'button' },\n }\n\n return createElement(\n as,\n {\n ...props,\n ...(elProps[as] || {}),\n ref,\n ...(() => {\n if (prefetchModes.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n 'data-loading': inFlightCount > 0 ? '' : undefined,\n },\n children,\n )\n },\n)\nLink.displayName = 'InertiaLink'\n\nexport default Link\n", "import {\n FormDataConvertible,\n FormDataKeys,\n FormDataValues,\n Method,\n Progress,\n router,\n VisitOptions,\n} from '@inertiajs/core'\nimport { cloneDeep, isEqual } from 'es-toolkit'\nimport { get, has, set } from 'es-toolkit/compat'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\ntype SetDataByObject<TForm> = (data: TForm) => void\ntype SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\ntype SetDataByKeyValuePair<TForm> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void\ntype FormDataType = Record<string, FormDataConvertible>\ntype FormOptions = Omit<VisitOptions, 'data'>\n\nexport interface InertiaFormProps<TForm extends FormDataType> {\n data: TForm\n isDirty: boolean\n errors: Partial<Record<FormDataKeys<TForm>, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n setData: SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>\n transform: (callback: (data: TForm) => object) => void\n setDefaults(): void\n setDefaults(field: FormDataKeys<TForm>, value: FormDataConvertible): void\n setDefaults(fields: Partial<TForm>): void\n reset: (...fields: FormDataKeys<TForm>[]) => void\n clearErrors: (...fields: FormDataKeys<TForm>[]) => void\n setError(field: FormDataKeys<TForm>, value: string): void\n setError(errors: Record<FormDataKeys<TForm>, string>): void\n submit: (...args: [Method, string, FormOptions?] | [{ url: string; method: Method }, FormOptions?]) => void\n get: (url: string, options?: FormOptions) => void\n patch: (url: string, options?: FormOptions) => void\n post: (url: string, options?: FormOptions) => void\n put: (url: string, options?: FormOptions) => void\n delete: (url: string, options?: FormOptions) => void\n cancel: () => void\n}\nexport default function useForm<TForm extends FormDataType>(initialValues?: TForm): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKey: string,\n initialValues?: TForm,\n): InertiaFormProps<TForm>\nexport default function useForm<TForm extends FormDataType>(\n rememberKeyOrInitialValues?: string | TForm,\n maybeInitialValues?: TForm,\n): InertiaFormProps<TForm> {\n const isMounted = useRef(null)\n const rememberKey = typeof rememberKeyOrInitialValues === 'string' ? rememberKeyOrInitialValues : null\n const [defaults, setDefaults] = useState(\n (typeof rememberKeyOrInitialValues === 'string' ? maybeInitialValues : rememberKeyOrInitialValues) || ({} as TForm),\n )\n const cancelToken = useRef(null)\n const recentlySuccessfulTimeoutId = useRef(null)\n const [data, setData] = rememberKey ? useRemember(defaults, `${rememberKey}:data`) : useState(defaults)\n const [errors, setErrors] = rememberKey\n ? useRemember({} as Partial<Record<FormDataKeys<TForm>, string>>, `${rememberKey}:errors`)\n : useState({} as Partial<Record<FormDataKeys<TForm>, string>>)\n const [hasErrors, setHasErrors] = useState(false)\n const [processing, setProcessing] = useState(false)\n const [progress, setProgress] = useState(null)\n const [wasSuccessful, setWasSuccessful] = useState(false)\n const [recentlySuccessful, setRecentlySuccessful] = useState(false)\n const transform = useRef((data) => data)\n\n useEffect(() => {\n isMounted.current = true\n return () => {\n isMounted.current = false\n }\n }, [])\n\n const submit = useCallback(\n (...args) => {\n const objectPassed = typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : args[0]\n const url = objectPassed ? args[0].url : args[1]\n const options = (objectPassed ? args[1] : args[2]) ?? {}\n\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken.current = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n setWasSuccessful(false)\n setRecentlySuccessful(false)\n clearTimeout(recentlySuccessfulTimeoutId.current)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n setProcessing(true)\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n setProgress(event)\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: (page) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors({})\n setHasErrors(false)\n setWasSuccessful(true)\n setRecentlySuccessful(true)\n setDefaults(cloneDeep(data))\n recentlySuccessfulTimeoutId.current = setTimeout(() => {\n if (isMounted.current) {\n setRecentlySuccessful(false)\n }\n }, 2000)\n }\n\n if (options.onSuccess) {\n return options.onSuccess(page)\n }\n },\n onError: (errors) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n setErrors(errors)\n setHasErrors(true)\n }\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n if (isMounted.current) {\n setProcessing(false)\n setProgress(null)\n }\n\n cancelToken.current = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transform.current(data) })\n } else {\n router[method](url, transform.current(data), _options)\n }\n },\n [data, setErrors, transform],\n )\n\n const setDataFunction = useCallback(\n (keyOrData: FormDataKeys<TForm> | Function | TForm, maybeValue?: any) => {\n if (typeof keyOrData === 'string') {\n setData((data) => set(cloneDeep(data), keyOrData, maybeValue))\n } else if (typeof keyOrData === 'function') {\n setData((data) => keyOrData(data))\n } else {\n setData(keyOrData as TForm)\n }\n },\n [setData],\n )\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(() => data)\n } else {\n setDefaults((defaults) => {\n return typeof fieldOrFields === 'string'\n ? set(cloneDeep(defaults), fieldOrFields, maybeValue)\n : Object.assign(cloneDeep(defaults), fieldOrFields)\n })\n }\n },\n [data, setDefaults],\n )\n\n const reset = useCallback(\n (...fields) => {\n if (fields.length === 0) {\n setData(defaults)\n } else {\n setData((data) =>\n (fields as Array<FormDataKeys<TForm>>)\n .filter((key) => has(defaults, key))\n .reduce(\n (carry, key) => {\n return set(carry, key, get(defaults, key))\n },\n { ...data } as TForm,\n ),\n )\n }\n },\n [setData, defaults],\n )\n\n const setError = useCallback(\n (fieldOrFields: FormDataKeys<TForm> | Record<FormDataKeys<TForm>, string>, maybeValue?: string) => {\n setErrors((errors) => {\n const newErrors = {\n ...errors,\n ...(typeof fieldOrFields === 'string'\n ? { [fieldOrFields]: maybeValue }\n : (fieldOrFields as Record<FormDataKeys<TForm>, string>)),\n }\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const clearErrors = useCallback(\n (...fields) => {\n setErrors((errors) => {\n const newErrors = (Object.keys(errors) as Array<FormDataKeys<TForm>>).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: errors[field] } : {}),\n }),\n {},\n )\n setHasErrors(Object.keys(newErrors).length > 0)\n return newErrors\n })\n },\n [setErrors, setHasErrors],\n )\n\n const createSubmitMethod = (method) => (url, options) => {\n submit(method, url, options)\n }\n const getMethod = useCallback(createSubmitMethod('get'), [submit])\n const post = useCallback(createSubmitMethod('post'), [submit])\n const put = useCallback(createSubmitMethod('put'), [submit])\n const patch = useCallback(createSubmitMethod('patch'), [submit])\n const deleteMethod = useCallback(createSubmitMethod('delete'), [submit])\n\n const cancel = useCallback(() => {\n if (cancelToken.current) {\n cancelToken.current.cancel()\n }\n }, [])\n\n const transformFunction = useCallback((callback) => {\n transform.current = callback\n }, [])\n\n return {\n data,\n setData: setDataFunction,\n isDirty: !isEqual(data, defaults),\n errors,\n hasErrors,\n processing,\n progress,\n wasSuccessful,\n recentlySuccessful,\n transform: transformFunction,\n setDefaults: setDefaultsFunction,\n reset,\n setError,\n clearErrors,\n submit,\n get: getMethod,\n post,\n put,\n patch,\n delete: deleteMethod,\n cancel,\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react'\n\nexport default function useRemember<State>(\n initialState: State,\n key?: string,\n): [State, Dispatch<SetStateAction<State>>] {\n const [state, setState] = useState(() => {\n const restored = router.restore(key) as State\n\n return restored !== undefined ? restored : initialState\n })\n\n useEffect(() => {\n router.remember(state, key)\n }, [state, key])\n\n return [state, setState]\n}\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { useEffect, useRef } from 'react'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n) {\n const pollRef = useRef(\n router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n }),\n )\n\n useEffect(() => {\n if (options.autoStart ?? true) {\n pollRef.current.start()\n }\n\n return () => pollRef.current.stop()\n }, [])\n\n return {\n stop: pollRef.current.stop,\n start: pollRef.current.start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { useEffect, useState } from 'react'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: number | null\n isPrefetching: boolean\n isPrefetched: boolean\n flush: () => void\n} {\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n const [lastUpdatedAt, setLastUpdatedAt] = useState<number | null>(cached?.staleTimestamp || null)\n const [isPrefetching, setIsPrefetching] = useState(inFlight !== null)\n const [isPrefetched, setIsPrefetched] = useState(cached !== null)\n\n useEffect(() => {\n const onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(true)\n }\n })\n\n const onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n setIsPrefetching(false)\n setIsPrefetched(true)\n setLastUpdatedAt(e.detail.fetchedAt)\n }\n })\n\n return () => {\n onPrefetchedListener()\n onPrefetchingListener()\n }\n }, [])\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { createElement, ReactElement, useCallback, useEffect, useRef, useState } from 'react'\n\ninterface WhenVisibleProps {\n children: ReactElement | number | string\n fallback: ReactElement | number | string\n data?: string | string[]\n params?: ReloadOptions\n buffer?: number\n as?: string\n always?: boolean\n}\n\nconst WhenVisible = ({ children, data, params, buffer, as, always, fallback }: WhenVisibleProps) => {\n always = always ?? false\n as = as ?? 'div'\n fallback = fallback ?? null\n\n const [loaded, setLoaded] = useState(false)\n const hasFetched = useRef<boolean>(false)\n const fetching = useRef<boolean>(false)\n const ref = useRef<HTMLDivElement>(null)\n\n const getReloadParams = useCallback<() => Partial<ReloadOptions>>(() => {\n if (data) {\n return {\n only: (Array.isArray(data) ? data : [data]) as string[],\n }\n }\n\n if (!params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return params\n }, [params, data])\n\n useEffect(() => {\n if (!ref.current) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!always && hasFetched.current) {\n observer.disconnect()\n }\n\n if (fetching.current) {\n return\n }\n\n hasFetched.current = true\n fetching.current = true\n\n const reloadParams = getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n fetching.current = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n setLoaded(true)\n fetching.current = false\n reloadParams.onFinish?.(e)\n\n if (!always) {\n observer.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${buffer || 0}px`,\n },\n )\n\n observer.observe(ref.current)\n\n return () => {\n observer.disconnect()\n }\n }, [ref, getReloadParams, buffer])\n\n if (always || !loaded) {\n return createElement(\n as,\n {\n props: null,\n ref,\n },\n loaded ? children : fallback,\n )\n }\n\n return loaded ? children : null\n}\n\nWhenVisible.displayName = 'InertiaWhenVisible'\n\nexport default WhenVisible\n"],
5
+ "mappings": "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",
6
+ "names": ["index_exports", "__export", "Deferred_default", "Head_default", "Link_default", "WhenVisible_default", "createInertiaApp", "router", "useForm", "usePage", "usePoll", "usePrefetch", "useRemember", "__toCommonJS", "import_core", "import_core", "import_react", "import_core", "import_react", "import_react", "headContext", "HeadContext_default", "import_react", "pageContext", "PageContext_default", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "headManager", "title", "component", "page", "preserveState", "HeadContext_default", "PageContext_default", "renderChildren", "Component", "props", "key", "child", "Layout", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "reactApp", "initialComponent", "App", "elements", "body", "import_react", "import_react", "usePage", "page", "PageContext_default", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "pageProps", "usePage", "keys", "removeListener", "router", "e", "key", "Deferred_default", "import_react", "Head", "children", "title", "headManager", "HeadContext_default", "provider", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "renderNodes", "nodes", "computed", "tag", "Head_default", "import_core", "import_react", "noop", "Link", "children", "as", "data", "href", "method", "preserveScroll", "preserveState", "replace", "only", "except", "headers", "queryStringArrayFormat", "async", "onClick", "onCancelToken", "onBefore", "onStart", "onProgress", "onFinish", "onCancel", "onSuccess", "onError", "prefetch", "cacheFor", "props", "ref", "inFlightCount", "setInFlightCount", "hoverTimeout", "_href", "_data", "url", "baseParams", "visitParams", "event", "count", "doPrefetch", "cacheForValue", "prefetchModes", "regularEvents", "prefetchHoverEvents", "prefetchClickEvents", "Link_default", "import_core", "import_es_toolkit", "import_compat", "import_react", "import_core", "import_react", "useRemember", "initialState", "key", "state", "setState", "restored", "useForm", "rememberKeyOrInitialValues", "maybeInitialValues", "isMounted", "rememberKey", "defaults", "setDefaults", "cancelToken", "recentlySuccessfulTimeoutId", "data", "setData", "useRemember", "errors", "setErrors", "hasErrors", "setHasErrors", "processing", "setProcessing", "progress", "setProgress", "wasSuccessful", "setWasSuccessful", "recentlySuccessful", "setRecentlySuccessful", "transform", "submit", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "setDataFunction", "keyOrData", "maybeValue", "setDefaultsFunction", "fieldOrFields", "reset", "fields", "key", "carry", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "getMethod", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "import_core", "import_react", "usePoll", "interval", "requestOptions", "options", "pollRef", "import_core", "import_react", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "onPrefetchedListener", "import_core", "import_react", "WhenVisible", "children", "data", "params", "buffer", "as", "always", "fallback", "loaded", "setLoaded", "hasFetched", "fetching", "ref", "getReloadParams", "observer", "entries", "reloadParams", "e", "WhenVisible_default", "router", "Router"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/react",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "license": "MIT",
5
5
  "description": "The React adapter for Inertia.js",
6
6
  "contributors": [
@@ -59,8 +59,7 @@
59
59
  "react": "^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
60
60
  },
61
61
  "dependencies": {
62
- "@inertiajs/core": "2.0.6",
63
- "lodash.isequal": "^4.5.0",
64
- "lodash.clonedeep": "^4.5.0"
62
+ "@inertiajs/core": "2.0.7",
63
+ "es-toolkit": "^1.33.0"
65
64
  }
66
65
  }
@@ -1,27 +1,27 @@
1
- import { FormDataConvertible, Method, Progress, VisitOptions } from '@inertiajs/core';
2
- type setDataByObject<TForm> = (data: TForm) => void;
3
- type setDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void;
4
- type setDataByKeyValuePair<TForm> = <K extends keyof TForm>(key: K, value: TForm[K]) => void;
1
+ import { FormDataConvertible, FormDataKeys, FormDataValues, Method, Progress, VisitOptions } from '@inertiajs/core';
2
+ type SetDataByObject<TForm> = (data: TForm) => void;
3
+ type SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void;
4
+ type SetDataByKeyValuePair<TForm> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void;
5
5
  type FormDataType = Record<string, FormDataConvertible>;
6
6
  type FormOptions = Omit<VisitOptions, 'data'>;
7
7
  export interface InertiaFormProps<TForm extends FormDataType> {
8
8
  data: TForm;
9
9
  isDirty: boolean;
10
- errors: Partial<Record<keyof TForm, string>>;
10
+ errors: Partial<Record<FormDataKeys<TForm>, string>>;
11
11
  hasErrors: boolean;
12
12
  processing: boolean;
13
13
  progress: Progress | null;
14
14
  wasSuccessful: boolean;
15
15
  recentlySuccessful: boolean;
16
- setData: setDataByObject<TForm> & setDataByMethod<TForm> & setDataByKeyValuePair<TForm>;
16
+ setData: SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>;
17
17
  transform: (callback: (data: TForm) => object) => void;
18
18
  setDefaults(): void;
19
- setDefaults(field: keyof TForm, value: FormDataConvertible): void;
19
+ setDefaults(field: FormDataKeys<TForm>, value: FormDataConvertible): void;
20
20
  setDefaults(fields: Partial<TForm>): void;
21
- reset: (...fields: (keyof TForm)[]) => void;
22
- clearErrors: (...fields: (keyof TForm)[]) => void;
23
- setError(field: keyof TForm, value: string): void;
24
- setError(errors: Record<keyof TForm, string>): void;
21
+ reset: (...fields: FormDataKeys<TForm>[]) => void;
22
+ clearErrors: (...fields: FormDataKeys<TForm>[]) => void;
23
+ setError(field: FormDataKeys<TForm>, value: string): void;
24
+ setError(errors: Record<FormDataKeys<TForm>, string>): void;
25
25
  submit: (...args: [Method, string, FormOptions?] | [{
26
26
  url: string;
27
27
  method: Method;