primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 5.15 kB
JavaScript
import t from"primevue/basecomponent";import e from"primevue/paginator";import{ObjectUtils as a}from"primevue/utils";import{resolveComponent as r,openBlock as o,createElementBlock as s,mergeProps as i,renderSlot as n,createCommentVNode as l,createBlock as p,normalizeClass as d,createSlots as g,withCtx as u,createElementVNode as m,Fragment as h,renderList as f}from"vue";var y={name:"DataView",extends:t,emits:["update:first","update:rows","page"],props:{value:{type:Array,default:null},layout:{type:String,default:"list"},rows:{type:Number,default:0},first:{type:Number,default:0},totalRecords:{type:Number,default:0},paginator:{type:Boolean,default:!1},paginatorPosition:{type:String,default:"bottom"},alwaysShowPaginator:{type:Boolean,default:!0},paginatorTemplate:{type:String,default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},currentPageReportTemplate:{type:String,default:"({currentPage} of {totalPages})"},sortField:{type:[String,Function],default:null},sortOrder:{type:Number,default:null},lazy:{type:Boolean,default:!1},dataKey:{type:String,default:null}},data(){return{d_first:this.first,d_rows:this.rows}},watch:{first(t){this.d_first=t},rows(t){this.d_rows=t},sortField(){this.resetPage()},sortOrder(){this.resetPage()}},methods:{getKey(t,e){return this.dataKey?a.resolveFieldData(t,this.dataKey):e},onPage(t){this.d_first=t.first,this.d_rows=t.rows,this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",t)},sort(){if(this.value){const t=[...this.value];return t.sort(((t,e)=>{let r=a.resolveFieldData(t,this.sortField),o=a.resolveFieldData(e,this.sortField),s=null;return s=null==r&&null!=o?-1:null!=r&&null==o?1:null==r&&null==o?0:"string"==typeof r&&"string"==typeof o?r.localeCompare(o,void 0,{numeric:!0}):r<o?-1:r>o?1:0,this.sortOrder*s})),t}return null},resetPage(){this.d_first=0,this.$emit("update:first",this.d_first)}},computed:{containerClass(){return["p-dataview p-component",{"p-dataview-list":"list"===this.layout,"p-dataview-grid":"grid"===this.layout}]},getTotalRecords(){return this.totalRecords?this.totalRecords:this.value?this.value.length:0},empty(){return!this.value||0===this.value.length},paginatorTop(){return this.paginator&&("bottom"!==this.paginatorPosition||"both"===this.paginatorPosition)},paginatorBottom(){return this.paginator&&("top"!==this.paginatorPosition||"both"===this.paginatorPosition)},items(){if(this.value&&this.value.length){let t=this.value;if(t&&t.length&&this.sortField&&(t=this.sort()),this.paginator){const e=this.lazy?0:this.d_first;return t.slice(e,e+this.d_rows)}return t}return null}},components:{DVPaginator:e}};y.render=function(t,e,a,y,c,w){const P=r("DVPaginator");return o(),s("div",i({class:w.containerClass},t.ptm("root")),[t.$slots.header?(o(),s("div",i({key:0,class:"p-dataview-header"},t.ptm("header")),[n(t.$slots,"header")],16)):l("",!0),w.paginatorTop?(o(),p(P,{key:1,rows:c.d_rows,first:c.d_first,totalRecords:w.getTotalRecords,pageLinkSize:a.pageLinkSize,template:a.paginatorTemplate,rowsPerPageOptions:a.rowsPerPageOptions,currentPageReportTemplate:a.currentPageReportTemplate,class:d({"p-paginator-top":w.paginatorTop}),alwaysShow:a.alwaysShowPaginator,onPage:e[0]||(e[0]=t=>w.onPage(t)),pt:t.ptm("paginator")},g({_:2},[t.$slots.paginatorstart?{name:"start",fn:u((()=>[n(t.$slots,"paginatorstart")])),key:"0"}:void 0,t.$slots.paginatorend?{name:"end",fn:u((()=>[n(t.$slots,"paginatorend")])),key:"1"}:void 0]),1032,["rows","first","totalRecords","pageLinkSize","template","rowsPerPageOptions","currentPageReportTemplate","class","alwaysShow","pt"])):l("",!0),m("div",i({class:"p-dataview-content"},t.ptm("content")),[m("div",i({class:"p-grid p-nogutter grid grid-nogutter"},t.ptm("grid")),[(o(!0),s(h,null,f(w.items,((e,r)=>(o(),s(h,{key:w.getKey(e,r)},[t.$slots.list&&"list"===a.layout?n(t.$slots,"list",{key:0,data:e,index:r}):l("",!0),t.$slots.grid&&"grid"===a.layout?n(t.$slots,"grid",{key:1,data:e,index:r}):l("",!0)],64)))),128)),w.empty?(o(),s("div",i({key:0,class:"p-col col"},t.ptm("column")),[m("div",i({class:"p-dataview-emptymessage"},t.ptm("emptyMessage")),[n(t.$slots,"empty")],16)],16)):l("",!0)],16)],16),w.paginatorBottom?(o(),p(P,{key:2,rows:c.d_rows,first:c.d_first,totalRecords:w.getTotalRecords,pageLinkSize:a.pageLinkSize,template:a.paginatorTemplate,rowsPerPageOptions:a.rowsPerPageOptions,currentPageReportTemplate:a.currentPageReportTemplate,class:d({"p-paginator-bottom":w.paginatorBottom}),alwaysShow:a.alwaysShowPaginator,onPage:e[1]||(e[1]=t=>w.onPage(t)),pt:t.ptm("root")},g({_:2},[t.$slots.paginatorstart?{name:"start",fn:u((()=>[n(t.$slots,"paginatorstart")])),key:"0"}:void 0,t.$slots.paginatorend?{name:"end",fn:u((()=>[n(t.$slots,"paginatorend")])),key:"1"}:void 0]),1032,["rows","first","totalRecords","pageLinkSize","template","rowsPerPageOptions","currentPageReportTemplate","class","alwaysShow","pt"])):l("",!0),t.$slots.footer?(o(),s("div",i({key:3,class:"p-dataview-footer"},t.ptm("footer")),[n(t.$slots,"footer")],16)):l("",!0)],16)};export{y as default};