{"mappings":"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","sources":["","src/partials/js/slider.js"],"sourcesContent":["(function() {\n const isMobile = /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n const sliderWrappers = [\n ...document.querySelectorAll('.slider-wrapper')\n ];\n const stepsElements = [\n ...document.querySelectorAll('.steps')\n ];\n const sliderMargin = 24;\n const sliderGap = 8;\n let clientWidth = null;\n const updateSlider = ()=>{\n if (clientWidth === window.innerWidth) return;\n clientWidth = window.innerWidth;\n sliderWrappers.map((slider)=>{\n slider.classList.add(isMobile ? 'mobile' : 'desktop');\n if (isMobile) {\n const sliderItems = [\n ...slider.querySelectorAll('[data-slider-item]')\n ];\n const sliderItemWidth = document.documentElement.clientWidth - 2 * sliderMargin;\n const width = sliderItems.length * sliderItemWidth + (sliderItems.length - 1) * sliderGap;\n const sliderTrack = slider.querySelector('.slider-track');\n let startX = 0;\n let currentTranslate = sliderMargin;\n sliderTrack.style.width = `${width}px`;\n sliderTrack.style.transform = `translateX(${sliderMargin}px)`;\n sliderItems.map((item)=>item.style.width = `${sliderItemWidth}px`);\n sliderTrack.ontouchstart = (e)=>{\n startX = e.touches[0].pageX;\n currentTranslate = +sliderTrack.style.transform.replace(/[^-?\\d.]/g, '');\n sliderTrack.classList.add('moving');\n };\n sliderTrack.ontouchend = ()=>{\n const transformValue = +sliderTrack.style.transform.replace(/[^-?\\d.]/g, '');\n const isLeftMoved = currentTranslate >= transformValue;\n sliderTrack.classList.remove('moving');\n for(let idx = 0; idx < sliderItems.length; idx += 1){\n const leftPartOfElement = -sliderItemWidth * (idx + 0.25) + sliderMargin;\n const rightPartOfElement = -sliderItemWidth * (idx + 0.75) + sliderMargin;\n const offset = sliderItems[idx].offsetLeft;\n const withStepsBlock = slider.previousElementSibling.classList.contains('steps');\n if (rightPartOfElement >= transformValue && !isLeftMoved) continue;\n if (leftPartOfElement >= transformValue && isLeftMoved) continue;\n sliderTrack.style.transform = `translateX(${-offset + sliderMargin}px)`;\n if (withStepsBlock) {\n slider.previousElementSibling.querySelector('.active[data-slider-step]').classList.remove('active');\n slider.previousElementSibling.querySelector(`[data-slider-step=${sliderItems[idx].dataset.sliderItem}]`).classList.add('active');\n }\n break;\n }\n };\n sliderTrack.ontouchmove = (e)=>{\n const walk = e.touches[0].pageX - startX;\n const updatedTranslate = currentTranslate + walk;\n const outOfRange = updatedTranslate > -sliderItems[0].offsetLeft + 2 * sliderMargin || updatedTranslate < -sliderItems[sliderItems.length - 1].offsetLeft;\n if (outOfRange) return;\n sliderTrack.style.transform = `translateX(${updatedTranslate}px)`;\n };\n }\n });\n };\n stepsElements.map((element)=>element.classList.add(isMobile ? 'mobile' : 'desktop'));\n updateSlider();\n window.addEventListener('resize', updateSlider);\n const stepsItems = [\n ...document.querySelectorAll('.steps div')\n ];\n const onStepClick = ({ currentTarget })=>{\n if (currentTarget.classList.contains('active')) return;\n const { dataset: { sliderStep }, parentElement } = currentTarget;\n parentElement.querySelector('.active').classList.remove('active');\n parentElement.nextElementSibling.querySelector('.active').classList.remove('active');\n parentElement.nextElementSibling.querySelector(`[data-slider-item=${sliderStep}]`).classList.add('active');\n currentTarget.classList.add('active');\n if (isMobile) {\n const sliderItems = [\n ...document.querySelectorAll('.slider-track [data-slider-item]')\n ];\n const sliderItemIndex = sliderItems.findIndex((item)=>item.dataset.sliderItem === sliderStep);\n const offset = sliderItems[sliderItemIndex].offsetLeft;\n parentElement.nextElementSibling.querySelector('.slider-track').style.transform = `translateX(${-offset + sliderMargin}px)`;\n }\n };\n stepsItems.map((item)=>{\n item.onclick = onStepClick;\n });\n})();\n\n//# sourceMappingURL=slider.15f19ec1.js.map\n","(function () {\n const isMobile = /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n const sliderWrappers = [...document.querySelectorAll('.slider-wrapper')];\n const stepsElements = [...document.querySelectorAll('.steps')];\n const sliderMargin = 24;\n const sliderGap = 8;\n let clientWidth = null;\n\n const updateSlider = () => {\n if (clientWidth === window.innerWidth) {\n return;\n }\n \n clientWidth = window.innerWidth;\n sliderWrappers.map((slider) => {\n slider.classList.add(isMobile ? 'mobile' : 'desktop');\n\n if (isMobile) {\n const sliderItems = [...slider.querySelectorAll('[data-slider-item]')];\n const sliderItemWidth = document.documentElement.clientWidth - 2 * sliderMargin;\n const width = sliderItems.length * sliderItemWidth + (sliderItems.length - 1) * sliderGap\n const sliderTrack = slider.querySelector('.slider-track');\n let startX = 0;\n let currentTranslate = sliderMargin;\n\n sliderTrack.style.width = `${width}px`\n sliderTrack.style.transform = `translateX(${sliderMargin}px)`;\n sliderItems.map((item) => item.style.width = `${sliderItemWidth}px`)\n\n sliderTrack.ontouchstart = (e) => {\n startX = e.touches[0].pageX;\n currentTranslate = +sliderTrack.style.transform.replace(/[^-?\\d.]/g, '');\n\n sliderTrack.classList.add('moving');\n };\n\n sliderTrack.ontouchend = () => {\n const transformValue = +sliderTrack.style.transform.replace(/[^-?\\d.]/g, '');\n const isLeftMoved = currentTranslate >= transformValue;\n\n sliderTrack.classList.remove('moving');\n\n for (let idx = 0; idx < sliderItems.length; idx += 1) {\n const leftPartOfElement = -sliderItemWidth * (idx + 0.25) + sliderMargin;\n const rightPartOfElement = -sliderItemWidth * (idx + 0.75) + sliderMargin;\n const offset = sliderItems[idx].offsetLeft;\n const withStepsBlock = slider.previousElementSibling.classList.contains('steps');\n\n if (rightPartOfElement >= transformValue && !isLeftMoved) {\n continue;\n }\n\n if (leftPartOfElement >= transformValue && isLeftMoved) {\n continue;\n }\n\n sliderTrack.style.transform = `translateX(${-offset + sliderMargin}px)`;\n\n if (withStepsBlock) {\n slider.previousElementSibling.querySelector('.active[data-slider-step]').classList.remove('active')\n slider.previousElementSibling.querySelector(`[data-slider-step=${sliderItems[idx].dataset.sliderItem}]`).classList.add('active');\n }\n\n break;\n }\n };\n\n sliderTrack.ontouchmove = (e) => {\n const walk = e.touches[0].pageX - startX;\n const updatedTranslate = currentTranslate + walk;\n const outOfRange = updatedTranslate > -sliderItems[0].offsetLeft + 2 * sliderMargin ||\n updatedTranslate < -sliderItems[sliderItems.length - 1].offsetLeft\n\n if (outOfRange) {\n return;\n }\n\n sliderTrack.style.transform = `translateX(${updatedTranslate}px)`;\n };\n }\n });\n };\n\n stepsElements.map((element) => element.classList.add(isMobile ? 'mobile' : 'desktop'))\n updateSlider();\n window.addEventListener('resize', updateSlider);\n\n const stepsItems = [...document.querySelectorAll('.steps div')];\n const onStepClick = ({ currentTarget }) => {\n if (currentTarget.classList.contains('active')) {\n return;\n }\n \n const {\n dataset: { sliderStep },\n parentElement\n } = currentTarget;\n \n parentElement.querySelector('.active').classList.remove('active');\n parentElement.nextElementSibling.querySelector('.active').classList.remove('active');\n parentElement.nextElementSibling.querySelector(`[data-slider-item=${sliderStep}]`).classList.add('active');\n currentTarget.classList.add('active');\n\n if (isMobile) {\n const sliderItems = [...document.querySelectorAll('.slider-track [data-slider-item]')]\n const sliderItemIndex = sliderItems.findIndex((item) => item.dataset.sliderItem === sliderStep)\n const offset = sliderItems[sliderItemIndex].offsetLeft\n parentElement.nextElementSibling.querySelector('.slider-track').style.transform = `translateX(${-offset + sliderMargin}px)`;\n }\n }\n \n stepsItems.map((item) => {\n item.onclick = onStepClick;\n })\n})();\n"],"names":["isMobile","test","navigator","userAgent","sliderWrappers","document","querySelectorAll","stepsElements","clientWidth","updateSlider","window","innerWidth","map","slider","classList","add","sliderItems","sliderItemWidth","documentElement","width","length","sliderTrack","querySelector","startX","currentTranslate","style","transform","item","ontouchstart","e","touches","pageX","replace","ontouchend","transformValue","isLeftMoved","remove","idx","leftPartOfElement","rightPartOfElement","offset","offsetLeft","withStepsBlock","previousElementSibling","contains","dataset","sliderItem","ontouchmove","walk","updatedTranslate","element","addEventListener","stepsItems","onStepClick","currentTarget","sliderStep","parentElement","nextElementSibling","sliderItemIndex","findIndex","onclick"],"version":3,"file":"slider.15f19ec1.js.map"}