UNPKG

@rkosafo/cai.components

Version:

This package is under development and not ready for public use.

172 lines (171 loc) 4.27 kB
// export class PageInfo { // // private _currentPage: number = 1; // // private _pageSize: number; // // private _totalItems: number; // // private _totalPages: number = 0; // // private _hasNextPage = false; // // private _hasPrevPage = false; // // private _nextPageUrl: string = ''; // // private _prevPageUrl: string = ''; // constructor(pageSize = 100, currentPage = 1, totalItems = 0) { // this._currentPage = currentPage; // this._pageSize = pageSize; // this._totalItems = totalItems; // this.computePages(); // } // private computePages() { // this._totalPages = Math.ceil(this._totalItems / this._pageSize); // this._hasNextPage = this._totalPages > this._currentPage; // this._hasPrevPage = this._currentPage > 1; // } // get currentPage() { // return this._currentPage; // } // get pageSize() { // return this._pageSize; // } // get totalItems() { // return this._totalItems; // } // get totalPages() { // return this._totalPages; // } // get hasNextPage() { // return this._hasNextPage; // } // get hasPrevPage() { // return this._hasPrevPage; // } // get nextPageUrl() { // return this._nextPageUrl; // } // get prevPageUrl() { // return this._prevPageUrl; // } // setPageSize(newPageSize: number) { // this._pageSize = newPageSize; // this.computePages(); // } // setHasNextPage(newValue: boolean) { // this._hasNextPage = newValue; // } // setHasPrevPage(newValue: boolean) { // this._hasPrevPage = newValue; // } // setNextPageUrl(newValue: string) { // this._nextPageUrl = newValue; // } // setPrevPageUrl(newValue: string) { // this._prevPageUrl = newValue; // } // gotoStart() { // this._currentPage = 1; // } // gotoNext() { // if (this._hasNextPage) { // this._currentPage += 1; // return true; // } // return false; // } // gotoPrev() { // if (this._hasPrevPage) { // this._currentPage -= 1; // if (this._currentPage < 1) this._currentPage = 1; // return true; // } // return false; // } // setCurrentPage(val:number){ // this._currentPage = val // } // set totalItems(v: number) { // this._totalItems = v; // this.computePages(); // } // } export class PageInfo { #currentPage = $state(1); #pageSize = $state(100); #totalItems = $state(0); #totalPages = $state(0); #hasNextPage = $state(false); #hasPrevPage = $state(false); #nextPageUrl = $state(''); #prevPageUrl = $state(''); computePages() { this.#totalPages = Math.ceil(this.totalItems / this.#pageSize); this.#hasNextPage = this.#totalPages > this.#currentPage; this.#hasPrevPage = this.#currentPage > 1; } get currentPage() { return this.#currentPage; } get pageSize() { return this.#pageSize; } get totalItems() { return this.#totalItems; } get totalPages() { return this.#totalPages; } get hasNextPage() { return this.#hasNextPage; } get hasPrevPage() { return this.#hasPrevPage; } get nextPageUrl() { return this.#nextPageUrl; } get prevPageUrl() { return this.#prevPageUrl; } setPageSize(newPageSize) { this.#pageSize = newPageSize; this.computePages(); } setHasNextPage(newValue) { this.#hasNextPage = newValue; } setHasPrevPage(newValue) { this.#hasPrevPage = newValue; } setTotalPages(val) { this.#totalPages = val; this.computePages(); } setNextPageUrl(newValue) { this.#nextPageUrl = newValue; } setPrevPageUrl(newValue) { this.#prevPageUrl = newValue; } gotoStart() { this.#currentPage = 1; } gotoNext() { if (this.#hasNextPage) { this.#currentPage += 1; return true; } return false; } gotoPrev() { if (this.#hasPrevPage) { this.#currentPage -= 1; if (this.#currentPage < 1) this.#currentPage = 1; return true; } return false; } setCurrentPage(val) { this.#currentPage = val; } set totalItems(v) { this.#totalItems = v; this.computePages(); } }