1const sliders = () => { 2 new Swiper(".offer__slider", { 3 speed: 800, 4 loop: !0, 5 slidesPerView: 1, 6 watchOverflow: !0, 7 watchSlidesProgress: !0, 8 preloadImages: !1, 9 lazy: !0, 10 navigation: {nextEl: ".swiper-button-next.offer-nav", prevEl: ".swiper-button-prev.offer-nav"}, 11 pagination: { 12 el: ".nav-bar.offer-nav", 13 clickable: !0, 14 bulletClass: "nav-dot", 15 bulletActiveClass: "nav-dot-active" 16 } 17 }), new Swiper(".novelties__slider", { 18 speed: 800, 19 loop: !0, 20 slidesPerView: 2, 21 spaceBetween: 20, 22 watchOverflow: !0, 23 watchSlidesProgress: !0, 24 preloadImages: !1, 25 lazy: !0, 26 navigation: {nextEl: ".swiper-button-next.novelties-nav", prevEl: ".swiper-button-prev.novelties-nav"}, 27 breakpoints: { 28 320: {slidesPerView: 1, spaceBetween: 10}, 29 578: {slidesPerView: 1, spaceBetween: 10}, 30 992: {slidesPerView: 1, spaceBetween: 10}, 31 1280: {slidesPerView: 2, spaceBetween: 20} 32 } 33 }), new Swiper(".posts__slider", { 34 speed: 500, 35 loop: !0, 36 watchOverflow: !0, 37 watchSlidesProgress: !0, 38 slidesPerView: 3, 39 spaceBetween: 10, 40 navigation: {nextEl: ".swiper-button-next.posts-nav", prevEl: ".swiper-button-prev.posts-nav"}, 41 breakpoints: { 42 320: {slidesPerView: 1, spaceBetween: 10}, 43 578: {slidesPerView: 2, spaceBetween: 20}, 44 992: {slidesPerView: 3, spaceBetween: 20} 45 } 46 }); 47 const e = document.querySelectorAll(".card__promotion"); 48 e?.forEach(e => { 49 new Swiper(e, { 50 el: e.querySelector(".card__promotion-swiper"), 51 cssMode: !0, 52 mousewheel: !0, 53 pagination: {el: e.querySelector(".swiper-pagination"), type: "fraction"}, 54 watchOverflow: !0, 55 navigation: { 56 nextEl: e.querySelector(".swiper-button-next"), 57 prevEl: e.querySelector(".swiper-button-prev") 58 }, 59 observer: !0, 60 observeParents: !0 61 }) 62 }); 63 const t = new Swiper(".card__slider--thumbs", { 64 direction: "vertical", 65 slidesPerView: 7, 66 spaceBetween: 10, 67 loop: !1, 68 navigation: {nextEl: ".swiper-button-next-th", prevEl: ".swiper-button-prev-th"}, 69 observer: !0, 70 observerSlideChildren: !0, 71 watchOverflow: !0 72 }), n = (new Swiper(".card__slider--main", { 73 slidesPerView: 1, 74 thumbs: {swiper: t}, 75 pagination: {el: ".swiper-pagination", type: "bullets"}, 76 observer: !0, 77 observerSlideChildren: !0, 78 watchOverflow: !0, 79 on: { 80 init: function () { 81 t.update() 82 } 83 } 84 }), new Swiper(".video__slider--thumbs-video", { 85 direction: "vertical", 86 slidesPerView: "auto", 87 spaceBetween: 17, 88 allowTouchMove: !1 89 })); 90 new Swiper(".video__slider--main-video", { 91 slidesPerView: 1, 92 thumbs: {swiper: n}, 93 navigation: {prevEl: ".swiper-button-prev-video", nextEl: ".swiper-button-next-video"}, 94 pagination: {el: ".swiper-pagination--video", type: "fraction"}, 95 allowTouchMove: !1 96 }), window.innerWidth; 97 const o = document.querySelectorAll(".recently-swiper"); 98 o.length > 0 && o.forEach(e => { 99 let t = !0; 100 e.querySelectorAll(".swiper-slide").length < 4 && (t = !1), new Swiper(e, { 101 slidesPerView: 1, 102 spaceBetween: 4, 103 watchOverflow: !0, 104 cssMode: !1, 105 watchSlidesProgress: !0, 106 loop: t, 107 breakpoints: {768: {slidesPerView: 2}, 1080: {slidesPerView: 3}, 1400: {slidesPerView: 4}}, 108 navigation: {prevEl: e.previousElementSibling, nextEl: e.nextElementSibling} 109 }) 110 }
110), new Swiper(".header__bottom-menu--swiper", { 111 slidesPerView: 9, 112 spaceBetween: 20, 113 slidesPerView: "auto", 114 loop: !0, 115 cssMode: !0, 116 mousewheel: !0, 117 breakpoints: {768: {spaceBetween: 43}}, 118 navigation: {prevEl: ".swiper-button-prev-header", nextEl: ".swiper-button-next-header"} 119 }), new Swiper(".j-compare-slider", {slidesPerView: 1}), new Swiper(".j-catalog-banners", { 120 slidesPerView: 1, 121 navigation: {prevEl: ".swiper-button-prev-banner", nextEl: ".swiper-button-next-banner"}, 122 breakpoints: {640: {slidesPerView: 2, spaceBetween: 19, allowTouchMove: !1}} 123 }), new Swiper('#alias-banner-container', { 124 slidesPerView: 1, 125 spaceBetween: 20, 126 loop: false, 127 pagination: { 128 el: '.swiper-pagination', 129 clickable: true, 130 }, 131 navigation: { 132 nextEl: '.swiper-button-next', 133 prevEl: '.swiper-button-prev', 134 }, 135 autoplay: { 136 delay: 5000, 137 }, 138 breakpoints: { 139 } 140 }); 141 const s = document.querySelector(".j-catalog-categories"); 142 if (s) { 143 const e = { 144 slidesPerView: "auto", 145 loop: !0, 146 slidesPerGroup: 1, 147 breakpoints: { 148 576: {slidesPerView: 2}, 149 768: {slidesPerView: 3}, 150 1080: {slidesPerView: 4}, 151 1280: {slidesPerView: 5} 152 }, 153 navigation: {prevEl: ".swiper-button-prev-cat", nextEl: ".swiper-button-next-cat"} 154 }, t = s.querySelectorAll(".swiper-slide"), n = s.querySelector(".swiper-wrapper"); 155 calcFullWidth(t) > n.offsetWidth && initSlider(s, e), window.addEventListener("resize", () => { 156 calcFullWidth(t) > n.offsetWidth ? initSlider(s, e) : destroySlider(s) 157 }) 158 } 159}; 160 161function calcFullWidth(e) { 162 let t = 0; 163 return e.forEach(e => { 164 t += e.offsetWidth 165 }), t 166} 167 168function initSlider(e, t) { 169 e.classList.contains("swiper-container-initialized") || e.classList.contains("swiper-initialized") || new Swiper(e, t) 170} 171 172function destroySlider(e) { 173 (e.classList.contains("swiper-container-initialized") || e.classList.contains("swiper-initialized")) && e.swiper.destroy() 174} 175 176const initTabs = () => { 177 const e = document.querySelectorAll('[role="tab"]'), t = document.querySelector('[role="tablist"]'); 178 if (e && t) { 179 /* 180 e.forEach(e => { 181 e.addEventListener("click", () => { 182 changeTabs(e) 183 }) 184 });*/ 185 e.forEach(el => { 186 el.addEventListener("click", (event) => { 187 // ÐÑзÑваем опÑимизиÑованнÑÑ ÑÑнкÑÐ¸Ñ 188 changeTabsOptimized(el); 189 }); 190 }); 191 let n = 0; 192 t.addEventListener("keydown", t => { 193 39 !== t.keyCode && 37 !== t.keyCode || (e[n].setAttribute("tabindex", -1), 39 === t.keyCode ? (n++, n >= e.length && (n = 0)) : 37 === t.keyCode && (n--, n < 0 && (n = e.length - 1)), e[n].setAttribute("tabindex", 0), e[n].focus()) 194 }) 195 } 196}; 197let blockformInfoMore = document.querySelectorAll(".info__show-more"); 198 199function openedText(e) { 200 e.forEach(e => { 201 e.previousElementSibling.offsetHeight > 55 ? (e.style.display = "block", e.previousElementSibling.style.height = "55px", e.addEventListener("click", t => { 202 t.preventDefault(), e.previousElementSibling.classList.add("visible"), e.previousElementSibling.style.height = "auto", e.style.display = "none" 203 })) : e.style.display = "none" 204 }) 205} 206 207function changeTabs(e) { 208 const t = e.closest('[role="tablist"]'), n = t.parentNode; 209 t.querySelectorAll('[aria-selected="true"]').forEach(e => e.setAttribute("aria-selected", !1)), e.setAttribute("aria-selected", !0), n.querySelectorAll('[role="tabpanel"]').forEach(e => e.setAttribute("hidden", "")); 210 const o = n.parentNode.querySelector(`#${e.getAttribute("aria-controls")}`); 211 o?.removeAttribute("hidden"), o?.querySelector(".swiper-container") && o.querySelectorAll(".swiper-container").forEach(e => {
212 e.swiper.update() 213 }), blockformInfoMore && openedText(blockformInfoMore) 214} 215 216// 2. ÐпÑимизиÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ 217function changeTabsOptimized(clickedTab) { 218 // ÐаÑанее ÑÐ¾Ñ ÑанÑем нÑжнÑе ÑлеменÑÑ (1 пÑÐ¾Ñ Ð¾Ð´ вмеÑÑо Ð¼Ð½Ð¾Ð³Ð¸Ñ ) 219 const tablist = clickedTab.closest('[role="tablist"]'); 220 if (!tablist) return; 221 222 const container = tablist.parentNode; 223 const targetId = clickedTab.getAttribute("aria-controls"); 224 const targetPanel = container.parentNode.querySelector(`#${targetId}`); 225 226 // --- ФÐÐÐ 1: ÐинималÑнÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð±ÑÑÑÑого оÑклика --- 227 // СнаÑала показÑваем новÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ (Ñамое важное Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ) 228 if (targetPanel) { 229 targetPanel.removeAttribute("hidden"); 230 } 231 232 // СкÑÑваем ÑÑаÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ (ÐÐ ÐРУÐÐÐЯÐРиз DOM, еÑли не нÑжно) 233 const oldPanel = container.querySelector('[role="tabpanel"]:not([hidden])'); 234 if (oldPanel && oldPanel !== targetPanel) { 235 oldPanel.setAttribute("hidden", ""); 236 } 237 238 // ÐбновлÑем aria-аÑÑибÑÑÑ (Ð»ÐµÐ³ÐºÐ°Ñ Ð¾Ð¿ÐµÑаÑиÑ) 239 const currentActive = tablist.querySelector('[aria-selected="true"]'); 240 if (currentActive) { 241 currentActive.setAttribute("aria-selected", "false"); 242 } 243 clickedTab.setAttribute("aria-selected", "true"); 244 245 // --- ФÐÐÐ 2: ТÑжелÑе опеÑаÑии поÑле оÑÑиÑовки --- 246 // ÐÑÑ, ÑÑо ниже, не кÑиÑиÑно Ð´Ð»Ñ Ð²Ð¸Ð·ÑалÑного оÑклика 247 requestAnimationFrame(() => { 248 setTimeout(() => { 249 // ÐбновлÑем Swiper (еÑли еÑÑÑ) 250 if (targetPanel) { 251 const swiperContainers = targetPanel.querySelectorAll(".swiper-container"); 252 swiperContainers.forEach(container => { 253 if (container.swiper) { 254 container.swiper.update(); 255 } 256 }); 257 } 258 259 // ÐÑзÑваем ÑÑжелÑÑ ÑÑнкÑÐ¸Ñ (еÑли нÑжно) 260 if (typeof blockformInfoMore !== 'undefined' && blockformInfoMore) { 261 openedText(blockformInfoMore); 262 } 263 }, 0); 264 }); 265} 266 267blockformInfoMore && openedText(blockformInfoMore); 268const popupTimeOpen = () => { 269 const e = document.querySelectorAll(".js-popup-open"); 270 e.length && e.forEach(e => { 271 e.addEventListener("click", function (e) { 272 this.classList.toggle("active") 273 }), document.addEventListener("click", t => { 274 let n = t.target, o = n == e || e.contains(n), s = e.classList.contains("active"); 275 !o && s && e.classList.remove("active") 276 }) 277 }) 278}, badgesHandler = () => { 279 const e = document.querySelectorAll(".js-badges__hidden"), t = document.querySelectorAll(".js-show-more"); 280 (e.length || t.length) && t.forEach(e => { 281 e.addEventListener("click", () => { 282 e.classList.toggle("active"), e.previousElementSibling.classList.toggle("hidden") 283 }) 284 }) 285}, selectPaymentVariants = () => { 286 const e = document.querySelector(".js-payment-variants"), t = document.querySelector(".js-current-payment-variant"); 287 e && t && e.addEventListener("click", () => { 288 e.classList.contains("open") ? e.classList.remove("open") : e.classList.add("open") 289 }), paymentVariantsSelectItemsInit(), document.addEventListener("click", e => { 290 const t = e.target, n = document.querySelector(".js-payment-variants.open"); 291 n && !t.closest(".js-payment-variants.open") && n.classList.remove("open") 292 }) 293}, paymentVariantsSelectItemsInit = () => { 294 const e = document.querySelectorAll(".js-select-item"), t = document.querySelector(".js-current-payment-variant"); 295 e.length && e.forEach(e => { 296 e.addEventListener("click", () => { 297 if (document.querySelectorAll(".payment-variants__select-text").forEach(e => e.classList.remove("selected")), e.querySelector(".payment-variants__select-text")) { 298 e.querySelector(".payment-variants__select-text").classList.add("selected"); 299 const n = e.querySelector(".payment-variants__select-text").textContent; 300 t.textContent = n 301 } 302 }) 303 }) 304}; 305let myMap; 306 307function init(e) { 308 const t = e ? JSON.parse(e) : [], n = t.length > 0 ? calcMapCenter(t) : {lat: 53.9, lng: 27.56}; 309 void 0 !== myMap && (console.log("ytn"), myMap.destroy()), myMap = new ymaps.Map("map", { 310 center: [n.lat, n.lng], 311 zoom: 16, 312 controls: [] 313 }), t.length > 0 && t.forEach(e => { 314 const t = new ymaps.Placemark([e.lat, e.lng], {balloonContent: e.name}, { 315 preset: "islands#icon", 316 iconColor: "#FF6700" 317 }); 318 myMap.geoObjects.add(t) 319 }), t.length > 1 && myMap.setBounds(myMap.geoObjects.getBounds(), { 320 checkZoomRange: !0, 321 zoomMargin: 100 322 }), myMap.controls.add(new ymaps.control.ZoomControl({ 323 options: { 324 position: { 325 right: 10, 326 top: 50 327 } 328 } 329 })), myMap.behaviors.disable("scrollZoom") 330} 331 332function calcMapCenter(e) { 333 return { 334 lat: (Math.max.apply(Math, e.map(function (e) { 335 return e.lat 336 })) + Math.min.apply(Math, e.map(function (e) { 337 return e.lat 338 }))) / 2, lng: (Math.max.apply(Math, e.map(function (e) { 339 return e.lng 340 })) + Math.min.apply(Math, e.map(function (e) { 341 return e.lng 342 }))) / 2 343 } 344} 345 346const customSelectHandler = () => { 347 const e = document.querySelector(".js-custom-select"), t = document.querySelector(".js-custom-select-variant"), 348 n = document.querySelectorAll(".js-select-item"), o = document.querySelector(".js-custom-select-input"), 349 s = document.querySelector(".js-search input"); 350 e && t && e.addEventListener("click", () => { 351 e.classList.contains("open") ? e.classList.remove("open") : e.classList.add("open"), s?.focu
351s() 352 }), n && n.forEach(e => { 353 e.addEventListener("click", () => { 354 if (document.querySelectorAll(".custom-select__select-text").forEach(e => e.classList.remove("selected")), e.querySelector(".custom-select__select-text")) { 355 e.querySelector(".custom-select__select-text").classList.add("selected"); 356 const n = e.querySelector(".custom-select__select-text").textContent; 357 o.value = n, t.textContent = n 358 } 359 }) 360 }) 361}, modals = () => { 362 document.addEventListener("click", e => { 363 const t = e.target; 364 if (t.classList.contains("js-open-modal") || t.closest(".js-open-modal")) { 365 e.preventDefault(); 366 const n = t.classList.contains("js-open-modal") ? t : t.closest(".js-open-modal"); 367 if (document.querySelector(".modal--open") && closePopup(), n.dataset.product) { 368 const e = JSON.parse(n.dataset.product), t = document.querySelector(`#${n.dataset.modal}`); 369 if (n.dataset.title && (t.querySelector(".modal__title").innerHTML = n.dataset.title), Array.isArray(e)) { 370 $(".modal__good").remove(), $("#one_click_buy_form").prepend('<div class="modal__good"></div>'); 371 for (let t of e) { 372 if (void 0 !== t.SUM) { 373 $(".one_click_summary__price").html("ÐÑÐ¾Ð³Ð¾Ð²Ð°Ñ ÑÑмма: <b>" + t.SUM + "<span>Ñ.</span></b>"); 374 let e = Math.round(t.SUM.replace(/ /g, "") / 100 * 100) / 100; 375 $(".one_click_summary__bonus").html("ÐонÑÑÑ Ðº заÑиÑлениÑ: <b>" + e + "</b>"); 376 continue 377 } 378 let e = ""; 379 for (item of t.PROPS) e += '<div class="good__prop">' + item.NAME.replace(/ ТÐ$/, "") + ": " + item.VALUE + "</div>"; 380 $(".modal__good:last").after('<div class="modal__good good">\n <img src="' + t.IMAGE + '" alt="" class="good__img">\n <div>\n <div class="good__name">' + t.NAME + "</div>" + e + '<div class="good__price">' + t.QUANTITY + " x " + t.PRICE + "</div>\n </div>\n </div>") 381 } 382 $(".modal__good:first").remove() 383 } else { 384 t.querySelector(".good__id").value = e.ID, t.querySelector(".good__img").setAttribute("src", e.IMAGE), t.querySelector(".good__name").innerHTML = e.NAME, t.querySelector(".good__price").innerHTML = e.PRICE, document.querySelectorAll(".good__prop").forEach(function (e) { 385 e.parentNode.removeChild(e) 386 }); 387 let n = []; 388 for (item in e.PROPS) prop = document.createElement("div"), prop.innerHTML = e.PROPS[item][0] + ": " + e.PROPS[item][1], prop.classList.add("good__prop"), n.push(prop); 389 let o = t.querySelector(".good__name"); 390 for (prop in n.reverse()) o.after(n[prop]) 391 } 392 } 393 if (n.dataset.id) { 394 document.querySelector(`#${n.dataset.modal}`).querySelector(".good__id").value = n.dataset.id 395 } 396 if (openPopup(n.dataset.modal), n.classList.contains("js-modal-map")) { 397 const e = n.dataset.points; 398 ymaps.ready(() => { 399 init(e) 400 }) 401 } 402 } else t.classList.contains("js-close-modal") && closePopup() 403 }) 404}; 405 406function openPopup(e) { 407 const t = document.querySelector(`#${e}`); 408 t && (document.body.classList.add("locked"), t.classList.add("modal--open"), document.dispatchEvent(new Event("modal-open"))) 409} 410 411function closePopup() { 412 document.body.classList.remove("locked"), document.querySelector(".modal--open").classList.remove("modal--open") 413} 414 415const footerMenuHandler = () => { 416 const e = document.querySelectorAll(".js-footer-title"); 417 e && e.forEach(e => { 418 e.addEventListener("click", () => { 419 e.classList.toggle("open") 420 }) 421 }) 422}, stars = () => { 423 const e = document.querySelector(".j-rating-input"), t = document.querySelector(".j-rating-buttons"); 424 let n = 0; 425 if (t) { 426 const s = t.querySelectorAll(".star"); 427 for (let i = 0, a = s.length; i < a; i++) (function (i) { 428 const a = s[i];
429 a.addEventListener("click", function () { 430 n = i + 1, o(n), e.value = a.dataset.value, e.dataset.rating = n, t.classList.add("set") 431 }), a.addEventListener("mouseover", function () { 432 n = i + 1, o(n) 433 }) 434 })(i); 435 436 function o(e) { 437 const t = e ? e - 1 : -1; 438 s.forEach((e, n) => { 439 n <= t ? e.classList.add("star-full") : e.classList.remove("star-full") 440 }) 441 } 442 443 t.addEventListener("mouseleave", function () { 444 o(e.dataset.rating) 445 }) 446 } 447}; 448 449function initVideo() { 450 const e = document.querySelectorAll(".j-video"); 451 e.length && e.forEach(e => { 452 if (!e.classList.contains("video--enabled")) { 453 let t = e.querySelector(".video__link"), n = e.querySelector(".video__media"), 454 o = e.querySelector(".video__button"); 455 if (n) { 456 let s = parseMediaURL(n); 457 e.addEventListener("click", () => { 458 let n = createIframe(s); 459 t.remove(), o.remove(), e.appendChild(n) 460 }), t.removeAttribute("href"), e.classList.add("video--enabled") 461 } 462 } 463 }) 464} 465 466function parseMediaURL(e) { 467 return e.src.match(/https:\/\/i\.ytimg\.com\/vi\/([a-zA-Z0-9_-]+)\/maxresdefault\.jpg/i)[1] 468} 469 470function createIframe(e) { 471 let t = document.createElement("iframe"); 472 return t.setAttribute("allowfullscreen", ""), t.setAttribute("allow", "autoplay"), t.setAttribute("src", generateURL(e)), t.classList.add("video__media"), t 473} 474 475function generateURL(e) { 476 return "https://www.youtube.com/embed/" + e + "?enablejsapi=1&rel=0&showinfo=0&autoplay=1" 477} 478 479const bonusesAccordions = document.querySelector(".bonuses__accordions"); 480 481function initAccordion() { 482 const e = document.querySelectorAll(".j-accordion-button"); 483 if (e.length > 0) { 484 const t = 250; 485 e.forEach(e => { 486 const n = e.closest(".accordion"); 487 let o = n.querySelector(".j-accordion-body"); 488 if (o) { 489 function s(e) { 490 e.addEventListener("click", function () { 491 o && (this.classList.contains("opened") ? (disable(this), expand(o), setTimeout(() => { 492 collapse(o), this.classList.remove("opened") 493 }, 10), setTimeout(() => { 494 enable(this) 495 }, t + 10)) : (disable(this), expand(o), this.classList.add("opened"), setTimeout(() => { 496 enable(this), o.style.height = "" 497 }, t))) 498 }) 499 } 500 501 window.innerWidth > 768 && (n.classList.contains("checkout__accordion") || n.classList.contains("category__accordion")) && e.classList.add("opened"), o.style.transition = `height ${t}ms`, o.style.overflowY = "hidden", e.classList.contains("opened") ? (expand(o), setTimeout(() => { 502 o.style.height = "" 503 }, t)) : collapse(o); 504 let i = e.parentNode; 505 i.classList.contains("accordion__title") ? i.addEventListener("click", s(i)) : s(e) 506 } else e.style.display = "none" 507 }) 508 } 509} 510 511function expand(e) { 512 e.style.height = e.scrollHeight + "px" 513} 514 515function collapse(e) { 516 e.style.height = 0 517} 518 519function disable(e) { 520 e.style.pointerEvents = "none" 521} 522 523function enable(e) { 524 e.style.pointerEvents = "" 525} 526 527function initMask() { 528 Inputmask({ 529 mask: "+375 (99) 999-99-99", oncomplete: e => { 530 e.target.classList.add("filled"), $(e.target).addClass("fullNumber"), $('input[name="ONE_CLICK_ORDER_PERSONAL_DATA"]').is(":checked") && $("#one_click_buy_form_button").prop("disabled", !1) 531 }, onincomplete: e => { 532 e.target.classList.remove("filled"), $(e.target).removeClass("fullNumber"), $("#one_click_buy_form_button").prop("disabled", !0) 533 }, oninput: e => { 534 e.target.inputmask.isComplete() ? e.target.classList.add("filled") : e.target.classList.remove("filled") 535 }, autoUnmask: !0 536 }).mask(".j-phone-mask"), document.querySelector(".j-phone-mask").addEventListener("change", e => { 537 e.target.inputmask.isComplete() ? (e.target.classList.add("filled"), $(e.target).addClass("fullNumber"), $('input[name="ONE_CLICK_ORDER_PERSONAL_DATA"]').is(":checked") && $("#one_click_buy_form_button").prop("disabled", !1)) : (e.target.classList.remove("filled"), $(e.target).removeClass("fullNumber"), $("#one_click_buy_form_button").prop("disabled", !0)) 538 }), document.querySelector(".j-phone-mask").addEventListener("input", e => { 539 e.target.inputmask.isComplete() ? (e.target.classList.add("filled"), $(e.target).addClass("fullNumber"), $('input[name="ONE_CLICK_ORDER_PERSONAL_DATA"]').is(":checked") && $("#one_click_buy_form_button").prop("disabled", !1)) : (e.target.classList.remove("filled"), $(e.target).removeClass("fullNumber"), $("#one_click_buy_form_button").prop("disabled", !0)) 540 }), Inputmask("email").mask(".j-email-mask") 541} 542 543function initRange() { 544 const e = document.querySelectorAll(".j-range"); 545 e.length > 0 && e.forEach(e => { 546 const t = e.closest(".rangeBlock"); 547 let n = t.querySelector(".j-range-min"), o = t.querySelector(".j-range-max"), 548 s = e.dataset.min ? +e.dataset.min : 0, i = e.dataset.max ? +e.dataset.max : 1, 549 a = e.dataset.step ? +e.dataset.step : .1; 550 $(e).slider({ 551 animate: !0, 552 range: !0, 553 min: s, 554 max: i, 555 step: a, 556 values: [+n.value || s, +o.value || i], 557 slide: function (e, t) { 558 n.value = t.values[0], o.value = t.values[1] 559 }, 560 stop: function () { 561 n.dispatchEvent(new Event("change")), o.dispatchEvent(new Event("change")) 562 } 563 }), n?.addEventListener("change", () => { 564 !function () { 565 let t, a = n.value; 566 "" !== a && a <= i && a >= s ? t = a : (t = s, n.value = s); 567 changeRange(e, t, o.value) 568 }() 569 }), o?.addEventListener("change", () => { 570 !function () { 571 let t, a = o.value; 572 "" !== a && a <= i && a >= s ? t = a : (t = i, o.value = i); 573 changeRange(e, n.value, t) 574 }() 575 }) 576 }) 577} 578 579function changeRange(e, t, n) { 580 $(e).slider({values: [t, n]}) 581} 582 583function initShowMore() { 584 const e = document.querySelectorAll(".j-more-btn"); 585 e.length > 0 && e.forEach(e => { 586 e.addEventListener("click", () => { 587 const t = e.parentElement.querySelector(".j-more-block") || e.parentElement.parentElement.querySelector(".j-more-block"); 588 e.classList.contains("opened") ? (e.classList.remove("opened"), t.setAttribute("hidden", "")) : (e.classList.add("opened"), t.removeAttribute("hidden")) 589 }) 590 }) 591} 592 593function openFilter() { 594 document.querySelector(".j-filter-body").classList.add("opened"), document.body.classList.add("locked") 595} 596 597function closeFilter() { 598 document.querySelector(".j-filter-body").classList.remove("opened"), document.body.classList.remove("locked") 599} 600 601function counter(e, t) { 602 return t[e % 100 >
602 4 && e % 100 < 20 ? 2 : [2, 0, 1, 1, 1, 2][e % 10 < 5 ? e % 10 : 5]] 603} 604 605function initTableSwipe() { 606 const e = document.querySelectorAll(".j-swipe-table"); 607 0 !== e.length && e.forEach(e => { 608 let t, n, o = !1; 609 e.addEventListener("mousedown", s => { 610 o = !0, t = s.pageX - e.offsetLeft, n = e.scrollLeft 611 }), e.addEventListener("mouseleave", e => { 612 o = !1 613 }), e.addEventListener("mouseup", e => { 614 o = !1 615 }), e.addEventListener("mousemove", s => { 616 if (!o) return; 617 s.preventDefault(); 618 let i = 3 * (s.pageX - e.offsetLeft - t); 619 e.scrollLeft = n - i 620 }) 621 }) 622} 623 624function debounce(e, t, n) { 625 let o; 626 return function () { 627 let s = this, i = arguments, a = n && !o; 628 clearTimeout(o), o = setTimeout(function () { 629 o = null, n || e.apply(s, i) 630 }, t), a && e.apply(s, i) 631 } 632} 633 634addEventListener("DOMContentLoaded", () => { 635 sliders(), initTabs(), initMask(), popupTimeOpen(), badgesHandler(), selectPaymentVariants(), customSelectHandler(), modals(), footerMenuHandler(), stars(), initVideo(), initAccordion(), document.querySelector(".j-step") && document.body.classList.add("fixed-steps"), Inputmask.extendDefaults({autoUnmask: !0}), initRange(), initShowMore(), document.addEventListener("click", e => { 636 if (window.innerWidth <= 992) { 637 const t = e.target; 638 t.classList.contains("j-filter-open") || t.closest(".j-filter-open") ? openFilter() : (t.classList.contains("j-filter-close") || t.closest(".j-filter-close")) && closeFilter() 639 } 640 }); 641 const e = document.querySelector(".j-filter-body"); 642 e && e.addEventListener("reset", function () { 643 const e = this.querySelectorAll(".j-range"); 644 e.length && e.forEach(e => { 645 const t = e.closest(".rangeBlock"); 646 let n = e.dataset.min ? +e.dataset.min : 0, o = e.dataset.max ? +e.dataset.max : 1, 647 s = t.querySelector(".j-range-min"), i = t.querySelector(".j-range-max"); 648 s.value = n, s.dispatchEvent(new Event("change")), i.value = o, i.dispatchEvent(new Event("change")) 649 }) 650 }), initTableSwipe(), document.addEventListener("click", e => { 651 let t = e.target; 652 if (t.classList.contains("j-slow")) { 653 e.preventDefault(); 654 let n = t.getAttribute("href"); 655 const o = document.querySelector(n); 656 let s = o.getBoundingClientRect().top; 657 const i = document.querySelector(".header").offsetHeight, a = o.closest('[role="tabpanel"]'); 658 if (a) { 659 const e = document.querySelector(`#${a.getAttribute("aria-labelledby")}`); 660 s = e.getBoundingClientRect().top, changeTabs(e) 661 } 662 window.scrollBy({top: s - i - 20, left: 0, behavior: "smooth"}) 663 } 664 }), BX.ready(function () { 665 BX.addCustomEvent("onAjaxSuccess", function (e, t) { 666 if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) return; 667 if ("string" != typeof e || t.isMore) return; 668 const n = document.querySelector(".header").offsetHeight; 669 if (e.includes('class="catalog__grid stocks__grid"')) { 670 const e = document.querySelector(".special.special-stocks .h1--thin"), t = e ? e.offsetTop : 2 * n; 671 setTimeout(() => { 672 window.scrollTo({top: t - n}) 673 }, 10) 674 } else if (e.includes('data-entity="item"')) { 675 const e = document.querySelector(".catalog"), t = e ? e.offsetTop : 2 * n; 676 setTimeout(() => { 677 window.scrollTo({top: t - n}) 678 }, 10) 679 } 680 }) 681 }) 682}), document.addEventListener("DOMContentLoaded", function () { 683 let e = window.innerWidth, t = document.querySelector(".j-catalog-btn"), n = document.querySelector("#menuCatalog"), 684 o = document.querySelector("#catalogFilter"); 685 if (n) { 686 t.addEventListener("click", function (e) { 687 document.querySelector(".footer__catalog").classList.toggle("active-catalog"), 688 requestAnimationFrame(() => { 689 setTimeout(() => a(), 0); 690 }); 691 }), document.querySelector(".footer__catalog").addEventListener("click", function (e) { 692 a() 693 }), document.addEventListener("click", function (e) { 694 if (window.innerWidth > 992) { 695 let o = e.target, s = o === n || n.contains(o), i = o.classList.contains("j-catalog-btn"), 696 r = "true" === t.getAttribute("aria-expanded"); 697 s || i || !r || a() 698 } 699 }); 700 let r = ".j-category-block", l = ".j-category-button", c = document.querySelectorAll(l), 701 d = document.querySelectorAll(r); 702 for (let f = 0, g = c.length; f < g; f++) (function (t) { 703 let n = c[t]; 704 e > 991 ? n.addEventListener("mouseover", s) : n.addEventListener("click", i) 705 })(f); 706 let u = document.querySelector(".j-category-back"), p = u.innerText, 707 m = document.querySelector(".j-category-breadcrumb"), v = u.closest(".menuCatalog__header"); 708 709 function s(e) { 710 let t = e.currentTarget; 711 if (!t.classList.contains("active")) { 712 let e = t.dataset.click; 713 d.forEach(function (t, n) { 714 t.dataset.block === e ? (t.classList.add("active"), c[n].classList.add("active")) : (t.classList.remove("active"), c[n].classList.remove("active")) 715 }) 716 } 717 } 718 719 function i(e) { 720 e.preventDefault(); 721 let t = e.currentTarget, n = t.dataset.click, o = document.querySelector('[data-block="' + n + '"]'); 722 t.classList.add("active"), o.classList.add("active"), setTimeout(() => { 723 o.style.transform = "none" 724 }, 300), u.innerHTML = t.innerText, m.innerText = t.innerText, v.classList.add("active-back") 725 } 726 727 function a() { 728 "false" === t.getAttribute("aria-expanded") ? (t.setAttribute("aria-expanded", !0), n.classList.add("opened"), document.body.classList.add("locked"), o && (o.hidden = !0)) : (t.setAttribute("aria-expanded", !1), n.classList.remove("opened"), document.body.classList.remove("locked"), o && (o.hidden = !1)) 729 } 730 731 u.addEventListener("click", function () { 732 v.classList.remove("active-back"), u.innerHTML = p, m.innerText = "", document.querySelector(`${r}.active`).removeAttribute("style"), document.querySelector(`${r}.active`).classList.remove("active"), document.querySelector(`${l}.active`).classList.remove("active") 733 }), e > 991 && (c[0].classList.add("active"), d[0].classList.add("active")), window.addEventListener("resize", function () { 734 let t = window.innerWidth; 735 if (e <= 991 && t > 991) for (let e = 0, t = c.length; e < t; e++) (function (e) { 736 let t = c[e]; 737 t.addEventListener("mouseover", s), t.removeEventListener("click", i) 738 })(e); else if (e > 991 && t <= 991) { 739 for (let e = 0, t = c.length; e < t; e++) (function (e) { 740 let t = c[e]; 741 t.removeEventListener("mouseover", s), t.addEventListener("click", i) 742 })(e); 743 n.classList.contains("opened") && (a(), document.querySelector(`${r}.active`).classList.remove("active"), document.querySelector(`${l}.active`).classList.remove("active")) 744 } 745 e = t 746 }) 747 } 748 !function () { 749 var e = document.querySelector("#catalogFilter"), t = null; 750 751 function n() { 752 if (e) { 753 if (null == t) { 754 for (var n = getComputedStyle(e, ""), o = "", s = 0; s < n.length; s++) 0 != n[s].indexOf("overflow") && 0 != n[s].indexOf("padding") && 0 != n[s].indexOf("border") && 0 != n[s].indexOf("outline") && 0 != n[s].indexOf("box-shadow") && 0 != n[s].indexOf("background") || (o += n[s] + ": " + n.getPropertyValue(n[s]) + "; "); 755 (t = document.createElement("div")).style.cssText = o + " box-sizing: border-box; width: " + e.offsetWidth + "px;", e.insertBefore(t, e.firstChild); 756 var i = e.childNodes.length; 757 for (s = 1; s < i; s++) t.appendChild(e.childNodes[1]); 758 e.style.height = t.getBoundingClientRect().height + "px", e.style.padding = "0", e.style.border = "0" 759 } 760 var a = e.getBoundingClientRect(), 761 r = Math.round(a.top + t.getBoundingClientRect().height - document.querySelector(".catalog__recently").getBoundingClientRect().top - 0); 762 if (null !== document.querySelector(".detail_section_text")) r = Math.round(a.top + t.getBoundingClientRect().height - document.querySelector(".detail_section_text").getBoundingClientRect().top + 48); 763 if (null !== document.querySelector(".pagination")) r = Math.round(a.top + t.getBoundingClientRect().height - document.querySelector(".pagination").getBoundingClientRect().top + 30); 764 a.top - 200 <= 0 ? a.top - 200 <= r ? (t.className = "stop", t.style.top = -r + "px") : (t.className = "sticky", t.style.top = "200px") : (t.className = "", t.style.top = ""), window.addEventListener("resize", function () { 765 e.children[0].style.width = getComputedStyle(e, "").width 766 }, !1) 767 } 768 } 769 770 window.addEventListener("scroll", n, !1), document.body.addEventListener("scroll", n, !1) 771 }() 772}); 773const searchTrigger = debounce(function (e, t) { 774 searchAction(e, t) 775}, 200); 776 777function searchAction(e, t) { 778 let n = e.value.toLowerCase(); 779 t.forEach(e => { 780 e.innerText.toLowerCase().includes(n) ? e.removeAttribute("hidden") : e.setAttribute("hidden", "") 781 }) 782} 783 784var cityVariants = document.querySelector(".shop-variants"); 785 786function radioCityVariants(e) { 787 e && e.addEventListener("click", t => { 788 let n = t.target; 789 e.classList.contains("open") ? e.classList.remove("open") : e.classList.add("open"), n == e.querySelector(".search") && e.classList.add("open") 790 }) 791} 792 793var accordionDelivery = document.getElementById("bx-soa-order-form"); 794if (accordionDelivery && radioCityVariants(cityVariants), document.addEventListener("click", e => { 795 let t = e.target, n = t == cityVariants || cityVariants?.contains(t), o = cityVariants?.classList.contains("open"); 796 !n && o && cityVariants.classList.remove("open") 797}), window.innerWidth < 768) { 798 console.log('hide'); 799 let e = window.pageYOffset; 800 window.onscroll = function () { 801 var t = window.pageYOffset; 802 e > t ? (document.querySelector(".header").style.top = "0", document.querySelector('.title-search-result').style.height= "auto", document.querySelector("#menuCatalog").style.top = "110px", document.querySelector(".menuCatalog.o
802pened").style.padding = "20px") : (document.querySelector(".header").style.top = "-280px", document.querySelector('.title-search-result').style.height= "0px", document.querySelector("#menuCatalog").style.top = "0"), e = t 803 } 804} 805$(document).ready(function () { 806 const e = document.querySelectorAll(".badge-info_icon"), t = document.querySelectorAll(".badge_description"), 807 n = document.body; 808 e.forEach(e => { 809 e.addEventListener("click", n => { 810 const o = e.closest(".badge").querySelector(".badge_description"); 811 n.target.closest(".badge").querySelector(".badge_description").classList.contains("active") ? t.forEach(e => { 812 e.classList.remove("active") 813 }) : (t.forEach(e => { 814 e.classList.remove("active") 815 }), o.classList.add("active")) 816 }) 817 }), n.addEventListener("click", e => { 818 e.target.closest(".badge-info_icon") || t.forEach(e => { 819 e.classList.remove("active") 820 }) 821 }) 822}); 823document.querySelectorAll('.tab-btn').forEach(btn => { 824 btn.addEventListener('click', function() { 825 document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active')); 826 document.querySelectorAll('.tab-content').forEach(c => c.classList.remove('active')); 827 this.classList.add('active'); 828 document.getElementById(this.dataset.tab).classList.add('active'); 829 }); 830});
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.