{"version":3,"file":"entity.js","mappings":"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","sources":["webpack://less/./Static/js/entity.js","webpack://less/./Static/js/entity-generic.js"],"sourcesContent":["(function($) {\n // Filter toggle for mobile/tablet\n $('.entity-find-page__filters__toggle').click(function() {\n $('.entity-find-page__filters').toggleClass('entity-find-page__filters--expanded');\n $('html, body').animate({\n scrollTop: $(\".entity-find-page__filters__toggle\").offset().top\n },\n 200);\n });\n})(jQuery);","(function ($) {\n\n var delayTimer;\n var entities = { result: [], totalMatching: 0 };\n var map;\n var markers;\n\n var source = $(\"#entity-template\").html();\n var template = Handlebars.compile(source);\n var districts = [];\n var query = \"\";\n var dynamicFilters = {};\n var filters = {};\n\n map = initializeMap(\"entities-map\", 58.97, 5.74, 12);\n\n const markerIcon = L.icon({\n // specify the path here\n iconUrl: \"https://unpkg.com/leaflet@1.5.1/dist/images/marker-icon.png\",\n shadowUrl: \"https://unpkg.com/leaflet@1.5.1/dist/images/marker-shadow.png\"\n });\n \n // Use received data to bind to view\n function entityShowResult(data) {\n entities.Items = data.Items;\n if (map == null)\n return;\n\n if (markers != null)\n map.removeLayer(markers);\n\n markers = L.markerClusterGroup();\n markers.clearLayers();\n\n $(entities.Items).each(function (index, item) {\n\n // create the marker\n var marker = L.marker([item.Latitude, item.Longitude], { icon: markerIcon });\n marker.bindPopup('' +\n '' + item.Name + '
' +\n 'Se veibeskrivelse'\n );\n markers.addLayer(marker);\n });\n map.addLayer(markers);\n if (entities.Items.length) {\n map.fitBounds(markers.getBounds(), { padding: [20, 20] });\n }\n \n var html = template(data);\n $(\"#entities-result\").html(html);\n }\n\n // Search for string and handle received data\n function entitySearch() {\n clearTimeout(delayTimer);\n delayTimer = setTimeout(function () {\n\n query = $('#search-entity-form .entity-search-input').val();\n\n filters = {\n districts: districts.join()\n }\n\n // Update url with query\n if (history.pushState) {\n var newurl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + '?q=' + query;\n\n // Add districts selection\n if (filters.districts.length)\n newurl = newurl + \"&d=\" + filters.districts;\n \n var dynamicFiltersBase64 = btoa(JSON.stringify(dynamicFilters));\n \n if(dynamicFilters !== [])\n newurl = newurl + \"&f=\" + dynamicFiltersBase64;\n\n window.history.pushState({ path: newurl }, '', newurl);\n }\n\n $.getJSON(entityApiUrl, { query: query, districts: filters.districts, dynamicFilters: dynamicFiltersBase64 }, entityShowResult);\n }, 250);\n } \n\n // Handle search input text input\n var entitySearchInputTimer;\n $('#search-entity-form .entity-search-input').on('input', function () {\n entitySearch(query, filters);\n });\n\n // Trigger input event if value is present\n if ($('#search-entity-form .entity-search-input').val() !== '') {\n $(\"#search-entity-form .entity-search-input\").trigger(\"input\");\n }\n\n // Handle button search\n $('#search-entity-form input[type=submit]').click(function () {\n entitySearch();\n });\n\n $(\".filter-district input[type=checkbox]\").change(function () {\n\n if ($(this).is(\":checked\")) {\n districts.push($(this).val());\n } else {\n var index = districts.indexOf($(this).val()); // <-- Not supported in {\n if(el.getAttribute(\"max\") === el.value)\n return;\n \n dynamicFilters[el.getAttribute(\"name\")] = el.value \n });\n dynamicFilterCheckboxElements.forEach(el => { \n if(!el.checked) \n return;\n \n if(!dynamicFilters[el.getAttribute(\"name\")]) \n dynamicFilters[el.getAttribute(\"name\")] = el.value;\n \n else dynamicFilters[el.getAttribute(\"name\")] += \"|\" + el.value\n });\n \n entitySearch();\n }\n\n dynamicFilterRangeElements.forEach(el => el.addEventListener('change', () => handleDynamicFilters()));\n dynamicFilterCheckboxElements.forEach(el => el.addEventListener('change', () => handleDynamicFilters()));\n \n handleDynamicFilters();\n });\n\n})(jQuery);\n"],"names":["$","jQuery","click","toggleClass","animate","scrollTop","offset","top","delayTimer","map","markers","entities","result","totalMatching","source","html","template","Handlebars","compile","districts","query","dynamicFilters","filters","initializeMap","markerIcon","L","icon","iconUrl","shadowUrl","entityShowResult","data","Items","removeLayer","markerClusterGroup","clearLayers","each","index","item","marker","Latitude","Longitude","bindPopup","Url","Name","addLayer","length","fitBounds","getBounds","padding","entitySearch","clearTimeout","setTimeout","val","join","history","pushState","newurl","window","location","protocol","host","pathname","dynamicFiltersBase64","btoa","JSON","stringify","path","getJSON","entityApiUrl","on","trigger","change","this","is","push","indexOf","splice","document","ready","dynamicFilterRangeElements","querySelectorAll","dynamicFilterCheckboxElements","handleDynamicFilters","forEach","el","getAttribute","value","checked","addEventListener"],"sourceRoot":""}