UNPKG

@scalar/api-reference

Version:

Generate beautiful API references from OpenAPI documents

67 lines (66 loc) 2.6 kB
import { defineComponent, useId, createElementBlock, openBlock, Fragment, createElementVNode, createVNode, createBlock, createCommentVNode, normalizeClass, unref } from "vue"; import { ServerVariablesForm } from "@scalar/api-client/components/Server"; import { ScalarMarkdown } from "@scalar/components"; import _sfc_main$1 from "./Selector.vue.js"; const _hoisted_1 = ["id"]; const __default__ = {}; const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, __name: "ServerSelector", props: { eventBus: {}, selectedServer: {}, servers: {} }, setup(__props) { const id = useId(); const updateServer = (newServer) => { __props.eventBus.emit("server:update:selected", { url: __props.selectedServer?.url === newServer ? "" : newServer }); }; const updateServerVariable = (key, value) => { const index = __props.servers.findIndex((s) => s.url === __props.selectedServer?.url); if (index === -1) { return; } __props.eventBus.emit("server:update:variables", { index, key, value }); }; return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ _cache[0] || (_cache[0] = createElementVNode("label", { class: "bg-b-2 flex h-8 items-center rounded-t-lg border border-b-0 px-3 py-2.5 font-medium" }, " Server ", -1)), createElementVNode("div", { id: unref(id), class: normalizeClass(["border", { "rounded-b-lg": !__props.selectedServer?.description && !__props.selectedServer?.variables }]) }, [ __props.servers.length ? (openBlock(), createBlock(_sfc_main$1, { key: 0, selectedServer: __props.selectedServer, servers: __props.servers, target: unref(id), "onUpdate:modelValue": updateServer }, null, 8, ["selectedServer", "servers", "target"])) : createCommentVNode("", true) ], 10, _hoisted_1), createVNode(unref(ServerVariablesForm), { layout: "reference", variables: __props.selectedServer?.variables, "onUpdate:variable": updateServerVariable }, null, 8, ["variables"]), __props.selectedServer?.description ? (openBlock(), createBlock(unref(ScalarMarkdown), { key: 0, class: "text-c-3 rounded-b-lg border border-t-0 px-3 py-1.5", value: __props.selectedServer.description }, null, 8, ["value"])) : createCommentVNode("", true) ], 64); }; } }); export { _sfc_main as default };