import{x as O,aS as q,i as k,p as T,aT as B,aU as j,q as N,aV as U,aW as A,aR as L,aX as E,Q as I,n as V,aY as _,aZ as D,a_ as F,l as b,a6 as w,a8 as H,a$ as W,b0 as z,b1 as M,h as $}from"./CzPnhaXo.js";const Q=(...t)=>t.find(o=>o!==void 0);function G(t){const o=t.componentName||"NuxtLink";function v(e){return typeof e=="string"&&e.startsWith("#")}function S(e,i,f){const r=f??t.trailingSlash;if(!e||r!=="append"&&r!=="remove")return e;if(typeof e=="string")return R(e,r);const l="path"in e&&e.path!==void 0?e.path:i(e).path;return{...e,name:void 0,path:R(l,r)}}function C(e){const i=q(),f=$(),r=b(()=>!!e.target&&e.target!=="_self"),l=b(()=>{const u=e.to||e.href||"";return typeof u=="string"&&w(u,{acceptRelative:!0})}),y=L("RouterLink"),h=y&&typeof y!="string"?y.useLink:void 0,c=b(()=>{if(e.external)return!0;const u=e.to||e.href||"";return typeof u=="object"?!1:u===""||l.value}),n=b(()=>{const u=e.to||e.href||"";return c.value?u:S(u,i.resolve,e.trailingSlash)}),g=c.value?void 0:h?.({...e,to:n}),p=b(()=>{const u=e.trailingSlash??t.trailingSlash;if(!n.value||l.value||v(n.value))return n.value;if(c.value){const m=typeof n.value=="object"&&"path"in n.value?_(n.value):n.value,x=typeof m=="object"?i.resolve(m).href:m;return R(x,u)}return typeof n.value=="object"?i.resolve(n.value)?.href??null:R(H(f.app.baseURL,n.value),u)});return{to:n,hasTarget:r,isAbsoluteUrl:l,isExternal:c,href:p,isActive:g?.isActive??b(()=>n.value===i.currentRoute.value.path),isExactActive:g?.isExactActive??b(()=>n.value===i.currentRoute.value.path),route:g?.route??b(()=>i.resolve(n.value)),async navigate(u){await F(p.value,{replace:e.replace,external:c.value||r.value})}}}return O({name:o,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:i}){const f=q(),{to:r,href:l,navigate:y,isExternal:h,hasTarget:c,isAbsoluteUrl:n}=C(e),g=I(!1),p=V(null),u=s=>{p.value=e.custom?s?.$el?.nextElementSibling:s?.$el};function m(s){return!g.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===s:e.prefetchOn?.[s]??t.prefetchOn?.[s])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!Z()}async function x(s=k()){if(g.value)return;g.value=!0;const d=typeof r.value=="string"?r.value:h.value?_(r.value):f.resolve(r.value).fullPath,a=h.value?new URL(d,window.location.href).href:d;await Promise.all([s.hooks.callHook("link:prefetch",a).catch(()=>{}),!h.value&&!c.value&&D(r.value,f).catch(()=>{})])}if(m("visibility")){const s=k();let d,a=null;T(()=>{const P=X();B(()=>{d=j(()=>{p?.value?.tagName&&(a=P.observe(p.value,async()=>{a?.(),a=null,await x(s)}))})})}),N(()=>{d&&U(d),a?.(),a=null})}return()=>{if(!h.value&&!c.value&&!v(r.value)){const a={ref:u,to:r.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(m("interaction")&&(a.onPointerenter=x.bind(null,void 0),a.onFocus=x.bind(null,void 0)),g.value&&(a.class=e.prefetchedClass||t.prefetchedClass),a.rel=e.rel||void 0),A(L("RouterLink"),a,i.default)}const s=e.target||null,d=Q(e.noRel?"":e.rel,t.externalRelAttribute,n.value||c.value?"noopener noreferrer":"")||null;return e.custom?i.default?i.default({href:l.value,navigate:y,prefetch:x,get route(){if(!l.value)return;const a=new URL(l.value,window.location.href);return{path:a.pathname,fullPath:a.pathname,get query(){return E(a.search)},hash:a.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l.value}},rel:d,target:s,isExternal:h.value||c.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:p,href:l.value||null,rel:d,target:s,onClick:a=>{if(!(h.value||c.value))return a.preventDefault(),e.replace?f.replace(l.value):f.push(l.value)}},i.default?.())}}})}const K=G(W);function R(t,o){const v=o==="append"?z:M;return w(t)&&!t.startsWith("http")?t:v(t,!0)}function X(){const t=k();if(t._observer)return t._observer;let o=null;const v=new Map,S=(e,i)=>(o||=new IntersectionObserver(f=>{for(const r of f){const l=v.get(r.target);(r.isIntersecting||r.intersectionRatio>0)&&l&&l()}}),v.set(e,i),o.observe(e),()=>{v.delete(e),o?.unobserve(e),v.size===0&&(o?.disconnect(),o=null)});return t._observer={observe:S}}const Y=/2g/;function Z(){const t=navigator.connection;return!!(t&&(t.saveData||Y.test(t.effectiveType)))}export{K as _};
