@scalar/api-client
Version:
the open source API testing client
97 lines (96 loc) • 3.8 kB
JavaScript
import { defineComponent as k, ref as d, computed as h, watch as S, createElementBlock as l, openBlock as o, withModifiers as g, createCommentVNode as p, createBlock as w, createVNode as v, normalizeClass as s, Fragment as x, renderList as A, createElementVNode as f, toDisplayString as C, unref as c, withCtx as V } from "vue";
import { useModal as O } from "@scalar/components";
import B from "./DeleteRequestAuthModal.vue.js";
import $ from "./RequestAuthTab.vue.js";
import z from "../../../../components/DataTable/DataTable.vue.js";
const M = ["onClick"], N = { class: "relative z-10 font-medium whitespace-nowrap" }, D = {
key: 0,
class: "absolute inset-x-1 bottom-[var(--scalar-border-width)] left-1/2 z-1 h-px w-full -translate-x-1/2 bg-current"
}, L = /* @__PURE__ */ k({
__name: "RequestAuthDataTable",
props: {
collection: {},
environment: {},
envVariables: {},
layout: { default: "client" },
persistAuth: { type: Boolean, default: !1 },
selectedSchemeOptions: { default: () => [] },
server: {},
workspace: {}
},
setup(n) {
const u = O(), b = d(
null
), t = d(0), m = h(() => {
if (!n.selectedSchemeOptions || n.selectedSchemeOptions.length === 0)
return [];
const e = n.selectedSchemeOptions[t.value];
if (!e)
return [];
const r = e.id.split(",").filter(Boolean);
return r.length > 1 ? r : [e.id];
}), y = h(() => m.value.length > 0);
return S(
() => n.selectedSchemeOptions,
(e) => {
(!e || !e[t.value]) && (t.value = Math.max(0, t.value - 1));
}
), (e, r) => (o(), l("form", {
onSubmit: r[1] || (r[1] = g(() => {
}, ["prevent"]))
}, [
e.selectedSchemeOptions.length > 1 ? (o(), l("div", {
key: 0,
class: s(["box-content flex flex-wrap gap-x-2.5 overflow-hidden border border-b-0 px-3", e.layout === "client" && "border-x-0"])
}, [
(o(!0), l(x, null, A(e.selectedSchemeOptions, (a, i) => (o(), l("div", {
key: a.id,
class: s(["relative z-1 -mb-[var(--scalar-border-width)] flex h-8 cursor-pointer", [t.value === i ? "text-c-1" : "text-c-3"]])
}, [
f("button", {
class: "floating-bg relative cursor-pointer border-b-[1px] border-transparent py-1 text-sm font-medium",
type: "button",
onClick: (E) => t.value = i
}, [
f("span", N, C(a.label), 1)
], 8, M),
t.value === i ? (o(), l("div", D)) : p("", !0)
], 2))), 128))
], 2)) : p("", !0),
y.value ? (o(), w(c(z), {
key: 1,
class: s(["flex-1", e.layout === "reference" && "bg-b-1 rounded-b-lg border border-t-0"]),
columns: [""],
presentational: ""
}, {
default: V(() => [
v($, {
collection: e.collection,
envVariables: e.envVariables,
environment: e.environment,
layout: e.layout,
persistAuth: e.persistAuth,
securitySchemeUids: m.value,
server: e.server,
workspace: e.workspace
}, null, 8, ["collection", "envVariables", "environment", "layout", "persistAuth", "securitySchemeUids", "server", "workspace"])
]),
_: 1
}, 8, ["class"])) : (o(), l("div", {
key: 2,
class: s([
"text-c-3 bg-b-1 flex min-h-16 items-center justify-center border-t px-4 text-sm",
e.layout === "reference" && "min-h-[calc(4rem+0.5px)] rounded-b-lg border"
])
}, " No authentication selected ", 2)),
v(B, {
scheme: b.value,
state: c(u),
onClose: r[0] || (r[0] = (a) => c(u).hide())
}, null, 8, ["scheme", "state"])
], 32));
}
});
export {
L as default
};