{"version":3,"file":"nuxt-link.XYTAAP0l.js","sources":["../../../../../../app/node_modules/nuxt/dist/app/composables/preload.js","../../../../../../app/node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useRouter } from \"./router.js\";\nexport const preloadComponents = async (components) => {\n  if (import.meta.server) {\n    return;\n  }\n  const nuxtApp = useNuxtApp();\n  components = toArray(components);\n  await Promise.all(components.map((name) => _loadAsyncComponent(nuxtApp.vueApp._context.components[name])));\n};\nexport const prefetchComponents = (components) => {\n  return preloadComponents(components);\n};\nfunction _loadAsyncComponent(component) {\n  if (component?.__asyncLoader && !component.__asyncResolved) {\n    return component.__asyncLoader();\n  }\n}\nexport async function preloadRouteComponents(to, router = useRouter()) {\n  if (import.meta.server) {\n    return;\n  }\n  const { path, matched } = router.resolve(to);\n  if (!matched.length) {\n    return;\n  }\n  if (!router._routePreloaded) {\n    router._routePreloaded = /* @__PURE__ */ new Set();\n  }\n  if (router._routePreloaded.has(path)) {\n    return;\n  }\n  const promises = router._preloadPromises = router._preloadPromises || [];\n  if (promises.length > 4) {\n    return Promise.all(promises).then(() => preloadRouteComponents(to, router));\n  }\n  router._routePreloaded.add(path);\n  const components = matched.map((component) => component.components?.default).filter((component) => typeof component === \"function\");\n  for (const component of components) {\n    const promise = Promise.resolve(component()).catch(() => {\n    }).finally(() => promises.splice(promises.indexOf(promise)));\n    promises.push(promise);\n  }\n  await Promise.all(promises);\n}\n","import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent } from \"vue\";\nimport { hasProtocol, joinURL, parseQuery, parseURL, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { navigateTo, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nconst DEFAULT_EXTERNAL_REL_ATTRIBUTE = \"noopener noreferrer\";\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n  const componentName = options.componentName || \"NuxtLink\";\n  const checkPropConflicts = (props, main, sub) => {\n    if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n      console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n    }\n  };\n  const resolveTrailingSlashBehavior = (to, resolve) => {\n    if (!to || options.trailingSlash !== \"append\" && options.trailingSlash !== \"remove\") {\n      return to;\n    }\n    if (typeof to === \"string\") {\n      return applyTrailingSlashBehavior(to, options.trailingSlash);\n    }\n    const path = \"path\" in to ? to.path : resolve(to).path;\n    return {\n      ...to,\n      name: void 0,\n      // named routes would otherwise always override trailing slash behavior\n      path: applyTrailingSlashBehavior(path, options.trailingSlash)\n    };\n  };\n  return defineComponent({\n    name: componentName,\n    props: {\n      // Routing\n      to: {\n        type: [String, Object],\n        default: void 0,\n        required: false\n      },\n      href: {\n        type: [String, Object],\n        default: void 0,\n        required: false\n      },\n      // Attributes\n      target: {\n        type: String,\n        default: void 0,\n        required: false\n      },\n      rel: {\n        type: String,\n        default: void 0,\n        required: false\n      },\n      noRel: {\n        type: Boolean,\n        default: void 0,\n        required: false\n      },\n      // Prefetching\n      prefetch: {\n        type: Boolean,\n        default: void 0,\n        required: false\n      },\n      noPrefetch: {\n        type: Boolean,\n        default: void 0,\n        required: false\n      },\n      // Styling\n      activeClass: {\n        type: String,\n        default: void 0,\n        required: false\n      },\n      exactActiveClass: {\n        type: String,\n        default: void 0,\n        required: false\n      },\n      prefetchedClass: {\n        type: String,\n        default: void 0,\n        required: false\n      },\n      // Vue Router's `<RouterLink>` additional props\n      replace: {\n        type: Boolean,\n        default: void 0,\n        required: false\n      },\n      ariaCurrentValue: {\n        type: String,\n        default: void 0,\n        required: false\n      },\n      // Edge cases handling\n      external: {\n        type: Boolean,\n        default: void 0,\n        required: false\n      },\n      // Slot API\n      custom: {\n        type: Boolean,\n        default: void 0,\n        required: false\n      }\n    },\n    setup(props, { slots }) {\n      const router = useRouter();\n      const config = useRuntimeConfig();\n      const to = computed(() => {\n        checkPropConflicts(props, \"to\", \"href\");\n        const path = props.to || props.href || \"\";\n        return resolveTrailingSlashBehavior(path, router.resolve);\n      });\n      const isProtocolURL = computed(() => typeof to.value === \"string\" && hasProtocol(to.value, { acceptRelative: true }));\n      const isExternal = computed(() => {\n        if (props.external) {\n          return true;\n        }\n        if (props.target && props.target !== \"_self\") {\n          return true;\n        }\n        if (typeof to.value === \"object\") {\n          return false;\n        }\n        return to.value === \"\" || isProtocolURL.value;\n      });\n      const prefetched = ref(false);\n      const el = import.meta.server ? void 0 : ref(null);\n      const elRef = import.meta.server ? void 0 : (ref2) => {\n        el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n      };\n      if (import.meta.client) {\n        checkPropConflicts(props, \"prefetch\", \"noPrefetch\");\n        const shouldPrefetch = props.prefetch !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n        if (shouldPrefetch) {\n          const nuxtApp = useNuxtApp();\n          let idleId;\n          let unobserve = null;\n          onMounted(() => {\n            const observer = useObserver();\n            onNuxtReady(() => {\n              idleId = requestIdleCallback(() => {\n                if (el?.value?.tagName) {\n                  unobserve = observer.observe(el.value, async () => {\n                    unobserve?.();\n                    unobserve = null;\n                    const path = typeof to.value === \"string\" ? to.value : router.resolve(to.value).fullPath;\n                    await Promise.all([\n                      nuxtApp.hooks.callHook(\"link:prefetch\", path).catch(() => {\n                      }),\n                      !isExternal.value && preloadRouteComponents(to.value, router).catch(() => {\n                      })\n                    ]);\n                    prefetched.value = true;\n                  });\n                }\n              });\n            });\n          });\n          onBeforeUnmount(() => {\n            if (idleId) {\n              cancelIdleCallback(idleId);\n            }\n            unobserve?.();\n            unobserve = null;\n          });\n        }\n      }\n      if (import.meta.dev && import.meta.server && !props.custom) {\n        const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n        if (isNuxtLinkChild) {\n          console.log(\"[nuxt] [NuxtLink] You can't nest one <a> inside another <a>. This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n        } else {\n          provide(NuxtLinkDevKeySymbol, true);\n        }\n      }\n      return () => {\n        if (!isExternal.value) {\n          const routerLinkProps = {\n            ref: elRef,\n            to: to.value,\n            activeClass: props.activeClass || options.activeClass,\n            exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n            replace: props.replace,\n            ariaCurrentValue: props.ariaCurrentValue,\n            custom: props.custom\n          };\n          if (!props.custom) {\n            if (prefetched.value) {\n              routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n            }\n            routerLinkProps.rel = props.rel;\n          }\n          return h(\n            resolveComponent(\"RouterLink\"),\n            routerLinkProps,\n            slots.default\n          );\n        }\n        const href = typeof to.value === \"object\" ? router.resolve(to.value)?.href ?? null : to.value && !props.external && !isProtocolURL.value ? resolveTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), router.resolve) : to.value || null;\n        const target = props.target || null;\n        checkPropConflicts(props, \"noRel\", \"rel\");\n        const rel = props.noRel ? null : firstNonUndefined(props.rel, options.externalRelAttribute, href ? DEFAULT_EXTERNAL_REL_ATTRIBUTE : \"\") || null;\n        const navigate = () => navigateTo(href, { replace: props.replace });\n        if (props.custom) {\n          if (!slots.default) {\n            return null;\n          }\n          return slots.default({\n            href,\n            navigate,\n            get route() {\n              if (!href) {\n                return void 0;\n              }\n              const url = parseURL(href);\n              return {\n                path: url.pathname,\n                fullPath: url.pathname,\n                get query() {\n                  return parseQuery(url.search);\n                },\n                hash: url.hash,\n                // stub properties for compat with vue-router\n                params: {},\n                name: void 0,\n                matched: [],\n                redirectedFrom: void 0,\n                meta: {},\n                href\n              };\n            },\n            rel,\n            target,\n            isExternal: isExternal.value,\n            isActive: false,\n            isExactActive: false\n          });\n        }\n        return h(\"a\", { ref: el, href, rel, target }, slots.default?.());\n      };\n    }\n  });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n  const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n  const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n  if (hasProtocolDifferentFromHttp) {\n    return to;\n  }\n  return normalizeFn(to, true);\n}\nfunction useObserver() {\n  if (import.meta.server) {\n    return;\n  }\n  const nuxtApp = useNuxtApp();\n  if (nuxtApp._observer) {\n    return nuxtApp._observer;\n  }\n  let observer = null;\n  const callbacks = /* @__PURE__ */ new Map();\n  const observe = (element, callback) => {\n    if (!observer) {\n      observer = new IntersectionObserver((entries) => {\n        for (const entry of entries) {\n          const callback2 = callbacks.get(entry.target);\n          const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n          if (isVisible && callback2) {\n            callback2();\n          }\n        }\n      });\n    }\n    callbacks.set(element, callback);\n    observer.observe(element);\n    return () => {\n      callbacks.delete(element);\n      observer.unobserve(element);\n      if (callbacks.size === 0) {\n        observer.disconnect();\n        observer = null;\n      }\n    };\n  };\n  const _observer = nuxtApp._observer = {\n    observe\n  };\n  return _observer;\n}\nfunction isSlowConnection() {\n  if (import.meta.server) {\n    return;\n  }\n  const cn = navigator.connection;\n  if (cn && (cn.saveData || /2g/.test(cn.effectiveType))) {\n    return true;\n  }\n  return false;\n}\n"],"names":["preloadRouteComponents","to","router","useRouter","path","matched","promises","components","component","_a","promise","firstNonUndefined","args","arg","DEFAULT_EXTERNAL_REL_ATTRIBUTE","defineNuxtLink","options","componentName","resolveTrailingSlashBehavior","resolve","applyTrailingSlashBehavior","defineComponent","props","slots","config","useRuntimeConfig","computed","isProtocolURL","hasProtocol","isExternal","prefetched","ref","el","elRef","ref2","isSlowConnection","nuxtApp","useNuxtApp","idleId","unobserve","onMounted","observer","useObserver","onNuxtReady","requestIdleCallback","onBeforeUnmount","cancelIdleCallback","routerLinkProps","h","resolveComponent","href","joinURL","target","rel","navigate","navigateTo","url","parseURL","parseQuery","_b","__nuxt_component_0","nuxtLinkDefaults","trailingSlash","normalizeFn","withTrailingSlash","withoutTrailingSlash","callbacks","observe","element","callback","entries","entry","callback2","cn"],"mappings":"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","x_google_ignoreList":[0,1]}