{"version":3,"sources":["AjaxPager.js"],"names":["$","fn","serializeObject","o","a","this","serializeArray","each","undefined","name","push","value","ebs","paging","loadFilters","init","i","l","$list","loadList","document","on","e","preventDefault","closest","length","listId","data","page","window","scroll","_onPageScroll","_virtualScrollingSettings","complete","url","$filter","prop","postData","find","Page","LoadFilters","ListType","ShowPaging","j","val","PageSize","SortMethod","itemSelector","rowWidth","addClass","post","_processPostResult","clear","result","$result","append","_splitItems","$body","$paging","html","$resultFilters","detach","$resultPaging","replaceWith","attr","_updateBodyHtml","removeClass","virtualScrolling","scrollDivClass","remove","appendTo","virtualScrollingPage","selector","perRow","$items","$parent","parent","$new","$partialItems","slice","elementIsVisible","dataListId","element","topOfDisplay","scrollTop","bottomOfDisplay","height","elementLocation","offset","top"],"mappings":"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","file":"AjaxPager.min.js","sourcesContent":["$.fn.serializeObject = function() {\r\n var o = {};\r\n var a = this.serializeArray();\r\n $.each(a,\r\n function() {\r\n if (o[this.name] !== undefined) {\r\n if (!o[this.name].push) {\r\n o[this.name] = [o[this.name]];\r\n }\r\n o[this.name].push(this.value || '');\r\n } else {\r\n o[this.name] = this.value || '';\r\n }\r\n });\r\n return o;\r\n};\r\n\r\nvar ebs = {\r\n paging: {\r\n loadFilters: true,\r\n init: function() {\r\n $(\".paged-list\").each(function(i, l) {\r\n var $list = $(l);\r\n ebs.paging.loadList($list);\r\n });\r\n\r\n $(document)\r\n .on(\"click\",\r\n \".prod-paging ul.paging li:not(.disabled) a[data-post-value]\",\r\n function(e) {\r\n e.preventDefault();\r\n\r\n var $pageList = $(this).closest(\".listing-paging\"), $list;\r\n if ($pageList.length === 1) {\r\n var listId = $(this).closest(\".listing-paging\").data(\"listId\");\r\n $list = $(\"#\" + listId);\r\n } else {\r\n $list = $(this).closest(\".paged-list\");\r\n }\r\n var page = $(this).data(\"postValue\") | 0;\r\n\r\n ebs.paging.loadList($list, page);\r\n })\r\n .on(\"change\",\r\n \".listing-sort[data-list-id] select\",\r\n function(e) {\r\n e.preventDefault();\r\n var $list = $(\"#\" + $(this).closest(\".listing-sort\").data(\"listId\"));\r\n ebs.paging.loadList($list, 1);\r\n })\r\n .on(\"change\",\r\n \".listing-filter[data-list-id] :input\",\r\n function(e) {\r\n e.preventDefault();\r\n var $list = $(\"#\" + $(this).closest(\".listing-filter\").data(\"listId\"));\r\n ebs.paging.loadList($list, 1);\r\n });\r\n\r\n $(window).scroll(ebs.paging._onPageScroll);\r\n\r\n },\r\n\r\n loadList: function($list, page) {\r\n\r\n //List = jquery selector for the master list element\r\n //page = page number to load\r\n\r\n if (($list.data(\"isLoading\") === true || $list.data(ebs.paging._virtualScrollingSettings.complete) === true) && page > 1) {\r\n //Dont load the page twice if its already loading/complete\r\n return;\r\n }\r\n\r\n $list.data(\"isLoading\", true);\r\n\r\n if (typeof page !== \"undefined\")\r\n $list.data(\"currentPage\", page | 0);\r\n else\r\n page = $list.data(\"currentPage\") | 0;\r\n \r\n var url = $list.data(\"postAction\");\r\n var $filter = $(\".listing-filter[data-list-id='\" + $list.prop(\"id\") + \"']\");\r\n if ($filter.length === 0)\r\n $filter = $(\".listing-filter\");\r\n\r\n var postData = {};\r\n if ($filter.length > 0) {\r\n postData = $filter.find(\":input\").serializeObject();\r\n }\r\n \r\n postData.Page = page;\r\n postData.LoadFilters = ebs.paging.loadFilters;\r\n postData.ListType = $list.data(\"listType\");\r\n postData.ShowPaging = $list.data(\"pagingEnabled\");\r\n\r\n var $sorts = $(\".listing-sort[data-list-id='\" + $list.prop(\"id\") + \"']\").find(\"select\");\r\n $sorts.each(function(j, e) {\r\n var name = $(e).prop(\"name\");\r\n var val = $(e).val();\r\n\r\n postData[name] = val;\r\n });\r\n if (typeof postData.PageSize === \"undefined\")\r\n postData.PageSize = $list.data(\"defaultPageSize\");\r\n if (typeof postData.SortMethod === \"undefined\")\r\n postData.SortMethod = $list.data(\"defaultSortMethod\");\r\n\r\n var itemSelector = $list.data(\"itemSelector\");\r\n var rowWidth = $list.data(\"rowWidth\") | 0;\r\n\r\n if ($list.data(\"pagingEnabled\") || $list.data(\"virtualScroll\"))\r\n $list.addClass(\"active-overlay\");\r\n\r\n return $.post(url,\r\n postData,\r\n ebs.paging._processPostResult(itemSelector, rowWidth, $filter, $list, (page | 0) === 1));\r\n },\r\n\r\n _processPostResult: function(itemSelector, rowWidth, $filter, $list, clear) {\r\n \r\n return function(result) {\r\n var $result = $(\"
\").append(result);\r\n\r\n $result = ebs.paging._splitItems($list, $result, itemSelector, rowWidth);\r\n\r\n // reset html\r\n var $body = $(\".listing-body\", $list),\r\n $paging = $(\".listing-paging[data-list-id='\" + $list.prop(\"id\") + \"']\");\r\n\r\n\r\n if ($list.data(\"virtualScroll\") === false || clear) {\r\n //Reset virtual scrolling page\r\n $list.data(ebs.paging._virtualScrollingSettings.complete, false);\r\n $body.html(\"\");\r\n }\r\n\r\n $paging.html(\"\");\r\n\r\n var $resultFilters = $result.find(\".listing-filter\").detach();\r\n var $resultPaging = $result.find(\".prod-paging.prod-paging-bottom\").detach();\r\n\r\n if (ebs.paging.loadFilters && $resultFilters.length > 0 && $filter.length > 0) {\r\n $filter.replaceWith($resultFilters.attr(\"data-list-id\", $list.prop(\"id\")));\r\n }\r\n\r\n if ($resultPaging.length > 0 && !$list.data(\"virtualScroll\") && $list.data(\"pagingEnabled\")) {\r\n $paging.append($resultPaging);\r\n }\r\n\r\n ebs.paging._updateBodyHtml($body, $result, $list, $list.data(\"virtualScroll\"));\r\n\r\n $list.data(\"isLoading\", false);\r\n if ($list.data(\"pagingEnabled\") || $list.data(\"virtualScroll\"))\r\n $list.removeClass(\"active-overlay\");\r\n ebs.paging.loadFilters = false;\r\n };\r\n },\r\n\r\n\r\n _updateBodyHtml: function($body, $result, $list, virtualScrolling) {\r\n\r\n if (virtualScrolling === true) {\r\n\r\n $(\".\" + ebs.paging._virtualScrollingSettings.scrollDivClass, $body).remove();\r\n\r\n $(\"\").appendTo($result);\r\n\r\n var virtualScrollingPage = $list.data(ebs.paging._virtualScrollingSettings.page);\r\n\r\n if (virtualScrollingPage && virtualScrollingPage > 0) {\r\n $list.data(ebs.paging._virtualScrollingSettings.page, virtualScrollingPage + 1);\r\n } else {\r\n $list.data(ebs.paging._virtualScrollingSettings.page, 2);\r\n }\r\n\r\n //Filter out junk stuff here. (.prod-paging should be taken out because its virtual scrolling.)\r\n $(\".prod-paging\", $result).remove();\r\n $(\".msg.error\", $result).remove();\r\n\r\n $body.append($result.html());\r\n\r\n } else {\r\n $body.html($result.html());\r\n }\r\n },\r\n\r\n _splitItems: function($list, $result, selector, perRow) {\r\n\r\n var $items = $result.find(selector);\r\n var $parent = $items.parent();\r\n var $new = $(\"\");\r\n if ($parent.length > 1) {\r\n // console.log(\"items are not of a single parent\");\r\n return $result;\r\n }\r\n for (var i = 0; i < $items.length; i += perRow) {\r\n var $partialItems = $items.slice(i, i + perRow);\r\n $('').append($partialItems).appendTo($new);\r\n }\r\n\r\n //If there were 0 items loaded from the page, there must not be any more.\r\n //Mark the list as complete.\r\n if ($items.length === 0) {\r\n $list.data(ebs.paging._virtualScrollingSettings.complete, true);\r\n }\r\n\r\n $parent.html($new.html());\r\n\r\n return $result;\r\n },\r\n\r\n _virtualScrollingSettings: {\r\n complete: \"virtual-scrolling-complete\",\r\n scrollDivClass: \"virtual-scroll-list-end\"\r\n },\r\n\r\n _onPageScroll: function() {\r\n\r\n $(\".\" + ebs.paging._virtualScrollingSettings.scrollDivClass).each(function() {\r\n if (ebs.paging.elementIsVisible($(this))) {\r\n\r\n var dataListId = $(this).attr(\"data-list-id\");\r\n\r\n if (dataListId) {\r\n var $list = $(\"#\" + dataListId);\r\n\r\n if ($list.data(ebs.paging._virtualScrollingSettings.complete) !== true) {\r\n ebs.paging.loadList($list, ($list.data(\"currentPage\") | 0) + 1);\r\n }\r\n }\r\n\r\n }\r\n });\r\n\r\n },\r\n\r\n elementIsVisible: function(element) {\r\n var topOfDisplay = $(window).scrollTop();\r\n var bottomOfDisplay = $(window).scrollTop() + $(window).height();\r\n var elementLocation = $(element).offset().top;\r\n return bottomOfDisplay - 200 > elementLocation && elementLocation > topOfDisplay;\r\n }\r\n\r\n\r\n }\r\n};\r\n\r\n$(function() {\r\n ebs.paging.init();\r\n});"]}