{"version":3,"sources":["accordion/accordion.js","alphabet/alphabet.js","cards-block/cards-block.js","cart-compact/cart-compact.js","catalog-nav/catalog-nav.js","footer-menu/footer-menu.js","form-standart/form-standart.js","map-block/map-block.js","page-header/page-header.js","search-dropdown/search-dropdown.js","search-line/search-line.js","specials/specials.js","steps/steps.js","tabs/tabs.js","top-menu/top-menu.js","types-block/types-block.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACXA;AACA","file":"blocks.js","sourcesContent":["//accorion\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n let item = e.target.closest('.accordion__item-heading');\r\n if (item < 1) return;\r\n item.closest('.accordion__item').classList.toggle('is-open');\r\n })\r\n});","//alphabet\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n let alphabets = document.querySelectorAll('.alphabet');\r\n alphabets.forEach(function(alphabet){\r\n let items = Array.prototype.slice.call(alphabet.querySelectorAll('.alphabet__item'));\r\n let sortedItems = items.sort(function(a, b){\r\n if(a.textContentb.textContent) return 1;\r\n return 0;\r\n });\r\n alphabet.innerHTML = '';\r\n let sectionLetter = null;\r\n sortedItems.forEach(function (sortedItem, index) {\r\n let currentLetter = sortedItem.innerText[0].toUpperCase();\r\n if (currentLetter !== sectionLetter) {\r\n alphabet.insertAdjacentHTML(\"beforeend\", \"
\" + currentLetter+ \"
\");\r\n sectionLetter = currentLetter;\r\n }\r\n alphabet.lastChild.lastChild.append(sortedItem);\r\n });\r\n });\r\n});","//cards-block\r\n$(function() {\r\n $('.cards-block').each(function() {\r\n let $context = $(this);\r\n let $slider = $('.cards-block__list', $context);\r\n let isCompact = $slider.attr('data-compact');\r\n let options = {\r\n infinite: false,\r\n dots: true,\r\n mobileFirst: true,\r\n prevArrow: $('.cards-block__slider-arrow.button_prev', $context),\r\n nextArrow: $('.cards-block__slider-arrow.button_next', $context),\r\n appendDots: $('.cards-block__slider-pages', $context),\r\n responsive: [{\r\n breakpoint: 1025,\r\n settings: \"unslick\"\r\n\r\n }, {\r\n\r\n breakpoint: 769,\r\n settings: {\r\n slidesToShow: 3,\r\n }\r\n\r\n }, {\r\n\r\n breakpoint: 525,\r\n settings: {\r\n slidesToShow: 2\r\n }\r\n\r\n }, {\r\n\r\n breakpoint: 300,\r\n settings: {\r\n slidesToShow: 1\r\n }\r\n\r\n }\r\n ]\r\n };\r\n function sliderGridFix() {\r\n let parentWidth = $('.cards-block__content', $context).width();\r\n let sliderListWidth = window.innerWidth>1024?'auto':parentWidth-45;\r\n $slider.width(sliderListWidth);\r\n }\r\n if (!isCompact) {\r\n $slider.on('init', function() {\r\n sliderGridFix();\r\n });\r\n\r\n if (window.innerWidth < 1025) {\r\n $slider.slick(options);\r\n }\r\n window.addEventListener('resize', function(event) {\r\n if (!$slider.is('.slick-initialized') && (window.innerWidth < 1025)) {\r\n $slider.slick(options);\r\n } else {\r\n sliderGridFix();\r\n }\r\n });\r\n }\r\n });\r\n});","//cart-compact\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n let item = e.target.closest('.cart-compact__link');\r\n let modal = e.target.closest('.cart-compact__dropdown');\r\n let cartCompact = document.querySelector('.cart-compact');\r\n if (!cartCompact) return;\r\n let isOpen = cartCompact.classList.contains('is-open');\r\n if (!isOpen && !!item) {\r\n cartCompact.classList.add('is-open');\r\n } else if (!!isOpen && !modal) {\r\n cartCompact.classList.remove('is-open');\r\n }\r\n })\r\n});","//catalog-nav\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n if (e.target.closest('.catalog-nav__group-title') < 1) return;\r\n let menu = e.target.closest('.catalog-nav__group');\r\n menu.classList.toggle('is-open');\r\n })\r\n});","//page-footer\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n if (e.target.closest('.footer-menu__toggle') < 1) return;\r\n let menu = e.target.closest('.footer-menu');\r\n if (!menu.classList.contains('is-open')) {\r\n e.preventDefault();\r\n menu.classList.add('is-open');\r\n }\r\n })\r\n});","// Обработка стандартной формы\n$(function () {\n function initFormFields($context) {\n const $form = $('form', $context);\n const $textInputs = $('input[type=\"text\"], input[type=\"email\"], input[type=\"tel\"]', $form);\n const $textareas = $('textarea', $form);\n const $selects = $('select', $form);\n const $checks = $('input[type=\"checkbox\"], input[type=\"radio\"]', $form);\n const $successMessage = $(`.${$context[0].classList[0]}__success-message`);\n\n function checkVal($input, regExp) {\n const result = regExp.test($input.val());\n const $relatedField = $input.closest(`.field`);\n\n if (result) {\n $relatedField.removeClass('is-error');\n } else {\n $relatedField.addClass('is-error');\n }\n }\n\n function checkTextInputFill($input) {\n const $relatedField = $input.closest(`.field`);\n\n if ($input.val().length > 0 && $input.val() !== '+7(___)___-__-__') {\n $relatedField.addClass('is-dirty').removeClass('is-empty');\n } else {\n $relatedField.removeClass('is-dirty').addClass('is-empty');\n }\n $relatedField.removeClass('is-focus');\n }\n\n function checkBinaryInput($input) {\n const $relatedField = $input.closest(`.field`);\n\n if ($input.is('[data-necessary]') && $input.prop('checked') === false) {\n $relatedField.addClass('is-error');\n } else {\n $relatedField.removeClass('is-error');\n }\n }\n\n function checkSelect($input) {\n const $relatedField = $input.closest(`.field`);\n\n if ($input.is('[data-necessary]') && $input.val() === '') {\n $relatedField.addClass('is-none');\n } else {\n $relatedField.removeClass('is-none');\n }\n }\n\n function checkTextarea(textarea) {\n const $relatedField = $(textarea).closest(`.field`);\n\n if ($(textarea).is('[data-necessary]') && textarea.value.length < 1) {\n $relatedField.addClass('is-none');\n } else {\n $relatedField.removeClass('is-none');\n }\n }\n\n function validateTextInput($input) {\n const $relatedField = $input.closest(`.field`);\n\n if (!$input.is('[data-necessary]')) return;\n\n if ($input.val().length < 1 || $input.val() === '+7(___)___-__-__') {\n $relatedField.addClass('is-none');\n } else if ($input.is('[type=\"tel\"]')) {\n const regex = /\\+7\\(\\d{3}\\)\\d{3}-\\d{2}-\\d{2}/;\n $relatedField.removeClass('is-none');\n checkVal($input, regex);\n } else if ($input.is('[type=\"email\"]')) {\n const regex = /^([A-Za-z0-9_-]+\\.)*[A-Za-z0-9\\+_-]+@[A-Za-z0-9_-]+(\\.[A-Za-z0-9_-]+)*\\.[a-z]{2,6}$/g;\n $relatedField.removeClass('is-none');\n checkVal($input, regex);\n } else {\n $relatedField.removeClass('is-none');\n }\n }\n\n $('input[type=\"tel\"]', $form).mask('+7(999)999-99-99', {autoclear: false});\n\n $textInputs.each(function() {\n checkTextInputFill($(this));\n });\n\n $form.on('focusout', function(e) {\n const $input = $(e.target).closest('input');\n const textarea = e.target.closest('textarea');\n\n if (!$input && !textarea) return;\n\n if ($input.is('[type=\"text\"]') || $input.is('[type=\"email\"]') || $input.is('[type=\"tel\"]')) {\n checkTextInputFill($input);\n validateTextInput($input);\n }\n if (textarea) {\n checkTextarea(textarea);\n }\n }).on('focusin', function(e){\n const $input = $(e.target).closest('input');\n const $relatedField = $input.closest(`.field`);\n\n $relatedField.addClass('is-focus');\n }).on('change', function(e){\n const $input = $(e.target).closest('input');\n const $relatedField = $input.closest(`.field`);\n\n $relatedField.removeClass('is-empty').addClass('is-dirty').removeClass('is-error');\n }).on('submit', function(e) {\n e.preventDefault();\n\n $textInputs.each(function() {\n const $input = $(this);\n\n checkTextInputFill($input);\n validateTextInput($input);\n });\n\n $textareas.each(function() {\n validateTextInput($(this));\n });\n\n $checks.each(function() {\n checkBinaryInput($(this));\n });\n\n $selects.each(function() {\n checkSelect($(this));\n });\n\n if ($('.is-error, .is-none', $form).length < 1) {\n $form.hide();\n $successMessage.show();\n }\n });\n\n $selects.each(function() {\n const $select = $(this);\n const $field = $select.closest('.field');\n let data = [];\n let $options = $('.field__select-options', $field).length > 0 ? $('.field__option', $field) : $('option', $field);\n\n $options.each(function(index, element) {\n data[index] = {\n id: index,\n text: element.innerHTML,\n }\n });\n if (!$select.is('.select2-hidden-accessible')) {\n const placeholder = $select.attr('data-placeholder');\n\n $select.select2({\n data: data,\n width: '100%',\n minimumResultsForSearch: 100,\n placeholder: placeholder,\n dropdownParent: $select.parent(),\n \"language\": {\n \"noResults\": function(){\n return \"Ничего не найдено\";\n }\n },\n templateResult: function (d) {\n return $(d.text);\n },\n templateSelection: function (d) {\n return $(d.text);\n },\n }).on('select2:opening', function (e) {\n $field.addClass('is-focus');\n }).on('select2:select', function (e) {\n $field.addClass('is-dirty');\n }).on('select2:closing', function (e) {\n $field.removeClass('is-focus');\n }).on('select2:unselecting', function (e) {\n $field.removeClass('is-dirty');\n }).on('select2:clearing', function (e) {\n $field.removeClass('is-dirty');\n });\n }\n });\n\n $context.addClass('is-ready');\n }\n\n $('.form-standart:not(.is-ready)').each(function() {\n initFormFields($(this));\n });\n\n\n $('a[data-webform-fancybox]').on('click', function(e){\n e.preventDefault();\n const $link = $(this);\n\n $.ajax({\n //type: \"POST\",\n //data: {WEB_FORM_ID: $(this).data('form_id')},\n url: $link.attr('data-webform-fancybox'),\n success: function (res) {\n $.fancybox.open(res, {\n touch : {\n vertical: false\n },\n closeExisting: true,\n afterLoad: function( instance, current ) {\n initFormFields($('.form-standart:not(.is-ready)'));\n },\n })\n },\n });\n });\n});\n","//map-block\r\nclass MapBlock {\r\n constructor(context) {\r\n this.context = context;\r\n this.map = null;\r\n this.collection = null;\r\n\r\n this.init = this.init.bind(this);\r\n this.createMap = this.createMap.bind(this);\r\n this.defaultPlacemarking = this.defaultPlacemarking.bind(this);\r\n this.initBlockAPI = this.initBlockAPI.bind(this);\r\n this.initToggle = this.initToggle.bind(this);\r\n this.setPlacemark = this.setPlacemark.bind(this);\r\n this.initShowMoreBtn = this.initShowMoreBtn.bind(this);\r\n }\r\n init() {\r\n this.createMap();\r\n this.defaultPlacemarking(this.context.querySelectorAll('.map-block__place'));\r\n this.initBlockAPI();\r\n this.initToggle();\r\n this.initShowMoreBtn();\r\n }\r\n initToggle() {\r\n let self = this;\r\n self.context.dataset.activeTab = this.context.querySelector('input[name=\"map-switch\"]:checked').value;\r\n this.context.querySelectorAll('input[name=\"map-switch\"]').forEach(function(switcher) {\r\n switcher.addEventListener('change', function(){\r\n self.context.dataset.activeTab = self.context.querySelector('input[name=\"map-switch\"]:checked').value;\r\n });\r\n })\r\n }\r\n initShowMoreBtn() {\r\n let self = this;\r\n let showMoreBtn = this.context.querySelector('.map-block__more-button');\r\n showMoreBtn.addEventListener('click', function(){\r\n self.context.classList.add('is-show-all');\r\n });\r\n }\r\n createMap(){\r\n this.map = new ymaps.Map(\"map\", {\r\n center: [55.76, 37.64],\r\n zoom: 7,\r\n controls: ['smallMapDefaultSet']\r\n });\r\n this.map.behaviors.disable('scrollZoom');\r\n this.collection = new ymaps.GeoObjectCollection();\r\n }\r\n defaultPlacemarking(marks) {\r\n let self = this;\r\n marks.forEach(function(mark) {\r\n let coordsArray = mark.dataset.coords.split(',')\r\n self.setPlacemark({\r\n placeInfo: mark.innerHTML,\r\n coords: coordsArray,\r\n coordsRaw: mark.dataset.coords,\r\n color: mark.dataset.color,\r\n });\r\n });\r\n\r\n this.map.geoObjects.add(this.collection);\r\n this.map.setBounds(this.collection.getBounds(), {checkZoomRange:true, zoomMargin:100});\r\n }\r\n setPlacemark(mark) {\r\n let self = this;\r\n let element = this.context.querySelector('.map-block__place[data-coords=\"'+mark.coordsRaw+'\"]');\r\n let placemark = new ymaps.Placemark(\r\n [parseFloat(mark.coords[0]), parseFloat(mark.coords[1])],\r\n {\r\n balloonContent: mark.placeInfo,\r\n },\r\n {\r\n iconColor: mark.color,\r\n balloonOffset: [0, -40],\r\n hideIconOnBalloonOpen: false,\r\n balloonCloseButton: true,\r\n balloonPanelMaxMapArea: 0\r\n }\r\n );\r\n this.collection.add(placemark);\r\n\r\n placemark.events.add('click', function(e) {\r\n if (window.innerWidth < 769) {\r\n e.preventDefault();\r\n Fancybox.show([\r\n {\r\n src: \"
\"+placemark.properties.get('balloonContent')+\"
\",\r\n type: \"html\",\r\n },\r\n ]);\r\n }\r\n });\r\n\r\n element.addEventListener('click', function () {\r\n if (window.innerWidth < 769) {\r\n element.classList.toggle('is-active');\r\n } else {\r\n if (element.classList.contains('is-active')) {\r\n //placemark.balloon.close();\r\n self.map.setZoom([7]);\r\n self.map.setBounds(self.collection.getBounds(), {checkZoomRange:true, zoomMargin:100});\r\n element.classList.remove('is-active');\r\n } else {\r\n self.context.querySelectorAll('.map-block__place').forEach(function(placeItem) {\r\n placeItem.classList.remove('is-active');\r\n });\r\n element.classList.add('is-active');\r\n self.map.setCenter([parseFloat(mark.coords[0]), parseFloat(mark.coords[1])]);\r\n self.map.setZoom([17]);\r\n //placemark.balloon.open();\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n initBlockAPI() {\r\n let self = this;\r\n this.context.addEventListener('resize.block', function(event) {\r\n setTimeout(function() {\r\n if (self.map !== undefined) self.map.container.fitToViewport(true);\r\n }, 200);\r\n event.stopPropagation();\r\n });\r\n\r\n this.context.addEventListener('balloon.open', function(event) {\r\n console.log(event)\r\n });\r\n\r\n this.context.addEventListener('setPlacemark.block', function(event, mark) {\r\n self.setPlacemark(mark);\r\n event.stopPropagation();\r\n });\r\n\r\n this.context.addEventListener('setCenter.block', function(event, center, zoom) {\r\n self.map.setCenter(center, zoom, {\r\n duration: 600\r\n });\r\n event.stopPropagation();\r\n });\r\n\r\n this.context.addEventListener('destroy.block', function(event) {\r\n if (self.map !== undefined) self.map.destroy();\r\n event.stopPropagation();\r\n });\r\n }\r\n}\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.querySelectorAll('.map-block').forEach(function(context) {\r\n let mapBlock = new MapBlock(context);\r\n ymaps.ready(mapBlock.init);\r\n });\r\n});\r\n","//page-header\nfunction fixedHeaderfix() {\n let header = document.querySelector('.page-header');\n if (!header) return;\n let headerHeight = header.clientHeight;\n document.body.style.paddingTop = headerHeight + 'px';\n}\ndocument.addEventListener(\"DOMContentLoaded\", function(){\n fixedHeaderfix();\n document.addEventListener('click', function(e) {\n //mobile menu\n if (e.target.closest('.page-header__toggle') < 1) return;\n let menu = e.target.closest('.page-header');\n menu.classList.toggle('is-menu-open');\n fixPage();\n });\n window.addEventListener('resize', function(event) {\n fixedHeaderfix();\n });\n});","document.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n //mobile search\r\n if (e.target.closest('.js-search-toggle') < 1) return;\r\n let header = e.target.closest('.page-header');\r\n let searchDropdown = header.querySelector('.search-dropdown');\r\n searchDropdown.classList.toggle('is-open');\r\n fixPage();\r\n });\r\n});","document.addEventListener(\"DOMContentLoaded\", function(){\r\n let searchLine = document.querySelectorAll('.search-line__input');\r\n function toggleResult(line) {\r\n let searchDropdown = document.querySelector('.search-dropdown');\r\n let dropdownInput = searchDropdown.querySelector('.search-line__input');\r\n if (line.value.length > 2) {\r\n line.closest('.search-line').classList.add('show-result');\r\n if (window.innerWidth < 1025) {\r\n fixPage();\r\n searchDropdown.classList.add('is-open');\r\n dropdownInput.value = line.value;\r\n dropdownInput.focus();\r\n line.value = '';\r\n }\r\n } else {\r\n line.closest('.search-line').classList.remove('show-result');\r\n if (window.innerWidth < 1025) {\r\n searchDropdown.classList.remove('is-open');\r\n }\r\n }\r\n }\r\n document.addEventListener('click', function(e) {\r\n let resetBtn = e.target.closest('.search-line__button_reset');\r\n if (!resetBtn) return;\r\n let parent = resetBtn.closest('.search-line');\r\n parent.classList.remove('show-result');\r\n });\r\n searchLine.forEach(function(line) {\r\n if (window.innerWidth < 1025 && line.dataset.placeholderMobile) {\r\n line.setAttribute('placeholder', line.dataset.placeholderMobile);\r\n }\r\n if (line.dataset.instant) {\r\n line.addEventListener('input', function() {\r\n toggleResult(line);\r\n });\r\n }\r\n });\r\n});","//specials\r\n$(function() {\r\n $('.specials__tab').each(function() {\r\n let $context = $(this);\r\n let $slider = $('.specials__list', $context);\r\n let isCompact = $slider.attr('data-compact');\r\n let mobileWidth = window.innerWidth < 601;\r\n let options = {\r\n infinite: false,\r\n dots: true,\r\n mobileFirst: true,\r\n prevArrow: $('.specials__slider-arrow.button_prev', $context),\r\n nextArrow: $('.specials__slider-arrow.button_next', $context),\r\n appendDots: $('.specials__slider-pages', $context),\r\n responsive: [{\r\n breakpoint: 1025,\r\n settings: {\r\n slidesToShow: 3,\r\n }\r\n }, {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 2,\r\n }\r\n\r\n }, {\r\n breakpoint: 300,\r\n settings: {\r\n slidesToShow: 1\r\n }\r\n }\r\n ]\r\n };\r\n let compactOptions = {\r\n infinite: false,\r\n dots: true,\r\n mobileFirst: true,\r\n prevArrow: $('.specials__slider-arrow.button_prev', $context),\r\n nextArrow: $('.specials__slider-arrow.button_next', $context),\r\n appendDots: $('.specials__slider-pages', $context),\r\n responsive: [{\r\n breakpoint: 600,\r\n settings: 'unslick'\r\n\r\n }, {\r\n breakpoint: 300,\r\n settings: {\r\n slidesToShow: 1\r\n }\r\n }\r\n ]\r\n };\r\n function sliderGridFix() {\r\n mobileWidth = window.innerWidth < 601;\r\n let parentWidth = $slider.closest('.specials__content').width();\r\n let compactTemplate = $slider.closest('.specials_compact').length > 0;\r\n let sliderListWidth = (!compactTemplate&&window.innerWidth<1025)||mobileWidth?parentWidth-65:parentWidth+30;\r\n $slider.width(sliderListWidth);\r\n }\r\n $slider.on('init', function() {\r\n sliderGridFix();\r\n });\r\n if (isCompact) {\r\n if (mobileWidth) {\r\n $slider.slick(compactOptions);\r\n }\r\n window.addEventListener('resize', function(event) {\r\n if (!$slider.is('.slick-initialized') && mobileWidth) {\r\n $slider.slick(compactOptions);\r\n } else {\r\n sliderGridFix();\r\n }\r\n });\r\n } else {\r\n $slider.on('init', function() {\r\n sliderGridFix();\r\n });\r\n\r\n $slider.slick(options);\r\n\r\n window.addEventListener('resize', function(event) {\r\n sliderGridFix();\r\n });\r\n\r\n window.addEventListener('tabActivation', function(event) {\r\n if ($slider.is('.slick-initialized')) {\r\n $slider.slick('setPosition');\r\n }\r\n });\r\n }\r\n });\r\n});","//steps\r\n$(function() {\r\n function initSteps($slider, $context, options) {\r\n $slider.on(\"init afterChange\", function(event, slick, currentSlide){\r\n $(\".steps__current-number\", $context).text(parseInt(slick.currentSlide + 1));\r\n $(\".steps__total-number\", $context).text(slick.slideCount);\r\n });\r\n $slider.slick(options);\r\n }\r\n $('.steps').each(function() {\r\n let $context = $(this);\r\n let $slider = $('.steps__list', $context);\r\n let options = {\r\n infinite: false,\r\n dots: false,\r\n mobileFirst: true,\r\n prevArrow: $('.steps__slider-arrow.button_prev', $context),\r\n nextArrow: $('.steps__slider-arrow.button_next', $context),\r\n responsive: [{\r\n breakpoint: 769,\r\n settings: \"unslick\"\r\n\r\n }, {\r\n\r\n breakpoint: 483,\r\n settings: {\r\n slidesToShow: 2,\r\n }\r\n\r\n }, {\r\n\r\n breakpoint: 300,\r\n settings: {\r\n slidesToShow: 1\r\n }\r\n\r\n }\r\n ]\r\n };\r\n if (window.innerWidth < 1025) {\r\n initSteps($slider, $context, options);\r\n }\r\n $(window).on('resize', function() {\r\n if (!$slider.is('.slick-initialized') && (window.innerWidth < 1025)) {\r\n initSteps($slider, $context, options);\r\n }\r\n });\r\n });\r\n});","//tabs-links\r\nconst tabsEvent = new Event('tabActivation');\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n let tabLink = e.target.closest('.tabs-link');\r\n let tabsHolder = e.target.closest('.tabs-holder');\r\n if (!(tabLink && tabsHolder)) return;\r\n let isNotClosable = tabsHolder.classList.contains('js-no-close');\r\n let targetTab = tabsHolder.querySelector(tabLink.dataset.target);\r\n let activeTabs = tabsHolder.querySelectorAll('.tab.is-active');\r\n if (window.innerWidth > 600 || isNotClosable) {\r\n activeTabs.forEach(function(activeTab) {\r\n activeTab.classList.remove('is-active');\r\n });\r\n tabsHolder.querySelectorAll('.tabs-link.is-active').forEach(function(activeLink) {\r\n activeLink.classList.remove('is-active');\r\n });\r\n tabLink.classList.add('is-active');\r\n targetTab.classList.add('is-active');\r\n tabsHolder.dataset.active = tabLink.dataset.target;\r\n } else {\r\n tabLink.classList.toggle('is-active');\r\n targetTab.classList.toggle('is-active');\r\n tabsHolder.dataset.active = tabsHolder.querySelector('.tabs-link.is-active').dataset.target;\r\n }\r\n window.dispatchEvent(tabsEvent);\r\n })\r\n});","//top-menu\r\ndocument.addEventListener(\"DOMContentLoaded\", function(){\r\n document.addEventListener('click', function(e) {\r\n let parentMenu = e.target.closest('.top-menu__menu-item.is-parent');\r\n let submenuItem = e.target.closest('.top-menu__submenu-item');\r\n if (parentMenu && !submenuItem && window.innerWidth < 1025 ) {\r\n e.preventDefault();\r\n parentMenu.closest('.top-menu').classList.toggle('hide-inactive');\r\n parentMenu.classList.toggle('is-open');\r\n }\r\n })\r\n});","//types-block\r\n"]}