@scalar/api-reference
Version:
Generate beautiful API references from OpenAPI documents
48 lines (47 loc) • 1.71 kB
JavaScript
import { defineComponent, useTemplateRef, createElementBlock, createCommentVNode, openBlock, createBlock } from "vue";
import { useIntersection } from "../../../hooks/use-intersection.js";
import ClassicLayout from "./components/ClassicLayout.vue.js";
import _sfc_main$1 from "./components/ModernLayout.vue.js";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "Model",
props: {
id: {},
name: {},
options: {},
schema: {},
isCollapsed: { type: Boolean },
eventBus: {}
},
setup(__props) {
const section = useTemplateRef("section");
useIntersection(section, () => __props.eventBus?.emit("intersecting:nav-item", { id: __props.id }));
return (_ctx, _cache) => {
return __props.schema ? (openBlock(), createElementBlock("div", {
key: 0,
ref_key: "section",
ref: section
}, [
__props.options.layout === "classic" ? (openBlock(), createBlock(ClassicLayout, {
key: 0,
id: __props.id,
eventBus: __props.eventBus,
isCollapsed: __props.isCollapsed,
name: __props.name,
options: __props.options,
schema: __props.schema
}, null, 8, ["id", "eventBus", "isCollapsed", "name", "options", "schema"])) : (openBlock(), createBlock(_sfc_main$1, {
key: 1,
id: __props.id,
eventBus: __props.eventBus,
isCollapsed: __props.isCollapsed,
name: __props.name,
options: __props.options,
schema: __props.schema
}, null, 8, ["id", "eventBus", "isCollapsed", "name", "options", "schema"]))
], 512)) : createCommentVNode("", true);
};
}
});
export {
_sfc_main as default
};