@rushvora/ng-datatable
Version:
DataTable component for Angular framework
42 lines (33 loc) • 1.33 kB
text/typescript
import {Component, Input, SimpleChange, OnChanges, Optional} from "@angular/core";
import {DataTable, PageEvent} from "./DataTable";
export class Paginator implements OnChanges {
inputMfTable: DataTable;
private mfTable: DataTable;
public activePage: number;
public rowsOnPage: number;
public dataLength: number = 0;
public lastPage: number;
public constructor( private injectMfTable: DataTable) {
}
public ngOnChanges(changes: {[key: string]: SimpleChange}): any {
this.mfTable = this.inputMfTable || this.injectMfTable;
this.onPageChangeSubscriber(this.mfTable.getPage());
this.mfTable.onPageChange.subscribe(this.onPageChangeSubscriber);
}
public setPage(pageNumber: number): void {
this.mfTable.setPage(pageNumber, this.rowsOnPage);
}
public setRowsOnPage(rowsOnPage: number): void {
this.mfTable.setPage(this.activePage, rowsOnPage);
}
private onPageChangeSubscriber = (event: PageEvent)=> {
this.activePage = event.activePage;
this.rowsOnPage = event.rowsOnPage;
this.dataLength = event.dataLength;
this.lastPage = Math.ceil(this.dataLength / this.rowsOnPage);
};
}