'use strict';
(function() {
function scrollActiveSidebarLinkIntoView() {
const sidebar = document.querySelector('.left-sidebar');
const activeLink = sidebar == null ? null : sidebar.querySelector('.sidebar-link.active');
if (sidebar == null || activeLink == null) {
return;
}
const sidebarRect = sidebar.getBoundingClientRect();
const activeLinkRect = activeLink.getBoundingClientRect();
if (activeLinkRect.top < sidebarRect.top) {
sidebar.scrollTop -= sidebarRect.top - activeLinkRect.top;
} else if (activeLinkRect.bottom > sidebarRect.bottom) {
sidebar.scrollTop += activeLinkRect.bottom - sidebarRect.bottom + 100;
}
}
document.querySelectorAll('.sidebar-section-collapsible').forEach(function(section) {
const toggle = section.querySelector('.sidebar-section-toggle');
if (!toggle) return;
function setCollapsed(collapsed) {
section.classList.toggle('collapsed', collapsed);
toggle.setAttribute('aria-expanded', collapsed ? 'false' : 'true');
}
toggle.addEventListener('click', function() {
setCollapsed(!section.classList.contains('collapsed'));
});
toggle.addEventListener('keydown', function(e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
setCollapsed(!section.classList.contains('collapsed'));
}
});
});
scrollActiveSidebarLinkIntoView();
})();