@scalar/api-reference
Version:
Generate beautiful API references from OpenAPI documents
132 lines (131 loc) • 4.36 kB
JavaScript
import { defineComponent as v, computed as m, ref as B, createElementBlock as s, createCommentVNode as u, openBlock as i, createElementVNode as h, createVNode as d, renderSlot as P, unref as l } from "vue";
import { ScalarMarkdown as R } from "@scalar/components";
import { getResolvedRef as f } from "@scalar/workspace-store/helpers/get-resolved-ref";
import { isTypeObject as S } from "../../../components/Content/Schema/helpers/is-type-object.js";
import { sortPropertyNames as k, reduceNamesToObject as q } from "../../../components/Content/Schema/helpers/sort-property-names.js";
import O from "./ContentTypeSelect.vue.js";
import p from "../../../components/Content/Schema/Schema.vue.js";
const F = {
key: 0,
class: "request-body"
}, V = { class: "request-body-header" }, N = { class: "request-body-title" }, E = {
key: 0,
class: "request-body-required"
}, T = {
key: 0,
class: "request-body-description"
}, j = {
key: 0,
class: "request-body-schema"
}, C = {
key: 1,
class: "request-body-schema"
}, y = 12, U = /* @__PURE__ */ v({
__name: "RequestBody",
props: {
breadcrumb: {},
requestBody: {},
options: {}
},
setup(t) {
const b = m(
() => Object.keys(t.requestBody?.content ?? {})
), a = B("application/json");
t.requestBody?.content && b.value.length > 0 && (a.value = b.value[0]);
const r = m(
() => f(t.requestBody?.content?.[a.value]?.schema)
), c = m(() => {
if (!r.value || !S(r.value))
return null;
const e = k(
r.value,
r.value.discriminator,
{
hideReadOnly: !0,
orderSchemaPropertiesBy: t.options.orderSchemaPropertiesBy,
orderRequiredPropertiesFirst: t.options.orderRequiredPropertiesFirst
}
);
if (e.length <= y)
return null;
const { properties: o, ...n } = r.value;
return o ? {
visibleProperties: {
...n,
properties: q(
e.slice(0, y),
o
)
},
collapsedProperties: {
...n,
properties: q(
e.slice(y),
o
)
}
} : null;
});
return (e, o) => e.requestBody ? (i(), s("div", F, [
h("div", V, [
h("span", N, [
P(e.$slots, "title", {}, void 0, !0),
e.requestBody.required ? (i(), s("div", E, " required ")) : u("", !0)
]),
d(O, {
modelValue: a.value,
"onUpdate:modelValue": o[0] || (o[0] = (n) => a.value = n),
content: e.requestBody.content
}, null, 8, ["modelValue", "content"]),
e.requestBody.description ? (i(), s("div", T, [
d(l(R), {
value: e.requestBody.description
}, null, 8, ["value"])
])) : u("", !0)
]),
c.value ? (i(), s("div", j, [
d(l(p), {
breadcrumb: e.breadcrumb,
compact: "",
name: "Request Body",
noncollapsible: "",
options: {
hideReadOnly: !0,
orderRequiredPropertiesFirst: e.options.orderRequiredPropertiesFirst,
orderSchemaPropertiesBy: e.options.orderSchemaPropertiesBy
},
schema: c.value.visibleProperties
}, null, 8, ["breadcrumb", "options", "schema"]),
d(l(p), {
additionalProperties: "",
breadcrumb: e.breadcrumb,
compact: "",
name: "Request Body",
options: {
hideReadOnly: !0,
orderRequiredPropertiesFirst: e.options.orderRequiredPropertiesFirst,
orderSchemaPropertiesBy: e.options.orderSchemaPropertiesBy
},
schema: c.value.collapsedProperties
}, null, 8, ["breadcrumb", "options", "schema"])
])) : r.value ? (i(), s("div", C, [
d(l(p), {
breadcrumb: e.breadcrumb,
compact: "",
hideReadOnly: !0,
name: "Request Body",
noncollapsible: "",
options: {
hideReadOnly: !0,
orderRequiredPropertiesFirst: e.options.orderRequiredPropertiesFirst,
orderSchemaPropertiesBy: e.options.orderSchemaPropertiesBy
},
schema: r.value
}, null, 8, ["breadcrumb", "options", "schema"])
])) : u("", !0)
])) : u("", !0);
}
});
export {
U as default
};