UNPKG

@itexpert-dev/base-universal-table

Version:

base universal table for build tables

57 lines (48 loc) 1.77 kB
import {BaseUniversalTableComponent} from "../common/baseUniversalTableComponent"; import {isNullOrUndefined} from "@itexpert-dev/tiny-helpers"; import {IUniversalTableCtrl} from "../../../contracts/IUniversalTableCtrl"; abstract class BaseUniversalTablePaginator extends BaseUniversalTableComponent{ public offset: number; public count: number; public limitSteps: number[]; public limit: number; public page:number = null; constructor(tableCtrl: IUniversalTableCtrl){ super(tableCtrl); this.limitSteps = this.tableCtrl.config.getDefaultLimitSteps(); let stateStream = this.tableCtrl.stateStream; stateStream.filter(next=>next.hasOwnProperty('offset')) .subscribe( next=>{ this.offset = next.offset } ); stateStream.filter(next=>next.hasOwnProperty('limit')) .subscribe( next=>{ this.limit = next.limit } ); stateStream.filter(next=>next.hasOwnProperty('totalResult')) .subscribe( next=>{ this.count = next.totalResult } ); } public changeLimit(newValue: string){ this.limit = parseInt(newValue); this.changePage(1); } public changePage(newPage: number){ if(!isNullOrUndefined(this.limit)){ this.page = newPage; this.offset = ((newPage-1)*this.limit); this.tableCtrl.updateState({ offset: this.offset, limit: this.limit }).subscribe(); } } } export {BaseUniversalTablePaginator}