PHP Classes

File: src/js/Paginator.min.js

Recommend this page to a friend!
  Packages of Nikos M.   Alt PHP Paginator   src/js/Paginator.min.js   Download  
File: src/js/Paginator.min.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Alt PHP Paginator
Generate pagination controls for Web pages
Author: By
Last change: v.1.1.0
Date: 3 months ago
Size: 4,910 bytes
 

Contents

Class file image Download
/** * Paginator * Simple and versatile Pagination class for PHP, JavaScript, Python * * @version: 1.1.0 * https://github.com/foo123/Paginator * **/ !function(t,e,n){"use strict";"undefined"!=typeof Components&&"object"==typeof Components.classes&&"object"==typeof Components.classesByID&&Components.utils&&"function"==typeof Components.utils.import?(t.$deps=t.$deps||{})&&(t.EXPORTED_SYMBOLS=[e],t[e]=t.$deps[e]=n.call(t)):"object"==typeof module&&module.exports?(module.$deps=module.$deps||{})&&(module.exports=module.$deps[e]=n.call(t)):"function"==typeof define&&define.amd&&"function"==typeof require&&"function"==typeof require.specified&&require.specified(e)?define(e,["module"],function(e){return n.moduleUri=e.uri,n.call(t)}):e in t||(t[e]=n.call(t)||1)&&"function"==typeof define&&define.amd&&define(function(){return t[e]})}("undefined"!=typeof self?self:this,"Paginator",function(a){"use strict";function e(e,t,n){var r=this;r.opts={},r.option("type","list"),r.option("max-pages",10),r.option("url-pattern","?page=(:page)"),r.option("placeholder","(:page)"),r.option("prev-text","&laquo; Previous"),r.option("next-text","Next &raquo;"),r.option("ellipsis","..."),r._totalItems=parseInt(e||0),r._itemsPerPage=parseInt(t||0),r._currentPage=parseInt(n||1),r.computeNumPages()}e.VERSION="1.1.0",e.prototype={constructor:e,opts:null,_totalItems:null,_itemsPerPage:null,_currentPage:null,_numPages:null,option:function(e,t){var n=this,r=arguments.length;return 1==r?Object.prototype.hasOwnProperty.call(n.opts,e)?n.opts[e]:a:(1<r&&(n.opts[e]=t),n)},numPages:function(){return this._numPages},totalItems:function(e){var t=this;return arguments.length?(t._totalItems=parseInt(e),t.computeNumPages()):t._totalItems},itemsPerPage:function(e){var t=this;return arguments.length?(t._itemsPerPage=parseInt(e),t.computeNumPages()):t._itemsPerPage},currentPage:function(e){var t=this;return arguments.length?(t._currentPage=parseInt(e),t):t._currentPage},pageUrl:function(e){return this.option("url-pattern").split(this.option("placeholder")).join(String(e))},prevPage:function(){return 1<this._currentPage?this._currentPage-1:null},nextPage:function(){var e=this;return e._currentPage<e._numPages?e._currentPage+1:null},prevUrl:function(){var e=this;return e.prevPage()?e.pageUrl(e.prevPage()):null},nextUrl:function(){var e=this;return e.nextPage()?e.pageUrl(e.nextPage()):null},currentPageFirstItem:function(){var e=this,t=(e._currentPage-1)*e._itemsPerPage+1;return t>e._totalItems?null:t},currentPageLastItem:function(){var e=this,t=e.currentPageFirstItem();return null==t?null:(t=t+e._itemsPerPage-1)>e._totalItems?e._totalItems:t},pages:function(){var e,t,n,r,a,s=this,u=[];if(!(s._numPages<=1))if(n=Math.max(3,s.option("max-pages")),s._numPages<=n)for(e=1,t=s._numPages;e<=t;++e)u.push(s.createPage(e,e==s._currentPage));else{for(r=Math.floor((n-3)/2),(a=(r=(r=s._currentPage+r>s._numPages?s._numPages-n+2:s._currentPage-r)<2?2:r)+n-3)>=s._numPages&&(a=s._numPages-1),u.push(s.createPage(1,1==s._currentPage)),2<r&&u.push(s.createPage(null)),e=r;e<=a;++e)u.push(s.createPage(e,e==s._currentPage));a<s._numPages-1&&u.push(s.createPage(null)),u.push(s.createPage(s._numPages,s._numPages==s._currentPage))}return u},render:function(){var e,t,n,r,a,s=this;if(s._numPages<=1)return"";if("selectbox"===s.option("type")){for(e='<div class="pagination">',s.prevUrl()&&(e+='<span class="page-previous"><a href="'+u(s.prevUrl())+'">'+s.option("prev-text")+"</a></span>"),e+='<select class="page-select">',n=0,r=(t=s.pages()).length;n<r;++n)(a=t[n]).url?e+='<option value="'+u(a.url)+'"'+(a.isCurrent?" selected":"")+">"+String(a.num)+"</option>":e+="<option disabled>"+String(a.num)+"</option>";e+="</select>",s.nextUrl()&&(e+='<span class="page-next"><a href="'+u(s.nextUrl())+'">'+s.option("next-text")+"</a></span>"),e+="</div>"}else{for(e='<ul class="pagination">',s.prevUrl()&&(e+='<li class="page-previous"><a href="'+u(s.prevUrl())+'">'+s.option("prev-text")+"</a></li>"),n=0,r=(t=s.pages()).length;n<r;++n)(a=t[n]).url?e+='<li class="page-item'+(1==a.num?" first":"")+(s._numPages==a.num?" last":"")+(a.isCurrent?" active":"")+'"><a href="'+u(a.url)+'">'+String(a.num)+"</a></li>":e+='<li class="page-item disabled"><span>'+String(a.num)+"</span></li>";s.nextUrl()&&(e+='<li class="page-next"><a href="'+u(s.nextUrl())+'">'+s.option("next-text")+"</a></li>"),e+="</ul>"}return e},toString:function(){return this.render()},computeNumPages:function(){var e=this;return e._numPages=e._itemsPerPage<=0||e._totalItems<=0?0:Math.ceil(e._totalItems/e._itemsPerPage),e},createPage:function(e,t){return null==e?{num:String(this.option("ellipsis")),url:null,isCurrent:!1}:{num:e,url:this.pageUrl(e),isCurrent:!!t}}};var t=/[&<>'"]/g;function u(e){return String(e).replace(t,function(e){switch(e){case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";default:return e}})}return e});