import { defineComponent, toRefs, computed, useSlots, useSSRContext, h } from 'vue'; import { u as useAsyncData } from './asyncData-e8a8bfb6.mjs'; import { d as useState, u as useRuntimeConfig } from '../server.mjs'; import { hash } from 'ohash'; import { _ as __nuxt_component_0 } from './nuxt-link-691ee40a.mjs'; import { q as queryContent, e as encodeQueryParams, j as jsonStringify } from './query-e0164f92.mjs'; import { u as useContentDisabled, w as withContentBase, a as addPrerenderPath, s as shouldUseClientDB } from './utils-6d756e03.mjs'; import { u as useContentPreview } from './preview-38d6e135.mjs'; import 'ofetch'; import 'hookable'; import 'unctx'; import 'h3'; import '@unhead/ssr'; import 'unhead'; import '@unhead/shared'; import 'vue-router'; import 'ufo'; import '@intlify/core-base'; import 'cookie-es'; import 'is-https'; import 'anu-vue'; import 'vue/server-renderer'; import 'defu'; import '../../nitro/node-server.mjs'; import 'node-fetch-native/polyfill'; import 'node:http'; import 'node:https'; import 'destr'; import 'unenv/runtime/fetch/index'; import 'scule'; import 'klona'; import 'unstorage'; import 'unstorage/drivers/fs'; import 'unstorage/drivers/overlay'; import 'unstorage/drivers/memory'; import 'radix3'; import 'node:fs'; import 'node:url'; import 'pathe'; import '@intlify/bundle-utils'; import 'unified'; import 'mdast-util-to-string'; import 'micromark/lib/preprocess.js'; import 'micromark/lib/postprocess.js'; import 'unist-util-stringify-position'; import 'micromark-util-character'; import 'micromark-util-chunked'; import 'micromark-util-resolve-all'; import 'remark-emoji'; import 'rehype-slug'; import 'remark-squeeze-paragraphs'; import 'rehype-external-links'; import 'remark-gfm'; import 'rehype-sort-attribute-values'; import 'rehype-sort-attributes'; import 'rehype-raw'; import 'remark-mdc'; import 'remark-parse'; import 'remark-rehype'; import 'mdast-util-to-hast'; import 'detab'; import 'unist-builder'; import 'mdurl'; import 'slugify'; import 'unist-util-position'; import 'unist-util-visit'; import 'shiki-es'; import 'unenv/runtime/npm/consola'; const fetchContentNavigation = async (queryBuilder) => { const { content } = useRuntimeConfig().public; if (typeof (queryBuilder == null ? void 0 : queryBuilder.params) !== "function") { queryBuilder = queryContent(queryBuilder); } const params = queryBuilder.params(); const apiPath = content.experimental.stripQueryParameters ? withContentBase(`/navigation/${`${hash(params)}.${content.integrity}`}/${encodeQueryParams(params)}.json`) : withContentBase(`/navigation/${hash(params)}.${content.integrity}.json`); { addPrerenderPath(apiPath); } if (shouldUseClientDB()) { const generateNavigation = await import('./client-db-d3e6e918.mjs').then((m) => m.generateNavigation); return generateNavigation(params); } const data = await $fetch(apiPath, { method: "GET", responseType: "json", params: content.experimental.stripQueryParameters ? void 0 : { _params: jsonStringify(params), previewToken: useContentPreview().getPreviewToken() } }); if (typeof data === "string" && data.startsWith("")) { throw new Error("Not found"); } return data; }; const _sfc_main = /* @__PURE__ */ defineComponent({ name: "ContentNavigation", props: { /** * A query to be passed to `fetchContentNavigation()`. */ query: { type: Object, required: false, default: void 0 } }, async setup(props) { const { query } = toRefs(props); const queryBuilder = computed(() => { var _a; if (typeof ((_a = query.value) == null ? void 0 : _a.params) === "function") { return query.value.params(); } return query.value; }); if (!queryBuilder.value && useState("dd-navigation").value) { const { navigation: navigation2 } = useContentDisabled(); return { navigation: navigation2 }; } const { data: navigation } = await useAsyncData( `content-navigation-${hash(queryBuilder.value)}`, () => fetchContentNavigation(queryBuilder.value) ); return { navigation }; }, /** * Navigation empty fallback * @slot empty */ render(ctx) { const slots = useSlots(); const { navigation } = ctx; const renderLink = (link) => h(__nuxt_component_0, { to: link._path }, () => link.title); const renderLinks = (data, level) => h( "ul", level ? { "data-level": level } : null, data.map((link) => { if (link.children) { return h("li", null, [renderLink(link), renderLinks(link.children, level + 1)]); } return h("li", null, renderLink(link)); }) ); const defaultNode = (data) => renderLinks(data, 0); return (slots == null ? void 0 : slots.default) ? slots.default({ navigation, ...this.$attrs }) : defaultNode(navigation); } }); const _sfc_setup = _sfc_main.setup; _sfc_main.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/.pnpm/@nuxt+content@2.6.0_rollup@2.79.1/node_modules/@nuxt/content/dist/runtime/components/ContentNavigation.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; export { _sfc_main as default }; //# sourceMappingURL=ContentNavigation-6f0aad9c.mjs.map