{"version":3,"sources":["20230216DiscoverWilderness_functions.js"],"names":["Splitting","zoomOutTriggers","document","querySelectorAll","revealTriggers","forEach","zoomOutTrigger","zoomOut","querySelector","gsap","from","scale","scrollTrigger","trigger","start","end","scrub","ease","elements","revealTrigger","reveal","to","clipPath","once","check","entries","map","entry","isIntersecting","target","classList","add","observer","unobserve","IntersectionObserver","close_video_modal","$","attr","dialog","close","elem","observe","on","e","preventDefault","src","this","event","keyup","keyCode","filter","css","removeClass","addClass","sliderProducts","updateSize","updateSlides","updateProgress","updateSlidesClasses","slideTo","Swiper","slidesPerView","spaceBetween","loop","navigation","nextEl","prevEl","breakpoints","600","900","1200","1480","sliderModal","currentButton","audioPlaying","playAudio","audioPath","audio","setAttribute","pause","addEventListener","audioWrappers","quizListOptions","audioWrapper","call","dataset","modalLinks","quizListOption","contains","closest","productPickers","modalLink","index","modalId","getAttribute","closeBtn","modal","showModal","dialogEl","tagName","console","log","animating","productPicker","productIdNumber","productId","window","jwsdwMediator","publish","lerp","t","mouseCoordinates","x","y","targetX","targetY","animate","style","transform","requestAnimationFrame","clientX","clientY"],"mappings":"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","file":"20230216DiscoverWilderness_functions.min.js","sourcesContent":["// CUSTOM ANIMATIONS\r\n// FADE-IN-UP ELEMENTS ON SCROLL\r\n// YT VIDEO MODAL\r\n// SLIDER (SWIPER JS)\r\n// AUDIO PLAYER\r\n// QUIZ\r\n// DIALOGS (MODALS)\r\n// PRODUCT PICKER\r\n// LANSCAPE VIEWER (HOVER / SCROLL-X)\r\n\r\n\r\n//\r\n// =CUSTOM ANIMATIONS\r\n// --------------------------------------------------\r\n\r\n// splitting js\r\nSplitting();\r\n\r\n// gsap\r\n// gsap.to(\".msdw-cloud\", {\r\n// scrollTrigger: {\r\n// scrub: true\r\n// },\r\n// y: (i, target) => -ScrollTrigger.maxScroll(window) * target.dataset.speed,\r\n// ease: \"none\"\r\n// });\r\n\r\n// gsap.from(\".msdw-wolves img\", {\r\n// opacity: 0,\r\n// scrollTrigger: {\r\n// trigger: \".msdw-wolves\",\r\n// start: \"top bottom\",\r\n// end: \"center center\",\r\n// scrub: true\r\n// },\r\n// });\r\n\r\nconst zoomOutTriggers = document.querySelectorAll('.msdw-zoom-out-trigger');\r\n\r\nzoomOutTriggers.forEach(zoomOutTrigger => {\r\n const zoomOut = zoomOutTrigger.querySelector(\".msdw-zoom-out\");\r\n\r\n gsap.from( zoomOut, {\r\n scale: 1.15,\r\n scrollTrigger: {\r\n trigger: zoomOutTrigger,\r\n start: \"top 66%\",\r\n end: \"top 15%\",\r\n scrub: true,\r\n ease: 'Power0',\r\n // markers: true,\r\n }\r\n });\r\n});\r\n\r\n// gsap.utils.toArray(\".msdw-zoom-out-trigger\").forEach(zoomOutTrigger => {\r\n// let zoomOut = zoomOutTrigger.querySelector(\".msdw-zoom-out\");\r\n\r\n// gsap.from( zoomOut, {\r\n// scale: 1.15,\r\n// scrollTrigger: {\r\n// trigger: zoomOutTrigger,\r\n// start: \"top 66%\",\r\n// end: \"top 15%\",\r\n// scrub: true,\r\n// ease: 'Power0',\r\n// // markers: true,\r\n// }\r\n// });\r\n// });\r\n\r\nconst revealTriggers = document.querySelectorAll('.msdw-reveal-trigger');\r\n\r\nrevealTriggers.forEach(revealTrigger => {\r\n const reveal = revealTrigger.querySelector(\".msdw-reveal\");\r\n\r\n gsap.to( reveal, {\r\n clipPath: 'polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)',\r\n scrollTrigger: {\r\n trigger: revealTrigger,\r\n start: \"top 75%\",\r\n ease: 'Expo',\r\n once: true,\r\n }\r\n });\r\n});\r\n\r\n// gsap.utils.toArray(\".msdw-reveal-trigger\").forEach(revealTrigger => {\r\n// let reveal = revealTrigger.querySelector(\".msdw-reveal\");\r\n\r\n// gsap.to( reveal, {\r\n// clipPath: 'polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)',\r\n// scrollTrigger: {\r\n// trigger: revealTrigger,\r\n// start: \"top 75%\",\r\n// ease: 'Expo',\r\n// once: true,\r\n// }\r\n// });\r\n// });\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//\r\n// =YT VIDEO MODAL\r\n// --------------------------------------------------\r\n\r\n$(\".js-trigger-video-modal\")\r\n .on(\"click\", function(e){\r\n e.preventDefault();\r\n var id = $(this).attr('data-youtube-id');\r\n // var enablejsapi = '?enablejsapi=1';\r\n var autoplay = '?autoplay=1';\r\n var related_no = '&rel=0';\r\n var captions = '&cc_load_policy=1';\r\n // var src = '//www.youtube.com/embed/'+id+enablejsapi+autoplay+related_no;\r\n var src = '//www.youtube.com/embed/'+id+autoplay+related_no+captions;\r\n // console.log(src);\r\n\r\n $(\"#youtube\").attr('src', src);\r\n // $(\"body\").addClass(\"show-video-modal noscroll\");\r\n });\r\n\r\nfunction close_video_modal() {\r\n// $(\"body\").removeClass(\"show-video-modal noscroll\");\r\n $(\"#youtube\").attr('src', '');\r\n dialog.close();\r\n}\r\n\r\n$('body').on('click', '.dialog-close', function(event) {\r\n close_video_modal();\r\n});\r\n\r\n$('body').keyup(function(e) {\r\n if (e.keyCode == 27) {\r\n close_video_modal();\r\n }\r\n});\r\n\r\n\r\n//\r\n// =SLIDER (SWIPER JS)\r\n// --------------------------------------------------\r\n\r\n$('.msdw-filter-wrapper').on( 'click', 'div', function() {\r\n var filter = $(this).attr('data-filter');\r\n\r\n $('.msdw-slider-products .swiper-slide').css('display', 'none')\r\n $('.msdw-slider-products .swiper-slide' + filter).css('display', '')\r\n $( '.msdw-filter-wrapper div' ).removeClass( 'msdw-filter-active' );\r\n $( this ).addClass( 'msdw-filter-active' );\r\n\r\n sliderProducts.updateSize();\r\n sliderProducts.updateSlides();\r\n sliderProducts.updateProgress();\r\n sliderProducts.updateSlidesClasses();\r\n sliderProducts.slideTo(0);\r\n\r\n return false;\r\n});\r\n\r\nvar sliderProducts = new Swiper('#sliderProducts', {\r\n slidesPerView: 1.67,\r\n spaceBetween: 10,\r\n loop: false,\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev',\r\n },\r\n breakpoints: {\r\n 600: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 900: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n },\r\n 1200: {\r\n slidesPerView: 3.333,\r\n spaceBetween: 20,\r\n },\r\n 1480: {\r\n slidesPerView: 4,\r\n spaceBetween: 20,\r\n },\r\n },\r\n});\r\n\r\nvar sliderModal = new Swiper('#sliderModal', {\r\n slidesPerView: 1,\r\n loop: false,\r\n navigation: {\r\n nextEl: '.msdw-swiper-button-next',\r\n prevEl: '.msdw-swiper-button-prev',\r\n },\r\n});\r\n\r\n\r\n//\r\n// =AUDIO PLAYER\r\n// --------------------------------------------------\r\n\r\nlet currentButton;\r\nlet audioPlaying = false;\r\n\r\nconst playAudio = function (audioPath) {\r\n if (audioPlaying == false) {\r\n audio.src = audioPath;\r\n audioPlaying = true;\r\n this.querySelector('svg use').setAttribute('href', '#msdw-icon--audio-playing');\r\n } else if (currentButton == this && audioPlaying == true) {\r\n audio.pause();\r\n audioPlaying = false;\r\n this.querySelector('svg use').setAttribute('href', '#msdw-icon--audio');\r\n } else if (currentButton != this) {\r\n audio.src = audioPath;\r\n audioPlaying = true;\r\n currentButton.querySelector('svg use').setAttribute('href', '#msdw-icon--audio');\r\n this.querySelector('svg use').setAttribute('href', '#msdw-icon--audio-playing');\r\n }\r\n\r\n currentButton = this;\r\n\r\n audio.addEventListener('ended', () => {\r\n audioPlaying = false;\r\n currentButton.querySelector('svg use').setAttribute('href', '#msdw-icon--audio');\r\n });\r\n}\r\n\r\nconst audioWrappers = document.querySelectorAll('.msdw-player-wrapper');\r\n\r\naudioWrappers.forEach(audioWrapper => {\r\n audioWrapper.addEventListener('click', () => {\r\n playAudio.call(audioWrapper, audioWrapper.dataset.audio);\r\n });\r\n});\r\n\r\n\r\n//\r\n// =QUIZ\r\n// --------------------------------------------------\r\n\r\nconst quizListOptions = document.querySelectorAll('.msdw-quiz-list li');\r\n\r\nquizListOptions.forEach(quizListOption => {\r\n quizListOption.addEventListener('click', () => {\r\n if (quizListOption.classList.contains('msdw-quiz-right-answer')) {\r\n quizListOption.closest('section').classList.add('msdw-right-answer');\r\n } else {\r\n quizListOption.closest('section').classList.add('msdw-wrong-answer');\r\n }\r\n })\r\n});\r\n\r\n\r\n//\r\n// =DIALOGS (MODALS)\r\n// --------------------------------------------------\r\n\r\n// Get all links that start with #modal\r\nconst modalLinks = document.querySelectorAll('a[href^=\"#modal\"]');\r\n\r\nmodalLinks.forEach(function (modalLink, index) {\r\n // Get modal ID to match the modal\r\n const modalId = modalLink.getAttribute('href');\r\n\r\n // Click on link\r\n modalLink.addEventListener('click', function (event) {\r\n\r\n // Get modal element\r\n const modal = document.querySelector(modalId);\r\n // If modal with an ID exists\r\n if(modal){\r\n // Get close button\r\n const closeBtn = modal.querySelector('.dialog-close');\r\n event.preventDefault();\r\n modal.showModal(); // Open modal\r\n\r\n // Close modal on click\r\n closeBtn.addEventListener('click', function (event) {\r\n modal.close();\r\n });\r\n\r\n // Close modal when clicking outside modal\r\n document.addEventListener('click', function (event) {\r\n\r\n const dialogEl = event.target.tagName;\r\n const dialogElId = event.target.getAttribute('id');\r\n if(dialogEl == 'DIALOG'){\r\n // Close modal\r\n modal.close();\r\n }\r\n }, false);\r\n\r\n // If modal ID not exists\r\n } else {\r\n console.log('Modal doesn\\'t exist');\r\n }\r\n });\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// =LANSCAPE VIEWER (HOVER / SCROLL-X)\r\n// --------------------------------------------------\r\n\r\nlet animating = true;\r\n\r\nfunction lerp(start, end, t){\r\n return start * (1 - t) + end * t;\r\n}\r\n\r\nlet mouseCoordinates = {\r\n x: 0,\r\n y: 0,\r\n targetX: 0,\r\n targetY: 0\r\n}\r\n\r\ndocument.querySelector('.msdw-landscape-viewer').addEventListener('mousemove', (e) => {\r\n // mouseCoordinates.targetX = (e.clientX - (window.innerWidth / 2))\r\n // mouseCoordinates.targetY = (e.clientY - (window.innerHeight / 2))\r\n mouseCoordinates.targetX = (e.clientX / 2.25)\r\n mouseCoordinates.targetY = (e.clientY / 2.25)\r\n});\r\n\r\nfunction animate(){\r\n if (animating) {\r\n mouseCoordinates.x = lerp(mouseCoordinates.x, mouseCoordinates.targetX, .075);\r\n let {x, y} = mouseCoordinates;\r\n // document.querySelector('.msdw-landscape-img').style.transform = `translate3d(${-x}px, ${-y}px, 0)`\r\n document.querySelector('.msdw-landscape-img').style.transform = `translate3d(${-x}px, 0, 0)`\r\n }\r\n window.requestAnimationFrame(animate);\r\n}\r\n\r\nanimate();\r\n"]}