add files

This commit is contained in:
2026-01-08 20:24:07 +03:00
commit 96cba8f9f1
25 changed files with 1523 additions and 0 deletions

1
dist/assets/main.js vendored Normal file
View File

@@ -0,0 +1 @@
document.addEventListener("DOMContentLoaded",function(){function t(){const i=new Date,c=["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"],r=["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],v=i.getDate(),y=c[i.getMonth()],b=i.getFullYear(),f=r[i.getDay()],L=String(i.getHours()).padStart(2,"0"),h=String(i.getMinutes()).padStart(2,"0"),p=`${v} ${y} ${b}, ${f} | Московское время: ${L}:${h}`,m=document.getElementById("current-datetime");m&&(m.textContent=p)}t(),setInterval(t,6e4);const e=document.getElementById("mobile-menu-toggle"),s=document.getElementById("mobile-menu-close"),n=document.querySelector(".mobile-menu-overlay"),l=document.body;function d(){window.innerWidth>768&&(e&&(e.style.display=""),n&&(n.classList.remove("active"),n.style.display="",l.classList.remove("menu-open")),document.querySelectorAll(".mobile-main-menu .menu-item-has-children.active").forEach(c=>c.classList.remove("active")))}window.addEventListener("resize",d),e&&e.addEventListener("click",function(){n.style.display="block",setTimeout(()=>{n.classList.add("active")},10),l.classList.add("menu-open"),e.style.display="none"});function o(){n.classList.remove("active"),l.classList.remove("menu-open"),e.style.display="block",setTimeout(()=>{n.style.display="none"},300),document.querySelectorAll(".mobile-main-menu .menu-item-has-children.active").forEach(c=>c.classList.remove("active"))}s&&s.addEventListener("click",o),n&&n.addEventListener("click",function(i){i.target===this&&o()}),document.querySelectorAll(".mobile-main-menu .menu-item-has-children > a").forEach(i=>{i.addEventListener("click",function(c){c.preventDefault(),this.parentElement.classList.add("active")})}),document.querySelectorAll(".mobile-main-menu .sub-menu").forEach(i=>{i.addEventListener("click",function(c){(c.target===this||c.target.textContent&&c.target.textContent.includes("Назад"))&&this.parentElement.classList.remove("active")})})});document.addEventListener("DOMContentLoaded",function(){const t=document.getElementById("mobile-menu-toggle"),e=document.getElementById("mobile-menu-close"),s=document.querySelector(".mobile-menu-overlay"),n=document.body;function l(){window.innerWidth>768&&(t&&(t.style.display=""),s&&(s.classList.remove("active"),n.classList.remove("menu-open")),document.querySelectorAll(".mobile-main-menu .menu-item-has-children.active").forEach(a=>a.classList.remove("active")))}window.addEventListener("resize",l),t&&t.addEventListener("click",function(){s.classList.add("active"),n.classList.add("menu-open"),t.style.display="none"}),e&&e.addEventListener("click",function(){s.classList.remove("active"),n.classList.remove("menu-open"),t.style.display="block",document.querySelectorAll(".mobile-main-menu .menu-item-has-children.active").forEach(a=>a.classList.remove("active"))}),s&&s.addEventListener("click",function(u){u.target===this&&(s.classList.remove("active"),n.classList.remove("menu-open"),t.style.display="block")}),document.querySelectorAll(".mobile-main-menu .menu-item-has-children > a").forEach(u=>{u.addEventListener("click",function(a){a.preventDefault(),this.parentElement.classList.add("active")})}),document.querySelectorAll(".mobile-main-menu .sub-menu").forEach(u=>{u.addEventListener("click",function(a){(a.target===this||a.target.textContent&&a.target.textContent.includes("Назад"))&&this.parentElement.classList.remove("active")})})});document.addEventListener("click",async function(t){const e=t.target.closest(".js-copy-link");if(!e)return;t.preventDefault();const s=e.dataset.copy,n=e.getAttribute("data-title")||e.getAttribute("aria-label")||"",l=()=>{e.classList.add("is-copied"),e.setAttribute("data-title","Скопировано"),clearTimeout(e._copiedTimer),e._copiedTimer=setTimeout(()=>{e.classList.remove("is-copied"),e.setAttribute("data-title",n)},1700)};try{await navigator.clipboard.writeText(s),l()}catch{const o=document.createElement("textarea");o.value=s,o.style.position="fixed",o.style.opacity="0",document.body.appendChild(o),o.focus(),o.select(),document.execCommand("copy"),document.body.removeChild(o),l()}});document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll("[aria-label]").forEach(t=>{if(t.classList.contains("has-tooltip"))return;const e=t.getAttribute("aria-label");e&&(t.classList.add("has-tooltip"),t.setAttribute("data-title",e))})});