import { Component, Prop } from 'vue-property-decorator'; import Vue from "vue"; @Component export default class VsPagination extends Vue { pageNumber: number = 0; // default to page 0 @Prop() data; @Prop({ default: 4 }) readonly offset: number; changePage(page) { if (page == this.data.current_page) { return; } this.data.current_page = page; let from = (page * this.data.per_page) - this.data.per_page; this.$emit('paginate', from); } get numberOfPages() { return Math.ceil(this.data.total / this.data.per_page); } get pages() { let numberOfPages = Math.ceil(this.data.total / this.data.per_page); // if (!this.data.to) { // return []; // } let from = this.data.current_page - this.data.per_page; if (from < 1) { from = 1; } let to = from + (this.data.per_page * 2); if (to >= numberOfPages) { to = numberOfPages; } let pagesArray = []; for (let page = from; page <= to; page++) { pagesArray.push(page); } return pagesArray; } mounted() { } }