{"version":3,"file":"Src_Scripts_components_site-search_js.661958e04c6a584142ff.js","sources":["webpack://AlmenNet.Setup/./Src/Scripts/components/site-search.js"],"sourcesContent":["export default class SiteSearch {\r\n constructor(elm) {\r\n const searchBox = elm.querySelector('#site-search-input');\r\n const searchResultContainer = elm.querySelector('#site-search-result-list');\r\n const searchResultTemplate = elm.querySelector('#site-search-result');\r\n const searchButton = elm.querySelector('#site-search-btn');\r\n const searchShowMoreButton = elm.querySelector('#search-show-more');\r\n const resultCount = elm.querySelector('.header-search__result-count');\r\n const searchUrl = '/Umbraco/Api/Search/SiteSearch';\r\n let page = 0;\r\n const pageSize = 10;\r\n let searchParamString = '';\r\n let elem;\r\n\r\n async function performSearch(clearSearch) {\r\n const searchTerm = searchBox.value;\r\n\r\n if (clearSearch) {\r\n while (searchResultContainer.firstChild) {\r\n searchResultContainer.removeChild(searchResultContainer.firstChild);\r\n }\r\n page = 0;\r\n } else {\r\n page += 1;\r\n }\r\n\r\n console.log('page: ' + page);\r\n let currentResultCount = page * pageSize;\r\n\r\n const searchParams = new Array();\r\n if (searchTerm !== null && searchTerm !== '') {\r\n searchParams.push('searchTerm=' + searchTerm);\r\n }\r\n\r\n if (page > 0) {\r\n searchParams.push('page=' + page);\r\n }\r\n\r\n if (searchParams.length > 0) {\r\n searchParamString = '?' + searchParams.join('&');\r\n }\r\n\r\n const responseText = await fetch(searchUrl + searchParamString);\r\n const response = await responseText.json();\r\n const results = response.results;\r\n currentResultCount += results.length;\r\n\r\n for (const i in results) {\r\n elem = searchResultTemplate.cloneNode(true);\r\n elem.querySelector('.result-list-card__type').innerText = results[i].category;\r\n elem.querySelector('.result-list-card__headline').innerText = results[i].headline;\r\n elem.querySelector('.result-list-card__text').innerText = results[i].bodyText;\r\n elem.querySelector('.result-list-card__link').href = results[i].url;\r\n searchResultContainer.appendChild(elem);\r\n elem.classList.add('visible');\r\n }\r\n if (results.length === 0) {\r\n searchShowMoreButton.classList.remove('header-search__show-more--display');\r\n }\r\n resultCount.innerText = 'Viser ' + currentResultCount + ' ud af ' + response.totalResultCount + ' resultater';\r\n searchShowMoreButton.classList.remove('header-search__show-more--display');\r\n\r\n if (currentResultCount === response.totalResultCount) {\r\n searchShowMoreButton.classList.remove('header-search__show-more--display');\r\n\r\n } else {\r\n searchShowMoreButton.classList.add('header-search__show-more--display');\r\n }\r\n }\r\n\r\n searchButton.addEventListener('click', e => {\r\n e.preventDefault();\r\n performSearch(true);\r\n });\r\n\r\n searchShowMoreButton.addEventListener('click', e => {\r\n e.preventDefault();\r\n if (searchShowMoreButton.classList.contains('header-search__show-more--display')) {\r\n performSearch(false);\r\n }\r\n });\r\n\r\n searchBox.addEventListener('keyup', () => {\r\n searchButton.classList.remove('btn--disabled');\r\n if (searchBox.value === '') {\r\n searchButton.classList.add('btn--disabled');\r\n } else {\r\n searchButton.classList.remove('btn--disabled');\r\n }\r\n });\r\n\r\n searchBox.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n performSearch(true);\r\n }\r\n });\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlGA;AACA;A;;A;;A","sourceRoot":""}