{"version":3,"sources":["20230817WeLiveToDiscover_functions.js"],"names":["resetSliderNav","s","slideTo","scroll","$","click","sliderNav","location","pathname","replace","this","hostname","offsetValue","target","hash","length","slice","window","innerWidth","animate","scrollTop","offset","top","Splitting","requestAnimationFrame","showOnScroll","document","querySelectorAll","forEach","el","getBoundingClientRect","innerHeight","classList","add","Swiper","loop","slidesPerView","spaceBetween","freeMode","breakpoints","900","resetsliderNav","isIntersecting","observer3","IntersectionObserver","scrollers","observe","getElementById","isDown","startX","scrollLeft","videos","scroller","addEventListener","e","pageX","offsetLeft","cancelMomentumTracking","remove","momentumID","momentumLoop","prevScrollLeft","preventDefault","walk","velX","scrollTo","left","behavior","cancelAnimationFrame","Math","abs","config","rootMargin","threshold","callback","entries","entry","play","pause","observer","close_video_modal","removeClass","attr","element","on","src","console","log","addClass","event","keyup","keyCode"],"mappings":"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","file":"20230817WeLiveToDiscover_functions.min.js","sourcesContent":["// SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// FADE-IN-UP ELEMENTS ON SCROLL\r\n// SLIDER (SWIPER JS)\r\n// DRAG/WHEEL SCROLL-X + MOMENTUM\r\n// PAUSE OUT-OF-VIEW VIDEO\r\n// YT VIDEO MODAL\r\n\r\n\r\n//\r\n// =SCROLL-TO ANIMATION FOR ANCHOR LINKS\r\n// --------------------------------------------------\r\n\r\nconst resetSliderNav = (s) => s.slideTo(0);\r\n\r\n$('.msdw-page-scroll').click(function() {\r\n\r\n // reset slider nav when clicked\r\n resetSliderNav(sliderNav);\r\n\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 = 59;\r\n // console.log(offsetValue);\r\n }\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// =FADE-IN-UP ELEMENTS ON SCROLL\r\n// --------------------------------------------------\r\n\r\nSplitting();\r\n\r\nconst scroll = window.requestAnimationFrame;\r\n\r\nfunction showOnScroll() {\r\n const elems = document.querySelectorAll(\r\n \".msdw-animate, .msdw-anim-skew, .msdw-anim-zoom\"\r\n );\r\n\r\n elems.forEach((el) => {\r\n const elPosition = el.getBoundingClientRect().top;\r\n const elScreen = window.innerHeight / 0.9;\r\n\r\n if (elPosition < elScreen) {\r\n el.classList.add(\"msdw-animated\");\r\n }\r\n });\r\n\r\n scroll(showOnScroll);\r\n}\r\n\r\nshowOnScroll();\r\n\r\n\r\n//\r\n// =SLIDER (SWIPER JS)\r\n// --------------------------------------------------\r\n\r\nconst sliderNav = new Swiper(\"#sliderNav\", {\r\n loop: false,\r\n slidesPerView: 'auto',\r\n spaceBetween: 10,\r\n freeMode: true,\r\n breakpoints: {\r\n 900: {\r\n spaceBetween: 15,\r\n },\r\n },\r\n});\r\n\r\n\r\nfunction resetsliderNav() {\r\n if (!sliderNav.isIntersecting) {\r\n resetSliderNav(sliderNav);\r\n }\r\n}\r\n\r\nconst observer3 = new IntersectionObserver(resetsliderNav);\r\n\r\nobserver3.observe(document.getElementById('sliderNav'));\r\n\r\n\r\n//\r\n// =DRAG/WHEEL SCROLL-X + MOMENTUM\r\n// --------------------------------------------------\r\n\r\nconst scrollers = document.querySelectorAll('.msdw-section-profile');\r\n\r\nlet isDown = false;\r\nlet startX;\r\nlet scrollLeft;\r\n\r\nscrollers.forEach(scroller => {\r\n scroller.addEventListener('mousedown', (e) => {\r\n isDown = true;\r\n scroller.classList.add('active');\r\n startX = e.pageX - scroller.offsetLeft;\r\n scrollLeft = scroller.scrollLeft;\r\n cancelMomentumTracking();\r\n });\r\n\r\n scroller.addEventListener('mouseleave', () => {\r\n isDown = false;\r\n scroller.classList.remove('active');\r\n });\r\n\r\n scroller.addEventListener('mouseup', () => {\r\n isDown = false;\r\n scroller.classList.remove('active');\r\n beginMomentumTracking();\r\n });\r\n\r\n scroller.addEventListener('mousemove', (e) => {\r\n if(!isDown) return;\r\n e.preventDefault();\r\n const x = e.pageX - scroller.offsetLeft;\r\n // scroll-fast\r\n // const walk = (x - startX) * 3;\r\n const walk = (x - startX) * 1;\r\n var prevScrollLeft = scroller.scrollLeft;\r\n scroller.scrollLeft = scrollLeft - walk;\r\n velX = scroller.scrollLeft - prevScrollLeft;\r\n });\r\n\r\n // Reset scroller position when not in-view\r\n\r\n function resetScroller() {\r\n if (!scroller.isIntersecting) {\r\n scroller.scrollTo({\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n }\r\n }\r\n\r\n const observer2 = new IntersectionObserver(resetScroller);\r\n\r\n observer2.observe(scroller);\r\n\r\n // Momentum\r\n\r\n var velX = 0;\r\n var momentumID;\r\n\r\n scroller.addEventListener('wheel', (e) => {\r\n cancelMomentumTracking();\r\n });\r\n\r\n function beginMomentumTracking(){\r\n cancelMomentumTracking();\r\n momentumID = requestAnimationFrame(momentumLoop);\r\n }\r\n function cancelMomentumTracking(){\r\n cancelAnimationFrame(momentumID);\r\n }\r\n function momentumLoop(){\r\n scroller.scrollLeft += velX;\r\n velX *= 0.95;\r\n if (Math.abs(velX) > 0.5){\r\n momentumID = requestAnimationFrame(momentumLoop);\r\n }\r\n }\r\n});\r\n\r\n\r\n//\r\n// =PAUSE OUT-OF-VIEW VIDEO\r\n// --------------------------------------------------\r\n\r\nconst videos = document.querySelectorAll(\"video\");\r\n\r\nconst config = {\r\n rootMargin: '0px -100px',\r\n threshold: 0\r\n}\r\n\r\nconst callback = (entries) => {\r\n entries.forEach((entry) => {\r\n if (!entry.isIntersecting) {\r\n entry.target.pause();\r\n // console.log('Exit video');\r\n } else {\r\n entry.target.play();\r\n // console.log('Enter video');\r\n }\r\n });\r\n}\r\n\r\nconst observer = new IntersectionObserver(callback, config);\r\n\r\nvideos.forEach(element => {\r\n observer.observe(element);\r\n});\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}\r\n\r\n$('body').on('click', '.close-video-modal, .video-modal .overlay', 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"]}