65f960c31a
- Ensure inline scripts execute after the DOM has fully loaded. - Use Rollup to bundle the theme-mode and Mermaid scripts, reducing the number of Jekyll include snippets.
19 lines
601 B
JavaScript
19 lines
601 B
JavaScript
const ATTR_DISPLAY = 'sidebar-display';
|
|
const $sidebar = document.getElementById('sidebar');
|
|
const $trigger = document.getElementById('sidebar-trigger');
|
|
const $mask = document.getElementById('mask');
|
|
|
|
class SidebarUtil {
|
|
static #isExpanded = false;
|
|
|
|
static toggle() {
|
|
this.#isExpanded = !this.#isExpanded;
|
|
document.body.toggleAttribute(ATTR_DISPLAY, this.#isExpanded);
|
|
$sidebar.classList.toggle('z-2', this.#isExpanded);
|
|
$mask.classList.toggle('d-none', !this.#isExpanded);
|
|
}
|
|
}
|
|
|
|
export function initSidebar() {
|
|
$trigger.onclick = $mask.onclick = () => SidebarUtil.toggle();
|
|
}
|