UNPKG

@vueuse/router

Version:
1 lines 2.14 kB
(function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let i;function a(e,{mode:a=`replace`,route:o=(0,r.useRoute)(),router:s=(0,r.useRouter)()}={}){i=o.hash,(0,t.tryOnScopeDispose)(()=>{i=void 0});let c,l=(0,n.customRef)((t,r)=>(c=r,{get(){return t(),i||(0,n.toValue)(e)},set(e){e!==i&&(i=e===null?void 0:e,r(),(0,n.nextTick)(()=>{let{params:e,query:t}=o;s[(0,n.toValue)(a)]({params:e,query:t,hash:i})}))}}));return(0,n.watch)(()=>o.hash,()=>{o.hash!==i&&(i=o.hash,c())},{flush:`sync`}),l}let o=new WeakMap;function s(e,i,a={}){let{mode:s=`replace`,route:c=(0,r.useRoute)(),router:l=(0,r.useRouter)(),transform:u}=a,d=e=>e,f=e=>e;typeof u==`function`?d=u:u&&(u.get&&(d=u.get),u.set&&(f=u.set)),o.has(l)||o.set(l,new Map);let p=o.get(l),m=c.params[e];(0,t.tryOnScopeDispose)(()=>{m=void 0});let h,g=(0,n.customRef)((t,r)=>(h=r,{get(){return t(),d(m!==void 0&&m!==``?m:(0,n.toValue)(i))},set(t){t=f(t),m!==t&&(m=t===(0,n.toValue)(i)||t===null?void 0:t,p.set(e,t===(0,n.toValue)(i)||t===null?void 0:t),r(),(0,n.nextTick)(()=>{if(p.size===0)return;let e=Object.fromEntries(p.entries());p.clear();let{params:t,query:r,hash:i}=c;l[(0,n.toValue)(s)]({params:{...t,...e},query:r,hash:i})}))}}));return(0,n.watch)(()=>c.params[e],e=>{m!==d(e)&&(m=e,h())},{flush:`sync`}),g}let c=new WeakMap;function l(e,i,a={}){let{mode:o=`replace`,route:s=(0,r.useRoute)(),router:l=(0,r.useRouter)(),transform:u}=a,d=e=>e,f=e=>e;typeof u==`function`?d=u:u&&(u.get&&(d=u.get),u.set&&(f=u.set)),c.has(l)||c.set(l,new Map);let p=c.get(l),m=s.query[e];(0,t.tryOnScopeDispose)(()=>{m=void 0});let h,g=(0,n.customRef)((t,r)=>(h=r,{get(){return t(),d(m===void 0?(0,n.toValue)(i):m)},set(t){t=f(t),m!==t&&(m=t===(0,n.toValue)(i)?void 0:t,p.set(e,t===(0,n.toValue)(i)?void 0:t),r(),(0,n.nextTick)(()=>{if(p.size===0)return;let e=Object.fromEntries(p.entries());p.clear();let{params:t,query:r,hash:i}=s;l[(0,n.toValue)(o)]({params:t,query:{...r,...e},hash:i})}))}}));return(0,n.watch)(()=>s.query[e],e=>{m!==d(e)&&(m=e,h())},{flush:`sync`}),g}e.useRouteHash=a,e.useRouteParams=s,e.useRouteQuery=l})(this.VueUse=this.VueUse||{},VueUse,Vue,VueRouter);