UNPKG

@scalar/api-reference

Version:

Generate beautiful API references from OpenAPI documents

132 lines (131 loc) 4.36 kB
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 };