{"version":3,"file":"js/SnippetLocation_SearchViewComponent.min.js","mappings":"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","sources":["webpack://weersvoorspelling/./Views/Shared/Components/SnippetLocation_Search/Default.js"],"sourcesContent":["window.locationSearch = {\r\n elInputs: null,\r\n elInputClears: null,\r\n elInputSearchs: null,\r\n elResults: null,\r\n\r\n init: function () {\r\n locationSearch.elInputs = document.querySelectorAll('.location-search input');\r\n locationSearch.elInputClears = document.querySelectorAll('.location-search .clear');\r\n locationSearch.elInputLoading = document.querySelectorAll('.location-search .loading');\r\n locationSearch.elInputSearchs = document.querySelectorAll('.location-search .search-icon');\r\n locationSearch.elResults = document.querySelectorAll('.location-search .results');\r\n\r\n for (let elI = 0; elI < locationSearch.elInputs.length; elI++) {\r\n (function () {\r\n const index = elI;\r\n\r\n // Show and hide results on focus\r\n const input = locationSearch.elInputs[elI];\r\n\r\n input.addEventListener('focus', function () {\r\n locationSearch.results.show(index);\r\n });\r\n\r\n input.addEventListener('blur', function () {\r\n setTimeout(function () {\r\n if (document.activeElement !== input) {\r\n locationSearch.results.hide(index);\r\n }\r\n }, 300);\r\n });\r\n locationSearch.elResults[elI].addEventListener('click', function () {\r\n locationSearch.elInputs[elI].focus();\r\n });\r\n\r\n // key detection\r\n input.addEventListener('keyup', (e) => {\r\n if (e.keyCode === 40) { //arrow down\r\n locationSearch.results.selectNext(index);\r\n } else if (e.keyCode === 38) { //arrow up\r\n locationSearch.results.selectPrev(index);\r\n } else if (e.keyCode === 13) { //enter\r\n locationSearch.results.selectItem(index);\r\n } else {\r\n locationSearch.search(index);\r\n }\r\n });\r\n\r\n // Remove loader on input blur\r\n input.addEventListener('blur', (e) => {\r\n locationSearch.elInputLoading[index].style.display = 'none';\r\n });\r\n\r\n // clear click detection\r\n locationSearch.elInputClears[elI].addEventListener('click', function () {\r\n locationSearch.clear(index);\r\n });\r\n }());\r\n }\r\n },\r\n\r\n clear: function (index) {\r\n locationSearch.elInputs[index].value = '';\r\n locationSearch.elInputs[index].focus();\r\n locationSearch.search(index);\r\n },\r\n\r\n results: {\r\n hide: function (index) {\r\n locationSearch.elResults[index].style.display = 'none';\r\n },\r\n\r\n list: function (title, items, save, index) {\r\n const ul = [];\r\n\r\n if (items.length > 0) {\r\n // display a title if present\r\n if (title.length > 0) {\r\n const liTitle = document.createElement('li');\r\n liTitle.classList.add('search-list-title');\r\n const divTitle = document.createElement('div');\r\n\r\n divTitle.innerText = title;\r\n liTitle.appendChild(divTitle);\r\n ul.push(liTitle);\r\n }\r\n\r\n // display items\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n\r\n const a = document.createElement('a');\r\n a.href = sanitize(item.url);\r\n\r\n const img = document.createElement('img');\r\n img.src = \"https://assets.infoplaza.io/site/weersvoorspelling.nl/flags/\" + sanitize(item.countryCode.toLowerCase()) + \".png\";\r\n img.width = 16;\r\n img.height = 11;\r\n a.appendChild(img);\r\n\r\n const span = document.createElement('span');\r\n span.innerText = sanitize(item.displayName);\r\n a.appendChild(span);\r\n\r\n // bind mouseover event for hover\r\n if (!Site.isMobile()) {\r\n a.addEventListener('mouseenter', function (e) {\r\n locationSearch.elResults[index].querySelector('ul li a.selected').classList.remove('selected');\r\n e.srcElement.className = 'selected';\r\n });\r\n }\r\n\r\n const li = document.createElement('li');\r\n li.classList.add('search-result');\r\n li.appendChild(a);\r\n\r\n ul.push(li);\r\n }\r\n }\r\n\r\n return ul;\r\n },\r\n\r\n selectItem: function (index) {\r\n const el = locationSearch.elResults[index].querySelector('ul li a.selected');\r\n el.click();\r\n },\r\n\r\n selectNext: function (index) {\r\n const ul = locationSearch.elResults[index].querySelectorAll('ul li a');\r\n const lis = locationSearch.elResults[index].querySelector('ul li a.selected');\r\n\r\n let selectIndex = -1;\r\n for (let i = 0; i < ul.length; i++) {\r\n if (ul[i] === lis) {\r\n selectIndex = i + 1;\r\n }\r\n }\r\n\r\n if (selectIndex >= ul.length) selectIndex = 0;\r\n lis.classList.remove('selected');\r\n ul[selectIndex].className = 'selected';\r\n },\r\n\r\n selectPrev: function (index) {\r\n const ul = locationSearch.elResults[index].querySelectorAll('ul li a');\r\n const lis = locationSearch.elResults[index].querySelector('ul li a.selected');\r\n\r\n let selectIndex = -1;\r\n for (let i = 0; i < ul.length; i++) {\r\n if (ul[i] === lis) {\r\n selectIndex = i - 1;\r\n }\r\n }\r\n\r\n if (selectIndex < 0) {\r\n selectIndex = ul.length - 1;\r\n }\r\n\r\n lis.classList.remove('selected');\r\n ul[selectIndex].className = 'selected';\r\n },\r\n\r\n show: function (index) {\r\n if (locationSearch.elResults[index].querySelector('ul li') !== null) {\r\n locationSearch.elResults[index].style.display = 'block';\r\n }\r\n },\r\n\r\n update: function (data, query, index) {\r\n let items = [];\r\n let found = false;\r\n\r\n // check if data is found\r\n if (data) {\r\n let resultCount = 0;\r\n resultCount += data.places.length;\r\n resultCount += data.countries.length;\r\n found = resultCount > 0;\r\n }\r\n\r\n if (!found) {\r\n if (query !== null && query.length > 0) {\r\n let li = document.createElement('li');\r\n li.classList.add('search-list-title');\r\n\r\n let div = document.createElement('div');\r\n div.classList.add(\"text-center\");\r\n div.innerText = \"Geen resultaten gevonden.\";\r\n\r\n li.appendChild(div);\r\n items = items.concat(li);\r\n }\r\n } else {\r\n if (showLocations) {\r\n items = items.concat(locationSearch.results.list('Locaties:', data.places.slice(0, 10), true, index));\r\n }\r\n\r\n if (showSki) {\r\n items = items.concat(locationSearch.results.list('Berg/skilocaties:', data.skiPlaces.slice(0, 10), false, index));\r\n }\r\n\r\n if (showCountry) {\r\n items = items.concat(locationSearch.results.list('Landen:', data.countries.slice(0, 10), false, index));\r\n }\r\n }\r\n\r\n // remove items from previous search\r\n while (locationSearch.elResults[index].querySelector('ul').firstChild) {\r\n locationSearch.elResults[index].querySelector('ul').removeChild(locationSearch.elResults[index].querySelector('ul').firstChild);\r\n }\r\n\r\n // Add items from this search and show results\r\n if (items.length > 0) {\r\n for (let i = 0; i < items.length; i++) {\r\n let item = items[i];\r\n locationSearch.elResults[index].querySelector('ul').appendChild(item);\r\n }\r\n\r\n locationSearch.results.show(index);\r\n }\r\n\r\n if (items.length === 0 && (query === null || query.length === 0)) {\r\n locationSearch.results.hide(index);\r\n }\r\n\r\n // select first link\r\n if (locationSearch.elResults[index].querySelector('ul li') !== null) {\r\n if (locationSearch.elResults[index].querySelector('ul li a')) {\r\n locationSearch.elResults[index].querySelector('ul li a').className = 'selected';\r\n }\r\n }\r\n\r\n locationSearch.elInputLoading[index].style.display = 'none';\r\n }\r\n },\r\n\r\n search: function (index) {\r\n const query = locationSearch.elInputs[index].value;\r\n\r\n if (query === 'undefined') {\r\n query = '';\r\n }\r\n\r\n if (query.length > 0) {\r\n SiteLocation.search(query, locationSearch.results.update, index);\r\n\r\n // toggle search and clear icons\r\n locationSearch.elInputLoading[index].style.display = 'flex';\r\n locationSearch.elInputSearchs[index].style.display = 'none';\r\n locationSearch.elInputClears[index].style.display = 'block';\r\n } else {\r\n locationSearch.results.update(null, query, index);\r\n // toggle search and clear icons\r\n locationSearch.elInputSearchs[index].style.display = 'block';\r\n locationSearch.elInputClears[index].style.display = 'none';\r\n }\r\n },\r\n\r\n throttle: function (func, timeFrame) {\r\n let waiting = false;\r\n return function () {\r\n if (!waiting) {\r\n func.apply(this, arguments);\r\n waiting = true;\r\n\r\n setTimeout(function () {\r\n waiting = false;\r\n }, timeFrame);\r\n }\r\n }\r\n },\r\n};\r\n\r\nlocationSearch.init();\r\n"],"names":["window","locationSearch","elInputs","elInputClears","elInputSearchs","elResults","init","document","querySelectorAll","elInputLoading","elI","length","index","input","addEventListener","results","show","setTimeout","activeElement","hide","focus","e","keyCode","selectNext","selectPrev","selectItem","search","style","display","clear","value","list","title","items","save","ul","liTitle","createElement","classList","add","divTitle","innerText","appendChild","push","i","item","a","href","sanitize","url","img","src","countryCode","toLowerCase","width","height","span","displayName","Site","isMobile","querySelector","remove","srcElement","className","li","click","lis","selectIndex","update","data","query","found","resultCount","places","countries","showLocations","concat","slice","showSki","skiPlaces","showCountry","div","firstChild","removeChild","SiteLocation","throttle","func","timeFrame","waiting","apply","this","arguments"],"sourceRoot":""}