{"version":3,"file":"CQq67oPE.js","sources":["../../../../../../nuxt/dist/app/composables/preload.js","../../../../../../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) => {\n    const component = nuxtApp.vueApp._context.components[name];\n    if (component) {\n      return _loadAsyncComponent(component);\n    }\n  }));\n};\nexport const prefetchComponents = (components) => {\n  if (import.meta.server) {\n    return;\n  }\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, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { navigateTo, resolveRouteObject, 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 NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n  const componentName = options.componentName || \"NuxtLink\";\n  function 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  function 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 !== void 0 ? to.path : resolve(to).path;\n    const resolvedPath = {\n      ...to,\n      name: void 0,\n      // named routes would otherwise always override trailing slash behavior\n      path: applyTrailingSlashBehavior(path, options.trailingSlash)\n    };\n    return resolvedPath;\n  }\n  function useNuxtLink(props) {\n    const router = useRouter();\n    const config = useRuntimeConfig();\n    const hasTarget = computed(() => !!props.target && props.target !== \"_self\");\n    const isAbsoluteUrl = computed(() => {\n      const path = props.to || props.href || \"\";\n      return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n    });\n    const builtinRouterLink = resolveComponent(\"RouterLink\");\n    const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n    const isExternal = computed(() => {\n      if (props.external) {\n        return true;\n      }\n      const path = props.to || props.href || \"\";\n      if (typeof path === \"object\") {\n        return false;\n      }\n      return path === \"\" || isAbsoluteUrl.value;\n    });\n    const to = computed(() => {\n      checkPropConflicts(props, \"to\", \"href\");\n      const path = props.to || props.href || \"\";\n      if (isExternal.value) {\n        return path;\n      }\n      return resolveTrailingSlashBehavior(path, router.resolve);\n    });\n    const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to });\n    const href = computed(() => {\n      if (!to.value || isAbsoluteUrl.value) {\n        return to.value;\n      }\n      if (isExternal.value) {\n        const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n        const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n        return resolveTrailingSlashBehavior(\n          href2,\n          router.resolve\n          /* will not be called */\n        );\n      }\n      if (typeof to.value === \"object\") {\n        return router.resolve(to.value)?.href ?? null;\n      }\n      return resolveTrailingSlashBehavior(\n        joinURL(config.app.baseURL, to.value),\n        router.resolve\n        /* will not be called */\n      );\n    });\n    return {\n      to,\n      hasTarget,\n      isAbsoluteUrl,\n      isExternal,\n      //\n      href,\n      isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n      isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n      route: link?.route ?? computed(() => router.resolve(to.value)),\n      async navigate() {\n        await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value });\n      }\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      prefetchOn: {\n        type: [String, Object],\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    useLink: useNuxtLink,\n    setup(props, { slots }) {\n      const router = useRouter();\n      const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\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      function shouldPrefetch(mode) {\n        return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n      }\n      async function prefetch(nuxtApp = useNuxtApp()) {\n        if (prefetched.value) {\n          return;\n        }\n        prefetched.value = true;\n        const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n        const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n        await Promise.all([\n          nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n          }),\n          !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n          })\n        ]);\n      }\n      if (import.meta.client) {\n        checkPropConflicts(props, \"prefetch\", \"noPrefetch\");\n        if (shouldPrefetch(\"visibility\")) {\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                    await prefetch(nuxtApp);\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 && !hasTarget.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 (shouldPrefetch(\"interaction\")) {\n              routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n              routerLinkProps.onFocus = prefetch.bind(null, void 0);\n            }\n            if (prefetched.value) {\n              routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n            }\n            routerLinkProps.rel = props.rel || void 0;\n          }\n          return h(\n            resolveComponent(\"RouterLink\"),\n            routerLinkProps,\n            slots.default\n          );\n        }\n        const target = props.target || null;\n        checkPropConflicts(props, \"noRel\", \"rel\");\n        const rel = firstNonUndefined(\n          // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n          props.noRel ? \"\" : props.rel,\n          options.externalRelAttribute,\n          /*\n          * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n          * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n          */\n          isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n        ) || null;\n        if (props.custom) {\n          if (!slots.default) {\n            return null;\n          }\n          return slots.default({\n            href: href.value,\n            navigate,\n            prefetch,\n            get route() {\n              if (!href.value) {\n                return void 0;\n              }\n              const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n              return {\n                path: url.pathname,\n                fullPath: url.pathname,\n                get query() {\n                  return parseQuery(url.search);\n                },\n                hash: url.hash,\n                params: {},\n                name: void 0,\n                matched: [],\n                redirectedFrom: void 0,\n                meta: {},\n                href: href.value\n              };\n            },\n            rel,\n            target,\n            isExternal: isExternal.value || hasTarget.value,\n            isActive: false,\n            isExactActive: false\n          });\n        }\n        return h(\"a\", { ref: el, href: href.value || null, 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}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n  if (import.meta.server) {\n    return;\n  }\n  const cn = navigator.connection;\n  if (cn && (cn.saveData || IS_2G_RE.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","defineNuxtLink","options","componentName","resolveTrailingSlashBehavior","resolve","applyTrailingSlashBehavior","useNuxtLink","props","config","useRuntimeConfig","hasTarget","computed","isAbsoluteUrl","hasProtocol","builtinRouterLink","resolveComponent","useBuiltinLink","isExternal","link","href","resolveRouteObject","href2","joinURL","navigateTo","defineComponent","slots","navigate","prefetched","ref","el","elRef","ref2","shouldPrefetch","mode","_b","isSlowConnection","prefetch","nuxtApp","useNuxtApp","normalizedPath","idleId","unobserve","onMounted","observer","useObserver","onNuxtReady","requestIdleCallback","onBeforeUnmount","cancelIdleCallback","routerLinkProps","h","target","rel","url","parseQuery","__nuxt_component_1","nuxtLinkDefaults","trailingSlash","normalizeFn","withTrailingSlash","withoutTrailingSlash","callbacks","observe","element","callback","entries","entry","callback2","IS_2G_RE","cn"],"mappings":"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"}