@codedoc/core
Version:
Create beautiful modern documentation websites.
43 lines • 1.73 kB
JavaScript
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