{"version":3,"file":"lokalsida.min.js","sources":["lokalsida.js"],"sourcesContent":["'use strict';\r\n\r\n(function () {\r\n const main = document.querySelector('main');\r\n const tornmeny = document.getElementById('navbar-torn-meny');\r\n let map;\r\n let markers = [];\r\n let latestZoomFactor;\r\n let isIntersectingFooter = false;\r\n let isIntersectingCTA = false;\r\n\r\n kartor.hamtaSvgRaknare();\r\n initieraPlanSlideshow();\r\n initieraOmFastighetenSlideshow();\r\n\r\n if (document.getElementById('map')) {\r\n kartor.initieraKarta(initMap);\r\n }\r\n\r\n af.setHeightInPercentForMobile();\r\n hanteraScrollSnap();\r\n doljCTAVidScroll();\r\n doljTornMenyVidSidfot();\r\n doljTornMenyVidSidCTA();\r\n hanteraTornMenyLankar();\r\n hanteraPlanBildKnapp();\r\n hanteraIntresseanmalan();\r\n hanteraResize();\r\n hanteraLokalsidoTracking();\r\n\r\n function hanteraLokalsidoTracking() {\r\n const elements = document.querySelectorAll('.kontakt a');\r\n if (elements.length === 0) return\r\n\r\n const setupTriggers = (el) => {\r\n el.addEventListener('click', () => {\r\n window._mtm.push({\r\n 'event': 'Klick på kontaktpersons mailadress',\r\n 'category': 'Ledig lokal'\r\n })\r\n });\r\n }\r\n\r\n elements.forEach(setupTriggers)\r\n }\r\n\r\n function hanteraScrollSnap() {\r\n if (af.getScreenWidth() > 767) {\r\n af.enableScrollSnapMandatoryIfAllChildHasWindowHeight();\r\n }\r\n }\r\n\r\n function doljTornMenyVidSidfot() {\r\n if ('IntersectionObserver' in window) {\r\n const footer = document.querySelector('footer');\r\n\r\n const sidfotObserver = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n isIntersectingFooter = true;\r\n gomVisaTornmeny();\r\n } else {\r\n isIntersectingFooter = false;\r\n gomVisaTornmeny();\r\n }\r\n });\r\n }, { rootMargin: '-5% 0% -5% 0%' });\r\n\r\n sidfotObserver.observe(footer);\r\n }\r\n }\r\n\r\n function doljTornMenyVidSidCTA() {\r\n if ('IntersectionObserver' in window) {\r\n const ctaVaning = document.querySelector('.cta-vaning');\r\n\r\n const sidfotObserver = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n isIntersectingCTA = true;\r\n gomVisaTornmeny();\r\n } else {\r\n isIntersectingCTA = false;\r\n gomVisaTornmeny();\r\n }\r\n });\r\n }, { rootMargin: '-5% 0% -5% 0%' });\r\n\r\n if (ctaVaning) {\r\n sidfotObserver.observe(ctaVaning);\r\n }\r\n }\r\n }\r\n\r\n function gomVisaTornmeny() {\r\n if (isIntersectingFooter || isIntersectingCTA) {\r\n tornmeny.classList.add('d-none');\r\n } else {\r\n tornmeny.classList.remove('d-none');\r\n }\r\n }\r\n\r\n function doljCTAVidScroll() {\r\n const cta = document.getElementById('cta');\r\n const sticky = document.querySelector('.cta-sticky');\r\n\r\n if (cta) {\r\n const ctaObserver = new IntersectionObserver((entries, observer) => {\r\n for (let entry of entries) {\r\n if (entry.isIntersecting) {\r\n sticky.classList.add('d-none');\r\n break;\r\n } else if (entry.boundingClientRect.top > 0) {\r\n sticky.classList.remove('d-none');\r\n }\r\n }\r\n });\r\n ctaObserver.observe(cta);\r\n }\r\n }\r\n\r\n function hanteraTornMenyLankar() {\r\n const links = document.querySelectorAll('.torn-lank');\r\n links.forEach(link => {\r\n if (link.hash !== '') {\r\n link.addEventListener('click', function (e) {\r\n const hash = this.hash;\r\n const element = document.getElementById(hash.slice(1));\r\n if (element) {\r\n e.preventDefault();\r\n af.scrollToElement(element, null, 0);\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n function hanteraPlanBildKnapp() {\r\n const knappar = document.querySelectorAll('.plan-bild-knapp');\r\n knappar.forEach(knapp => {\r\n knapp.addEventListener('click',\r\n () => {\r\n af.displayElement(knapp.dataset.elementid, 'planritning-');\r\n });\r\n });\r\n }\r\n\r\n function initieraPlanSlideshow() {\r\n const slideShow = $('.lokalsida-plan-slideshow');\r\n $(slideShow).slick({\r\n arrows: true,\r\n dots: true,\r\n speed: 800,\r\n fade: true,\r\n prevArrow: '',\r\n nextArrow: '',\r\n autoplay: false,\r\n mobileFirst: true,\r\n });\r\n window.addEventListener('resize', $(slideShow).slick('resize'));\r\n }\r\n\r\n function initieraOmFastighetenSlideshow() {\r\n af.initSlideshow(document.querySelector('.fastigheten-slideshow'), true);\r\n }\r\n\r\n function initMap() {\r\n\r\n const karta = document.getElementById('map');\r\n const latitud = document.getElementById('lokal-latitud').value;\r\n const longitud = document.getElementById('lokal-longitud').value;\r\n\r\n map = kartor.skapaKarta(karta, latitud, longitud, false, google.maps.ControlPosition.RIGHT_CENTER, true);\r\n\r\n let lokaler = document.getElementById('karta').querySelectorAll('.card-lokal');\r\n\r\n kartor.markeraLokaler(map, lokaler, markers, false, kartor.ikonLokalSekundar, latitud, longitud);\r\n\r\n latestZoomFactor = map.getZoom();\r\n\r\n google.maps.event.addListener(map, 'zoom_changed', function () {\r\n\r\n const mapZoom = map.getZoom();\r\n if (mapZoom > latestZoomFactor && latestZoomFactor <= kartor.zoomLevelForAttVisaAntal && mapZoom > kartor.zoomLevelForAttVisaAntal) {\r\n updateMarkers(false);\r\n }\r\n else if (mapZoom < latestZoomFactor && latestZoomFactor > kartor.zoomLevelForAttVisaAntal && mapZoom <= kartor.zoomLevelForAttVisaAntal) {\r\n updateMarkers(false);\r\n }\r\n\r\n latestZoomFactor = map.getZoom();\r\n\r\n });\r\n }\r\n\r\n function updateMarkers(fitbounds) {\r\n const lokaler = document.getElementById('karta').querySelectorAll('.card-lokal');\r\n const latitud = document.getElementById('lokal-latitud').value;\r\n const longitud = document.getElementById('lokal-longitud').value;\r\n\r\n removeMarkers();\r\n\r\n markers = kartor.markeraLokaler(map, lokaler, markers, fitbounds, kartor.ikonLokalSekundar, latitud, longitud);\r\n\r\n if (lokaler.length === 1) {\r\n map.setCenter(new google.maps.LatLng(lokaler[0].dataset.latitud, lokaler[0].dataset.longitud));\r\n map.setZoom(16);\r\n }\r\n }\r\n\r\n function removeMarkers() {\r\n for (var i = 0; i < markers.length; i++) {\r\n markers[i].setMap(null);\r\n }\r\n markers = [];\r\n }\r\n\r\n function hanteraIntresseanmalan() {\r\n const intresseanmalanForm = document.getElementById('form-intresseanmalan');\r\n if (intresseanmalanForm) {\r\n intresseanmalanForm.addEventListener('submit', function (e) {\r\n e.preventDefault();\r\n registreraIntresseanmalan(e.target.id);\r\n });\r\n }\r\n }\r\n\r\n function registreraIntresseanmalan(id) {\r\n const resultatDiv = document.getElementById('intresseanmalan-resultat');\r\n const cta = document.getElementById('cta');\r\n\r\n if ($('#' + id).valid()) {\r\n const formular = document.getElementById(id);\r\n const formularData = new FormData($('#' + id).get(0));\r\n\r\n var url = document.getElementById('form-intresseanmalan').action;\r\n\r\n $.ajax({\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n url: url,\r\n type: 'POST',\r\n data: formularData,\r\n success: function (response) {\r\n resultatDiv.innerHTML = response;\r\n resultatDiv.setAttribute('style', 'display:block');\r\n formular.setAttribute('style', 'display:none');\r\n main.scrollTo({ top: cta.offsetTop - 100, behavior: 'smooth' });\r\n window._mtm.push({\r\n 'event': 'Inskickad intresseanmälan',\r\n 'category': 'Ledig lokal'\r\n })\r\n },\r\n error: function () {\r\n resultatDiv.setAttribute('style', 'display:block');\r\n resultatDiv.innerHTML = 'Något gick fel, var god försök igen';\r\n main.scrollTo({ top: cta.offsetTop - 100, behavior: 'smooth' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n function hanteraResize() {\r\n window.addEventListener('resize', resizeFunctions);\r\n document.getElementById('form-intresseanmalan').addEventListener('focusin', resizeFunctions);\r\n }\r\n\r\n function resizeFunctions() {\r\n af.setHeightInPercentForMobile();\r\n hanteraScrollSnap();\r\n }\r\n\r\n})();\r\n"],"names":["main","document","querySelector","tornmeny","getElementById","let","map","markers","latestZoomFactor","isIntersectingFooter","isIntersectingCTA","intresseanmalanForm","elements","setupTriggers","kartor","hamtaSvgRaknare","slideShow","$","slick","arrows","dots","speed","fade","prevArrow","nextArrow","autoplay","mobileFirst","window","addEventListener","af","initSlideshow","initieraKarta","karta","latitud","value","longitud","skapaKarta","google","maps","ControlPosition","RIGHT_CENTER","lokaler","querySelectorAll","markeraLokaler","ikonLokalSekundar","getZoom","event","addListener","mapZoom","zoomLevelForAttVisaAntal","updateMarkers","setHeightInPercentForMobile","hanteraScrollSnap","doljCTAVidScroll","cta","sticky","IntersectionObserver","entries","observer","entry","isIntersecting","classList","add","boundingClientRect","top","remove","observe","getScreenWidth","enableScrollSnapMandatoryIfAllChildHasWindowHeight","gomVisaTornmeny","fitbounds","i","length","setMap","setCenter","LatLng","dataset","setZoom","resizeFunctions","footer","forEach","rootMargin","ctaVaning","sidfotObserver","link","hash","e","this","element","slice","preventDefault","scrollToElement","knapp","displayElement","elementid","registreraIntresseanmalan","id","target","resultatDiv","valid","formular","formularData","FormData","get","url","action","ajax","cache","contentType","processData","type","data","success","response","innerHTML","setAttribute","scrollTo","offsetTop","behavior","_mtm","push","category","error","el"],"mappings":"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"}