@scalar/api-reference
Version:
Generate beautiful API references from OpenAPI documents
36 lines (35 loc) • 1.11 kB
JavaScript
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
};