{"version":3,"sourceRoot":"/cv/scripts/DAC0/eng/include/lib","sources":["dataTables.paginationPlugin.select.js"],"sourcesContent":["(function ($) {\r\n function calcDisableClasses(oSettings) {\r\n var start = oSettings._iDisplayStart;\r\n var length = oSettings._iDisplayLength;\r\n var visibleRecords = oSettings.fnRecordsDisplay();\r\n var all = length === -1;\r\n \r\n // Gordey Doronin: Re-used this code from main jQuery.dataTables source code. To be consistent.\r\n var page = all ? 0 : Math.ceil(start / length);\r\n var pages = all ? 1 : Math.ceil(visibleRecords / length);\r\n \r\n var disableFirstPrevClass = (page > 0 ? '' : oSettings.oClasses.sPageButtonDisabled);\r\n var disableNextLastClass = (page < pages - 1 ? '' : oSettings.oClasses.sPageButtonDisabled);\r\n \r\n return {\r\n 'first': disableFirstPrevClass,\r\n 'previous': disableFirstPrevClass,\r\n 'next': disableNextLastClass,\r\n 'last': disableNextLastClass\r\n };\r\n }\r\n \r\n function calcCurrentPage(oSettings) {\r\n return Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;\r\n }\r\n \r\n function calcPages(oSettings) {\r\n return Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength);\r\n }\r\n \r\n var firstClassName = 'first';\r\n var previousClassName = 'previous';\r\n var nextClassName = 'next';\r\n var lastClassName = 'last';\r\n \r\n var paginateClassName = 'paginate';\r\n var paginatePageClassName = 'paginate_elem';\r\n var paginateSelectClassName = 'paginate_select';\r\n var paginatePaginationPageName = 'paginate_page';\r\n var paginatePaginationPageCountName = 'paginate_pagecount';\r\n var paginatePaginationControlWrapperName = 'paginate_control';\r\n \r\n $.fn.dataTableExt.oPagination.select = {\r\n 'fnInit': function (oSettings, nPaging, fnCallbackDraw) {\r\n var nFirst = document.createElement('span');\r\n var nPrevious = document.createElement('span');\r\n var nNext = document.createElement('span');\r\n var nLast = document.createElement('span');\r\n var nSelect = document.createElement('select');\r\n var nPageControl = document.createElement('div');\r\n \r\n var language = oSettings.oLanguage.oPaginate;\r\n var classes = oSettings.oClasses;\r\n \r\n nFirst.innerHTML = language.sFirst;\r\n nPrevious.innerHTML = language.sPrevious;\r\n nNext.innerHTML = language.sNext;\r\n nLast.innerHTML = language.sLast;\r\n nPageControl.innerHTML = language.pageControl; // clear text tokens on init\r\n\r\n var iPages = calcPages(oSettings);\r\n\r\n for (var i=1; i= oSettings.fnRecordsDisplay()) {\r\n iNewStart = (Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength) - 1) * oSettings._iDisplayLength;\r\n }\r\n \r\n oSettings._iDisplayStart = iNewStart;\r\n fnCallbackDraw(oSettings);\r\n });\r\n \r\n // Take the brutal approach to cancelling text selection.\r\n $('span', nPaging).on('mousedown', function () { return false; });\r\n $('span', nPaging).on('selectstart', function() { return false; });\r\n \r\n // If we can't page anyway, might as well not show it.\r\n if (iPages <= 1) {\r\n $(nPaging).hide();\r\n }\r\n },\r\n \r\n 'fnUpdate': function (oSettings) {\r\n if (!oSettings.aanFeatures.p) {\r\n return;\r\n }\r\n \r\n var iPages = calcPages(oSettings);\r\n var iCurrentPage = calcCurrentPage(oSettings);\r\n \r\n var an = oSettings.aanFeatures.p;\r\n if (iPages <= 1) // hide paging when we can't page\r\n {\r\n $(an).hide();\r\n return;\r\n }\r\n \r\n var disableClasses = calcDisableClasses(oSettings);\r\n \r\n $(an).show();\r\n \r\n // Enable/Disable `first` button.\r\n $(an).children('.' + firstClassName)\r\n .removeClass(oSettings.oClasses.sPageButtonDisabled)\r\n .addClass(disableClasses[firstClassName]);\r\n \r\n // Enable/Disable `prev` button.\r\n $(an).children('.' + previousClassName)\r\n .removeClass(oSettings.oClasses.sPageButtonDisabled)\r\n .addClass(disableClasses[previousClassName]);\r\n \r\n // Enable/Disable `next` button.\r\n $(an).children('.' + nextClassName)\r\n .removeClass(oSettings.oClasses.sPageButtonDisabled)\r\n .addClass(disableClasses[nextClassName]);\r\n \r\n // Enable/Disable `last` button.\r\n $(an).children('.' + lastClassName)\r\n .removeClass(oSettings.oClasses.sPageButtonDisabled)\r\n .addClass(disableClasses[lastClassName]);\r\n \r\n // Paginate select control and text\r\n $(an).find('.' + paginatePaginationPageName).text(iCurrentPage);\r\n $(an).find('.' + paginatePaginationPageCountName).text(iPages);\r\n\r\n // Select values\r\n var $pageSelect = $(an).find('.' + paginateSelectClassName);\r\n $pageSelect.children('option').remove();\r\n for (var i=1; i