@inertiajs/vue3 1.0.0-beta.2 → 1.0.0-beta.4

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/build.js ADDED
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ const esbuild = require('esbuild')
3
+ const { nodeExternalsPlugin } = require('esbuild-node-externals')
4
+
5
+ const watch = process.argv.slice(1).includes('--watch')
6
+
7
+ const config = {
8
+ bundle: true,
9
+ minify: true,
10
+ sourcemap: true,
11
+ target: 'es2020',
12
+ plugins: [nodeExternalsPlugin()],
13
+ }
14
+
15
+ const builds = [
16
+ { entryPoints: ['src/index.ts'], format: 'esm', outfile: 'dist/index.esm.js', platform: 'browser' },
17
+ { entryPoints: ['src/index.ts'], format: 'cjs', outfile: 'dist/index.js', platform: 'browser' },
18
+ { entryPoints: ['src/server.ts'], format: 'esm', outfile: 'dist/server.esm.js', platform: 'node' },
19
+ { entryPoints: ['src/server.ts'], format: 'cjs', outfile: 'dist/server.js', platform: 'node' },
20
+ ]
21
+
22
+ builds.forEach((build) => {
23
+ esbuild
24
+ .build({ ...config, ...build, ...watcher(build) })
25
+ .then(() => console.log(`${watch ? 'Watching' : 'Built'} ${build.entryPoints} (${build.format})…`))
26
+ .catch(() => process.exit(1))
27
+ })
28
+
29
+ function watcher(build) {
30
+ return watch
31
+ ? {
32
+ watch: {
33
+ onRebuild: (error) =>
34
+ error
35
+ ? console.error('Watch failed:', error)
36
+ : console.log(`Rebuilding ${build.entryPoints} (${build.format})…`),
37
+ },
38
+ }
39
+ : {}
40
+ }
package/dist/index.esm.js CHANGED
@@ -1,2 +1,6 @@
1
- import{router as e,createHeadManager as r,setupProgress as t,mergeDataIntoQueryString as n,shouldIntercept as o}from"@inertiajs/core";export{router}from"@inertiajs/core";import{reactive as i,watch as u,ref as s,shallowRef as a,computed as c,markRaw as l,h as f,createSSRApp as p,isReactive as d}from"vue";import m from"lodash.clonedeep";import h from"lodash.isequal";function v(){return(v=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}var y={created:function(){var r=this;if(this.$options.remember){Array.isArray(this.$options.remember)&&(this.$options.remember={data:this.$options.remember}),"string"==typeof this.$options.remember&&(this.$options.remember={data:[this.$options.remember]}),"string"==typeof this.$options.remember.data&&(this.$options.remember={data:[this.$options.remember.data]});var t=this.$options.remember.key instanceof Function?this.$options.remember.key.call(this):this.$options.remember.key,n=e.restore(t),o=this.$options.remember.data.filter(function(e){return!(null!==r[e]&&"object"==typeof r[e]&&!1===r[e].__rememberable)}),i=function(e){return null!==r[e]&&"object"==typeof r[e]&&"function"==typeof r[e].__remember&&"function"==typeof r[e].__restore};o.forEach(function(u){void 0!==r[u]&&void 0!==n&&void 0!==n[u]&&(i(u)?r[u].__restore(n[u]):r[u]=n[u]),r.$watch(u,function(){e.remember(o.reduce(function(e,t){var n;return v({},e,((n={})[t]=m(i(t)?r[t].__remember():r[t]),n))},{}),t)},{immediate:!0,deep:!0})})}}};function g(){var r=[].slice.call(arguments),t="string"==typeof r[0]?r[0]:null,n=("string"==typeof r[0]?r[1]:r[0])||{},o=t?e.restore(t):null,s=m(n),a=null,c=null,l=function(e){return e},f=i(v({},o?o.data:n,{isDirty:!1,errors:o?o.errors:{},hasErrors:!1,processing:!1,progress:null,wasSuccessful:!1,recentlySuccessful:!1,data:function(){var e=this;return Object.keys(n).reduce(function(r,t){return r[t]=e[t],r},{})},transform:function(e){return l=e,this},defaults:function(e,r){var t;return s=void 0===e?this.data():Object.assign({},m(s),r?((t={})[e]=r,t):e),this},reset:function(){var e=[].slice.call(arguments),r=m(s);return Object.assign(this,0===e.length?r:Object.keys(r).filter(function(r){return e.includes(r)}).reduce(function(e,t){return e[t]=r[t],e},{})),this},setError:function(e,r){var t;return Object.assign(this.errors,r?((t={})[e]=r,t):e),this.hasErrors=Object.keys(this.errors).length>0,this},clearErrors:function(){var e=this,r=[].slice.call(arguments);return this.errors=Object.keys(this.errors).reduce(function(t,n){var o;return v({},t,r.length>0&&!r.includes(n)?((o={})[n]=e.errors[n],o):{})},{}),this.hasErrors=Object.keys(this.errors).length>0,this},submit:function(r,t,n){var o=this,i=this;void 0===n&&(n={});var u=l(this.data()),f=v({},n,{onCancelToken:function(e){if(a=e,n.onCancelToken)return n.onCancelToken(e)},onBefore:function(e){if(i.wasSuccessful=!1,i.recentlySuccessful=!1,clearTimeout(c),n.onBefore)return n.onBefore(e)},onStart:function(e){if(i.processing=!0,n.onStart)return n.onStart(e)},onProgress:function(e){if(i.progress=e,n.onProgress)return n.onProgress(e)},onSuccess:function(e){try{var r=function(e){return s=m(o.data()),o.isDirty=!1,e};return o.processing=!1,o.progress=null,o.clearErrors(),o.wasSuccessful=!0,o.recentlySuccessful=!0,c=setTimeout(function(){return o.recentlySuccessful=!1},2e3),Promise.resolve(n.onSuccess?Promise.resolve(n.onSuccess(e)).then(r):r(null))}catch(e){return Promise.reject(e)}},onError:function(e){if(i.processing=!1,i.progress=null,i.clearErrors().setError(e),n.onError)return n.onError(e)},onCancel:function(){if(i.processing=!1,i.progress=null,n.onCancel)return n.onCancel()},onFinish:function(){if(i.processing=!1,i.progress=null,a=null,n.onFinish)return n.onFinish()}});"delete"===r?e.delete(t,v({},f,{data:u})):e[r](t,u,f)},get:function(e,r){this.submit("get",e,r)},post:function(e,r){this.submit("post",e,r)},put:function(e,r){this.submit("put",e,r)},patch:function(e,r){this.submit("patch",e,r)},delete:function(e,r){this.submit("delete",e,r)},cancel:function(){a&&a.cancel()},__rememberable:null===t,__remember:function(){return{data:this.data(),errors:this.errors}},__restore:function(e){Object.assign(this,e.data),this.setError(e.errors)}}));return u(f,function(r){f.isDirty=!h(f.data(),s),t&&e.remember(m(r.__remember()),t)},{immediate:!0,deep:!0}),f}var b=s(null),S=s({}),k=a(null),P=s(null),C=null,j={name:"Inertia",props:{initialPage:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!1},titleCallback:{type:Function,required:!1,default:function(e){return e}},onHeadUpdate:{type:Function,required:!1,default:function(){return function(){}}}},setup:function(t){var n=t.initialPage,o=t.initialComponent,i=t.resolveComponent,u=t.titleCallback,s=t.onHeadUpdate;b.value=o?l(o):null,S.value=n,P.value=null;var a="undefined"==typeof window;return C=r(a,u,s),a||(e.init({initialPage:n,resolveComponent:i,swapComponent:function(e){try{return b.value=l(e.component),S.value=e.page,P.value=e.preserveState?P.value:Date.now(),Promise.resolve()}catch(e){return Promise.reject(e)}}}),e.on("navigate",function(){return C.forceUpdate()})),function(){if(b.value){b.value.inheritAttrs=!!b.value.inheritAttrs;var e=f(b.value,v({},S.value.props,{key:P.value}));return k.value&&(b.value.layout=k.value,k.value=null),b.value.layout?"function"==typeof b.value.layout?b.value.layout(f,e):(Array.isArray(b.value.layout)?b.value.layout:[b.value.layout]).concat(e).reverse().reduce(function(e,r){return r.inheritAttrs=!!r.inheritAttrs,f(r,v({},S.value.props),function(){return e})}):e}}}},_={install:function(r){e.form=g,Object.defineProperty(r.config.globalProperties,"$inertia",{get:function(){return e}}),Object.defineProperty(r.config.globalProperties,"$page",{get:function(){return S.value}}),Object.defineProperty(r.config.globalProperties,"$headManager",{get:function(){return C}}),r.mixin(y)}};function O(){return{props:c(function(){return S.value.props}),url:c(function(){return S.value.url}),component:c(function(){return S.value.component}),version:c(function(){return S.value.version})}}function T(e){k.value=e}var E=function(e){try{var r,n,o,i,u,s,a,c,l;n=void 0===(r=e.id)?"app":r,o=e.resolve,i=e.setup,u=e.title,a=void 0===(s=e.progress)?{}:s,c=e.page,l=e.render;var d="undefined"==typeof window,m=d?null:document.getElementById(n),h=c||JSON.parse(m.dataset.page),v=function(e){return Promise.resolve(o(e)).then(function(e){return e.default||e})},y=[];return Promise.resolve(v(h.component).then(function(e){return i({el:m,App:j,props:{initialPage:h,initialComponent:e,resolveComponent:v,titleCallback:u,onHeadUpdate:d?function(e){return y=e}:null},plugin:_})})).then(function(e){return!d&&a&&t(a),function(){if(d)return Promise.resolve(l(p({render:function(){return f("div",{id:n,"data-page":JSON.stringify(h),innerHTML:l(e)})}}))).then(function(e){return{head:y,body:e}})}()})}catch(e){return Promise.reject(e)}},$={props:{title:{type:String,required:!1}},data:function(){return{provider:this.$headManager.createProvider()}},beforeUnmount:function(){this.provider.disconnect()},methods:{isUnaryTag:function(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1},renderTagStart:function(e){e.props=e.props||{},e.props.inertia=void 0!==e.props["head-key"]?e.props["head-key"]:"";var r=Object.keys(e.props).reduce(function(r,t){var n=e.props[t];return["key","head-key"].includes(t)?r:""===n?r+" "+t:r+" "+t+'="'+n+'"'},"");return"<"+e.type+r+">"},renderTagChildren:function(e){var r=this;return"string"==typeof e.children?e.children:e.children.reduce(function(e,t){return e+r.renderTag(t)},"")},renderTag:function(e){if("Symbol(Text)"===e.type.toString())return e.children;if("Symbol()"===e.type.toString())return"";if("Symbol(Comment)"===e.type.toString())return"";var r=this.renderTagStart(e);return e.children&&(r+=this.renderTagChildren(e)),this.isUnaryTag(e)||(r+="</"+e.type+">"),r},addTitleElement:function(e){return this.title&&!e.find(function(e){return e.startsWith("<title")})&&e.push("<title inertia>"+this.title+"</title>"),e},renderNodes:function(e){var r=this;return this.addTitleElement(e.flatMap(function(e){return"Symbol(Fragment)"===e.type.toString()?e.children:e}).map(function(e){return r.renderTag(e)}).filter(function(e){return e}))}},render:function(){this.provider.update(this.renderNodes(this.$slots.default?this.$slots.default():[]))}},w={name:"Link",props:{as:{type:String,default:"a"},data:{type:Object,default:function(){return{}}},href:{type:String},method:{type:String,default:"get"},replace:{type:Boolean,default:!1},preserveScroll:{type:Boolean,default:!1},preserveState:{type:Boolean,default:null},only:{type:Array,default:function(){return[]}},headers:{type:Object,default:function(){return{}}},queryStringArrayFormat:{type:String,default:"brackets"}},setup:function(r,t){var i=t.slots,u=t.attrs;return function(r){var t=r.as.toLowerCase(),s=r.method.toLowerCase(),a=n(s,r.href||"",r.data,r.queryStringArrayFormat),c=a[0],l=a[1];return"a"===t&&"get"!==s&&console.warn('Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.\n\nPlease specify a more appropriate element using the "as" attribute. For example:\n\n<Link href="'+c+'" method="'+s+'" as="button">...</Link>'),f(r.as,v({},u,"a"===t?{href:c}:{},{onClick:function(t){var n;o(t)&&(t.preventDefault(),e.visit(c,{data:l,method:s,replace:r.replace,preserveScroll:r.preserveScroll,preserveState:null!=(n=r.preserveState)?n:"get"!==s,only:r.only,headers:r.headers,onCancelToken:u.onCancelToken||function(){return{}},onBefore:u.onBefore||function(){return{}},onStart:u.onStart||function(){return{}},onProgress:u.onProgress||function(){return{}},onFinish:u.onFinish||function(){return{}},onCancel:u.onCancel||function(){return{}},onSuccess:u.onSuccess||function(){return{}},onError:u.onError||function(){return{}}}))}}),i)}}};function A(r,t){if("object"==typeof r&&null!==r&&!1===r.__rememberable)return r;var n=e.restore(t),o=d(r)?i:s,a="function"==typeof r.__remember&&"function"==typeof r.__restore,c=void 0===n?r:o(a?r.__restore(n):n);return u(c,function(n){e.remember(m(a?r.__remember():n),t)},{immediate:!0,deep:!0}),c}export{$ as Head,w as Link,E as createInertiaApp,T as defineLayout,g as useForm,O as usePage,A as useRemember};
1
+ import{router as or}from"@inertiajs/core";import{createHeadManager as M,router as S}from"@inertiajs/core";import{defineComponent as B,h as F,markRaw as w,ref as A,shallowRef as U}from"vue";import{router as _}from"@inertiajs/core";import R from"lodash.clonedeep";var L={created(){if(!this.$options.remember)return;Array.isArray(this.$options.remember)&&(this.$options.remember={data:this.$options.remember}),typeof this.$options.remember=="string"&&(this.$options.remember={data:[this.$options.remember]}),typeof this.$options.remember.data=="string"&&(this.$options.remember={data:[this.$options.remember.data]});let e=this.$options.remember.key instanceof Function?this.$options.remember.key.call(this):this.$options.remember.key,o=_.restore(e),n=this.$options.remember.data.filter(t=>!(this[t]!==null&&typeof this[t]=="object"&&this[t].__rememberable===!1)),l=t=>this[t]!==null&&typeof this[t]=="object"&&typeof this[t].__remember=="function"&&typeof this[t].__restore=="function";n.forEach(t=>{this[t]!==void 0&&o!==void 0&&o[t]!==void 0&&(l(t)?this[t].__restore(o[t]):this[t]=o[t]),this.$watch(t,()=>{_.remember(n.reduce((p,a)=>({...p,[a]:R(l(a)?this[a].__remember():this[a])}),{}),e)},{immediate:!0,deep:!0})})}},x=L;import{router as v}from"@inertiajs/core";import y from"lodash.clonedeep";import V from"lodash.isequal";import{reactive as H,watch as q}from"vue";function P(e,o){let n=typeof e=="string"?e:null,l=typeof e=="object"?e:o,t=n?v.restore(n):null,p=y(l),a=null,m=null,d=r=>r,h=H({...t?t.data:l,isDirty:!1,errors:t?t.errors:{},hasErrors:!1,processing:!1,progress:null,wasSuccessful:!1,recentlySuccessful:!1,data(){return Object.keys(l).reduce((r,i)=>(r[i]=this[i],r),{})},transform(r){return d=r,this},defaults(r,i){return typeof r>"u"?p=this.data():p=Object.assign({},y(p),typeof r=="string"?{[r]:i}:r),this},reset(...r){let i=y(p);return r.length===0?Object.assign(this,i):Object.assign(this,Object.keys(i).filter(s=>r.includes(s)).reduce((s,f)=>(s[f]=i[f],s),{})),this},setError(r,i){return Object.assign(this.errors,typeof r=="string"?{[r]:i}:r),this.hasErrors=Object.keys(this.errors).length>0,this},clearErrors(...r){return this.errors=Object.keys(this.errors).reduce((i,s)=>({...i,...r.length>0&&!r.includes(s)?{[s]:this.errors[s]}:{}}),{}),this.hasErrors=Object.keys(this.errors).length>0,this},submit(r,i,s={}){let f=d(this.data()),g={...s,onCancelToken:u=>{if(a=u,s.onCancelToken)return s.onCancelToken(u)},onBefore:u=>{if(this.wasSuccessful=!1,this.recentlySuccessful=!1,clearTimeout(m),s.onBefore)return s.onBefore(u)},onStart:u=>{if(this.processing=!0,s.onStart)return s.onStart(u)},onProgress:u=>{if(this.progress=u,s.onProgress)return s.onProgress(u)},onSuccess:async u=>{this.processing=!1,this.progress=null,this.clearErrors(),this.wasSuccessful=!0,this.recentlySuccessful=!0,m=setTimeout(()=>this.recentlySuccessful=!1,2e3);let D=s.onSuccess?await s.onSuccess(u):null;return p=y(this.data()),this.isDirty=!1,D},onError:u=>{if(this.processing=!1,this.progress=null,this.clearErrors().setError(u),s.onError)return s.onError(u)},onCancel:()=>{if(this.processing=!1,this.progress=null,s.onCancel)return s.onCancel()},onFinish:u=>{if(this.processing=!1,this.progress=null,a=null,s.onFinish)return s.onFinish(u)}};r==="delete"?v.delete(i,{...g,data:f}):v[r](i,f,g)},get(r,i){this.submit("get",r,i)},post(r,i){this.submit("post",r,i)},put(r,i){this.submit("put",r,i)},patch(r,i){this.submit("patch",r,i)},delete(r,i){this.submit("delete",r,i)},cancel(){a&&a.cancel()},__rememberable:n===null,__remember(){return{data:this.data(),errors:this.errors}},__restore(r){Object.assign(this,r.data),this.setError(r.errors)}});return q(h,r=>{h.isDirty=!V(h.data(),p),n&&v.remember(y(r.__remember()),n)},{immediate:!0,deep:!0}),h}var c=A(null),b=A({}),C=U(null),T=A(null),k=null,N=B({name:"Inertia",props:{initialPage:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!1},titleCallback:{type:Function,required:!1,default:e=>e},onHeadUpdate:{type:Function,required:!1,default:()=>()=>{}}},setup({initialPage:e,initialComponent:o,resolveComponent:n,titleCallback:l,onHeadUpdate:t}){c.value=o?w(o):null,b.value=e,T.value=null;let p=typeof window>"u";return k=M(p,l,t),p||(S.init({initialPage:e,resolveComponent:n,swapComponent:async a=>{c.value=w(a.component),b.value=a.page,T.value=a.preserveState?T.value:Date.now()}}),S.on("navigate",()=>k.forceUpdate())),()=>{if(c.value){c.value.inheritAttrs=!!c.value.inheritAttrs;let a=F(c.value,{...b.value.props,key:T.value});return C.value&&(c.value.layout=C.value,C.value=null),c.value.layout?typeof c.value.layout=="function"?c.value.layout(F,a):(Array.isArray(c.value.layout)?c.value.layout:[c.value.layout]).concat(a).reverse().reduce((m,d)=>(d.inheritAttrs=!!d.inheritAttrs,F(d,{...b.value.props},()=>m))):a}}}}),$=N,E={install(e){S.form=P,Object.defineProperty(e.config.globalProperties,"$inertia",{get:()=>S}),Object.defineProperty(e.config.globalProperties,"$page",{get:()=>b.value}),Object.defineProperty(e.config.globalProperties,"$headManager",{get:()=>k}),e.mixin(x)}};function J(){return b.value}import{setupProgress as W}from"@inertiajs/core";import{createSSRApp as K,h as Q}from"vue";async function I({id:e="app",resolve:o,setup:n,title:l,progress:t={},page:p,render:a}){let m=typeof window>"u",d=m?null:document.getElementById(e),h=p||JSON.parse(d.dataset.page),r=f=>Promise.resolve(o(f)).then(g=>g.default||g),i=[],s=await r(h.component).then(f=>n({el:d,App:$,props:{initialPage:h,initialComponent:f,resolveComponent:r,titleCallback:l,onHeadUpdate:m?g=>i=g:null},plugin:E}));if(!m&&t&&W(t),m){let f=await a(K({render:()=>Q("div",{id:e,"data-page":JSON.stringify(h),innerHTML:s?a(s):""})}));return{head:i,body:f}}}import{defineComponent as z}from"vue";var G=z({props:{title:{type:String,required:!1}},data(){return{provider:this.$headManager.createProvider()}},beforeUnmount(){this.provider.disconnect()},methods:{isUnaryTag(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1},renderTagStart(e){e.props=e.props||{},e.props.inertia=e.props["head-key"]!==void 0?e.props["head-key"]:"";let o=Object.keys(e.props).reduce((n,l)=>{let t=e.props[l];return["key","head-key"].includes(l)?n:t===""?n+` ${l}`:n+` ${l}="${t}"`},"");return`<${e.type}${o}>`},renderTagChildren(e){return typeof e.children=="string"?e.children:e.children.reduce((o,n)=>o+this.renderTag(n),"")},renderTag(e){if(e.type.toString()==="Symbol(Text)")return e.children;if(e.type.toString()==="Symbol()")return"";if(e.type.toString()==="Symbol(Comment)")return"";let o=this.renderTagStart(e);return e.children&&(o+=this.renderTagChildren(e)),this.isUnaryTag(e)||(o+=`</${e.type}>`),o},addTitleElement(e){return this.title&&!e.find(o=>o.startsWith("<title"))&&e.push(`<title inertia>${this.title}</title>`),e},renderNodes(e){return this.addTitleElement(e.flatMap(o=>o.type.toString()==="Symbol(Fragment)"?o.children:o).map(o=>this.renderTag(o)).filter(o=>o))}},render(){this.provider.update(this.renderNodes(this.$slots.default?this.$slots.default():[]))}}),X=G;import{mergeDataIntoQueryString as Y,router as Z,shouldIntercept as ee}from"@inertiajs/core";import{defineComponent as re,h as te}from"vue";var oe=re({name:"Link",props:{as:{type:String,default:"a"},data:{type:Object,default:()=>({})},href:{type:String,required:!0},method:{type:String,default:"get"},replace:{type:Boolean,default:!1},preserveScroll:{type:Boolean,default:!1},preserveState:{type:Boolean,default:null},only:{type:Array,default:()=>[]},headers:{type:Object,default:()=>({})},queryStringArrayFormat:{type:String,default:"brackets"}},setup(e,{slots:o,attrs:n}){return()=>{let l=e.as.toLowerCase(),t=e.method.toLowerCase(),[p,a]=Y(t,e.href||"",e.data,e.queryStringArrayFormat);return l==="a"&&t!=="get"&&console.warn(`Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.
2
+
3
+ Please specify a more appropriate element using the "as" attribute. For example:
4
+
5
+ <Link href="${p}" method="${t}" as="button">...</Link>`),te(e.as,{...n,...l==="a"?{href:p}:{},onClick:m=>{ee(m)&&(m.preventDefault(),Z.visit(p,{data:a,method:t,replace:e.replace,preserveScroll:e.preserveScroll,preserveState:e.preserveState??t!=="get",only:e.only,headers:e.headers,onCancelToken:n.onCancelToken||(()=>({})),onBefore:n.onBefore||(()=>({})),onStart:n.onStart||(()=>({})),onProgress:n.onProgress||(()=>({})),onFinish:n.onFinish||(()=>({})),onCancel:n.onCancel||(()=>({})),onSuccess:n.onSuccess||(()=>({})),onError:n.onError||(()=>({}))}))}},o)}}}),ne=oe;import{router as j}from"@inertiajs/core";import se from"lodash.clonedeep";import{isReactive as ie,reactive as ae,ref as le,watch as pe}from"vue";function O(e,o){if(typeof e=="object"&&e!==null&&e.__rememberable===!1)return e;let n=j.restore(o),l=ie(e)?ae:le,t=typeof e.__remember=="function"&&typeof e.__restore=="function",p=n===void 0?e:l(t?e.__restore(n):n);return pe(p,a=>{j.remember(se(t?e.__remember():a),o)},{immediate:!0,deep:!0}),p}export{X as Head,ne as Link,I as createInertiaApp,or as router,P as useForm,J as usePage,O as useRemember};
2
6
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/remember.js","../src/useForm.js","../src/app.js","../src/createInertiaApp.js","../src/head.js","../src/link.js","../src/useRemember.js"],"sourcesContent":["import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\n\nexport default {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey)\n\n const rememberable = this.$options.remember.data.filter((key) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n })\n\n const hasCallbacks = (key) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n","import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport isEqual from 'lodash.isequal'\nimport { reactive, watch } from 'vue'\n\nexport default function useForm(...args) {\n const rememberKey = typeof args[0] === 'string' ? args[0] : null\n const data = (typeof args[0] === 'string' ? args[1] : args[0]) || {}\n const restored = rememberKey ? router.restore(rememberKey) : null\n let defaults = cloneDeep(data)\n let cancelToken = null\n let recentlySuccessfulTimeoutId = null\n let transform = (data) => data\n\n let form = reactive({\n ...(restored ? restored.data : data),\n isDirty: false,\n errors: restored ? restored.errors : {},\n hasErrors: false,\n processing: false,\n progress: null,\n wasSuccessful: false,\n recentlySuccessful: false,\n data() {\n return Object.keys(data).reduce((carry, key) => {\n carry[key] = this[key]\n return carry\n }, {})\n },\n transform(callback) {\n transform = callback\n\n return this\n },\n defaults(key, value) {\n if (typeof key === 'undefined') {\n defaults = this.data()\n } else {\n defaults = Object.assign({}, cloneDeep(defaults), value ? { [key]: value } : key)\n }\n\n return this\n },\n reset(...fields) {\n let clonedDefaults = cloneDeep(defaults)\n if (fields.length === 0) {\n Object.assign(this, clonedDefaults)\n } else {\n Object.assign(\n this,\n Object.keys(clonedDefaults)\n .filter((key) => fields.includes(key))\n .reduce((carry, key) => {\n carry[key] = clonedDefaults[key]\n return carry\n }, {}),\n )\n }\n\n return this\n },\n setError(key, value) {\n Object.assign(this.errors, value ? { [key]: value } : key)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n clearErrors(...fields) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: this.errors[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n submit(method, url, options = {}) {\n const data = transform(this.data())\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(() => (this.recentlySuccessful = false), 2000)\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n defaults = cloneDeep(this.data())\n this.isDirty = false\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: () => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish()\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data })\n } else {\n router[method](url, data, _options)\n }\n },\n get(url, options) {\n this.submit('get', url, options)\n },\n post(url, options) {\n this.submit('post', url, options)\n },\n put(url, options) {\n this.submit('put', url, options)\n },\n patch(url, options) {\n this.submit('patch', url, options)\n },\n delete(url, options) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n","import { createHeadManager, router } from '@inertiajs/core'\nimport { computed, h, markRaw, ref, shallowRef } from 'vue'\nimport remember from './remember'\nimport useForm from './useForm'\n\nconst component = ref(null)\nconst page = ref({})\nconst layout = shallowRef(null)\nconst key = ref(null)\nlet headManager = null\n\nexport default {\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object,\n required: true,\n },\n initialComponent: {\n type: Object,\n required: false,\n },\n resolveComponent: {\n type: Function,\n required: false,\n },\n titleCallback: {\n type: Function,\n required: false,\n default: (title) => title,\n },\n onHeadUpdate: {\n type: Function,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }) {\n component.value = initialComponent ? markRaw(initialComponent) : null\n page.value = initialPage\n key.value = null\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback, onHeadUpdate)\n\n if (!isServer) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args) => {\n component.value = markRaw(args.component)\n page.value = args.page\n key.value = args.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n}\n\nexport const plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage() {\n return {\n props: computed(() => page.value.props),\n url: computed(() => page.value.url),\n component: computed(() => page.value.component),\n version: computed(() => page.value.version),\n }\n}\n\nexport function defineLayout(component) {\n layout.value = component\n}\n","import { setupProgress } from '@inertiajs/core'\nimport { createSSRApp, h } from 'vue'\nimport App, { plugin } from './app'\n\nexport default async function createInertiaApp({ id = 'app', resolve, setup, title, progress = {}, page, render }) {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const vueApp = await resolveComponent(initialPage.component).then((initialComponent) => {\n return setup({\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: render(vueApp),\n }),\n }),\n )\n\n return { head, body }\n }\n}\n","export default {\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n 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 renderTagStart(node) {\n node.props = node.props || {}\n node.props.inertia = node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = node.props[name]\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n },\n renderTagChildren(node) {\n return typeof node.children === 'string'\n ? node.children\n : node.children.reduce((html, child) => html + this.renderTag(child), '')\n },\n renderTag(node) {\n if (node.type.toString() === 'Symbol(Text)') {\n return node.children\n } else if (node.type.toString() === 'Symbol()') {\n return ''\n } else if (node.type.toString() === 'Symbol(Comment)') {\n return ''\n }\n let html = this.renderTagStart(node)\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n if (!this.isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n },\n addTitleElement(elements) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title inertia>${this.title}</title>`)\n }\n return elements\n },\n renderNodes(nodes) {\n return this.addTitleElement(\n nodes\n .flatMap((node) => (node.type.toString() === 'Symbol(Fragment)' ? node.children : node))\n .map((node) => this.renderTag(node))\n .filter((node) => node),\n )\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n}\n","import { mergeDataIntoQueryString, router, shouldIntercept } from '@inertiajs/core'\nimport { h } from 'vue'\n\nexport default {\n name: 'Link',\n props: {\n as: {\n type: String,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: String,\n },\n method: {\n type: String,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n only: {\n type: Array,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String,\n default: 'brackets',\n },\n },\n setup(props, { slots, attrs }) {\n return (props) => {\n const as = props.as.toLowerCase()\n const method = props.method.toLowerCase()\n const [href, data] = mergeDataIntoQueryString(method, props.href || '', props.data, props.queryStringArrayFormat)\n\n if (as === 'a' && method !== 'get') {\n console.warn(\n `Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes \"Open Link in New Tab/Window\" accessibility issues.\\n\\nPlease specify a more appropriate element using the \"as\" attribute. For example:\\n\\n<Link href=\"${href}\" method=\"${method}\" as=\"button\">...</Link>`,\n )\n }\n\n return h(\n props.as,\n {\n ...attrs,\n ...(as === 'a' ? { href } : {}),\n onClick: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data: data,\n method: method,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method !== 'get',\n only: props.only,\n headers: props.headers,\n onCancelToken: attrs.onCancelToken || (() => ({})),\n onBefore: attrs.onBefore || (() => ({})),\n onStart: attrs.onStart || (() => ({})),\n onProgress: attrs.onProgress || (() => ({})),\n onFinish: attrs.onFinish || (() => ({})),\n onCancel: attrs.onCancel || (() => ({})),\n onSuccess: attrs.onSuccess || (() => ({})),\n onError: attrs.onError || (() => ({})),\n })\n }\n },\n },\n slots,\n )\n }\n },\n}\n","import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport { isReactive, reactive, ref, watch } from 'vue'\n\nexport default function useRemember(data, key) {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = restored === undefined ? data : type(hasCallbacks ? data.__restore(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n"],"names":["created","this","$options","remember","Array","isArray","data","key","call","router","restore","rememberKey","filter","_this","__rememberable","__remember","__restore","rememberable","forEach","undefined","restored","hasCallbacks","$watch","reduce","cloneDeep","immediate","deep","args","reactive","isDirty","errors","hasErrors","processing","progress","wasSuccessful","recentlySuccessful","keys","carry","transform","callback","defaults","value","Object","assign","reset","fields","length","clonedDefaults","includes","setError","clearErrors","field","_this2","submit","method","url","options","onCancelToken","token","cancelToken","onBefore","visit","_this3","clearTimeout","recentlySuccessfulTimeoutId","onStart","onProgress","event","onSuccess","page","_this4","setTimeout","onError","onCancel","onFinish","_options","get","post","put","patch","cancel","watch","form","newValue","isEqual","ref","shallowRef","name","props","initialPage","type","required","initialComponent","resolveComponent","Function","titleCallback","default","title","onHeadUpdate","setup","component","markRaw","headManager","createHeadManager","isServer","init","swapComponent","preserveState","Date","now","on","forceUpdate","inheritAttrs","h","layout","child","concat","reverse","install","app","useForm","defineProperty","config","globalProperties","mixin","computed","version","id","resolve","render","document","getElementById","JSON","parse","el","dataset","then","module","App","elements","plugin","vueApp","setupProgress","createSSRApp","data-page","stringify","innerHTML","head","body","String","provider","$headManager","createProvider","beforeUnmount","disconnect","methods","isUnaryTag","node","indexOf","renderTagStart","inertia","attrs","renderTagChildren","children","html","renderTag","toString","addTitleElement","find","tag","startsWith","push","renderNodes","nodes","flatMap","map","update","$slots","as","href","replace","Boolean","preserveScroll","only","headers","queryStringArrayFormat","slots","toLowerCase","mergeDataIntoQueryString","console","warn","onClick","shouldIntercept","preventDefault","isReactive","remembered"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/app.ts", "../src/remember.ts", "../src/useForm.ts", "../src/createInertiaApp.ts", "../src/head.ts", "../src/link.ts", "../src/useRemember.ts"],
4
+ "sourcesContent": ["export { router } from '@inertiajs/core'\nexport { usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Head } from './head'\nexport { default as Link } from './link'\nexport { default as useForm } from './useForm'\nexport { default as useRemember } from './useRemember'\n", "import { createHeadManager, Page, router } from '@inertiajs/core'\nimport { DefineComponent, defineComponent, h, markRaw, Plugin, PropType, ref, shallowRef } from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps {\n initialPage: Page\n initialComponent?: object\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: (title: string) => string\n onHeadUpdate?: (elements: string[]) => void\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref(null)\nconst page = ref<Partial<Page>>({})\nconst layout = shallowRef(null)\nconst key = ref(null)\nlet headManager = null\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<(title: string) => string>,\n required: false,\n default: (title) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<(elements: string[]) => void>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }) {\n component.value = initialComponent ? markRaw(initialComponent) : null\n page.value = initialPage\n key.value = null\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback, onHeadUpdate)\n\n if (!isServer) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args: VuePageHandlerArgs) => {\n component.value = markRaw(args.component)\n page.value = args.page\n key.value = args.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage() {\n return page.value\n}\n", "import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey)\n\n const rememberable = this.$options.remember.data.filter((key) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n })\n\n const hasCallbacks = (key) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import { Progress, router, VisitOptions } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport isEqual from 'lodash.isequal'\nimport { reactive, watch } from 'vue'\n\ninterface InertiaFormProps<TForm extends Record<string, unknown>> {\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n data(): TForm\n transform(callback: (data: TForm) => object): this\n defaults(): this\n defaults(field: keyof TForm, value: string): this\n defaults(fields: Record<keyof TForm, string>): this\n reset(...fields: (keyof TForm)[]): this\n clearErrors(...fields: (keyof TForm)[]): this\n setError(field: keyof TForm, value: string): this\n setError(errors: Record<keyof TForm, string>): this\n submit(method: string, url: string, options?: Partial<VisitOptions>): void\n get(url: string, options?: Partial<VisitOptions>): void\n post(url: string, options?: Partial<VisitOptions>): void\n put(url: string, options?: Partial<VisitOptions>): void\n patch(url: string, options?: Partial<VisitOptions>): void\n delete(url: string, options?: Partial<VisitOptions>): void\n cancel(): void\n}\n\ntype InertiaForm<TForm extends Record<string, unknown>> = TForm & InertiaFormProps<TForm>\n\nexport default function useForm<TForm extends Record<string, unknown>>(data: TForm): InertiaForm<TForm>\nexport default function useForm<TForm extends Record<string, unknown>>(\n rememberKey: string,\n data: TForm,\n): InertiaForm<TForm>\nexport default function useForm<TForm extends Record<string, unknown>>(\n rememberKeyOrData: string | TForm,\n maybeData?: TForm,\n): InertiaForm<TForm> {\n const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null\n const data = typeof rememberKeyOrData === 'object' ? rememberKeyOrData : maybeData\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<keyof TForm, string> })\n : null\n let defaults = cloneDeep(data)\n let cancelToken = null\n let recentlySuccessfulTimeoutId = null\n let transform = (data) => data\n\n let form = reactive({\n ...(restored ? restored.data : data),\n isDirty: false,\n errors: restored ? restored.errors : {},\n hasErrors: false,\n processing: false,\n progress: null,\n wasSuccessful: false,\n recentlySuccessful: false,\n data() {\n return (Object.keys(data) as Array<keyof TForm>).reduce((carry, key) => {\n // @ts-expect-error\n carry[key] = this[key]\n return carry\n }, {} as Partial<TForm>) as TForm\n },\n transform(callback) {\n transform = callback\n\n return this\n },\n defaults(fieldOrFields?: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {\n if (typeof fieldOrFields === 'undefined') {\n defaults = this.data()\n } else {\n defaults = Object.assign(\n {},\n cloneDeep(defaults),\n typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields,\n )\n }\n\n return this\n },\n reset(...fields) {\n let clonedDefaults = cloneDeep(defaults)\n if (fields.length === 0) {\n Object.assign(this, clonedDefaults)\n } else {\n Object.assign(\n this,\n Object.keys(clonedDefaults)\n .filter((key) => fields.includes(key))\n .reduce((carry, key) => {\n carry[key] = clonedDefaults[key]\n return carry\n }, {}),\n )\n }\n\n return this\n },\n setError(fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {\n Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n clearErrors(...fields) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: this.errors[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n submit(method, url, options: VisitOptions = {}) {\n const data = transform(this.data())\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(() => (this.recentlySuccessful = false), 2000)\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n defaults = cloneDeep(this.data())\n this.isDirty = false\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = 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 })\n } else {\n router[method](url, data, _options)\n }\n },\n get(url, options) {\n this.submit('get', url, options)\n },\n post(url, options) {\n this.submit('post', url, options)\n },\n put(url, options) {\n this.submit('put', url, options)\n },\n patch(url, options) {\n this.submit('patch', url, options)\n },\n delete(url, options) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n", "import { Page, setupProgress } from '@inertiajs/core'\nimport { App as VueApp, createSSRApp, DefineComponent, h, Plugin } from 'vue'\nimport App, { InertiaApp, InertiaAppProps, plugin } from './app'\n\ninterface CreateInertiaAppProps {\n id?: string\n resolve: (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }\n setup: (props: { el: Element; App: InertiaApp; props: InertiaAppProps; plugin: Plugin }) => void | VueApp\n title?: (title: string) => string\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n page?: Page\n render?: (app: VueApp) => Promise<string>\n}\n\nexport default async function createInertiaApp({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: CreateInertiaAppProps): Promise<{ head: string[]; body: string }> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const vueApp = await resolveComponent(initialPage.component).then((initialComponent) => {\n return setup({\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n }),\n }),\n )\n\n return { head, body }\n }\n}\n", "import { defineComponent, DefineComponent } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n 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 renderTagStart(node) {\n node.props = node.props || {}\n node.props.inertia = node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = node.props[name]\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n },\n renderTagChildren(node) {\n return typeof node.children === 'string'\n ? node.children\n : node.children.reduce((html, child) => html + this.renderTag(child), '')\n },\n renderTag(node) {\n if (node.type.toString() === 'Symbol(Text)') {\n return node.children\n } else if (node.type.toString() === 'Symbol()') {\n return ''\n } else if (node.type.toString() === 'Symbol(Comment)') {\n return ''\n }\n let html = this.renderTagStart(node)\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n if (!this.isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n },\n addTitleElement(elements) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title inertia>${this.title}</title>`)\n }\n return elements\n },\n renderNodes(nodes) {\n return this.addTitleElement(\n nodes\n .flatMap((node) => (node.type.toString() === 'Symbol(Fragment)' ? node.children : node))\n .map((node) => this.renderTag(node))\n .filter((node) => node),\n )\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n})\n\nexport default Head\n", "import { mergeDataIntoQueryString, Method, PageProps, Progress, router, shouldIntercept } from '@inertiajs/core'\nimport { defineComponent, DefineComponent, h, PropType } from 'vue'\n\ninterface InertiaLinkProps {\n as?: string\n data?: object\n href: string\n method?: Method\n headers?: object\n onClick?: (event: MouseEvent | KeyboardEvent) => void\n preserveScroll?: boolean | ((props: PageProps) => boolean)\n preserveState?: boolean | ((props: PageProps) => boolean) | null\n replace?: boolean\n only?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: () => void\n onProgress?: (progress: Progress) => void\n onFinish?: () => void\n onCancel?: () => void\n onSuccess?: () => void\n queryStringArrayFormat?: 'brackets' | 'indices'\n}\n\ntype InertiaLink = DefineComponent<InertiaLinkProps>\n\nconst Link: InertiaLink = defineComponent({\n name: 'Link',\n props: {\n as: {\n type: String,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: String,\n required: true,\n },\n method: {\n type: String as PropType<Method>,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n only: {\n type: Array<string>,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<'brackets' | 'indices'>,\n default: 'brackets',\n },\n },\n setup(props, { slots, attrs }) {\n return () => {\n const as = props.as.toLowerCase()\n const method = props.method.toLowerCase() as Method\n const [href, data] = mergeDataIntoQueryString(method, props.href || '', props.data, props.queryStringArrayFormat)\n\n if (as === 'a' && method !== 'get') {\n console.warn(\n `Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes \"Open Link in New Tab/Window\" accessibility issues.\\n\\nPlease specify a more appropriate element using the \"as\" attribute. For example:\\n\\n<Link href=\"${href}\" method=\"${method}\" as=\"button\">...</Link>`,\n )\n }\n\n return h(\n props.as,\n {\n ...attrs,\n ...(as === 'a' ? { href } : {}),\n onClick: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data: data,\n method: method,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method !== 'get',\n only: props.only,\n headers: props.headers,\n // @ts-expect-error\n onCancelToken: attrs.onCancelToken || (() => ({})),\n // @ts-expect-error\n onBefore: attrs.onBefore || (() => ({})),\n // @ts-expect-error\n onStart: attrs.onStart || (() => ({})),\n // @ts-expect-error\n onProgress: attrs.onProgress || (() => ({})),\n // @ts-expect-error\n onFinish: attrs.onFinish || (() => ({})),\n // @ts-expect-error\n onCancel: attrs.onCancel || (() => ({})),\n // @ts-expect-error\n onSuccess: attrs.onSuccess || (() => ({})),\n // @ts-expect-error\n onError: attrs.onError || (() => ({})),\n })\n }\n },\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = restored === undefined ? data : type(hasCallbacks ? data.__restore(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n"],
5
+ "mappings": "AAAA,OAAS,UAAAA,OAAc,kBCAvB,OAAS,qBAAAC,EAAyB,UAAAC,MAAc,kBAChD,OAA0B,mBAAAC,EAAiB,KAAAC,EAAG,WAAAC,EAA2B,OAAAC,EAAK,cAAAC,MAAkB,MCDhG,OAAS,UAAAC,MAAc,kBACvB,OAAOC,MAAe,mBAGtB,IAAMC,EAA6B,CACjC,SAAU,CACR,GAAI,CAAC,KAAK,SAAS,SACjB,OAGE,MAAM,QAAQ,KAAK,SAAS,QAAQ,IACtC,KAAK,SAAS,SAAW,CAAE,KAAM,KAAK,SAAS,QAAS,GAGtD,OAAO,KAAK,SAAS,UAAa,WACpC,KAAK,SAAS,SAAW,CAAE,KAAM,CAAC,KAAK,SAAS,QAAQ,CAAE,GAGxD,OAAO,KAAK,SAAS,SAAS,MAAS,WACzC,KAAK,SAAS,SAAW,CAAE,KAAM,CAAC,KAAK,SAAS,SAAS,IAAI,CAAE,GAGjE,IAAMC,EACJ,KAAK,SAAS,SAAS,eAAe,SAClC,KAAK,SAAS,SAAS,IAAI,KAAK,IAAI,EACpC,KAAK,SAAS,SAAS,IAEvBC,EAAWJ,EAAO,QAAQG,CAAW,EAErCE,EAAe,KAAK,SAAS,SAAS,KAAK,OAAQC,GAChD,EAAE,KAAKA,CAAG,IAAM,MAAQ,OAAO,KAAKA,CAAG,GAAM,UAAY,KAAKA,CAAG,EAAE,iBAAmB,GAC9F,EAEKC,EAAgBD,GAElB,KAAKA,CAAG,IAAM,MACd,OAAO,KAAKA,CAAG,GAAM,UACrB,OAAO,KAAKA,CAAG,EAAE,YAAe,YAChC,OAAO,KAAKA,CAAG,EAAE,WAAc,WAInCD,EAAa,QAASC,GAAQ,CACxB,KAAKA,CAAG,IAAM,QAAaF,IAAa,QAAaA,EAASE,CAAG,IAAM,SACzEC,EAAaD,CAAG,EAAI,KAAKA,CAAG,EAAE,UAAUF,EAASE,CAAG,CAAC,EAAK,KAAKA,CAAG,EAAIF,EAASE,CAAG,GAGpF,KAAK,OACHA,EACA,IAAM,CACJN,EAAO,SACLK,EAAa,OACX,CAACG,EAAMF,KAAS,CACd,GAAGE,EACH,CAACF,CAAG,EAAGL,EAAUM,EAAaD,CAAG,EAAI,KAAKA,CAAG,EAAE,WAAW,EAAI,KAAKA,CAAG,CAAC,CACzE,GACA,CAAC,CACH,EACAH,CACF,CACF,EACA,CAAE,UAAW,GAAM,KAAM,EAAK,CAChC,CACF,CAAC,CACH,CACF,EAEOM,EAAQP,ECnEf,OAAmB,UAAAQ,MAA4B,kBAC/C,OAAOC,MAAe,mBACtB,OAAOC,MAAa,iBACpB,OAAS,YAAAC,EAAU,SAAAC,MAAa,MAmCjB,SAARC,EACLC,EACAC,EACoB,CACpB,IAAMC,EAAc,OAAOF,GAAsB,SAAWA,EAAoB,KAC1EG,EAAO,OAAOH,GAAsB,SAAWA,EAAoBC,EACnEG,EAAWF,EACZR,EAAO,QAAQQ,CAAW,EAC3B,KACAG,EAAWV,EAAUQ,CAAI,EACzBG,EAAc,KACdC,EAA8B,KAC9BC,EAAaL,GAASA,EAEtBM,EAAOZ,EAAS,CAClB,GAAIO,EAAWA,EAAS,KAAOD,EAC/B,QAAS,GACT,OAAQC,EAAWA,EAAS,OAAS,CAAC,EACtC,UAAW,GACX,WAAY,GACZ,SAAU,KACV,cAAe,GACf,mBAAoB,GACpB,MAAO,CACL,OAAQ,OAAO,KAAKD,CAAI,EAAyB,OAAO,CAACO,EAAOC,KAE9DD,EAAMC,CAAG,EAAI,KAAKA,CAAG,EACdD,GACN,CAAC,CAAmB,CACzB,EACA,UAAUE,EAAU,CAClB,OAAAJ,EAAYI,EAEL,IACT,EACA,SAASC,EAA2DC,EAAqB,CACvF,OAAI,OAAOD,EAAkB,IAC3BR,EAAW,KAAK,KAAK,EAErBA,EAAW,OAAO,OAChB,CAAC,EACDV,EAAUU,CAAQ,EAClB,OAAOQ,GAAkB,SAAW,CAAE,CAACA,CAAa,EAAGC,CAAW,EAAID,CACxE,EAGK,IACT,EACA,SAASE,EAAQ,CACf,IAAIC,EAAiBrB,EAAUU,CAAQ,EACvC,OAAIU,EAAO,SAAW,EACpB,OAAO,OAAO,KAAMC,CAAc,EAElC,OAAO,OACL,KACA,OAAO,KAAKA,CAAc,EACvB,OAAQL,GAAQI,EAAO,SAASJ,CAAG,CAAC,EACpC,OAAO,CAACD,EAAOC,KACdD,EAAMC,CAAG,EAAIK,EAAeL,CAAG,EACxBD,GACN,CAAC,CAAC,CACT,EAGK,IACT,EACA,SAASG,EAA0DC,EAAqB,CACtF,cAAO,OAAO,KAAK,OAAQ,OAAOD,GAAkB,SAAW,CAAE,CAACA,CAAa,EAAGC,CAAW,EAAID,CAAa,EAE9G,KAAK,UAAY,OAAO,KAAK,KAAK,MAAM,EAAE,OAAS,EAE5C,IACT,EACA,eAAeE,EAAQ,CACrB,YAAK,OAAS,OAAO,KAAK,KAAK,MAAM,EAAE,OACrC,CAACL,EAAOO,KAAW,CACjB,GAAGP,EACH,GAAIK,EAAO,OAAS,GAAK,CAACA,EAAO,SAASE,CAAK,EAAI,CAAE,CAACA,CAAK,EAAG,KAAK,OAAOA,CAAK,CAAE,EAAI,CAAC,CACxF,GACA,CAAC,CACH,EAEA,KAAK,UAAY,OAAO,KAAK,KAAK,MAAM,EAAE,OAAS,EAE5C,IACT,EACA,OAAOC,EAAQC,EAAKC,EAAwB,CAAC,EAAG,CAC9C,IAAMjB,EAAOK,EAAU,KAAK,KAAK,CAAC,EAC5Ba,EAAW,CACf,GAAGD,EACH,cAAgBE,GAAU,CAGxB,GAFAhB,EAAcgB,EAEVF,EAAQ,cACV,OAAOA,EAAQ,cAAcE,CAAK,CAEtC,EACA,SAAWC,GAAU,CAKnB,GAJA,KAAK,cAAgB,GACrB,KAAK,mBAAqB,GAC1B,aAAahB,CAA2B,EAEpCa,EAAQ,SACV,OAAOA,EAAQ,SAASG,CAAK,CAEjC,EACA,QAAUA,GAAU,CAGlB,GAFA,KAAK,WAAa,GAEdH,EAAQ,QACV,OAAOA,EAAQ,QAAQG,CAAK,CAEhC,EACA,WAAaC,GAAU,CAGrB,GAFA,KAAK,SAAWA,EAEZJ,EAAQ,WACV,OAAOA,EAAQ,WAAWI,CAAK,CAEnC,EACA,UAAW,MAAOC,GAAS,CACzB,KAAK,WAAa,GAClB,KAAK,SAAW,KAChB,KAAK,YAAY,EACjB,KAAK,cAAgB,GACrB,KAAK,mBAAqB,GAC1BlB,EAA8B,WAAW,IAAO,KAAK,mBAAqB,GAAQ,GAAI,EAEtF,IAAMmB,EAAYN,EAAQ,UAAY,MAAMA,EAAQ,UAAUK,CAAI,EAAI,KACtE,OAAApB,EAAWV,EAAU,KAAK,KAAK,CAAC,EAChC,KAAK,QAAU,GACR+B,CACT,EACA,QAAUC,GAAW,CAKnB,GAJA,KAAK,WAAa,GAClB,KAAK,SAAW,KAChB,KAAK,YAAY,EAAE,SAASA,CAAM,EAE9BP,EAAQ,QACV,OAAOA,EAAQ,QAAQO,CAAM,CAEjC,EACA,SAAU,IAAM,CAId,GAHA,KAAK,WAAa,GAClB,KAAK,SAAW,KAEZP,EAAQ,SACV,OAAOA,EAAQ,SAAS,CAE5B,EACA,SAAWG,GAAU,CAKnB,GAJA,KAAK,WAAa,GAClB,KAAK,SAAW,KAChBjB,EAAc,KAEVc,EAAQ,SACV,OAAOA,EAAQ,SAASG,CAAK,CAEjC,CACF,EAEIL,IAAW,SACbxB,EAAO,OAAOyB,EAAK,CAAE,GAAGE,EAAU,KAAAlB,CAAK,CAAC,EAExCT,EAAOwB,CAAM,EAAEC,EAAKhB,EAAMkB,CAAQ,CAEtC,EACA,IAAIF,EAAKC,EAAS,CAChB,KAAK,OAAO,MAAOD,EAAKC,CAAO,CACjC,EACA,KAAKD,EAAKC,EAAS,CACjB,KAAK,OAAO,OAAQD,EAAKC,CAAO,CAClC,EACA,IAAID,EAAKC,EAAS,CAChB,KAAK,OAAO,MAAOD,EAAKC,CAAO,CACjC,EACA,MAAMD,EAAKC,EAAS,CAClB,KAAK,OAAO,QAASD,EAAKC,CAAO,CACnC,EACA,OAAOD,EAAKC,EAAS,CACnB,KAAK,OAAO,SAAUD,EAAKC,CAAO,CACpC,EACA,QAAS,CACHd,GACFA,EAAY,OAAO,CAEvB,EACA,eAAgBJ,IAAgB,KAChC,YAAa,CACX,MAAO,CAAE,KAAM,KAAK,KAAK,EAAG,OAAQ,KAAK,MAAO,CAClD,EACA,UAAUE,EAAU,CAClB,OAAO,OAAO,KAAMA,EAAS,IAAI,EACjC,KAAK,SAASA,EAAS,MAAM,CAC/B,CACF,CAAC,EAED,OAAAN,EACEW,EACCmB,GAAa,CACZnB,EAAK,QAAU,CAACb,EAAQa,EAAK,KAAK,EAAGJ,CAAQ,EACzCH,GACFR,EAAO,SAASC,EAAUiC,EAAS,WAAW,CAAC,EAAG1B,CAAW,CAEjE,EACA,CAAE,UAAW,GAAM,KAAM,EAAK,CAChC,EAEOO,CACT,CFvOA,IAAMoB,EAAYC,EAAI,IAAI,EACpBC,EAAOD,EAAmB,CAAC,CAAC,EAC5BE,EAASC,EAAW,IAAI,EACxBC,EAAMJ,EAAI,IAAI,EAChBK,EAAc,KAEZC,EAAkBC,EAAgB,CACtC,KAAM,UACN,MAAO,CACL,YAAa,CACX,KAAM,OACN,SAAU,EACZ,EACA,iBAAkB,CAChB,KAAM,OACN,SAAU,EACZ,EACA,iBAAkB,CAChB,KAAM,SACN,SAAU,EACZ,EACA,cAAe,CACb,KAAM,SACN,SAAU,GACV,QAAUC,GAAUA,CACtB,EACA,aAAc,CACZ,KAAM,SACN,SAAU,GACV,QAAS,IAAM,IAAM,CAAC,CACxB,CACF,EACA,MAAM,CAAE,YAAAC,EAAa,iBAAAC,EAAkB,iBAAAC,EAAkB,cAAAC,EAAe,aAAAC,CAAa,EAAG,CACtFd,EAAU,MAAQW,EAAmBI,EAAQJ,CAAgB,EAAI,KACjET,EAAK,MAAQQ,EACbL,EAAI,MAAQ,KAEZ,IAAMW,EAAW,OAAO,OAAW,IACnC,OAAAV,EAAcW,EAAkBD,EAAUH,EAAeC,CAAY,EAEhEE,IACHE,EAAO,KAAK,CACV,YAAAR,EACA,iBAAAE,EACA,cAAe,MAAOO,GAA6B,CACjDnB,EAAU,MAAQe,EAAQI,EAAK,SAAS,EACxCjB,EAAK,MAAQiB,EAAK,KAClBd,EAAI,MAAQc,EAAK,cAAgBd,EAAI,MAAQ,KAAK,IAAI,CACxD,CACF,CAAC,EAEDa,EAAO,GAAG,WAAY,IAAMZ,EAAY,YAAY,CAAC,GAGhD,IAAM,CACX,GAAIN,EAAU,MAAO,CACnBA,EAAU,MAAM,aAAe,CAAC,CAACA,EAAU,MAAM,aAEjD,IAAMoB,EAAQC,EAAErB,EAAU,MAAO,CAC/B,GAAGE,EAAK,MAAM,MACd,IAAKG,EAAI,KACX,CAAC,EAOD,OALIF,EAAO,QACTH,EAAU,MAAM,OAASG,EAAO,MAChCA,EAAO,MAAQ,MAGbH,EAAU,MAAM,OACd,OAAOA,EAAU,MAAM,QAAW,WAC7BA,EAAU,MAAM,OAAOqB,EAAGD,CAAK,GAGhC,MAAM,QAAQpB,EAAU,MAAM,MAAM,EAAIA,EAAU,MAAM,OAAS,CAACA,EAAU,MAAM,MAAM,GAC7F,OAAOoB,CAAK,EACZ,QAAQ,EACR,OAAO,CAACA,EAAOjB,KACdA,EAAO,aAAe,CAAC,CAACA,EAAO,aACxBkB,EAAElB,EAAQ,CAAE,GAAGD,EAAK,MAAM,KAAM,EAAG,IAAMkB,CAAK,EACtD,EAGEA,CACT,CACF,CACF,CACF,CAAC,EACME,EAAQf,EAEFgB,EAAiB,CAC5B,QAAQC,EAAK,CACXN,EAAO,KAAOO,EAEd,OAAO,eAAeD,EAAI,OAAO,iBAAkB,WAAY,CAAE,IAAK,IAAMN,CAAO,CAAC,EACpF,OAAO,eAAeM,EAAI,OAAO,iBAAkB,QAAS,CAAE,IAAK,IAAMtB,EAAK,KAAM,CAAC,EACrF,OAAO,eAAesB,EAAI,OAAO,iBAAkB,eAAgB,CAAE,IAAK,IAAMlB,CAAY,CAAC,EAE7FkB,EAAI,MAAME,CAAQ,CACpB,CACF,EAEO,SAASC,GAAU,CACxB,OAAOzB,EAAK,KACd,CGvHA,OAAe,iBAAA0B,MAAqB,kBACpC,OAAwB,gBAAAC,EAA+B,KAAAC,MAAiB,MAoBxE,eAAOC,EAAwC,CAC7C,GAAAC,EAAK,MACL,QAAAC,EACA,MAAAC,EACA,MAAAC,EACA,SAAAC,EAAW,CAAC,EACZ,KAAAC,EACA,OAAAC,CACF,EAAqE,CACnE,IAAMC,EAAW,OAAO,OAAW,IAC7BC,EAAKD,EAAW,KAAO,SAAS,eAAeP,CAAE,EACjDS,EAAcJ,GAAQ,KAAK,MAAMG,EAAG,QAAQ,IAAI,EAChDE,EAAoBC,GAAS,QAAQ,QAAQV,EAAQU,CAAI,CAAC,EAAE,KAAMC,GAAWA,EAAO,SAAWA,CAAM,EAEvGC,EAAO,CAAC,EAENC,EAAS,MAAMJ,EAAiBD,EAAY,SAAS,EAAE,KAAMM,GAC1Db,EAAM,CACX,GAAAM,EACA,IAAAQ,EACA,MAAO,CACL,YAAAP,EACA,iBAAAM,EACA,iBAAAL,EACA,cAAeP,EACf,aAAcI,EAAYU,GAAcJ,EAAOI,EAAY,IAC7D,EACA,OAAAC,CACF,CAAC,CACF,EAMD,GAJI,CAACX,GAAYH,GACfe,EAAcf,CAAQ,EAGpBG,EAAU,CACZ,IAAMa,EAAO,MAAMd,EACjBe,EAAa,CACX,OAAQ,IACNC,EAAE,MAAO,CACP,GAAAtB,EACA,YAAa,KAAK,UAAUS,CAAW,EACvC,UAAWK,EAASR,EAAOQ,CAAM,EAAI,EACvC,CAAC,CACL,CAAC,CACH,EAEA,MAAO,CAAE,KAAAD,EAAM,KAAAO,CAAK,CACtB,CACF,CCtEA,OAAS,mBAAAG,MAAwC,MAMjD,IAAMC,EAAoBD,EAAgB,CACxC,MAAO,CACL,MAAO,CACL,KAAM,OACN,SAAU,EACZ,CACF,EACA,MAAO,CACL,MAAO,CACL,SAAU,KAAK,aAAa,eAAe,CAC7C,CACF,EACA,eAAgB,CACd,KAAK,SAAS,WAAW,CAC3B,EACA,QAAS,CACP,WAAWE,EAAM,CACf,MACE,CACE,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,OACA,QACA,SACA,QACA,KACF,EAAE,QAAQA,EAAK,IAAI,EAAI,EAE3B,EACA,eAAeA,EAAM,CACnBA,EAAK,MAAQA,EAAK,OAAS,CAAC,EAC5BA,EAAK,MAAM,QAAUA,EAAK,MAAM,UAAU,IAAM,OAAYA,EAAK,MAAM,UAAU,EAAI,GACrF,IAAMC,EAAQ,OAAO,KAAKD,EAAK,KAAK,EAAE,OAAO,CAACE,EAAOC,IAAS,CAC5D,IAAMC,EAAQJ,EAAK,MAAMG,CAAI,EAC7B,MAAI,CAAC,MAAO,UAAU,EAAE,SAASA,CAAI,EAC5BD,EACEE,IAAU,GACZF,EAAQ,IAAIC,IAEZD,EAAQ,IAAIC,MAASC,IAEhC,EAAG,EAAE,EACL,MAAO,IAAIJ,EAAK,OAAOC,IACzB,EACA,kBAAkBD,EAAM,CACtB,OAAO,OAAOA,EAAK,UAAa,SAC5BA,EAAK,SACLA,EAAK,SAAS,OAAO,CAACK,EAAMC,IAAUD,EAAO,KAAK,UAAUC,CAAK,EAAG,EAAE,CAC5E,EACA,UAAUN,EAAM,CACd,GAAIA,EAAK,KAAK,SAAS,IAAM,eAC3B,OAAOA,EAAK,SACP,GAAIA,EAAK,KAAK,SAAS,IAAM,WAClC,MAAO,GACF,GAAIA,EAAK,KAAK,SAAS,IAAM,kBAClC,MAAO,GAET,IAAIK,EAAO,KAAK,eAAeL,CAAI,EACnC,OAAIA,EAAK,WACPK,GAAQ,KAAK,kBAAkBL,CAAI,GAEhC,KAAK,WAAWA,CAAI,IACvBK,GAAQ,KAAKL,EAAK,SAEbK,CACT,EACA,gBAAgBE,EAAU,CACxB,OAAI,KAAK,OAAS,CAACA,EAAS,KAAMC,GAAQA,EAAI,WAAW,QAAQ,CAAC,GAChED,EAAS,KAAK,kBAAkB,KAAK,eAAe,EAE/CA,CACT,EACA,YAAYE,EAAO,CACjB,OAAO,KAAK,gBACVA,EACG,QAAST,GAAUA,EAAK,KAAK,SAAS,IAAM,mBAAqBA,EAAK,SAAWA,CAAK,EACtF,IAAKA,GAAS,KAAK,UAAUA,CAAI,CAAC,EAClC,OAAQA,GAASA,CAAI,CAC1B,CACF,CACF,EACA,QAAS,CACP,KAAK,SAAS,OAAO,KAAK,YAAY,KAAK,OAAO,QAAU,KAAK,OAAO,QAAQ,EAAI,CAAC,CAAC,CAAC,CACzF,CACF,CAAC,EAEMU,EAAQX,ECpGf,OAAS,4BAAAY,EAAuD,UAAAC,EAAQ,mBAAAC,OAAuB,kBAC/F,OAAS,mBAAAC,GAAkC,KAAAC,OAAmB,MAyB9D,IAAMC,GAAoBF,GAAgB,CACxC,KAAM,OACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,GACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,KAAO,CAAC,EACnB,EACA,KAAM,CACJ,KAAM,OACN,SAAU,EACZ,EACA,OAAQ,CACN,KAAM,OACN,QAAS,KACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,eAAgB,CACd,KAAM,QACN,QAAS,EACX,EACA,cAAe,CACb,KAAM,QACN,QAAS,IACX,EACA,KAAM,CACJ,KAAM,MACN,QAAS,IAAM,CAAC,CAClB,EACA,QAAS,CACP,KAAM,OACN,QAAS,KAAO,CAAC,EACnB,EACA,uBAAwB,CACtB,KAAM,OACN,QAAS,UACX,CACF,EACA,MAAMG,EAAO,CAAE,MAAAC,EAAO,MAAAC,CAAM,EAAG,CAC7B,MAAO,IAAM,CACX,IAAMC,EAAKH,EAAM,GAAG,YAAY,EAC1BI,EAASJ,EAAM,OAAO,YAAY,EAClC,CAACK,EAAMC,CAAI,EAAIZ,EAAyBU,EAAQJ,EAAM,MAAQ,GAAIA,EAAM,KAAMA,EAAM,sBAAsB,EAEhH,OAAIG,IAAO,KAAOC,IAAW,OAC3B,QAAQ,KACN;AAAA;AAAA;AAAA;AAAA,cAA+NC,cAAiBD,2BAClP,EAGKN,GACLE,EAAM,GACN,CACE,GAAGE,EACH,GAAIC,IAAO,IAAM,CAAE,KAAAE,CAAK,EAAI,CAAC,EAC7B,QAAUE,GAAU,CACdX,GAAgBW,CAAK,IACvBA,EAAM,eAAe,EAErBZ,EAAO,MAAMU,EAAM,CACjB,KAAMC,EACN,OAAQF,EACR,QAASJ,EAAM,QACf,eAAgBA,EAAM,eACtB,cAAeA,EAAM,eAAiBI,IAAW,MACjD,KAAMJ,EAAM,KACZ,QAASA,EAAM,QAEf,cAAeE,EAAM,gBAAkB,KAAO,CAAC,IAE/C,SAAUA,EAAM,WAAa,KAAO,CAAC,IAErC,QAASA,EAAM,UAAY,KAAO,CAAC,IAEnC,WAAYA,EAAM,aAAe,KAAO,CAAC,IAEzC,SAAUA,EAAM,WAAa,KAAO,CAAC,IAErC,SAAUA,EAAM,WAAa,KAAO,CAAC,IAErC,UAAWA,EAAM,YAAc,KAAO,CAAC,IAEvC,QAASA,EAAM,UAAY,KAAO,CAAC,GACrC,CAAC,EAEL,CACF,EACAD,CACF,CACF,CACF,CACF,CAAC,EAEMO,GAAQT,GC7Hf,OAAS,UAAAU,MAAc,kBACvB,OAAOC,OAAe,mBACtB,OAAS,cAAAC,GAAY,YAAAC,GAAU,OAAAC,GAAU,SAAAC,OAAa,MAEvC,SAARC,EACLC,EACAC,EACY,CACZ,GAAI,OAAOD,GAAS,UAAYA,IAAS,MAAQA,EAAK,iBAAmB,GACvE,OAAOA,EAGT,IAAME,EAAWT,EAAO,QAAQQ,CAAG,EAC7BE,EAAOR,GAAWK,CAAI,EAAIJ,GAAWC,GACrCO,EAAe,OAAOJ,EAAK,YAAe,YAAc,OAAOA,EAAK,WAAc,WAClFK,EAAaH,IAAa,OAAYF,EAAOG,EAAKC,EAAeJ,EAAK,UAAUE,CAAQ,EAAIA,CAAQ,EAE1G,OAAAJ,GACEO,EACCC,GAAa,CACZb,EAAO,SAASC,GAAUU,EAAeJ,EAAK,WAAW,EAAIM,CAAQ,EAAGL,CAAG,CAC7E,EACA,CAAE,UAAW,GAAM,KAAM,EAAK,CAChC,EAEOI,CACT",
6
+ "names": ["router", "createHeadManager", "router", "defineComponent", "h", "markRaw", "ref", "shallowRef", "router", "cloneDeep", "remember", "rememberKey", "restored", "rememberable", "key", "hasCallbacks", "data", "remember_default", "router", "cloneDeep", "isEqual", "reactive", "watch", "useForm", "rememberKeyOrData", "maybeData", "rememberKey", "data", "restored", "defaults", "cancelToken", "recentlySuccessfulTimeoutId", "transform", "form", "carry", "key", "callback", "fieldOrFields", "maybeValue", "fields", "clonedDefaults", "field", "method", "url", "options", "_options", "token", "visit", "event", "page", "onSuccess", "errors", "newValue", "component", "ref", "page", "layout", "shallowRef", "key", "headManager", "App", "defineComponent", "title", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "markRaw", "isServer", "createHeadManager", "router", "args", "child", "h", "app_default", "plugin", "app", "useForm", "remember_default", "usePage", "setupProgress", "createSSRApp", "h", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "vueApp", "initialComponent", "app_default", "elements", "plugin", "setupProgress", "body", "createSSRApp", "h", "defineComponent", "Head", "node", "attrs", "carry", "name", "value", "html", "child", "elements", "tag", "nodes", "head_default", "mergeDataIntoQueryString", "router", "shouldIntercept", "defineComponent", "h", "Link", "props", "slots", "attrs", "as", "method", "href", "data", "event", "link_default", "router", "cloneDeep", "isReactive", "reactive", "ref", "watch", "useRemember", "data", "key", "restored", "type", "hasCallbacks", "remembered", "newValue"]
7
+ }
package/dist/index.js CHANGED
@@ -1,2 +1,6 @@
1
- function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var r=require("@inertiajs/core"),t=require("vue"),n=e(require("lodash.clonedeep")),o=e(require("lodash.isequal"));function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}var u={created:function(){var e=this;if(this.$options.remember){Array.isArray(this.$options.remember)&&(this.$options.remember={data:this.$options.remember}),"string"==typeof this.$options.remember&&(this.$options.remember={data:[this.$options.remember]}),"string"==typeof this.$options.remember.data&&(this.$options.remember={data:[this.$options.remember.data]});var t=this.$options.remember.key instanceof Function?this.$options.remember.key.call(this):this.$options.remember.key,o=r.router.restore(t),u=this.$options.remember.data.filter(function(r){return!(null!==e[r]&&"object"==typeof e[r]&&!1===e[r].__rememberable)}),a=function(r){return null!==e[r]&&"object"==typeof e[r]&&"function"==typeof e[r].__remember&&"function"==typeof e[r].__restore};u.forEach(function(s){void 0!==e[s]&&void 0!==o&&void 0!==o[s]&&(a(s)?e[s].__restore(o[s]):e[s]=o[s]),e.$watch(s,function(){r.router.remember(u.reduce(function(r,t){var o;return i({},r,((o={})[t]=n(a(t)?e[t].__remember():e[t]),o))},{}),t)},{immediate:!0,deep:!0})})}}};function a(){var e=[].slice.call(arguments),u="string"==typeof e[0]?e[0]:null,a=("string"==typeof e[0]?e[1]:e[0])||{},s=u?r.router.restore(u):null,c=n(a),l=null,f=null,p=function(e){return e},d=t.reactive(i({},s?s.data:a,{isDirty:!1,errors:s?s.errors:{},hasErrors:!1,processing:!1,progress:null,wasSuccessful:!1,recentlySuccessful:!1,data:function(){var e=this;return Object.keys(a).reduce(function(r,t){return r[t]=e[t],r},{})},transform:function(e){return p=e,this},defaults:function(e,r){var t;return c=void 0===e?this.data():Object.assign({},n(c),r?((t={})[e]=r,t):e),this},reset:function(){var e=[].slice.call(arguments),r=n(c);return Object.assign(this,0===e.length?r:Object.keys(r).filter(function(r){return e.includes(r)}).reduce(function(e,t){return e[t]=r[t],e},{})),this},setError:function(e,r){var t;return Object.assign(this.errors,r?((t={})[e]=r,t):e),this.hasErrors=Object.keys(this.errors).length>0,this},clearErrors:function(){var e=this,r=[].slice.call(arguments);return this.errors=Object.keys(this.errors).reduce(function(t,n){var o;return i({},t,r.length>0&&!r.includes(n)?((o={})[n]=e.errors[n],o):{})},{}),this.hasErrors=Object.keys(this.errors).length>0,this},submit:function(e,t,o){var u=this,a=this;void 0===o&&(o={});var s=p(this.data()),d=i({},o,{onCancelToken:function(e){if(l=e,o.onCancelToken)return o.onCancelToken(e)},onBefore:function(e){if(a.wasSuccessful=!1,a.recentlySuccessful=!1,clearTimeout(f),o.onBefore)return o.onBefore(e)},onStart:function(e){if(a.processing=!0,o.onStart)return o.onStart(e)},onProgress:function(e){if(a.progress=e,o.onProgress)return o.onProgress(e)},onSuccess:function(e){try{var r=function(e){return c=n(u.data()),u.isDirty=!1,e};return u.processing=!1,u.progress=null,u.clearErrors(),u.wasSuccessful=!0,u.recentlySuccessful=!0,f=setTimeout(function(){return u.recentlySuccessful=!1},2e3),Promise.resolve(o.onSuccess?Promise.resolve(o.onSuccess(e)).then(r):r(null))}catch(e){return Promise.reject(e)}},onError:function(e){if(a.processing=!1,a.progress=null,a.clearErrors().setError(e),o.onError)return o.onError(e)},onCancel:function(){if(a.processing=!1,a.progress=null,o.onCancel)return o.onCancel()},onFinish:function(){if(a.processing=!1,a.progress=null,l=null,o.onFinish)return o.onFinish()}});"delete"===e?r.router.delete(t,i({},d,{data:s})):r.router[e](t,s,d)},get:function(e,r){this.submit("get",e,r)},post:function(e,r){this.submit("post",e,r)},put:function(e,r){this.submit("put",e,r)},patch:function(e,r){this.submit("patch",e,r)},delete:function(e,r){this.submit("delete",e,r)},cancel:function(){l&&l.cancel()},__rememberable:null===u,__remember:function(){return{data:this.data(),errors:this.errors}},__restore:function(e){Object.assign(this,e.data),this.setError(e.errors)}}));return t.watch(d,function(e){d.isDirty=!o(d.data(),c),u&&r.router.remember(n(e.__remember()),u)},{immediate:!0,deep:!0}),d}var s=t.ref(null),c=t.ref({}),l=t.shallowRef(null),f=t.ref(null),p=null,d={name:"Inertia",props:{initialPage:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!1},titleCallback:{type:Function,required:!1,default:function(e){return e}},onHeadUpdate:{type:Function,required:!1,default:function(){return function(){}}}},setup:function(e){var n=e.initialPage,o=e.initialComponent,u=e.resolveComponent,a=e.titleCallback,d=e.onHeadUpdate;s.value=o?t.markRaw(o):null,c.value=n,f.value=null;var h="undefined"==typeof window;return p=r.createHeadManager(h,a,d),h||(r.router.init({initialPage:n,resolveComponent:u,swapComponent:function(e){try{return s.value=t.markRaw(e.component),c.value=e.page,f.value=e.preserveState?f.value:Date.now(),Promise.resolve()}catch(e){return Promise.reject(e)}}}),r.router.on("navigate",function(){return p.forceUpdate()})),function(){if(s.value){s.value.inheritAttrs=!!s.value.inheritAttrs;var e=t.h(s.value,i({},c.value.props,{key:f.value}));return l.value&&(s.value.layout=l.value,l.value=null),s.value.layout?"function"==typeof s.value.layout?s.value.layout(t.h,e):(Array.isArray(s.value.layout)?s.value.layout:[s.value.layout]).concat(e).reverse().reduce(function(e,r){return r.inheritAttrs=!!r.inheritAttrs,t.h(r,i({},c.value.props),function(){return e})}):e}}}},h={install:function(e){r.router.form=a,Object.defineProperty(e.config.globalProperties,"$inertia",{get:function(){return r.router}}),Object.defineProperty(e.config.globalProperties,"$page",{get:function(){return c.value}}),Object.defineProperty(e.config.globalProperties,"$headManager",{get:function(){return p}}),e.mixin(u)}},m={props:{title:{type:String,required:!1}},data:function(){return{provider:this.$headManager.createProvider()}},beforeUnmount:function(){this.provider.disconnect()},methods:{isUnaryTag:function(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1},renderTagStart:function(e){e.props=e.props||{},e.props.inertia=void 0!==e.props["head-key"]?e.props["head-key"]:"";var r=Object.keys(e.props).reduce(function(r,t){var n=e.props[t];return["key","head-key"].includes(t)?r:""===n?r+" "+t:r+" "+t+'="'+n+'"'},"");return"<"+e.type+r+">"},renderTagChildren:function(e){var r=this;return"string"==typeof e.children?e.children:e.children.reduce(function(e,t){return e+r.renderTag(t)},"")},renderTag:function(e){if("Symbol(Text)"===e.type.toString())return e.children;if("Symbol()"===e.type.toString())return"";if("Symbol(Comment)"===e.type.toString())return"";var r=this.renderTagStart(e);return e.children&&(r+=this.renderTagChildren(e)),this.isUnaryTag(e)||(r+="</"+e.type+">"),r},addTitleElement:function(e){return this.title&&!e.find(function(e){return e.startsWith("<title")})&&e.push("<title inertia>"+this.title+"</title>"),e},renderNodes:function(e){var r=this;return this.addTitleElement(e.flatMap(function(e){return"Symbol(Fragment)"===e.type.toString()?e.children:e}).map(function(e){return r.renderTag(e)}).filter(function(e){return e}))}},render:function(){this.provider.update(this.renderNodes(this.$slots.default?this.$slots.default():[]))}},v={name:"Link",props:{as:{type:String,default:"a"},data:{type:Object,default:function(){return{}}},href:{type:String},method:{type:String,default:"get"},replace:{type:Boolean,default:!1},preserveScroll:{type:Boolean,default:!1},preserveState:{type:Boolean,default:null},only:{type:Array,default:function(){return[]}},headers:{type:Object,default:function(){return{}}},queryStringArrayFormat:{type:String,default:"brackets"}},setup:function(e,n){var o=n.slots,u=n.attrs;return function(e){var n=e.as.toLowerCase(),a=e.method.toLowerCase(),s=r.mergeDataIntoQueryString(a,e.href||"",e.data,e.queryStringArrayFormat),c=s[0],l=s[1];return"a"===n&&"get"!==a&&console.warn('Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.\n\nPlease specify a more appropriate element using the "as" attribute. For example:\n\n<Link href="'+c+'" method="'+a+'" as="button">...</Link>'),t.h(e.as,i({},u,"a"===n?{href:c}:{},{onClick:function(t){var n;r.shouldIntercept(t)&&(t.preventDefault(),r.router.visit(c,{data:l,method:a,replace:e.replace,preserveScroll:e.preserveScroll,preserveState:null!=(n=e.preserveState)?n:"get"!==a,only:e.only,headers:e.headers,onCancelToken:u.onCancelToken||function(){return{}},onBefore:u.onBefore||function(){return{}},onStart:u.onStart||function(){return{}},onProgress:u.onProgress||function(){return{}},onFinish:u.onFinish||function(){return{}},onCancel:u.onCancel||function(){return{}},onSuccess:u.onSuccess||function(){return{}},onError:u.onError||function(){return{}}}))}}),o)}}};Object.defineProperty(exports,"router",{enumerable:!0,get:function(){return r.router}}),exports.Head=m,exports.Link=v,exports.createInertiaApp=function(e){try{var n,o,i,u,a,s,c,l,f;o=void 0===(n=e.id)?"app":n,i=e.resolve,u=e.setup,a=e.title,c=void 0===(s=e.progress)?{}:s,l=e.page,f=e.render;var p="undefined"==typeof window,m=p?null:document.getElementById(o),v=l||JSON.parse(m.dataset.page),y=function(e){return Promise.resolve(i(e)).then(function(e){return e.default||e})},g=[];return Promise.resolve(y(v.component).then(function(e){return u({el:m,App:d,props:{initialPage:v,initialComponent:e,resolveComponent:y,titleCallback:a,onHeadUpdate:p?function(e){return g=e}:null},plugin:h})})).then(function(e){return!p&&c&&r.setupProgress(c),function(){if(p)return Promise.resolve(f(t.createSSRApp({render:function(){return t.h("div",{id:o,"data-page":JSON.stringify(v),innerHTML:f(e)})}}))).then(function(e){return{head:g,body:e}})}()})}catch(e){return Promise.reject(e)}},exports.defineLayout=function(e){l.value=e},exports.useForm=a,exports.usePage=function(){return{props:t.computed(function(){return c.value.props}),url:t.computed(function(){return c.value.url}),component:t.computed(function(){return c.value.component}),version:t.computed(function(){return c.value.version})}},exports.useRemember=function(e,o){if("object"==typeof e&&null!==e&&!1===e.__rememberable)return e;var i=r.router.restore(o),u=t.isReactive(e)?t.reactive:t.ref,a="function"==typeof e.__remember&&"function"==typeof e.__restore,s=void 0===i?e:u(a?e.__restore(i):i);return t.watch(s,function(t){r.router.remember(n(a?e.__remember():t),o)},{immediate:!0,deep:!0}),s};
1
+ var X=Object.create;var k=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.getPrototypeOf,re=Object.prototype.hasOwnProperty;var te=(e,r)=>{for(var n in r)k(e,n,{get:r[n],enumerable:!0})},L=(e,r,n,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of Z(r))!re.call(e,t)&&t!==n&&k(e,t,{get:()=>r[t],enumerable:!(l=Y(r,t))||l.enumerable});return e};var A=(e,r,n)=>(n=e!=null?X(ee(e)):{},L(r||!e||!e.__esModule?k(n,"default",{value:e,enumerable:!0}):n,e)),oe=e=>L(k({},"__esModule",{value:!0}),e);var le={};te(le,{Head:()=>W,Link:()=>K,createInertiaApp:()=>O,router:()=>z.router,useForm:()=>C,usePage:()=>U,useRemember:()=>R});module.exports=oe(le);var z=require("@inertiajs/core");var v=require("@inertiajs/core"),c=require("vue");var E=require("@inertiajs/core"),V=A(require("lodash.clonedeep")),ne={created(){if(!this.$options.remember)return;Array.isArray(this.$options.remember)&&(this.$options.remember={data:this.$options.remember}),typeof this.$options.remember=="string"&&(this.$options.remember={data:[this.$options.remember]}),typeof this.$options.remember.data=="string"&&(this.$options.remember={data:[this.$options.remember.data]});let e=this.$options.remember.key instanceof Function?this.$options.remember.key.call(this):this.$options.remember.key,r=E.router.restore(e),n=this.$options.remember.data.filter(t=>!(this[t]!==null&&typeof this[t]=="object"&&this[t].__rememberable===!1)),l=t=>this[t]!==null&&typeof this[t]=="object"&&typeof this[t].__remember=="function"&&typeof this[t].__restore=="function";n.forEach(t=>{this[t]!==void 0&&r!==void 0&&r[t]!==void 0&&(l(t)?this[t].__restore(r[t]):this[t]=r[t]),this.$watch(t,()=>{E.router.remember(n.reduce((p,a)=>({...p,[a]:(0,V.default)(l(a)?this[a].__remember():this[a])}),{}),e)},{immediate:!0,deep:!0})})}},H=ne;var F=require("@inertiajs/core"),P=A(require("lodash.clonedeep")),q=A(require("lodash.isequal")),_=require("vue");function C(e,r){let n=typeof e=="string"?e:null,l=typeof e=="object"?e:r,t=n?F.router.restore(n):null,p=(0,P.default)(l),a=null,f=null,h=o=>o,g=(0,_.reactive)({...t?t.data:l,isDirty:!1,errors:t?t.errors:{},hasErrors:!1,processing:!1,progress:null,wasSuccessful:!1,recentlySuccessful:!1,data(){return Object.keys(l).reduce((o,i)=>(o[i]=this[i],o),{})},transform(o){return h=o,this},defaults(o,i){return typeof o>"u"?p=this.data():p=Object.assign({},(0,P.default)(p),typeof o=="string"?{[o]:i}:o),this},reset(...o){let i=(0,P.default)(p);return o.length===0?Object.assign(this,i):Object.assign(this,Object.keys(i).filter(s=>o.includes(s)).reduce((s,d)=>(s[d]=i[d],s),{})),this},setError(o,i){return Object.assign(this.errors,typeof o=="string"?{[o]:i}:o),this.hasErrors=Object.keys(this.errors).length>0,this},clearErrors(...o){return this.errors=Object.keys(this.errors).reduce((i,s)=>({...i,...o.length>0&&!o.includes(s)?{[s]:this.errors[s]}:{}}),{}),this.hasErrors=Object.keys(this.errors).length>0,this},submit(o,i,s={}){let d=h(this.data()),y={...s,onCancelToken:u=>{if(a=u,s.onCancelToken)return s.onCancelToken(u)},onBefore:u=>{if(this.wasSuccessful=!1,this.recentlySuccessful=!1,clearTimeout(f),s.onBefore)return s.onBefore(u)},onStart:u=>{if(this.processing=!0,s.onStart)return s.onStart(u)},onProgress:u=>{if(this.progress=u,s.onProgress)return s.onProgress(u)},onSuccess:async u=>{this.processing=!1,this.progress=null,this.clearErrors(),this.wasSuccessful=!0,this.recentlySuccessful=!0,f=setTimeout(()=>this.recentlySuccessful=!1,2e3);let G=s.onSuccess?await s.onSuccess(u):null;return p=(0,P.default)(this.data()),this.isDirty=!1,G},onError:u=>{if(this.processing=!1,this.progress=null,this.clearErrors().setError(u),s.onError)return s.onError(u)},onCancel:()=>{if(this.processing=!1,this.progress=null,s.onCancel)return s.onCancel()},onFinish:u=>{if(this.processing=!1,this.progress=null,a=null,s.onFinish)return s.onFinish(u)}};o==="delete"?F.router.delete(i,{...y,data:d}):F.router[o](i,d,y)},get(o,i){this.submit("get",o,i)},post(o,i){this.submit("post",o,i)},put(o,i){this.submit("put",o,i)},patch(o,i){this.submit("patch",o,i)},delete(o,i){this.submit("delete",o,i)},cancel(){a&&a.cancel()},__rememberable:n===null,__remember(){return{data:this.data(),errors:this.errors}},__restore(o){Object.assign(this,o.data),this.setError(o.errors)}});return(0,_.watch)(g,o=>{g.isDirty=!(0,q.default)(g.data(),p),n&&F.router.remember((0,P.default)(o.__remember()),n)},{immediate:!0,deep:!0}),g}var m=(0,c.ref)(null),T=(0,c.ref)({}),I=(0,c.shallowRef)(null),x=(0,c.ref)(null),j=null,se=(0,c.defineComponent)({name:"Inertia",props:{initialPage:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!1},titleCallback:{type:Function,required:!1,default:e=>e},onHeadUpdate:{type:Function,required:!1,default:()=>()=>{}}},setup({initialPage:e,initialComponent:r,resolveComponent:n,titleCallback:l,onHeadUpdate:t}){m.value=r?(0,c.markRaw)(r):null,T.value=e,x.value=null;let p=typeof window>"u";return j=(0,v.createHeadManager)(p,l,t),p||(v.router.init({initialPage:e,resolveComponent:n,swapComponent:async a=>{m.value=(0,c.markRaw)(a.component),T.value=a.page,x.value=a.preserveState?x.value:Date.now()}}),v.router.on("navigate",()=>j.forceUpdate())),()=>{if(m.value){m.value.inheritAttrs=!!m.value.inheritAttrs;let a=(0,c.h)(m.value,{...T.value.props,key:x.value});return I.value&&(m.value.layout=I.value,I.value=null),m.value.layout?typeof m.value.layout=="function"?m.value.layout(c.h,a):(Array.isArray(m.value.layout)?m.value.layout:[m.value.layout]).concat(a).reverse().reduce((f,h)=>(h.inheritAttrs=!!h.inheritAttrs,(0,c.h)(h,{...T.value.props},()=>f))):a}}}}),M=se,B={install(e){v.router.form=C,Object.defineProperty(e.config.globalProperties,"$inertia",{get:()=>v.router}),Object.defineProperty(e.config.globalProperties,"$page",{get:()=>T.value}),Object.defineProperty(e.config.globalProperties,"$headManager",{get:()=>j}),e.mixin(H)}};function U(){return T.value}var N=require("@inertiajs/core"),w=require("vue");async function O({id:e="app",resolve:r,setup:n,title:l,progress:t={},page:p,render:a}){let f=typeof window>"u",h=f?null:document.getElementById(e),g=p||JSON.parse(h.dataset.page),o=d=>Promise.resolve(r(d)).then(y=>y.default||y),i=[],s=await o(g.component).then(d=>n({el:h,App:M,props:{initialPage:g,initialComponent:d,resolveComponent:o,titleCallback:l,onHeadUpdate:f?y=>i=y:null},plugin:B}));if(!f&&t&&(0,N.setupProgress)(t),f){let d=await a((0,w.createSSRApp)({render:()=>(0,w.h)("div",{id:e,"data-page":JSON.stringify(g),innerHTML:s?a(s):""})}));return{head:i,body:d}}}var J=require("vue"),ie=(0,J.defineComponent)({props:{title:{type:String,required:!1}},data(){return{provider:this.$headManager.createProvider()}},beforeUnmount(){this.provider.disconnect()},methods:{isUnaryTag(e){return["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"].indexOf(e.type)>-1},renderTagStart(e){e.props=e.props||{},e.props.inertia=e.props["head-key"]!==void 0?e.props["head-key"]:"";let r=Object.keys(e.props).reduce((n,l)=>{let t=e.props[l];return["key","head-key"].includes(l)?n:t===""?n+` ${l}`:n+` ${l}="${t}"`},"");return`<${e.type}${r}>`},renderTagChildren(e){return typeof e.children=="string"?e.children:e.children.reduce((r,n)=>r+this.renderTag(n),"")},renderTag(e){if(e.type.toString()==="Symbol(Text)")return e.children;if(e.type.toString()==="Symbol()")return"";if(e.type.toString()==="Symbol(Comment)")return"";let r=this.renderTagStart(e);return e.children&&(r+=this.renderTagChildren(e)),this.isUnaryTag(e)||(r+=`</${e.type}>`),r},addTitleElement(e){return this.title&&!e.find(r=>r.startsWith("<title"))&&e.push(`<title inertia>${this.title}</title>`),e},renderNodes(e){return this.addTitleElement(e.flatMap(r=>r.type.toString()==="Symbol(Fragment)"?r.children:r).map(r=>this.renderTag(r)).filter(r=>r))}},render(){this.provider.update(this.renderNodes(this.$slots.default?this.$slots.default():[]))}}),W=ie;var S=require("@inertiajs/core"),$=require("vue"),ae=(0,$.defineComponent)({name:"Link",props:{as:{type:String,default:"a"},data:{type:Object,default:()=>({})},href:{type:String,required:!0},method:{type:String,default:"get"},replace:{type:Boolean,default:!1},preserveScroll:{type:Boolean,default:!1},preserveState:{type:Boolean,default:null},only:{type:Array,default:()=>[]},headers:{type:Object,default:()=>({})},queryStringArrayFormat:{type:String,default:"brackets"}},setup(e,{slots:r,attrs:n}){return()=>{let l=e.as.toLowerCase(),t=e.method.toLowerCase(),[p,a]=(0,S.mergeDataIntoQueryString)(t,e.href||"",e.data,e.queryStringArrayFormat);return l==="a"&&t!=="get"&&console.warn(`Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes "Open Link in New Tab/Window" accessibility issues.
2
+
3
+ Please specify a more appropriate element using the "as" attribute. For example:
4
+
5
+ <Link href="${p}" method="${t}" as="button">...</Link>`),(0,$.h)(e.as,{...n,...l==="a"?{href:p}:{},onClick:f=>{(0,S.shouldIntercept)(f)&&(f.preventDefault(),S.router.visit(p,{data:a,method:t,replace:e.replace,preserveScroll:e.preserveScroll,preserveState:e.preserveState??t!=="get",only:e.only,headers:e.headers,onCancelToken:n.onCancelToken||(()=>({})),onBefore:n.onBefore||(()=>({})),onStart:n.onStart||(()=>({})),onProgress:n.onProgress||(()=>({})),onFinish:n.onFinish||(()=>({})),onCancel:n.onCancel||(()=>({})),onSuccess:n.onSuccess||(()=>({})),onError:n.onError||(()=>({}))}))}},r)}}}),K=ae;var D=require("@inertiajs/core"),Q=A(require("lodash.clonedeep")),b=require("vue");function R(e,r){if(typeof e=="object"&&e!==null&&e.__rememberable===!1)return e;let n=D.router.restore(r),l=(0,b.isReactive)(e)?b.reactive:b.ref,t=typeof e.__remember=="function"&&typeof e.__restore=="function",p=n===void 0?e:l(t?e.__restore(n):n);return(0,b.watch)(p,a=>{D.router.remember((0,Q.default)(t?e.__remember():a),r)},{immediate:!0,deep:!0}),p}
2
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sources":["../src/remember.js","../src/useForm.js","../src/app.js","../src/head.js","../src/link.js","../src/createInertiaApp.js","../src/useRemember.js"],"sourcesContent":["import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\n\nexport default {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey)\n\n const rememberable = this.$options.remember.data.filter((key) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n })\n\n const hasCallbacks = (key) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n","import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport isEqual from 'lodash.isequal'\nimport { reactive, watch } from 'vue'\n\nexport default function useForm(...args) {\n const rememberKey = typeof args[0] === 'string' ? args[0] : null\n const data = (typeof args[0] === 'string' ? args[1] : args[0]) || {}\n const restored = rememberKey ? router.restore(rememberKey) : null\n let defaults = cloneDeep(data)\n let cancelToken = null\n let recentlySuccessfulTimeoutId = null\n let transform = (data) => data\n\n let form = reactive({\n ...(restored ? restored.data : data),\n isDirty: false,\n errors: restored ? restored.errors : {},\n hasErrors: false,\n processing: false,\n progress: null,\n wasSuccessful: false,\n recentlySuccessful: false,\n data() {\n return Object.keys(data).reduce((carry, key) => {\n carry[key] = this[key]\n return carry\n }, {})\n },\n transform(callback) {\n transform = callback\n\n return this\n },\n defaults(key, value) {\n if (typeof key === 'undefined') {\n defaults = this.data()\n } else {\n defaults = Object.assign({}, cloneDeep(defaults), value ? { [key]: value } : key)\n }\n\n return this\n },\n reset(...fields) {\n let clonedDefaults = cloneDeep(defaults)\n if (fields.length === 0) {\n Object.assign(this, clonedDefaults)\n } else {\n Object.assign(\n this,\n Object.keys(clonedDefaults)\n .filter((key) => fields.includes(key))\n .reduce((carry, key) => {\n carry[key] = clonedDefaults[key]\n return carry\n }, {}),\n )\n }\n\n return this\n },\n setError(key, value) {\n Object.assign(this.errors, value ? { [key]: value } : key)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n clearErrors(...fields) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: this.errors[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n submit(method, url, options = {}) {\n const data = transform(this.data())\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(() => (this.recentlySuccessful = false), 2000)\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n defaults = cloneDeep(this.data())\n this.isDirty = false\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: () => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish()\n }\n },\n }\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data })\n } else {\n router[method](url, data, _options)\n }\n },\n get(url, options) {\n this.submit('get', url, options)\n },\n post(url, options) {\n this.submit('post', url, options)\n },\n put(url, options) {\n this.submit('put', url, options)\n },\n patch(url, options) {\n this.submit('patch', url, options)\n },\n delete(url, options) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n","import { createHeadManager, router } from '@inertiajs/core'\nimport { computed, h, markRaw, ref, shallowRef } from 'vue'\nimport remember from './remember'\nimport useForm from './useForm'\n\nconst component = ref(null)\nconst page = ref({})\nconst layout = shallowRef(null)\nconst key = ref(null)\nlet headManager = null\n\nexport default {\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object,\n required: true,\n },\n initialComponent: {\n type: Object,\n required: false,\n },\n resolveComponent: {\n type: Function,\n required: false,\n },\n titleCallback: {\n type: Function,\n required: false,\n default: (title) => title,\n },\n onHeadUpdate: {\n type: Function,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }) {\n component.value = initialComponent ? markRaw(initialComponent) : null\n page.value = initialPage\n key.value = null\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback, onHeadUpdate)\n\n if (!isServer) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args) => {\n component.value = markRaw(args.component)\n page.value = args.page\n key.value = args.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n}\n\nexport const plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage() {\n return {\n props: computed(() => page.value.props),\n url: computed(() => page.value.url),\n component: computed(() => page.value.component),\n version: computed(() => page.value.version),\n }\n}\n\nexport function defineLayout(component) {\n layout.value = component\n}\n","export default {\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n 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 renderTagStart(node) {\n node.props = node.props || {}\n node.props.inertia = node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = node.props[name]\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n },\n renderTagChildren(node) {\n return typeof node.children === 'string'\n ? node.children\n : node.children.reduce((html, child) => html + this.renderTag(child), '')\n },\n renderTag(node) {\n if (node.type.toString() === 'Symbol(Text)') {\n return node.children\n } else if (node.type.toString() === 'Symbol()') {\n return ''\n } else if (node.type.toString() === 'Symbol(Comment)') {\n return ''\n }\n let html = this.renderTagStart(node)\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n if (!this.isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n },\n addTitleElement(elements) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title inertia>${this.title}</title>`)\n }\n return elements\n },\n renderNodes(nodes) {\n return this.addTitleElement(\n nodes\n .flatMap((node) => (node.type.toString() === 'Symbol(Fragment)' ? node.children : node))\n .map((node) => this.renderTag(node))\n .filter((node) => node),\n )\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n}\n","import { mergeDataIntoQueryString, router, shouldIntercept } from '@inertiajs/core'\nimport { h } from 'vue'\n\nexport default {\n name: 'Link',\n props: {\n as: {\n type: String,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: String,\n },\n method: {\n type: String,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n only: {\n type: Array,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String,\n default: 'brackets',\n },\n },\n setup(props, { slots, attrs }) {\n return (props) => {\n const as = props.as.toLowerCase()\n const method = props.method.toLowerCase()\n const [href, data] = mergeDataIntoQueryString(method, props.href || '', props.data, props.queryStringArrayFormat)\n\n if (as === 'a' && method !== 'get') {\n console.warn(\n `Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes \"Open Link in New Tab/Window\" accessibility issues.\\n\\nPlease specify a more appropriate element using the \"as\" attribute. For example:\\n\\n<Link href=\"${href}\" method=\"${method}\" as=\"button\">...</Link>`,\n )\n }\n\n return h(\n props.as,\n {\n ...attrs,\n ...(as === 'a' ? { href } : {}),\n onClick: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data: data,\n method: method,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method !== 'get',\n only: props.only,\n headers: props.headers,\n onCancelToken: attrs.onCancelToken || (() => ({})),\n onBefore: attrs.onBefore || (() => ({})),\n onStart: attrs.onStart || (() => ({})),\n onProgress: attrs.onProgress || (() => ({})),\n onFinish: attrs.onFinish || (() => ({})),\n onCancel: attrs.onCancel || (() => ({})),\n onSuccess: attrs.onSuccess || (() => ({})),\n onError: attrs.onError || (() => ({})),\n })\n }\n },\n },\n slots,\n )\n }\n },\n}\n","import { setupProgress } from '@inertiajs/core'\nimport { createSSRApp, h } from 'vue'\nimport App, { plugin } from './app'\n\nexport default async function createInertiaApp({ id = 'app', resolve, setup, title, progress = {}, page, render }) {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const vueApp = await resolveComponent(initialPage.component).then((initialComponent) => {\n return setup({\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: render(vueApp),\n }),\n }),\n )\n\n return { head, body }\n }\n}\n","import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport { isReactive, reactive, ref, watch } from 'vue'\n\nexport default function useRemember(data, key) {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = restored === undefined ? data : type(hasCallbacks ? data.__restore(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n"],"names":["created","this","$options","remember","Array","isArray","data","key","call","router","restore","rememberKey","filter","_this","__rememberable","__remember","__restore","rememberable","forEach","undefined","restored","hasCallbacks","$watch","reduce","cloneDeep","immediate","deep","args","reactive","isDirty","errors","hasErrors","processing","progress","wasSuccessful","recentlySuccessful","keys","carry","transform","callback","defaults","value","Object","assign","reset","fields","length","clonedDefaults","includes","setError","clearErrors","field","_this2","submit","method","url","options","onCancelToken","token","cancelToken","onBefore","visit","_this3","clearTimeout","recentlySuccessfulTimeoutId","onStart","onProgress","event","onSuccess","page","_this4","setTimeout","onError","onCancel","onFinish","_options","get","post","put","patch","cancel","watch","form","newValue","isEqual","ref","shallowRef","name","props","initialPage","type","required","initialComponent","resolveComponent","Function","titleCallback","default","title","onHeadUpdate","setup","component","markRaw","headManager","createHeadManager","isServer","init","swapComponent","preserveState","Date","now","on","forceUpdate","inheritAttrs","h","layout","child","concat","reverse","install","app","useForm","defineProperty","config","globalProperties","mixin","String","provider","$headManager","createProvider","beforeUnmount","disconnect","methods","isUnaryTag","node","indexOf","renderTagStart","inertia","attrs","renderTagChildren","children","html","renderTag","toString","addTitleElement","elements","find","tag","startsWith","push","renderNodes","nodes","flatMap","map","render","update","$slots","as","href","replace","Boolean","preserveScroll","only","headers","queryStringArrayFormat","slots","toLowerCase","mergeDataIntoQueryString","console","warn","onClick","shouldIntercept","preventDefault","id","resolve","document","getElementById","JSON","parse","el","dataset","then","module","App","plugin","vueApp","setupProgress","createSSRApp","data-page","stringify","innerHTML","head","body","computed","version","isReactive","remembered"],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/app.ts", "../src/remember.ts", "../src/useForm.ts", "../src/createInertiaApp.ts", "../src/head.ts", "../src/link.ts", "../src/useRemember.ts"],
4
+ "sourcesContent": ["export { router } from '@inertiajs/core'\nexport { usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Head } from './head'\nexport { default as Link } from './link'\nexport { default as useForm } from './useForm'\nexport { default as useRemember } from './useRemember'\n", "import { createHeadManager, Page, router } from '@inertiajs/core'\nimport { DefineComponent, defineComponent, h, markRaw, Plugin, PropType, ref, shallowRef } from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps {\n initialPage: Page\n initialComponent?: object\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: (title: string) => string\n onHeadUpdate?: (elements: string[]) => void\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref(null)\nconst page = ref<Partial<Page>>({})\nconst layout = shallowRef(null)\nconst key = ref(null)\nlet headManager = null\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<(title: string) => string>,\n required: false,\n default: (title) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<(elements: string[]) => void>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }) {\n component.value = initialComponent ? markRaw(initialComponent) : null\n page.value = initialPage\n key.value = null\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback, onHeadUpdate)\n\n if (!isServer) {\n router.init({\n initialPage,\n resolveComponent,\n swapComponent: async (args: VuePageHandlerArgs) => {\n component.value = markRaw(args.component)\n page.value = args.page\n key.value = args.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage() {\n return page.value\n}\n", "import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey)\n\n const rememberable = this.$options.remember.data.filter((key) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n })\n\n const hasCallbacks = (key) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import { Progress, router, VisitOptions } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport isEqual from 'lodash.isequal'\nimport { reactive, watch } from 'vue'\n\ninterface InertiaFormProps<TForm extends Record<string, unknown>> {\n isDirty: boolean\n errors: Partial<Record<keyof TForm, string>>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n data(): TForm\n transform(callback: (data: TForm) => object): this\n defaults(): this\n defaults(field: keyof TForm, value: string): this\n defaults(fields: Record<keyof TForm, string>): this\n reset(...fields: (keyof TForm)[]): this\n clearErrors(...fields: (keyof TForm)[]): this\n setError(field: keyof TForm, value: string): this\n setError(errors: Record<keyof TForm, string>): this\n submit(method: string, url: string, options?: Partial<VisitOptions>): void\n get(url: string, options?: Partial<VisitOptions>): void\n post(url: string, options?: Partial<VisitOptions>): void\n put(url: string, options?: Partial<VisitOptions>): void\n patch(url: string, options?: Partial<VisitOptions>): void\n delete(url: string, options?: Partial<VisitOptions>): void\n cancel(): void\n}\n\ntype InertiaForm<TForm extends Record<string, unknown>> = TForm & InertiaFormProps<TForm>\n\nexport default function useForm<TForm extends Record<string, unknown>>(data: TForm): InertiaForm<TForm>\nexport default function useForm<TForm extends Record<string, unknown>>(\n rememberKey: string,\n data: TForm,\n): InertiaForm<TForm>\nexport default function useForm<TForm extends Record<string, unknown>>(\n rememberKeyOrData: string | TForm,\n maybeData?: TForm,\n): InertiaForm<TForm> {\n const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null\n const data = typeof rememberKeyOrData === 'object' ? rememberKeyOrData : maybeData\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<keyof TForm, string> })\n : null\n let defaults = cloneDeep(data)\n let cancelToken = null\n let recentlySuccessfulTimeoutId = null\n let transform = (data) => data\n\n let form = reactive({\n ...(restored ? restored.data : data),\n isDirty: false,\n errors: restored ? restored.errors : {},\n hasErrors: false,\n processing: false,\n progress: null,\n wasSuccessful: false,\n recentlySuccessful: false,\n data() {\n return (Object.keys(data) as Array<keyof TForm>).reduce((carry, key) => {\n // @ts-expect-error\n carry[key] = this[key]\n return carry\n }, {} as Partial<TForm>) as TForm\n },\n transform(callback) {\n transform = callback\n\n return this\n },\n defaults(fieldOrFields?: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {\n if (typeof fieldOrFields === 'undefined') {\n defaults = this.data()\n } else {\n defaults = Object.assign(\n {},\n cloneDeep(defaults),\n typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields,\n )\n }\n\n return this\n },\n reset(...fields) {\n let clonedDefaults = cloneDeep(defaults)\n if (fields.length === 0) {\n Object.assign(this, clonedDefaults)\n } else {\n Object.assign(\n this,\n Object.keys(clonedDefaults)\n .filter((key) => fields.includes(key))\n .reduce((carry, key) => {\n carry[key] = clonedDefaults[key]\n return carry\n }, {}),\n )\n }\n\n return this\n },\n setError(fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {\n Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n clearErrors(...fields) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: this.errors[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n submit(method, url, options: VisitOptions = {}) {\n const data = transform(this.data())\n const _options = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(() => (this.recentlySuccessful = false), 2000)\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n defaults = cloneDeep(this.data())\n this.isDirty = false\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = 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 })\n } else {\n router[method](url, data, _options)\n }\n },\n get(url, options) {\n this.submit('get', url, options)\n },\n post(url, options) {\n this.submit('post', url, options)\n },\n put(url, options) {\n this.submit('put', url, options)\n },\n patch(url, options) {\n this.submit('patch', url, options)\n },\n delete(url, options) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n", "import { Page, setupProgress } from '@inertiajs/core'\nimport { App as VueApp, createSSRApp, DefineComponent, h, Plugin } from 'vue'\nimport App, { InertiaApp, InertiaAppProps, plugin } from './app'\n\ninterface CreateInertiaAppProps {\n id?: string\n resolve: (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }\n setup: (props: { el: Element; App: InertiaApp; props: InertiaAppProps; plugin: Plugin }) => void | VueApp\n title?: (title: string) => string\n progress?:\n | false\n | {\n delay?: number\n color?: string\n includeCSS?: boolean\n showSpinner?: boolean\n }\n page?: Page\n render?: (app: VueApp) => Promise<string>\n}\n\nexport default async function createInertiaApp({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n}: CreateInertiaAppProps): Promise<{ head: string[]; body: string }> {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el.dataset.page)\n const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head = []\n\n const vueApp = await resolveComponent(initialPage.component).then((initialComponent) => {\n return setup({\n el,\n App,\n props: {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n onHeadUpdate: isServer ? (elements) => (head = elements) : null,\n },\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n }),\n }),\n )\n\n return { head, body }\n }\n}\n", "import { defineComponent, DefineComponent } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n 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 renderTagStart(node) {\n node.props = node.props || {}\n node.props.inertia = node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = node.props[name]\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${value}\"`\n }\n }, '')\n return `<${node.type}${attrs}>`\n },\n renderTagChildren(node) {\n return typeof node.children === 'string'\n ? node.children\n : node.children.reduce((html, child) => html + this.renderTag(child), '')\n },\n renderTag(node) {\n if (node.type.toString() === 'Symbol(Text)') {\n return node.children\n } else if (node.type.toString() === 'Symbol()') {\n return ''\n } else if (node.type.toString() === 'Symbol(Comment)') {\n return ''\n }\n let html = this.renderTagStart(node)\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n if (!this.isUnaryTag(node)) {\n html += `</${node.type}>`\n }\n return html\n },\n addTitleElement(elements) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title inertia>${this.title}</title>`)\n }\n return elements\n },\n renderNodes(nodes) {\n return this.addTitleElement(\n nodes\n .flatMap((node) => (node.type.toString() === 'Symbol(Fragment)' ? node.children : node))\n .map((node) => this.renderTag(node))\n .filter((node) => node),\n )\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n})\n\nexport default Head\n", "import { mergeDataIntoQueryString, Method, PageProps, Progress, router, shouldIntercept } from '@inertiajs/core'\nimport { defineComponent, DefineComponent, h, PropType } from 'vue'\n\ninterface InertiaLinkProps {\n as?: string\n data?: object\n href: string\n method?: Method\n headers?: object\n onClick?: (event: MouseEvent | KeyboardEvent) => void\n preserveScroll?: boolean | ((props: PageProps) => boolean)\n preserveState?: boolean | ((props: PageProps) => boolean) | null\n replace?: boolean\n only?: string[]\n onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void\n onBefore?: () => void\n onStart?: () => void\n onProgress?: (progress: Progress) => void\n onFinish?: () => void\n onCancel?: () => void\n onSuccess?: () => void\n queryStringArrayFormat?: 'brackets' | 'indices'\n}\n\ntype InertiaLink = DefineComponent<InertiaLinkProps>\n\nconst Link: InertiaLink = defineComponent({\n name: 'Link',\n props: {\n as: {\n type: String,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: String,\n required: true,\n },\n method: {\n type: String as PropType<Method>,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n only: {\n type: Array<string>,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<'brackets' | 'indices'>,\n default: 'brackets',\n },\n },\n setup(props, { slots, attrs }) {\n return () => {\n const as = props.as.toLowerCase()\n const method = props.method.toLowerCase() as Method\n const [href, data] = mergeDataIntoQueryString(method, props.href || '', props.data, props.queryStringArrayFormat)\n\n if (as === 'a' && method !== 'get') {\n console.warn(\n `Creating POST/PUT/PATCH/DELETE <a> links is discouraged as it causes \"Open Link in New Tab/Window\" accessibility issues.\\n\\nPlease specify a more appropriate element using the \"as\" attribute. For example:\\n\\n<Link href=\"${href}\" method=\"${method}\" as=\"button\">...</Link>`,\n )\n }\n\n return h(\n props.as,\n {\n ...attrs,\n ...(as === 'a' ? { href } : {}),\n onClick: (event) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n\n router.visit(href, {\n data: data,\n method: method,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method !== 'get',\n only: props.only,\n headers: props.headers,\n // @ts-expect-error\n onCancelToken: attrs.onCancelToken || (() => ({})),\n // @ts-expect-error\n onBefore: attrs.onBefore || (() => ({})),\n // @ts-expect-error\n onStart: attrs.onStart || (() => ({})),\n // @ts-expect-error\n onProgress: attrs.onProgress || (() => ({})),\n // @ts-expect-error\n onFinish: attrs.onFinish || (() => ({})),\n // @ts-expect-error\n onCancel: attrs.onCancel || (() => ({})),\n // @ts-expect-error\n onSuccess: attrs.onSuccess || (() => ({})),\n // @ts-expect-error\n onError: attrs.onError || (() => ({})),\n })\n }\n },\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { router } from '@inertiajs/core'\nimport cloneDeep from 'lodash.clonedeep'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = restored === undefined ? data : type(hasCallbacks ? data.__restore(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["src_exports", "__export", "head_default", "link_default", "createInertiaApp", "useForm", "usePage", "useRemember", "__toCommonJS", "import_core", "import_core", "import_vue", "import_core", "import_lodash", "remember", "rememberKey", "restored", "rememberable", "key", "hasCallbacks", "data", "cloneDeep", "remember_default", "import_core", "import_lodash", "import_vue", "useForm", "rememberKeyOrData", "maybeData", "rememberKey", "data", "restored", "defaults", "cloneDeep", "cancelToken", "recentlySuccessfulTimeoutId", "transform", "form", "carry", "key", "callback", "fieldOrFields", "maybeValue", "fields", "clonedDefaults", "field", "method", "url", "options", "_options", "token", "visit", "event", "page", "onSuccess", "errors", "newValue", "isEqual", "component", "page", "layout", "key", "headManager", "App", "title", "initialPage", "initialComponent", "resolveComponent", "titleCallback", "onHeadUpdate", "isServer", "args", "child", "app_default", "plugin", "app", "useForm", "remember_default", "usePage", "import_core", "import_vue", "createInertiaApp", "id", "resolve", "setup", "title", "progress", "page", "render", "isServer", "el", "initialPage", "resolveComponent", "name", "module", "head", "vueApp", "initialComponent", "app_default", "elements", "plugin", "body", "import_vue", "Head", "node", "attrs", "carry", "name", "value", "html", "child", "elements", "tag", "nodes", "head_default", "import_core", "import_vue", "Link", "props", "slots", "attrs", "as", "method", "href", "data", "event", "link_default", "import_core", "import_lodash", "import_vue", "useRemember", "data", "key", "restored", "type", "hasCallbacks", "remembered", "newValue", "cloneDeep"]
7
+ }
@@ -1,2 +1,2 @@
1
- export { default } from '@inertiajs/core/server';
1
+ import{default as f}from"@inertiajs/core/server";export{f as default};
2
2
  //# sourceMappingURL=server.esm.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"server.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/server.ts"],
4
+ "sourcesContent": ["export { default as default } from '@inertiajs/core/server'\n"],
5
+ "mappings": "AAAA,OAAoB,WAAXA,MAA0B",
6
+ "names": ["default"]
7
+ }
package/dist/server.js CHANGED
@@ -1,8 +1,2 @@
1
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
2
-
3
- var server = _interopDefault(require('@inertiajs/core/server'));
4
-
5
-
6
-
7
- module.exports = server;
1
+ var u=Object.create;var d=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var s=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var b=(a,e)=>{for(var f in e)d(a,f,{get:e[f],enumerable:!0})},o=(a,e,f,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!x.call(a,t)&&t!==f&&d(a,t,{get:()=>e[t],enumerable:!(l=m(e,t))||l.enumerable});return a};var c=(a,e,f)=>(f=a!=null?u(s(a)):{},o(e||!a||!a.__esModule?d(f,"default",{value:a,enumerable:!0}):f,a)),g=a=>o(d({},"__esModule",{value:!0}),a);var h={};b(h,{default:()=>r.default});module.exports=g(h);var r=c(require("@inertiajs/core/server"));0&&(module.exports={});
8
2
  //# sourceMappingURL=server.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"server.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/server.ts"],
4
+ "sourcesContent": ["export { default as default } from '@inertiajs/core/server'\n"],
5
+ "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wCAAAE,EAAAF,GAAA,IAAAG,EAAmC",
6
+ "names": ["server_exports", "__export", "__toCommonJS", "import_server"]
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/vue3",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.4",
4
4
  "license": "MIT",
5
5
  "description": "The Vue 3 adapter for Inertia.js",
6
6
  "contributors": [
@@ -15,30 +15,37 @@
15
15
  "bugs": {
16
16
  "url": "https://github.com/inertiajs/inertia/issues"
17
17
  },
18
- "source": "src/index.js",
18
+ "source": "src/index.ts",
19
19
  "main": "dist/index.js",
20
- "typings": "index.d.ts",
20
+ "types": "types/index.d.ts",
21
21
  "exports": {
22
- ".": "./dist/index.js",
23
- "./server": "./dist/server.js"
22
+ ".": {
23
+ "import": "./dist/index.esm.js",
24
+ "require": "./dist/index.js",
25
+ "types": "./types/index.d.js"
26
+ },
27
+ "./server": {
28
+ "import": "./dist/server.esm.js",
29
+ "require": "./dist/server.js",
30
+ "types": "./types/server.d.js"
31
+ }
24
32
  },
25
33
  "scripts": {
26
- "build": "npm run clean && npm run build:browser && npm run build:server",
27
- "build:browser": "microbundle --format es,cjs",
28
- "build:server": "microbundle --format es,cjs --target node --output ./dist/server.js ./src/server.js",
29
- "clean": "rm -rf dist",
30
- "prepublishOnly": "npm run build",
31
- "watch": "microbundle watch --format es,cjs"
34
+ "dev": "./build.js --watch",
35
+ "build": "npm run clean && ./build.js && tsc --emitDeclarationOnly",
36
+ "clean": "rm -rf types && rm -rf dist",
37
+ "prepublishOnly": "npm run build"
32
38
  },
33
39
  "devDependencies": {
34
- "microbundle": "^0.12.0",
40
+ "esbuild": "^0.16.13",
41
+ "typescript": "^4.9.4",
35
42
  "vue": "^3.0.0"
36
43
  },
37
44
  "peerDependencies": {
38
45
  "vue": "^3.0.0"
39
46
  },
40
47
  "dependencies": {
41
- "@inertiajs/core": "1.0.0-beta.2",
48
+ "@inertiajs/core": "1.0.0-beta.4",
42
49
  "lodash.clonedeep": "^4.5.0",
43
50
  "lodash.isequal": "^4.5.0"
44
51
  }
@@ -1,19 +1,30 @@
1
- import { createHeadManager, router } from '@inertiajs/core'
2
- import { computed, h, markRaw, ref, shallowRef } from 'vue'
1
+ import { createHeadManager, Page, router } from '@inertiajs/core'
2
+ import { DefineComponent, defineComponent, h, markRaw, Plugin, PropType, ref, shallowRef } from 'vue'
3
3
  import remember from './remember'
4
+ import { VuePageHandlerArgs } from './types'
4
5
  import useForm from './useForm'
5
6
 
7
+ export interface InertiaAppProps {
8
+ initialPage: Page
9
+ initialComponent?: object
10
+ resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>
11
+ titleCallback?: (title: string) => string
12
+ onHeadUpdate?: (elements: string[]) => void
13
+ }
14
+
15
+ export type InertiaApp = DefineComponent<InertiaAppProps>
16
+
6
17
  const component = ref(null)
7
- const page = ref({})
18
+ const page = ref<Partial<Page>>({})
8
19
  const layout = shallowRef(null)
9
20
  const key = ref(null)
10
21
  let headManager = null
11
22
 
12
- export default {
23
+ const App: InertiaApp = defineComponent({
13
24
  name: 'Inertia',
14
25
  props: {
15
26
  initialPage: {
16
- type: Object,
27
+ type: Object as PropType<Page>,
17
28
  required: true,
18
29
  },
19
30
  initialComponent: {
@@ -21,16 +32,16 @@ export default {
21
32
  required: false,
22
33
  },
23
34
  resolveComponent: {
24
- type: Function,
35
+ type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,
25
36
  required: false,
26
37
  },
27
38
  titleCallback: {
28
- type: Function,
39
+ type: Function as PropType<(title: string) => string>,
29
40
  required: false,
30
41
  default: (title) => title,
31
42
  },
32
43
  onHeadUpdate: {
33
- type: Function,
44
+ type: Function as PropType<(elements: string[]) => void>,
34
45
  required: false,
35
46
  default: () => () => {},
36
47
  },
@@ -47,7 +58,7 @@ export default {
47
58
  router.init({
48
59
  initialPage,
49
60
  resolveComponent,
50
- swapComponent: async (args) => {
61
+ swapComponent: async (args: VuePageHandlerArgs) => {
51
62
  component.value = markRaw(args.component)
52
63
  page.value = args.page
53
64
  key.value = args.preserveState ? key.value : Date.now()
@@ -89,9 +100,10 @@ export default {
89
100
  }
90
101
  }
91
102
  },
92
- }
103
+ })
104
+ export default App
93
105
 
94
- export const plugin = {
106
+ export const plugin: Plugin = {
95
107
  install(app) {
96
108
  router.form = useForm
97
109
 
@@ -104,14 +116,5 @@ export const plugin = {
104
116
  }
105
117
 
106
118
  export function usePage() {
107
- return {
108
- props: computed(() => page.value.props),
109
- url: computed(() => page.value.url),
110
- component: computed(() => page.value.component),
111
- version: computed(() => page.value.version),
112
- }
113
- }
114
-
115
- export function defineLayout(component) {
116
- layout.value = component
119
+ return page.value
117
120
  }
@@ -1,8 +1,33 @@
1
- import { setupProgress } from '@inertiajs/core'
2
- import { createSSRApp, h } from 'vue'
3
- import App, { plugin } from './app'
1
+ import { Page, setupProgress } from '@inertiajs/core'
2
+ import { App as VueApp, createSSRApp, DefineComponent, h, Plugin } from 'vue'
3
+ import App, { InertiaApp, InertiaAppProps, plugin } from './app'
4
4
 
5
- export default async function createInertiaApp({ id = 'app', resolve, setup, title, progress = {}, page, render }) {
5
+ interface CreateInertiaAppProps {
6
+ id?: string
7
+ resolve: (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }
8
+ setup: (props: { el: Element; App: InertiaApp; props: InertiaAppProps; plugin: Plugin }) => void | VueApp
9
+ title?: (title: string) => string
10
+ progress?:
11
+ | false
12
+ | {
13
+ delay?: number
14
+ color?: string
15
+ includeCSS?: boolean
16
+ showSpinner?: boolean
17
+ }
18
+ page?: Page
19
+ render?: (app: VueApp) => Promise<string>
20
+ }
21
+
22
+ export default async function createInertiaApp({
23
+ id = 'app',
24
+ resolve,
25
+ setup,
26
+ title,
27
+ progress = {},
28
+ page,
29
+ render,
30
+ }: CreateInertiaAppProps): Promise<{ head: string[]; body: string }> {
6
31
  const isServer = typeof window === 'undefined'
7
32
  const el = isServer ? null : document.getElementById(id)
8
33
  const initialPage = page || JSON.parse(el.dataset.page)
@@ -36,7 +61,7 @@ export default async function createInertiaApp({ id = 'app', resolve, setup, tit
36
61
  h('div', {
37
62
  id,
38
63
  'data-page': JSON.stringify(initialPage),
39
- innerHTML: render(vueApp),
64
+ innerHTML: vueApp ? render(vueApp) : '',
40
65
  }),
41
66
  }),
42
67
  )
@@ -1,4 +1,10 @@
1
- export default {
1
+ import { defineComponent, DefineComponent } from 'vue'
2
+
3
+ export type InertiaHead = DefineComponent<{
4
+ title?: string
5
+ }>
6
+
7
+ const Head: InertiaHead = defineComponent({
2
8
  props: {
3
9
  title: {
4
10
  type: String,
@@ -90,4 +96,6 @@ export default {
90
96
  render() {
91
97
  this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))
92
98
  },
93
- }
99
+ })
100
+
101
+ export default Head
@@ -1,5 +1,5 @@
1
1
  export { router } from '@inertiajs/core'
2
- export { defineLayout, usePage } from './app'
2
+ export { usePage } from './app'
3
3
  export { default as createInertiaApp } from './createInertiaApp'
4
4
  export { default as Head } from './head'
5
5
  export { default as Link } from './link'
@@ -1,7 +1,30 @@
1
- import { mergeDataIntoQueryString, router, shouldIntercept } from '@inertiajs/core'
2
- import { h } from 'vue'
1
+ import { mergeDataIntoQueryString, Method, PageProps, Progress, router, shouldIntercept } from '@inertiajs/core'
2
+ import { defineComponent, DefineComponent, h, PropType } from 'vue'
3
3
 
4
- export default {
4
+ interface InertiaLinkProps {
5
+ as?: string
6
+ data?: object
7
+ href: string
8
+ method?: Method
9
+ headers?: object
10
+ onClick?: (event: MouseEvent | KeyboardEvent) => void
11
+ preserveScroll?: boolean | ((props: PageProps) => boolean)
12
+ preserveState?: boolean | ((props: PageProps) => boolean) | null
13
+ replace?: boolean
14
+ only?: string[]
15
+ onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void
16
+ onBefore?: () => void
17
+ onStart?: () => void
18
+ onProgress?: (progress: Progress) => void
19
+ onFinish?: () => void
20
+ onCancel?: () => void
21
+ onSuccess?: () => void
22
+ queryStringArrayFormat?: 'brackets' | 'indices'
23
+ }
24
+
25
+ type InertiaLink = DefineComponent<InertiaLinkProps>
26
+
27
+ const Link: InertiaLink = defineComponent({
5
28
  name: 'Link',
6
29
  props: {
7
30
  as: {
@@ -14,9 +37,10 @@ export default {
14
37
  },
15
38
  href: {
16
39
  type: String,
40
+ required: true,
17
41
  },
18
42
  method: {
19
- type: String,
43
+ type: String as PropType<Method>,
20
44
  default: 'get',
21
45
  },
22
46
  replace: {
@@ -32,7 +56,7 @@ export default {
32
56
  default: null,
33
57
  },
34
58
  only: {
35
- type: Array,
59
+ type: Array<string>,
36
60
  default: () => [],
37
61
  },
38
62
  headers: {
@@ -40,14 +64,14 @@ export default {
40
64
  default: () => ({}),
41
65
  },
42
66
  queryStringArrayFormat: {
43
- type: String,
67
+ type: String as PropType<'brackets' | 'indices'>,
44
68
  default: 'brackets',
45
69
  },
46
70
  },
47
71
  setup(props, { slots, attrs }) {
48
- return (props) => {
72
+ return () => {
49
73
  const as = props.as.toLowerCase()
50
- const method = props.method.toLowerCase()
74
+ const method = props.method.toLowerCase() as Method
51
75
  const [href, data] = mergeDataIntoQueryString(method, props.href || '', props.data, props.queryStringArrayFormat)
52
76
 
53
77
  if (as === 'a' && method !== 'get') {
@@ -73,13 +97,21 @@ export default {
73
97
  preserveState: props.preserveState ?? method !== 'get',
74
98
  only: props.only,
75
99
  headers: props.headers,
100
+ // @ts-expect-error
76
101
  onCancelToken: attrs.onCancelToken || (() => ({})),
102
+ // @ts-expect-error
77
103
  onBefore: attrs.onBefore || (() => ({})),
104
+ // @ts-expect-error
78
105
  onStart: attrs.onStart || (() => ({})),
106
+ // @ts-expect-error
79
107
  onProgress: attrs.onProgress || (() => ({})),
108
+ // @ts-expect-error
80
109
  onFinish: attrs.onFinish || (() => ({})),
110
+ // @ts-expect-error
81
111
  onCancel: attrs.onCancel || (() => ({})),
112
+ // @ts-expect-error
82
113
  onSuccess: attrs.onSuccess || (() => ({})),
114
+ // @ts-expect-error
83
115
  onError: attrs.onError || (() => ({})),
84
116
  })
85
117
  }
@@ -89,4 +121,6 @@ export default {
89
121
  )
90
122
  }
91
123
  },
92
- }
124
+ })
125
+
126
+ export default Link
@@ -1,7 +1,8 @@
1
1
  import { router } from '@inertiajs/core'
2
2
  import cloneDeep from 'lodash.clonedeep'
3
+ import { ComponentOptions } from 'vue'
3
4
 
4
- export default {
5
+ const remember: ComponentOptions = {
5
6
  created() {
6
7
  if (!this.$options.remember) {
7
8
  return
@@ -63,3 +64,5 @@ export default {
63
64
  })
64
65
  },
65
66
  }
67
+
68
+ export default remember
File without changes
package/src/types.ts ADDED
@@ -0,0 +1,31 @@
1
+ import { createHeadManager, Page, PageHandler, router } from '@inertiajs/core'
2
+ import { ComponentPublicInstance } from 'vue'
3
+ import useForm from './useForm'
4
+
5
+ export type VuePageHandlerArgs = Parameters<PageHandler>[0] & {
6
+ component: ComponentPublicInstance | Promise<ComponentPublicInstance>
7
+ }
8
+
9
+ declare module '@inertiajs/core' {
10
+ export interface Router {
11
+ form: typeof useForm
12
+ }
13
+ }
14
+
15
+ declare module '@vue/runtime-core' {
16
+ export interface ComponentCustomProperties {
17
+ $inertia: typeof router
18
+ $page: Page
19
+ $headManager: ReturnType<typeof createHeadManager>
20
+ }
21
+
22
+ export interface ComponentCustomOptions {
23
+ remember?:
24
+ | string
25
+ | string[]
26
+ | {
27
+ data: string | string[]
28
+ key?: string | (() => string)
29
+ }
30
+ }
31
+ }
@@ -1,12 +1,50 @@
1
- import { router } from '@inertiajs/core'
1
+ import { Progress, router, VisitOptions } from '@inertiajs/core'
2
2
  import cloneDeep from 'lodash.clonedeep'
3
3
  import isEqual from 'lodash.isequal'
4
4
  import { reactive, watch } from 'vue'
5
5
 
6
- export default function useForm(...args) {
7
- const rememberKey = typeof args[0] === 'string' ? args[0] : null
8
- const data = (typeof args[0] === 'string' ? args[1] : args[0]) || {}
9
- const restored = rememberKey ? router.restore(rememberKey) : null
6
+ interface InertiaFormProps<TForm extends Record<string, unknown>> {
7
+ isDirty: boolean
8
+ errors: Partial<Record<keyof TForm, string>>
9
+ hasErrors: boolean
10
+ processing: boolean
11
+ progress: Progress | null
12
+ wasSuccessful: boolean
13
+ recentlySuccessful: boolean
14
+ data(): TForm
15
+ transform(callback: (data: TForm) => object): this
16
+ defaults(): this
17
+ defaults(field: keyof TForm, value: string): this
18
+ defaults(fields: Record<keyof TForm, string>): this
19
+ reset(...fields: (keyof TForm)[]): this
20
+ clearErrors(...fields: (keyof TForm)[]): this
21
+ setError(field: keyof TForm, value: string): this
22
+ setError(errors: Record<keyof TForm, string>): this
23
+ submit(method: string, url: string, options?: Partial<VisitOptions>): void
24
+ get(url: string, options?: Partial<VisitOptions>): void
25
+ post(url: string, options?: Partial<VisitOptions>): void
26
+ put(url: string, options?: Partial<VisitOptions>): void
27
+ patch(url: string, options?: Partial<VisitOptions>): void
28
+ delete(url: string, options?: Partial<VisitOptions>): void
29
+ cancel(): void
30
+ }
31
+
32
+ type InertiaForm<TForm extends Record<string, unknown>> = TForm & InertiaFormProps<TForm>
33
+
34
+ export default function useForm<TForm extends Record<string, unknown>>(data: TForm): InertiaForm<TForm>
35
+ export default function useForm<TForm extends Record<string, unknown>>(
36
+ rememberKey: string,
37
+ data: TForm,
38
+ ): InertiaForm<TForm>
39
+ export default function useForm<TForm extends Record<string, unknown>>(
40
+ rememberKeyOrData: string | TForm,
41
+ maybeData?: TForm,
42
+ ): InertiaForm<TForm> {
43
+ const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null
44
+ const data = typeof rememberKeyOrData === 'object' ? rememberKeyOrData : maybeData
45
+ const restored = rememberKey
46
+ ? (router.restore(rememberKey) as { data: TForm; errors: Record<keyof TForm, string> })
47
+ : null
10
48
  let defaults = cloneDeep(data)
11
49
  let cancelToken = null
12
50
  let recentlySuccessfulTimeoutId = null
@@ -22,21 +60,26 @@ export default function useForm(...args) {
22
60
  wasSuccessful: false,
23
61
  recentlySuccessful: false,
24
62
  data() {
25
- return Object.keys(data).reduce((carry, key) => {
63
+ return (Object.keys(data) as Array<keyof TForm>).reduce((carry, key) => {
64
+ // @ts-expect-error
26
65
  carry[key] = this[key]
27
66
  return carry
28
- }, {})
67
+ }, {} as Partial<TForm>) as TForm
29
68
  },
30
69
  transform(callback) {
31
70
  transform = callback
32
71
 
33
72
  return this
34
73
  },
35
- defaults(key, value) {
36
- if (typeof key === 'undefined') {
74
+ defaults(fieldOrFields?: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {
75
+ if (typeof fieldOrFields === 'undefined') {
37
76
  defaults = this.data()
38
77
  } else {
39
- defaults = Object.assign({}, cloneDeep(defaults), value ? { [key]: value } : key)
78
+ defaults = Object.assign(
79
+ {},
80
+ cloneDeep(defaults),
81
+ typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields,
82
+ )
40
83
  }
41
84
 
42
85
  return this
@@ -59,8 +102,8 @@ export default function useForm(...args) {
59
102
 
60
103
  return this
61
104
  },
62
- setError(key, value) {
63
- Object.assign(this.errors, value ? { [key]: value } : key)
105
+ setError(fieldOrFields: keyof TForm | Record<keyof TForm, string>, maybeValue?: string) {
106
+ Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)
64
107
 
65
108
  this.hasErrors = Object.keys(this.errors).length > 0
66
109
 
@@ -79,7 +122,7 @@ export default function useForm(...args) {
79
122
 
80
123
  return this
81
124
  },
82
- submit(method, url, options = {}) {
125
+ submit(method, url, options: VisitOptions = {}) {
83
126
  const data = transform(this.data())
84
127
  const _options = {
85
128
  ...options,
@@ -143,13 +186,13 @@ export default function useForm(...args) {
143
186
  return options.onCancel()
144
187
  }
145
188
  },
146
- onFinish: () => {
189
+ onFinish: (visit) => {
147
190
  this.processing = false
148
191
  this.progress = null
149
192
  cancelToken = null
150
193
 
151
194
  if (options.onFinish) {
152
- return options.onFinish()
195
+ return options.onFinish(visit)
153
196
  }
154
197
  },
155
198
  }
@@ -1,8 +1,11 @@
1
1
  import { router } from '@inertiajs/core'
2
2
  import cloneDeep from 'lodash.clonedeep'
3
- import { isReactive, reactive, ref, watch } from 'vue'
3
+ import { isReactive, reactive, ref, Ref, watch } from 'vue'
4
4
 
5
- export default function useRemember(data, key) {
5
+ export default function useRemember<T extends object>(
6
+ data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },
7
+ key?: string,
8
+ ): Ref<T> | T {
6
9
  if (typeof data === 'object' && data !== null && data.__rememberable === false) {
7
10
  return data
8
11
  }
package/tsconfig.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "include": ["src/index.ts"],
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "noEmitOnError": true,
6
+
7
+ "lib": ["DOM", "DOM.Iterable", "ES2020"],
8
+ "target": "ES2020",
9
+ "types": ["node"],
10
+
11
+ "declaration": true,
12
+ "declarationDir": "types",
13
+
14
+ "module": "ES2020",
15
+ "moduleResolution": "Node",
16
+ "resolveJsonModule": true,
17
+ "allowSyntheticDefaultImports": true,
18
+
19
+ "noImplicitThis": true,
20
+ "noUnusedLocals": true,
21
+ "noUnusedParameters": true,
22
+ "preserveConstEnums": true,
23
+ "removeComments": true,
24
+ "typeRoots": ["./node_modules/@types"]
25
+ // "strict": true
26
+ }
27
+ }
package/index.d.ts DELETED
@@ -1,117 +0,0 @@
1
- import * as Inertia from '@inertiajs/core'
2
- import { Ref, ComputedRef, App as VueApp, DefineComponent, Plugin } from 'vue'
3
-
4
- export interface InertiaAppProps {
5
- initialPage: Inertia.Page
6
- initialComponent?: object
7
- resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>
8
- onHeadUpdate?: (elements: string[]) => void
9
- }
10
-
11
- type InertiaApp = DefineComponent<InertiaAppProps>
12
-
13
- export declare const App: InertiaApp
14
-
15
- export declare const plugin: Plugin
16
-
17
- export interface CreateInertiaAppProps {
18
- id?: string
19
- resolve: (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }
20
- setup: (props: { el: Element; app: InertiaApp; props: InertiaAppProps; plugin: Plugin }) => void | VueApp
21
- title?: (title: string) => string
22
- page?: Inertia.Page
23
- render?: (app: VueApp) => Promise<string>
24
- }
25
-
26
- export declare function createInertiaApp(props: CreateInertiaAppProps): Promise<{ head: string[]; body: string } | void>
27
-
28
- export interface InertiaLinkProps {
29
- as?: string
30
- data?: object
31
- href: string
32
- method?: string
33
- headers?: object
34
- onClick?: (event: MouseEvent | KeyboardEvent) => void
35
- preserveScroll?: boolean | ((props: Inertia.PageProps) => boolean)
36
- preserveState?: boolean | ((props: Inertia.PageProps) => boolean) | null
37
- replace?: boolean
38
- only?: string[]
39
- onCancelToken?: (cancelToken: import('axios').CancelTokenSource) => void
40
- onBefore?: () => void
41
- onStart?: () => void
42
- onProgress?: (progress: Inertia.Progress) => void
43
- onFinish?: () => void
44
- onCancel?: () => void
45
- onSuccess?: () => void
46
- }
47
-
48
- export type InertiaLink = DefineComponent<InertiaLinkProps>
49
-
50
- export declare const Link: InertiaLink
51
-
52
- export interface InertiaFormProps<TForm> {
53
- isDirty: boolean
54
- errors: Record<keyof TForm, string>
55
- hasErrors: boolean
56
- processing: boolean
57
- progress: Inertia.Progress | null
58
- wasSuccessful: boolean
59
- recentlySuccessful: boolean
60
- data(): TForm
61
- transform(callback: (data: TForm) => object): this
62
- defaults(): this
63
- defaults(field: keyof TForm, value: string): this
64
- defaults(fields: Record<keyof TForm, string>): this
65
- reset(...fields: (keyof TForm)[]): this
66
- clearErrors(...fields: (keyof TForm)[]): this
67
- setError(field: keyof TForm, value: string): this
68
- setError(errors: Record<keyof TForm, string>): this
69
- submit(method: string, url: string, options?: Partial<Inertia.VisitOptions>): void
70
- get(url: string, options?: Partial<Inertia.VisitOptions>): void
71
- post(url: string, options?: Partial<Inertia.VisitOptions>): void
72
- put(url: string, options?: Partial<Inertia.VisitOptions>): void
73
- patch(url: string, options?: Partial<Inertia.VisitOptions>): void
74
- delete(url: string, options?: Partial<Inertia.VisitOptions>): void
75
- cancel(): void
76
- }
77
-
78
- export type InertiaForm<TForm> = TForm & InertiaFormProps<TForm>
79
-
80
- export declare function useForm<TForm>(data: TForm): InertiaForm<TForm>
81
-
82
- export declare function useForm<TForm>(rememberKey: string, data: TForm): InertiaForm<TForm>
83
-
84
- export declare function useRemember(data: object, key?: string): Ref<object>
85
-
86
- export declare function usePage<PageProps>(): {
87
- props: ComputedRef<PageProps & Inertia.PageProps>
88
- url: ComputedRef<string>
89
- component: ComputedRef<string>
90
- version: ComputedRef<string | null>
91
- }
92
-
93
- export declare function defineLayout(component: object): void
94
-
95
- export type InertiaHead = DefineComponent<{
96
- title?: string
97
- }>
98
-
99
- export declare const Head: InertiaHead
100
-
101
- declare module '@vue/runtime-core' {
102
- export interface ComponentCustomProperties {
103
- $inertia: typeof Inertia.Inertia
104
- $page: Inertia.Page
105
- $headManager: ReturnType<typeof Inertia.createHeadManager>
106
- }
107
-
108
- export interface ComponentCustomOptions {
109
- remember?:
110
- | string
111
- | string[]
112
- | {
113
- data: string | string[]
114
- key?: string | (() => string)
115
- }
116
- }
117
- }