{"version":3,"file":"../CaseStudiesSearch.js","names":["CaseStudiesSearch","csResultsPerPage","csExcludeId","csRootId","csCurrentResultPage","docType","partialView","csResultTarget","loadMoreTarget","buttonTabs","me","this","InitCaseStudiesSearch","_resultsPerPage","_highlightedArticle","_rootId","document","querySelector","getElementById","addEventListener","e","target","tagName","querySelectorAll","forEach","b","classList","remove","add","key","preventDefault","DoSearch","bind","DoSiteSearch","GetSearchResults","then","result","$","html","htmlResults","pagination","items","totalResultCount","itemsOnPage","newsResultsPerPage","cssStyle","onPageClick","pageNumber","event","DoAjaxSearch","scrollToAnchorIDOffset","onInit","console","log","resultCount","DoPagination","GetSiteSearchResults","pages","innerHTML","SetToggle","toggleValue","eventToggle","currentPage","$pagination","show","hide","pageNo","GetSearchParams","params","resultsPerPage","rootNode","excludeId","currentResultPage","searchSpecificDocType","dateFilterField","searchParams","Promise","resolve","reject","fetch","body","JSON","stringify","method","headers","Accept","response","json","catch","error"],"sources":["CaseStudiesSearch.js"],"sourcesContent":["var CaseStudiesSearch = {\r\n csResultsPerPage: 9,\r\n csExcludeId: 0,\r\n csRootId: 0,\r\n csCurrentResultPage: 1,\r\n\r\n docType: \"caseStudyItem\",\r\n partialView: \"CaseStudiesResult_Rows\",\r\n\r\n csResultTarget: null,\r\n loadMoreTarget: null,\r\n buttonTabs: null,\r\n\r\n me: this,\r\n\r\n InitCaseStudiesSearch: function (_resultsPerPage, _highlightedArticle, _rootId) {\r\n this.csResultsPerPage = _resultsPerPage;\r\n this.csExcludeId = _highlightedArticle;\r\n this.csRootId = _rootId;\r\n this.csResultTarget = document.querySelector('#nextPageOfResults');\r\n //this.loadMoreTarget = document.querySelector('#loadMoreNews');\r\n this.buttonTabs = document.getElementById('buttonTabs');\r\n\r\n //this.loadMoreTarget.addEventListener(\"click\", function (e) {\r\n // e.preventDefault();\r\n // //console.log('load more');\r\n // this.DoSearch();\r\n //}.bind(this));\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.DoSiteSearch();\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 DoSiteSearch: function () {\r\n let prom = this.GetSiteSearchResults();\r\n prom.then(\r\n function (result) {\r\n //console.log(this);\r\n if (this.csCurrentResultPage < result.pages) {\r\n this.loadMoreTarget.classList.remove('hidden')\r\n } else {\r\n this.loadMoreTarget.classList.add('hidden')\r\n }\r\n\r\n this.csResultTarget.innerHTML = result.htmlResults;\r\n this.csCurrentResultPage++;\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;\r\n this.csCurrentResultPage = 1; // Reset the pagination\r\n this.DoSearch(); // Trigger a new search with the updated news/events toggle\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.csResultsPerPage);\r\n\r\n if (resultCount !== null && resultCount > this.csResultsPerPage) {\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 GetSearchParams: function (pageNo) {\r\n //var peopleFilter = nodeListToIds(document.querySelectorAll('.search__aggregation input[type=checkbox][data-group=\"people\"]'));\r\n\r\n var params = {\r\n resultsPerPage: this.csResultsPerPage,\r\n rootNode: this.csRootId,\r\n excludeId: this.csExcludeId,\r\n currentResultPage: pageNo,\r\n searchSpecificDocType: 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 };\r\n\r\n console.log(params);\r\n\r\n return params;\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/CaseStudySearch/DoCaseStudySearchView', {\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\r\n GetSiteSearchResults: function () {\r\n let searchParams = this.GetSearchParams();\r\n\r\n return new Promise(function (resolve, reject) {\r\n fetch('/umbraco/surface/CaseStudySearch/DoSiteSearchView', {\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":"AAAA,IAAIA,kBAAoB,CACpBC,iBAAkB,EAClBC,YAAa,EACbC,SAAU,EACVC,oBAAqB,EAErBC,QAAS,gBACTC,YAAa,yBAEbC,eAAgB,KAChBC,eAAgB,KAChBC,WAAY,KAEZC,GAAIC,KAEJC,sBAAuB,SAAUC,EAAiBC,EAAqBC,GACnEJ,KAAKV,iBAAmBY,EACxBF,KAAKT,YAAcY,EACnBH,KAAKR,SAAWY,EAChBJ,KAAKJ,eAAiBS,SAASC,cAAc,sBAE7CN,KAAKF,WAAaO,SAASE,eAAe,cAQ1CP,KAAKF,WAAWU,iBAAiB,SAAUC,IACd,WAArBA,EAAEC,OAAOC,UACOX,KAAKF,WAAWc,iBAAiB,UACvCC,SAAQC,GAAKA,EAAEC,UAAUC,OAAO,YAC1CP,EAAEC,OAAOK,UAAUE,IAAI,UAC3B,IAGJZ,SAASO,iBAAiB,6CAA6CC,QAAQ,SAAUK,GACrFA,EAAIV,iBAAiB,SAAU,SAAUC,GACrCA,EAAEU,iBACFnB,KAAKoB,UACT,EAAEC,KAAKrB,MACX,EAAEqB,KAAKrB,OAEPA,KAAKsB,eAELtB,KAAKoB,UACT,EAEAA,SAAU,WACKpB,KAAKuB,iBAAiB,GAC5BC,KACD,SAAUC,GACNC,EAAE,oBAAoBC,KAAKF,EAAOG,aAClCF,EAAE,sBAAsBG,WAAW,CAC/BC,MAAOL,EAAOM,iBACdC,YAAahC,KAAKiC,mBAClBC,SAAU,cACVC,YAAa,SAAUC,EAAYC,GAC/BrC,KAAKsC,aAAaF,GAClBG,uBAAuB,cAC3B,EAAElB,KAAKrB,MACPwC,OAAQ,WACJC,QAAQC,IAAI,eACZ,IAAIC,EAAc,EACc,OAA5BlB,EAAOM,mBACPY,EAAclB,EAAOM,kBAEzB/B,KAAK4C,aAAaD,EAAa,EACnC,EAAEtB,KAAKrB,OAEf,EAAEqB,KAAKrB,MAEf,EAEAsB,aAAc,WACCtB,KAAK6C,uBACXrB,KACD,SAAUC,GAEFzB,KAAKP,oBAAsBgC,EAAOqB,MAClC9C,KAAKH,eAAekB,UAAUC,OAAO,UAErChB,KAAKH,eAAekB,UAAUE,IAAI,UAGtCjB,KAAKJ,eAAemD,UAAYtB,EAAOG,YACvC5B,KAAKP,qBACT,EAAE4B,KAAKrB,MAEf,EAEAgD,UAAW,SAAUC,GACjBjD,KAAKkD,YAAcD,EAEnBjD,KAAKP,oBAAsB,EAC3BO,KAAKoB,UACT,EAEAwB,aAAc,SAAUD,EAAaQ,GACjC,IAAIC,EAAc1B,EAAE,sBAEpBe,QAAQC,IAAI,0CAA2CC,EAAa3C,KAAKV,kBAErD,OAAhBqD,GAAwBA,EAAc3C,KAAKV,kBAC3C8D,EAAYvB,WAAW,WACvBuB,EAAYvB,WAAW,cAAec,GACtCS,EAAYvB,WAAW,WAAYsB,GACnCC,EAAYC,QAEZD,EAAYE,MAEpB,EAEAhB,aAAc,SAAUiB,GACTvD,KAAKuB,iBAAiBgC,GAC5B/B,KACD,SAAUC,GACNgB,QAAQC,IAAI,+BAAgCjB,GAE5CC,EAAE,oBAAoBC,KAAKF,EAAOG,aAElC5B,KAAK4C,aAAanB,EAAOM,iBAAkBwB,GAE3ChB,uBAAuB,cAC3B,EAAElB,KAAKrB,MAEf,EAEAwD,gBAAiB,SAAUD,GAGvB,IAAIE,EAAS,CACTC,eAAgB1D,KAAKV,iBACrBqE,SAAU3D,KAAKR,SACfoE,UAAW5D,KAAKT,YAChBsE,kBAAmBN,EACnBO,sBAAuB9D,KAAKN,QAC5BC,YAAaK,KAAKL,YAClBoE,gBAAiB,mBACjBb,YAAalD,KAAKkD,aAQtB,OAFAT,QAAQC,IAAIe,GAELA,CACX,EAEAlC,iBAAkB,SAAUgC,GACxB,IAAIS,EAAehE,KAAKwD,gBAAgBD,GAExC,OAAO,IAAIU,SAAQ,SAAUC,EAASC,GAClCC,MAAM,yDAA0D,CAC5DC,KAAMC,KAAKC,UAAUP,GAAeQ,OAAQ,OAAQC,QAAS,CAAEC,OAAU,mBAAoB,eAAgB,sBAE5GlD,MAAK,SAAUmD,GAEZT,EAAQS,EAASC,OACrB,IACCC,OAAMC,IACHrC,QAAQC,IAAI,SAAUoC,GACtBX,EAAOW,EAAM,GAEzB,GACJ,EAEAjC,qBAAsB,WAClB,IAAImB,EAAehE,KAAKwD,kBAExB,OAAO,IAAIS,SAAQ,SAAUC,EAASC,GAClCC,MAAM,oDAAqD,CACvDC,KAAMC,KAAKC,UAAUP,GAAeQ,OAAQ,OAAQC,QAAS,CAAEC,OAAU,mBAAoB,eAAgB,sBAE5GlD,MAAK,SAAUmD,GAEZT,EAAQS,EAASC,OACrB,IACCC,OAAMC,IACHrC,QAAQC,IAAI,SAAUoC,GACtBX,EAAOW,EAAM,GAEzB,GACJ"}