1document.addEventListener('DOMContentLoaded', () => { 2 let selector = { 3 body: 'body', 4 menuToggle: '.menu-toggle-cont', 5 fixedMenu: '.fixed-menu', 6 select: '.select', 7 selectName: '.select-current__name', 8 selectHideConteiner: '.select-hide', 9 selectActive: '.select.active', 10 selectOpenBtn: '.select .select-current', 11 selectSetActive: '.select-hide__radio label', 12 catalogOpen: '.catalog-content__menu_button', 13 catalogOpenContent: '.catalog-content__menu', 14 openLinkFirst: '.catalog-list__link_first.after', 15 openFirst: '.catalog-list_second', 16 openLinkSecond: '.catalog-list__link_second.after', 17 openSecond: '.catalog-list_third', 18 lkOpen: '.lk-sidebar__button', 19 lkOpenContent: '.lk-sidebar', 20 voidPrint: '.print', 21 fancyLink: 'a[data-fancy]', 22 fancyModalConteiner: '.modal-body', 23 fancyModalTitle: '.fancy-title' 24 }; 25 this.activeAnimation = false; 26 document.addEventListener('click', (e) => { 27 let currentTarget = e.target; 28 if (currentTarget.matches(selector.openLinkFirst)) { 29 e.preventDefault(); 30 let open = currentTarget.parentElement.querySelector(selector.openFirst); 31 32 if (open.classList.contains('active')) { 33 currentTarget.parentElement.classList.remove('active'); 34 open.classList.remove('active'); 35 open.style.maxHeight = open.scrollHeight + 'px'; 36 setTimeout(() => { 37 open.style.maxHeight = 0; 38 }, 10); 39 } else { 40 let endAction = () => { 41 open.removeEventListener('transitionend', endAction); 42 open.style.maxHeight = 'fit-content'; 43 }; 44 currentTarget.parentElement.classList.add('active'); 45 open.classList.add('active'); 46 open.style.maxHeight = open.scrollHeight + 'px'; 47 open.addEventListener('transitionend', endAction); 48 } 49 } 50 51 if (currentTarget.matches(selector.openLinkSecond)) { 52 e.preventDefault(); 53 let open = currentTarget.parentElement.querySelector(selector.openSecond); 54 if (open.classList.contains('active')) { 55 currentTarget.parentElement.classList.remove('active'); 56 open.classList.remove('active'); 57 open.style.maxHeight = 0; 58 } else { 59 currentTarget.parentElement.classList.add('active'); 60 open.classList.add('active'); 61 open.style.maxHeight = open.scrollHeight + 'px'; 62 } 63 } 64 65 66 if (currentTarget.matches('.search-button:not(.active)')) { 67 68 console.log(currentTarget); 69 70 if (!this.activeAnimation) { 71 this.activeAnimation = true; 72 e.preventDefault(); 73 currentTarget.classList.add('active'); 74 const headerBlock = document.querySelector('.header-block'); 75 76 if (headerBlock) { 77 const logo = headerBlock.querySelector('.header-block__logo'); 78 const firstEndAction = () => { 79 // currentTarget.removeEventListener('transitionend', secondEndAction); 80 headerBlock.classList.add('search-show', 'search-hide'); 81 this.activeAnimation = false; 82 }; 83 logo.addEventListener('transitionend', firstEndAction); 84 headerBlock.classList.add('hide'); 85 } 86 } 87 } else { 88 if (!currentTarget.closest('.header-block__content_form')) { 89 if (!this.activeAnimation) { 90 this.activeAnimation = true; 91 const currentTarget = document.querySelector('.search-button.active') 92 if (!currentTarget) 93 return; 94 currentTarget.classList.remove('active'); 95 const headerBlock = document.querySelector('.header-block'); 96 if (headerBlock) { 97 const inputSearch = headerBlock.querySelector('.header-block__content_form .form-control'); 98 const firstEndAction = () => { 99 inputSearch.removeEventListener('transitionend', firstEndAction); 100 headerBlock.classList.remove('hide'); 101 this.activeAnimation = false; 102 }; 103 inputSearch.addEventListener('transitionend', firstEndAction) 104 headerBlock.classList.remove('search-show', 'search-hide'); 105 } 106 } 107 } 108 } 109 110 //fancy-box 111 if (currentTarget.matches(selector.fancyLink)) { 112 e.preventDefault(); 113 let 114 conteiner = document.querySelector(currentTarget.getAttribute('data-fancy')).querySelector(selector.fancyModalConteiner), 115 title = document.querySelector(currentTarget.getAttribute('data-fancy')).querySelector(selector.fancyModalTitle), 116 img = document.createElement('img'); 117 conteiner.replaceChildren(); 118 img.src = currentTarget.getAttribute('href'); 119 if (currentTarget.getAttribute('data-title')) { 120 title.innerHTML = currentTarget.getAttribute('data-title'); 121 } else { 122 title.innerHTML = ''; 123 } 124 conteiner.append(img); 125 bootstrap.Modal.getOrCreateInstance(document.querySelector(currentTarget.getAttribute('data-fancy'))).show(); 126 } 127 // print 128 if (currentTarget.matches(selector.voidPrint)) { 129 window.print(); 130 } 131 // close all select and show select 132 let selectActive = document.querySelectorAll(selector.selectActive); 133 134 if (!currentTarget.closest(selector.selectHideConteiner)) { 135 if (currentTarget.closest(selector.selectOpenBtn)) { 136 if (!currentTarget.parentElement.classList.contains('active')) { 137 selectActive.forEach(elem => { 138 elem.classList.remove('active'); 139 }); 140 currentTarget.parentElement.classList.add('active'); 141 } else { 142 selectActive.forEach(elem => { 143 elem.classList.remove('active'); 144 }); 145 } 146 } else { 147 selectActive.forEach(elem => { 148 elem.classList.remove('active'); 149 }); 150 } 151 } else {
152 if (currentTarget.matches(selector.selectSetActive)) { 153 let 154 text = currentTarget.innerHTML, 155 select = findParentElement(currentTarget, selector.select), 156 selectName = select.querySelectorAll(selector.selectName); 157 selectName.forEach(elem => { 158 elem.innerHTML = text; 159 }); 160 select.classList.remove('active'); 161 } 162 } 163 // mobile menu toggle 164 if (currentTarget.closest(selector.menuToggle)) { 165 e.preventDefault(); 166 let body = document.querySelector(selector.body), 167 fixedMenu = document.querySelector(selector.fixedMenu), 168 menuToggle = document.querySelector(selector.menuToggle); 169 if (!menuToggle.classList.contains('menu-toggle-cont_active')) { 170 menuToggle.classList.add('menu-toggle-cont_active'); 171 fixedMenu.classList.add('active'); 172 body.classList.add('hidd'); 173 } else { 174 menuToggle.classList.remove('menu-toggle-cont_active'); 175 fixedMenu.classList.remove('active'); 176 body.classList.remove('hidd'); 177 } 178 } 179 180 if (currentTarget.matches(selector.catalogOpen)) { 181 e.preventDefault(); 182 let open = currentTarget.parentElement.querySelector(selector.catalogOpenContent); 183 if (open.classList.contains('active')) { 184 currentTarget.parentElement.classList.remove('active'); 185 open.classList.remove('active'); 186 open.style.maxHeight = 0; 187 } else { 188 currentTarget.parentElement.classList.add('active'); 189 open.classList.add('active'); 190 open.style.maxHeight = open.scrollHeight + 'px'; 191 } 192 } 193 194 if (currentTarget.matches(selector.lkOpen)) { 195 e.preventDefault(); 196 let open = currentTarget.parentElement.querySelector(selector.lkOpenContent); 197 if (open.classList.contains('active')) { 198 currentTarget.parentElement.classList.remove('active'); 199 open.classList.remove('active'); 200 open.style.maxHeight = 0; 201 } else { 202 currentTarget.parentElement.classList.add('active'); 203 open.classList.add('active'); 204 open.style.maxHeight = open.scrollHeight + 'px'; 205 } 206 } 207 208 function findParentElement(elem, selector) { 209 if (selector) { 210 while (elem !== undefined && elem !== null) { 211 elem = getParent(elem); 212 if (elem !== undefined && elem !== null) { 213 if (elem.matches(selector)) { 214 return elem; 215 } 216 } 217 } 218 return; 219 } else { 220 return; 221 } 222 223 function getParent(elem) { 224 return elem.parentElement; 225 } 226 } 227 }); 228 229 const mainSlider = new Swiper(".main-slider", { 230 allowTouchMove: true, 231 slidesPerView: 1, 232 loop: true, 233 spaceBetween: 0, 234 speed: 800, 235 navigation: { 236 nextEl: ".main-next", 237 prevEl: ".main-prev" 238 }, 239 autoplay: { 240 delay: 4000 241 }, 242 pagination: { 243 el: ".swiper-pagination", 244 clickable: true 245 } 246 }); 247 248 const newsSlider = new Swiper(".news-slider", { 249 allowTouchMove: true, 250 slidesPerView: 2, 251 loop: false, 252 spaceBetween: 30, 253 speed: 800, 254 navigation: { 255 nextEl: ".news-next", 256 prevEl: ".news-prev" 257 }, 258 breakpoints: { 259 1460: { 260 spaceBetween: 18, 261 slidesPerView: 4, 262 }, 263 1200: { 264 slidesPerView: 3, 265 spaceBetween: 18, 266 }, 267 991: { 268 slidesPerView: 2, 269 spaceBetween: 18, 270 } 271 }, 272 }); 273 274 const newsSlider5 = new Swiper(".news-slider-5", { 275 allowTouchMove: true, 276 slidesPerView: 2, 277 loop: false, 278 spaceBetween: 30, 279 speed: 800, 280 navigation: { 281 nextEl: ".news-next", 282 prevEl: ".news-prev" 283 }, 284 breakpoints: { 285 1460: { 286 spaceBetween: 18, 287 slidesPerView: 5, 288 }, 289 1200: { 290 slidesPerView: 4, 291 spaceBetween: 18, 292 }, 293 991: { 294 slidesPerView: 3, 295 spaceBetween: 18, 296 } 297 }, 298 }); 299 300 const modalSlider = new Swiper(".modal-slider", { 301 allowTouchMove: true, 302 slidesPerView: 1, 303 loop: true, 304 spaceBetween: 30,
305 speed: 800, 306 navigation: { 307 nextEl: ".modal-next", 308 prevEl: ".modal-prev" 309 }, 310 breakpoints: { 311 1200: { 312 slidesPerView: 3 313 }, 314 992: { 315 slidesPerView: 2 316 } 317 } 318 }); 319 320 const partnersSlider = new Swiper(".partners-slider", { 321 allowTouchMove: true, 322 slidesPerView: 1, 323 loop: true, 324 spaceBetween: 30, 325 speed: 800, 326 navigation: { 327 nextEl: ".partners-next", 328 prevEl: ".partners-prev" 329 }, 330 breakpoints: { 331 1200: { 332 slidesPerView: 4 333 }, 334 768: { 335 slidesPerView: 3 336 } 337 } 338 }); 339 340 const swiper = new Swiper(".mySwiper", { 341 spaceBetween: 10, 342 slidesPerView: 4, 343 freeMode: true, 344 loop: false, 345 watchSlidesProgress: true, 346 direction: 'vertical', 347 }); 348 const swiper2 = new Swiper(".mySwiper2", { 349 spaceBetween: 0, 350 loop: false, 351 autoHeight: true, 352 navigation: { 353 nextEl: ".product-next", 354 prevEl: ".product-prev", 355 }, 356 pagination: { 357 el: ".product-pagination", 358 clickable: true, 359 }, 360 thumbs: { 361 swiper: swiper, 362 }, 363 }); 364 365 $(window).scroll(function () { 366 if ($(this).scrollTop() > 250) 367 $('#scrolling').fadeIn(700); 368 else 369 $('#scrolling').fadeOut(700); 370 }); 371 $('#scrolling').click(function () { 372 $('body,html').animate({scrollTop: 0}, 700); 373 return false; 374 }); 375 376 document.addEventListener('click', event => { 377 const allChars = event.target.closest('.open-characteristics'); 378 379 if (allChars) { 380 const charsTabButton = document.querySelector('#tab-2'); 381 const charsTab = document.querySelector('#tab-2-2'); 382 383 384 if (charsTab) { 385 386 event.preventDefault(); 387 388 const allTabsButtons = document.querySelectorAll('.product-tab .nav-link.active'); 389 const allTabs = document.querySelectorAll('.product-tab .tab-pane.active.show'); 390 391 allTabs.forEach(tab => tab.classList.remove('active', 'show')); 392 allTabsButtons.forEach(tab => tab.classList.remove('active')); 393 394 395 charsTabButton.classList.add('active'); 396 charsTab.classList.add('active', 'show'); 397 398 charsTabButton.scrollIntoView({behavior: "smooth"}) 399 } 400 } 401 }) 402});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.