UNPKG

@scalar/api-reference

Version:

Generate beautiful API references from OpenAPI documents

120 lines (119 loc) 4.4 kB
import { flattenDeepObjectQueryParameter } from "../helpers/flatten-deep-object-query-parameter.js"; import { shouldIgnoreEntity } from "../helpers/should-ignore-entity.js"; import ParameterList_default from "./ParameterList.vue.js"; import RequestBody_default from "./RequestBody.vue.js"; import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, mergeModels, openBlock, useModel, withCtx } from "vue"; import { getResolvedRef } from "@scalar/workspace-store/helpers/get-resolved-ref"; //#region src/features/Operation/components/OperationParameters.vue?vue&type=script&setup=true&lang.ts /** Use a single loop to reduce parameters by type(in) */ var OperationParameters_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ __name: "OperationParameters", props: /* @__PURE__ */ mergeModels({ breadcrumb: {}, parameters: { default: () => [] }, requestBody: {}, eventBus: {}, options: {} }, { "selectedContentType": {}, "selectedContentTypeModifiers": {} }), emits: ["update:selectedContentType"], setup(__props) { /** Thread the selected request body content type up to the layout */ const selectedContentType = useModel(__props, "selectedContentType"); const splitParameters = computed(() => (__props.parameters ?? []).reduce((acc, p) => { const parameter = getResolvedRef(p); if (!shouldIgnoreEntity(parameter)) flattenDeepObjectQueryParameter(parameter).forEach((flattenedParameter) => { acc[flattenedParameter.in].push(flattenedParameter); }); return acc; }, { cookie: [], header: [], path: [], query: [] })); return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ createVNode(ParameterList_default, { breadcrumb: __props.breadcrumb ? [...__props.breadcrumb, "path"] : void 0, eventBus: __props.eventBus, options: __props.options, parameters: splitParameters.value["path"] }, { title: withCtx(() => [..._cache[1] || (_cache[1] = [createTextVNode("Path Parameters", -1)])]), _: 1 }, 8, [ "breadcrumb", "eventBus", "options", "parameters" ]), createVNode(ParameterList_default, { breadcrumb: __props.breadcrumb ? [...__props.breadcrumb, "query"] : void 0, eventBus: __props.eventBus, options: __props.options, parameters: splitParameters.value["query"] }, { title: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode("Query Parameters", -1)])]), _: 1 }, 8, [ "breadcrumb", "eventBus", "options", "parameters" ]), createVNode(ParameterList_default, { breadcrumb: __props.breadcrumb ? [...__props.breadcrumb, "headers"] : void 0, eventBus: __props.eventBus, options: __props.options, parameters: splitParameters.value["header"] }, { title: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode("Headers", -1)])]), _: 1 }, 8, [ "breadcrumb", "eventBus", "options", "parameters" ]), createVNode(ParameterList_default, { breadcrumb: __props.breadcrumb ? [...__props.breadcrumb, "cookies"] : void 0, eventBus: __props.eventBus, options: __props.options, parameters: splitParameters.value["cookie"] }, { title: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode("Cookies", -1)])]), _: 1 }, 8, [ "breadcrumb", "eventBus", "options", "parameters" ]), __props.requestBody ? (openBlock(), createBlock(RequestBody_default, { key: 0, selectedContentType: selectedContentType.value, "onUpdate:selectedContentType": _cache[0] || (_cache[0] = ($event) => selectedContentType.value = $event), breadcrumb: __props.breadcrumb ? [...__props.breadcrumb, "body"] : void 0, eventBus: __props.eventBus, options: __props.options, requestBody: __props.requestBody }, { title: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode("Body", -1)])]), _: 1 }, 8, [ "selectedContentType", "breadcrumb", "eventBus", "options", "requestBody" ])) : createCommentVNode("", true) ], 64); }; } }); //#endregion export { OperationParameters_vue_vue_type_script_setup_true_lang_default as default }; //# sourceMappingURL=OperationParameters.vue.script.js.map