UNPKG

vue3-paginate-z

Version:
2 lines (1 loc) 5.63 kB
import{defineComponent as a,openBlock as e,createElementBlock as t,renderSlot as s,createTextVNode as i,toDisplayString as n,createCommentVNode as l,normalizeClass as o,createElementVNode as r,Fragment as p,renderList as d}from"vue";import{clsx as g}from"joinclass";var u=a({name:"Paginate",props:{totalCount:{required:!0,type:[Number,String]},modelValue:{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},emits:["update:modelValue"],data:()=>({}),mounted(){this.fixPageNumber()},watch:{modelValue(){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.modelValue<=0&&this.onChangepage(1),this.modelValue>this.numberPages&&this.onChangepage(this.numberPages)},makePager(){let{section:a,numberPages:e,modelValue:t,type:s}=this;a<3&&(a=3),a>e&&(a=e);let i=t>2,n=+t+ +a<=e+1,l=t>e,o=l||t<=1,r=l||t>=e;if("default"!==s)return{showFirst:i,showLast:n,isOverPage:l,disabledFirstBack:o,disabledForwardLast:r};l=l||e<=a,o=l||t<=1,r=l||t>=e;let p=[],d=+t-1;d<=0&&(d=1);let g=d+ +a;g>e&&(g=e+1,d=g-+a);for(let a=d;a<g;a++)p.push(a);return{showFirst:i,showLast:n,isOverPage:l,disabledFirstBack:o,disabledForwardLast:r,arrayNumber:p}},makeFirstLastclass(a,e){return g("paginate-section paginate-section-nav",""+(!a&&e?"paginate-show":"paginate-hide"),this.hideFirstLastIfActive&&"paginate-hide-now")},makePageclass:a=>g("paginate-numbered",a&&"paginate-numbered-active","paginate-button"),onChangepage(a){this.$emit("update:modelValue",a)}}});const b={key:0,class:"paginate-container"},c=["disabled"],m=r("span",{class:"paginate-ripple"},null,-1),h=["disabled"],k=r("span",{class:"paginate-ripple"},null,-1),f=r("span",{class:"paginate-more"},"...",-1),F={class:"paginate-section paginate-section-number"},w=["onClick"],v=r("span",{class:"paginate-ripple"},null,-1),C=r("span",{class:"paginate-more"},"...",-1),y=["disabled"],P=r("span",{class:"paginate-ripple"},null,-1),L=["disabled"],D=r("span",{class:"paginate-ripple"},null,-1),B={key:1,class:"paginate-container pagination-no-page"},V=["disabled"],N=r("span",{class:"paginate-ripple"},null,-1),S=["disabled"],$=r("span",{class:"paginate-ripple"},null,-1),O={class:"pagination-number"},x={class:"pagination-current"},_=r("div",{class:"pagination-separator"},"/",-1),j={class:"pagination-totals"},A=["disabled"],I=r("span",{class:"paginate-ripple"},null,-1),q=["disabled"],z=r("span",{class:"paginate-ripple"},null,-1);u.render=function(a,g,u,E,M,G){return a.isDefault?(e(),t("div",b,[a.showForwardBack?(e(),t("button",{key:0,class:"paginate-button-nav button-previous paginate-button",disabled:a.pageData.disabledFirstBack,onClick:g[0]||(g[0]=e=>a.onChangepage(+a.modelValue-1))},[s(a.$slots,"back",{},(()=>[i(n(a.labelBack),1)])),m],8,c)):l("",!0),a.showFirstLast?(e(),t("div",{key:1,class:o(a.makeFirstLastclass(a.pageData.isOverPage,a.pageData.showFirst))},[r("button",{class:"paginate-button-first paginate-button",disabled:a.pageData.disabledFirstBack,onClick:g[1]||(g[1]=e=>a.onChangepage(1))},[s(a.$slots,"first",{},(()=>[i(n(a.labelFirst),1)])),k],8,h),f],2)):l("",!0),r("div",F,[(e(!0),t(p,null,d(a.pageData.arrayNumber,(s=>(e(),t("button",{key:s,class:o(a.makePageclass(a.modelValue===s)),onClick:e=>a.onChangepage(s)},[r("span",null,n(s),1),v],10,w)))),128))]),a.showFirstLast?(e(),t("div",{key:2,class:o(a.makeFirstLastclass(a.pageData.isOverPage,a.pageData.showLast))},[C,r("button",{class:"paginate-button-last paginate-button",disabled:a.pageData.disabledForwardLast,onClick:g[2]||(g[2]=e=>a.onChangepage(a.numberPages))},[s(a.$slots,"last",{},(()=>[i(n(a.labelLast),1)])),P],8,y)],2)):l("",!0),a.showForwardBack?(e(),t("button",{key:3,class:"paginate-button-nav button-forward",disabled:a.pageData.disabledForwardLast,onClick:g[3]||(g[3]=e=>a.onChangepage(+a.modelValue+1))},[s(a.$slots,"forward",{},(()=>[i(n(a.labelForward),1)])),D],8,L)):l("",!0)])):(e(),t("div",B,[a.showFirstLast?(e(),t("button",{key:0,class:"paginate-button-first paginate-button",disabled:a.pageData.disabledFirstBack,onClick:g[4]||(g[4]=e=>a.onChangepage(1))},[s(a.$slots,"first",{},(()=>[i(n(a.labelFirst),1)])),N],8,V)):l("",!0),r("button",{class:"paginate-button-nav button-previous paginate-button",disabled:a.pageData.disabledFirstBack,onClick:g[5]||(g[5]=e=>a.onChangepage(+a.modelValue-1))},[s(a.$slots,"back",{},(()=>[i(n(a.labelBack),1)])),$],8,S),r("div",O,[r("div",x,n(a.pageData.isOverPage?a.numberPages:a.modelValue),1),_,r("div",j,n(a.numberPages),1)]),r("button",{class:"paginate-button-nav button-forward",disabled:a.pageData.disabledForwardLast,onClick:g[6]||(g[6]=e=>a.onChangepage(+a.modelValue+1))},[s(a.$slots,"forward",{},(()=>[i(n(a.labelForward),1)])),I],8,A),a.showFirstLast?(e(),t("button",{key:1,class:"paginate-button-last paginate-button",disabled:a.pageData.disabledForwardLast,onClick:g[7]||(g[7]=e=>a.onChangepage(a.numberPages))},[s(a.$slots,"last",{},(()=>[i(n(a.labelLast),1)])),z],8,q)):l("",!0)]))};var E=Object.freeze({__proto__:null,Paginate:u});const M=function(a){Object.entries(E).forEach((e=>{let[t,s]=e;a.component(t,s)}))};export{u as Paginate,M as default};