UNPKG

ng-angular8-datatable

Version:
42 lines (32 loc) 1.38 kB
import { Component, Input, SimpleChange, OnChanges, Optional } from '@angular/core'; import { DataTable, PageEvent } from './DataTable'; @Component({ selector: "sv-paginator", template: `<ng-content></ng-content>` }) export class Paginator implements OnChanges { @Input("svTable") inputSVTable: DataTable; private svTable: DataTable; public activePage: number; public rowsOnPage: number; public dataLength: number = 0; public lastPage: number; public constructor(@Optional() private injectSVTable: DataTable) { } public ngOnChanges(changes: { [key: string]: SimpleChange }): any { this.svTable = this.inputSVTable || this.injectSVTable; this.onPageChangeSubscriber(this.svTable.getPage()); this.svTable.onPageChange.subscribe(this.onPageChangeSubscriber); } public setPage(pageNumber: number): void { this.svTable.setPage(pageNumber, this.rowsOnPage); } public setRowsOnPage(rowsOnPage: number): void { this.svTable.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); }; }