UNPKG

@codedoc/core

Version:

Create beautiful modern documentation websites.

43 lines 1.73 kB
import { state, sink } from '@connectv/core'; import { rl, toggleList, ref } from '@connectv/html'; import { transport } from '@connectv/sdh/transport'; import { ToCToggleStyle } from './style'; export function ToCToggle(_, renderer) { const classes = this.theme.classes(ToCToggleStyle); const holder = ref(); const active = state(false); this.track({ bind() { const el = document.getElementById('-codedoc-toc'); if (el) { holder.resolve(el); if (localStorage.getItem('-codedoc-toc-active') === 'true') { active.value = true; } setTimeout(() => el.classList.add('animated'), 1); } window.codedocToggleToC = (v) => { if (v !== undefined) active.value = v; else active.value = !active.value; }; } }); this.track(active.to(sink(active => { if (holder.resolved) { if (active) holder.$.classList.add('active'); else holder.$.classList.remove('active'); } localStorage.setItem('-codedoc-toc-active', active === true ? 'true' : 'false'); }))); return renderer.create("div", { class: rl `${classes.tocToggle} ${toggleList({ active })}`, onclick: () => active.value = !active.value }, renderer.create("div", { class: classes.bar }), renderer.create("div", { class: classes.bar }), renderer.create("div", { class: classes.bar })); } export const ToCToggle$ = /*#__PURE__*/ transport(ToCToggle); export { ToCToggleStyle } from './style'; //# sourceMappingURL=index.js.map