function onCheckBoxChange() {
const checkedInput = inputs.filter((c) => c.node.checked)
if (checkedInput.length == 0) {
blocks.forEach((block) => {
block.node.classList.remove("_hidden-checkbox")
})
} else {
blocks.forEach((block) => {
block.node.classList.remove("_hidden-checkbox") // отобразим все блоки
})
let buffBlocks = [...blocks]
checkedInput.forEach((input) => {
buffBlocks = buffBlocks.filter((block) => {
return !block.themes.includes(`filter__checkbox_${input.theme}`) //выбор блоков, которые НЕ включает в себя выбраные темы
})
})
buffBlocks.forEach((block) =>
block.node.classList.add("_hidden-checkbox"),
) //Наоборот скроем те темы, которые не были выбраны
}
}
function hide(event) {
/*
Здесь можем проверить был ли вызван клик на заголовке
event.target - содержит в себе ссылку на элемент где было вызвано событие
*/
event.stopPropagation(); //остановим всплытие события
if (event.target.classList.contains("step-name")) //было ли вызвано событие на заголовке
{
/* Если подразделы идут сразу после заголовка, то можно просто пробежаться по соседям идущим после заголовка */
let pointer = event.target.nextElementSibling;
while(pointer) {
pointer.classList.toggle('.hide')
pointer = pointer.nextElementSibling;
}
}
}