{"version":3,"file":"../NewsSearch.js","names":["NewsSearch","newsResultsPerPage","newsExcludeId","newsRootId","newsCurrentResultPage","docType","partialView","newsResultTarget","loadMoreTarget","buttonTabs","me","this","InitNewsSearch","_resultsPerPage","_highlightedArticle","_rootId","document","querySelector","getElementById","addEventListener","e","target","tagName","querySelectorAll","forEach","b","classList","remove","add","key","preventDefault","DoSearch","bind","GetSearchResults","then","result","$","html","htmlResults","pagination","items","totalResultCount","itemsOnPage","cssStyle","onPageClick","pageNumber","event","DoAjaxSearch","scrollToAnchorIDOffset","onInit","console","log","resultCount","DoPagination","SetToggle","toggleValue","eventToggle","value","GetSearchParams","pageNo","peopleFilter","nodeListToIds","categoryFilter","params","resultsPerPage","rootNode","excludeId","currentResultPage","dateFilterField","people","filterCategories","currentPage","$pagination","show","hide","searchParams","Promise","resolve","reject","fetch","body","JSON","stringify","method","headers","Accept","response","json","catch","error"],"sources":["NewsSearch.js"],"sourcesContent":["var NewsSearch = {\r\n newsResultsPerPage: 9,\r\n newsExcludeId: 0,\r\n newsRootId: 0,\r\n newsCurrentResultPage: 1,\r\n\r\n docType: \"newsArticle\",\r\n partialView: \"NewsResult_Rows\",\r\n\r\n newsResultTarget: null,\r\n loadMoreTarget: null,\r\n buttonTabs: null,\r\n\r\n me: this,\r\n\r\n InitNewsSearch: function (_resultsPerPage, _highlightedArticle, _rootId) {\r\n this.newsResultsPerPage = _resultsPerPage;\r\n this.newsExcludeId = _highlightedArticle;\r\n this.newsRootId = _rootId;\r\n this.newsResultTarget = document.querySelector('#search_results');\r\n this.buttonTabs = document.getElementById('buttonTabs');\r\n\r\n this.buttonTabs.addEventListener('click', (e) => {\r\n if (e.target.tagName === 'BUTTON') {\r\n var buttonTab = this.buttonTabs.querySelectorAll('button');\r\n buttonTab.forEach(b => b.classList.remove('active'));\r\n e.target.classList.add('active');\r\n }\r\n });\r\n\r\n document.querySelectorAll('.search__aggregation input[type=checkbox]').forEach(function (key) {\r\n key.addEventListener(\"change\", function (e) {\r\n e.preventDefault();\r\n this.DoSearch();\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n this.DoSearch();\r\n },\r\n\r\n DoSearch: function () {\r\n let prom = this.GetSearchResults(1);\r\n prom.then(\r\n function (result) {\r\n $('#search__results').html(result.htmlResults);\r\n $('#pagination_search').pagination({\r\n items: result.totalResultCount,\r\n itemsOnPage: this.newsResultsPerPage,\r\n cssStyle: 'light-theme',\r\n onPageClick: function (pageNumber, event) {\r\n this.DoAjaxSearch(pageNumber);\r\n scrollToAnchorIDOffset('topOfSearch'); ('topOfSearch');\r\n }.bind(this),\r\n onInit: function () {\r\n console.log('Init paging');\r\n var resultCount = 0;\r\n if (result.totalResultCount !== null) {\r\n resultCount = result.totalResultCount;\r\n }\r\n this.DoPagination(resultCount, 1);\r\n }.bind(this)\r\n });\r\n }.bind(this) // Bind the parent scope to this\r\n );\r\n },\r\n\r\n SetToggle: function (toggleValue) {\r\n this.eventToggle = toggleValue;\r\n document.querySelector('#eventToggle').value = toggleValue.value;\r\n this.newsCurrentResultPage = 1; // Reset the pagination\r\n this.DoSearch(); // Trigger a new search with the updated news/events toggle\r\n },\r\n\r\n GetSearchParams: function (pageNo) {\r\n var peopleFilter = nodeListToIds(document.querySelectorAll('.search__aggregation input[type=checkbox][data-group=\"people\"]'));\r\n var categoryFilter = nodeListToIds(document.querySelectorAll('.search__aggregation input[type=checkbox][data-group=\"newsCategories\"]'));\r\n\r\n var params = {\r\n resultsPerPage: this.newsResultsPerPage,\r\n rootNode: this.newsRootId,\r\n excludeId: this.newsExcludeId,\r\n currentResultPage: pageNo,\r\n docType: this.docType,\r\n partialView: this.partialView,\r\n dateFilterField: 'displayDateIndex',\r\n eventToggle: this.eventToggle, // Pass the toggle value to the controller\r\n\r\n // Facets\r\n people: peopleFilter,\r\n filterCategories: categoryFilter\r\n };\r\n\r\n console.log(params);\r\n\r\n return params;\r\n },\r\n\r\n DoPagination: function (resultCount, currentPage) {\r\n var $pagination = $('#pagination_search');\r\n\r\n console.log('Page results count : %o - Per page : %o', resultCount, this.newsResultsPerPage);\r\n\r\n if (resultCount !== null && resultCount > this.newsResultsPerPage) {\r\n $pagination.pagination('destroy');\r\n $pagination.pagination('updateItems', resultCount);\r\n $pagination.pagination('drawPage', currentPage);\r\n $pagination.show();\r\n } else {\r\n $pagination.hide();\r\n }\r\n },\r\n\r\n DoAjaxSearch: function (pageNo) {\r\n var prom = this.GetSearchResults(pageNo);\r\n prom.then(\r\n function (result) {\r\n console.log(\"Processing ajax results : %o\", result);\r\n\r\n $('#search__results').html(result.htmlResults);\r\n\r\n this.DoPagination(result.totalResultCount, pageNo);\r\n\r\n scrollToAnchorIDOffset('topOfSearch');\r\n }.bind(this)\r\n );\r\n },\r\n\r\n GetSearchResults: function (pageNo) {\r\n let searchParams = this.GetSearchParams(pageNo);\r\n\r\n return new Promise(function (resolve, reject) {\r\n fetch('/umbraco/surface/NewsSearch/DoNewsSearchView', {\r\n body: JSON.stringify(searchParams), method: 'post', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n })\r\n .then(function (response) {\r\n //console.log('response : %o', response.json());\r\n resolve(response.json());\r\n })\r\n .catch(error => {\r\n console.log('Failed', error);\r\n reject(error);\r\n });\r\n });\r\n }\r\n}"],"mappings":"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"}