// Header Mobile Menu Toggle document.addEventListener("DOMContentLoaded", function() { const burger = document.querySelector(".header__burger"); const nav = document.querySelector(".header__nav"); const body = document.body; if (burger && nav) { burger.addEventListener("click", function() { // Toggle active classes burger.classList.toggle("active"); nav.classList.toggle("active"); body.classList.toggle("menu-open"); }); // Close menu when clicking on menu links const menuLinks = nav.querySelectorAll(".header__menu-link"); menuLinks.forEach(link => { link.addEventListener("click", function() { burger.classList.remove("active"); nav.classList.remove("active"); body.classList.remove("menu-open"); }); }); // Close menu on window resize if opened window.addEventListener("resize", function() { if (window.innerWidth > 768) { burger.classList.remove("active"); nav.classList.remove("active"); body.classList.remove("menu-open"); } }); } // Находим все таблицы внутри блока с классом text const tables = document.querySelectorAll('.text table'); if(tables){ tables.forEach(table => { // Проверяем, есть ли у таблицы класс no-table-wrapper if (!table.classList.contains('no-table-wrapper')) { // Создаем внешний wrapper для скролла const scrollWrapper = document.createElement('div'); scrollWrapper.classList.add('table-wrapper-scroll'); // Создаем внутренний wrapper для стилизации const wrapper = document.createElement('div'); wrapper.classList.add('table-wrapper'); // Оборачиваем таблицу table.parentNode.insertBefore(scrollWrapper, table); scrollWrapper.appendChild(wrapper); wrapper.appendChild(table); // Проверяем, есть ли у таблицы элемент caption if (table.querySelector('caption')) { // Если caption есть, добавляем к scrollWrapper класс 'has-caption' scrollWrapper.classList.add('has-caption'); } // Получаем первую строку таблицы const firstRow = table.querySelector('tr'); // Подсчитываем количество столбцов в первой строке const columnCount = firstRow ? firstRow.children.length : 0; // Если столбцов больше трех, добавляем класс 'large-table' if (columnCount > 3) { wrapper.classList.add('large-table'); } } }); } // FAQ Accordion const faqItems = document.querySelectorAll('.faq__item'); if (faqItems) { faqItems.forEach(item => { const question = item.querySelector('.faq__question'); const answer = item.querySelector('.faq__answer'); if (question && answer) { question.addEventListener('click', function() { // Закрываем все остальные FAQ faqItems.forEach(otherItem => { if (otherItem !== item) { otherItem.classList.remove('active'); const otherAnswer = otherItem.querySelector('.faq__answer'); if (otherAnswer) { otherAnswer.style.maxHeight = null; } } }); // Переключаем текущий FAQ item.classList.toggle('active'); if (item.classList.contains('active')) { answer.style.maxHeight = answer.scrollHeight + 'px'; } else { answer.style.maxHeight = null; } }); } }); } // Table of Contents toggle const toc = document.querySelector('.toc'); const tocHeader = document.querySelector('.toc__header'); const tocContent = document.querySelector('.toc__content'); if (toc && tocHeader && tocContent) { tocHeader.addEventListener('click', function() { toc.classList.toggle('active'); if (toc.classList.contains('active')) { tocContent.style.maxHeight = tocContent.scrollHeight + 'px'; } else { tocContent.style.maxHeight = null; } }); } // Table of Contents smooth scroll const tocLinks = document.querySelectorAll('.toc__link'); if (tocLinks) { tocLinks.forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if (targetElement) { targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); } }); //# sourceMappingURL=script.js.map