"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 o=this.maxVisible-(3-this.maxVisible%2),l=Math.floor(o/2);let s=this.currentPage-l,a=this.currentPage+l;this.hideEdges&&(s=s-1,a=a+1);const c=["...",...this.range(s,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},totalPages(t){(this.currentPage>t||this.currentPage<=0)&&(this.currentPage=t)}},methods:{range(t,i){const o=[];t=t>0?t:1;for(let l=t;l<=i;l++)o.push(l);return o},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,o,l,s,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.withDirectives((e.openBlock(),e.createElementBlock("nav",{"aria-label":o.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(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(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:s.currentPage===n?"default":"muted",importance:s.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(s.currentPage+1))},{icon:e.withCtx(()=>[e.createVNode(g,{size:"300"})]),_:1},8,["aria-label","disabled"])],8,p)),[[e.vShow,o.totalPages>0]])}const v=P._(m,[["render",A]]);exports.default=v;
//# sourceMappingURL=pagination.cjs.map
