{"version":3,"file":"TEKsystems.SitecoreXP.PageSearchResults.js","names":["define","$","init","scope","$pagination","$searchResultComponent","closest","$divPageResult","find","resultUrl","attr","pageCount","currentIndex","usePageButtons","$pageList","append","$previousBtn","$nextBtn","click","hasClass","getNextResults","updatePagination","pageIndex","resultsUrl","success","ajax","type","url","tilesHtml","html","resultCount","length","trigger","resultsCount","toggleClass","pages","nextUntil","off","remove","firstIndex","getMinimumIndex","lastIndex","Math","min","getMaximumIndex","i","before","parseInt","this","resetPaging","minimumDelta","floor","MaxAvailablePages","minimumIndex","max","args"],"sources":["site/TEKsystems.SitecoreXP.PageSearchResults.js"],"mappings":"AAAAA,OAAO,CACH,WAEJ,SAAUC,GACN,IAEIC,EAAO,SAAUC,GACjB,IAAIC,EAAcH,EAAE,cAAeE,GAC/BE,EAAyBD,EAAYE,QAAQ,uBAC7CC,EAAiBF,EAAuBG,KAAK,kBAE7CC,EAAYL,EAAYM,KAAK,YAC7BC,EAAYP,EAAYM,KAAK,mBAC7BE,EAAe,EACfC,EAAuD,KAAtCT,EAAYM,KAAK,kBAEtC,KAAIC,GAAa,GAAjB,CAGA,IAAIG,EAAYb,EAAE,gCAClBG,EAAYW,OAAOD,GAGnB,IAAIE,EAAef,EAAE,4CACjBgB,EAAWhB,EAAE,wCACjBa,EAAUC,OAAOC,EAAcC,GAE/BD,EAAaE,OAAM,WACVF,EAAaG,SAAS,aAAaC,IAAiBR,EAAcH,EAAWY,EACtF,IACAJ,EAASC,OAAM,WACND,EAASE,SAAS,aAAaC,IAAiBR,EAAcH,EAAWY,EAClF,IAEAA,GAlB0B,CAsB1B,SAASD,EAAeE,EAAWC,EAAYC,GAC3CvB,EAAEwB,KAAK,CACHC,KAAM,MACNC,IAAKJ,EAAa,SAAWD,EAC7BE,QAAS,SAAUI,GACfrB,EAAesB,KAAKD,GAEpB,IAAIE,EAAc7B,EAAE,mBAAoB2B,GAAWG,OACnD1B,EAAuB2B,QAAQ,iBAAkB,CAAEC,aAAcH,IAEjEN,GACJ,GAER,CAEA,SAASH,IAELL,EAAakB,YAAY,WAAYtB,GAAgB,GACrDK,EAASiB,YAAY,WAAYtB,GAAiBD,EAAY,GAE1DE,GAGR,WAEI,IAAIsB,EAAQnB,EAAaoB,UAAUnB,GACnCkB,EAAME,IAAI,SACVF,EAAMG,SAMN,IAHA,IAAIC,EAAaC,EAAgB5B,EAAcD,GAC3C8B,EAqBR,SAAyBnB,EAAWX,GAChC,OAAO+B,KAAKC,IAAIhC,EAAW6B,EAAgBlB,EAAWX,GAvFtC,EAwFpB,CAvBoBiC,CAAgBhC,EAAcD,GAErCkC,EAAIN,EAAYM,EAAIJ,EAAWI,IACpC5B,EAAS6B,OAAO7C,EAAE,mBAAqB4C,EAAI,YAAcA,EAAI,GAAK,gBAAgBX,YAAY,SAAUtB,IAAiBiC,IAG7H7B,EAAaoB,UAAUnB,GAAUC,OAAM,WAEnCE,EADAR,EAAemC,SAAS9C,EAAE+C,MAAMtC,KAAK,eACRD,EAAWY,EAC5C,GACJ,CArBwB4B,EACxB,CAuBA,SAAST,EAAgBlB,EAAWX,GAChC,IAAIuC,EAAeR,KAAKS,MAAMC,KAE1BC,EAAeX,KAAKC,IAAIrB,EAAY4B,EAAcvC,EAjFtC,GAmFhB,OAAO+B,KAAKY,IAAI,EAAGD,EACvB,CAKJ,EAEA,OAAO,SAAUE,GACnBrD,EAAKqD,EAAKpD,MACR,CACJ","sourcesContent":["define([\r\n \"jquery\"\r\n],\r\nfunction ($) {\r\n var MaxAvailablePages = 5;\r\n\r\n var init = function (scope) {\r\n var $pagination = $('.pagination', scope);\r\n var $searchResultComponent = $pagination.closest('.tek-search-results');\r\n var $divPageResult = $searchResultComponent.find('.divPageResult');\r\n\r\n var resultUrl = $pagination.attr('data-url');\r\n var pageCount = $pagination.attr('data-page-count');\r\n var currentIndex = 0;\r\n var usePageButtons = $pagination.attr('data-use-pages') == '0' ? false : true;\r\n\t \r\n if (pageCount <= 1) return;\r\n\r\n // Setup list\r\n var $pageList = $('');\r\n $pagination.append($pageList);\r\n\r\n // Setup previous and next button behavior\r\n var $previousBtn = $('
  • <
  • ');\r\n var $nextBtn = $('
  • >
  • ');\r\n $pageList.append($previousBtn, $nextBtn);\r\n\r\n $previousBtn.click(function () {\r\n if (!$previousBtn.hasClass('disabled')) getNextResults(--currentIndex, resultUrl, updatePagination);\r\n });\r\n $nextBtn.click(function () {\r\n if (!$nextBtn.hasClass('disabled')) getNextResults(++currentIndex, resultUrl, updatePagination);\r\n });\r\n\r\n updatePagination();\r\n\r\n\r\n\r\n function getNextResults(pageIndex, resultsUrl, success) {\r\n $.ajax({\r\n type: 'GET',\r\n url: resultsUrl + '&page=' + pageIndex,\r\n success: function (tilesHtml) {\r\n $divPageResult.html(tilesHtml);\r\n\r\n var resultCount = $(\".tek-search-item\", tilesHtml).length;\r\n $searchResultComponent.trigger('search:updated', { resultsCount: resultCount });\r\n\r\n success();\r\n }\r\n });\r\n }\r\n\r\n function updatePagination() {\r\n // update next and previous button availability\r\n $previousBtn.toggleClass('disabled', currentIndex <= 0);\r\n $nextBtn.toggleClass('disabled', currentIndex >= (pageCount - 1));\r\n\r\n if (usePageButtons) resetPaging();\r\n }\r\n\r\n function resetPaging() {\r\n // remove old paging\r\n var pages = $previousBtn.nextUntil($nextBtn);\r\n pages.off('click');\r\n pages.remove();\r\n\r\n // Create new paging\r\n var firstIndex = getMinimumIndex(currentIndex, pageCount);\r\n var lastIndex = getMaximumIndex(currentIndex, pageCount);\r\n\r\n for (var i = firstIndex; i < lastIndex; i++) {\r\n $nextBtn.before($('
  • ' + (i + 1) + '
  • ').toggleClass('active', currentIndex === i));\r\n }\r\n\r\n $previousBtn.nextUntil($nextBtn).click(function () {\r\n currentIndex = parseInt($(this).attr('data-index'));\r\n getNextResults(currentIndex, resultUrl, updatePagination);\r\n });\r\n }\r\n\r\n\r\n function getMinimumIndex(pageIndex, pageCount) {\r\n var minimumDelta = Math.floor(MaxAvailablePages / 2);\r\n\r\n var minimumIndex = Math.min(pageIndex - minimumDelta, pageCount - MaxAvailablePages);\r\n\r\n return Math.max(0, minimumIndex);\r\n }\r\n\r\n function getMaximumIndex(pageIndex, pageCount) {\r\n return Math.min(pageCount, getMinimumIndex(pageIndex, pageCount) + MaxAvailablePages);\r\n }\r\n }\r\n\r\n return function (args) {\r\n\t\tinit(args.scope);\r\n }\r\n});\r\n"]}