{"version":3,"file":"lokallistasida.min.js","sources":["lokallistasida.js"],"sourcesContent":["'use strict';\r\n\r\n(function () {\r\n let map;\r\n let checked = [];\r\n let markers = [];\r\n const allkeys = ['omraden', 'lokaltyp', 'yta', 'arbetsplatser', 'egenskaper'];\r\n let eventZoomChanged;\r\n let latestZoomFactor;\r\n\r\n kartor.hamtaSvgRaknare();\r\n lokalFilter();\r\n\r\n var queryParams = new URLSearchParams(window.location.search);\r\n if (queryParams.has('karta') && document.getElementById('map')) {\r\n kartor.initieraKarta(initMap);\r\n } else {\r\n kartor.initieraKarta(function () { });\r\n }\r\n\r\n hanteraFlikKlick();\r\n filterEvents();\r\n\r\n function addZoomChangeEvent() {\r\n eventZoomChanged = google.maps.event.addListener(map, 'zoom_changed', function () {\r\n \r\n\r\n const mapZoom = map.getZoom();\r\n if (mapZoom > latestZoomFactor && latestZoomFactor <= kartor.zoomLevelForAttVisaAntal && mapZoom > kartor.zoomLevelForAttVisaAntal) {\r\n updateMarkersOnZoomChange();\r\n }\r\n else if (mapZoom < latestZoomFactor && latestZoomFactor > kartor.zoomLevelForAttVisaAntal && mapZoom <= kartor.zoomLevelForAttVisaAntal) {\r\n updateMarkersOnZoomChange();\r\n\r\n }\r\n\r\n latestZoomFactor = map.getZoom();\r\n });\r\n }\r\n\r\n function removeZoomChangeEvent() {\r\n google.maps.event.removeListener(eventZoomChanged);\r\n }\r\n\r\n function updateUrlInHistoryForMap() {\r\n var queryParams = new URLSearchParams(window.location.search);\r\n\r\n if (document.querySelector('.flik-karta').classList.contains('active')) {\r\n if (!queryParams.has('karta')) {\r\n queryParams.set('karta', 1);\r\n }\r\n } else {\r\n if (queryParams.has('karta')) {\r\n queryParams.delete('karta');\r\n }\r\n }\r\n\r\n history.replaceState(null, null, '?' + queryParams.toString());\r\n }\r\n\r\n function lokalFilter() {\r\n const lokaler = $('.card-lokal');\r\n const taggdiv = document.getElementById('filter-taggar');\r\n const antalspan = document.querySelectorAll('.filter-antal span');\r\n const checkboxes = document.querySelectorAll('.form-check');\r\n initFilter();\r\n\r\n hanteraCheckboxar();\r\n visaAntalPerVal();\r\n\r\n function hanteraCheckboxar() {\r\n\r\n checkboxes.forEach(checkbox => {\r\n const input = checkbox.querySelector('input');\r\n const label = checkbox.querySelector('label');\r\n\r\n let paramValues = new URLSearchParams(window.location.search).get(input.name);\r\n\r\n if (paramValues) {\r\n if (paramValues.split('-').includes(input.value)) {\r\n input.checked = true;\r\n filtreraLokaler(input, label);\r\n }\r\n }\r\n\r\n input.addEventListener('change',\r\n function() {\r\n filtreraLokaler(input, label);\r\n updateUrlInHistory(input);\r\n });\r\n\r\n label.addEventListener('click',\r\n function(e) {\r\n e.preventDefault();\r\n input.checked = !input.checked;\r\n input.dispatchEvent(new Event('change'));\r\n });\r\n });\r\n }\r\n \r\n function updateUrlInHistory(input) {\r\n var queryParams = new URLSearchParams(window.location.search);\r\n\r\n if (input.checked) {\r\n if (!queryParams.has(input.name)) {\r\n queryParams.set(input.name, input.value);\r\n } else if (!queryParams.get(input.name).split('-').includes(input.value)) {\r\n queryParams.set(input.name, queryParams.get(input.name) + '-' + input.value);\r\n }\r\n } else {\r\n if (queryParams.has(input.name)) {\r\n let values = queryParams.get(input.name).split('-');\r\n\r\n var index = values.indexOf(input.value);\r\n if (index !== -1) {\r\n values.splice(index, 1);\r\n }\r\n\r\n if (values.length === 0) {\r\n queryParams.delete(input.name);\r\n } else {\r\n queryParams.set(input.name, values.join('-'));\r\n }\r\n } \r\n }\r\n\r\n history.replaceState(null, null, '?' + queryParams.toString());\r\n\r\n updateUrlInHistoryForMap();\r\n }\r\n\r\n function filtreraLokaler(input, label) {\r\n const checkitem = `${input.name}-${input.value}`;\r\n\r\n\r\n if (input.checked) {\r\n if (!checked.includes(checkitem)) {\r\n laggTillTagg(label);\r\n checked.push(checkitem);\r\n }\r\n }\r\n else {\r\n taBortTagg(label.htmlFor);\r\n checked = checked.filter(x => x !== checkitem);\r\n }\r\n\r\n lokaler\r\n .addClass('d-none')\r\n \r\n .filterByKeys(allkeys)\r\n .removeClass('d-none');\r\n\r\n\r\n visaTotaltAntal();\r\n visaAntalPerVal(input.name);\r\n if (map) {\r\n updateMarkers();\r\n }\r\n $('.sidhuvud-slideshow').slick('refresh');\r\n }\r\n\r\n function laggTillTagg(label) {\r\n const span = document.createElement('span');\r\n\r\n span.classList.add(label.htmlFor);\r\n span.innerHTML = label.innerHTML;\r\n span.addEventListener('click', function () {\r\n taggKlickad(span);\r\n });\r\n taggdiv.append(span);\r\n }\r\n\r\n function taBortTagg(query) {\r\n const tagg = taggdiv.querySelector('.' + query);\r\n if (tagg) {\r\n tagg.remove();\r\n }\r\n }\r\n\r\n function taggKlickad(span) {\r\n const id = span.classList[0];\r\n const input = $(`.lokal-filter:not(d-none) #${id}`);\r\n\r\n input.prop('checked', false);\r\n input[0].dispatchEvent(new Event('change'));\r\n }\r\n\r\n function visaTotaltAntal() {\r\n const antal = hamtaValdaLokaler().length;\r\n antalspan.forEach(span => {\r\n span.textContent = antal;\r\n });\r\n }\r\n\r\n function visaAntalPerVal(name = null) {\r\n const checkedInputs = document.querySelectorAll(`input[name=${name}]:checked`);\r\n const valdaLokaler = hamtaValdaLokaler();\r\n\r\n checkboxes.forEach(checkbox => {\r\n const input = checkbox.querySelector('input');\r\n const span = checkbox.querySelector('.visa-antal');\r\n\r\n if (!(input.name === name && checkedInputs.length)) {\r\n const count = Array.from(valdaLokaler).filter(lokal => {\r\n const data = lokal.getAttribute('data-' + input.name);\r\n if (input.name === 'egenskaper' || input.name === 'yta' || input.name === 'arbetsplatser') {\r\n const datalist = data.split(',');\r\n return datalist.indexOf(input.value) > -1;\r\n }\r\n return data === input.value;\r\n }).length;\r\n\r\n if (span) {\r\n span.textContent = `(${count})`;\r\n }\r\n }\r\n });\r\n }\r\n\r\n function initFilter() {\r\n $.fn.filterByKeys = function (keys = allkeys) {\r\n let filtered = this;\r\n\r\n keys.forEach(key => {\r\n\r\n filtered = filtered.filterByData(key);\r\n });\r\n return filtered;\r\n };\r\n\r\n $.fn.filterByData = function (key) {\r\n const checkedList = checked.filter(c => c.indexOf(key) > -1);\r\n checkedList.forEach(c => {\r\n\r\n });\r\n return this.filter(function () {\r\n if (checkedList.length) {\r\n \r\n const data = this.getAttribute(`data-${key}`);\r\n\r\n if (key === 'yta' || key === 'arbetsplatser') {\r\n\r\n const datalist = data.split(',').map(d => d ? `${key}-${d}` : d);\r\n Array.prototype.remove = function () {\r\n var rem, a = arguments, L = a.length, ax;\r\n while (L && this.length) {\r\n rem = a[--L];\r\n while ((ax = this.indexOf(rem)) !== -1) {\r\n this.splice(ax, 1);\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n datalist.remove('yta-3');\r\n datalist.remove('arbetsplats-3');\r\n \r\n\r\n return checkedList.some(r => datalist.includes(r))\r\n\r\n }\r\n if (key === 'egenskaper' ) {\r\n\r\n const datalist = data.split(',').map(d => d ? `${key}-${d}` : d);\r\n\r\n\r\n return checkedList.every(c => datalist.indexOf(c) > -1);\r\n }\r\n\r\n return checkedList.indexOf(`${key}-${data}`) > -1;\r\n }\r\n return true;\r\n });\r\n };\r\n }\r\n }\r\n\r\n function hamtaValdaLokaler() {\r\n return document.querySelectorAll('.row-lista .card-lokal:not(.d-none)');\r\n }\r\n\r\n function hanteraFlikKlick() {\r\n const flikar = $('.flik');\r\n const divar = $('.row-lista, .row-karta, .lokal-lista-sida .consent-banner');\r\n\r\n let paramValue = new URLSearchParams(window.location.search).get('karta');\r\n\r\n if (paramValue) {\r\n flikar.toggleClass('active');\r\n divar.toggleClass('d-none');\r\n }\r\n\r\n flikar.on('click', function () {\r\n if (this.classList.contains('active') === false) {\r\n flikar.toggleClass('active');\r\n divar.toggleClass('d-none');\r\n if (document.querySelector('.row-karta:not(.d-none')) {\r\n\r\n if (map) {\r\n if (map.getZoom() === 0) {\r\n updateMarkers(true);\r\n }\r\n \r\n } else {\r\n initMap();\r\n }\r\n }\r\n updateUrlInHistoryForMap();\r\n\r\n $('.sidhuvud-slideshow').slick('refresh');\r\n }\r\n });\r\n }\r\n\r\n function initMap() {\r\n const lokaler = hamtaValdaLokaler();\r\n const unikaLokaler = kartor.hamtaUnikaLokaler(lokaler);\r\n let fitBounds = true;\r\n if (unikaLokaler.length === 1) {\r\n map = kartor.skapaKarta(document.getElementById('map'), lokaler[0].dataset.latitud, lokaler[0].dataset.longitud, 16);\r\n fitBounds = false;\r\n } else {\r\n map = kartor.skapaKarta(document.getElementById('map'));\r\n }\r\n\r\n removeMarkers();\r\n\r\n markers = kartor.markeraLokaler(map, lokaler, markers, fitBounds, kartor.ikonLokalPrimar);\r\n latestZoomFactor = map.getZoom();\r\n addZoomChangeEvent();\r\n }\r\n\r\n \r\n\r\n function updateMarkers() {\r\n const lokaler = hamtaValdaLokaler();\r\n let fitbounds = true;\r\n removeZoomChangeEvent();\r\n\r\n removeMarkers();\r\n markers = kartor.markeraLokaler(map, lokaler, markers, fitbounds, kartor.ikonLokalPrimar);\r\n\r\n if (markers.length === 1) {\r\n\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 addZoomChangeEvent();\r\n\r\n if (latestZoomFactor !== map.getZoom()) {\r\n updateMarkersOnZoomChange();\r\n latestZoomFactor = map.getZoom();\r\n }\r\n\r\n }\r\n\r\n function updateMarkersOnZoomChange() {\r\n const lokaler = hamtaValdaLokaler();\r\n\r\n removeMarkers();\r\n markers = kartor.markeraLokaler(map, lokaler, markers, false, kartor.ikonLokalPrimar);\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 filterEvents() {\r\n const elements = document.querySelectorAll('[data-dropdown-trigger-event]');\r\n\r\n if (elements.length === 0) return\r\n\r\n const setupTriggers = (el) => {\r\n const checkboxes = el.nextElementSibling.querySelectorAll('[type=\"checkbox\"]');\r\n\r\n let data = (label) => {\r\n return {\r\n 'event': 'Filter',\r\n 'category': `Filter lediga lokaler - ${el.innerText.toLowerCase()}`,\r\n 'action': 'Click',\r\n 'label': `${label}`\r\n }\r\n }\r\n\r\n checkboxes.forEach(el2 => {\r\n el2.addEventListener('change', () => {\r\n window._mtm.push(data(el2.nextElementSibling.innerText))\r\n })\r\n })\r\n }\r\n\r\n elements.forEach(setupTriggers)\r\n }\r\n\r\n\r\n})();\r\n\r\n\r\n"],"names":["let","map","checked","markers","allkeys","eventZoomChanged","latestZoomFactor","kartor","hamtaSvgRaknare","lokalFilter","lokaler","$","taggdiv","document","getElementById","antalspan","querySelectorAll","checkboxes","filtreraLokaler","input","label","checkitem","name","value","includes","laggTillTagg","span","createElement","classList","add","htmlFor","innerHTML","addEventListener","taggKlickad","id","prop","dispatchEvent","Event","append","push","query","tagg","querySelector","remove","filter","x","addClass","filterByKeys","removeClass","visaTotaltAntal","antal","hamtaValdaLokaler","length","forEach","textContent","visaAntalPerVal","updateMarkers","slick","checkedInputs","valdaLokaler","checkbox","count","Array","from","lokal","data","getAttribute","split","indexOf","fn","keys","filtered","this","key","filterByData","checkedList","c","datalist","d","prototype","rem","ax","a","arguments","L","splice","some","r","every","paramValues","URLSearchParams","window","location","search","get","updateUrlInHistory","values","index","queryParams","has","set","delete","join","history","replaceState","toString","updateUrlInHistoryForMap","e","preventDefault","setupTriggers","initieraKarta","initMap","hanteraFlikKlick","flikar","divar","paramValue","toggleClass","on","contains","getZoom","addZoomChangeEvent","google","maps","event","addListener","mapZoom","zoomLevelForAttVisaAntal","updateMarkersOnZoomChange","fitBounds","hamtaUnikaLokaler","skapaKarta","dataset","latitud","longitud","removeMarkers","markeraLokaler","ikonLokalPrimar","removeListener","setCenter","LatLng","setZoom","i","setMap","elements","el","nextElementSibling","el2","_mtm","innerText","category","toLowerCase","action"],"mappings":"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"}