mirror of
https://github.com/danbulant/lucide
synced 2026-06-19 06:21:24 +00:00
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
/**
|
|
* Change active file of files.
|
|
*
|
|
* @param {Element} container
|
|
* @param {string | null} name
|
|
*/
|
|
const changeTrunkFile = (container, name) => {
|
|
for (const child of container.children) {
|
|
if (!(child instanceof HTMLElement)) {
|
|
continue;
|
|
}
|
|
|
|
if (child.classList.contains('mdbook-trunk-files')) {
|
|
for (const file of child.children) {
|
|
if (!(file instanceof HTMLElement)) {
|
|
continue;
|
|
}
|
|
|
|
if (file.dataset.file === name) {
|
|
file.classList.add('active');
|
|
} else {
|
|
file.classList.remove('active');
|
|
}
|
|
}
|
|
} else if (child.classList.contains('mdbook-trunk-file-content')) {
|
|
if (child.dataset.file === name) {
|
|
child.classList.remove('hidden');
|
|
} else {
|
|
child.classList.add('hidden');
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const files = document.querySelectorAll('.mdbook-trunk-file');
|
|
for (const file of files) {
|
|
file.addEventListener('click', () => {
|
|
if (!(file instanceof HTMLElement)) {
|
|
return;
|
|
}
|
|
|
|
if (!file.parentElement || !file.parentElement.parentElement) {
|
|
return;
|
|
}
|
|
|
|
const container = file.parentElement.parentElement;
|
|
const name = file.dataset.file;
|
|
|
|
changeTrunkFile(container, file.classList.contains('active') ? null : name);
|
|
});
|
|
}
|
|
});
|