@scalar/api-reference
Version:
Generate beautiful API references from OpenAPI documents
141 lines (140 loc) • 7.15 kB
JavaScript
import { defineComponent, resolveComponent, createElementBlock, openBlock, Fragment, renderList, createBlock, withCtx, createCommentVNode, unref, createVNode } from "vue";
import { getResolvedRef } from "@scalar/workspace-store/helpers/get-resolved-ref";
import _sfc_main$5 from "../Models/Model.vue.js";
import _sfc_main$4 from "../Models/ModelTag.vue.js";
import _sfc_main$1 from "../../Lazy/Lazy.vue.js";
import SectionContainer from "../../Section/SectionContainer.vue.js";
import _sfc_main$2 from "../../../features/Operation/Operation.vue.js";
import _sfc_main$3 from "../Tags/Tag.vue.js";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "TraversedEntry",
props: {
level: { default: 0 },
entries: {},
document: {},
clientOptions: {},
options: {},
selectedServer: {},
securitySchemes: {},
selectedClient: {},
expandedItems: {},
eventBus: {}
},
setup(__props) {
const isTagGroup = (entry) => entry["type"] === "tag" && entry.isGroup === true;
const isTag = (entry) => entry["type"] === "tag" && !isTagGroup(entry) && entry.id !== "models";
const isOperation = (entry) => entry["type"] === "operation";
const isWebhook = (entry) => entry["type"] === "webhook";
const isModelsTag = (entry) => entry["type"] === "models";
const isModel = (entry) => entry["type"] === "model";
function getPathValue(entry) {
return isWebhook(entry) ? __props.document.webhooks?.[entry.name] : __props.document.paths?.[entry.path];
}
return (_ctx, _cache) => {
const _component_TraversedEntry = resolveComponent("TraversedEntry", true);
return openBlock(true), createElementBlock(Fragment, null, renderList(__props.entries, (entry) => {
return openBlock(), createBlock(_sfc_main$1, {
id: entry.id,
key: `${entry.id}-${__props.options.layout}`
}, {
default: withCtx(() => [
isOperation(entry) || isWebhook(entry) ? (openBlock(), createBlock(unref(SectionContainer), {
key: 0,
omit: __props.level !== 0
}, {
default: withCtx(() => [
createVNode(unref(_sfc_main$2), {
id: entry.id,
clientOptions: __props.clientOptions,
document: __props.document,
eventBus: __props.eventBus,
isCollapsed: !__props.expandedItems[entry.id],
isWebhook: isWebhook(entry),
method: entry.method,
options: __props.options,
path: isWebhook(entry) ? entry.name : entry.path,
pathValue: getPathValue(entry),
securitySchemes: __props.securitySchemes,
selectedClient: __props.selectedClient,
server: __props.selectedServer
}, null, 8, ["id", "clientOptions", "document", "eventBus", "isCollapsed", "isWebhook", "method", "options", "path", "pathValue", "securitySchemes", "selectedClient", "server"])
]),
_: 2
}, 1032, ["omit"])) : isTag(entry) ? (openBlock(), createBlock(unref(_sfc_main$3), {
key: 1,
eventBus: __props.eventBus,
isCollapsed: !__props.expandedItems[entry.id],
isLoading: false,
layout: __props.options.layout,
moreThanOneTag: __props.entries.filter(isTag).length > 1,
tag: entry
}, {
default: withCtx(() => [
"children" in entry && entry.children?.length ? (openBlock(), createBlock(_component_TraversedEntry, {
key: 0,
clientOptions: __props.clientOptions,
document: __props.document,
entries: entry.children,
eventBus: __props.eventBus,
expandedItems: __props.expandedItems,
level: __props.level + 1,
options: __props.options,
securitySchemes: __props.securitySchemes,
selectedClient: __props.selectedClient,
selectedServer: __props.selectedServer
}, null, 8, ["clientOptions", "document", "entries", "eventBus", "expandedItems", "level", "options", "securitySchemes", "selectedClient", "selectedServer"])) : createCommentVNode("", true)
]),
_: 2
}, 1032, ["eventBus", "isCollapsed", "layout", "moreThanOneTag", "tag"])) : isTagGroup(entry) ? (openBlock(), createBlock(_component_TraversedEntry, {
key: 2,
clientOptions: __props.clientOptions,
document: __props.document,
entries: entry.children || [],
eventBus: __props.eventBus,
expandedItems: __props.expandedItems,
level: __props.level + 1,
options: __props.options,
securitySchemes: __props.securitySchemes,
selectedClient: __props.selectedClient,
selectedServer: __props.selectedServer
}, null, 8, ["clientOptions", "document", "entries", "eventBus", "expandedItems", "level", "options", "securitySchemes", "selectedClient", "selectedServer"])) : isModelsTag(entry) && __props.document.components?.schemas ? (openBlock(), createBlock(_sfc_main$4, {
key: 3,
id: entry.id,
eventBus: __props.eventBus,
isCollapsed: !__props.expandedItems[entry.id],
layout: __props.options.layout
}, {
default: withCtx(() => [
createVNode(_component_TraversedEntry, {
clientOptions: __props.clientOptions,
document: __props.document,
entries: entry.children || [],
eventBus: __props.eventBus,
expandedItems: __props.expandedItems,
level: __props.level + 1,
options: __props.options,
securitySchemes: __props.securitySchemes,
selectedClient: __props.selectedClient,
selectedServer: __props.selectedServer
}, null, 8, ["clientOptions", "document", "entries", "eventBus", "expandedItems", "level", "options", "securitySchemes", "selectedClient", "selectedServer"])
]),
_: 2
}, 1032, ["id", "eventBus", "isCollapsed", "layout"])) : isModel(entry) && __props.document.components?.schemas?.[entry.name] ? (openBlock(), createBlock(_sfc_main$5, {
key: 4,
id: entry.id,
eventBus: __props.eventBus,
isCollapsed: !__props.expandedItems[entry.id],
name: entry.name,
options: __props.options,
schema: unref(getResolvedRef)(__props.document.components.schemas[entry.name])
}, null, 8, ["id", "eventBus", "isCollapsed", "name", "options", "schema"])) : createCommentVNode("", true)
]),
_: 2
}, 1032, ["id"]);
}), 128);
};
}
});
export {
_sfc_main as default
};