UNPKG

@rushvora/ng-datatable

Version:

DataTable component for Angular framework

42 lines (33 loc) 1.33 kB
import {Component, Input, SimpleChange, OnChanges, Optional} from "@angular/core"; import {DataTable, PageEvent} from "./DataTable"; @Component({ selector: "mfPaginator", template: `<ng-content></ng-content>` }) export class Paginator implements OnChanges { @Input("mfTable") inputMfTable: DataTable; private mfTable: DataTable; public activePage: number; public rowsOnPage: number; public dataLength: number = 0; public lastPage: number; public constructor(@Optional() 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); }; }