UNPKG

@scalar/api-client

Version:

the open source API testing client

270 lines (269 loc) 10.2 kB
import { defineComponent as H, ref as J, watch as O, onMounted as Q, onBeforeUnmount as X, computed as Y, createElementBlock as R, openBlock as s, Fragment as h, createBlock as d, createCommentVNode as c, createVNode as m, unref as n, withCtx as r, withKeys as Z, createElementVNode as g, createTextVNode as S, toDisplayString as _ } from "vue"; import { useModal as W, ScalarFloating as ee, ScalarDropdownMenu as te, ScalarDropdownButton as y, ScalarIcon as M, ScalarModal as b } from "@scalar/components"; import { useRouter as ne } from "vue-router"; import T from "../../components/Sidebar/Actions/DeleteSidebarListElement.vue.js"; import le from "../../components/Sidebar/Actions/EditSidebarListCollection.vue.js"; import ae from "../../components/Sidebar/Actions/EditSidebarListElement.vue.js"; import { useActiveEntities as ie } from "../../store/active-entities.js"; import { createInitialRequest as se } from "../../store/requests.js"; import { PathId as p } from "../../routes.js"; import { useWorkspace as me } from "../../store/store.js"; const ge = /* @__PURE__ */ H({ __name: "RequestSidebarItemMenu", props: { menuItem: {} }, emits: ["closeMenu", "toggleWatchMode", "clearDrafts"], setup(A, { emit: B }) { const u = A, $ = B, { replace: D } = ne(), { activeRouterParams: x, activeWorkspaceCollections: q, activeWorkspaceRequests: U } = ie(), { events: V, requestMutators: L } = me(), I = W(), w = W(), C = W(), P = () => { var e; return V.commandPalette.emit({ commandName: "Add Example", metaData: { itemUid: (e = u.menuItem.item) == null ? void 0 : e.entity.uid } }); }, z = (e, t) => { var i; (i = u.menuItem.item) == null || i.edit(e, t), I.hide(); }, F = () => { var e, t, i; if ((e = u.menuItem.item) == null || e.delete(), !U.value.length) { const { request: f } = se(), a = q.value.find( (o) => { var l; return ((l = o.info) == null ? void 0 : l.title) === "Drafts"; } ); a && (L.add(f, a.uid), D({ name: "request", params: { [p.Request]: f.uid } })); } if (x.value[p.Request] === ((t = u.menuItem.item) == null ? void 0 : t.entity.uid) && D({ name: "request", params: { [p.Request]: "default" } }), x.value[p.Examples] === ((i = u.menuItem.item) == null ? void 0 : i.entity.uid) && D({ name: "request", params: { [p.Request]: "default" } }), q.value[0]) { const f = q.value[0].requests[0]; D({ name: "request", params: { [p.Request]: f } }); } w.hide(); }, k = J(null); O([() => u.menuItem.open, k], async ([e]) => { var t, i; e && ((i = (t = k.value) == null ? void 0 : t.$parent) != null && i.$el) && k.value.$parent.$el.focus(); }); const N = () => u.menuItem.open && $("closeMenu"); Q(() => window.addEventListener("click", N)), X(() => window.removeEventListener("click", N)); const K = () => { $("toggleWatchMode", u.menuItem.item); }, j = () => { $("clearDrafts"), C.hide(); }, E = Y(() => { var e; return ((e = u.menuItem.item) == null ? void 0 : e.title) === "Drafts"; }); return (e, t) => { var i, f; return s(), R(h, null, [ e.menuItem.targetRef && e.menuItem.open ? (s(), d(n(ee), { key: 0, placement: "right-start", target: e.menuItem.targetRef, teleport: "" }, { floating: r(() => [ m(n(te), { onKeydown: t[3] || (t[3] = Z((a) => e.$emit("closeMenu"), ["escape"])) }, { default: r(() => { var a, o; return [ ((a = e.menuItem.item) == null ? void 0 : a.entity.type) === "request" ? (s(), d(n(y), { key: 0, class: "flex gap-2", onClick: P }, { default: r(() => [ m(n(M), { class: "inline-flex", icon: "Example", size: "md", thickness: "1.5" }), t[8] || (t[8] = g("span", null, "Add Example", -1)) ]), _: 1, __: [8] })) : c("", !0), E.value ? c("", !0) : (s(), d(n(y), { key: 1, ref_key: "menuRef", ref: k, class: "flex gap-2", onClick: t[0] || (t[0] = (l) => n(I).show()) }, { default: r(() => { var l; return [ m(n(M), { class: "inline-flex", icon: "Edit", size: "md", thickness: "1.5" }), g("span", null, [ ((l = e.menuItem.item) == null ? void 0 : l.entity.type) === "collection" ? (s(), R(h, { key: 0 }, [ S(" Edit ") ], 64)) : (s(), R(h, { key: 1 }, [ S(" Rename ") ], 64)) ]) ]; }), _: 1 }, 512)), (o = e.menuItem.item) != null && o.documentUrl ? (s(), d(n(y), { key: 2, ref_key: "menuRef", ref: k, class: "flex gap-2", onClick: K }, { default: r(() => { var l, v; return [ m(n(M), { class: "inline-flex", icon: (l = e.menuItem.item) != null && l.watchMode ? "Unwatch" : "Watch", size: "md", thickness: "1.5" }, null, 8, ["icon"]), g("span", null, _((v = e.menuItem.item) != null && v.watchMode ? "Disable Watch Mode" : "Enable Watch Mode"), 1) ]; }), _: 1 }, 512)) : c("", !0), E.value ? c("", !0) : (s(), d(n(y), { key: 3, class: "flex gap-2", onClick: t[1] || (t[1] = (l) => n(w).show()) }, { default: r(() => [ m(n(M), { class: "inline-flex", icon: "Delete", size: "md", thickness: "1.5" }), t[9] || (t[9] = g("span", null, "Delete", -1)) ]), _: 1, __: [9] })), E.value ? (s(), d(n(y), { key: 4, class: "flex gap-2", onClick: t[2] || (t[2] = (l) => n(C).show()) }, { default: r(() => [ m(n(M), { class: "inline-flex", icon: "Delete", size: "md", thickness: "1.5" }), t[10] || (t[10] = g("span", null, "Clear Drafts", -1)) ]), _: 1, __: [10] })) : c("", !0) ]; }), _: 1 }) ]), _: 1 }, 8, ["target"])) : c("", !0), m(n(b), { size: "xxs", state: n(w), title: `Delete ${(i = e.menuItem.item) == null ? void 0 : i.resourceTitle}` }, { default: r(() => { var a, o; return [ m(T, { variableName: ((a = e.menuItem.item) == null ? void 0 : a.title) ?? "", warningMessage: (o = e.menuItem.item) == null ? void 0 : o.warning, onClose: t[4] || (t[4] = (l) => n(w).hide()), onDelete: F }, null, 8, ["variableName", "warningMessage"]) ]; }), _: 1 }, 8, ["state", "title"]), m(n(b), { size: "xxs", state: n(I), title: `Edit ${(f = e.menuItem.item) == null ? void 0 : f.resourceTitle}` }, { default: r(() => { var a, o, l, v; return [ ((a = e.menuItem.item) == null ? void 0 : a.resourceTitle) === "Collection" ? (s(), d(le, { key: 0, icon: ((o = e.menuItem.item) == null ? void 0 : o.icon) || "interface-content-folder", name: (l = e.menuItem.item) == null ? void 0 : l.title, onClose: t[5] || (t[5] = (G) => n(I).hide()), onEdit: z }, null, 8, ["icon", "name"])) : (s(), d(ae, { key: 1, name: ((v = e.menuItem.item) == null ? void 0 : v.title) ?? "", onClose: t[6] || (t[6] = (G) => n(I).hide()), onEdit: z }, null, 8, ["name"])) ]; }), _: 1 }, 8, ["state", "title"]), m(n(b), { size: "xxs", state: n(C), title: "Clear Drafts" }, { default: r(() => [ m(T, { variableName: "All Drafts", warningMessage: "This action will clear all drafts. This cannot be undone.", onClose: t[7] || (t[7] = (a) => n(C).hide()), onDelete: j }) ]), _: 1 }, 8, ["state"]) ], 64); }; } }); export { ge as default };