Move JS to assets/main.js

This commit is contained in:
Jed Fox 2023-04-27 12:52:58 -04:00
parent f052c1e0f9
commit f13bc74f4a
No known key found for this signature in database
GPG Key ID: 0B61D18EA54B47E1
2 changed files with 47 additions and 44 deletions

View File

@ -2,7 +2,53 @@
'use strict';
const onLoaded = () => {
// Nothing for now
document.documentElement.classList.add('js');
for (const header of document.querySelectorAll('.sidebar .sub-title')) {
header.role = 'button';
header.tabIndex = 0;
header.ariaExpanded = true;
header.ariaControlsElement = header.nextElementSibling;
const toggle = () => {
header.nextElementSibling.classList.toggle('collapsed');
const collapsed =
header.nextElementSibling.classList.contains('collapsed');
header.ariaExpanded = !collapsed;
header.parentNode.classList.toggle('collapsed', collapsed);
};
header.addEventListener('click', toggle);
header.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === 'Space' || e.key === ' ') {
toggle();
e.preventDefault();
}
});
if (!header.nextElementSibling.querySelector('.active')) {
toggle();
}
}
const toggle = document.querySelector('.sidebar .toggle-button');
toggle.addEventListener('click', () => {
const collapsed = document.querySelectorAll(
'.sidebar li.collapsed:not(.stay-collapsed)'
);
if (collapsed.length) {
for (const collapsible of collapsed) {
collapsible.querySelector('.sub-title').click();
}
toggle.querySelector('strong').textContent = '\u2212'; // minus sign
toggle.querySelector('span').textContent = 'Collapse All';
} else {
for (const collapsible of document.querySelectorAll(
'.sidebar > ul > li:not(.stay-collapsed)'
)) {
collapsible.querySelector('.sub-title').click();
}
toggle.querySelector('strong').textContent = '+';
toggle.querySelector('span').textContent = 'Expand All';
}
});
};
if (['interactive', 'complete'].indexOf(document.readyState) !== -1) {

View File

@ -35,46 +35,3 @@
</li>
{{ end }}
</ul>
<script>
document.documentElement.classList.add('js');
for (const header of document.querySelectorAll('.sidebar .sub-title')) {
header.role = 'button';
header.tabIndex = 0;
header.ariaExpanded = true;
header.ariaControlsElement = header.nextElementSibling;
const toggle = () => {
header.nextElementSibling.classList.toggle('collapsed');
const collapsed = header.nextElementSibling.classList.contains('collapsed')
header.ariaExpanded = !collapsed;
header.parentNode.classList.toggle('collapsed', collapsed);
}
header.addEventListener('click', toggle);
header.addEventListener('keydown', (e) => {
if (e.key === 'Enter' || e.key === 'Space' || e.key === ' ') {
toggle();
e.preventDefault();
}
});
if (!header.nextElementSibling.querySelector('.active')) {
toggle()
}
}
const toggle = document.querySelector('.sidebar .toggle-button')
toggle.addEventListener('click', () => {
const collapsed = document.querySelectorAll('.sidebar li.collapsed:not(.stay-collapsed)')
if (collapsed.length) {
for (const collapsible of collapsed) {
collapsible.querySelector('.sub-title').click();
}
toggle.querySelector('strong').textContent = '\u2212' // minus sign
toggle.querySelector('span').textContent = 'Collapse All'
} else {
for (const collapsible of document.querySelectorAll('.sidebar > ul > li:not(.stay-collapsed)')) {
collapsible.querySelector('.sub-title').click();
}
toggle.querySelector('strong').textContent = '+'
toggle.querySelector('span').textContent = 'Expand All'
}
})
</script>