{"version":3,"file":"SearchPaging.js","names":["define","$","handlebars","searchFilter","pagingScope","itemId","currentIndex","url","pageItemId","Load","scope","data","type","this","substring","length","slice","LoadPaginationNumbered","LoadPaginationShowMore","LoadPagination","templateSource","html","paging","compile","template","append","pageCount","PageCount","hide","$pageList","$previousBtn","$nextBtn","click","searchPaging","PaginationPrevious","PaginationNext","PaginationUpdate","previousBtn","nextBtn","toggleClass","pages","nextUntil","off","remove","firstIndex","Math","max","min","floor","lastIndex","i","before","ChangePageClick","event","button","target","parentElement","hasClass","PaginationChangePage","ShowMoreClick","parseInt","attr","GetUrlQuery","resultsByPage","GetPage","ParseResults","ChangePage","pageIndex","Number","find","last","totalCount","AddPage","trigger","resultsCount","filter","topPosition","window","scrollTop","parseResults","success","ajax"],"sources":["site/Components/SearchPaging.js"],"mappings":"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","sourcesContent":["define([\"jquery\", \"handlebars\", \"site/TEKsystems.SitecoreXP.SearchFilter\"],\r\nfunction ($, handlebars, searchFilter) {\r\n\treturn {\r\n\t\t//\r\n\t\tpagingScope: null,\r\n\t\titemId: null,\r\n currentIndex: 0,\r\n url: \"/Base/search/filteredsearchresult/GetJsonSearchResultPage\",\r\n pageItemId: null, \r\n\r\n Load: function (scope, data, type, itemId, pageItemId, url) {\r\n\t\t\tthis.pagingScope = scope;\r\n\t\t\tthis.itemId = itemId;\r\n this.currentIndex = 0;\r\n this.pageItemId = pageItemId;\r\n if (url) {\r\n if (url.substring(url.length - 1) == \"?\") {\r\n this.url = url.slice(0, -1);\r\n }\r\n else {\r\n this.url = url;\r\n }\r\n }\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase 'Pagination': // list\r\n\t\t\t\t\tthis.LoadPaginationNumbered(scope, data);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'GetMoreButton': // tiles\r\n\t\t\t\t\tthis.LoadPaginationShowMore(scope, data);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tLoadPagination: function(scope, data) {\r\n var templateSource = $(\"#search-handlebar-template-paging\", scope).html();\r\n if (templateSource) {\r\n var template = handlebars.compile(templateSource);\r\n var paging = template(data);\r\n $(\".tek-search-results\", scope).append(paging);\r\n }\r\n\t\t},\r\n\r\n\t\tLoadPaginationNumbered: function (scope, data) {\r\n\t\t\tthis.LoadPagination(scope, data);\r\n\r\n\t\t\t// Get Component attributes \r\n\t\t\tvar pageCount = data.PageCount;\r\n\r\n\t\t\tif (pageCount <= 1) {\r\n\t\t\t\t$(\".pagination\", scope).hide();\r\n\t\t\t} else {\r\n\t\t\t\t// Setup button behavior\r\n\r\n\t\t\t\t// Setup list\r\n\t\t\t\tvar $pageList = $('');\r\n\t\t\t\t$(\".pagination\", scope).append($pageList);\r\n\r\n\t\t\t\t// Setup previous and next button behavior\r\n\t\t\t\tvar $previousBtn = $('
  • <
  • ');\r\n\t\t\t\tvar $nextBtn = $('
  • >
  • ');\r\n\t\t\t\t$pageList.append($previousBtn, $nextBtn);\r\n\r\n\t\t\t\t$previousBtn.click({ searchPaging: this }, this.PaginationPrevious);\r\n\t\t\t\t$nextBtn.click({ searchPaging: this }, this.PaginationNext);\r\n\r\n\t\t\t\tthis.PaginationUpdate(scope, this.currentIndex, pageCount);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tPaginationUpdate: function(scope, currentIndex, pageCount) {\r\n\t\t\t//updatePagination();\r\n\t\t\tvar paging = $(\".pagination\", scope);\r\n\t\t\tvar previousBtn = $(\".previous\", paging);\r\n\t\t\tvar nextBtn = $(\".next\", paging);\r\n\t\t\t$(previousBtn).toggleClass('disabled', currentIndex <= 0);\r\n\t\t\t$(nextBtn).toggleClass('disabled', currentIndex >= (pageCount - 1));\r\n\r\n\t\t\tvar usePageButtons = $(paging).data('use-pages');\r\n\r\n\t\t\t//resetPaging() \r\n\t\t\tif (usePageButtons) {\r\n\t\t\t\t// remove old paging\r\n\t\t\t\tvar pages = $(previousBtn.nextUntil(nextBtn));\r\n\t\t\t\tpages.off('click');\r\n\t\t\t\tpages.remove();\r\n\r\n\t\t\t\t// Create new paging\r\n\t\t\t\tvar firstIndex = Math.max(0, Math.min(currentIndex - Math.floor(5 / 2), pageCount - 5));; // 5 = Maximum Available Pages\r\n\t\t\t\tvar lastIndex = Math.min(pageCount, firstIndex + 5); // 5 = Maximum Available Pages\r\n\r\n\t\t\t\tfor (var i = firstIndex; i < lastIndex; i++) {\r\n\t\t\t\t\t$(nextBtn).before($('
  • ' + (i + 1) + '
  • ')\r\n\t\t\t\t\t\t.toggleClass('active', currentIndex === i));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(previousBtn.nextUntil($(nextBtn)).click({ searchPaging: this }, this.ChangePageClick));\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tPaginationPrevious: function (event) {\r\n\t\t\tvar button = $(event.target.parentElement);\r\n\t\t\tif (!$(button).hasClass('disabled')) {\r\n\t\t\t\tevent.data.searchPaging.PaginationChangePage(--event.data.searchPaging.currentIndex, event);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tPaginationNext: function (event) {\r\n\t\t\tvar button = $(event.target.parentElement);\r\n\t\t\tif (!$(button).hasClass('disabled')) {\r\n\t\t\t\tevent.data.searchPaging.PaginationChangePage(++event.data.searchPaging.currentIndex, event);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tLoadPaginationShowMore: function (scope, data) {\r\n\t\t\tthis.LoadPagination(scope, data);\r\n\r\n\t\t\t// Get Component attributes \r\n\t\t\tvar pageCount = data.PageCount;\r\n\t\t\t\r\n\t\t\tif (pageCount <= 1) {\r\n\t\t\t\t$(\".getMoreButton button\", scope).hide();\r\n\t\t\t} else {\r\n\t\t\t\t// Setup button behavior\r\n\t\t\t\t$(\".getMoreButton button\", scope).click({ searchPaging: this }, this.ShowMoreClick);\r\n\t\t\t}\r\n\t\t\t// \r\n\t\t},\r\n\r\n\t\tChangePageClick: function (event) {\r\n\t\t\tvar currentIndex = parseInt($(event.target.parentElement).attr('data-index'));\r\n\t\t\tevent.data.searchPaging.currentIndex = currentIndex;\r\n\t\t\tevent.data.searchPaging.PaginationChangePage(currentIndex, event);\r\n\t\t},\r\n\r\n\t\tPaginationChangePage: function(currentIndex, event) {\r\n var url = event.data.searchPaging.url + searchFilter.GetUrlQuery();\r\n\t\t\tvar paging = $(\".pagination\", event.data.searchPaging.pagingScope);\r\n\t\t\tvar resultsByPage = $(paging).attr(\"data-results\"); \r\n\t\t\tevent.data.searchPaging.GetPage(\r\n\t\t\t\t0, \r\n\t\t\t\tcurrentIndex,\r\n\t\t\t\turl,\r\n\t\t\t\tevent.data.searchPaging.ParseResults,\r\n\t\t\t\tfunction (html, scope) {\r\n\t\t\t\t\tevent.data.searchPaging.PaginationUpdate(scope, currentIndex, $(\".pagination\", scope).data(\"page-count\"));\r\n\t\t\t\t\tevent.data.searchPaging.ChangePage(html, scope);\r\n\t\t\t\t},\r\n\t\t\t\tevent.data.searchPaging.pagingScope,\r\n event.data.searchPaging.itemId,\r\n event.data.searchPaging.pageItemId,\r\n resultsByPage);\r\n\t\t},\r\n\r\n\t\tShowMoreClick: function (event) {\r\n\t\t\tvar paging = $(\".getMoreButton\", event.data.searchPaging.pagingScope);\r\n\t\t\tvar resultsByPage = $(paging).attr(\"data-results\");\r\n var url = event.data.searchPaging.url + searchFilter.GetUrlQuery();\r\n\t\t\tvar pageIndex = Number($(event.data.searchPaging.pagingScope).find('.tek-search-item').last().attr(\"data-page-index\")) + 1; \r\n\t\t\tvar totalCount = $(paging).data(\"total-count\"); \r\n\t\t\tevent.data.searchPaging.GetPage(\r\n\t\t\t\ttotalCount,\r\n\t\t\t\tpageIndex,\r\n\t\t\t\turl,\r\n\t\t\t\tevent.data.searchPaging.ParseResults,\r\n\t\t\t\tevent.data.searchPaging.AddPage,\r\n\t\t\t\tevent.data.searchPaging.pagingScope,\r\n event.data.searchPaging.itemId, \r\n event.data.searchPaging.pageItemId,\r\n resultsByPage);\r\n\t\t},\r\n\r\n\t\tParseResults: function (data, scope) {\r\n\t\t\tvar templateSource = $(\"#search-handlebar-template-results-page\", scope).html();\r\n\t\t\tvar template = handlebars.compile(templateSource);\r\n\t\t\treturn template(data);\r\n\t\t},\r\n\r\n\t\tChangePage: function (html, scope) {\r\n\t\t\t$(\".divPageResult\", scope).html(html);\r\n\t\t\t\r\n\t\t\t$(scope).trigger(\"search:updated\",\r\n\t\t\t{\r\n\t\t\t\tresultsCount: $(html).filter(\".tek-search-item\").length\r\n\t\t\t});\r\n\t\t},\r\n\r\n AddPage: function (html, scope, totalCount) { \r\n var topPosition = $(window).scrollTop(); \r\n $(\".divPageResult\", scope).append(html);\r\n $(window).scrollTop(topPosition); //avoid chrome to scroll down\r\n\r\n\t\t\tif ($(scope).find(\".tek-search-item\").length >= totalCount) {\r\n\t\t\t\t$(scope).find(\".divGetMoreResults\").remove();\r\n\t\t\t}\r\n \r\n\t\t\t$(\".tek-tiles\", scope).trigger(\"search:updated\",\r\n\t\t\t{\r\n\t\t\t\tresultsCount: $(html).filter(\".tek-search-item\").length\r\n\t\t\t});\r\n\t\t},\r\n\r\n GetPage: function (totalCount, pageIndex, url, parseResults, success, scope, itemId, pageItemId, resultsByPage) {\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: url + \"&page=\" + pageIndex,\r\n data: { itemId: itemId, pageItemId: pageItemId, resultsByPage: resultsByPage },\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tvar html = data;\r\n\r\n\t\t\t\t\tif (parseResults) {\r\n\t\t\t\t\t\thtml = parseResults(data, scope);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (success) {\r\n\t\t\t\t\t\tsuccess(html, scope, totalCount);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n});"]}