@dialpad/dialtone
Version:
Dialpad's Dialtone design system monorepo
3 lines (2 loc) • 3.94 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("@dialpad/dialtone-icons/vue3"),_=require("../../localization/index.cjs"),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},activePage:{type:Number,default:1},maxVisible:{type:Number,default:5},hideEdges:{type:Boolean,default:!1}},emits:["change"],data(){return{currentPage:this.activePage,i18n:new _.DialtoneLocalization}},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,i=this.totalPages-t+1;if(this.hideEdges&&(t=t+1,i=i-1),this.currentPage<t){const r=[...this.range(1,t),"..."];return this.hideEdges||r.push(this.totalPages),r}if(this.currentPage>i){const r=["...",...this.range(i,this.totalPages)];return this.hideEdges||r.unshift(1),r}const l=this.maxVisible-(3-this.maxVisible%2),s=Math.floor(l/2);let o=this.currentPage-s,a=this.currentPage+s;this.hideEdges&&(o=o-1,a=a+1);const c=["...",...this.range(o,a),"..."];return this.hideEdges?c:[1,...c,this.totalPages]},prevAriaLabel(){return this.isFirstPage?this.i18n.$t("DIALTONE_PAGINATION_FIRST_PAGE"):this.i18n.$t("DIALTONE_PAGINATION_PREVIOUS_PAGE")},nextAriaLabel(){return this.isLastPage?this.i18n.$t("DIALTONE_PAGINATION_LAST_PAGE"):this.i18n.$t("DIALTONE_PAGINATION_NEXT_PAGE")},pageNumberAriaLabel(){return t=>t===this.totalPages?`${this.i18n.$t("DIALTONE_PAGINATION_LAST_PAGE")} ${t}`:`${this.i18n.$t("DIALTONE_PAGINATION_PAGE_NUMBER",{page:t})}`}},watch:{activePage(){this.currentPage=this.activePage}},methods:{range(t,i){const l=[];t=t>0?t:1;for(let s=t;s<=i;s++)l.push(s);return l},changePage(t){this.currentPage=t,this.$emit("change",this.currentPage)}}},p=["aria-label"],N={key:0,class:"d-pagination__separator-icon","data-qa":"dt-pagination-separator"};function A(t,i,l,s,o,a){const c=e.resolveComponent("dt-icon-chevron-left"),r=e.resolveComponent("dt-button"),h=e.resolveComponent("dt-icon-more-horizontal"),g=e.resolveComponent("dt-icon-chevron-right");return e.openBlock(),e.createElementBlock("nav",{"aria-label":l.ariaLabel,class:"d-pagination"},[e.createVNode(r,{class:"d-pagination__button","data-qa":"dt-pagination-prev","aria-label":a.prevAriaLabel,kind:"muted",importance:"clear",disabled:a.isFirstPage,onClick:i[0]||(i[0]=n=>a.changePage(o.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(a.pages,(n,d)=>(e.openBlock(),e.createElementBlock("div",{key:`page-${n}-${d}`,class:e.normalizeClass({"d-pagination__separator":isNaN(Number(n))})},[isNaN(Number(n))?(e.openBlock(),e.createElementBlock("div",N,[e.createVNode(h,{size:"300"})])):(e.openBlock(),e.createBlock(r,{key:1,"aria-label":a.pageNumberAriaLabel(n),kind:o.currentPage===n?"default":"muted",importance:o.currentPage===n?"primary":"clear","label-class":"",onClick:f=>a.changePage(n)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n),1)]),_:2},1032,["aria-label","kind","importance","onClick"]))],2))),128)),e.createVNode(r,{class:"d-pagination__button","data-qa":"dt-pagination-next","aria-label":a.nextAriaLabel,disabled:a.isLastPage,kind:"muted",importance:"clear",onClick:i[1]||(i[1]=n=>a.changePage(o.currentPage+1))},{icon:e.withCtx(()=>[e.createVNode(g,{size:"300"})]),_:1},8,["aria-label","disabled"])],8,p)}const v=P._(m,[["render",A]]);exports.default=v;
//# sourceMappingURL=pagination.cjs.map