TOPVERSE_Official/.output/server/chunks/app/_nuxt/ContentNavigation-6f0aad9c.mjs

161 lines
5.3 KiB
JavaScript

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("<!DOCTYPE html>")) {
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