UNPKG

primevue

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue) [![Discord Chat](https://img.shields.io/discord/55794023

2 lines (1 loc) 11 kB
import{openBlock as e,createElementBlock as t,toDisplayString as a,resolveDirective as n,withDirectives as i,normalizeClass as r,createElementVNode as s,Fragment as o,renderList as p,createTextVNode as l,resolveComponent as g,createBlock as u,renderSlot as d,createCommentVNode as c}from"vue";import h from"primevue/ripple";import m from"primevue/dropdown";import P from"primevue/inputnumber";var f={name:"CurrentPageReport",inheritAttrs:!1,props:{pageCount:{type:Number,default:0},currentPage:{type:Number,default:0},page:{type:Number,default:0},first:{type:Number,default:0},rows:{type:Number,default:0},totalRecords:{type:Number,default:0},template:{type:String,default:"({currentPage} of {totalPages})"}},computed:{text(){return this.template.replace("{currentPage}",this.currentPage).replace("{totalPages}",this.pageCount).replace("{first}",this.pageCount>0?this.first+1:0).replace("{last}",Math.min(this.first+this.rows,this.totalRecords)).replace("{rows}",this.rows).replace("{totalRecords}",this.totalRecords)}}};const b={class:"p-paginator-current"};f.render=function(n,i,r,s,o,p){return e(),t("span",b,a(p.text),1)};var k={name:"FirstPageLink",computed:{containerClass(){return["p-paginator-first p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:h}};const w=[s("span",{class:"p-paginator-icon pi pi-angle-double-left"},null,-1)];k.render=function(a,s,o,p,l,g){const u=n("ripple");return i((e(),t("button",{class:r(g.containerClass),type:"button"},w,2)),[[u]])};var y={name:"LastPageLink",computed:{containerClass(){return["p-paginator-last p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:h}};const C=[s("span",{class:"p-paginator-icon pi pi-angle-double-right"},null,-1)];y.render=function(a,s,o,p,l,g){const u=n("ripple");return i((e(),t("button",{class:r(g.containerClass),type:"button"},C,2)),[[u]])};var v={name:"NextPageLink",computed:{containerClass(){return["p-paginator-next p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:h}};const L=[s("span",{class:"p-paginator-icon pi pi-angle-right"},null,-1)];v.render=function(a,s,o,p,l,g){const u=n("ripple");return i((e(),t("button",{class:r(g.containerClass),type:"button"},L,2)),[[u]])};var x={name:"PageLinks",inheritAttrs:!1,emits:["click"],props:{value:Array,page:Number},methods:{onPageLinkClick(e,t){this.$emit("click",{originalEvent:e,value:t})}},directives:{ripple:h}};const R={class:"p-paginator-pages"},N=["onClick"];x.render=function(s,g,u,d,c,h){const m=n("ripple");return e(),t("span",R,[(e(!0),t(o,null,p(u.value,(n=>i((e(),t("button",{key:n,class:r(["p-paginator-page p-paginator-element p-link",{"p-highlight":n-1===u.page}]),type:"button",onClick:e=>h.onPageLinkClick(e,n)},[l(a(n),1)],10,N)),[[m]]))),128))])};var T={name:"PrevPageLink",computed:{containerClass(){return["p-paginator-prev p-paginator-element p-link",{"p-disabled":this.$attrs.disabled}]}},directives:{ripple:h}};const _=[s("span",{class:"p-paginator-icon pi pi-angle-left"},null,-1)];T.render=function(a,s,o,p,l,g){const u=n("ripple");return i((e(),t("button",{class:r(g.containerClass),type:"button"},_,2)),[[u]])};var D={name:"RowsPerPageDropdown",inheritAttrs:!1,emits:["rows-change"],props:{options:Array,rows:Number,disabled:Boolean},methods:{onChange(e){this.$emit("rows-change",e)}},computed:{rowsOptions(){let e=[];if(this.options)for(let t=0;t<this.options.length;t++)e.push({label:String(this.options[t]),value:this.options[t]});return e}},components:{RPPDropdown:m}};D.render=function(t,a,n,i,r,s){const o=g("RPPDropdown");return e(),u(o,{modelValue:n.rows,options:s.rowsOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":a[0]||(a[0]=e=>s.onChange(e)),class:"p-paginator-rpp-options",disabled:n.disabled},null,8,["modelValue","options","disabled"])};var $={name:"JumpToPageDropdown",inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},methods:{onChange(e){this.$emit("page-change",e)}},computed:{pageOptions(){let e=[];for(let t=0;t<this.pageCount;t++)e.push({label:String(t+1),value:t});return e}},components:{JTPDropdown:m}};$.render=function(t,a,n,i,r,s){const o=g("JTPDropdown");return e(),u(o,{modelValue:n.page,options:s.pageOptions,optionLabel:"label",optionValue:"value","onUpdate:modelValue":a[0]||(a[0]=e=>s.onChange(e)),class:"p-paginator-page-options",disabled:n.disabled},null,8,["modelValue","options","disabled"])};var S={name:"JumpToPageInput",inheritAttrs:!1,emits:["page-change"],props:{page:Number,pageCount:Number,disabled:Boolean},methods:{onChange(e){this.$emit("page-change",e-1)}},components:{JTPInput:P}};S.render=function(t,a,n,i,r,s){const o=g("JTPInput");return e(),u(o,{modelValue:n.page,"onUpdate:modelValue":a[0]||(a[0]=e=>s.onChange(e)),class:"p-paginator-page-input",disabled:n.disabled},null,8,["modelValue","disabled"])};var J={name:"Paginator",emits:["update:first","update:rows","page"],props:{totalRecords:{type:Number,default:0},rows:{type:Number,default:0},first:{type:Number,default:0},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},template:{type:String,default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},currentPageReportTemplate:{type:null,default:"({currentPage} of {totalPages})"},alwaysShow:{type:Boolean,default:!0}},data(){return{d_first:this.first,d_rows:this.rows}},watch:{first(e){this.d_first=e},rows(e){this.d_rows=e},totalRecords(e){this.page>0&&e&&this.d_first>=e&&this.changePage(this.pageCount-1)}},methods:{changePage(e){const t=this.pageCount;if(e>=0&&e<t){this.d_first=this.d_rows*e;const a={page:e,first:this.d_first,rows:this.d_rows,pageCount:t};this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",a)}},changePageToFirst(e){this.isFirstPage||this.changePage(0),e.preventDefault()},changePageToPrev(e){this.changePage(this.page-1),e.preventDefault()},changePageLink(e){this.changePage(e.value-1),e.originalEvent.preventDefault()},changePageToNext(e){this.changePage(this.page+1),e.preventDefault()},changePageToLast(e){this.isLastPage||this.changePage(this.pageCount-1),e.preventDefault()},onRowChange(e){this.d_rows=e,this.changePage(this.page)}},computed:{templateItems(){let e=[];return this.template.split(" ").map((t=>{e.push(t.trim())})),e},page(){return Math.floor(this.d_first/this.d_rows)},pageCount(){return Math.ceil(this.totalRecords/this.d_rows)},isFirstPage(){return 0===this.page},isLastPage(){return this.page===this.pageCount-1},calculatePageLinkBoundaries(){const e=this.pageCount,t=Math.min(this.pageLinkSize,e);let a=Math.max(0,Math.ceil(this.page-t/2)),n=Math.min(e-1,a+t-1);const i=this.pageLinkSize-(n-a+1);return a=Math.max(0,a-i),[a,n]},pageLinks(){let e=[],t=this.calculatePageLinkBoundaries,a=t[0],n=t[1];for(var i=a;i<=n;i++)e.push(i+1);return e},currentState(){return{page:this.page,first:this.d_first,rows:this.d_rows}},empty(){return 0===this.pageCount},currentPage(){return this.pageCount>0?this.page+1:0}},components:{CurrentPageReport:f,FirstPageLink:k,LastPageLink:y,NextPageLink:v,PageLinks:x,PrevPageLink:T,RowsPerPageDropdown:D,JumpToPageDropdown:$,JumpToPageInput:S}};const F={key:0,class:"p-paginator p-component"},V={key:0,class:"p-paginator-left-content"},A={key:1,class:"p-paginator-right-content"};!function(e,t){void 0===t&&(t={});var a=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===a&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}("\n.p-paginator {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.p-paginator-left-content {\n\tmargin-right: auto;\n}\n.p-paginator-right-content {\n\tmargin-left: auto;\n}\n.p-paginator-page,\n.p-paginator-next,\n.p-paginator-last,\n.p-paginator-first,\n.p-paginator-prev,\n.p-paginator-current {\n cursor: pointer;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n line-height: 1;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n position: relative;\n}\n.p-paginator-element:focus {\n z-index: 1;\n position: relative;\n}\n"),J.render=function(a,n,i,r,s,l){const h=g("FirstPageLink"),m=g("PrevPageLink"),P=g("NextPageLink"),f=g("LastPageLink"),b=g("PageLinks"),k=g("CurrentPageReport"),w=g("RowsPerPageDropdown"),y=g("JumpToPageDropdown"),C=g("JumpToPageInput");return i.alwaysShow||l.pageLinks&&l.pageLinks.length>1?(e(),t("div",F,[a.$slots.start?(e(),t("div",V,[d(a.$slots,"start",{state:l.currentState})])):c("",!0),(e(!0),t(o,null,p(l.templateItems,(a=>(e(),t(o,{key:a},["FirstPageLink"===a?(e(),u(h,{key:0,onClick:n[0]||(n[0]=e=>l.changePageToFirst(e)),disabled:l.isFirstPage||l.empty},null,8,["disabled"])):"PrevPageLink"===a?(e(),u(m,{key:1,onClick:n[1]||(n[1]=e=>l.changePageToPrev(e)),disabled:l.isFirstPage||l.empty},null,8,["disabled"])):"NextPageLink"===a?(e(),u(P,{key:2,onClick:n[2]||(n[2]=e=>l.changePageToNext(e)),disabled:l.isLastPage||l.empty},null,8,["disabled"])):"LastPageLink"===a?(e(),u(f,{key:3,onClick:n[3]||(n[3]=e=>l.changePageToLast(e)),disabled:l.isLastPage||l.empty},null,8,["disabled"])):"PageLinks"===a?(e(),u(b,{key:4,value:l.pageLinks,page:l.page,onClick:n[4]||(n[4]=e=>l.changePageLink(e))},null,8,["value","page"])):"CurrentPageReport"===a?(e(),u(k,{key:5,template:i.currentPageReportTemplate,currentPage:l.currentPage,page:l.page,pageCount:l.pageCount,first:s.d_first,rows:s.d_rows,totalRecords:i.totalRecords},null,8,["template","currentPage","page","pageCount","first","rows","totalRecords"])):"RowsPerPageDropdown"===a&&i.rowsPerPageOptions?(e(),u(w,{key:6,rows:s.d_rows,options:i.rowsPerPageOptions,onRowsChange:n[5]||(n[5]=e=>l.onRowChange(e)),disabled:l.empty},null,8,["rows","options","disabled"])):"JumpToPageDropdown"===a?(e(),u(y,{key:7,page:l.page,pageCount:l.pageCount,onPageChange:n[6]||(n[6]=e=>l.changePage(e)),disabled:l.empty},null,8,["page","pageCount","disabled"])):"JumpToPageInput"===a?(e(),u(C,{key:8,page:l.currentPage,onPageChange:n[7]||(n[7]=e=>l.changePage(e)),disabled:l.empty},null,8,["page","disabled"])):c("",!0)],64)))),128)),a.$slots.end?(e(),t("div",A,[d(a.$slots,"end",{state:l.currentState})])):c("",!0)])):c("",!0)};export{J as default};