UNPKG

@vicoders/angular

Version:

- [Vicoders Angular Common Module](#vicoders-angular-common-module) - [Install](#install) - [How to use](#how-to-use) - [Pipes](#pipes) - [hasItem](#hasitem) - [isArray](#isarray) - [length](#length) - [orderBy](#orderby)

128 lines 10.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, EventEmitter, Output } from '@angular/core'; export class PaginationComponent { constructor() { this.goPrev = new EventEmitter(); this.goNext = new EventEmitter(); this.goPage = new EventEmitter(); } /** * @return {?} */ getMin() { return this.perPage * this.page - this.perPage + 1; } /** * @return {?} */ getMax() { /** @type {?} */ let max = this.perPage * this.page; if (max > this.count) { max = this.count; } return max; } /** * @param {?} n * @return {?} */ onPage(n) { this.goPage.emit(n); } /** * @return {?} */ onPrev() { this.goPrev.emit(true); } /** * @param {?} next * @return {?} */ onNext(next) { this.goNext.emit(next); } /** * @return {?} */ totalPages() { return Math.ceil(this.count / this.perPage) || 0; } /** * @return {?} */ lastPage() { return this.perPage * this.page > this.count; } /** * @return {?} */ getPages() { /** @type {?} */ const c = Math.ceil(this.count / this.perPage); /** @type {?} */ const p = this.page || 1; /** @type {?} */ const pagesToShow = this.pagesToShow || 9; /** @type {?} */ const pages = []; pages.push(p); /** @type {?} */ const times = pagesToShow - 1; for (let i = 0; i < times; i++) { if (pages.length < pagesToShow) { if (Math.min.apply(null, pages) > 1) { pages.push(Math.min.apply(null, pages) - 1); } } if (pages.length < pagesToShow) { if (Math.max.apply(null, pages) < c) { pages.push(Math.max.apply(null, pages) + 1); } } } pages.sort((a, b) => a - b); return pages; } } PaginationComponent.decorators = [ { type: Component, args: [{ selector: 'app-pagination', template: "<div class=\"row\">\n <div class=\"col-md-5 col-sm-7\">\n <div class=\"description\">\n <span class=\"page-counts\">{{ getMin() }} - {{ getMax() }} of {{ count }}</span>\n <span class=\"page-totals\">{{ totalPages() }} pages</span>\n </div>\n </div>\n <div class=\"col-md-7 col-sm-7\">\n <div class=\"dataTables_paginate paging_simple_numbers\" *ngIf=\"count > 0\">\n\n <ul class=\"pagination\">\n <li class=\"paginate_button previous\" [ngClass]=\"{ 'disabled': page === 1 || loading }\">\n <button class=\"link\" (click)=\"onPrev()\" [disabled]=\"page === 1 || loading\">\n Previous\n </button>\n </li>\n <li class=\"paginate_button\" *ngFor=\"let pageNum of getPages()\" (click)=\"onPage(pageNum)\" [ngClass]=\"{'active': pageNum === page, 'disabled': loading}\">\n <a href=\"javascript:;\">{{ pageNum }}</a>\n </li>\n <li class=\"paginate_button next\" [ngClass]=\"{ 'disabled': lastPage() || loading }\">\n <button class=\"link\" (click)=\"onNext(true)\" [disabled]=\"lastPage() || loading\">\n Next\n </button>\n </li>\n </ul>\n </div>\n </div>\n</div>", styles: [""] }] } ]; PaginationComponent.ctorParameters = () => []; PaginationComponent.propDecorators = { pagesToShow: [{ type: Input }], page: [{ type: Input }], count: [{ type: Input }], perPage: [{ type: Input }], loading: [{ type: Input }], goPrev: [{ type: Output }], goNext: [{ type: Output }], goPage: [{ type: Output }] }; if (false) { /** @type {?} */ PaginationComponent.prototype.pagesToShow; /** @type {?} */ PaginationComponent.prototype.page; /** @type {?} */ PaginationComponent.prototype.count; /** @type {?} */ PaginationComponent.prototype.perPage; /** @type {?} */ PaginationComponent.prototype.loading; /** @type {?} */ PaginationComponent.prototype.goPrev; /** @type {?} */ PaginationComponent.prototype.goNext; /** @type {?} */ PaginationComponent.prototype.goPage; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Admljb2RlcnMvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPdkUsTUFBTTtJQVdKO1FBSlUsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDckMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFL0IsQ0FBQzs7OztJQUVoQixNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7OztJQUVELE1BQU07O1lBQ0EsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUk7UUFDbEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNwQixHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsQ0FBUztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsSUFBYTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOzs7O0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7Ozs7SUFFRCxRQUFROztjQUNBLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzs7Y0FDeEMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQzs7Y0FDbEIsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQzs7Y0FDbkMsS0FBSyxHQUFhLEVBQUU7UUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Y0FDUixLQUFLLEdBQUcsV0FBVyxHQUFHLENBQUM7UUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDN0M7YUFDRjtTQUNGO1FBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQXZFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsK3JDQUEwQzs7YUFFM0M7Ozs7MEJBRUUsS0FBSzttQkFDTCxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLO3FCQUVMLE1BQU07cUJBQ04sTUFBTTtxQkFDTixNQUFNOzs7O0lBUlAsMENBQTZCOztJQUM3QixtQ0FBc0I7O0lBQ3RCLG9DQUF1Qjs7SUFDdkIsc0NBQXlCOztJQUN6QixzQ0FBMEI7O0lBRTFCLHFDQUErQzs7SUFDL0MscUNBQStDOztJQUMvQyxxQ0FBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBwYWdlc1RvU2hvdzogbnVtYmVyO1xuICBASW5wdXQoKSBwYWdlOiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvdW50OiBudW1iZXI7XG4gIEBJbnB1dCgpIHBlclBhZ2U6IG51bWJlcjtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgZ29QcmV2ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZ29OZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZ29QYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldE1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBlclBhZ2UgKiB0aGlzLnBhZ2UgLSB0aGlzLnBlclBhZ2UgKyAxO1xuICB9XG5cbiAgZ2V0TWF4KCk6IG51bWJlciB7XG4gICAgbGV0IG1heCA9IHRoaXMucGVyUGFnZSAqIHRoaXMucGFnZTtcbiAgICBpZiAobWF4ID4gdGhpcy5jb3VudCkge1xuICAgICAgbWF4ID0gdGhpcy5jb3VudDtcbiAgICB9XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIG9uUGFnZShuOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmdvUGFnZS5lbWl0KG4pO1xuICB9XG5cbiAgb25QcmV2KCk6IHZvaWQge1xuICAgIHRoaXMuZ29QcmV2LmVtaXQodHJ1ZSk7XG4gIH1cblxuICBvbk5leHQobmV4dDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZ29OZXh0LmVtaXQobmV4dCk7XG4gIH1cblxuICB0b3RhbFBhZ2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLmNvdW50IC8gdGhpcy5wZXJQYWdlKSB8fCAwO1xuICB9XG5cbiAgbGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVyUGFnZSAqIHRoaXMucGFnZSA+IHRoaXMuY291bnQ7XG4gIH1cblxuICBnZXRQYWdlcygpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgYyA9IE1hdGguY2VpbCh0aGlzLmNvdW50IC8gdGhpcy5wZXJQYWdlKTtcbiAgICBjb25zdCBwID0gdGhpcy5wYWdlIHx8IDE7XG4gICAgY29uc3QgcGFnZXNUb1Nob3cgPSB0aGlzLnBhZ2VzVG9TaG93IHx8IDk7XG4gICAgY29uc3QgcGFnZXM6IG51bWJlcltdID0gW107XG4gICAgcGFnZXMucHVzaChwKTtcbiAgICBjb25zdCB0aW1lcyA9IHBhZ2VzVG9TaG93IC0gMTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRpbWVzOyBpKyspIHtcbiAgICAgIGlmIChwYWdlcy5sZW5ndGggPCBwYWdlc1RvU2hvdykge1xuICAgICAgICBpZiAoTWF0aC5taW4uYXBwbHkobnVsbCwgcGFnZXMpID4gMSkge1xuICAgICAgICAgIHBhZ2VzLnB1c2goTWF0aC5taW4uYXBwbHkobnVsbCwgcGFnZXMpIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChwYWdlcy5sZW5ndGggPCBwYWdlc1RvU2hvdykge1xuICAgICAgICBpZiAoTWF0aC5tYXguYXBwbHkobnVsbCwgcGFnZXMpIDwgYykge1xuICAgICAgICAgIHBhZ2VzLnB1c2goTWF0aC5tYXguYXBwbHkobnVsbCwgcGFnZXMpICsgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcGFnZXMuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIHJldHVybiBwYWdlcztcbiAgfVxufVxuIl19