vue-paginate-z
Version:
vue paginate (typescript)
2 lines (1 loc) • 6.46 kB
JavaScript
import t from"vue";import{clsx as a}from"joinclass";function e(t,a,e,n,s,i,r,o,l,u){"boolean"!=typeof r&&(l=o,o=r,r=!1);const p="function"==typeof e?e.options:e;let c;if(t&&t.render&&(p.render=t.render,p.staticRenderFns=t.staticRenderFns,p._compiled=!0,s&&(p.functional=!0)),n&&(p._scopeId=n),i?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,l(t)),t&&t._registeredComponents&&t._registeredComponents.add(i)},p._ssrRegister=c):a&&(c=r?function(t){a.call(this,u(t,this.$root.$options.shadowRoot))}:function(t){a.call(this,o(t))}),c)if(p.functional){const t=p.render;p.render=function(a,e){return c.call(e),t(a,e)}}else{const t=p.beforeCreate;p.beforeCreate=t?[].concat(t,c):[c]}return e}var n=e({render:function(){var t=this,a=t.$createElement,e=t._self._c||a;return t.isDefault?e("div",{staticClass:"paginate-container"},[t.showForwardBack?e("button",{staticClass:"paginate-button-nav button-previous paginate-button",attrs:{disabled:t.pageData.disabledFirstBack},on:{click:function(a){return t.onChangepage(+t.value-1)}}},[t._t("back",(function(){return[t._v(t._s(t.labelBack))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2):t._e(),t._v(" "),t.showFirstLast?e("div",{class:t.makeFirstLastclass(t.pageData.isOverPage,t.pageData.showFirst)},[e("button",{staticClass:"paginate-button-first paginate-button",attrs:{disabled:t.pageData.disabledFirstBack},on:{click:function(a){return t.onChangepage(1)}}},[t._t("first",(function(){return[t._v(t._s(t.labelFirst))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2),t._v(" "),e("span",{staticClass:"paginate-more"},[t._v("...")])]):t._e(),t._v(" "),e("div",{staticClass:"paginate-section paginate-section-number"},t._l(t.pageData.arrayNumber,(function(a){return e("button",{key:a,class:t.makePageclass(t.value===a),on:{click:function(e){return t.onChangepage(a)}}},[e("span",[t._v(t._s(a))]),t._v(" "),e("span",{staticClass:"paginate-ripple"})])})),0),t._v(" "),t.showFirstLast?e("div",{class:t.makeFirstLastclass(t.pageData.isOverPage,t.pageData.showLast)},[e("span",{staticClass:"paginate-more"},[t._v("...")]),t._v(" "),e("button",{staticClass:"paginate-button-last paginate-button",attrs:{disabled:t.pageData.disabledForwardLast},on:{click:function(a){return t.onChangepage(t.numberPages)}}},[t._t("last",(function(){return[t._v(t._s(t.labelLast))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2)]):t._e(),t._v(" "),t.showForwardBack?e("button",{staticClass:"paginate-button-nav button-forward",attrs:{disabled:t.pageData.disabledForwardLast},on:{click:function(a){return t.onChangepage(+t.value+1)}}},[t._t("forward",(function(){return[t._v(t._s(t.labelForward))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2):t._e()]):e("div",{staticClass:"paginate-container pagination-no-page"},[t.showFirstLast?e("button",{staticClass:"paginate-button-first paginate-button",attrs:{disabled:t.pageData.disabledFirstBack},on:{click:function(a){return t.onChangepage(1)}}},[t._t("first",(function(){return[t._v(t._s(t.labelFirst))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2):t._e(),t._v(" "),e("button",{staticClass:"paginate-button-nav button-previous paginate-button",attrs:{disabled:t.pageData.disabledFirstBack},on:{click:function(a){return t.onChangepage(+t.value-1)}}},[t._t("back",(function(){return[t._v(t._s(t.labelBack))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2),t._v(" "),e("div",{staticClass:"pagination-number"},[e("div",{staticClass:"pagination-current"},[t._v("\n "+t._s(t.pageData.isOverPage?t.numberPages:t.value)+"\n ")]),t._v(" "),e("div",{staticClass:"pagination-separator"},[t._v("/")]),t._v(" "),e("div",{staticClass:"pagination-totals"},[t._v("\n "+t._s(t.numberPages)+"\n ")])]),t._v(" "),e("button",{staticClass:"paginate-button-nav button-forward",attrs:{disabled:t.pageData.disabledForwardLast},on:{click:function(a){return t.onChangepage(+t.value+1)}}},[t._t("forward",(function(){return[t._v(t._s(t.labelForward))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2),t._v(" "),t.showFirstLast?e("button",{staticClass:"paginate-button-last paginate-button",attrs:{disabled:t.pageData.disabledForwardLast},on:{click:function(a){return t.onChangepage(t.numberPages)}}},[t._t("last",(function(){return[t._v(t._s(t.labelLast))]})),t._v(" "),e("span",{staticClass:"paginate-ripple"})],2):t._e()])},staticRenderFns:[]},undefined,t.extend({name:"Paginate",props:{totalCount:{required:!0,type:[Number,String]},value:{type:[Number,String],default:()=>1},limit:{type:[Number,String],default:()=>10},section:{type:[Number,String],default:()=>5},type:{type:String,default:()=>"default"},labelFirst:{type:String,default:()=>"|<<"},labelLast:{type:String,default:()=>">>|"},labelBack:{type:String,default:()=>"<"},labelForward:{type:String,default:()=>">"},showFirstLast:{type:Boolean,default:()=>!0},showForwardBack:Boolean,hideFirstLastIfActive:Boolean},data:()=>({}),mounted(){this.fixPageNumber()},watch:{value(){this.fixPageNumber()}},computed:{hasData(){return!(!this.totalCount||!this.limit)},numberPages(){return this.hasData?Math.ceil(+this.totalCount/+this.limit):1},pageData(){return this.makePager()},isDefault(){return"default"===this.type}},methods:{fixPageNumber(){this.value<=0&&this.onChangepage(1),this.value>this.numberPages&&this.onChangepage(this.numberPages)},makePager(){let{section:t,numberPages:a,value:e,type:n}=this;t<3&&(t=3),t>a&&(t=a);let s=e>2,i=+e+ +t<=a+1,r=e>a,o=r||e<=1,l=r||e>=a;if("default"!==n)return{showFirst:s,showLast:i,isOverPage:r,disabledFirstBack:o,disabledForwardLast:l};r=r||a<=t,o=r||e<=1,l=r||e>=a;let u=[],p=+e-1;p<=0&&(p=1);let c=p+ +t;c>a&&(c=a+1,p=c-+t);for(let t=p;t<c;t++)u.push(t);return{showFirst:s,showLast:i,isOverPage:r,disabledFirstBack:o,disabledForwardLast:l,arrayNumber:u}},makeFirstLastclass(t,e){return a("paginate-section paginate-section-nav",""+(!t&&e?"paginate-show":"paginate-hide"),this.hideFirstLastIfActive&&"paginate-hide-now")},makePageclass:t=>a("paginate-numbered",t&&"paginate-numbered-active","paginate-button"),onChangepage(t){this.$emit("input",t)}}}),undefined,false,undefined,!1,void 0,void 0,void 0),s=Object.freeze({__proto__:null,Paginate:n});const i=function(t){Object.entries(s).forEach((a=>{let[e,n]=a;t.component(e,n)}))};export{n as Paginate,i as default};