import{i as P,k as w,o as E,r as U,p as I,q as H,s as O,t as D,n as F,v as V,w as _,c as z,x as M,y as W,z as $,A as G,B as Q,C as B}from"./BSfFG59R.js";import{d as j,a as J,v as K,h as L,am as T,O as X,e as Y,u as f,l as h}from"./DINJ4NqB.js";const Z=(...t)=>t.find(s=>s!==void 0);function ee(t){const s=t.componentName||"NuxtLink";function v(e){return typeof e=="string"&&e.startsWith("#")}function p(e,l,a){const n=a??t.trailingSlash;if(!e||n!=="append"&&n!=="remove")return e;if(typeof e=="string")return q(e,n);const i="path"in e&&e.path!==void 0?e.path:l(e).path;return{...e,name:void 0,path:q(i,n)}}function C(e){const l=P(),a=z(),n=h(()=>!!f(e.target)&&f(e.target)!=="_self"),i=h(()=>{const o=f(e.to)||f(e.href)||"";return typeof o=="string"&&_(o,{acceptRelative:!0})}),m=T("RouterLink"),y=m&&typeof m!="string"?m.useLink:void 0,d=h(()=>{if(f(e.external))return!0;const o=f(e.to)||f(e.href)||"";return typeof o=="object"?!1:o===""||i.value}),u=h(()=>{const o=f(e.to)||f(e.href)||"";return d.value?o:p(o,l.resolve,f(e.trailingSlash))}),b=d.value?void 0:y?.({...e,to:u,viewTransition:f(e.viewTransition)}),x=h(()=>{const o=f(e.trailingSlash)??t.trailingSlash;if(!u.value||i.value||v(u.value))return u.value;if(d.value){const S=typeof u.value=="object"&&"path"in u.value?O(u.value):u.value,k=typeof S=="object"?l.resolve(S).href:S;return q(k,o)}return typeof u.value=="object"?l.resolve(u.value)?.href??null:q(V(a.app.baseURL,u.value),o)});return{to:u,hasTarget:n,isAbsoluteUrl:i,isExternal:d,href:x,isActive:b?.isActive??h(()=>u.value===l.currentRoute.value.path),isExactActive:b?.isExactActive??h(()=>u.value===l.currentRoute.value.path),route:b?.route??h(()=>l.resolve(u.value)),async navigate(o){await F(x.value,{replace:f(e.replace),external:d.value||n.value})}}}return j({name:s,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:C,setup(e,{slots:l}){const a=P(),{to:n,href:i,navigate:m,isExternal:y,hasTarget:d,isAbsoluteUrl:u}=C(e),b=X(!1),x=Y(null),o=c=>{x.value=e.custom?c?.$el?.nextElementSibling:c?.$el};function S(c){return!b.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===c:e.prefetchOn?.[c]??t.prefetchOn?.[c])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ne()}async function k(c=w()){if(b.value)return;b.value=!0;const g=typeof n.value=="string"?n.value:y.value?O(n.value):a.resolve(n.value).fullPath,r=y.value?new URL(g,window.location.href).href:g;await Promise.all([c.hooks.callHook("link:prefetch",r)?.catch(()=>{}),!y.value&&!d.value&&D(n.value,a).catch(()=>{})])}if(S("visibility")){const c=w();let g,r=null;J(()=>{const R=te();E(()=>{g=U(()=>{x?.value?.tagName&&(r=R.observe(x.value,async()=>{r?.(),r=null,await k(c)}))})})}),K(()=>{g&&I(g),r?.(),r=null})}return()=>{if(!y.value&&!d.value&&!v(n.value)){const r={ref:o,to:n.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(S("interaction")&&(r.onPointerenter=k.bind(null,void 0),r.onFocus=k.bind(null,void 0)),b.value&&(r.class=e.prefetchedClass||t.prefetchedClass),r.rel=e.rel||void 0),L(T("RouterLink"),r,l.default)}const c=e.target||null,g=Z(e.noRel?"":e.rel,t.externalRelAttribute,u.value||d.value?"noopener noreferrer":"")||null;return e.custom?l.default?l.default({href:i.value,navigate:m,prefetch:k,get route(){if(!i.value)return;const r=new URL(i.value,window.location.href);return{path:r.pathname,fullPath:r.pathname,get query(){return H(r.search)},hash:r.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:g,target:c,isExternal:y.value||d.value,isActive:!1,isExactActive:!1}):null:L("a",{ref:x,href:i.value||null,rel:g,target:c,onClick:async r=>{if(!(y.value||d.value)){r.preventDefault();try{const R=$(i.value);return await(e.replace?a.replace(R):a.push(R))}finally{if(v(n.value)){const R=n.value.slice(1);let A=R;try{A=decodeURIComponent(R)}catch{}document.getElementById(A)?.focus()}}}}},l.default?.())}}})}const N=ee(G);function q(t,s){const v=s==="append"?M:W;return _(t)&&!t.startsWith("http")?t:v(t,!0)}function te(){const t=w();if(t._observer)return t._observer;let s=null;const v=new Map,p=(e,l)=>(s||=new IntersectionObserver(a=>{for(const n of a){const i=v.get(n.target);(n.isIntersecting||n.intersectionRatio>0)&&i&&i()}}),v.set(e,l),s.observe(e),()=>{v.delete(e),s?.unobserve(e),v.size===0&&(s?.disconnect(),s=null)});return t._observer={observe:p}}const ae=/2g/;function ne(){const t=navigator.connection;return!!(t&&(t.saveData||ae.test(t.effectiveType)))}const ie=j({name:"NuxtLinkLocale",props:{...N.props,locale:{type:String,default:void 0,required:!1}},setup(t,{slots:s}){const v=Q(),p=h(()=>{const a=t.to||t.href||"";return typeof a=="string"&&_(a,{acceptRelative:!0})}),C=h(()=>{const a=t.to??t.href,n=a!=null?v(a,t.locale):a;return n&&B(t.to)&&(n.state=t.to?.state),a!=null?n:a}),e=h(()=>{if(t.external)return!0;const a=t.to||t.href||"";return B(a)?!1:a===""||p.value}),l=()=>{const a={...t};return e.value||(a.to=C.value),delete a.href,delete a.locale,a};return()=>L(N,l(),s.default)}});export{ie as _,N as a};
