UNPKG

@scalar/api-reference

Version:

Generate beautiful API references from OpenAPI documents

36 lines (35 loc) 1.11 kB
import { scrollToId as n } from "@scalar/helpers/dom/scroll-to-id"; import { reactive as d, ref as p, computed as u } from "vue"; import { generateReverseIndex as g } from "./generate-reverse-index.js"; import { lazyBus as b } from "../../../../components/Lazy/lazyBus.js"; const C = (i) => { const r = d({}), a = p(!1), l = (e) => r[e] = !r[e], o = (e, t) => r[e] = t, c = u(() => { const e = i.workspace.activeDocument?.["x-scalar-navigation"]; return i.config["x-scalar-reference-config"].features.expandAllTagSections && e?.forEach((t) => o(t.id, !0)), { entries: e ?? [], entities: g(e) }; }); return { collapsedSidebarItems: r, isSidebarOpen: a, items: c, scrollToOperation: (e, t) => { const s = c.value.entities.get(e)?.parent?.id; if (s && s !== e) if (r[s]) n(e, t); else { const f = b.on((m) => { m.loaded === e && (n(e, t), f()); }); o(s, !0); } }, setCollapsedSidebarItem: o, toggleCollapsedSidebarItem: l }; }; export { C as createSidebar };