{"version":3,"sources":["app.js"],"names":["registerComponents","components","onLoad","lazyVideoObserver","context","arguments","length","undefined","document","toggle","Document","config","getElementById","menuItems","addEventListener","classList","remove","querySelectorAll","menuImages","lazyVideos","forEach","menuItem","index","img","add","slice","call","header","window","IntersectionObserver","entries","observer","video","isIntersecting","source","target","children","videoSource","tagName","src","dataset","load","unobserve","lazyVideo","observe","elementsToFadeInUpOnScroll","scrollY","elementsToChangeOnScroll","element","positionFromTop","getBoundingClientRect","top","innerHeight","videoContainers","bottom","videos","videoContainer","navigator","maxTouchPoints","paused","play","currentTime","pause","link","e","preventDefault","href","getAttribute","querySelector","offsetTop","currentElement","offsetParent","scroll","behavior"],"mappings":"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","file":"app.js","sourcesContent":["import 'fancybox';\r\nimport { registerComponents } from 'component-utils';\r\nimport components from 'core-components';\r\nimport 'global';\r\n\r\nonLoad();\r\n\r\ndocument.addEventListener('DOMContentUpdated', e => onLoad(e.target));\r\n\r\nexport function onLoad(context = document) {\r\n // Register the components (if applicable).\r\n if (context instanceof Document && config.registerComponents !== false)\r\n registerComponents(components);\r\n\r\n // Menu popup toggle.\r\n const toggle = document.getElementById('toggle');\r\n\r\n toggle.addEventListener('click', () => {\r\n toggle.classList.toggle('active');\r\n document.getElementById('menu-navbar').classList.toggle('open');\r\n });\r\n\r\n document.getElementById('toggle-close').addEventListener('click', () => {\r\n document.getElementById('menu-navbar').classList.remove('open');\r\n });\r\n\r\n // Menu images swap on hover.\r\n // Get all top-level
  • elements.\r\n const menuItems = document.querySelectorAll('.menu-items > ul > li > a');\r\n\r\n // Get all elements in the .menu-images div.\r\n const menuImages = document.querySelectorAll('.menu-images img');\r\n\r\n // Loop through each top-level menu item.\r\n menuItems.forEach((menuItem, index) => {\r\n // Add mouseover event listener.\r\n menuItems.forEach((menuItem, index) => {\r\n menuItem.addEventListener('mouseover', function() {\r\n // Remove 'active' class from all images.\r\n menuImages.forEach(img => img.classList.remove('active'));\r\n\r\n // Check if there's a corresponding image for the menu item.\r\n if (index < menuImages.length) {\r\n // If yes, add 'active' class to the corresponding image.\r\n menuImages[index].classList.add('active');\r\n } else {\r\n // If no corresponding image, default to the first image.\r\n menuImages[0].classList.add('active');\r\n }\r\n });\r\n });\r\n });\r\n\r\n // Lazy load videos.\r\n var lazyVideos = [].slice.call(document.querySelectorAll(\"video.lazy\"));\r\n\r\n if (\"IntersectionObserver\" in window) {\r\n var lazyVideoObserver = new IntersectionObserver(function(entries, observer) {\r\n entries.forEach(function(video) {\r\n if (video.isIntersecting) {\r\n for (var source in video.target.children) {\r\n var videoSource = video.target.children[source];\r\n if (typeof videoSource.tagName === \"string\" && videoSource.tagName === \"SOURCE\") {\r\n videoSource.src = videoSource.dataset.src;\r\n }\r\n }\r\n\r\n video.target.load();\r\n video.target.classList.remove(\"lazy\");\r\n lazyVideoObserver.unobserve(video.target);\r\n }\r\n });\r\n });\r\n\r\n lazyVideos.forEach(function(lazyVideo) {\r\n lazyVideoObserver.observe(lazyVideo);\r\n });\r\n };\r\n\r\n // Add class sticky to menu on scroll.\r\n const header = document.getElementById('header');\r\n\r\n window.addEventListener('scroll', () => {\r\n if (window.scrollY >= 100)\r\n header.classList.add('sticky-styles');\r\n else\r\n header.classList.remove('sticky-styles');\r\n });\r\n\r\n // Scroll reveal styles.\r\n const elementsToFadeInUpOnScroll = context.querySelectorAll('.scroll-reveal, .reason');\r\n\r\n if (elementsToFadeInUpOnScroll.length > 0) {\r\n window.addEventListener('scroll', () => {\r\n elementsToFadeInUpOnScroll.forEach(element => {\r\n let positionFromTop = element.getBoundingClientRect().top;\r\n\r\n if (positionFromTop <= window.innerHeight && positionFromTop >= 0)\r\n element.classList.add('fade-in-up');\r\n });\r\n });\r\n }\r\n\r\n // Black to white background styles.\r\n const elementsToChangeOnScroll = context.querySelectorAll('.black-hover-white');\r\n\r\n if (elementsToChangeOnScroll.length > 0) {\r\n window.addEventListener('scroll', () => {\r\n elementsToChangeOnScroll.forEach(element => {\r\n let positionFromBottom = element.getBoundingClientRect().bottom;\r\n\r\n if (positionFromBottom <= window.innerHeight) {\r\n element.classList.add('in-view');\r\n } else {\r\n element.classList.remove('in-view');\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Play vidoes on hover.\r\n const videoContainers = document.querySelectorAll('.sector, .showcase-item');\r\n const videos = document.querySelectorAll('.video');\r\n\r\n videoContainers.forEach((videoContainer, index) => {\r\n const video = videos[index];\r\n\r\n if ('ontouchstart' in window || navigator.maxTouchPoints) {\r\n videoContainer.addEventListener('touchstart', function() {\r\n if (video.paused) {\r\n video.play();\r\n video.currentTime = 0;\r\n } else {\r\n video.pause();\r\n }\r\n });\r\n } else {\r\n videoContainer.addEventListener('mouseenter', function() {\r\n video.play();\r\n video.currentTime = 0;\r\n });\r\n\r\n videoContainer.addEventListener('mouseleave', function() {\r\n video.pause();\r\n });\r\n }\r\n });\r\n\r\n // Scroll To\r\n context.querySelectorAll('.scroll-to').forEach(link => {\r\n link.addEventListener('click', e => {\r\n e.preventDefault();\r\n\r\n const href = link.getAttribute('href'); // Use 'link' instead of 'this'.\r\n const target = context.querySelector(href);\r\n\r\n // Calculate the offsetTop including the offset of all parent elements.\r\n let offsetTop = target.offsetTop;\r\n let currentElement = target;\r\n\r\n while (currentElement.offsetParent !== null) {\r\n currentElement = currentElement.offsetParent;\r\n offsetTop += currentElement.offsetTop;\r\n }\r\n\r\n window.scroll({\r\n top: offsetTop,\r\n behavior: 'smooth'\r\n });\r\n });\r\n });\r\n\r\n // Back to top.\r\n context.querySelectorAll('.scroll-to-top').forEach(link => {\r\n link.addEventListener('click', e => {\r\n window.scroll({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n });\r\n });\r\n}"]}