{"mappings":"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","sources":["src/js/utils.js","src/js/extendBaseLayerControl.js","src/js/extendMessageControl.js","src/js/extendDisplayLayerTransparency.js","src/js/extendDisplayLayerGetFeatureInfo.js","src/js/extendDisplayLayerControl.js","src/js/dawa/extendSearchMultiple.js","src/js/dawa/parse.js","src/js/dawa/extendSearchSingle.js","src/js/dawa/extendLeaflet.js","src/js/dawa/init.js","src/js/dawa/index.js","src/index.js","node_modules/@swc/helpers/src/_class_call_check.js"],"sourcesContent":["/**\r\n * Creates a new DOM element with the supplied attributes.\r\n * @param {String} type The type of element to create. E.g. 'div', 'input'..\r\n * @param {Object} attributes An object with the attrbutes to attach to the element.\r\n * @return {!HTMLElement} A new DOM element with the supplied attributes.\r\n */\r\nfunction createElement(type, attributes) {\r\n const element = document.createElement(type);\r\n if (!attributes) { return element; }\r\n\r\n const properties = Object.keys(attributes);\r\n\r\n for (let i = 0; i < properties.length; i += 1) {\r\n element.setAttribute(properties[i], attributes[properties[i]]);\r\n }\r\n\r\n return element;\r\n}\r\n\r\n\r\n/**\r\n * Removes all the children attached to the element.\r\n * @param {HTMLElement} element The element whose children will be removed.\r\n * @return {!HTMLElement} The original element with its children removed.\r\n */\r\nfunction clearChildren(element) {\r\n while (element.firstChild) element.removeChild(element.firstChild);\r\n return element;\r\n}\r\n\r\n/**\r\n * Gets the attributes of an element as an object.\r\n * @param {Element} element The element whose attributes to get.\r\n * @return {!Object} An object whose keys are the attribute keys and whose\r\n * values are the attribute values. If no attributes exist, an empty\r\n * object is returned.\r\n */\r\nfunction getAttributes(element) {\r\n const attrs = {};\r\n\r\n // Validate input. nodeType 1 is Node.ELEMENT_NODE.\r\n if (!(element && element.nodeType === 1)) return attrs;\r\n\r\n // Return an empty object if there are no attributes.\r\n const map = element.attributes;\r\n if (map.length === 0) return {};\r\n\r\n for (let i = 0; i < map.length; i += 1) {\r\n const attribute = map[i];\r\n attrs[attribute.name] = attribute.value;\r\n }\r\n return attrs;\r\n}\r\n\r\n/**\r\n * Method that checks whether cls is present in element object.\r\n * @param {Object} element DOM element which needs to be checked\r\n * @param {Object} _class Classname is tested\r\n * @return {Boolean} True if cls is present, false otherwise.\r\n */\r\nfunction hasClass(element, _class) {\r\n return element.getAttribute('class').indexOf(_class) > -1;\r\n}\r\n\r\n\r\n/**\r\n * Takes an element and removes all instances of a class from the element\r\n * and all of its children.\r\n * @param {HTMLElement} parent The parent and its children who will have class removed.\r\n * @param {String} classToRemove The class which will be removed. No '.' should be used.\r\n * @return {!HTMLElement} The original parent, now with the specified class removed.\r\n */\r\nfunction clearClass(parent, classToRemove) {\r\n const elements = parent.getElementsByClassName(classToRemove);\r\n\r\n for (let i = 0; i < elements.length; i += 1) {\r\n const element = elements[i];\r\n element.classList.remove(classToRemove);\r\n }\r\n\r\n return parent;\r\n}\r\n\r\n\r\n/**\r\n * Takes an element and removes all instances of a class from the element\r\n * and all of its children.\r\n * @param {HTMLElement} parent The parent and its children who will have class removed.\r\n * @param {String} classToRemove The class which will be removed. No '.' should be used.\r\n * @return {!HTMLElement} The original parent, now with the specified class removed.\r\n */\r\nfunction clearClassQ(parent, classToRemove) {\r\n const elements = parent.querySelectorAll(`.${classToRemove}`);\r\n\r\n for (let i = 0; i < elements.length; i += 1) {\r\n const element = elements[i];\r\n element.classList.remove(classToRemove);\r\n }\r\n\r\n return parent;\r\n}\r\n\r\n/**\r\n * Takes a URL, creates a GET requests and returns the data in a callback.\r\n * It is possible to include context with request.\r\n * @param {String} url The URL which will be requested.\r\n * @param {Function} callback The function which will be called when the request is completed.\r\n * The callback will have the format (false, response, context) if succeeeded.\r\n * The callback will have the format (true, error, context) if failed or aborted.\r\n * @param {Any} context A context which will be return when the call is completed.\r\n * @return {!HTMLElement} The XMLHttpRequest, with all its prototypes. Meaning that it is abortable.\r\n */\r\nfunction get(url, callback, context) {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.onreadystatechange = function onreadystatechange() {\r\n if (this.readyState === 4 && this.status === 200) {\r\n callback(false, this.responseText, context);\r\n }\r\n };\r\n\r\n xhr.onerror = function onerror(err) { callback(err, null, context); };\r\n xhr.onabort = function onabort(msg) { callback(msg, null, context); };\r\n\r\n xhr.open('GET', url, true);\r\n\r\n // xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\r\n\r\n xhr.send();\r\n\r\n return xhr;\r\n}\r\n\r\nfunction createGeojsonPoint(properties, coordinates) {\r\n return {\r\n type: 'Feature',\r\n properties,\r\n geometry: {\r\n type: 'Point',\r\n coordinates,\r\n },\r\n };\r\n}\r\n\r\nfunction setCookie(n, v, h) {\r\n const d = new Date();\r\n d.setTime(d.getTime() + (h * 60 * 60 * 1000));\r\n const e = `expires=${d.toUTCString()}`;\r\n document.cookie = `${n}=${v};${e};path=/`;\r\n}\r\n\r\nfunction getCookie(cname) {\r\n const name = `${cname}=`;\r\n const decodedCookie = decodeURIComponent(document.cookie);\r\n const ca = decodedCookie.split(';');\r\n for (let i = 0; i < ca.length; i += 1) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return '';\r\n}\r\n\r\n/* eslint-disable */\r\nfunction getQueryString() {\r\n const res = {};\r\n let key = false;\r\n let itm = null;\r\n // get the query string without the ?\r\n const qs = location.search.substring(1);\r\n // check for the key as an argument\r\n if (arguments.length > 0 && arguments[0].length > 1) { key = arguments[0]; }\r\n // make a regex pattern to grab key/value\r\n const pattern = /([^&=]+)=([^&]*)/g;\r\n // loop the items in the query string, either\r\n // find a match to the argument, or build an object\r\n // with key/value pairs\r\n while (itm = pattern.exec(qs)) {\r\n if (key !== false && decodeURIComponent(itm[1]) === key) {\r\n return decodeURIComponent(itm[2]);\r\n } else if (key === false) {\r\n res[decodeURIComponent(itm[1])] = decodeURIComponent(itm[2]);\r\n }\r\n }\r\n\r\n return key === false ? res : null;\r\n}\r\n/* eslint-enable */\r\n\r\nexport {\r\n createElement,\r\n createGeojsonPoint,\r\n clearChildren,\r\n clearClass,\r\n clearClassQ,\r\n getAttributes,\r\n get,\r\n getQueryString,\r\n getCookie,\r\n setCookie,\r\n hasClass,\r\n};\r\n","import * as DOM from './utils';\r\n\r\nexport default function baseLayerControl(leaflet) {\r\n const { baseLayers, overlayLayers } = this.config;\r\n const { layerGroup, tileLayer } = leaflet;\r\n\r\n const tilepane = document.querySelector('.leaflet-pane .leaflet-tile-pane');\r\n\r\n const el = {\r\n control: DOM.createElement('div', { id: 'baseLayerControl' }),\r\n baseLayerContainer: DOM.createElement('div', { class: 'baseLayerContainer' }),\r\n baseLayerList: DOM.createElement('ul', { class: 'baseLayerList' }),\r\n divider: DOM.createElement('div', { class: 'divider' }),\r\n overlayLayerContainer: DOM.createElement('div', { class: 'overlayLayerContainer' }),\r\n overlayLayerList: DOM.createElement('ul', { class: 'overlayLayerList' }),\r\n };\r\n\r\n el.baseLayerContainer.appendChild(el.baseLayerList);\r\n el.overlayLayerContainer.appendChild(el.overlayLayerList);\r\n el.control.appendChild(el.baseLayerContainer);\r\n el.control.appendChild(el.divider);\r\n el.control.appendChild(el.overlayLayerContainer);\r\n\r\n this.state.baseLayersGroup = layerGroup().addTo(this.map);\r\n this.state.overlayLayersGroup = layerGroup().addTo(this.map);\r\n\r\n el.control.addEventListener('click', (e) => {\r\n if (e.target && e.target.nodeName === 'LI') {\r\n const item = e.target;\r\n const selected = DOM.hasClass(item, 'selected');\r\n const type = item.getAttribute('type');\r\n const rowID = item.getAttribute('rowID');\r\n const greyscale = item.getAttribute('greyscale');\r\n const background = item.getAttribute('background');\r\n\r\n if (type === 'baseLayer') {\r\n if (selected) { return; }\r\n if (greyscale === 'true') { tilepane.classList.add('grayscale'); } else { tilepane.classList.remove('grayscale'); }\r\n DOM.clearClassQ(el.baseLayerList, 'selected');\r\n item.classList.add('selected');\r\n item.firstChild.classList.add('selected');\r\n this.state.baseLayersGroup.clearLayers();\r\n this.state.baseLayersGroup.addLayer(this.state.baseLayers[rowID]);\r\n } else if (selected) {\r\n item.classList.remove('selected');\r\n item.firstChild.classList.remove('selected');\r\n this.state.overlayLayersGroup.removeLayer(this.state.overlayLayers[rowID]);\r\n } else {\r\n DOM.clearClass(el.overlayLayerList, 'selected');\r\n item.classList.add('selected');\r\n item.firstChild.classList.add('selected');\r\n this.state.overlayLayersGroup.addLayer(this.state.overlayLayers[rowID]);\r\n }\r\n if (background) { this._elements.map.style.background = background; }\r\n }\r\n });\r\n\r\n let baseLayerAdded = false;\r\n for (let i = 0; i < baseLayers.length; i += 1) {\r\n const baseLayer = baseLayers[i];\r\n const item = DOM.createElement('li', {\r\n class: 'layer', rowID: i, type: 'baseLayer', greyscale: baseLayer.greyscale, background: baseLayer.background,\r\n });\r\n const radio = DOM.createElement('div', { class: 'radio' });\r\n const text = DOM.createElement('span');\r\n text.innerText = baseLayer.name;\r\n\r\n let layer;\r\n if (baseLayer.wms) {\r\n layer = tileLayer.wms((baseLayer.url), baseLayer.options);\r\n } else {\r\n layer = tileLayer((baseLayer.url), baseLayer.options);\r\n }\r\n\r\n if (!baseLayerAdded && baseLayer.default) {\r\n baseLayerAdded = true;\r\n this.state.baseLayersGroup.addLayer(layer);\r\n item.classList.add('selected');\r\n radio.classList.add('selected');\r\n if (baseLayer.greyscale === true) { tilepane.classList.add('grayscale'); }\r\n }\r\n\r\n this.state.baseLayers.push(layer);\r\n\r\n item.appendChild(radio);\r\n item.appendChild(text);\r\n\r\n el.baseLayerList.appendChild(item);\r\n }\r\n\r\n for (let j = 0; j < overlayLayers.length; j += 1) {\r\n const overlayLayer = overlayLayers[j];\r\n const item = DOM.createElement('li', { class: 'layer', rowID: j, type: 'ovelayLayer' });\r\n const checkbox = DOM.createElement('div', { class: 'checkbox' });\r\n const text = DOM.createElement('span');\r\n text.innerText = overlayLayer.name;\r\n\r\n let layer;\r\n if (overlayLayer.wms) {\r\n layer = tileLayer.wms((overlayLayer.url), overlayLayer.options);\r\n } else {\r\n layer = tileLayer((overlayLayer.url), overlayLayer.options);\r\n }\r\n\r\n if (overlayLayer.default) {\r\n this.state.overlayLayersGroup.addLayer(layer);\r\n item.classList.add('selected');\r\n checkbox.classList.add('selected');\r\n }\r\n\r\n this.state.overlayLayers.push(layer);\r\n\r\n item.appendChild(checkbox);\r\n item.appendChild(text);\r\n\r\n el.overlayLayerList.appendChild(item);\r\n }\r\n\r\n if (overlayLayers.length === 0) { el.divider.style.display = 'none'; }\r\n this._elements.baseLayerControl = el.control;\r\n this._elements.interface.appendChild(el.control);\r\n\r\n // mobile button\r\n const mobEl = {\r\n container: DOM.createElement('div', { id: 'baseLayerControl-mobile' }),\r\n };\r\n\r\n mobEl.container.addEventListener('click', () => {\r\n if (this._elements.baseLayerControl.style.display === '' || this._elements.baseLayerControl.style.display === 'none') {\r\n this._elements.baseLayerControl.style.display = 'block';\r\n if (this._elements.displayLayerControl.style.display === 'block') {\r\n this._elements.displayLayerControl.style.display = 'none';\r\n }\r\n } else {\r\n this._elements.baseLayerControl.style.display = 'none';\r\n }\r\n });\r\n this._elements.interface.appendChild(mobEl.container);\r\n}\r\n","import * as DOM from './utils';\r\n\r\nexport default function addMessageControl(parent) {\r\n const el = {\r\n container: DOM.createElement('div', { id: 'messageControl' }),\r\n text: DOM.createElement('span', { class: 'message' }),\r\n };\r\n\r\n el.text.innerText = `${this.config.opdateret}`;\r\n el.container.appendChild(el.text);\r\n\r\n parent.appendChild(el.container);\r\n}\r\n","import * as DOM from './utils';\r\n\r\nexport default function addDisplayLayerTransparency(layerGroup, transparencyContainer, displayLayerContainer) {\r\n const transparencyFragment = document.createDocumentFragment();\r\n\r\n const selection = [\r\n { value: 0, text: '100%' },\r\n { value: 0.25, text: '75%' },\r\n { value: 0.50, text: '50%' },\r\n { value: 0.75, text: '25%' },\r\n { value: 1, text: 'Off' },\r\n ];\r\n\r\n const heading = DOM.createElement('span', { class: 'heading' });\r\n heading.innerText = 'Gennemsigtighed';\r\n transparencyFragment.appendChild(heading);\r\n\r\n selection.forEach((transEl) => {\r\n const div = DOM.createElement('div', { class: 'transparency', value: transEl.value });\r\n if (this.config.initialDisplayLayerOpacity === transEl.value) { div.classList.add('selected'); }\r\n const text = DOM.createElement('span');\r\n text.innerText = transEl.text;\r\n div.appendChild(text);\r\n transparencyFragment.appendChild(div);\r\n });\r\n\r\n transparencyContainer.addEventListener('click', (e) => {\r\n if (e.target) {\r\n let el;\r\n if (e.target.classList.contains('transparency')) {\r\n el = e.target;\r\n } else if (e.target.parentElement.classList.contains('transparency')) {\r\n el = e.target.parentElement;\r\n } else {\r\n return;\r\n }\r\n\r\n const value = Number(el.getAttribute('value'));\r\n\r\n this.config.initialDisplayLayerOpacity = value;\r\n const icons = displayLayerContainer.querySelectorAll('.layerIcon');\r\n for (let i = 0; i < icons.length; i += 1) { icons[i].style.opacity = value; }\r\n\r\n DOM.clearClass(transparencyContainer, 'selected');\r\n el.classList.add('selected');\r\n layerGroup.eachLayer((layer) => {\r\n if (layer.options.pointToLayer) {\r\n layer.setStyle({ fillOpacity: value });\r\n } else {\r\n layer.setOpacity(value);\r\n }\r\n });\r\n }\r\n });\r\n\r\n transparencyContainer.appendChild(transparencyFragment);\r\n}\r\n","import * as DOM from './utils';\r\n\r\nexport default function addDisplayLayerGetFeatureInfo(leaflet) {\r\n const IconOptions = leaflet.Icon.extend({\r\n options: {\r\n iconSize: [32, 32],\r\n iconAnchor: [16, 32],\r\n },\r\n });\r\n\r\n // Icon based on: \"https://www.flaticon.com/authors/elegant-themes\" \"https://www.flaticon.com/\" \"http://creativecommons.org/licenses/by/3.0/\"\r\n const icon = new IconOptions({ iconUrl: './static/markers/marker.svg' });\r\n\r\n let tip = false;\r\n let request = false;\r\n\r\n this.map.on('click', (e) => {\r\n if (tip) { tip.closeTooltip(); this.map.removeLayer(tip); tip = false; }\r\n const { selectedDisplayLayer } = this.state;\r\n const { latlng } = e;\r\n const { lat, lng } = latlng;\r\n this.state.lastClick = latlng;\r\n\r\n const systems = (selectedDisplayLayer.systems) ? selectedDisplayLayer.systems.toString() : 'GSM,UMTS,LTE,NR';\r\n const url = `${this.config.connections.feature}layers=${selectedDisplayLayer.query}&bbox=${lng},${lat},${lng},${lat}&layerType=MapTiles&systems=${systems}&usages=${selectedDisplayLayer.usage}`;\r\n\r\n if (request) { request.abort(); }\r\n request = DOM.get(url, (requestError, response) => {\r\n if (requestError) {\r\n if (response.type === 'abort') { return; } console.error(response); return;\r\n }\r\n request = false;\r\n try {\r\n const data = JSON.parse(response);\r\n\r\n let string = 'Ingen info';\r\n\r\n if (data.length === 1) { string = `${data[0]}`; }\r\n if (data.length === 2) { string = `${data[0]}${data[1]}`; }\r\n if (data.length === 3) { string = `${data[0]}${data[1]}${data[2]}`; }\r\n if (data.length === 4) { string = `${data[0]}${data[1]}${data[2]}${data[3]}`; }\r\n\r\n string = string.replace(/\"/g, '');\r\n\r\n tip = leaflet.marker(latlng, { icon });\r\n tip.bindTooltip(string, {\r\n permanent: true,\r\n offset: leaflet.point(0, -20),\r\n }).openTooltip();\r\n tip.addTo(this.map);\r\n } catch (parseError) {\r\n console.error(parseError);\r\n }\r\n });\r\n });\r\n}\r\n","import * as DOM from './utils';\r\nimport addDisplayLayerTransparency from './extendDisplayLayerTransparency';\r\nimport addDisplayLayerGetFeatureInfo from './extendDisplayLayerGetFeatureInfo';\r\n// import '../static/leaflet.markercluster';\r\n\r\nconst temaURI = DOM.getQueryString().tema;\r\n\r\nexport default function displayLayerControl(leaflet) {\r\n const {\r\n layerGroup,\r\n tileLayer,\r\n } = leaflet;\r\n const {\r\n config,\r\n map,\r\n state,\r\n } = this;\r\n const displayedLayer = layerGroup().addTo(map);\r\n\r\n map.createPane('displayLayers');\r\n map.getPane('displayLayers').style.zIndex = 300;\r\n\r\n const el = {\r\n control: DOM.createElement('div', {\r\n id: 'displayLayerControl',\r\n }),\r\n displayLayerContainer: DOM.createElement('div', {\r\n class: 'displayLayerContainer',\r\n }),\r\n divider: DOM.createElement('div', {\r\n class: 'divider',\r\n }),\r\n transparencyContainer: DOM.createElement('div', {\r\n class: 'transparencyContainer',\r\n }),\r\n };\r\n\r\n el.control.appendChild(el.displayLayerContainer);\r\n el.control.appendChild(el.divider);\r\n el.control.appendChild(el.transparencyContainer);\r\n\r\n window.app.state.initialised = false;\r\n\r\n const layerEvents = (e) => {\r\n if (e.target && (e.target.nodeName === 'LI' || e.target.parentElement.nodeName === 'LI')) {\r\n const target = (e.target.nodeName === 'LI') ? e.target : e.target.parentElement;\r\n if (window.app.state.initialised === true && DOM.hasClass(target, 'selectedLayer')) {\r\n return;\r\n }\r\n DOM.clearClassQ(el.displayLayerContainer, 'selectedLayer');\r\n target.classList.add('selectedLayer');\r\n\r\n const _groupID = Number(target.getAttribute('groupID'));\r\n const _layerID = Number(target.getAttribute('layerID'));\r\n\r\n const container = target.parentElement.parentElement;\r\n const header = container.querySelector('.groupHeader');\r\n header.setAttribute('previous', _layerID);\r\n\r\n const displayLayer = state.displayLayers[_groupID][_layerID];\r\n state.selectedDisplayLayer = config.displayLayers[_groupID].layers[_layerID];\r\n displayLayer.setOpacity(config.initialDisplayLayerOpacity);\r\n displayedLayer.clearLayers();\r\n displayedLayer.addLayer(displayLayer);\r\n\r\n if (state.lastClick) {\r\n map.fireEvent('click', {\r\n latlng: state.lastClick,\r\n layerPoint: map.latLngToLayerPoint(state.lastClick),\r\n containerPoint: map.latLngToContainerPoint(state.lastClick),\r\n });\r\n }\r\n\r\n if (state.selectedDisplayLayer.geojson) {\r\n const geojsonURL = `${config.connections.geojson}${state.selectedDisplayLayer.geojsonName}&Ticket=${config.ticket}`;\r\n // const geojsonURL = './static/testJson.json';\r\n DOM.get(geojsonURL, (err, response) => {\r\n if (err) {\r\n console.error(err);\r\n return;\r\n }\r\n let json = response;\r\n\r\n if (typeof response === 'string') {\r\n try {\r\n json = JSON.parse(response);\r\n } catch (parseErr) {\r\n console.error(parseErr);\r\n return;\r\n }\r\n }\r\n // console.log({json});\r\n // debugger;\r\n let driftMarkers;\r\n if (leaflet.markerClusterGroup) {\r\n driftMarkers = leaflet.markerClusterGroup({\r\n polygonOptions: config.style.driftMarker,\r\n });\r\n } else {\r\n driftMarkers = leaflet.markerClusterGroup({\r\n polygonOptions: config.style.driftMarker,\r\n });\r\n }\r\n\r\n const malformedPoints = [];\r\n\r\n for (let i = 0; i < json.features.length; i += 1) {\r\n const point = json.features[i];\r\n // console.log('point const ', point);\r\n if (point.geometry && point.geometry.coordinates) {\r\n let marker = leaflet.circleMarker(point.geometry.coordinates.slice().reverse(), config.style.driftMarker);\r\n\r\n let displayString = '';\r\n for (let z = 0; z < config.geojsonFields.length; z += 1) {\r\n displayString += `${point.properties[config.geojsonFields[z]]}`;\r\n }\r\n // console.log('json_parsed', displayString);\r\n\r\n // remove link \r\n // if (window.config.displayFaso === true) {\r\n // const fasId = point.properties.TT_URL.split('case_id=')[1].split(' ')[0];\r\n // const fasLink = `Yderligere information`;\r\n // displayString += fasLink;\r\n // }\r\n\r\n let popupContent = document.createElement('div');\r\n popupContent.innerHTML = displayString\r\n .replace(/\\n{2,}/g, '
') // Replace consecutive \"\\n\" with
\r\n .replace(/\\n/g, '
'); // Replace remaining \"\\n\" with
// disable link\r\n\r\n // console.log('popupcontent', popupContent.innerHTML)\r\n\r\n if (point.properties) {\r\n marker.bindPopup(popupContent, {\r\n closeButton: true,\r\n autoClose: false,\r\n });\r\n marker.on('mouseover', (e) => {\r\n map.closePopup();\r\n //console.log(e);\r\n e.target.openPopup();\r\n \r\n });\r\n }\r\n\r\n driftMarkers.addLayer(marker);\r\n } else {\r\n malformedPoints.push(point);\r\n }\r\n }\r\n\r\n if (malformedPoints.length > 0) {\r\n console.error('Malformed points:', malformedPoints);\r\n }\r\n\r\n displayedLayer.addLayer(driftMarkers);\r\n });\r\n }\r\n } else if (e.target && e.target.nodeName === 'DIV') {\r\n if (e.target.classList.contains('groupHeader')) {\r\n if (!e.target.classList.contains('open')) {\r\n DOM.clearClassQ(el.displayLayerContainer, 'open');\r\n\r\n const previous = Number(e.target.getAttribute('previous'));\r\n const layerList = e.target.parentElement.querySelector('ul');\r\n layerList.querySelectorAll('LI')[previous].click();\r\n\r\n layerList.classList.add('open');\r\n e.target.classList.add('open');\r\n } else {\r\n DOM.clearClassQ(el.displayLayerContainer, 'open');\r\n }\r\n }\r\n }\r\n };\r\n\r\n let groupID = 0;\r\n config.displayLayers.forEach((group) => {\r\n const groupLayers = [];\r\n const {\r\n groupName,\r\n defaultOpen,\r\n } = group;\r\n const groupEl = {\r\n container: DOM.createElement('div', {\r\n class: 'groupContainer',\r\n }),\r\n header: DOM.createElement('div', {\r\n class: 'groupHeader',\r\n previous: 0,\r\n }),\r\n headerText: DOM.createElement('h4', {\r\n class: 'groupHeaderText',\r\n }),\r\n layerList: DOM.createElement('ul', {\r\n class: 'groupLayerList',\r\n }),\r\n };\r\n groupEl.headerText.innerText = groupName;\r\n\r\n let layerID = 0;\r\n group.layers.forEach((layer) => {\r\n const layerEl = {\r\n li: DOM.createElement('li', {\r\n class: 'layer',\r\n layerID,\r\n groupID,\r\n }),\r\n info: DOM.createElement('div', {\r\n class: 'infoButton',\r\n }),\r\n text: DOM.createElement('span'),\r\n icon: DOM.createElement('div', {\r\n class: 'layerIcon',\r\n }),\r\n };\r\n\r\n layerEl.text.innerText = layer.text;\r\n layerEl.info.innerText = 'i';\r\n layerEl.icon.style.backgroundColor = layer.color;\r\n layerEl.icon.style.opacity = config.initialDisplayLayerOpacity;\r\n\r\n const popover = {\r\n wrapper: DOM.createElement('div', {\r\n class: 'popover-wrapper',\r\n }),\r\n content: DOM.createElement('a', {\r\n class: 'popover-content',\r\n }),\r\n title: DOM.createElement('h5', {\r\n class: 'popover-title',\r\n }),\r\n textContainer: DOM.createElement('div', {\r\n class: 'popover-text',\r\n }),\r\n };\r\n\r\n popover.title.innerText = layer.info.title;\r\n popover.textContainer.innerHTML = layer.info.text + group.defaultText;\r\n popover.content.appendChild(popover.title);\r\n popover.content.appendChild(popover.textContainer);\r\n popover.wrapper.appendChild(popover.content);\r\n popover.wrapper.appendChild(layerEl.info);\r\n\r\n const url = `${config.connections.tiles}Ticket=${config.ticket}&Level={z}&X={x}&Y={y}`;\r\n\r\n const groupLayer = tileLayer.wms(url, {\r\n pane: 'displayLayers',\r\n maxNativeZoom: 14,\r\n maxZoom: 19,\r\n keepBuffer: 4,\r\n updateWhenIdle: false,\r\n updateInterval: 150,\r\n format: 'image/png',\r\n transparent: true,\r\n LayerName: layer.name,\r\n attribution: '© NIRAS A/S',\r\n });\r\n\r\n if (temaURI && temaURI === layer.name) {\r\n state.selectedDisplayLayer = config.displayLayers[groupID].layers[layerID];\r\n groupLayer.setOpacity(config.initialDisplayLayerOpacity);\r\n displayedLayer.addLayer(groupLayer);\r\n layerEl.li.classList.add('selectedLayer');\r\n groupEl.layerList.classList.add('open');\r\n groupEl.header.classList.add('open');\r\n } else if (!temaURI && layer.default) {\r\n state.selectedDisplayLayer = config.displayLayers[groupID].layers[layerID];\r\n groupLayer.setOpacity(config.initialDisplayLayerOpacity);\r\n displayedLayer.addLayer(groupLayer);\r\n layerEl.li.classList.add('selectedLayer');\r\n }\r\n\r\n groupLayers.push(groupLayer);\r\n layerID += 1;\r\n\r\n layerEl.li.appendChild(popover.wrapper);\r\n layerEl.li.appendChild(layerEl.icon);\r\n layerEl.li.appendChild(layerEl.text);\r\n groupEl.layerList.appendChild(layerEl.li);\r\n });\r\n\r\n groupEl.header.appendChild(groupEl.headerText);\r\n groupEl.container.appendChild(groupEl.header);\r\n groupEl.container.appendChild(groupEl.layerList);\r\n\r\n if (!temaURI && defaultOpen) {\r\n groupEl.layerList.classList.add('open');\r\n groupEl.header.classList.add('open');\r\n }\r\n\r\n state.displayLayers.push(groupLayers);\r\n groupID += 1;\r\n\r\n el.displayLayerContainer.appendChild(groupEl.container);\r\n });\r\n\r\n // console.log(window.app.state.selectedDisplayLayer.geojson);\r\n el.displayLayerContainer.addEventListener('click', (e) => { layerEvents(e); });\r\n\r\n\r\n addDisplayLayerTransparency.call(this, displayedLayer, el.transparencyContainer, el.displayLayerContainer);\r\n addDisplayLayerGetFeatureInfo.call(this, leaflet);\r\n\r\n this._elements.displayLayerControl = el.control;\r\n this._elements.interface.appendChild(el.control);\r\n\r\n // mobile button\r\n const mobEl = {\r\n container: DOM.createElement('div', {\r\n id: 'displayLayerControl-mobile',\r\n }),\r\n };\r\n\r\n mobEl.container.addEventListener('click', () => {\r\n if (this._elements.displayLayerControl.style.display === '' || this._elements.displayLayerControl.style.display === 'none') {\r\n this._elements.displayLayerControl.style.display = 'block';\r\n if (this._elements.baseLayerControl.style.display === 'block') {\r\n this._elements.baseLayerControl.style.display = 'none';\r\n }\r\n } else {\r\n this._elements.displayLayerControl.style.display = 'none';\r\n }\r\n });\r\n\r\n this._elements.interface.appendChild(mobEl.container);\r\n\r\n document.querySelectorAll('.selectedLayer')[0].click();\r\n\r\n window.app.state.initialised = true;\r\n}\r\n","import * as DOM from '../utils';\r\nimport * as parse from './parse';\r\n\r\nexport default function searchMultiple(searchValue) {\r\n this.setters.hasReplies(false);\r\n let replies = 0;\r\n let counterRowID = 0;\r\n\r\n this._methods.isLoading(true);\r\n this.options.themes.forEach((theme) => {\r\n const autocompleteURL = parse.multiSearchUrl(theme, searchValue, this.options);\r\n\r\n const request = DOM.get(autocompleteURL, (requestError, response) => {\r\n replies += 1;\r\n if (replies === this.options.themes.length) { this._methods.isLoading(false); }\r\n if (requestError) {\r\n if (requestError.type === 'abort') { return; }\r\n console.warn(response);\r\n return;\r\n }\r\n\r\n try {\r\n const data = JSON.parse(response);\r\n const fragment = document.createDocumentFragment();\r\n\r\n data.forEach((row) => {\r\n const parsed = parse.themes(theme, row);\r\n const { uid, value, url } = parsed;\r\n\r\n this.setters.addMeta({\r\n value, uid, theme, autocompleteURL, url,\r\n });\r\n this.setters.addRow(row);\r\n\r\n const result = DOM.createElement('li', {\r\n value, uid, counterRowID, theme, class: 'result',\r\n });\r\n const resultThemeIcon = DOM.createElement('div', { class: `theme-${theme}` });\r\n const resultText = DOM.createElement('span');\r\n resultText.innerText = value;\r\n\r\n result.appendChild(resultThemeIcon);\r\n result.appendChild(resultText);\r\n\r\n counterRowID += 1;\r\n fragment.appendChild(result);\r\n });\r\n\r\n if (!this.getters.hasReplies()) {\r\n this._methods.addNewResults();\r\n this.setters.hasReplies(true);\r\n }\r\n\r\n this._elements.resultList.appendChild(fragment);\r\n } catch (parseError) {\r\n console.error(parseError);\r\n }\r\n });\r\n\r\n this.setters.addRequest(request);\r\n });\r\n}\r\n","import { createGeojsonPoint } from '../utils';\r\n\r\nfunction singleSearchUrl(meta) {\r\n if (\r\n meta.theme === 'vejnavne' ||\r\n meta.theme === 'supplerendebynavne' ||\r\n meta.theme === 'ejerlav') {\r\n return false;\r\n }\r\n return `https://dawa.aws.dk/${meta.theme}/${meta.uid}?&noformat&format=geojson`;\r\n}\r\n\r\nfunction geocodeUrl(latitude, longitude) {\r\n return `https://dawa.aws.dk/adgangsadresser/reverse?x=${latitude}&y=${longitude}&struktur=mini`;\r\n}\r\n\r\nfunction multiSearchUrl(theme, searchValue, options) {\r\n return `https://dawa.aws.dk/${theme}/autocomplete?q=${searchValue}&noformat&per_side=${options.maxResults}${(options.fuzzy) ? '&fuzzy' : ''}`;\r\n}\r\n\r\nfunction geometry(theme, row) {\r\n if (theme === 'stednavne') {\r\n return createGeojsonPoint(row, row.visueltcenter);\r\n }\r\n return false;\r\n}\r\n\r\nfunction themes(theme, row) {\r\n switch (theme) {\r\n case 'adresser': return { value: row.tekst, uid: row.adresse.id, url: row.adresse.href };\r\n case 'adgangsadresser': return { value: row.tekst, uid: row.adgangsadresse.id, url: row.adgangsadresse.href };\r\n case 'vejnavne': return { value: row.tekst, uid: row.vejnavn.navn, url: row.vejnavn.href };\r\n case 'vejstykker': return { value: row.tekst, uid: `${row.vejstykke.kommunekode}/${row.vejstykke.kode}`, url: row.vejstykke.href };\r\n case 'supplerendebynavne': return { value: row.tekst, uid: row.supplerendebynavn.navn, url: row.supplerendebynavn.href };\r\n case 'postnumre': return { value: `${row.postnummer.navn} (${row.postnummer.nr})`, uid: row.postnummer.nr, url: row.postnummer.href };\r\n case 'sogne': return { value: `${row.sogn.navn} (${row.sogn.kode})`, uid: row.sogn.kode, url: row.sogn.href };\r\n case 'kommuner': return { value: `${row.kommune.navn} (${row.kommune.kode})`, uid: row.kommune.kode, url: row.kommune.href };\r\n case 'regioner': return { value: row.region.navn, uid: row.region.kode, url: row.region.href };\r\n case 'storkredse': return { value: row.tekst, uid: row.storkreds.kode, url: row.storkreds.href };\r\n case 'retskredse': return { value: row.tekst, uid: row.retskreds.kode, url: row.retskreds.href };\r\n case 'opstillingskredse': return { value: row.tekst, uid: row.opstillingskreds.kode, url: row.opstillingskreds.href };\r\n case 'politikredse': return { value: row.tekst, uid: row.politikreds.kode, url: row.politikreds.href };\r\n case 'ejerlav': return { value: `${row.ejerlav.navn} (${row.ejerlav.kode})`, uid: row.ejerlav.kode, url: row.ejerlav.href };\r\n case 'stednavne': return { value: (row.kommuner.length) ? `${row.navn}, ${row.kommuner[0].navn} (${row.undertype})` : row.navn, uid: row.id, url: row.href };\r\n default: return { value: 'unknown', uid: '' };\r\n }\r\n}\r\n\r\nexport {\r\n themes,\r\n geometry,\r\n singleSearchUrl,\r\n multiSearchUrl,\r\n geocodeUrl,\r\n};\r\n","import { get } from '../utils';\r\nimport { singleSearchUrl } from './parse';\r\n\r\nexport default function searchSingle(meta, information) {\r\n if (!this._events['search-final'].length) { this._methods.clearResults(); return; }\r\n\r\n const url = singleSearchUrl(meta);\r\n if (!url) {\r\n this._events['search-final'].forEach((fn) => {\r\n fn({ meta, information, geometry: false });\r\n });\r\n\r\n this._methods.clearResults();\r\n } else {\r\n this._methods.isLoading(true);\r\n get(url, (requestError, response) => {\r\n this._methods.isLoading(false);\r\n if (requestError) {\r\n console.warn(response);\r\n return;\r\n }\r\n try {\r\n const geometry = JSON.parse(response);\r\n\r\n this._events['search-final'].forEach((fn) => {\r\n fn({ meta, information, geometry });\r\n });\r\n\r\n this._methods.clearResults();\r\n } catch (parseError) {\r\n console.error(parseError);\r\n }\r\n });\r\n }\r\n}\r\n","export default function addLeaflet() {\r\n const { L, app } = window;\r\n const { config, map } = app;\r\n\r\n const IconOptions = L.Icon.extend({\r\n options: {\r\n iconSize: [32, 32],\r\n iconAnchor: [16, 32],\r\n },\r\n });\r\n\r\n // Icon based on: \"https://www.flaticon.com/authors/elegant-themes\" \"https://www.flaticon.com/\" \"http://creativecommons.org/licenses/by/3.0/\"\r\n const icon = new IconOptions({ iconUrl: './static/markers/marker.svg' });\r\n const searchResultLayers = L.layerGroup().addTo(map);\r\n\r\n const style = (config.style) ? config.style : {\r\n pointStyle: {\r\n radius: 6,\r\n color: '#f77542',\r\n weight: 3,\r\n opacity: 1,\r\n fill: false,\r\n fillColor: '#fff',\r\n fillOpacity: 0,\r\n },\r\n polyStyle: {\r\n color: '#28d3d6',\r\n weight: 2,\r\n opacity: 1,\r\n fill: false,\r\n fillColor: '#fff',\r\n fillOpacity: 0,\r\n },\r\n };\r\n\r\n let preliminairyGeometry = false;\r\n\r\n function prelim(e) {\r\n if (e.geometry) {\r\n preliminairyGeometry = true;\r\n const geom = L.geoJSON(e.geometry);\r\n map.flyToBounds(geom.getBounds(), { maxZoom: 15 });\r\n } else {\r\n preliminairyGeometry = false;\r\n }\r\n }\r\n\r\n this.on('search-final', (e) => {\r\n if (e.geometry) {\r\n const attributes = style.polyStyle;\r\n if (this.options.usePins) {\r\n attributes.pointToLayer = function pointToLayer(point, latlng) {\r\n return L.marker(latlng, { icon });\r\n };\r\n } else {\r\n attributes.pointToLayer = function pointToLayer(point, latlng) {\r\n return L.circleMarker(latlng, style.pointStyle);\r\n };\r\n }\r\n const geom = L.geoJSON(e.geometry, attributes);\r\n const center = geom.getBounds().getCenter();\r\n const { type } = e.geometry.geometry;\r\n\r\n if (type === 'MultiPoint' || type === 'Point') { map.fireEvent('click', { latlng: center }); }\r\n if (!preliminairyGeometry) {\r\n map.flyToBounds(geom.getBounds(), { maxZoom: 15 });\r\n map.once('zoomend', () => {\r\n if (!config.search.clickMapOnGeometry) {\r\n geom.bindTooltip(e.meta.value, { offset: L.point(0, -20) });\r\n }\r\n searchResultLayers.clearLayers();\r\n searchResultLayers.addLayer(geom);\r\n });\r\n } else if (!config.search.clickMapOnGeometry) {\r\n geom.bindTooltip(e.meta.value, { offset: L.point(0, -20) });\r\n }\r\n searchResultLayers.clearLayers();\r\n searchResultLayers.addLayer(geom);\r\n }\r\n });\r\n\r\n this.on('geolocation-final', (e) => {\r\n if (e.geometry) {\r\n const attributes = style.pointStyle;\r\n if (this.options.usePins) {\r\n attributes.pointToLayer = function pointToLayer(point, latlng) {\r\n return L.marker(latlng, { icon });\r\n };\r\n } else {\r\n attributes.pointToLayer = function pointToLayer(point, latlng) {\r\n return L.circleMarker(latlng, style.pointStyle);\r\n };\r\n }\r\n const geom = L.geoJSON(e.geometry, attributes);\r\n const center = geom.getBounds().getCenter();\r\n if (config.search.clickMapOnGeometry) {\r\n map.fireEvent('click', { latlng: center });\r\n } else {\r\n const tipText = `${e.information.adresseringsvejnavn}, ${e.information.husnr}. ${e.information.postnr}, ${e.information.postnrnavn}`;\r\n searchResultLayers.clearLayers();\r\n searchResultLayers.addLayer(geom.bindTooltip(tipText, { offset: L.point(0, -20) }));\r\n }\r\n }\r\n });\r\n\r\n this.on('search-preliminairy', e => prelim(e));\r\n this.on('geolocation-preliminairy', e => prelim(e));\r\n}\r\n","import * as DOM from '../utils';\r\nimport * as parse from './parse';\r\n\r\nexport default function init() {\r\n let currentChild = -1;\r\n\r\n this._elements.deleteText.addEventListener('click', () => {\r\n this._methods.clearResults();\r\n });\r\n\r\n this._elements.searchInput.addEventListener('keydown', (e) => {\r\n let results;\r\n e.stopPropagation();\r\n if (!this._elements.resultList.childElementCount) { currentChild = -1; return; }\r\n\r\n if (e.keyCode === 38) { // up-arrow\r\n if (currentChild < 1) {\r\n currentChild = this._elements.resultList.childElementCount - 1;\r\n } else {\r\n currentChild -= 1;\r\n }\r\n results = this._elements.resultList.querySelectorAll('.hover');\r\n for (let i = 0; i < results.length; i += 1) { results[i].classList.remove('hover'); }\r\n this._elements.resultList.childNodes[currentChild].classList.add('hover');\r\n } else if (e.keyCode === 40) { // down-arrow\r\n if (currentChild === -1 || currentChild >= this._elements.resultList.childElementCount - 1) {\r\n currentChild = 0;\r\n } else {\r\n currentChild += 1;\r\n }\r\n results = this._elements.resultList.querySelectorAll('.hover');\r\n for (let i = 0; i < results.length; i += 1) { results[i].classList.remove('hover'); }\r\n this._elements.resultList.childNodes[currentChild].classList.add('hover');\r\n } else if (e.keyCode === 13) { // enter\r\n if (this._elements.resultList.querySelector('.hover')) {\r\n this._elements.resultList.childNodes[currentChild].click();\r\n this._elements.searchInput.blur();\r\n }\r\n } else if (e.keyCode === 27) { // esc\r\n this._methods.clearResults();\r\n }\r\n });\r\n\r\n this._elements.geofinder.addEventListener('click', () => {\r\n if (!this._events['geolocation-preliminairy'].length) { return; }\r\n\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n const { latitude, longitude } = position.coords;\r\n\r\n const geometry = DOM.createGeojsonPoint({}, [\r\n longitude, latitude,\r\n ]);\r\n\r\n this._events['geolocation-preliminairy'].forEach((fn) => {\r\n fn({ information: false, meta: false, geometry });\r\n });\r\n\r\n if (!this.options.reverseGeocode || !this._events['geolocation-final'].length) { return; }\r\n\r\n const url = parse.geocodeUrl(position.coords.longitude, position.coords.latitude);\r\n DOM.get(url, (requestError, response) => {\r\n if (requestError) { throw new Error(requestError); }\r\n try {\r\n const information = JSON.parse(response);\r\n\r\n const geometryWithAttributes = DOM.createGeojsonPoint(information, [\r\n longitude, latitude,\r\n ]);\r\n\r\n this._events['geolocation-final'].forEach((fn) => {\r\n fn({ information, meta: false, geometry: geometryWithAttributes });\r\n });\r\n } catch (parseError) {\r\n console.error(parseError);\r\n }\r\n });\r\n });\r\n });\r\n\r\n this._elements.searchInput.addEventListener('input', (e) => {\r\n e.stopPropagation();\r\n\r\n const requests = this.getters.requests();\r\n if (requests.length) {\r\n requests.forEach((request) => {\r\n if (request.readyState !== 4) {\r\n request.abort();\r\n }\r\n });\r\n this.setters.clearRequests();\r\n this.setters.clearMeta();\r\n this.setters.clearRows();\r\n }\r\n\r\n const searchValue = e.currentTarget.value;\r\n\r\n if (this._methods.inputAboveMinimum()) {\r\n this._methods.searchMultiple.call(this, searchValue);\r\n } else if (this._elements.resultList.childElementCount) {\r\n this._methods.clearResults();\r\n }\r\n });\r\n\r\n this._elements.searchbar.addEventListener('click', (e) => {\r\n let el;\r\n if (e.target) {\r\n if (e.target.nodeName === 'LI') {\r\n el = e.target;\r\n } else if (e.target.nodeName === 'SPAN') {\r\n el = e.target.parentElement;\r\n } else if (e.target.parentElement === 'LI') {\r\n el = e.target.parentElement;\r\n } else {\r\n return;\r\n }\r\n const rowID = Number(el.getAttribute('counterRowID'));\r\n const meta = this.getters.singleMeta(rowID);\r\n const information = this.getters.singleRow(rowID);\r\n const geometry = parse.geometry(meta.theme, information);\r\n\r\n if (this._events['search-preliminairy'].length) {\r\n this._events['search-preliminairy'].forEach((fn) => {\r\n fn({ meta, information, geometry });\r\n });\r\n }\r\n\r\n this._methods.searchSingle.call(this, meta, information);\r\n }\r\n }, false);\r\n\r\n this._elements.searchInput.addEventListener('focus', (e) => {\r\n e.stopPropagation();\r\n const hidden = this.getters.resultsHidden();\r\n if (hidden) {\r\n this._methods.showResults();\r\n }\r\n });\r\n\r\n if (this.options.leaflet) {\r\n if (this._map && window.L) {\r\n this._methods.addLeaflet.call(this);\r\n } else {\r\n console.warn('Could not add leafletIntegration. Map or L global unspecified.');\r\n }\r\n }\r\n}\r\n","import * as DOM from '../utils';\r\nimport extendSearchMultiple from './extendSearchMultiple';\r\nimport extendSearchSingle from './extendSearchSingle';\r\nimport addLeaflet from './extendLeaflet';\r\nimport init from './init';\r\n\r\nfunction Dawa(parent, map, options) {\r\n if (!this) { return new Dawa(parent, map, options); }\r\n\r\n this.options = {\r\n usePins: false,\r\n minLength: 3,\r\n maxResults: 3,\r\n clickClose: true,\r\n reverseGeocode: true,\r\n fuzzy: true,\r\n leaflet: true,\r\n themes: [\r\n // 'adresser',\r\n 'adgangsadresser',\r\n // 'vejnavne',\r\n // 'vejstykker',\r\n 'supplerendebynavne',\r\n 'postnumre',\r\n 'sogne',\r\n 'kommuner',\r\n 'regioner',\r\n // 'storkredse',\r\n // 'retskredse',\r\n // 'opstillingskredse',\r\n // 'politikredse',\r\n // 'ejerlav',\r\n 'stednavne',\r\n ],\r\n };\r\n\r\n this._map = false;\r\n\r\n Object.keys(options).forEach((key) => {\r\n if (this.options[key] !== null && this.options[key] !== undefined) { this.options[key] = options[key]; }\r\n });\r\n\r\n if (this.options.leaflet && map && window.L) {\r\n this._map = map;\r\n }\r\n\r\n this._state = {\r\n hasReplies: false,\r\n resultsHidden: false,\r\n requests: [],\r\n rows: [],\r\n meta: [],\r\n };\r\n\r\n this._events = {\r\n 'search-preliminairy': [],\r\n 'search-final': [],\r\n 'geolocation-preliminairy': [],\r\n 'geolocation-final': [],\r\n };\r\n\r\n this._elements = {\r\n searchbar: DOM.createElement('div', { id: 'searchbar' }),\r\n wrapper: DOM.createElement('div', { class: 'wrapper' }),\r\n resultContainer: DOM.createElement('div', { class: 'result-container' }),\r\n resultList: DOM.createElement('ul', { class: 'result-list' }),\r\n inputContainer: DOM.createElement('div', { class: 'input-container' }),\r\n searchInput: DOM.createElement('input', {\r\n class: 'search-input',\r\n type: 'text',\r\n placeholder: 'Søg..',\r\n onfocus: 'this.placeholder=\"\"',\r\n onblur: 'this.placeholder=\"Søg..\"',\r\n }),\r\n geofinder: DOM.createElement('div', { class: 'geofinder' }),\r\n deleteText: DOM.createElement('div', { class: 'delete-text' }),\r\n };\r\n\r\n this._elements.resultContainer.appendChild(this._elements.resultList);\r\n this._elements.inputContainer.appendChild(this._elements.searchInput);\r\n this._elements.inputContainer.appendChild(this._elements.geofinder);\r\n this._elements.inputContainer.appendChild(this._elements.deleteText);\r\n this._elements.wrapper.appendChild(this._elements.inputContainer);\r\n this._elements.wrapper.appendChild(this._elements.resultContainer);\r\n this._elements.searchbar.appendChild(this._elements.wrapper);\r\n\r\n this.getters = {\r\n singleRow: num => this._state.rows[num],\r\n singleMeta: num => this._state.meta[num],\r\n hasReplies: () => this._state.hasReplies,\r\n resultsHidden: () => this._state.resultsHidden,\r\n requests: () => this._state.requests,\r\n rows: () => this._state.rows,\r\n meta: () => this._state.meta,\r\n };\r\n\r\n const that = this;\r\n this.setters = {\r\n hasReplies(bool) { that._state.hasReplies = bool; },\r\n toggleResults(bool) { that._state.resultsHidden = bool; },\r\n addRequest(obj) { that._state.requests.push(obj); },\r\n addRow(obj) { that._state.rows.push(obj); },\r\n addMeta(obj) { that._state.meta.push(obj); },\r\n clearRequests() { that._state.requests = []; },\r\n clearRows() { that._state.rows = []; },\r\n clearMeta() { that._state.meta = []; },\r\n };\r\n\r\n const _hoverClear = (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.target && e.target.nodeName === 'LI') {\r\n const results = this._elements.resultList.querySelectorAll('.hover');\r\n for (let i = 0; i < results.length; i += 1) { results[i].classList.remove('hover'); }\r\n }\r\n };\r\n\r\n const _hideResultsOnClick = (e) => {\r\n const isClickInside = this._elements.wrapper.contains(e.target);\r\n if (!isClickInside) {\r\n this._methods.hideResults();\r\n this.setters.toggleResults(true);\r\n }\r\n };\r\n\r\n this._methods = {\r\n isLoading: (bool) => {\r\n if (bool) {\r\n this._elements.deleteText.classList.add('spinner');\r\n } else {\r\n this._elements.deleteText.classList.remove('spinner');\r\n }\r\n },\r\n inputAboveMinimum: () => this._elements.searchInput.value.length >= this.options.minLength,\r\n clearResults: () => {\r\n if (this._methods.inputAboveMinimum()) { this._elements.searchInput.value = ''; }\r\n this._elements.resultList.removeEventListener('mouseover', _hoverClear);\r\n DOM.clearChildren(this._elements.resultList);\r\n this.setters.hasReplies(false);\r\n if (this.options.clickClose) {\r\n document.body.removeEventListener('click', _hideResultsOnClick);\r\n }\r\n },\r\n addNewResults: () => {\r\n if (!this._methods.inputAboveMinimum()) { this._elements.searchInput.value = ''; }\r\n this._elements.resultList.addEventListener('mouseover', _hoverClear);\r\n DOM.clearChildren(this._elements.resultList);\r\n this.setters.hasReplies(false);\r\n if (this.options.clickClose) {\r\n document.body.addEventListener('click', _hideResultsOnClick);\r\n }\r\n },\r\n showResults: () => {\r\n this._elements.resultList.style.display = 'block';\r\n this.setters.toggleResults(true);\r\n },\r\n hideResults: () => {\r\n this._elements.resultList.style.display = 'none';\r\n this.setters.toggleResults(false);\r\n },\r\n };\r\n\r\n this.on = (type, fn) => {\r\n if (this._events[type] && fn) {\r\n let alreadyExists = false;\r\n for (let i = 0; i < this._events[type].length; i += 1) {\r\n const event = this._events[type][i];\r\n if (fn === event) {\r\n alreadyExists = true;\r\n break;\r\n }\r\n }\r\n\r\n if (alreadyExists) {\r\n console.warn('Function already added to eventlistener');\r\n } else {\r\n this._events[type].push(fn);\r\n }\r\n } else {\r\n console.warn('Event type not available on object or no function specified');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n this.off = (type, fn) => {\r\n if (fn && this.events[type]) {\r\n let found = false;\r\n for (let i = 0; i < this._events[type].length; i += 1) {\r\n if (fn === this._events[type][i]) {\r\n this._events[type].splice(i, 1);\r\n found = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!found) {\r\n console.warn('The function was not found');\r\n }\r\n } else if (!fn && this._events[type]) {\r\n this._events[type] = [];\r\n } else {\r\n console.warn('Event type not available on object or no function specified');\r\n }\r\n return this;\r\n };\r\n\r\n this._methods.searchMultiple = extendSearchMultiple;\r\n this._methods.searchSingle = extendSearchSingle;\r\n this._methods.addLeaflet = addLeaflet;\r\n this._methods.init = init;\r\n\r\n this._methods.init.call(this);\r\n parent.appendChild(this._elements.searchbar);\r\n}\r\n\r\nexport default Dawa;\r\n","/* eslint-disable no-param-reassign */\r\nimport * as DOM from './js/utils';\r\nimport extendBaseLayerControl from './js/extendBaseLayerControl';\r\nimport extendMessageControl from './js/extendMessageControl';\r\nimport extendDisplayLayerControl from './js/extendDisplayLayerControl';\r\nimport Dawa from './js/dawa';\r\n\r\nclass App {\r\n constructor(leaflet, config, document, window) {\r\n if (!leaflet) {\r\n throw new Error('Leaflet not loaded');\r\n }\r\n if (!config) {\r\n throw new Error('Config not loaded');\r\n }\r\n this._elements = {\r\n interface: DOM.createElement('div', { id: 'interface' }),\r\n map: DOM.createElement('div', { id: 'map' }),\r\n };\r\n this.config = config;\r\n this.state = {\r\n lastClick: false,\r\n baseLayersGroup: null,\r\n overlayLayersGroup: null,\r\n selectedDisplayLayer: null,\r\n baseLayers: [],\r\n overlayLayers: [],\r\n displayLayers: [],\r\n };\r\n this.version = '1.3.0';\r\n this.controls = [\r\n leaflet.control.scale({\r\n position: 'bottomleft',\r\n imperial: false,\r\n metric: true,\r\n }),\r\n leaflet.control.zoom({\r\n position: 'bottomright',\r\n }),\r\n ];\r\n this._addBaseLayerControl = extendBaseLayerControl;\r\n this._addDisplayLayerControl = extendDisplayLayerControl;\r\n this._addMessageControl = extendMessageControl;\r\n this.init = () => {\r\n document.body.appendChild(this._elements.interface);\r\n document.body.appendChild(this._elements.map);\r\n const mapOptions = {\r\n doubleClickZoom: false,\r\n zoomControl: false,\r\n center: [56.23, 11.25],\r\n maxZoom: 19,\r\n minZoom: 7,\r\n zoom: 7,\r\n };\r\n if (DOM.getQueryString().integrated === 'true') {\r\n mapOptions.gestureHandling = true;\r\n }\r\n if (config.maxZoom) {\r\n mapOptions.maxZoom = config.maxZoom;\r\n }\r\n if (config.minZoom) {\r\n mapOptions.minZoom = config.minZoom;\r\n }\r\n if (config.initialZoom) {\r\n mapOptions.zoom = config.initialZoom;\r\n }\r\n if (config.initialCenter) {\r\n mapOptions.center = config.initialCenter;\r\n }\r\n if (leaflet.Browser.ie || leaflet.Browser.ielt9) {\r\n mapOptions.preferCanvas = false;\r\n }\r\n const startCenter = DOM.getQueryString().center;\r\n if (startCenter) {\r\n const coords = startCenter.split(',').map((str) => Number(str));\r\n mapOptions.center = coords;\r\n }\r\n const startZoom = DOM.getQueryString().zoom;\r\n if (startZoom) {\r\n const zoom = Number(startZoom);\r\n mapOptions.zoom = zoom;\r\n }\r\n this.map = leaflet.map('map', mapOptions);\r\n this.controls.forEach((control) => control.addTo(this.map));\r\n this.search = new Dawa(\r\n this._elements.interface,\r\n this.map,\r\n this.config.search,\r\n );\r\n this._addBaseLayerControl.call(this, leaflet);\r\n this._addMessageControl.call(this, this._elements.interface);\r\n const ticketCookie = DOM.getCookie('ticket');\r\n const geolocation_prompt = DOM.getQueryString().geolocation_prompt;\r\n if (geolocation_prompt == undefined || geolocation_prompt === 'true') {\r\n document.querySelector('.geofinder').click(); // Zoom to location on start\r\n }\r\n // const ticketCookie = false;\r\n if (ticketCookie) {\r\n window.config.ticket = ticketCookie;\r\n this._addDisplayLayerControl.call(this, leaflet);\r\n } else {\r\n DOM.get(this.config.connections.ticket, (requestError, response) => {\r\n if (requestError) {\r\n throw new Error('Could not get a ticket!', requestError);\r\n }\r\n window.config.ticket = response.replace(/\"/g, '');\r\n DOM.setCookie('ticket', window.config.ticket, 12); // 12 hours\r\n this._addDisplayLayerControl.call(this, leaflet);\r\n });\r\n }\r\n };\r\n }\r\n}\r\n\r\nwindow.app = new App(window.L, window.config, document, window);\r\nwindow.onload = (() => window.app.init())();\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"names":["$7eae5625ebce9b59$export$c8a8987d4410bf2d","type","attributes","element","document","createElement","Object","keys","i","properties","length","setAttribute","$7eae5625ebce9b59$export$da51b626bd37c807","firstChild","removeChild","$7eae5625ebce9b59$export$4ea3d958472af68f","_class","getAttribute","indexOf","$7eae5625ebce9b59$export$8d2f2b584122af0f","parent","classToRemove","elements","getElementsByClassName","classList","remove","$7eae5625ebce9b59$export$8343339a1c17c06a","querySelectorAll","concat","$7eae5625ebce9b59$export$3988ae62b71be9a3","url","callback","context","xhr","XMLHttpRequest","onreadystatechange","this","readyState","status","responseText","onerror","err","onabort","msg","open","send","coordinates","geometry","leaflet","_config","config","baseLayers","overlayLayers","layerGroup","tileLayer","tilepane","querySelector","el","control","id","baseLayerContainer","class","baseLayerList","divider","overlayLayerContainer","overlayLayerList","appendChild","state","baseLayersGroup","addTo","map","overlayLayersGroup","addEventListener","e","target","nodeName","item","selected","rowID","greyscale","background","add","clearLayers","addLayer","_this","removeLayer","_elements","style","baseLayerAdded","baseLayer","item2","radio","text","innerText","name","layer","wms","options","default","push","j","overlayLayer","item1","checkbox","text1","layer1","display","baseLayerControl","interface","mobEl","container","_this1","displayLayerControl","opdateret","transparencyContainer","displayLayerContainer","transparencyFragment","createDocumentFragment","heading","value","forEach","transEl","div","initialDisplayLayerOpacity","contains","parentElement","Number","icons","opacity","eachLayer","pointToLayer","setStyle","fillOpacity","setOpacity","icon","Icon","extend","iconSize","iconAnchor","iconUrl","tip","request","on","closeTooltip","selectedDisplayLayer","latlng","lat","lng","lastClick","systems","toString","connections","feature","query","usage","abort","requestError","response","console","error","data","JSON","parse","string","replace","marker","bindTooltip","permanent","offset","point","openTooltip","parseError","$250b35d656956191$var$temaURI","$7eae5625ebce9b59$export$18380b9f669996bd","tema","ref","displayedLayer","createPane","getPane","zIndex","window","app","initialised","groupID","displayLayers","group","groupLayers","groupName","defaultOpen","groupEl","header","previous","headerText","layerList","layerID","layers","layerEl","li","info","backgroundColor","color","popover","wrapper","content","title","textContainer","innerHTML","defaultText","tiles","ticket","groupLayer","pane","maxNativeZoom","maxZoom","keepBuffer","updateWhenIdle","updateInterval","format","transparent","LayerName","attribution","e1","click","_groupID","_layerID","displayLayer","fireEvent","layerPoint","latLngToLayerPoint","containerPoint","latLngToContainerPoint","geojson","geojsonName","driftMarkers","json","parseErr","markerClusterGroup","polygonOptions","driftMarker","malformedPoints","features","circleMarker","slice","reverse","displayString","z","geojsonFields","popupContent","bindPopup","closeButton","autoClose","closePopup","openPopup","layerEvents","$23fe28badecb79d0$export$2e2bcd8739ae039","call","$d34550981c2d53f4$export$2e2bcd8739ae039","searchValue","setters","hasReplies","replies","counterRowID","_methods","isLoading","themes","theme","autocompleteURL","maxResults","fuzzy","$0e7d060d3757b8da$export$8853a1fe1faa468c","_this2","warn","fragment","row","parsed","tekst","uid","adresse","href","adgangsadresse","vejnavn","navn","vejstykke","kommunekode","kode","supplerendebynavn","postnummer","nr","sogn","kommune","region","storkreds","retskreds","opstillingskreds","politikreds","ejerlav","kommuner","undertype","$0e7d060d3757b8da$export$d9a33280f07116d9","addMeta","addRow","result","resultThemeIcon","resultText","getters","addNewResults","resultList","addRequest","meta","information","_events","$0e7d060d3757b8da$export$7234a9d8b888fe84","fn","clearResults","L","searchResultLayers","pointStyle","radius","weight","fill","fillColor","polyStyle","preliminairyGeometry","prelim","geom","geoJSON","flyToBounds","getBounds","usePins","center","getCenter","search","clickMapOnGeometry","once","tipText","adresseringsvejnavn","husnr","postnr","postnrnavn","currentChild","deleteText","searchInput","results","stopPropagation","childElementCount","keyCode","childNodes","i1","blur","geofinder","navigator","geolocation","getCurrentPosition","position","_coords","coords","latitude","longitude","$7eae5625ebce9b59$export$63142814ff2f87f1","reverseGeocode","$0e7d060d3757b8da$export$d2ae02d633d38fe7","Error","geometryWithAttributes","requests","_this3","clearRequests","clearMeta","clearRows","currentTarget","inputAboveMinimum","searchMultiple","searchbar","_this4","singleMeta","singleRow","visueltcenter","searchSingle","_this5","resultsHidden","showResults","_map","addLeaflet","$5c6f2dce38536242$export$2e2bcd8739ae039","$5c6f2dce38536242$var$Dawa","minLength","clickClose","key","undefined","_state","rows","resultContainer","inputContainer","placeholder","onfocus","onblur","num","_this6","_this7","that","bool","toggleResults","obj","_hoverClear","preventDefault","_this8","_hideResultsOnClick","_this9","hideResults","_this10","_this11","_this12","removeEventListener","body","_this13","_this16","alreadyExists","off","_this17","events","found","splice","$6425b205244eee2e$export$2e2bcd8739ae039","$290aa7a088148b4d$export$2e2bcd8739ae039","$595b46e0ccf1033e$export$2e2bcd8739ae039","init","$776acd75d49db30d$export$2e2bcd8739ae039","$8e0445ed223f9d93$var$App","instance","Constructor","TypeError","version","controls","scale","imperial","metric","zoom","_addBaseLayerControl","$9ff0a3ad96ef4970$export$2e2bcd8739ae039","_addDisplayLayerControl","$250b35d656956191$export$2e2bcd8739ae039","_addMessageControl","$2defe1f26ec708a8$export$2e2bcd8739ae039","mapOptions","doubleClickZoom","zoomControl","minZoom","integrated","gestureHandling","initialZoom","initialCenter","Browser","ie","ielt9","preferCanvas","startCenter","split","str","startZoom","ticketCookie","$7eae5625ebce9b59$export$4be65e66cfa2648a","geolocation_prompt","$7eae5625ebce9b59$export$110700823644f4a6","onload"],"version":3,"file":"index.js.map"}