import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; @Component({ selector: 'esp-pagination', templateUrl: './pagination.component.html', styleUrls: ['./pagination.component.css'] }) export class PaginationComponent implements OnInit { @Input() i18n = null; @Input() totalRows = 0; @Input() pageOptions = null; @Input() pageAfter = 0; @Input() multiSelDropUp = false; @Output() paginationClicked: EventEmitter = new EventEmitter(); @Output() selectionChanged: EventEmitter = new EventEmitter(); pageNo = 1; pageCount = 0; constructor() { } ngOnInit(): void { this.getTotalPageCount(); } ngOnChanges(): void { this.pageNo = 1; this.pageCount = 0; this.getTotalPageCount(); } getTotalPageCount(){ const pageLimit = this.pageOptions.find(limit=>limit.selected === true).value this.pageCount = Math.ceil(this.totalRows/pageLimit); this.pageNo = Math.floor(this.pageAfter/pageLimit)+1; } next(){ this.pageNo++; this.onPageinationEvent(); } previous(){ this.pageNo--; this.onPageinationEvent(); } onSelectChange(){ this.pageAfter = 0 this.pageNo = 1; this.getTotalPageCount(); this.onPageinationEvent(); this.selectionChanged.emit(); } onPageinationEvent(type=null){ const event = { currentPage : this.pageNo, pageLimit:this.pageOptions.find(limit=>limit.selected === true).value } this.paginationClicked.emit(event); } }