{"version":3,"file":"utils-b0038f90.js","sources":["../../src/js/utils.js"],"sourcesContent":["export function debounce(func, wait, immediate) {\r\n // Returns a function, that, as long as it continues to be invoked, will not\r\n // be triggered. The function will be called after it stops being called for\r\n // N milliseconds. If `immediate` is passed, trigger the function on the\r\n // leading edge, instead of the trailing.\r\n let timeout;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\nexport function updateProgressbar(progressbarEl, swiper) {\r\n const progress = Math.min(\r\n (swiper.activeIndex + Math.floor(swiper.params.slidesPerView)) /\r\n swiper.slides.length,\r\n 1\r\n );\r\n progressbarEl.style.transform = `scaleX(${progress})`;\r\n}\r\n\r\nconst header = document.querySelector(\".header\");\r\nexport function percentageSeen(element) {\r\n const viewportHeight = window.innerHeight;\r\n const scrollTop = window.scrollY;\r\n const elementOffsetTop = element.offsetTop;\r\n const elementHeight = element.offsetHeight;\r\n const navHeight = header.offsetHeight;\r\n\r\n // Calculate percentage of the element that's been seen minus nav\r\n const distance = scrollTop + viewportHeight - elementOffsetTop + navHeight;\r\n const percentage = Math.round(\r\n distance / ((viewportHeight + elementHeight) / 100)\r\n );\r\n\r\n // Restrict the range to between 0 and 100\r\n return Math.min(100, Math.max(0, percentage));\r\n}\r\n\r\nexport function degreesToRadians(degree) {\r\n return (Math.PI / 180) * degree;\r\n}\r\n\r\nexport function latLngToMiles(lat1, lng1, lat2, lng2) {\r\n const phi1 = degreesToRadians(lat1);\r\n const phi2 = degreesToRadians(lat2);\r\n\r\n const lambda1 = degreesToRadians(lng1);\r\n const lambda2 = degreesToRadians(lng2);\r\n\r\n // In miles\r\n const earthRadius = 3958.8;\r\n\r\n const a = Math.sin((phi2 - phi1) / 2) ** 2;\r\n const b = Math.cos(phi1) * Math.cos(phi2);\r\n const c = Math.sin((lambda2 - lambda1) / 2) ** 2;\r\n\r\n // Haversine formula\r\n const distance = 2 * earthRadius * Math.asin(Math.sqrt(a + b * c));\r\n\r\n return distance;\r\n}\r\n\r\nexport const mapStyles = [\r\n {\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#f5f5f5\",\r\n },\r\n ],\r\n },\r\n {\r\n elementType: \"labels.icon\",\r\n stylers: [\r\n {\r\n visibility: \"off\",\r\n },\r\n ],\r\n },\r\n {\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#616161\",\r\n },\r\n ],\r\n },\r\n {\r\n elementType: \"labels.text.stroke\",\r\n stylers: [\r\n {\r\n color: \"#f5f5f5\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"administrative.land_parcel\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#bdbdbd\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"poi\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#eeeeee\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"poi\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#757575\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"poi.park\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#e5e5e5\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"poi.park\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#9e9e9e\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"road\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#ffffff\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"road.arterial\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#757575\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"road.highway\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#dadada\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"road.highway\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#616161\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"road.local\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#9e9e9e\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"transit.line\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#e5e5e5\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"transit.station\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#eeeeee\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"water\",\r\n elementType: \"geometry\",\r\n stylers: [\r\n {\r\n color: \"#c9c9c9\",\r\n },\r\n ],\r\n },\r\n {\r\n featureType: \"water\",\r\n elementType: \"labels.text.fill\",\r\n stylers: [\r\n {\r\n color: \"#9e9e9e\",\r\n },\r\n ],\r\n },\r\n];\r\n"],"names":["debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","updateProgressbar","progressbarEl","swiper","progress","Math","min","activeIndex","floor","params","slidesPerView","slides","length","style","transform","document","querySelector","degreesToRadians","degree","PI","latLngToMiles","lat1","lng1","lat2","lng2","phi1","phi2","lambda1","lambda2","earthRadius","a","sin","b","cos","c","distance","asin","sqrt","mapStyles","elementType","stylers","color","visibility","featureType"],"mappings":"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"}