@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 +40 -0
- package/dist/index.esm.js +5 -1
- package/dist/index.esm.js.map +7 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +7 -1
- package/dist/server.esm.js +1 -1
- package/dist/server.esm.js.map +7 -1
- package/dist/server.js +1 -7
- package/dist/server.js.map +7 -1
- package/package.json +20 -13
- package/src/{app.js → app.ts} +24 -21
- package/src/{createInertiaApp.js → createInertiaApp.ts} +30 -5
- package/src/{head.js → head.ts} +10 -2
- package/src/{index.js → index.ts} +1 -1
- package/src/{link.js → link.ts} +43 -9
- package/src/{remember.js → remember.ts} +4 -1
- package/src/{server.js → server.ts} +0 -0
- package/src/types.ts +31 -0
- package/src/{useForm.js → useForm.ts} +58 -15
- package/src/{useRemember.js → useRemember.ts} +5 -2
- package/tsconfig.json +27 -0
- package/index.d.ts +0 -117
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
|
package/dist/index.esm.js.map
CHANGED
|
@@ -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":"klBAGA,MAAe,CACbA,8BACE,GAAKC,KAAKC,SAASC,SAAnB,CAIIC,MAAMC,QAAQJ,KAAKC,SAASC,YAC9BF,KAAKC,SAASC,SAAW,CAAEG,KAAML,KAAKC,SAASC,WAGX,sBAAtBD,SAASC,WACvBF,KAAKC,SAASC,SAAW,CAAEG,KAAM,CAACL,KAAKC,SAASC,YAGP,sBAA3BD,SAASC,SAASG,OAChCL,KAAKC,SAASC,SAAW,CAAEG,KAAM,CAACL,KAAKC,SAASC,SAASG,QAG3D,MACEL,KAAKC,SAASC,SAASI,wBACnBN,KAAKC,SAASC,SAASI,IAAIC,KAAKP,MAChCA,KAAKC,SAASC,SAASI,MAEZE,EAAOC,QAAQC,KAEXV,KAAKC,SAASC,SAASG,KAAKM,OAAO,SAACL,GACvD,QAAuB,OAAdM,EAAKN,IAAsC,mBAATA,KAAkD,IAA7BM,EAAKN,GAAKO,oBAGvD,SAACP,GACpB,OACgB,SAATA,IACgB,mBAATA,IACoB,qBAApBA,GAAKQ,YACc,qBAAnBR,GAAKS,WAIrBC,EAAaC,QAAQ,SAACX,QACFY,IAAdN,EAAKN,SAAmCY,IAAbC,QAA4CD,IAAlBC,EAASb,KAChEc,EAAad,GAAOM,EAAKN,GAAKS,UAAUI,EAASb,IAASM,EAAKN,GAAOa,EAASb,IAGjFM,EAAKS,OACHf,EACA,WACEE,EAAON,SACLc,EAAaM,OACX,SAACjB,EAAMC,qBACFD,UACFC,GAAMiB,EAAUH,EAAad,GAAOM,EAAKN,GAAKQ,aAAeF,EAAKN,SAErE,IAEFI,IAGJ,CAAEc,WAAW,EAAMC,MAAM,uDCtDQ,mBAAP,GAAkBC,EAAK,GAAK,QAC3B,mBAAP,GAAkBA,EAAK,GAAKA,EAAK,KAAO,KACjDhB,EAAcF,EAAOC,QAAQC,GAAe,OAC9Ca,EAAUlB,KACP,OACgB,OAClB,SAACA,eAENsB,OACLR,EAAWA,EAASd,KAAOA,GAC/BuB,SAAS,EACTC,OAAQV,EAAWA,EAASU,OAAS,GACrCC,WAAW,EACXC,YAAY,EACZC,SAAU,KACVC,eAAe,EACfC,oBAAoB,EACpB7B,2BACE,cAAc8B,KAAK9B,GAAMiB,OAAO,SAACc,EAAO9B,GAEtC,OADA8B,EAAM9B,GAAOM,EAAKN,MAEjB,KAEL+B,mBAAUC,GAGR,OAFAD,EAAYC,QAIdC,kBAASjC,EAAKkC,SAOZ,OALED,OADiB,MACNvC,KAAKK,OAELoC,OAAOC,OAAO,GAAInB,EAAUgB,GAAWC,UAAWlC,GAAMkC,KAAUlC,SAKjFqC,kDACuBpB,EAAUgB,GAe/B,OAbEE,OAAOC,OAAO1C,KADM,IAAlB4C,EAAOC,OACWC,EAIlBL,OAAON,KAAKW,GACTnC,OAAO,SAACL,YAAeyC,SAASzC,KAChCgB,OAAO,SAACc,EAAO9B,GAEd,OADA8B,EAAM9B,GAAOwC,EAAexC,MAE3B,WAMX0C,kBAAS1C,EAAKkC,SAKZ,OAJAC,OAAOC,OAAO1C,KAAK6B,OAAQW,UAAWlC,GAAMkC,KAAUlC,GAEtDN,KAAK8B,UAAYW,OAAON,KAAKnC,KAAK6B,QAAQgB,OAAS,QAIrDI,6DAWE,OAVAjD,KAAK6B,OAASY,OAAON,KAAKnC,KAAK6B,QAAQP,OACrC,SAACc,EAAOc,qBACHd,EACCQ,EAAOC,OAAS,IAAMD,EAAOG,SAASG,WAAYA,GAAQC,EAAKtB,OAAOqB,MAAW,KAEvF,IAGFlD,KAAK8B,UAAYW,OAAON,KAAKnC,KAAK6B,QAAQgB,OAAS,QAIrDO,gBAAOC,EAAQC,EAAKC,SAmCdvD,qBAnCcuD,IAAAA,EAAU,IAC5B,MAAalB,EAAUrC,KAAKK,eAEvBkD,GACHC,cAAe,SAACC,GAGd,GAFAC,EAAcD,EAEVF,EAAQC,cACV,SAAeA,cAAcC,IAGjCE,SAAU,SAACC,GAKT,GAJAC,EAAK5B,eAAgB,EACrB4B,EAAK3B,oBAAqB,EAC1B4B,aAAaC,GAETR,EAAQI,SACV,SAAeA,SAASC,IAG5BI,QAAS,SAACJ,GAGR,GAFAC,EAAK9B,YAAa,EAEdwB,EAAQS,QACV,SAAeA,QAAQJ,IAG3BK,WAAY,SAACC,GAGX,GAFAL,EAAK7B,SAAWkC,EAEZX,EAAQU,WACV,SAAeA,WAAWC,IAG9BC,mBAAkBC,sBAQVD,GAGN,OAFA5B,EAAWhB,EAAU8C,EAAKhE,QAC1BgE,EAAKzC,SAAU,YATfyC,EAAKtC,YAAa,EAClBsC,EAAKrC,SAAW,KAChBqC,EAAKpB,cACLoB,EAAKpC,eAAgB,EACrBoC,EAAKnC,oBAAqB,EAC1B6B,EAA8BO,WAAW,oBAAYpC,oBAAqB,GAAQ,qBAEhEqB,EAAQY,0BAAkBZ,EAAQY,UAAUC,cAAQ,OAIvE,oCACDG,QAAS,SAAC1C,GAKR,GAJAgC,EAAK9B,YAAa,EAClB8B,EAAK7B,SAAW,KAChB6B,EAAKZ,cAAcD,SAASnB,GAExB0B,EAAQgB,QACV,SAAeA,QAAQ1C,IAG3B2C,SAAU,WAIR,GAHAX,EAAK9B,YAAa,EAClB8B,EAAK7B,SAAW,KAEZuB,EAAQiB,SACV,SAAeA,YAGnBC,SAAU,WAKR,GAJAZ,EAAK9B,YAAa,EAClB8B,EAAK7B,SAAW,KAChB0B,EAAc,KAEVH,EAAQkB,SACV,SAAeA,cAKN,WAAXpB,EACF7C,SAAc8C,OAAUoB,GAAUrE,KAAAA,KAElCG,EAAO6C,GAAQC,EAAKjD,EAAMqE,IAG9BC,aAAIrB,EAAKC,GACPvD,KAAKoD,OAAO,MAAOE,EAAKC,IAE1BqB,cAAKtB,EAAKC,GACRvD,KAAKoD,OAAO,OAAQE,EAAKC,IAE3BsB,aAAIvB,EAAKC,GACPvD,KAAKoD,OAAO,MAAOE,EAAKC,IAE1BuB,eAAMxB,EAAKC,GACTvD,KAAKoD,OAAO,QAASE,EAAKC,oBAErBD,EAAKC,GACVvD,KAAKoD,OAAO,SAAUE,EAAKC,IAE7BwB,kBACMrB,GACFA,EAAYqB,UAGhBlE,eAAgC,OAAhBH,EAChBI,sBACE,MAAO,CAAET,KAAML,KAAKK,OAAQwB,OAAQ7B,KAAK6B,SAE3Cd,mBAAUI,GACRsB,OAAOC,OAAO1C,KAAMmB,EAASd,MAC7BL,KAAKgD,SAAS7B,EAASU,YAe3B,OAXAmD,EACEC,EACA,SAACC,GACCD,EAAKrD,SAAWuD,EAAQF,EAAK5E,OAAQkC,GACjC7B,GACFF,EAAON,SAASqB,EAAU2D,EAASpE,cAAeJ,IAGtD,CAAEc,WAAW,EAAMC,MAAM,MCnM7B,MAAkB2D,EAAI,QACTA,EAAI,MACFC,EAAW,QACdD,EAAI,QACE,OAEH,CACbE,KAAM,UACNC,MAAO,CACLC,YAAa,CACXC,KAAMhD,OACNiD,UAAU,GAEZC,iBAAkB,CAChBF,KAAMhD,OACNiD,UAAU,GAEZE,iBAAkB,CAChBH,KAAMI,SACNH,UAAU,GAEZI,cAAe,CACbL,KAAMI,SACNH,UAAU,EACVK,QAAS,SAACC,cAEZC,aAAc,CACZR,KAAMI,SACNH,UAAU,EACVK,QAAS,kCAGbG,0BAAQV,YAAaG,IAAAA,iBAAkBC,IAAAA,iBAAkBE,IAAAA,cAAeG,IAAAA,aACtEE,EAAU3D,MAAQmD,EAAmBS,EAAQT,GAAoB,KACjEvB,EAAK5B,MAAQgD,EACblF,EAAIkC,MAAQ,KAEZ,MAAmC,2BAiBnC,OAhBA6D,EAAcC,EAAkBC,EAAUT,EAAeG,GAEpDM,IACH/F,EAAOgG,KAAK,CACVhB,YAAAA,EACAI,iBAAAA,EACAa,uBAAsB/E,cACpByE,EAAU3D,MAAQ4D,EAAQ1E,EAAKyE,WAC/B/B,EAAK5B,MAAQd,EAAK0C,KAClB9D,EAAIkC,MAAQd,EAAKgF,cAAgBpG,EAAIkC,MAAQmE,KAAKC,wBACnD,sCAGHpG,EAAOqG,GAAG,WAAY,oBAAkBC,4BAIxC,GAAIX,EAAU3D,MAAO,CACnB2D,EAAU3D,MAAMuE,eAAiBZ,EAAU3D,MAAMuE,aAEjD,MAAcC,EAAEb,EAAU3D,WACrB4B,EAAK5B,MAAM+C,OACdjF,IAAKA,EAAIkC,SAQX,OALIyE,EAAOzE,QACT2D,EAAU3D,MAAMyE,OAASA,EAAOzE,MAChCyE,EAAOzE,MAAQ,MAGb2D,EAAU3D,MAAMyE,OACoB,qBAAjBzE,MAAMyE,SACRzE,MAAMyE,OAAOD,EAAGE,IAG3B/G,MAAMC,QAAQ+F,EAAU3D,MAAMyE,QAAUd,EAAU3D,MAAMyE,OAAS,CAACd,EAAU3D,MAAMyE,SACvFE,OAAOD,GACPE,UACA9F,OAAO,SAAC4F,EAAOD,GAEd,OADAA,EAAOF,eAAiBE,EAAOF,eACtBE,OAAa7C,EAAK5B,MAAM+C,OAAS,gCAUlC,CACpB8B,iBAAQC,GACN9G,EAAOyE,KAAOsC,EAEd9E,OAAO+E,eAAeF,EAAIG,OAAOC,iBAAkB,WAAY,CAAE/C,IAAK,uBACtElC,OAAO+E,eAAeF,EAAIG,OAAOC,iBAAkB,QAAS,CAAE/C,IAAK,oBAAWnC,SAC9EC,OAAO+E,eAAeF,EAAIG,OAAOC,iBAAkB,eAAgB,CAAE/C,IAAK,uBAE1E2C,EAAIK,MAAMzH,kBAKZ,MAAO,CACLqF,MAAOqC,EAAS,oBAAWpF,MAAM+C,QACjCjC,IAAKsE,EAAS,oBAAWpF,MAAMc,MAC/B6C,UAAWyB,EAAS,oBAAWpF,MAAM2D,YACrC0B,QAASD,EAAS,oBAAWpF,MAAMqF,WAIvC,WAA6B1B,GAC3Bc,EAAOzE,MAAQ2D,8BC/GgC2B,EAAYC,EAAS7B,EAAOF,IAAOhE,EAAeoC,EAAM4D,EAAxDF,gBAAAA,IAAK,QAAOC,IAAAA,QAAS7B,IAAAA,MAAOF,IAAAA,MAAOhE,gBAAAA,UAAW,KAAIoC,IAAAA,KAAM4D,IAAAA,OACvG,MAAmC,6BACxBzB,EAAW,KAAO0B,SAASC,eAAeJ,KACjC1D,GAAQ+D,KAAKC,MAAMC,EAAGC,QAAQlE,QACzB,SAACkB,kBAAiByC,QAAQA,EAAQzC,IAAOiD,KAAK,SAACC,qBAA6BA,OAE1F,0BAEU5C,EAAiBJ,EAAYW,WAAWoC,KAAK,SAAC5C,GACjE,SAAa,CACX0C,GAAAA,EACAI,IAAAA,EACAlD,MAAO,CACLC,YAAAA,EACAG,iBAAAA,EACAC,iBAAAA,EACAE,cAAeE,EACfC,aAAcM,EAAW,SAACmC,YAAqBA,GAAY,MAE7DC,OAAAA,qBAXEC,GAiBL,OAFIrC,GAAYvE,GACf6G,EAAc7G,iBAGZuE,yBACiByB,EACjBc,EAAa,CACXd,OAAQ,oBACJ,MAAO,CACPF,GAAAA,EACAiB,YAAaZ,KAAKa,UAAUxD,GAC5ByD,UAAWjB,EAAOY,2BAK1B,MAAO,CAAEM,KAAAA,EAAMC,eAElB,sCC7Cc,CACb5D,MAAO,CACLS,MAAO,CACLP,KAAM2D,OACN1D,UAAU,IAGdrF,gBACE,MAAO,CACLgJ,SAAUrJ,KAAKsJ,aAAaC,mBAGhCC,yBACExJ,KAAKqJ,SAASI,cAEhBC,QAAS,CACPC,oBAAWC,GACT,MACE,CACE,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,OACA,QACA,SACA,QACA,OACAC,QAAQD,EAAKnE,OAAS,GAG5BqE,wBAAeF,GACbA,EAAKrE,MAAQqE,EAAKrE,OAAS,GAC3BqE,EAAKrE,MAAMwE,aAAqC7I,IAA3B0I,EAAKrE,MAAM,YAA4BqE,EAAKrE,MAAM,YAAc,GACrF,MAAc9C,OAAON,KAAKyH,EAAKrE,OAAOjE,OAAO,SAACc,EAAOkD,GACnD,MAAcsE,EAAKrE,MAAMD,GACzB,MAAI,CAAC,MAAO,YAAYvC,SAASuC,KAEZ,KAAV9C,QACU8C,QAEAA,OAAS9C,OAE7B,IACH,UAAWoH,EAAKnE,KAAOuE,OAEzBC,2BAAkBL,cAChB,MAAgC,mBAAbM,SACfN,EAAKM,SACLN,EAAKM,SAAS5I,OAAO,SAAC6I,EAAMjD,YAAiBtG,EAAKwJ,UAAUlD,IAAQ,KAE1EkD,mBAAUR,GACR,GAA6B,iBAAzBA,EAAKnE,KAAK4E,WACZ,SAAYH,YACsB,aAAzBN,EAAKnE,KAAK4E,WACnB,MAAO,MAC2B,oBAAzBT,EAAKnE,KAAK4E,WACnB,MAAO,GAET,MAAWrK,KAAK8J,eAAeF,GAO/B,OANIA,EAAKM,WACPC,GAAQnK,KAAKiK,kBAAkBL,IAE5B5J,KAAK2J,WAAWC,KACnBO,QAAaP,EAAKnE,aAItB6E,yBAAgB5B,GAId,OAHI1I,KAAKgG,QAAU0C,EAAS6B,KAAK,SAACC,YAAYC,WAAW,aACvD/B,EAASgC,uBAAuB1K,KAAKgG,qBAIzC2E,qBAAYC,cACV,YAAYN,gBACVM,EACGC,QAAQ,SAACjB,SAAmC,uBAApBnE,KAAK4E,WAAoCT,EAAKM,SAAWN,IACjFkB,IAAI,SAAClB,YAAcQ,UAAUR,KAC7BjJ,OAAO,SAACiJ,iBAIjB5B,kBACEhI,KAAKqJ,SAAS0B,OAAO/K,KAAK2K,YAAY3K,KAAKgL,eAAiBhL,KAAKgL,iBAAmB,SCvFzE,CACb1F,KAAM,OACNC,MAAO,CACL0F,GAAI,CACFxF,KAAM2D,OACNrD,QAAS,KAEX1F,KAAM,CACJoF,KAAMhD,OACNsD,QAAS,iBAAO,KAElBmF,KAAM,CACJzF,KAAM2D,QAER/F,OAAQ,CACNoC,KAAM2D,OACNrD,QAAS,OAEXoF,QAAS,CACP1F,KAAM2F,QACNrF,SAAS,GAEXsF,eAAgB,CACd5F,KAAM2F,QACNrF,SAAS,GAEXW,cAAe,CACbjB,KAAM2F,QACNrF,QAAS,MAEXuF,KAAM,CACJ7F,KAAMtF,MACN4F,QAAS,iBAAM,KAEjBwF,QAAS,CACP9F,KAAMhD,OACNsD,QAAS,iBAAO,KAElByF,uBAAwB,CACtB/F,KAAM2D,OACNrD,QAAS,aAGbG,eAAMX,aAASkG,MAAOzB,IAAAA,MACpB,gBAAQzE,GACN,MAAWA,EAAM0F,GAAGS,gBACLnG,EAAMlC,OAAOqI,gBACPC,EAAyBtI,EAAQkC,EAAM2F,MAAQ,GAAI3F,EAAMlF,KAAMkF,EAAMiG,wBAAnFN,OAAM7K,OAQb,MANW,MAAP4K,GAAyB,QAAX5H,GAChBuI,QAAQC,oOACyNX,eAAiB7H,gCAKlPkC,EAAM0F,QAEDjB,EACQ,MAAPiB,EAAa,CAAEC,KAAAA,GAAS,IAC5BY,QAAS,SAAC5H,SACJ6H,EAAgB7H,KAClBA,EAAM8H,iBAENxL,EAAOoD,MAAMsH,EAAM,CACjB7K,KAAMA,EACNgD,OAAQA,EACR8H,QAAS5F,EAAM4F,QACfE,eAAgB9F,EAAM8F,eACtB3E,uBAAenB,EAAMmB,iBAA4B,QAAXrD,EACtCiI,KAAM/F,EAAM+F,KACZC,QAAShG,EAAMgG,QACf/H,cAAewG,EAAMxG,eAAkB,iBAAO,IAC9CG,SAAUqG,EAAMrG,UAAa,iBAAO,IACpCK,QAASgG,EAAMhG,SAAY,iBAAO,IAClCC,WAAY+F,EAAM/F,YAAe,iBAAO,IACxCQ,SAAUuF,EAAMvF,UAAa,iBAAO,IACpCD,SAAUwF,EAAMxF,UAAa,iBAAO,IACpCL,UAAW6F,EAAM7F,WAAc,iBAAO,IACtCI,QAASyF,EAAMzF,SAAY,iBAAO,UAK1CkH,iBCnF4BpL,EAAMC,GACxC,GAAoB,oBAAqB,OAATD,IAAyC,IAAxBA,EAAKQ,eACpD,SAGF,MAAiBL,EAAOC,QAAQH,KACnB2L,EAAW5L,GAAQsB,EAAWyD,IACK,qBAAftE,YAAuD,qBAAdC,iBAC1CG,IAAbC,EAAyBd,EAAOoF,EAAKrE,EAAef,EAAKU,UAAUI,GAAYA,GAUlG,OARA6D,EACEkH,EACA,SAAChH,GACC1E,EAAON,SAASqB,EAAUH,EAAef,EAAKS,aAAeoE,GAAW5E,IAE1E,CAAEkB,WAAW,EAAMC,MAAM"}
|
|
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": ["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
|
+
}
|
package/dist/server.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import{default as f}from"@inertiajs/core/server";export{f as default};
|
|
2
2
|
//# sourceMappingURL=server.esm.js.map
|
package/dist/server.esm.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
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
|
-
|
|
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
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
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.
|
|
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.
|
|
18
|
+
"source": "src/index.ts",
|
|
19
19
|
"main": "dist/index.js",
|
|
20
|
-
"
|
|
20
|
+
"types": "types/index.d.ts",
|
|
21
21
|
"exports": {
|
|
22
|
-
".":
|
|
23
|
-
|
|
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
|
-
"
|
|
27
|
-
"build
|
|
28
|
-
"
|
|
29
|
-
"
|
|
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
|
-
"
|
|
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.
|
|
48
|
+
"@inertiajs/core": "1.0.0-beta.4",
|
|
42
49
|
"lodash.clonedeep": "^4.5.0",
|
|
43
50
|
"lodash.isequal": "^4.5.0"
|
|
44
51
|
}
|
package/src/{app.js → app.ts}
RENAMED
|
@@ -1,19 +1,30 @@
|
|
|
1
|
-
import { createHeadManager, router } from '@inertiajs/core'
|
|
2
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
)
|
package/src/{head.js → head.ts}
RENAMED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
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 {
|
|
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'
|
package/src/{link.js → link.ts}
RENAMED
|
@@ -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
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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(
|
|
36
|
-
if (typeof
|
|
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(
|
|
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(
|
|
63
|
-
Object.assign(this.errors,
|
|
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
|
|
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
|
-
}
|