@progress/kendo-angular-pager
Version:
Kendo UI Angular Pager
45 lines (44 loc) • 1.37 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Subject } from "rxjs";
/**
* @hidden
*/
export class PagerContextService {
total;
skip;
pageSize;
localization;
changes = new Subject();
pageChange = new Subject();
pageSizeChange = new Subject();
get currentPage() {
return this.skip / this.pageSize;
}
notifyChanges(changes) {
this.total = changes.total;
this.pageSize = changes.pageSize;
this.skip = changes.skip;
this.changes.next(changes);
}
changePage(page) {
this.pageChange.next({ skip: page * this.pageSize, take: this.pageSize });
}
changePageSize(event) {
this.pageSizeChange.next(event);
}
nextPage() {
const nextPage = this.currentPage + 1;
if (nextPage * this.pageSize < this.total) {
this.changePage(nextPage);
}
}
prevPage() {
const prevPage = this.currentPage - 1;
if (prevPage * this.pageSize >= 0) {
this.changePage(prevPage);
}
}
}