src/assets/primeng/components/paginator/paginator.js
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@angular/core");
var common_1 = require("@angular/common");
var Paginator = (function () {
function Paginator() {
this.pageLinkSize = 5;
this.onPageChange = new core_1.EventEmitter();
this.alwaysShow = true;
this._totalRecords = 0;
this._first = 0;
this._rows = 0;
}
Object.defineProperty(Paginator.prototype, "totalRecords", {
get: function () {
return this._totalRecords;
},
set: function (val) {
this._totalRecords = val;
this.updatePageLinks();
},
enumerable: true,
configurable: true
});
Object.defineProperty(Paginator.prototype, "first", {
get: function () {
return this._first;
},
set: function (val) {
this._first = val;
this.updatePageLinks();
},
enumerable: true,
configurable: true
});
Object.defineProperty(Paginator.prototype, "rows", {
get: function () {
return this._rows;
},
set: function (val) {
this._rows = val;
this.updatePageLinks();
},
enumerable: true,
configurable: true
});
Paginator.prototype.isFirstPage = function () {
return this.getPage() === 0;
};
Paginator.prototype.isLastPage = function () {
return this.getPage() === this.getPageCount() - 1;
};
Paginator.prototype.getPageCount = function () {
return Math.ceil(this.totalRecords / this.rows) || 1;
};
Paginator.prototype.calculatePageLinkBoundaries = function () {
var numberOfPages = this.getPageCount(), visiblePages = Math.min(this.pageLinkSize, numberOfPages);
//calculate range, keep current in middle if necessary
var start = Math.max(0, Math.ceil(this.getPage() - ((visiblePages) / 2))), end = Math.min(numberOfPages - 1, start + visiblePages - 1);
//check when approaching to last page
var delta = this.pageLinkSize - (end - start + 1);
start = Math.max(0, start - delta);
return [start, end];
};
Paginator.prototype.updatePageLinks = function () {
this.pageLinks = [];
var boundaries = this.calculatePageLinkBoundaries(), start = boundaries[0], end = boundaries[1];
for (var i = start; i <= end; i++) {
this.pageLinks.push(i + 1);
}
};
Paginator.prototype.changePage = function (p) {
var pc = this.getPageCount();
if (p >= 0 && p < pc) {
this.first = this.rows * p;
var state = {
page: p,
first: this.first,
rows: this.rows,
pageCount: pc
};
this.updatePageLinks();
this.onPageChange.emit(state);
}
};
Paginator.prototype.getPage = function () {
return Math.floor(this.first / this.rows);
};
Paginator.prototype.changePageToFirst = function (event) {
if (!this.isFirstPage()) {
this.changePage(0);
}
event.preventDefault();
};
Paginator.prototype.changePageToPrev = function (event) {
this.changePage(this.getPage() - 1);
event.preventDefault();
};
Paginator.prototype.changePageToNext = function (event) {
this.changePage(this.getPage() + 1);
event.preventDefault();
};
Paginator.prototype.changePageToLast = function (event) {
if (!this.isLastPage()) {
this.changePage(this.getPageCount() - 1);
}
event.preventDefault();
};
Paginator.prototype.onPageLinkClick = function (event, page) {
this.changePage(page);
event.preventDefault();
};
Paginator.prototype.onRppChange = function (event) {
this.rows = this.rowsPerPageOptions[event.target.selectedIndex];
this.changePage(this.getPage());
};
return Paginator;
}());
__decorate([
core_1.Input(),
__metadata("design:type", Number)
], Paginator.prototype, "pageLinkSize", void 0);
__decorate([
core_1.Output(),
__metadata("design:type", core_1.EventEmitter)
], Paginator.prototype, "onPageChange", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Object)
], Paginator.prototype, "style", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", String)
], Paginator.prototype, "styleClass", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Array)
], Paginator.prototype, "rowsPerPageOptions", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Boolean)
], Paginator.prototype, "alwaysShow", void 0);
__decorate([
core_1.Input(),
__metadata("design:type", Number),
__metadata("design:paramtypes", [Number])
], Paginator.prototype, "totalRecords", null);
__decorate([
core_1.Input(),
__metadata("design:type", Number),
__metadata("design:paramtypes", [Number])
], Paginator.prototype, "first", null);
__decorate([
core_1.Input(),
__metadata("design:type", Number),
__metadata("design:paramtypes", [Number])
], Paginator.prototype, "rows", null);
Paginator = __decorate([
core_1.Component({
selector: 'p-paginator',
template: "\n <div [class]=\"styleClass\" [ngStyle]=\"style\" [ngClass]=\"'ui-paginator ui-widget ui-widget-header ui-unselectable-text'\"\n *ngIf=\"alwaysShow ? true : (pageLinks && pageLinks.length > 1)\">\n <a href=\"#\" class=\"ui-paginator-first ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToFirst($event)\" [ngClass]=\"{'ui-state-disabled':isFirstPage()}\" [tabindex]=\"isFirstPage() ? -1 : null\">\n <span class=\"fa fa-step-backward\"></span>\n </a>\n <a href=\"#\" class=\"ui-paginator-prev ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToPrev($event)\" [ngClass]=\"{'ui-state-disabled':isFirstPage()}\" [tabindex]=\"isFirstPage() ? -1 : null\">\n <span class=\"fa fa-backward\"></span>\n </a>\n <span class=\"ui-paginator-pages\">\n <a href=\"#\" *ngFor=\"let pageLink of pageLinks\" class=\"ui-paginator-page ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"onPageLinkClick($event, pageLink - 1)\" [ngClass]=\"{'ui-state-active': (pageLink-1 == getPage())}\">{{pageLink}}</a>\n </span>\n <a href=\"#\" class=\"ui-paginator-next ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToNext($event)\" [ngClass]=\"{'ui-state-disabled':isLastPage()}\" [tabindex]=\"isLastPage() ? -1 : null\">\n <span class=\"fa fa-forward\"></span>\n </a>\n <a href=\"#\" class=\"ui-paginator-last ui-paginator-element ui-state-default ui-corner-all\"\n (click)=\"changePageToLast($event)\" [ngClass]=\"{'ui-state-disabled':isLastPage()}\" [tabindex]=\"isLastPage() ? -1 : null\">\n <span class=\"fa fa-step-forward\"></span>\n </a>\n <select class=\"ui-paginator-rpp-options ui-widget ui-state-default\" *ngIf=\"rowsPerPageOptions\" (change)=\"onRppChange($event)\">\n <option *ngFor=\"let opt of rowsPerPageOptions\" [value]=\"opt\" [selected]=\"rows == opt\">{{opt}}</option>\n </select>\n </div>\n "
})
], Paginator);
exports.Paginator = Paginator;
var PaginatorModule = (function () {
function PaginatorModule() {
}
return PaginatorModule;
}());
PaginatorModule = __decorate([
core_1.NgModule({
imports: [common_1.CommonModule],
exports: [Paginator],
declarations: [Paginator]
})
], PaginatorModule);
exports.PaginatorModule = PaginatorModule;
//# sourceMappingURL=paginator.js.map