{"version":3,"sources":["20230301UrbanEntdeckung_functions.js"],"names":["elements","document","querySelectorAll","check","entries","map","entry","isIntersecting","target","classList","add","observer","unobserve","IntersectionObserver","sliderHotspots1","forEach","elem","observe","Swiper","slidesPerView","spaceBetween","loop","breakpoints","navigation","600","noSwipingClass","900","sliderHotspots2","nextEl","prevEl","sliderFreeMode","freeMode","grabCursor","sliderProductImgs","sliderProductThumbs","i","length","thumbs","watchSlidesProgress","galleries","pagination","el","type","swiper","effect","fadeEffect","crossFade","speed","details","closeBtns","detailsWrapper","querySelector","closeAllBut","openDetails","open","closeAll","removeAttribute","remove","addEventListener","hasAttribute","elTop","getBoundingClientRect","top","window","scrollTo","left","scrollY","behavior","e","stopPropagation","onkeydown","event","key","keyCode","productPickers","sliderSlot","productPicker","productIdNumber","dataset","productId","preventDefault","jwsdwMediator","publish","$","click","location","pathname","replace","this","hostname","offsetValue","hash","slice","innerWidth","console","log","animate","scrollTop","offset","getElementById","catLandingMiddle","sliderClasses","appendChild","children"],"mappings":"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","file":"20230301UrbanEntdeckung_functions.min.js","sourcesContent":["// RESPONSIVE VIDEO!\r\n// FADE-IN-UP ELEMENTS ON SCROLL\r\n// SLIDER (SWIPER JS)\r\n// DETAILS TOGGLING\r\n// PRODUCT PICKER\r\n// VIDEO POP-UP\r\n// SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// PLACE SLOT MODULE INSIDE THE LP\r\n\r\n\r\n//\r\n// =RESPONSIVE VIDEO!\r\n// --------------------------------------------------\r\n\r\n// const vid = document.getElementById('msdw-video-responsive');\r\n\r\n// function loadVideo() {\r\n// var sm = window.matchMedia( \"(min-width: 0px) and (max-width: 599px)\" ), // Standard def (mp4, 640x360)\r\n// md = window.matchMedia( \"(min-width: 600px) and (max-width: 899px)\" ), // Standard def (mp4, 960x540)\r\n// lg = window.matchMedia( \"(min-width: 900px) and (max-width: 1199px)\" ), // High def (mp4, 1280x720)\r\n// xl = window.matchMedia( \"(min-width: 1200px) and (max-width: 99999px)\" ); // High def 1080 (mp4, 1920x1080)\r\n\r\n// sm.addEventListener(\"change\", changeVideoSize);\r\n// md.addEventListener(\"change\", changeVideoSize);\r\n// lg.addEventListener(\"change\", changeVideoSize);\r\n// xl.addEventListener(\"change\", changeVideoSize);\r\n\r\n// if (sm.matches) { changeVideoSize('sm') }\r\n// else if (md.matches) { changeVideoSize('md') }\r\n// else if (lg.matches) { changeVideoSize('lg') }\r\n// else if (xl.matches) { changeVideoSize('xl') }\r\n// }\r\n\r\n// function changeVideoSize(size){\r\n// const videoSource = $(\"#msdw-video-responsive source\");\r\n// videoSource.attr(\"src\", videoSource.attr(\"data-video-\"+size));\r\n// vid.autoplay = true;\r\n// vid.load();\r\n// // console.log(videoSource.attr(\"src\"));\r\n// }\r\n\r\n// if (document.contains(vid)) {\r\n// document.addEventListener('DOMContentLoaded', loadVideo);\r\n// window.onresize = loadVideo;\r\n// // vid.onloadeddata = () => vid.classList.add('msdw-video-loaded');\r\n// }\r\n\r\n// // window.addEventListener('resize', () => vid.attr('hidden' = true));\r\n\r\n\r\n//\r\n// =FADE-IN-UP ELEMENTS ON SCROLL\r\n// --------------------------------------------------\r\n\r\nconst elements = document.querySelectorAll(\".msdw-animate\");\r\n\r\nfunction check(entries) {\r\n entries.map((entry) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add(\"msdw-animated\");\r\n observer.unobserve(entry.target);\r\n }\r\n });\r\n}\r\n\r\nconst observer = new IntersectionObserver(check);\r\n\r\nelements.forEach((elem) => observer.observe(elem));\r\n\r\n//\r\n// =SLIDER (SWIPER JS)\r\n// --------------------------------------------------\r\n\r\nconst sliderHotspots1 = new Swiper(\"#sliderHotspots1\", {\r\n slidesPerView: 1.5,\r\n spaceBetween: 10,\r\n loop: false,\r\n // navigation: {\r\n // nextEl: \".msdw-hotspots-button-next\",\r\n // prevEl: \".msdw-hotspots-button-prev\",\r\n // },\r\n breakpoints: {\r\n navigation: false,\r\n 600: {\r\n noSwipingClass: \"msdw-no-swipe-md\",\r\n slidesPerView: 3,\r\n spaceBetween: 15,\r\n },\r\n 900: {\r\n noSwipingClass: \"msdw-no-swipe-md\",\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n },\r\n },\r\n});\r\n\r\nconst sliderHotspots2 = new Swiper(\"#sliderHotspots2\", {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n loop: false,\r\n navigation: {\r\n nextEl: \"#sliderHotspots2 .msdw-hotspots-button-next\",\r\n prevEl: \"#sliderHotspots2 .msdw-hotspots-button-prev\",\r\n },\r\n breakpoints: {\r\n navigation: false,\r\n 600: {\r\n slidesPerView: 1.65,\r\n spaceBetween: 15,\r\n navigation: false,\r\n },\r\n 900: {\r\n noSwipingClass: \"msdw-no-swipe-lg\",\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n navigation: false,\r\n },\r\n },\r\n});\r\n\r\nlet sliderFreeMode = new Swiper(\".swiper-freemode\", {\r\n slidesPerView: 1.3,\r\n spaceBetween: 10,\r\n freeMode: true,\r\n grabCursor: true,\r\n breakpoints: {\r\n 600: {\r\n slidesPerView: 2.5,\r\n spaceBetween: 15,\r\n },\r\n },\r\n});\r\n\r\n\r\n// product detail slider with thumbs\r\n\r\nconst sliderProductImgs = document.querySelectorAll(\".swiper-product-img\");\r\nconst sliderProductThumbs = document.querySelectorAll(\r\n \".swiper-product-img-thumbs\"\r\n);\r\n\r\nfor (i = 0; i < sliderProductImgs.length; i++) {\r\n sliderProductImgs[i].classList.add(\"swiper-product-img-\" + i);\r\n sliderProductThumbs[i].classList.add(\"swiper-product-img-thumbs-\" + i);\r\n\r\n var thumbs = new Swiper(\".swiper-product-img-thumbs-\" + i, {\r\n spaceBetween: 20,\r\n slidesPerView: 4,\r\n watchSlidesProgress: true,\r\n });\r\n\r\n var galleries = new Swiper(\".swiper-product-img-\" + i, {\r\n slidesPerView: 1,\r\n loop: false,\r\n navigation: {\r\n nextEl: \".swiper-button-summary-next\",\r\n prevEl: \".swiper-button-summary-prev\",\r\n },\r\n pagination: {\r\n el: \".swiper-pagination\",\r\n type: \"bullets\",\r\n },\r\n thumbs: {\r\n swiper: thumbs,\r\n },\r\n effect: \"fade\",\r\n fadeEffect: {\r\n crossFade: true,\r\n },\r\n speed: 100,\r\n });\r\n}\r\n\r\n//\r\n// =DETAILS TOGGLING\r\n// --------------------------------------------------\r\n\r\nconst details = document.querySelectorAll(\"details:not(open)\");\r\nconst closeBtns = document.querySelectorAll(\"[data-dismiss]\");\r\nconst detailsWrapper = document.querySelector(\".msdw-grid-2\");\r\n\r\n// one details element opened at a time:\r\n// click on any not-opened details will close the others\r\n\r\nfunction closeAllBut(openDetails) {\r\n for (var i = 0; i < details.length; i++) {\r\n if (details[i] != openDetails) {\r\n details[i].open = false;\r\n }\r\n }\r\n}\r\n\r\n// non clicked details will grey out the text\r\n\r\ndetails.forEach((el) => {\r\n el.querySelector(\"summary\").addEventListener(\"click\", () => {\r\n closeAllBut(el);\r\n\r\n if (el.hasAttribute(\"open\")) {\r\n detailsWrapper.classList.remove(\"msdw-details-active\");\r\n } else {\r\n detailsWrapper.classList.add(\"msdw-details-active\");\r\n }\r\n\r\n // console.log(galleries);\r\n // document.querySelector(\".swiper-product-img-\" + i)[0].slideTo(0);\r\n // galleries.$el[0].swiper.slideTo(0);\r\n // galleries.$el[0].swiper.init(\".swiper-product-img-\" + i);\r\n });\r\n\r\n // once clicked, scroll to the element\r\n\r\n el.addEventListener(\"toggle\", () => {\r\n let elTop = el.getBoundingClientRect().top;\r\n window.scrollTo({\r\n left: 0,\r\n top: window.scrollY + elTop - 60,\r\n behavior: \"smooth\",\r\n });\r\n });\r\n});\r\n\r\n// click on close button will close all details\r\n// and back to normal text color\r\n\r\ncloseBtns.forEach((el) => {\r\n el.addEventListener(\"click\", (e) => {\r\n closeAll();\r\n e.stopPropagation();\r\n });\r\n});\r\n\r\nfunction closeAll(el) {\r\n document\r\n .querySelectorAll(\"details\")\r\n .forEach((el) => el.removeAttribute(\"open\"));\r\n detailsWrapper.classList.remove(\"msdw-details-active\");\r\n}\r\n\r\ndocument.onkeydown = (e) => {\r\n e = e || window.event;\r\n let isEscape = false;\r\n if (\"key\" in e) {\r\n isEscape = e.key === \"Escape\" || e.key === \"Esc\";\r\n } else {\r\n isEscape = e.keyCode === 27;\r\n }\r\n if (isEscape) {\r\n closeAll();\r\n }\r\n};\r\n\r\n//\r\n// =PRODUCT PICKER\r\n// --------------------------------------------------\r\n\r\nconst productPickers = document.querySelectorAll(\".msdw-product-detail-picker\");\r\n\r\nproductPickers.forEach((productPicker) => {\r\n const productIdNumber = productPicker.dataset.productId;\r\n productPicker.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n window.jwsdwMediator.publish(\"openPicker\", \"productDetailPicker\", {\r\n productId: productIdNumber,\r\n });\r\n });\r\n});\r\n\r\n\r\n//\r\n// =VIDEO POP-UP\r\n// --------------------------------------------------\r\n\r\n// const playVideoBtns = document.querySelectorAll(\".msdw-play-video\");\r\n// const msdwPopupVideoWrapper = document.querySelector(\r\n// \".msdw-popup-video-wrapper\"\r\n// );\r\n// const msdwPopupVideoBackDrop = document.querySelector(\r\n// \".msdw-popup-video-backdrop\"\r\n// );\r\n// const msdwPopupVideo = document.getElementById(\"msdwPopupVideo\");\r\n\r\n// if (document.contains(msdwPopupVideoWrapper)) {\r\n// // OPEN\r\n// playVideoBtns.forEach((playVideoBtn) => {\r\n// playVideoBtn.addEventListener(\"click\", (e) => {\r\n// e.preventDefault();\r\n// const videoUrl = playVideoBtn.getAttribute(\"data-modal-video\");\r\n// msdwPopupVideo.setAttribute(\"src\", videoUrl);\r\n// msdwPopupVideoWrapper.classList.add(\"msdw-active\");\r\n// document.body.classList.add(\"jws-overflowHidden\");\r\n// msdwPopupVideo.muted = false;\r\n// msdwPopupVideo.play();\r\n// });\r\n// });\r\n\r\n// // CLOSE\r\n// const closePopUpVideo = () => {\r\n// document.body.classList.remove(\"jws-overflowHidden\");\r\n// msdwPopupVideo.muted = true;\r\n// msdwPopupVideo.pause();\r\n// msdwPopupVideo.currentTime = 0;\r\n\r\n// msdwPopupVideoWrapper.classList.remove(\"msdw-active\");\r\n// };\r\n\r\n// msdwPopupVideoBackDrop.addEventListener(\"click\", () => {\r\n// closePopUpVideo();\r\n// });\r\n\r\n// window.onkeydown = (e) => {\r\n// if (e.keyCode == 27) closePopUpVideo();\r\n// };\r\n// }\r\n\r\n//\r\n// =SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// --------------------------------------------------\r\n$('.msdw-page-scroll').click(function() {\r\n if (location.pathname.replace(/^\\//,'') == this.pathname.replace(/^\\//,'') && location.hostname == this.hostname) {\r\n var target = $(this.hash);\r\n target = target.length ? target : $('[name=' + this.hash.slice(1) +']');\r\n if (target.length) {\r\n var offsetValue = 0;\r\n if ( window.innerWidth <= 767 ) {\r\n offsetValue;\r\n console.log(offsetValue);\r\n } else {\r\n offsetValue = 99;\r\n console.log(offsetValue);\r\n }\r\n $('html,body').animate({\r\n scrollTop: target.offset().top - offsetValue\r\n }, 900);\r\n return false;\r\n }\r\n }\r\n});\r\n\r\n\r\n//\r\n// =PLACE SLOT MODULE INSIDE THE LP\r\n// --------------------------------------------------\r\n\r\nconst sliderSlot = document.getElementById('msdwSlidetSlot');\r\nconst catLandingMiddle = document.getElementById('cat-landing-middle');\r\ncatLandingMiddle && sliderSlot.appendChild(catLandingMiddle);\r\n\r\nconst sliderClasses = catLandingMiddle.children[0].classList;\r\nsliderClasses.replace(\"jws-grid-medium-column-11\", \"jws-grid-medium-column-12\");\r\nsliderClasses.remove(\"jws-grid-small-shift-1\");\r\n\r\n"]}