mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-06-13 13:04:03 +00:00
54 lines
2.0 KiB
JavaScript
54 lines
2.0 KiB
JavaScript
(function() {
|
|
function toggle(ev) {
|
|
var button = ev.target;
|
|
var parent = ev.target.parentElement;
|
|
while (parent) {
|
|
if (parent.tagName === "TR" && parent.classList.contains("test-interface")) break;
|
|
parent = parent.parentElement;
|
|
}
|
|
|
|
if (!parent) return;
|
|
|
|
var direction;
|
|
if (button.classList.contains("opened")) {
|
|
button.classList.remove("opened");
|
|
button.classList.add("closed");
|
|
direction = "closed";
|
|
} else {
|
|
button.classList.remove("closed");
|
|
button.classList.add("opened");
|
|
direction = "opened";
|
|
}
|
|
|
|
var targetDepth = parseInt(parent.dataset.testDepth, 10) + 1;
|
|
var nextElement = parent.nextElementSibling;
|
|
while (nextElement) {
|
|
var depth = parseInt(nextElement.dataset.testDepth, 10);
|
|
if (depth >= targetDepth) {
|
|
if (direction === "opened") {
|
|
if (depth === targetDepth) nextElement.style.display = "";
|
|
} else if (direction === "closed") {
|
|
nextElement.style.display = "none";
|
|
var innerButton = nextElement.querySelector(".toggle");
|
|
if (innerButton && innerButton.classList.contains("opened")) {
|
|
innerButton.classList.remove("opened");
|
|
innerButton.classList.add("closed");
|
|
}
|
|
}
|
|
} else {
|
|
break;
|
|
}
|
|
nextElement = nextElement.nextElementSibling;
|
|
}
|
|
}
|
|
|
|
var buttons = document.querySelectorAll(".test-summary tr.test-interface .toggle");
|
|
for (let i = 0; i < buttons.length; i++) {
|
|
buttons[i].addEventListener("click", toggle);
|
|
}
|
|
|
|
var topDescribes = document.querySelectorAll('.test-summary tr[data-test-depth="0"]');
|
|
for (let i = 0; i < topDescribes.length; i++) {
|
|
topDescribes[i].style.display = "";
|
|
}
|
|
})(); |