@inertiajs/react 2.0.13 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
- package/types/useForm.d.ts +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{router as St}from"@inertiajs/core";import{router as Ke,setupProgress as Be}from"@inertiajs/core";import{createElement as Ve}from"react";import{createHeadManager as Oe,router as fe}from"@inertiajs/core";import{createElement as O,useEffect as Me,useMemo as Le,useState as He}from"react";import{createContext as ke}from"react";var le=ke(void 0);le.displayName="InertiaHeadContext";var B=le;import{createContext as we}from"react";var de=we(void 0);de.displayName="InertiaPageContext";var V=de;var ne=!0,me=!1,ge=async()=>{ne=!1};function q({children:o,initialPage:t,initialComponent:a,resolveComponent:i,titleCallback:s,onHeadUpdate:f}){let[l,m]=He({component:a||null,page:t,key:null}),u=Le(()=>Oe(typeof window>"u",s||(c=>c),f||(()=>{})),[]);if(me||(fe.init({initialPage:t,resolveComponent:i,swapComponent:async c=>ge(c)}),me=!0),Me(()=>{ge=async({component:c,page:e,preserveState:d})=>{if(ne){ne=!1;return}m(r=>({component:c,page:e,key:d?r.key:Date.now()}))},fe.on("navigate",()=>u.forceUpdate())},[]),!l.component)return O(B.Provider,{value:u},O(V.Provider,{value:l.page},null));let g=o||(({Component:c,props:e,key:d})=>{let r=O(c,{key:d,...e});return typeof c.layout=="function"?c.layout(r):Array.isArray(c.layout)?c.layout.concat(r).reverse().reduce((h,F)=>O(F,{children:h,...e})):r});return O(B.Provider,{value:u},O(V.Provider,{value:l.page},g({Component:l.component,key:l.key,props:l.page.props})))}q.displayName="Inertia";async function Pe({id:o="app",resolve:t,setup:a,title:i,progress:s={},page:f,render:l}){let m=typeof window>"u",u=m?null:document.getElementById(o),g=f||JSON.parse(u.dataset.page),c=r=>Promise.resolve(t(r)).then(h=>h.default||h),e=[],d=await Promise.all([c(g.component),Ke.decryptHistory().catch(()=>{})]).then(([r])=>a({el:u,App:q,props:{initialPage:g,initialComponent:r,resolveComponent:c,titleCallback:i,onHeadUpdate:m?h=>e=h:null}}));if(!m&&s&&Be(s),m){let r=await l(Ve("div",{id:o,"data-page":JSON.stringify(g)},d));return{head:e,body:r}}}import{useEffect as ye,useMemo as Ne,useState as je}from"react";import{useContext as Ue}from"react";function J(){let o=Ue(V);if(!o)throw new Error("usePage must be used within the Inertia component");return o}var he=o=>(o=new URL(o.href),o.hash="",o),$e=(o,t)=>he(o).href===he(t).href,Fe=({children:o,data:t,fallback:a})=>{if(!t)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[i,s]=je(!1),f=J().props,l=Ne(()=>Array.isArray(t)?t:[t],[t]);return ye(()=>{let m=Se.on("start",u=>{let g=u.detail.visit.only.length>0||u.detail.visit.except.length>0,c=u.detail.visit.only.find(e=>l.includes(e));$e(u.detail.visit.url,window.location)&&(!g||c)&&s(!1)});return()=>{m()}},[]),ye(()=>{s(l.every(m=>f[m]!==void 0))},[f,l]),i?o:a};Fe.displayName="InertiaDeferred";var We=Fe;import Te,{useContext as _e,useEffect as qe,useMemo as Je}from"react";var ze=function({children:o,title:t}){let a=_e(B),i=Je(()=>a.createProvider(),[a]);qe(()=>(i.reconnect(),i.update(c(o)),()=>{i.disconnect()}),[i,o,t]);function s(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 d=Object.keys(e.props).reduce((r,h)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(h))return r;let F=e.props[h];return F===""?r+` ${h}`:r+` ${h}="${F}"`},"");return`<${e.type}${d}>`}function l(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((d,r)=>d+m(r),"")}function m(e){let d=f(e);return e.props.children&&(d+=l(e)),e.props.dangerouslySetInnerHTML&&(d+=e.props.dangerouslySetInnerHTML.__html),s(e)||(d+=`</${e.type}>`),d}function u(e){return Te.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function g(e){return m(u(e))}function c(e){let d=Te.Children.toArray(e).filter(r=>r).map(r=>g(r));return t&&!d.find(r=>r.startsWith("<title"))&&d.push(`<title inertia>${t}</title>`),d}return null},Qe=ze;import{mergeDataIntoQueryString as Ye,router as se,shouldIntercept as ae}from"@inertiajs/core";import{createElement as Ge,forwardRef as Xe,useEffect as ve,useMemo as be,useRef as Ze,useState as et}from"react";var R=()=>{},Ce=Xe(({children:o,as:t="a",data:a={},href:i,method:s="get",preserveScroll:f=!1,preserveState:l=null,replace:m=!1,only:u=[],except:g=[],headers:c={},queryStringArrayFormat:e="brackets",async:d=!1,onClick:r=R,onCancelToken:h=R,onBefore:F=R,onStart:A=R,onProgress:E=R,onFinish:Y=R,onCancel:j=R,onSuccess:G=R,onError:M=R,prefetch:T=!1,cacheFor:k=0,...C},X)=>{let[$,L]=et(0),H=Ze(null);t=t.toLowerCase(),s=typeof i=="object"?i.method:s.toLowerCase();let[Z,ee]=Ye(s,typeof i=="object"?i.url:i||"",a,e),w=Z;a=ee;let I={data:a,method:s,preserveScroll:f,preserveState:l??s!=="get",replace:m,only:u,except:g,headers:c,async:d},W={...I,onCancelToken:h,onBefore:F,onStart(p){L(P=>P+1),A(p)},onProgress:E,onFinish(p){L(P=>P-1),Y(p)},onCancel:j,onSuccess:G,onError:M},K=()=>{se.prefetch(w,I,{cacheFor:te})},D=be(()=>T===!0?["hover"]:T===!1?[]:Array.isArray(T)?T:[T],Array.isArray(T)?T:[T]),te=be(()=>k!==0?k:D.length===1&&D[0]==="click"?0:3e4,[k,D]);ve(()=>()=>{clearTimeout(H.current)},[]),ve(()=>{D.includes("mount")&&setTimeout(()=>K())},D);let _={onClick:p=>{r(p),ae(p)&&(p.preventDefault(),se.visit(w,W))}},re={onMouseEnter:()=>{H.current=window.setTimeout(()=>{K()},75)},onMouseLeave:()=>{clearTimeout(H.current)},onClick:_.onClick},oe={onMouseDown:p=>{ae(p)&&(p.preventDefault(),K())},onMouseUp:p=>{p.preventDefault(),se.visit(w,W)},onClick:p=>{r(p),ae(p)&&p.preventDefault()}};return s!=="get"&&(t="button"),Ge(t,{...C,...{a:{href:w},button:{type:"button"}}[t]||{},ref:X,...D.includes("hover")?re:D.includes("click")?oe:_,"data-loading":$>0?"":void 0},o)});Ce.displayName="InertiaLink";var tt=Ce;import{router as Re}from"@inertiajs/core";import{cloneDeep as z,isEqual as nt}from"es-toolkit";import{get as st,has as at,set as ie}from"es-toolkit/compat";import{useCallback as v,useEffect as it,useLayoutEffect as pt,useMemo as ut,useRef as Q,useState as x}from"react";import{router as De}from"@inertiajs/core";import{useEffect as rt,useState as ot}from"react";function U(o,t){let[a,i]=ot(()=>{let s=De.restore(t);return s!==void 0?s:o});return rt(()=>{De.remember(a,t)},[a,t]),[a,i]}function xe(o,t){let a=Q(null),i=typeof o=="string"?o:null,[s,f]=x((typeof o=="string"?t:o)||{}),l=Q(null),m=Q(null),[u,g]=i?U(s,`${i}:data`):x(s),[c,e]=i?U({},`${i}:errors`):x({}),[d,r]=x(!1),[h,F]=x(!1),[A,E]=x(null),[Y,j]=x(!1),[G,M]=x(!1),T=Q(n=>n),k=ut(()=>!nt(u,s),[u,s]);it(()=>(a.current=!0,()=>{a.current=!1}),[]);let C=v((...n)=>{let p=typeof n[0]=="object",P=p?n[0].method:n[0],b=p?n[0].url:n[1],y=(p?n[1]:n[2])??{},ce={...y,onCancelToken:S=>{if(l.current=S,y.onCancelToken)return y.onCancelToken(S)},onBefore:S=>{if(j(!1),M(!1),clearTimeout(m.current),y.onBefore)return y.onBefore(S)},onStart:S=>{if(F(!0),y.onStart)return y.onStart(S)},onProgress:S=>{if(E(S),y.onProgress)return y.onProgress(S)},onSuccess:S=>{if(a.current&&(F(!1),E(null),e({}),r(!1),j(!0),M(!0),f(z(u)),m.current=setTimeout(()=>{a.current&&M(!1)},2e3)),y.onSuccess)return y.onSuccess(S)},onError:S=>{if(a.current&&(F(!1),E(null),e(S),r(!0)),y.onError)return y.onError(S)},onCancel:()=>{if(a.current&&(F(!1),E(null)),y.onCancel)return y.onCancel()},onFinish:S=>{if(a.current&&(F(!1),E(null)),l.current=null,y.onFinish)return y.onFinish(S)}};P==="delete"?Re.delete(b,{...ce,data:T.current(u)}):Re[P](b,T.current(u),ce)},[u,e,T]),X=v((n,p)=>{g(typeof n=="string"?P=>ie(z(P),n,p):typeof n=="function"?P=>n(P):n)},[g]),[$,L]=x(!1),H=v((n,p)=>{typeof n>"u"?(f(u),L(!0)):f(P=>typeof n=="string"?ie(z(P),n,p):Object.assign(z(P),n))},[u,f]);pt(()=>{$&&(k&&f(u),L(!1))},[$]);let Z=v((...n)=>{n.length===0?g(s):g(p=>n.filter(P=>at(s,P)).reduce((P,b)=>ie(P,b,st(s,b)),{...p}))},[g,s]),ee=v((n,p)=>{e(P=>{let b={...P,...typeof n=="string"?{[n]:p}:n};return r(Object.keys(b).length>0),b})},[e,r]),w=v((...n)=>{e(p=>{let P=Object.keys(p).reduce((b,y)=>({...b,...n.length>0&&!n.includes(y)?{[y]:p[y]}:{}}),{});return r(Object.keys(P).length>0),P})},[e,r]),I=n=>(p,P)=>{C(n,p,P)},W=v(I("get"),[C]),K=v(I("post"),[C]),D=v(I("put"),[C]),te=v(I("patch"),[C]),_=v(I("delete"),[C]),re=v(()=>{l.current&&l.current.cancel()},[]),oe=v(n=>{T.current=n},[]);return{data:u,setData:X,isDirty:k,errors:c,hasErrors:d,processing:h,progress:A,wasSuccessful:Y,recentlySuccessful:G,transform:oe,setDefaults:H,reset:Z,setError:ee,clearErrors:w,submit:C,get:W,post:K,put:D,patch:te,delete:_,cancel:re}}import{router as ct}from"@inertiajs/core";import{useEffect as lt,useRef as dt}from"react";function Ie(o,t={},a={keepAlive:!1,autoStart:!0}){let i=dt(ct.poll(o,t,{...a,autoStart:!1}));return lt(()=>((a.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 ft,useState as pe}from"react";function Ae(o={}){let t=typeof window>"u"?null:N.getCached(window.location.pathname,o),a=typeof window>"u"?null:N.getPrefetching(window.location.pathname,o),[i,s]=pe(t?.staleTimestamp||null),[f,l]=pe(a!==null),[m,u]=pe(t!==null);return ft(()=>{let g=N.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&l(!0)}),c=N.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(l(!1),u(!0),s(e.detail.fetchedAt))});return()=>{c(),g()}},[]),{lastUpdatedAt:i,isPrefetching:f,isPrefetched:m,flush:()=>N.flush(window.location.pathname,o)}}import{router as mt}from"@inertiajs/core";import{createElement as gt,useCallback as Pt,useEffect as yt,useRef as ue,useState as ht}from"react";var Ee=({children:o,data:t,params:a,buffer:i,as:s,always:f,fallback:l})=>{f=f??!1,s=s??"div",l=l??null;let[m,u]=ht(!1),g=ue(!1),c=ue(!1),e=ue(null),d=Pt(()=>{if(t)return{only:Array.isArray(t)?t:[t]};if(!a)throw new Error("You must provide either a `data` or `params` prop.");return a},[a,t]);return yt(()=>{if(!e.current)return;let r=new IntersectionObserver(h=>{if(!h[0].isIntersecting||(!f&&g.current&&r.disconnect(),c.current))return;g.current=!0,c.current=!0;let F=d();mt.reload({...F,onStart:A=>{c.current=!0,F.onStart?.(A)},onFinish:A=>{u(!0),c.current=!1,F.onFinish?.(A),f||r.disconnect()}})},{rootMargin:`${i||0}px`});return r.observe(e.current),()=>{r.disconnect()}},[e,d,i]),f||!m?gt(s,{props:null,ref:e},m?o:l):m?o:null};Ee.displayName="InertiaWhenVisible";var Ft=Ee;var Se=St;export{We as Deferred,Qe as Head,tt as Link,Ft as WhenVisible,Pe as createInertiaApp,Se as router,xe as useForm,J as usePage,Ie as usePoll,Ae as usePrefetch,U as useRemember};
|
|
1
|
+
import{router as St}from"@inertiajs/core";import{router as Ke,setupProgress as Be}from"@inertiajs/core";import{createElement as Ve}from"react";import{createHeadManager as Oe,router as fe}from"@inertiajs/core";import{createElement as O,useEffect as Me,useMemo as Le,useState as He}from"react";import{createContext as ke}from"react";var le=ke(void 0);le.displayName="InertiaHeadContext";var B=le;import{createContext as we}from"react";var de=we(void 0);de.displayName="InertiaPageContext";var V=de;var ne=!0,me=!1,ge=async()=>{ne=!1};function q({children:r,initialPage:e,initialComponent:i,resolveComponent:s,titleCallback:a,onHeadUpdate:f}){let[d,P]=He({component:i||null,page:e,key:null}),c=Le(()=>Oe(typeof window>"u",a||(l=>l),f||(()=>{})),[]);if(me||(fe.init({initialPage:e,resolveComponent:s,swapComponent:async l=>ge(l)}),me=!0),Me(()=>{ge=async({component:l,page:u,preserveState:o})=>{if(ne){ne=!1;return}P(t=>({component:l,page:u,key:o?t.key:Date.now()}))},fe.on("navigate",()=>c.forceUpdate())},[]),!d.component)return O(B.Provider,{value:c},O(V.Provider,{value:d.page},null));let m=r||(({Component:l,props:u,key:o})=>{let t=O(l,{key:o,...u});return typeof l.layout=="function"?l.layout(t):Array.isArray(l.layout)?l.layout.concat(t).reverse().reduce((g,F)=>O(F,{children:g,...u})):t});return O(B.Provider,{value:c},O(V.Provider,{value:d.page},m({Component:d.component,key:d.key,props:d.page.props})))}q.displayName="Inertia";async function ye({id:r="app",resolve:e,setup:i,title:s,progress:a={},page:f,render:d}){let P=typeof window>"u",c=P?null:document.getElementById(r),m=f||JSON.parse(c.dataset.page),l=t=>Promise.resolve(e(t)).then(g=>g.default||g),u=[],o=await Promise.all([l(m.component),Ke.decryptHistory().catch(()=>{})]).then(([t])=>i({el:c,App:q,props:{initialPage:m,initialComponent:t,resolveComponent:l,titleCallback:s,onHeadUpdate:P?g=>u=g:null}}));if(!P&&a&&Be(a),P){let t=await d(Ve("div",{id:r,"data-page":JSON.stringify(m)},o));return{head:u,body:t}}}import{useEffect as Pe,useMemo as Ne,useState as je}from"react";import{useContext as Ue}from"react";function J(){let r=Ue(V);if(!r)throw new Error("usePage must be used within the Inertia component");return r}var he=r=>(r=new URL(r.href),r.hash="",r),$e=(r,e)=>he(r).href===he(e).href,Fe=({children:r,data:e,fallback:i})=>{if(!e)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[s,a]=je(!1),f=J().props,d=Ne(()=>Array.isArray(e)?e:[e],[e]);return Pe(()=>{let P=Se.on("start",c=>{let m=c.detail.visit.only.length>0||c.detail.visit.except.length>0,l=c.detail.visit.only.find(u=>d.includes(u));$e(c.detail.visit.url,window.location)&&(!m||l)&&a(!1)});return()=>{P()}},[]),Pe(()=>{a(d.every(P=>f[P]!==void 0))},[f,d]),s?r:i};Fe.displayName="InertiaDeferred";var We=Fe;import Te,{useContext as _e,useEffect as qe,useMemo as Je}from"react";var ze=function({children:r,title:e}){let i=_e(B),s=Je(()=>i.createProvider(),[i]),a=typeof window>"u";qe(()=>(s.reconnect(),s.update(u(r)),()=>{s.disconnect()}),[s,r,e]);function f(o){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(o.type)>-1}function d(o){let t=Object.keys(o.props).reduce((g,F)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(F))return g;let b=o.props[F];return b===""?g+` ${F}`:g+` ${F}="${b}"`},"");return`<${o.type}${t}>`}function P(o){return typeof o.props.children=="string"?o.props.children:o.props.children.reduce((t,g)=>t+c(g),"")}function c(o){let t=d(o);return o.props.children&&(t+=P(o)),o.props.dangerouslySetInnerHTML&&(t+=o.props.dangerouslySetInnerHTML.__html),f(o)||(t+=`</${o.type}>`),t}function m(o){return Te.cloneElement(o,{inertia:o.props["head-key"]!==void 0?o.props["head-key"]:""})}function l(o){return c(m(o))}function u(o){let t=Te.Children.toArray(o).filter(g=>g).map(g=>l(g));return e&&!t.find(g=>g.startsWith("<title"))&&t.push(`<title inertia>${e}</title>`),t}return a&&s.update(u(r)),null},Qe=ze;import{mergeDataIntoQueryString as Ye,router as se,shouldIntercept as ae}from"@inertiajs/core";import{createElement as Ge,forwardRef as Xe,useEffect as ve,useMemo as be,useRef as Ze,useState as et}from"react";var x=()=>{},Ce=Xe(({children:r,as:e="a",data:i={},href:s,method:a="get",preserveScroll:f=!1,preserveState:d=null,replace:P=!1,only:c=[],except:m=[],headers:l={},queryStringArrayFormat:u="brackets",async:o=!1,onClick:t=x,onCancelToken:g=x,onBefore:F=x,onStart:b=x,onProgress:E=x,onFinish:Y=x,onCancel:j=x,onSuccess:G=x,onError:M=x,prefetch:T=!1,cacheFor:k=0,...R},X)=>{let[$,L]=et(0),H=Ze(null);e=e.toLowerCase(),a=typeof s=="object"?s.method:a.toLowerCase();let[Z,ee]=Ye(a,typeof s=="object"?s.url:s||"",i,u),w=Z;i=ee;let A={data:i,method:a,preserveScroll:f,preserveState:d??a!=="get",replace:P,only:c,except:m,headers:l,async:o},W={...A,onCancelToken:g,onBefore:F,onStart(p){L(y=>y+1),b(p)},onProgress:E,onFinish(p){L(y=>y-1),Y(p)},onCancel:j,onSuccess:G,onError:M},K=()=>{se.prefetch(w,A,{cacheFor:te})},D=be(()=>T===!0?["hover"]:T===!1?[]:Array.isArray(T)?T:[T],Array.isArray(T)?T:[T]),te=be(()=>k!==0?k:D.length===1&&D[0]==="click"?0:3e4,[k,D]);ve(()=>()=>{clearTimeout(H.current)},[]),ve(()=>{D.includes("mount")&&setTimeout(()=>K())},D);let _={onClick:p=>{t(p),ae(p)&&(p.preventDefault(),se.visit(w,W))}},re={onMouseEnter:()=>{H.current=window.setTimeout(()=>{K()},75)},onMouseLeave:()=>{clearTimeout(H.current)},onClick:_.onClick},oe={onMouseDown:p=>{ae(p)&&(p.preventDefault(),K())},onMouseUp:p=>{p.preventDefault(),se.visit(w,W)},onClick:p=>{t(p),ae(p)&&p.preventDefault()}};return a!=="get"&&(e="button"),Ge(e,{...R,...{a:{href:w},button:{type:"button"}}[e]||{},ref:X,...D.includes("hover")?re:D.includes("click")?oe:_,"data-loading":$>0?"":void 0},r)});Ce.displayName="InertiaLink";var tt=Ce;import{router as De}from"@inertiajs/core";import{cloneDeep as z,isEqual as nt}from"es-toolkit";import{get as st,has as at,set as ie}from"es-toolkit/compat";import{useCallback as v,useEffect as it,useLayoutEffect as pt,useMemo as ut,useRef as Q,useState as I}from"react";import{router as Re}from"@inertiajs/core";import{useEffect as rt,useState as ot}from"react";function U(r,e){let[i,s]=ot(()=>{let a=Re.restore(e);return a!==void 0?a:r});return rt(()=>{Re.remember(i,e)},[i,e]),[i,s]}function xe(r,e){let i=Q(null),s=typeof r=="string"?r:null,[a,f]=I((typeof r=="string"?e:r)||{}),d=Q(null),P=Q(null),[c,m]=s?U(a,`${s}:data`):I(a),[l,u]=s?U({},`${s}:errors`):I({}),[o,t]=I(!1),[g,F]=I(!1),[b,E]=I(null),[Y,j]=I(!1),[G,M]=I(!1),T=Q(n=>n),k=ut(()=>!nt(c,a),[c,a]);it(()=>(i.current=!0,()=>{i.current=!1}),[]);let R=v((...n)=>{let p=typeof n[0]=="object",y=p?n[0].method:n[0],C=p?n[0].url:n[1],h=(p?n[1]:n[2])??{},ce={...h,onCancelToken:S=>{if(d.current=S,h.onCancelToken)return h.onCancelToken(S)},onBefore:S=>{if(j(!1),M(!1),clearTimeout(P.current),h.onBefore)return h.onBefore(S)},onStart:S=>{if(F(!0),h.onStart)return h.onStart(S)},onProgress:S=>{if(E(S),h.onProgress)return h.onProgress(S)},onSuccess:S=>{if(i.current&&(F(!1),E(null),u({}),t(!1),j(!0),M(!0),f(z(c)),P.current=setTimeout(()=>{i.current&&M(!1)},2e3)),h.onSuccess)return h.onSuccess(S)},onError:S=>{if(i.current&&(F(!1),E(null),u(S),t(!0)),h.onError)return h.onError(S)},onCancel:()=>{if(i.current&&(F(!1),E(null)),h.onCancel)return h.onCancel()},onFinish:S=>{if(i.current&&(F(!1),E(null)),d.current=null,h.onFinish)return h.onFinish(S)}};y==="delete"?De.delete(C,{...ce,data:T.current(c)}):De[y](C,T.current(c),ce)},[c,u,T]),X=v((n,p)=>{m(typeof n=="string"?y=>ie(z(y),n,p):typeof n=="function"?y=>n(y):n)},[m]),[$,L]=I(!1),H=v((n,p)=>{typeof n>"u"?(f(c),L(!0)):f(y=>typeof n=="string"?ie(z(y),n,p):Object.assign(z(y),n))},[c,f]);pt(()=>{$&&(k&&f(c),L(!1))},[$]);let Z=v((...n)=>{n.length===0?m(a):m(p=>n.filter(y=>at(a,y)).reduce((y,C)=>ie(y,C,st(a,C)),{...p}))},[m,a]),ee=v((n,p)=>{u(y=>{let C={...y,...typeof n=="string"?{[n]:p}:n};return t(Object.keys(C).length>0),C})},[u,t]),w=v((...n)=>{u(p=>{let y=Object.keys(p).reduce((C,h)=>({...C,...n.length>0&&!n.includes(h)?{[h]:p[h]}:{}}),{});return t(Object.keys(y).length>0),y})},[u,t]),A=n=>(p,y)=>{R(n,p,y)},W=v(A("get"),[R]),K=v(A("post"),[R]),D=v(A("put"),[R]),te=v(A("patch"),[R]),_=v(A("delete"),[R]),re=v(()=>{d.current&&d.current.cancel()},[]),oe=v(n=>{T.current=n},[]);return{data:c,setData:X,isDirty:k,errors:l,hasErrors:o,processing:g,progress:b,wasSuccessful:Y,recentlySuccessful:G,transform:oe,setDefaults:H,reset:Z,setError:ee,clearErrors:w,submit:R,get:W,post:K,put:D,patch:te,delete:_,cancel:re}}import{router as ct}from"@inertiajs/core";import{useEffect as lt,useRef as dt}from"react";function Ie(r,e={},i={keepAlive:!1,autoStart:!0}){let s=dt(ct.poll(r,e,{...i,autoStart:!1}));return lt(()=>((i.autoStart??!0)&&s.current.start(),()=>s.current.stop()),[]),{stop:s.current.stop,start:s.current.start}}import{router as N}from"@inertiajs/core";import{useEffect as ft,useState as pe}from"react";function Ae(r={}){let e=typeof window>"u"?null:N.getCached(window.location.pathname,r),i=typeof window>"u"?null:N.getPrefetching(window.location.pathname,r),[s,a]=pe(e?.staleTimestamp||null),[f,d]=pe(i!==null),[P,c]=pe(e!==null);return ft(()=>{let m=N.on("prefetching",u=>{u.detail.visit.url.pathname===window.location.pathname&&d(!0)}),l=N.on("prefetched",u=>{u.detail.visit.url.pathname===window.location.pathname&&(d(!1),c(!0),a(u.detail.fetchedAt))});return()=>{l(),m()}},[]),{lastUpdatedAt:s,isPrefetching:f,isPrefetched:P,flush:()=>N.flush(window.location.pathname,r)}}import{router as mt}from"@inertiajs/core";import{createElement as gt,useCallback as yt,useEffect as Pt,useRef as ue,useState as ht}from"react";var Ee=({children:r,data:e,params:i,buffer:s,as:a,always:f,fallback:d})=>{f=f??!1,a=a??"div",d=d??null;let[P,c]=ht(!1),m=ue(!1),l=ue(!1),u=ue(null),o=yt(()=>{if(e)return{only:Array.isArray(e)?e:[e]};if(!i)throw new Error("You must provide either a `data` or `params` prop.");return i},[i,e]);return Pt(()=>{if(!u.current)return;let t=new IntersectionObserver(g=>{if(!g[0].isIntersecting||(!f&&m.current&&t.disconnect(),l.current))return;m.current=!0,l.current=!0;let F=o();mt.reload({...F,onStart:b=>{l.current=!0,F.onStart?.(b)},onFinish:b=>{c(!0),l.current=!1,F.onFinish?.(b),f||t.disconnect()}})},{rootMargin:`${s||0}px`});return t.observe(u.current),()=>{t.disconnect()}},[u,o,s]),f||!P?gt(a,{props:null,ref:u},P?r:d):P?r:null};Ee.displayName="InertiaWhenVisible";var Ft=Ee;var Se=St;export{We as Deferred,Qe as Head,tt as Link,Ft as WhenVisible,ye as createInertiaApp,Se as router,xe as useForm,J as usePage,Ie as usePoll,Ae as usePrefetch,U as useRemember};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.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, SetDataByObject, SetDataByMethod, SetDataByKeyValuePair, SetDataAction, 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, PageHandler, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nlet currentIsInitialPage = true\nlet routerIsInitialized = false\nlet swapComponent: PageHandler = async () => {\n // Dummy function so we can init the router outside of the useEffect hook. This is\n // needed so `router.reload()` works right away (on mount) in any of the user's\n // components. We swap in the real function in the useEffect hook below.\n currentIsInitialPage = false\n}\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 if (!routerIsInitialized) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args) => swapComponent(args),\n })\n\n routerIsInitialized = true\n }\n\n useEffect(() => {\n swapComponent = async ({ component, page, preserveState }) => {\n if (currentIsInitialPage) {\n // We block setting the current page on the initial page to\n // prevent the initial page from being re-rendered again.\n currentIsInitialPage = false\n return\n }\n\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\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\nconst urlWithoutHash = (url: URL | Location): URL => {\n url = new URL(url.href)\n url.hash = ''\n\n return url\n}\n\nconst isSameUrlWithoutHash = (url1: URL | Location, url2: URL | Location): boolean => {\n return urlWithoutHash(url1).href === urlWithoutHash(url2).href\n}\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 const isPartialVisit = e.detail.visit.only.length > 0 || e.detail.visit.except.length > 0\n const isReloadingKey = e.detail.visit.only.find((key) => keys.includes(key))\n\n if (isSameUrlWithoutHash(e.detail.visit.url, window.location) && (!isPartialVisit || isReloadingKey)) {\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 provider.reconnect()\n provider.update(renderNodes(children))\n return () => {\n provider.disconnect()\n }\n }, [provider, children, title])\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 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, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\nexport type SetDataByObject<TForm> = (data: TForm) => void\nexport type SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\nexport type SetDataByKeyValuePair<TForm extends Record<any, any>> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void\nexport type SetDataAction<TForm> = SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>\n\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: SetDataAction<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 const isDirty = useMemo(() => !isEqual(data, defaults), [data, defaults])\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 [dataAsDefaults, setDataAsDefaults] = useState(false)\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(data)\n // If setData was called right before setDefaults, data was not\n // updated in that render yet, so we set a flag to update\n // defaults right after the next render.\n setDataAsDefaults(true)\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 useLayoutEffect(() => {\n if (!dataAsDefaults) {\n return\n }\n\n if (isDirty) {\n // Data has been updated in this next render and is different from\n // the defaults, so now we can set defaults to the current data.\n setDefaults(data)\n }\n\n setDataAsDefaults(false)\n }, [dataAsDefaults])\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,\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", "currentIsInitialPage", "routerIsInitialized", "swapComponent", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "useState", "headManager", "useMemo", "createHeadManager", "title", "router", "args", "useEffect", "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", "urlWithoutHash", "url", "isSameUrlWithoutHash", "url1", "url2", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "useState", "pageProps", "usePage", "keys", "useMemo", "useEffect", "removeListener", "router", "e", "isPartialVisit", "isReloadingKey", "key", "Deferred_default", "React", "useContext", "useEffect", "useMemo", "Head", "children", "title", "headManager", "useContext", "HeadContext_default", "provider", "useMemo", "useEffect", "renderNodes", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "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", "useLayoutEffect", "useMemo", "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", "isDirty", "useMemo", "isEqual", "useEffect", "submit", "useCallback", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "cloneDeep", "router", "setDataFunction", "keyOrData", "maybeValue", "set", "dataAsDefaults", "setDataAsDefaults", "setDefaultsFunction", "fieldOrFields", "useLayoutEffect", "reset", "fields", "key", "has", "carry", "get", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "getMethod", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "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, SetDataByObject, SetDataByMethod, SetDataByKeyValuePair, SetDataAction, 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, PageHandler, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nlet currentIsInitialPage = true\nlet routerIsInitialized = false\nlet swapComponent: PageHandler = async () => {\n // Dummy function so we can init the router outside of the useEffect hook. This is\n // needed so `router.reload()` works right away (on mount) in any of the user's\n // components. We swap in the real function in the useEffect hook below.\n currentIsInitialPage = false\n}\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 if (!routerIsInitialized) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args) => swapComponent(args),\n })\n\n routerIsInitialized = true\n }\n\n useEffect(() => {\n swapComponent = async ({ component, page, preserveState }) => {\n if (currentIsInitialPage) {\n // We block setting the current page on the initial page to\n // prevent the initial page from being re-rendered again.\n currentIsInitialPage = false\n return\n }\n\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\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\nconst urlWithoutHash = (url: URL | Location): URL => {\n url = new URL(url.href)\n url.hash = ''\n\n return url\n}\n\nconst isSameUrlWithoutHash = (url1: URL | Location, url2: URL | Location): boolean => {\n return urlWithoutHash(url1).href === urlWithoutHash(url2).href\n}\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 const isPartialVisit = e.detail.visit.only.length > 0 || e.detail.visit.except.length > 0\n const isReloadingKey = e.detail.visit.only.find((key) => keys.includes(key))\n\n if (isSameUrlWithoutHash(e.detail.visit.url, window.location) && (!isPartialVisit || isReloadingKey)) {\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 const isServer = typeof window === 'undefined'\n\n useEffect(() => {\n provider.reconnect()\n provider.update(renderNodes(children))\n return () => {\n provider.disconnect()\n }\n }, [provider, children, title])\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 if (isServer) {\n provider.update(renderNodes(children))\n }\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, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\nexport type SetDataByObject<TForm> = (data: TForm) => void\nexport type SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\nexport type SetDataByKeyValuePair<TForm extends Record<any, any>> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void\nexport type SetDataAction<TForm extends Record<any, any>> = SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>\n\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: SetDataAction<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 const isDirty = useMemo(() => !isEqual(data, defaults), [data, defaults])\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 [dataAsDefaults, setDataAsDefaults] = useState(false)\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(data)\n // If setData was called right before setDefaults, data was not\n // updated in that render yet, so we set a flag to update\n // defaults right after the next render.\n setDataAsDefaults(true)\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 useLayoutEffect(() => {\n if (!dataAsDefaults) {\n return\n }\n\n if (isDirty) {\n // Data has been updated in this next render and is different from\n // the defaults, so now we can set defaults to the current data.\n setDefaults(data)\n }\n\n setDataAsDefaults(false)\n }, [dataAsDefaults])\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,\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", "currentIsInitialPage", "routerIsInitialized", "swapComponent", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "useState", "headManager", "useMemo", "createHeadManager", "title", "router", "args", "useEffect", "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", "urlWithoutHash", "url", "isSameUrlWithoutHash", "url1", "url2", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "useState", "pageProps", "usePage", "keys", "useMemo", "useEffect", "removeListener", "router", "e", "isPartialVisit", "isReloadingKey", "key", "Deferred_default", "React", "useContext", "useEffect", "useMemo", "Head", "children", "title", "headManager", "useContext", "HeadContext_default", "provider", "useMemo", "isServer", "useEffect", "renderNodes", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "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", "useLayoutEffect", "useMemo", "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", "isDirty", "useMemo", "isEqual", "useEffect", "submit", "useCallback", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "cloneDeep", "router", "setDataFunction", "keyOrData", "maybeValue", "set", "dataAsDefaults", "setDataAsDefaults", "setDefaultsFunction", "fieldOrFields", "useLayoutEffect", "reset", "fields", "key", "has", "carry", "get", "setError", "newErrors", "clearErrors", "field", "createSubmitMethod", "getMethod", "post", "put", "patch", "deleteMethod", "cancel", "transformFunction", "callback", "router", "useEffect", "useRef", "usePoll", "interval", "requestOptions", "options", "pollRef", "router", "useEffect", "useState", "usePrefetch", "options", "cached", "inFlight", "lastUpdatedAt", "setLastUpdatedAt", "isPrefetching", "setIsPrefetching", "isPrefetched", "setIsPrefetched", "onPrefetchingListener", "e", "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 $e=Object.create;var te=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var qe=Object.getPrototypeOf,Je=Object.prototype.hasOwnProperty;var ze=(t,r)=>{for(var o in r)te(t,o,{get:r[o],enumerable:!0})},be=(t,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of _e(r))!Je.call(t,n)&&n!==o&&te(t,n,{get:()=>r[n],enumerable:!(a=We(r,n))||a.enumerable});return t};var Qe=(t,r,o)=>(o=t!=null?$e(qe(t)):{},be(r||!t||!t.__esModule?te(o,"default",{value:t,enumerable:!0}):o,t)),Ye=t=>be(te({},"__esModule",{value:!0}),t);var Ze={};ze(Ze,{Deferred:()=>Me,Head:()=>Le,Link:()=>Ke,WhenVisible:()=>Ne,createInertiaApp:()=>ge,router:()=>Pe,useForm:()=>Fe,usePage:()=>Y,usePoll:()=>Se,usePrefetch:()=>Te,useRemember:()=>U});module.exports=Ye(Ze);var je=require("@inertiajs/core");var oe=require("@inertiajs/core"),Ee=require("react");var Q=require("@inertiajs/core"),C=require("react");var Ce=require("react"),De=(0,Ce.createContext)(void 0);De.displayName="InertiaHeadContext";var J=De;var Re=require("react"),xe=(0,Re.createContext)(void 0);xe.displayName="InertiaPageContext";var z=xe;var me=!0,Ie=!1,Ae=async()=>{me=!1};function re({children:t,initialPage:r,initialComponent:o,resolveComponent:a,titleCallback:n,onHeadUpdate:m}){let[d,g]=(0,C.useState)({component:o||null,page:r,key:null}),c=(0,C.useMemo)(()=>(0,Q.createHeadManager)(typeof window>"u",n||(l=>l),m||(()=>{})),[]);if(Ie||(Q.router.init({initialPage:r,resolveComponent:a,swapComponent:async l=>Ae(l)}),Ie=!0),(0,C.useEffect)(()=>{Ae=async({component:l,page:e,preserveState:f})=>{if(me){me=!1;return}g(s=>({component:l,page:e,key:f?s.key:Date.now()}))},Q.router.on("navigate",()=>c.forceUpdate())},[]),!d.component)return(0,C.createElement)(J.Provider,{value:c},(0,C.createElement)(z.Provider,{value:d.page},null));let P=t||(({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((F,S)=>(0,C.createElement)(S,{children:F,...e})):s});return(0,C.createElement)(J.Provider,{value:c},(0,C.createElement)(z.Provider,{value:d.page},P({Component:d.component,key:d.key,props:d.page.props})))}re.displayName="Inertia";async function ge({id:t="app",resolve:r,setup:o,title:a,progress:n={},page:m,render:d}){let g=typeof window>"u",c=g?null:document.getElementById(t),P=m||JSON.parse(c.dataset.page),l=s=>Promise.resolve(r(s)).then(F=>F.default||F),e=[],f=await Promise.all([l(P.component),oe.router.decryptHistory().catch(()=>{})]).then(([s])=>o({el:c,App:re,props:{initialPage:P,initialComponent:s,resolveComponent:l,titleCallback:a,onHeadUpdate:g?F=>e=F:null}}));if(!g&&n&&(0,oe.setupProgress)(n),g){let s=await d((0,Ee.createElement)("div",{id:t,"data-page":JSON.stringify(P)},f));return{head:e,body:s}}}var H=require("react");var ke=require("react");function Y(){let t=(0,ke.useContext)(z);if(!t)throw new Error("usePage must be used within the Inertia component");return t}var we=t=>(t=new URL(t.href),t.hash="",t),Ge=(t,r)=>we(t).href===we(r).href,Oe=({children:t,data:r,fallback:o})=>{if(!r)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[a,n]=(0,H.useState)(!1),m=Y().props,d=(0,H.useMemo)(()=>Array.isArray(r)?r:[r],[r]);return(0,H.useEffect)(()=>{let g=Pe.on("start",c=>{let P=c.detail.visit.only.length>0||c.detail.visit.except.length>0,l=c.detail.visit.only.find(e=>d.includes(e));Ge(c.detail.visit.url,window.location)&&(!P||l)&&n(!1)});return()=>{g()}},[]),(0,H.useEffect)(()=>{n(d.every(g=>m[g]!==void 0))},[m,d]),a?t:o};Oe.displayName="InertiaDeferred";var Me=Oe;var E=Qe(require("react"),1);var Xe=function({children:t,title:r}){let o=(0,E.useContext)(J),a=(0,E.useMemo)(()=>o.createProvider(),[o]);(0,E.useEffect)(()=>(a.reconnect(),a.update(l(t)),()=>{a.disconnect()}),[a,t,r]);function n(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1}function m(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 d(e){return typeof e.props.children=="string"?e.props.children:e.props.children.reduce((f,s)=>f+g(s),"")}function g(e){let f=m(e);return e.props.children&&(f+=d(e)),e.props.dangerouslySetInnerHTML&&(f+=e.props.dangerouslySetInnerHTML.__html),n(e)||(f+=`</${e.type}>`),f}function c(e){return E.default.cloneElement(e,{inertia:e.props["head-key"]!==void 0?e.props["head-key"]:""})}function P(e){return g(c(e))}function l(e){let f=E.default.Children.toArray(e).filter(s=>s).map(s=>P(s));return r&&!f.find(s=>s.startsWith("<title"))&&f.push(`<title inertia>${r}</title>`),f}return null},Le=Xe;var x=require("@inertiajs/core"),v=require("react"),k=()=>{},He=(0,v.forwardRef)(({children:t,as:r="a",data:o={},href:a,method:n="get",preserveScroll:m=!1,preserveState:d=null,replace:g=!1,only:c=[],except:P=[],headers:l={},queryStringArrayFormat:e="brackets",async:f=!1,onClick:s=k,onCancelToken:F=k,onBefore:S=k,onStart:M=k,onProgress:L=k,onFinish:ae=k,onCancel:G=k,onSuccess:ie=k,onError:$=k,prefetch:b=!1,cacheFor:B=0,...I},pe)=>{let[X,W]=(0,v.useState)(0),_=(0,v.useRef)(null);r=r.toLowerCase(),n=typeof a=="object"?a.method:n.toLowerCase();let[ue,ce]=(0,x.mergeDataIntoQueryString)(n,typeof a=="object"?a.url:a||"",o,e),V=ue;o=ce;let w={data:o,method:n,preserveScroll:m,preserveState:d??n!=="get",replace:g,only:c,except:P,headers:l,async:f},Z={...w,onCancelToken:F,onBefore:S,onStart(u){W(y=>y+1),M(u)},onProgress:L,onFinish(u){W(y=>y-1),ae(u)},onCancel:G,onSuccess:ie,onError:$},q=()=>{x.router.prefetch(V,w,{cacheFor:le})},A=(0,v.useMemo)(()=>b===!0?["hover"]:b===!1?[]:Array.isArray(b)?b:[b],Array.isArray(b)?b:[b]),le=(0,v.useMemo)(()=>B!==0?B:A.length===1&&A[0]==="click"?0:3e4,[B,A]);(0,v.useEffect)(()=>()=>{clearTimeout(_.current)},[]),(0,v.useEffect)(()=>{A.includes("mount")&&setTimeout(()=>q())},A);let ee={onClick:u=>{s(u),(0,x.shouldIntercept)(u)&&(u.preventDefault(),x.router.visit(V,Z))}},de={onMouseEnter:()=>{_.current=window.setTimeout(()=>{q()},75)},onMouseLeave:()=>{clearTimeout(_.current)},onClick:ee.onClick},fe={onMouseDown:u=>{(0,x.shouldIntercept)(u)&&(u.preventDefault(),q())},onMouseUp:u=>{u.preventDefault(),x.router.visit(V,Z)},onClick:u=>{s(u),(0,x.shouldIntercept)(u)&&u.preventDefault()}};return n!=="get"&&(r="button"),(0,v.createElement)(r,{...I,...{a:{href:V},button:{type:"button"}}[r]||{},ref:pe,...A.includes("hover")?de:A.includes("click")?fe:ee,"data-loading":X>0?"":void 0},t)});He.displayName="InertiaLink";var Ke=He;var he=require("@inertiajs/core"),K=require("es-toolkit"),O=require("es-toolkit/compat"),p=require("react");var ye=require("@inertiajs/core"),ne=require("react");function U(t,r){let[o,a]=(0,ne.useState)(()=>{let n=ye.router.restore(r);return n!==void 0?n:t});return(0,ne.useEffect)(()=>{ye.router.remember(o,r)},[o,r]),[o,a]}function Fe(t,r){let o=(0,p.useRef)(null),a=typeof t=="string"?t:null,[n,m]=(0,p.useState)((typeof t=="string"?r:t)||{}),d=(0,p.useRef)(null),g=(0,p.useRef)(null),[c,P]=a?U(n,`${a}:data`):(0,p.useState)(n),[l,e]=a?U({},`${a}:errors`):(0,p.useState)({}),[f,s]=(0,p.useState)(!1),[F,S]=(0,p.useState)(!1),[M,L]=(0,p.useState)(null),[ae,G]=(0,p.useState)(!1),[ie,$]=(0,p.useState)(!1),b=(0,p.useRef)(i=>i),B=(0,p.useMemo)(()=>!(0,K.isEqual)(c,n),[c,n]);(0,p.useEffect)(()=>(o.current=!0,()=>{o.current=!1}),[]);let I=(0,p.useCallback)((...i)=>{let u=typeof i[0]=="object",y=u?i[0].method:i[0],R=u?i[0].url:i[1],h=(u?i[1]:i[2])??{},ve={...h,onCancelToken:T=>{if(d.current=T,h.onCancelToken)return h.onCancelToken(T)},onBefore:T=>{if(G(!1),$(!1),clearTimeout(g.current),h.onBefore)return h.onBefore(T)},onStart:T=>{if(S(!0),h.onStart)return h.onStart(T)},onProgress:T=>{if(L(T),h.onProgress)return h.onProgress(T)},onSuccess:T=>{if(o.current&&(S(!1),L(null),e({}),s(!1),G(!0),$(!0),m((0,K.cloneDeep)(c)),g.current=setTimeout(()=>{o.current&&$(!1)},2e3)),h.onSuccess)return h.onSuccess(T)},onError:T=>{if(o.current&&(S(!1),L(null),e(T),s(!0)),h.onError)return h.onError(T)},onCancel:()=>{if(o.current&&(S(!1),L(null)),h.onCancel)return h.onCancel()},onFinish:T=>{if(o.current&&(S(!1),L(null)),d.current=null,h.onFinish)return h.onFinish(T)}};y==="delete"?he.router.delete(R,{...ve,data:b.current(c)}):he.router[y](R,b.current(c),ve)},[c,e,b]),pe=(0,p.useCallback)((i,u)=>{P(typeof i=="string"?y=>(0,O.set)((0,K.cloneDeep)(y),i,u):typeof i=="function"?y=>i(y):i)},[P]),[X,W]=(0,p.useState)(!1),_=(0,p.useCallback)((i,u)=>{typeof i>"u"?(m(c),W(!0)):m(y=>typeof i=="string"?(0,O.set)((0,K.cloneDeep)(y),i,u):Object.assign((0,K.cloneDeep)(y),i))},[c,m]);(0,p.useLayoutEffect)(()=>{X&&(B&&m(c),W(!1))},[X]);let ue=(0,p.useCallback)((...i)=>{i.length===0?P(n):P(u=>i.filter(y=>(0,O.has)(n,y)).reduce((y,R)=>(0,O.set)(y,R,(0,O.get)(n,R)),{...u}))},[P,n]),ce=(0,p.useCallback)((i,u)=>{e(y=>{let R={...y,...typeof i=="string"?{[i]:u}:i};return s(Object.keys(R).length>0),R})},[e,s]),V=(0,p.useCallback)((...i)=>{e(u=>{let y=Object.keys(u).reduce((R,h)=>({...R,...i.length>0&&!i.includes(h)?{[h]:u[h]}:{}}),{});return s(Object.keys(y).length>0),y})},[e,s]),w=i=>(u,y)=>{I(i,u,y)},Z=(0,p.useCallback)(w("get"),[I]),q=(0,p.useCallback)(w("post"),[I]),A=(0,p.useCallback)(w("put"),[I]),le=(0,p.useCallback)(w("patch"),[I]),ee=(0,p.useCallback)(w("delete"),[I]),de=(0,p.useCallback)(()=>{d.current&&d.current.cancel()},[]),fe=(0,p.useCallback)(i=>{b.current=i},[]);return{data:c,setData:pe,isDirty:B,errors:l,hasErrors:f,processing:F,progress:M,wasSuccessful:ae,recentlySuccessful:ie,transform:fe,setDefaults:_,reset:ue,setError:ce,clearErrors:V,submit:I,get:Z,post:q,put:A,patch:le,delete:ee,cancel:de}}var Be=require("@inertiajs/core"),se=require("react");function Se(t,r={},o={keepAlive:!1,autoStart:!0}){let a=(0,se.useRef)(Be.router.poll(t,r,{...o,autoStart:!1}));return(0,se.useEffect)(()=>((o.autoStart??!0)&&a.current.start(),()=>a.current.stop()),[]),{stop:a.current.stop,start:a.current.start}}var N=require("@inertiajs/core"),j=require("react");function Te(t={}){let r=typeof window>"u"?null:N.router.getCached(window.location.pathname,t),o=typeof window>"u"?null:N.router.getPrefetching(window.location.pathname,t),[a,n]=(0,j.useState)(r?.staleTimestamp||null),[m,d]=(0,j.useState)(o!==null),[g,c]=(0,j.useState)(r!==null);return(0,j.useEffect)(()=>{let P=N.router.on("prefetching",e=>{e.detail.visit.url.pathname===window.location.pathname&&d(!0)}),l=N.router.on("prefetched",e=>{e.detail.visit.url.pathname===window.location.pathname&&(d(!1),c(!0),n(e.detail.fetchedAt))});return()=>{l(),P()}},[]),{lastUpdatedAt:a,isPrefetching:m,isPrefetched:g,flush:()=>N.router.flush(window.location.pathname,t)}}var Ve=require("@inertiajs/core"),D=require("react"),Ue=({children:t,data:r,params:o,buffer:a,as:n,always:m,fallback:d})=>{m=m??!1,n=n??"div",d=d??null;let[g,c]=(0,D.useState)(!1),P=(0,D.useRef)(!1),l=(0,D.useRef)(!1),e=(0,D.useRef)(null),f=(0,D.useCallback)(()=>{if(r)return{only:Array.isArray(r)?r:[r]};if(!o)throw new Error("You must provide either a `data` or `params` prop.");return o},[o,r]);return(0,D.useEffect)(()=>{if(!e.current)return;let s=new IntersectionObserver(F=>{if(!F[0].isIntersecting||(!m&&P.current&&s.disconnect(),l.current))return;P.current=!0,l.current=!0;let S=f();Ve.router.reload({...S,onStart:M=>{l.current=!0,S.onStart?.(M)},onFinish:M=>{c(!0),l.current=!1,S.onFinish?.(M),m||s.disconnect()}})},{rootMargin:`${a||0}px`});return s.observe(e.current),()=>{s.disconnect()}},[e,f,a]),m||!g?(0,D.createElement)(n,{props:null,ref:e},g?t:d):g?t:null};Ue.displayName="InertiaWhenVisible";var Ne=Ue;var Pe=je.router;
|
|
1
|
+
var $e=Object.create;var te=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var qe=Object.getPrototypeOf,Je=Object.prototype.hasOwnProperty;var ze=(e,t)=>{for(var r in t)te(e,r,{get:t[r],enumerable:!0})},be=(e,t,r,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _e(t))!Je.call(e,o)&&o!==r&&te(e,o,{get:()=>t[o],enumerable:!(a=We(t,o))||a.enumerable});return e};var Qe=(e,t,r)=>(r=e!=null?$e(qe(e)):{},be(t||!e||!e.__esModule?te(r,"default",{value:e,enumerable:!0}):r,e)),Ye=e=>be(te({},"__esModule",{value:!0}),e);var Ze={};ze(Ze,{Deferred:()=>Me,Head:()=>Le,Link:()=>Ke,WhenVisible:()=>Ne,createInertiaApp:()=>ge,router:()=>ye,useForm:()=>Fe,usePage:()=>Y,usePoll:()=>Se,usePrefetch:()=>Te,useRemember:()=>U});module.exports=Ye(Ze);var je=require("@inertiajs/core");var oe=require("@inertiajs/core"),Ee=require("react");var Q=require("@inertiajs/core"),C=require("react");var Ce=require("react"),Re=(0,Ce.createContext)(void 0);Re.displayName="InertiaHeadContext";var J=Re;var De=require("react"),xe=(0,De.createContext)(void 0);xe.displayName="InertiaPageContext";var z=xe;var me=!0,Ie=!1,Ae=async()=>{me=!1};function re({children:e,initialPage:t,initialComponent:r,resolveComponent:a,titleCallback:o,onHeadUpdate:m}){let[f,h]=(0,C.useState)({component:r||null,page:t,key:null}),l=(0,C.useMemo)(()=>(0,Q.createHeadManager)(typeof window>"u",o||(d=>d),m||(()=>{})),[]);if(Ie||(Q.router.init({initialPage:t,resolveComponent:a,swapComponent:async d=>Ae(d)}),Ie=!0),(0,C.useEffect)(()=>{Ae=async({component:d,page:c,preserveState:s})=>{if(me){me=!1;return}h(n=>({component:d,page:c,key:s?n.key:Date.now()}))},Q.router.on("navigate",()=>l.forceUpdate())},[]),!f.component)return(0,C.createElement)(J.Provider,{value:l},(0,C.createElement)(z.Provider,{value:f.page},null));let g=e||(({Component:d,props:c,key:s})=>{let n=(0,C.createElement)(d,{key:s,...c});return typeof d.layout=="function"?d.layout(n):Array.isArray(d.layout)?d.layout.concat(n).reverse().reduce((y,S)=>(0,C.createElement)(S,{children:y,...c})):n});return(0,C.createElement)(J.Provider,{value:l},(0,C.createElement)(z.Provider,{value:f.page},g({Component:f.component,key:f.key,props:f.page.props})))}re.displayName="Inertia";async function ge({id:e="app",resolve:t,setup:r,title:a,progress:o={},page:m,render:f}){let h=typeof window>"u",l=h?null:document.getElementById(e),g=m||JSON.parse(l.dataset.page),d=n=>Promise.resolve(t(n)).then(y=>y.default||y),c=[],s=await Promise.all([d(g.component),oe.router.decryptHistory().catch(()=>{})]).then(([n])=>r({el:l,App:re,props:{initialPage:g,initialComponent:n,resolveComponent:d,titleCallback:a,onHeadUpdate:h?y=>c=y:null}}));if(!h&&o&&(0,oe.setupProgress)(o),h){let n=await f((0,Ee.createElement)("div",{id:e,"data-page":JSON.stringify(g)},s));return{head:c,body:n}}}var H=require("react");var ke=require("react");function Y(){let e=(0,ke.useContext)(z);if(!e)throw new Error("usePage must be used within the Inertia component");return e}var we=e=>(e=new URL(e.href),e.hash="",e),Ge=(e,t)=>we(e).href===we(t).href,Oe=({children:e,data:t,fallback:r})=>{if(!t)throw new Error("`<Deferred>` requires a `data` prop to be a string or array of strings");let[a,o]=(0,H.useState)(!1),m=Y().props,f=(0,H.useMemo)(()=>Array.isArray(t)?t:[t],[t]);return(0,H.useEffect)(()=>{let h=ye.on("start",l=>{let g=l.detail.visit.only.length>0||l.detail.visit.except.length>0,d=l.detail.visit.only.find(c=>f.includes(c));Ge(l.detail.visit.url,window.location)&&(!g||d)&&o(!1)});return()=>{h()}},[]),(0,H.useEffect)(()=>{o(f.every(h=>m[h]!==void 0))},[m,f]),a?e:r};Oe.displayName="InertiaDeferred";var Me=Oe;var k=Qe(require("react"),1);var Xe=function({children:e,title:t}){let r=(0,k.useContext)(J),a=(0,k.useMemo)(()=>r.createProvider(),[r]),o=typeof window>"u";(0,k.useEffect)(()=>(a.reconnect(),a.update(c(e)),()=>{a.disconnect()}),[a,e,t]);function m(s){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(s.type)>-1}function f(s){let n=Object.keys(s.props).reduce((y,S)=>{if(["head-key","children","dangerouslySetInnerHTML"].includes(S))return y;let D=s.props[S];return D===""?y+` ${S}`:y+` ${S}="${D}"`},"");return`<${s.type}${n}>`}function h(s){return typeof s.props.children=="string"?s.props.children:s.props.children.reduce((n,y)=>n+l(y),"")}function l(s){let n=f(s);return s.props.children&&(n+=h(s)),s.props.dangerouslySetInnerHTML&&(n+=s.props.dangerouslySetInnerHTML.__html),m(s)||(n+=`</${s.type}>`),n}function g(s){return k.default.cloneElement(s,{inertia:s.props["head-key"]!==void 0?s.props["head-key"]:""})}function d(s){return l(g(s))}function c(s){let n=k.default.Children.toArray(s).filter(y=>y).map(y=>d(y));return t&&!n.find(y=>y.startsWith("<title"))&&n.push(`<title inertia>${t}</title>`),n}return o&&a.update(c(e)),null},Le=Xe;var I=require("@inertiajs/core"),v=require("react"),w=()=>{},He=(0,v.forwardRef)(({children:e,as:t="a",data:r={},href:a,method:o="get",preserveScroll:m=!1,preserveState:f=null,replace:h=!1,only:l=[],except:g=[],headers:d={},queryStringArrayFormat:c="brackets",async:s=!1,onClick:n=w,onCancelToken:y=w,onBefore:S=w,onStart:D=w,onProgress:L=w,onFinish:ae=w,onCancel:G=w,onSuccess:ie=w,onError:$=w,prefetch:b=!1,cacheFor:B=0,...A},pe)=>{let[X,W]=(0,v.useState)(0),_=(0,v.useRef)(null);t=t.toLowerCase(),o=typeof a=="object"?a.method:o.toLowerCase();let[ue,ce]=(0,I.mergeDataIntoQueryString)(o,typeof a=="object"?a.url:a||"",r,c),V=ue;r=ce;let O={data:r,method:o,preserveScroll:m,preserveState:f??o!=="get",replace:h,only:l,except:g,headers:d,async:s},Z={...O,onCancelToken:y,onBefore:S,onStart(u){W(P=>P+1),D(u)},onProgress:L,onFinish(u){W(P=>P-1),ae(u)},onCancel:G,onSuccess:ie,onError:$},q=()=>{I.router.prefetch(V,O,{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)(()=>B!==0?B:E.length===1&&E[0]==="click"?0:3e4,[B,E]);(0,v.useEffect)(()=>()=>{clearTimeout(_.current)},[]),(0,v.useEffect)(()=>{E.includes("mount")&&setTimeout(()=>q())},E);let ee={onClick:u=>{n(u),(0,I.shouldIntercept)(u)&&(u.preventDefault(),I.router.visit(V,Z))}},de={onMouseEnter:()=>{_.current=window.setTimeout(()=>{q()},75)},onMouseLeave:()=>{clearTimeout(_.current)},onClick:ee.onClick},fe={onMouseDown:u=>{(0,I.shouldIntercept)(u)&&(u.preventDefault(),q())},onMouseUp:u=>{u.preventDefault(),I.router.visit(V,Z)},onClick:u=>{n(u),(0,I.shouldIntercept)(u)&&u.preventDefault()}};return o!=="get"&&(t="button"),(0,v.createElement)(t,{...A,...{a:{href:V},button:{type:"button"}}[t]||{},ref:pe,...E.includes("hover")?de:E.includes("click")?fe:ee,"data-loading":X>0?"":void 0},e)});He.displayName="InertiaLink";var Ke=He;var he=require("@inertiajs/core"),K=require("es-toolkit"),M=require("es-toolkit/compat"),p=require("react");var Pe=require("@inertiajs/core"),ne=require("react");function U(e,t){let[r,a]=(0,ne.useState)(()=>{let o=Pe.router.restore(t);return o!==void 0?o:e});return(0,ne.useEffect)(()=>{Pe.router.remember(r,t)},[r,t]),[r,a]}function Fe(e,t){let r=(0,p.useRef)(null),a=typeof e=="string"?e:null,[o,m]=(0,p.useState)((typeof e=="string"?t:e)||{}),f=(0,p.useRef)(null),h=(0,p.useRef)(null),[l,g]=a?U(o,`${a}:data`):(0,p.useState)(o),[d,c]=a?U({},`${a}:errors`):(0,p.useState)({}),[s,n]=(0,p.useState)(!1),[y,S]=(0,p.useState)(!1),[D,L]=(0,p.useState)(null),[ae,G]=(0,p.useState)(!1),[ie,$]=(0,p.useState)(!1),b=(0,p.useRef)(i=>i),B=(0,p.useMemo)(()=>!(0,K.isEqual)(l,o),[l,o]);(0,p.useEffect)(()=>(r.current=!0,()=>{r.current=!1}),[]);let A=(0,p.useCallback)((...i)=>{let u=typeof i[0]=="object",P=u?i[0].method:i[0],x=u?i[0].url:i[1],F=(u?i[1]:i[2])??{},ve={...F,onCancelToken:T=>{if(f.current=T,F.onCancelToken)return F.onCancelToken(T)},onBefore:T=>{if(G(!1),$(!1),clearTimeout(h.current),F.onBefore)return F.onBefore(T)},onStart:T=>{if(S(!0),F.onStart)return F.onStart(T)},onProgress:T=>{if(L(T),F.onProgress)return F.onProgress(T)},onSuccess:T=>{if(r.current&&(S(!1),L(null),c({}),n(!1),G(!0),$(!0),m((0,K.cloneDeep)(l)),h.current=setTimeout(()=>{r.current&&$(!1)},2e3)),F.onSuccess)return F.onSuccess(T)},onError:T=>{if(r.current&&(S(!1),L(null),c(T),n(!0)),F.onError)return F.onError(T)},onCancel:()=>{if(r.current&&(S(!1),L(null)),F.onCancel)return F.onCancel()},onFinish:T=>{if(r.current&&(S(!1),L(null)),f.current=null,F.onFinish)return F.onFinish(T)}};P==="delete"?he.router.delete(x,{...ve,data:b.current(l)}):he.router[P](x,b.current(l),ve)},[l,c,b]),pe=(0,p.useCallback)((i,u)=>{g(typeof i=="string"?P=>(0,M.set)((0,K.cloneDeep)(P),i,u):typeof i=="function"?P=>i(P):i)},[g]),[X,W]=(0,p.useState)(!1),_=(0,p.useCallback)((i,u)=>{typeof i>"u"?(m(l),W(!0)):m(P=>typeof i=="string"?(0,M.set)((0,K.cloneDeep)(P),i,u):Object.assign((0,K.cloneDeep)(P),i))},[l,m]);(0,p.useLayoutEffect)(()=>{X&&(B&&m(l),W(!1))},[X]);let ue=(0,p.useCallback)((...i)=>{i.length===0?g(o):g(u=>i.filter(P=>(0,M.has)(o,P)).reduce((P,x)=>(0,M.set)(P,x,(0,M.get)(o,x)),{...u}))},[g,o]),ce=(0,p.useCallback)((i,u)=>{c(P=>{let x={...P,...typeof i=="string"?{[i]:u}:i};return n(Object.keys(x).length>0),x})},[c,n]),V=(0,p.useCallback)((...i)=>{c(u=>{let P=Object.keys(u).reduce((x,F)=>({...x,...i.length>0&&!i.includes(F)?{[F]:u[F]}:{}}),{});return n(Object.keys(P).length>0),P})},[c,n]),O=i=>(u,P)=>{A(i,u,P)},Z=(0,p.useCallback)(O("get"),[A]),q=(0,p.useCallback)(O("post"),[A]),E=(0,p.useCallback)(O("put"),[A]),le=(0,p.useCallback)(O("patch"),[A]),ee=(0,p.useCallback)(O("delete"),[A]),de=(0,p.useCallback)(()=>{f.current&&f.current.cancel()},[]),fe=(0,p.useCallback)(i=>{b.current=i},[]);return{data:l,setData:pe,isDirty:B,errors:d,hasErrors:s,processing:y,progress:D,wasSuccessful:ae,recentlySuccessful:ie,transform:fe,setDefaults:_,reset:ue,setError:ce,clearErrors:V,submit:A,get:Z,post:q,put:E,patch:le,delete:ee,cancel:de}}var Be=require("@inertiajs/core"),se=require("react");function Se(e,t={},r={keepAlive:!1,autoStart:!0}){let a=(0,se.useRef)(Be.router.poll(e,t,{...r,autoStart:!1}));return(0,se.useEffect)(()=>((r.autoStart??!0)&&a.current.start(),()=>a.current.stop()),[]),{stop:a.current.stop,start:a.current.start}}var N=require("@inertiajs/core"),j=require("react");function Te(e={}){let t=typeof window>"u"?null:N.router.getCached(window.location.pathname,e),r=typeof window>"u"?null:N.router.getPrefetching(window.location.pathname,e),[a,o]=(0,j.useState)(t?.staleTimestamp||null),[m,f]=(0,j.useState)(r!==null),[h,l]=(0,j.useState)(t!==null);return(0,j.useEffect)(()=>{let g=N.router.on("prefetching",c=>{c.detail.visit.url.pathname===window.location.pathname&&f(!0)}),d=N.router.on("prefetched",c=>{c.detail.visit.url.pathname===window.location.pathname&&(f(!1),l(!0),o(c.detail.fetchedAt))});return()=>{d(),g()}},[]),{lastUpdatedAt:a,isPrefetching:m,isPrefetched:h,flush:()=>N.router.flush(window.location.pathname,e)}}var Ve=require("@inertiajs/core"),R=require("react"),Ue=({children:e,data:t,params:r,buffer:a,as:o,always:m,fallback:f})=>{m=m??!1,o=o??"div",f=f??null;let[h,l]=(0,R.useState)(!1),g=(0,R.useRef)(!1),d=(0,R.useRef)(!1),c=(0,R.useRef)(null),s=(0,R.useCallback)(()=>{if(t)return{only:Array.isArray(t)?t:[t]};if(!r)throw new Error("You must provide either a `data` or `params` prop.");return r},[r,t]);return(0,R.useEffect)(()=>{if(!c.current)return;let n=new IntersectionObserver(y=>{if(!y[0].isIntersecting||(!m&&g.current&&n.disconnect(),d.current))return;g.current=!0,d.current=!0;let S=s();Ve.router.reload({...S,onStart:D=>{d.current=!0,S.onStart?.(D)},onFinish:D=>{l(!0),d.current=!1,S.onFinish?.(D),m||n.disconnect()}})},{rootMargin:`${a||0}px`});return n.observe(c.current),()=>{n.disconnect()}},[c,s,a]),m||!h?(0,R.createElement)(o,{props:null,ref:c},h?e:f):h?e:null};Ue.displayName="InertiaWhenVisible";var Ne=Ue;var ye=je.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, SetDataByObject, SetDataByMethod, SetDataByKeyValuePair, SetDataAction, 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, PageHandler, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nlet currentIsInitialPage = true\nlet routerIsInitialized = false\nlet swapComponent: PageHandler = async () => {\n // Dummy function so we can init the router outside of the useEffect hook. This is\n // needed so `router.reload()` works right away (on mount) in any of the user's\n // components. We swap in the real function in the useEffect hook below.\n currentIsInitialPage = false\n}\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 if (!routerIsInitialized) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args) => swapComponent(args),\n })\n\n routerIsInitialized = true\n }\n\n useEffect(() => {\n swapComponent = async ({ component, page, preserveState }) => {\n if (currentIsInitialPage) {\n // We block setting the current page on the initial page to\n // prevent the initial page from being re-rendered again.\n currentIsInitialPage = false\n return\n }\n\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\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\nconst urlWithoutHash = (url: URL | Location): URL => {\n url = new URL(url.href)\n url.hash = ''\n\n return url\n}\n\nconst isSameUrlWithoutHash = (url1: URL | Location, url2: URL | Location): boolean => {\n return urlWithoutHash(url1).href === urlWithoutHash(url2).href\n}\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 const isPartialVisit = e.detail.visit.only.length > 0 || e.detail.visit.except.length > 0\n const isReloadingKey = e.detail.visit.only.find((key) => keys.includes(key))\n\n if (isSameUrlWithoutHash(e.detail.visit.url, window.location) && (!isPartialVisit || isReloadingKey)) {\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 provider.reconnect()\n provider.update(renderNodes(children))\n return () => {\n provider.disconnect()\n }\n }, [provider, children, title])\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 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, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\nexport type SetDataByObject<TForm> = (data: TForm) => void\nexport type SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\nexport type SetDataByKeyValuePair<TForm extends Record<any, any>> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void\nexport type SetDataAction<TForm> = SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>\n\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: SetDataAction<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 const isDirty = useMemo(() => !isEqual(data, defaults), [data, defaults])\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 [dataAsDefaults, setDataAsDefaults] = useState(false)\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(data)\n // If setData was called right before setDefaults, data was not\n // updated in that render yet, so we set a flag to update\n // defaults right after the next render.\n setDataAsDefaults(true)\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 useLayoutEffect(() => {\n if (!dataAsDefaults) {\n return\n }\n\n if (isDirty) {\n // Data has been updated in this next render and is different from\n // the defaults, so now we can set defaults to the current data.\n setDefaults(data)\n }\n\n setDataAsDefaults(false)\n }, [dataAsDefaults])\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,\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", "currentIsInitialPage", "routerIsInitialized", "swapComponent", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "headManager", "title", "args", "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", "urlWithoutHash", "url", "isSameUrlWithoutHash", "url1", "url2", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "pageProps", "usePage", "keys", "removeListener", "router", "e", "isPartialVisit", "isReloadingKey", "key", "Deferred_default", "import_react", "Head", "children", "title", "headManager", "HeadContext_default", "provider", "renderNodes", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "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", "isDirty", "submit", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "setDataFunction", "keyOrData", "maybeValue", "dataAsDefaults", "setDataAsDefaults", "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"]
|
|
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, SetDataByObject, SetDataByMethod, SetDataByKeyValuePair, SetDataAction, 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, PageHandler, router } from '@inertiajs/core'\nimport { createElement, useEffect, useMemo, useState } from 'react'\nimport HeadContext from './HeadContext'\nimport PageContext from './PageContext'\n\nlet currentIsInitialPage = true\nlet routerIsInitialized = false\nlet swapComponent: PageHandler = async () => {\n // Dummy function so we can init the router outside of the useEffect hook. This is\n // needed so `router.reload()` works right away (on mount) in any of the user's\n // components. We swap in the real function in the useEffect hook below.\n currentIsInitialPage = false\n}\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 if (!routerIsInitialized) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args) => swapComponent(args),\n })\n\n routerIsInitialized = true\n }\n\n useEffect(() => {\n swapComponent = async ({ component, page, preserveState }) => {\n if (currentIsInitialPage) {\n // We block setting the current page on the initial page to\n // prevent the initial page from being re-rendered again.\n currentIsInitialPage = false\n return\n }\n\n setCurrent((current) => ({\n component,\n page,\n key: preserveState ? current.key : Date.now(),\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\nconst urlWithoutHash = (url: URL | Location): URL => {\n url = new URL(url.href)\n url.hash = ''\n\n return url\n}\n\nconst isSameUrlWithoutHash = (url1: URL | Location, url2: URL | Location): boolean => {\n return urlWithoutHash(url1).href === urlWithoutHash(url2).href\n}\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 const isPartialVisit = e.detail.visit.only.length > 0 || e.detail.visit.except.length > 0\n const isReloadingKey = e.detail.visit.only.find((key) => keys.includes(key))\n\n if (isSameUrlWithoutHash(e.detail.visit.url, window.location) && (!isPartialVisit || isReloadingKey)) {\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 const isServer = typeof window === 'undefined'\n\n useEffect(() => {\n provider.reconnect()\n provider.update(renderNodes(children))\n return () => {\n provider.disconnect()\n }\n }, [provider, children, title])\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 if (isServer) {\n provider.update(renderNodes(children))\n }\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, useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport useRemember from './useRemember'\n\nexport type SetDataByObject<TForm> = (data: TForm) => void\nexport type SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void\nexport type SetDataByKeyValuePair<TForm extends Record<any, any>> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void\nexport type SetDataAction<TForm extends Record<any, any>> = SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>\n\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: SetDataAction<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 const isDirty = useMemo(() => !isEqual(data, defaults), [data, defaults])\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 [dataAsDefaults, setDataAsDefaults] = useState(false)\n\n const setDefaultsFunction = useCallback(\n (fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: FormDataConvertible) => {\n if (typeof fieldOrFields === 'undefined') {\n setDefaults(data)\n // If setData was called right before setDefaults, data was not\n // updated in that render yet, so we set a flag to update\n // defaults right after the next render.\n setDataAsDefaults(true)\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 useLayoutEffect(() => {\n if (!dataAsDefaults) {\n return\n }\n\n if (isDirty) {\n // Data has been updated in this next render and is different from\n // the defaults, so now we can set defaults to the current data.\n setDefaults(data)\n }\n\n setDataAsDefaults(false)\n }, [dataAsDefaults])\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,\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": "kkBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,cAAAE,GAAA,SAAAC,GAAA,SAAAC,GAAA,gBAAAC,GAAA,qBAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,EAAA,YAAAC,GAAA,gBAAAC,GAAA,gBAAAC,IAAA,eAAAC,GAAAb,IAAA,IAAAc,GAAiC,2BCAjC,IAAAC,GAAqE,2BACrEC,GAA8F,iBCD9F,IAAAC,EAAuD,2BACvDC,EAA4D,iBCD5D,IAAAC,GAA8B,iBAExBC,MAAc,kBAAc,MAAS,EAC3CA,GAAY,YAAc,qBAE1B,IAAOC,EAAQD,GCLf,IAAAE,GAA8B,iBAExBC,MAAc,kBAAc,MAAS,EAC3CA,GAAY,YAAc,qBAE1B,IAAOC,EAAQD,GFAf,IAAIE,GAAuB,GACvBC,GAAsB,GACtBC,GAA6B,SAAY,CAI3CF,GAAuB,EACzB,EAEe,SAARG,GAAqB,CAC1B,SAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,aAAAC,CACF,EAAG,CACD,GAAM,CAACC,EAASC,CAAU,KAAI,YAAS,CACrC,UAAWL,GAAoB,KAC/B,KAAMD,EACN,IAAK,IACP,CAAC,EAEKO,KAAc,WAAQ,OACnB,qBACL,OAAO,OAAW,IAClBJ,IAAmBK,GAAUA,GAC7BJ,IAAiB,IAAM,CAAC,EAC1B,EACC,CAAC,CAAC,EA+BL,GA7BKR,KACH,SAAO,KAAK,CACV,YAAAI,EACA,iBAAAE,EACA,cAAe,MAAOO,GAASZ,GAAcY,CAAI,CACnD,CAAC,EAEDb,GAAsB,OAGxB,aAAU,IAAM,CACdC,GAAgB,MAAO,CAAE,UAAAa,EAAW,KAAAC,EAAM,cAAAC,CAAc,IAAM,CAC5D,GAAIjB,GAAsB,CAGxBA,GAAuB,GACvB,MACF,CAEAW,EAAYD,IAAa,CACvB,UAAAK,EACA,KAAAC,EACA,IAAKC,EAAgBP,EAAQ,IAAM,KAAK,IAAI,CAC9C,EAAE,CACJ,EAEA,SAAO,GAAG,WAAY,IAAME,EAAY,YAAY,CAAC,CACvD,EAAG,CAAC,CAAC,EAED,CAACF,EAAQ,UACX,SAAO,iBACLQ,EAAY,SACZ,CAAE,MAAON,CAAY,KACrB,iBAAcO,EAAY,SAAU,CAAE,MAAOT,EAAQ,IAAK,EAAG,IAAI,CACnE,EAGF,IAAMU,EACJhB,IACC,CAAC,CAAE,UAAAiB,EAAW,MAAAC,EAAO,IAAAC,CAAI,IAAM,CAC9B,IAAMC,KAAQ,iBAAcH,EAAW,CAAE,IAAAE,EAAK,GAAGD,CAAM,CAAC,EAExD,OAAI,OAAOD,EAAU,QAAW,WACvBA,EAAU,OAAOG,CAAK,EAG3B,MAAM,QAAQH,EAAU,MAAM,EACzBA,EAAU,OACd,OAAOG,CAAK,EACZ,QAAQ,EACR,OAAO,CAACpB,EAAUqB,OAAW,iBAAcA,EAAQ,CAAE,SAAArB,EAAU,GAAGkB,CAAM,CAAC,CAAC,EAGxEE,CACT,GAEF,SAAO,iBACLN,EAAY,SACZ,CAAE,MAAON,CAAY,KACrB,iBACEO,EAAY,SACZ,CAAE,MAAOT,EAAQ,IAAK,EACtBU,EAAe,CACb,UAAWV,EAAQ,UACnB,IAAKA,EAAQ,IACb,MAAOA,EAAQ,KAAK,KACtB,CAAC,CACH,CACF,CACF,CAEAP,GAAI,YAAc,UD1ClB,eAAOuB,GAAmF,CACxF,GAAAC,EAAK,MACL,QAAAC,EACA,MAAAC,EACA,MAAAC,EACA,SAAAC,EAAW,CAAC,EACZ,KAAAC,EACA,OAAAC,CACF,EAEE,CACA,IAAMC,EAAW,OAAO,OAAW,IAC7BC,EAAKD,EAAW,KAAO,SAAS,eAAeP,CAAE,EACjDS,EAAcJ,GAAQ,KAAK,MAAMG,EAAG,QAAQ,IAAI,EAEhDE,EAAoBC,GAAS,QAAQ,QAAQV,EAAQU,CAAI,CAAC,EAAE,KAAMC,GAAWA,EAAO,SAAWA,CAAM,EAEvGC,EAAO,CAAC,EAENC,EAAW,MAAM,QAAQ,IAAI,CACjCJ,EAAiBD,EAAY,SAAS,EACtC,UAAO,eAAe,EAAE,MAAM,IAAM,CAAC,CAAC,CACxC,CAAC,EAAE,KAAK,CAAC,CAACM,CAAgB,IACjBb,EAAM,CAEX,GAAAM,EACA,IAAAQ,GACA,MAAO,CACL,YAAAP,EACA,iBAAAM,EACA,iBAAAL,EACA,cAAeP,EACf,aAAcI,EAAYU,GAAcJ,EAAOI,EAAY,IAC7D,CACF,CAAC,CACF,EAMD,GAJI,CAACV,GAAYH,MACf,kBAAcA,CAAQ,EAGpBG,EAAU,CACZ,IAAMW,EAAO,MAAMZ,KACjB,kBACE,MACA,CACE,GAAAN,EACA,YAAa,KAAK,UAAUS,CAAW,CACzC,EAEAK,CACF,CACF,EAEA,MAAO,CAAE,KAAAD,EAAM,KAAAK,CAAK,CACtB,CACF,CIzHA,IAAAC,EAA2D,iBCC3D,IAAAC,GAA2B,iBAGZ,SAARC,GAAuF,CAC5F,IAAMC,KAAO,eAAWC,CAAW,EAEnC,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,mDAAmD,EAGrE,OAAOA,CACT,CDRA,IAAME,GAAkBC,IACtBA,EAAM,IAAI,IAAIA,EAAI,IAAI,EACtBA,EAAI,KAAO,GAEJA,GAGHC,GAAuB,CAACC,EAAsBC,IAC3CJ,GAAeG,CAAI,EAAE,OAASH,GAAeI,CAAI,EAAE,KAStDC,GAAW,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,SAAAC,CAAS,IAAqB,CAChE,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,wEAAwE,EAG1F,GAAM,CAACE,EAAQC,CAAS,KAAI,YAAS,EAAK,EACpCC,EAAYC,EAAQ,EAAE,MACtBC,KAAO,WAAQ,IAAO,MAAM,QAAQN,CAAI,EAAIA,EAAO,CAACA,CAAI,EAAI,CAACA,CAAI,CAAC,EAExE,sBAAU,IAAM,CACd,IAAMO,EAAiBC,GAAO,GAAG,QAAUC,GAAM,CAC/C,IAAMC,EAAiBD,EAAE,OAAO,MAAM,KAAK,OAAS,GAAKA,EAAE,OAAO,MAAM,OAAO,OAAS,EAClFE,EAAiBF,EAAE,OAAO,MAAM,KAAK,KAAMG,GAAQN,EAAK,SAASM,CAAG,CAAC,EAEvEjB,GAAqBc,EAAE,OAAO,MAAM,IAAK,OAAO,QAAQ,IAAM,CAACC,GAAkBC,IACnFR,EAAU,EAAK,CAEnB,CAAC,EAED,MAAO,IAAM,CACXI,EAAe,CACjB,CACF,EAAG,CAAC,CAAC,KAEL,aAAU,IAAM,CACdJ,EAAUG,EAAK,MAAOM,GAAQR,EAAUQ,CAAG,IAAM,MAAS,CAAC,CAC7D,EAAG,CAACR,EAAWE,CAAI,CAAC,EAEbJ,EAASH,EAAWE,CAC7B,EAEAH,GAAS,YAAc,kBAEvB,IAAOe,GAAQf,GEtDf,IAAAgB,EAAyE,uBAUzE,IAAMC,GAAoB,SAAU,CAAE,SAAAC,EAAU,MAAAC,CAAM,EAAG,CACvD,IAAMC,KAAc,cAAWC,CAAW,EACpCC,KAAW,WAAQ,IAAMF,EAAY,eAAe,EAAG,CAACA,CAAW,CAAC,EACpEG,EAAW,OAAO,OAAW,OAEnC,aAAU,KACRD,EAAS,UAAU,EACnBA,EAAS,OAAOE,EAAYN,CAAQ,CAAC,EAC9B,IAAM,CACXI,EAAS,WAAW,CACtB,GACC,CAACA,EAAUJ,EAAUC,CAAK,CAAC,EAE9B,SAASM,EAAWC,EAAM,CACxB,MACE,CACE,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,OACA,QACA,SACA,QACA,KACF,EAAE,QAAQA,EAAK,IAAI,EAAI,EAE3B,CAEA,SAASC,EAAeD,EAAM,CAC5B,IAAME,EAAQ,OAAO,KAAKF,EAAK,KAAK,EAAE,OAAO,CAACG,EAAOC,IAAS,CAC5D,GAAI,CAAC,WAAY,WAAY,yBAAyB,EAAE,SAASA,CAAI,EACnE,OAAOD,EAET,IAAME,EAAQL,EAAK,MAAMI,CAAI,EAC7B,OAAIC,IAAU,GACLF,EAAQ,IAAIC,CAAI,GAEhBD,EAAQ,IAAIC,CAAI,KAAKC,CAAK,GAErC,EAAG,EAAE,EACL,MAAO,IAAIL,EAAK,IAAI,GAAGE,CAAK,GAC9B,CAEA,SAASI,EAAkBN,EAAM,CAC/B,OAAO,OAAOA,EAAK,MAAM,UAAa,SAClCA,EAAK,MAAM,SACXA,EAAK,MAAM,SAAS,OAAO,CAACO,EAAMC,IAAUD,EAAOE,EAAUD,CAAK,EAAG,EAAE,CAC7E,CAEA,SAASC,EAAUT,EAAM,CACvB,IAAIO,EAAON,EAAeD,CAAI,EAC9B,OAAIA,EAAK,MAAM,WACbO,GAAQD,EAAkBN,CAAI,GAE5BA,EAAK,MAAM,0BACbO,GAAQP,EAAK,MAAM,wBAAwB,QAExCD,EAAWC,CAAI,IAClBO,GAAQ,KAAKP,EAAK,IAAI,KAEjBO,CACT,CAEA,SAASG,EAAyBV,EAAM,CACtC,OAAO,EAAAW,QAAM,aAAaX,EAAM,CAC9B,QAASA,EAAK,MAAM,UAAU,IAAM,OAAYA,EAAK,MAAM,UAAU,EAAI,EAC3E,CAAC,CACH,CAEA,SAASY,EAAWZ,EAAM,CACxB,OAAOS,EAAUC,EAAyBV,CAAI,CAAC,CACjD,CAEA,SAASF,EAAYe,EAAO,CAC1B,IAAMC,EAAW,EAAAH,QAAM,SAAS,QAAQE,CAAK,EAC1C,OAAQb,GAASA,CAAI,EACrB,IAAKA,GAASY,EAAWZ,CAAI,CAAC,EACjC,OAAIP,GAAS,CAACqB,EAAS,KAAMC,GAAQA,EAAI,WAAW,QAAQ,CAAC,GAC3DD,EAAS,KAAK,kBAAkBrB,CAAK,UAAU,EAE1CqB,CACT,CAEA,OAAIjB,GACFD,EAAS,OAAOE,EAAYN,CAAQ,CAAC,EAGhC,IACT,EACOwB,GAAQzB,GC1Gf,IAAA0B,EAUO,2BACPC,EAAgF,iBAE1EC,EAAO,IAAG,GAgCVC,MAAO,cACX,CACE,CACE,SAAAC,EACA,GAAAC,EAAK,IACL,KAAAC,EAAO,CAAC,EACR,KAAAC,EACA,OAAAC,EAAS,MACT,eAAAC,EAAiB,GACjB,cAAAC,EAAgB,KAChB,QAAAC,EAAU,GACV,KAAAC,EAAO,CAAC,EACR,OAAAC,EAAS,CAAC,EACV,QAAAC,EAAU,CAAC,EACX,uBAAAC,EAAyB,WACzB,MAAAC,EAAQ,GACR,QAAAC,EAAUf,EACV,cAAAgB,EAAgBhB,EAChB,SAAAiB,EAAWjB,EACX,QAAAkB,EAAUlB,EACV,WAAAmB,EAAanB,EACb,SAAAoB,GAAWpB,EACX,SAAAqB,EAAWrB,EACX,UAAAsB,GAAYtB,EACZ,QAAAuB,EAAUvB,EACV,SAAAwB,EAAW,GACX,SAAAC,EAAW,EACX,GAAGC,CACL,EACAC,KACG,CACH,GAAM,CAACC,EAAeC,CAAgB,KAAI,YAAS,CAAC,EAC9CC,KAAe,UAAe,IAAI,EAExC3B,EAAKA,EAAG,YAAY,EACpBG,EAAS,OAAOD,GAAS,SAAWA,EAAK,OAAUC,EAAO,YAAY,EACtE,GAAM,CAACyB,GAAOC,EAAK,KAAI,4BACrB1B,EACA,OAAOD,GAAS,SAAWA,EAAK,IAAMA,GAAQ,GAC9CD,EACAS,CACF,EACMoB,EAAMF,GACZ3B,EAAO4B,GAEP,IAAME,EAAa,CACjB,KAAA9B,EACA,OAAAE,EACA,eAAAC,EACA,cAAeC,GAAiBF,IAAW,MAC3C,QAAAG,EACA,KAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAE,CACF,EAEMqB,EAAc,CAClB,GAAGD,EACH,cAAAlB,EACA,SAAAC,EACA,QAAQmB,EAAO,CACbP,EAAkBQ,GAAUA,EAAQ,CAAC,EACrCnB,EAAQkB,CAAK,CACf,EACA,WAAAjB,EACA,SAASiB,EAAO,CACdP,EAAkBQ,GAAUA,EAAQ,CAAC,EACrCjB,GAASgB,CAAK,CAChB,EACA,SAAAf,EACA,UAAAC,GACA,QAAAC,CACF,EAEMe,EAAa,IAAM,CACvB,SAAO,SAASL,EAAKC,EAAY,CAAE,SAAUK,EAAc,CAAC,CAC9D,EAEMC,KAAsC,WAC1C,IACMhB,IAAa,GACR,CAAC,OAAO,EAGbA,IAAa,GACR,CAAC,EAGN,MAAM,QAAQA,CAAQ,EACjBA,EAGF,CAACA,CAAQ,EAElB,MAAM,QAAQA,CAAQ,EAAIA,EAAW,CAACA,CAAQ,CAChD,EAEMe,MAAgB,WAAQ,IACxBd,IAAa,EAERA,EAGLe,EAAc,SAAW,GAAKA,EAAc,CAAC,IAAM,QAG9C,EAIF,IACN,CAACf,EAAUe,CAAa,CAAC,KAE5B,aAAU,IACD,IAAM,CACX,aAAaV,EAAa,OAAO,CACnC,EACC,CAAC,CAAC,KAEL,aAAU,IAAM,CACVU,EAAc,SAAS,OAAO,GAChC,WAAW,IAAMF,EAAW,CAAC,CAEjC,EAAGE,CAAa,EAEhB,IAAMC,GAAgB,CACpB,QAAUL,GAAU,CAClBrB,EAAQqB,CAAK,KAET,mBAAgBA,CAAK,IACvBA,EAAM,eAAe,EAErB,SAAO,MAAMH,EAAKE,CAAW,EAEjC,CACF,EAEMO,GAAsB,CAC1B,aAAc,IAAM,CAClBZ,EAAa,QAAU,OAAO,WAAW,IAAM,CAC7CQ,EAAW,CACb,EAAG,EAAE,CACP,EACA,aAAc,IAAM,CAClB,aAAaR,EAAa,OAAO,CACnC,EACA,QAASW,GAAc,OACzB,EAEME,GAAsB,CAC1B,YAAcP,GAAU,IAClB,mBAAgBA,CAAK,IACvBA,EAAM,eAAe,EACrBE,EAAW,EAEf,EACA,UAAYF,GAAU,CACpBA,EAAM,eAAe,EACrB,SAAO,MAAMH,EAAKE,CAAW,CAC/B,EACA,QAAUC,GAAU,CAClBrB,EAAQqB,CAAK,KAET,mBAAgBA,CAAK,GAEvBA,EAAM,eAAe,CAEzB,CACF,EAEA,OAAI9B,IAAW,QACbH,EAAK,aAQA,iBACLA,EACA,CACE,GAAGuB,EACH,GATY,CACd,EAAG,CAAE,KAAMO,CAAI,EACf,OAAQ,CAAE,KAAM,QAAS,CAC3B,EAMgB9B,CAAE,GAAK,CAAC,EACpB,IAAAwB,GACA,GACMa,EAAc,SAAS,OAAO,EACzBE,GAGLF,EAAc,SAAS,OAAO,EACzBG,GAGFF,GAET,eAAgBb,EAAgB,EAAI,GAAK,MAC3C,EACA1B,CACF,CACF,CACF,EACAD,GAAK,YAAc,cAEnB,IAAO2C,GAAQ3C,GC1Pf,IAAA4C,GAQO,2BACPC,EAAmC,sBACnCC,EAA8B,6BAC9BC,EAAmF,iBCXnF,IAAAC,GAAuB,2BACvBC,GAA8D,iBAE/C,SAARC,EACLC,EACAC,EAC0C,CAC1C,GAAM,CAACC,EAAOC,CAAQ,KAAI,aAAS,IAAM,CACvC,IAAMC,EAAW,UAAO,QAAQH,CAAG,EAEnC,OAAOG,IAAa,OAAYA,EAAWJ,CAC7C,CAAC,EAED,uBAAU,IAAM,CACd,UAAO,SAASE,EAAOD,CAAG,CAC5B,EAAG,CAACC,EAAOD,CAAG,CAAC,EAER,CAACC,EAAOC,CAAQ,CACzB,CDmCe,SAARE,GACLC,EACAC,EACyB,CACzB,IAAMC,KAAY,UAAO,IAAI,EACvBC,EAAc,OAAOH,GAA+B,SAAWA,EAA6B,KAC5F,CAACI,EAAUC,CAAW,KAAI,aAC7B,OAAOL,GAA+B,SAAWC,EAAqBD,IAAgC,CAAC,CAC1G,EACMM,KAAc,UAAO,IAAI,EACzBC,KAA8B,UAAO,IAAI,EACzC,CAACC,EAAMC,CAAO,EAAIN,EAAcO,EAAYN,EAAU,GAAGD,CAAW,OAAO,KAAI,YAASC,CAAQ,EAChG,CAACO,EAAQC,CAAS,EAAIT,EACxBO,EAAY,CAAC,EAAmD,GAAGP,CAAW,SAAS,KACvF,YAAS,CAAC,CAAiD,EACzD,CAACU,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1C,CAACC,EAAYC,CAAa,KAAI,YAAS,EAAK,EAC5C,CAACC,EAAUC,CAAW,KAAI,YAAS,IAAI,EACvC,CAACC,GAAeC,CAAgB,KAAI,YAAS,EAAK,EAClD,CAACC,GAAoBC,CAAqB,KAAI,YAAS,EAAK,EAC5DC,KAAY,UAAQf,GAASA,CAAI,EACjCgB,KAAU,WAAQ,IAAM,IAAC,WAAQhB,EAAMJ,CAAQ,EAAG,CAACI,EAAMJ,CAAQ,CAAC,KAExE,aAAU,KACRF,EAAU,QAAU,GACb,IAAM,CACXA,EAAU,QAAU,EACtB,GACC,CAAC,CAAC,EAEL,IAAMuB,KAAS,eACb,IAAIC,IAAS,CACX,IAAMC,EAAe,OAAOD,EAAK,CAAC,GAAM,SAElCE,EAASD,EAAeD,EAAK,CAAC,EAAE,OAASA,EAAK,CAAC,EAC/CG,EAAMF,EAAeD,EAAK,CAAC,EAAE,IAAMA,EAAK,CAAC,EACzCI,GAAWH,EAAeD,EAAK,CAAC,EAAIA,EAAK,CAAC,IAAM,CAAC,EAEjDK,GAAW,CACf,GAAGD,EACH,cAAgBE,GAAU,CAGxB,GAFA1B,EAAY,QAAU0B,EAElBF,EAAQ,cACV,OAAOA,EAAQ,cAAcE,CAAK,CAEtC,EACA,SAAWC,GAAU,CAKnB,GAJAb,EAAiB,EAAK,EACtBE,EAAsB,EAAK,EAC3B,aAAaf,EAA4B,OAAO,EAE5CuB,EAAQ,SACV,OAAOA,EAAQ,SAASG,CAAK,CAEjC,EACA,QAAUA,GAAU,CAGlB,GAFAjB,EAAc,EAAI,EAEdc,EAAQ,QACV,OAAOA,EAAQ,QAAQG,CAAK,CAEhC,EACA,WAAaC,GAAU,CAGrB,GAFAhB,EAAYgB,CAAK,EAEbJ,EAAQ,WACV,OAAOA,EAAQ,WAAWI,CAAK,CAEnC,EACA,UAAYC,GAAS,CAgBnB,GAfIjC,EAAU,UACZc,EAAc,EAAK,EACnBE,EAAY,IAAI,EAChBN,EAAU,CAAC,CAAC,EACZE,EAAa,EAAK,EAClBM,EAAiB,EAAI,EACrBE,EAAsB,EAAI,EAC1BjB,KAAY,aAAUG,CAAI,CAAC,EAC3BD,EAA4B,QAAU,WAAW,IAAM,CACjDL,EAAU,SACZoB,EAAsB,EAAK,CAE/B,EAAG,GAAI,GAGLQ,EAAQ,UACV,OAAOA,EAAQ,UAAUK,CAAI,CAEjC,EACA,QAAUxB,GAAW,CAQnB,GAPIT,EAAU,UACZc,EAAc,EAAK,EACnBE,EAAY,IAAI,EAChBN,EAAUD,CAAM,EAChBG,EAAa,EAAI,GAGfgB,EAAQ,QACV,OAAOA,EAAQ,QAAQnB,CAAM,CAEjC,EACA,SAAU,IAAM,CAMd,GALIT,EAAU,UACZc,EAAc,EAAK,EACnBE,EAAY,IAAI,GAGdY,EAAQ,SACV,OAAOA,EAAQ,SAAS,CAE5B,EACA,SAAWG,GAAU,CAQnB,GAPI/B,EAAU,UACZc,EAAc,EAAK,EACnBE,EAAY,IAAI,GAGlBZ,EAAY,QAAU,KAElBwB,EAAQ,SACV,OAAOA,EAAQ,SAASG,CAAK,CAEjC,CACF,EAEIL,IAAW,SACb,UAAO,OAAOC,EAAK,CAAE,GAAGE,GAAU,KAAMR,EAAU,QAAQf,CAAI,CAAE,CAAC,EAEjE,UAAOoB,CAAM,EAAEC,EAAKN,EAAU,QAAQf,CAAI,EAAGuB,EAAQ,CAEzD,EACA,CAACvB,EAAMI,EAAWW,CAAS,CAC7B,EAEMa,MAAkB,eACtB,CAACC,EAAmDC,IAAqB,CAErE7B,EADE,OAAO4B,GAAc,SACd7B,MAAS,UAAI,aAAUA,CAAI,EAAG6B,EAAWC,CAAU,EACnD,OAAOD,GAAc,WACrB7B,GAAS6B,EAAU7B,CAAI,EAExB6B,CAJqD,CAMjE,EACA,CAAC5B,CAAO,CACV,EAEM,CAAC8B,EAAgBC,CAAiB,KAAI,YAAS,EAAK,EAEpDC,KAAsB,eAC1B,CAACC,EAAsDJ,IAAqC,CACtF,OAAOI,EAAkB,KAC3BrC,EAAYG,CAAI,EAIhBgC,EAAkB,EAAI,GAEtBnC,EAAaD,GACJ,OAAOsC,GAAkB,YAC5B,UAAI,aAAUtC,CAAQ,EAAGsC,EAAeJ,CAAU,EAClD,OAAO,UAAO,aAAUlC,CAAQ,EAAGsC,CAAa,CACrD,CAEL,EACA,CAAClC,EAAMH,CAAW,CACpB,KAEA,mBAAgB,IAAM,CACfkC,IAIDf,GAGFnB,EAAYG,CAAI,EAGlBgC,EAAkB,EAAK,EACzB,EAAG,CAACD,CAAc,CAAC,EAEnB,IAAMI,MAAQ,eACZ,IAAIC,IAAW,CACTA,EAAO,SAAW,EACpBnC,EAAQL,CAAQ,EAEhBK,EAASD,GACNoC,EACE,OAAQC,MAAQ,OAAIzC,EAAUyC,CAAG,CAAC,EAClC,OACC,CAACC,EAAOD,OACC,OAAIC,EAAOD,KAAK,OAAIzC,EAAUyC,CAAG,CAAC,EAE3C,CAAE,GAAGrC,CAAK,CACZ,CACJ,CAEJ,EACA,CAACC,EAASL,CAAQ,CACpB,EAEM2C,MAAW,eACf,CAACL,EAA0EJ,IAAwB,CACjG1B,EAAWD,GAAW,CACpB,IAAMqC,EAAY,CAChB,GAAGrC,EACH,GAAI,OAAO+B,GAAkB,SACzB,CAAE,CAACA,CAAa,EAAGJ,CAAW,EAC7BI,CACP,EACA,OAAA5B,EAAa,OAAO,KAAKkC,CAAS,EAAE,OAAS,CAAC,EACvCA,CACT,CAAC,CACH,EACA,CAACpC,EAAWE,CAAY,CAC1B,EAEMmC,KAAc,eAClB,IAAIL,IAAW,CACbhC,EAAWD,GAAW,CACpB,IAAMqC,EAAa,OAAO,KAAKrC,CAAM,EAAiC,OACpE,CAACmC,EAAOI,KAAW,CACjB,GAAGJ,EACH,GAAIF,EAAO,OAAS,GAAK,CAACA,EAAO,SAASM,CAAK,EAAI,CAAE,CAACA,CAAK,EAAGvC,EAAOuC,CAAK,CAAE,EAAI,CAAC,CACnF,GACA,CAAC,CACH,EACA,OAAApC,EAAa,OAAO,KAAKkC,CAAS,EAAE,OAAS,CAAC,EACvCA,CACT,CAAC,CACH,EACA,CAACpC,EAAWE,CAAY,CAC1B,EAEMqC,EAAsBvB,GAAW,CAACC,EAAKC,IAAY,CACvDL,EAAOG,EAAQC,EAAKC,CAAO,CAC7B,EACMsB,KAAY,eAAYD,EAAmB,KAAK,EAAG,CAAC1B,CAAM,CAAC,EAC3D4B,KAAO,eAAYF,EAAmB,MAAM,EAAG,CAAC1B,CAAM,CAAC,EACvD6B,KAAM,eAAYH,EAAmB,KAAK,EAAG,CAAC1B,CAAM,CAAC,EACrD8B,MAAQ,eAAYJ,EAAmB,OAAO,EAAG,CAAC1B,CAAM,CAAC,EACzD+B,MAAe,eAAYL,EAAmB,QAAQ,EAAG,CAAC1B,CAAM,CAAC,EAEjEgC,MAAS,eAAY,IAAM,CAC3BnD,EAAY,SACdA,EAAY,QAAQ,OAAO,CAE/B,EAAG,CAAC,CAAC,EAECoD,MAAoB,eAAaC,GAAa,CAClDpC,EAAU,QAAUoC,CACtB,EAAG,CAAC,CAAC,EAEL,MAAO,CACL,KAAAnD,EACA,QAAS4B,GACT,QAAAZ,EACA,OAAAb,EACA,UAAAE,EACA,WAAAE,EACA,SAAAE,EACA,cAAAE,GACA,mBAAAE,GACA,UAAWqC,GACX,YAAajB,EACb,MAAAE,GACA,SAAAI,GACA,YAAAE,EACA,OAAAxB,EACA,IAAK2B,EACL,KAAAC,EACA,IAAAC,EACA,MAAAC,GACA,OAAQC,GACR,OAAAC,EACF,CACF,CE3UA,IAAAG,GAAmD,2BACnDC,GAAkC,iBAEnB,SAARC,GACLC,EACAC,EAAgC,CAAC,EACjCC,EAAuB,CACrB,UAAW,GACX,UAAW,EACb,EACA,CACA,IAAMC,KAAU,WACd,UAAO,KAAKH,EAAUC,EAAgB,CACpC,GAAGC,EACH,UAAW,EACb,CAAC,CACH,EAEA,uBAAU,MACJA,EAAQ,WAAa,KACvBC,EAAQ,QAAQ,MAAM,EAGjB,IAAMA,EAAQ,QAAQ,KAAK,GACjC,CAAC,CAAC,EAEE,CACL,KAAMA,EAAQ,QAAQ,KACtB,MAAOA,EAAQ,QAAQ,KACzB,CACF,CC9BA,IAAAC,EAAqC,2BACrCC,EAAoC,iBAErB,SAARC,GAA6BC,EAAwB,CAAC,EAK3D,CACA,IAAMC,EAAS,OAAO,OAAW,IAAc,KAAO,SAAO,UAAU,OAAO,SAAS,SAAUD,CAAO,EAClGE,EAAW,OAAO,OAAW,IAAc,KAAO,SAAO,eAAe,OAAO,SAAS,SAAUF,CAAO,EAEzG,CAACG,EAAeC,CAAgB,KAAI,YAAwBH,GAAQ,gBAAkB,IAAI,EAC1F,CAACI,EAAeC,CAAgB,KAAI,YAASJ,IAAa,IAAI,EAC9D,CAACK,EAAcC,CAAe,KAAI,YAASP,IAAW,IAAI,EAEhE,sBAAU,IAAM,CACd,IAAMQ,EAAwB,SAAO,GAAG,cAAgBC,GAAM,CACxDA,EAAE,OAAO,MAAM,IAAI,WAAa,OAAO,SAAS,UAClDJ,EAAiB,EAAI,CAEzB,CAAC,EAEKK,EAAuB,SAAO,GAAG,aAAeD,GAAM,CACtDA,EAAE,OAAO,MAAM,IAAI,WAAa,OAAO,SAAS,WAClDJ,EAAiB,EAAK,EACtBE,EAAgB,EAAI,EACpBJ,EAAiBM,EAAE,OAAO,SAAS,EAEvC,CAAC,EAED,MAAO,IAAM,CACXC,EAAqB,EACrBF,EAAsB,CACxB,CACF,EAAG,CAAC,CAAC,EAEE,CACL,cAAAN,EACA,cAAAE,EACA,aAAAE,EACA,MAAO,IAAM,SAAO,MAAM,OAAO,SAAS,SAAUP,CAAO,CAC7D,CACF,CC3CA,IAAAY,GAAsC,2BACtCC,EAAsF,iBAYhFC,GAAc,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,OAAAC,EAAQ,OAAAC,EAAQ,GAAAC,EAAI,OAAAC,EAAQ,SAAAC,CAAS,IAAwB,CAClGD,EAASA,GAAU,GACnBD,EAAKA,GAAM,MACXE,EAAWA,GAAY,KAEvB,GAAM,CAACC,EAAQC,CAAS,KAAI,YAAS,EAAK,EACpCC,KAAa,UAAgB,EAAK,EAClCC,KAAW,UAAgB,EAAK,EAChCC,KAAM,UAAuB,IAAI,EAEjCC,KAAkB,eAA0C,IAAM,CACtE,GAAIX,EACF,MAAO,CACL,KAAO,MAAM,QAAQA,CAAI,EAAIA,EAAO,CAACA,CAAI,CAC3C,EAGF,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,oDAAoD,EAGtE,OAAOA,CACT,EAAG,CAACA,EAAQD,CAAI,CAAC,EAuDjB,SArDA,aAAU,IAAM,CACd,GAAI,CAACU,EAAI,QACP,OAGF,IAAME,EAAW,IAAI,qBAClBC,GAAY,CASX,GARI,CAACA,EAAQ,CAAC,EAAE,iBAIZ,CAACT,GAAUI,EAAW,SACxBI,EAAS,WAAW,EAGlBH,EAAS,SACX,OAGFD,EAAW,QAAU,GACrBC,EAAS,QAAU,GAEnB,IAAMK,EAAeH,EAAgB,EAErC,UAAO,OAAO,CACZ,GAAGG,EACH,QAAUC,GAAM,CACdN,EAAS,QAAU,GACnBK,EAAa,UAAUC,CAAC,CAC1B,EACA,SAAWA,GAAM,CACfR,EAAU,EAAI,EACdE,EAAS,QAAU,GACnBK,EAAa,WAAWC,CAAC,EAEpBX,GACHQ,EAAS,WAAW,CAExB,CACF,CAAC,CACH,EACA,CACE,WAAY,GAAGV,GAAU,CAAC,IAC5B,CACF,EAEA,OAAAU,EAAS,QAAQF,EAAI,OAAO,EAErB,IAAM,CACXE,EAAS,WAAW,CACtB,CACF,EAAG,CAACF,EAAKC,EAAiBT,CAAM,CAAC,EAE7BE,GAAU,CAACE,KACN,iBACLH,EACA,CACE,MAAO,KACP,IAAAO,CACF,EACAJ,EAASP,EAAWM,CACtB,EAGKC,EAASP,EAAW,IAC7B,EAEAD,GAAY,YAAc,qBAE1B,IAAOkB,GAAQlB,GbxGR,IAAMmB,GAAS,GAAAC",
|
|
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", "currentIsInitialPage", "routerIsInitialized", "swapComponent", "App", "children", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "current", "setCurrent", "headManager", "title", "args", "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", "urlWithoutHash", "url", "isSameUrlWithoutHash", "url1", "url2", "Deferred", "children", "data", "fallback", "loaded", "setLoaded", "pageProps", "usePage", "keys", "removeListener", "router", "e", "isPartialVisit", "isReloadingKey", "key", "Deferred_default", "import_react", "Head", "children", "title", "headManager", "HeadContext_default", "provider", "isServer", "renderNodes", "isUnaryTag", "node", "renderTagStart", "attrs", "carry", "name", "value", "renderTagChildren", "html", "child", "renderTag", "ensureNodeHasInertiaProp", "React", "renderNode", "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", "isDirty", "submit", "args", "objectPassed", "method", "url", "options", "_options", "token", "visit", "event", "page", "setDataFunction", "keyOrData", "maybeValue", "dataAsDefaults", "setDataAsDefaults", "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", "e", "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.
|
|
3
|
+
"version": "2.0.14",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The React adapter for Inertia.js",
|
|
6
6
|
"contributors": [
|
|
@@ -59,7 +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.
|
|
62
|
+
"@inertiajs/core": "2.0.14",
|
|
63
63
|
"es-toolkit": "^1.33.0"
|
|
64
64
|
}
|
|
65
65
|
}
|
package/types/useForm.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { FormDataConvertible, FormDataKeys, FormDataValues, Method, Progress, Vi
|
|
|
2
2
|
export type SetDataByObject<TForm> = (data: TForm) => void;
|
|
3
3
|
export type SetDataByMethod<TForm> = (data: (previousData: TForm) => TForm) => void;
|
|
4
4
|
export type SetDataByKeyValuePair<TForm extends Record<any, any>> = <K extends FormDataKeys<TForm>>(key: K, value: FormDataValues<TForm, K>) => void;
|
|
5
|
-
export type SetDataAction<TForm
|
|
5
|
+
export type SetDataAction<TForm extends Record<any, any>> = SetDataByObject<TForm> & SetDataByMethod<TForm> & SetDataByKeyValuePair<TForm>;
|
|
6
6
|
type FormDataType = Record<string, FormDataConvertible>;
|
|
7
7
|
type FormOptions = Omit<VisitOptions, 'data'>;
|
|
8
8
|
export interface InertiaFormProps<TForm extends FormDataType> {
|