UNPKG

@dialpad/dialtone

Version:

Dialpad's Dialtone design system monorepo

3 lines (2 loc) 3.56 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("@dialpad/dialtone-icons/vue3"),e=require("vue"),p=require("../../_plugin-vue_export-helper-BRilXfQE.cjs"),b=require("../button/button.cjs"),m={compatConfig:{MODE:3},name:"DtPagination",components:{DtButton:b.default,DtIconChevronLeft:u.DtIconChevronLeft,DtIconChevronRight:u.DtIconChevronRight,DtIconMoreHorizontal:u.DtIconMoreHorizontal},props:{ariaLabel:{type:String,required:!0},totalPages:{type:Number,required:!0},prevAriaLabel:{type:String,required:!0},nextAriaLabel:{type:String,required:!0},pageNumberAriaLabel:{type:Function,required:!0},activePage:{type:Number,default:1},maxVisible:{type:Number,default:5},hideEdges:{type:Boolean,default:!1}},emits:["change"],data(){return{currentPage:this.activePage}},computed:{isFirstPage(){return this.currentPage===1},isLastPage(){return this.currentPage===this.totalPages},pages(){if(this.maxVisible===0)return[];if(this.totalPages<=this.maxVisible)return this.range(1,this.totalPages);let t=this.maxVisible-1,a=this.totalPages-t+1;if(this.hideEdges&&(t=t+1,a=a-1),this.currentPage<t){const o=[...this.range(1,t),"..."];return this.hideEdges||o.push(this.totalPages),o}if(this.currentPage>a){const o=["...",...this.range(a,this.totalPages)];return this.hideEdges||o.unshift(1),o}const n=this.maxVisible-(3-this.maxVisible%2),l=Math.floor(n/2);let s=this.currentPage-l,i=this.currentPage+l;this.hideEdges&&(s=s-1,i=i+1);const c=["...",...this.range(s,i),"..."];return this.hideEdges?c:[1,...c,this.totalPages]}},watch:{activePage(){this.currentPage=this.activePage}},methods:{range(t,a){const n=[];t=t>0?t:1;for(let l=t;l<=a;l++)n.push(l);return n},changePage(t){this.currentPage=t,this.$emit("change",this.currentPage)}}},_=["aria-label"],P={key:0,class:"d-pagination__separator-icon","data-qa":"dt-pagination-separator"};function v(t,a,n,l,s,i){const c=e.resolveComponent("dt-icon-chevron-left"),o=e.resolveComponent("dt-button"),g=e.resolveComponent("dt-icon-more-horizontal"),d=e.resolveComponent("dt-icon-chevron-right");return e.openBlock(),e.createElementBlock("nav",{"aria-label":n.ariaLabel,class:"d-pagination"},[e.createVNode(o,{class:"d-pagination__button","data-qa":"dt-pagination-prev","aria-label":n.prevAriaLabel,kind:"muted",importance:"clear",disabled:i.isFirstPage,onClick:a[0]||(a[0]=r=>i.changePage(s.currentPage-1))},{icon:e.withCtx(()=>[e.createVNode(c,{size:"300"})]),_:1},8,["aria-label","disabled"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.pages,(r,h)=>(e.openBlock(),e.createElementBlock("div",{key:`page-${r}-${h}`,class:e.normalizeClass({"d-pagination__separator":isNaN(Number(r))})},[isNaN(Number(r))?(e.openBlock(),e.createElementBlock("div",P,[e.createVNode(g,{size:"300"})])):(e.openBlock(),e.createBlock(o,{key:1,"aria-label":n.pageNumberAriaLabel(r),kind:s.currentPage===r?"default":"muted",importance:s.currentPage===r?"primary":"clear","label-class":"",onClick:k=>i.changePage(r)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r),1)]),_:2},1032,["aria-label","kind","importance","onClick"]))],2))),128)),e.createVNode(o,{class:"d-pagination__button","data-qa":"dt-pagination-next","aria-label":n.nextAriaLabel,disabled:i.isLastPage,kind:"muted",importance:"clear",onClick:a[1]||(a[1]=r=>i.changePage(s.currentPage+1))},{icon:e.withCtx(()=>[e.createVNode(d,{size:"300"})]),_:1},8,["aria-label","disabled"])],8,_)}const f=p._(m,[["render",v]]);exports.default=f; //# sourceMappingURL=pagination.cjs.map