@ngx-performance-ui/ui
Version:
Ngx Performance UI - UI
160 lines • 15.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { AbstractNgModelComponent } from '@ngx-performance-ui/core';
var PaginationComponent = /** @class */ (function (_super) {
tslib_1.__extends(PaginationComponent, _super);
function PaginationComponent() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.alignment = 'start';
_this.classes = '';
_this.paginationRange = 7;
_this.totalPages = 15;
_this.previousLabel = 'Previous';
_this.nextLabel = 'Next';
_this.size = 'sm';
return _this;
}
Object.defineProperty(PaginationComponent.prototype, "pages", {
get: /**
* @return {?}
*/
function () {
var _this = this;
if (this.paginationRange >= this.totalPages) {
return Array.apply(null, { length: this.totalPages }).map((/**
* @param {?} _
* @param {?} index
* @return {?}
*/
function (_, index) { return ({ value: index + 1 }); }));
}
/** @type {?} */
var halfWay = Math.floor(this.paginationRange / 2);
/** @type {?} */
var isStart = this.value <= halfWay;
/** @type {?} */
var isEnd = this.totalPages - this.value < halfWay;
return Array.apply(null, { length: this.paginationRange }).map((/**
* @param {?} _
* @param {?} index
* @return {?}
*/
function (_, index) {
/** @type {?} */
var i = index + 1;
if (isStart) {
return {
value: halfWay + 2 >= i ? i : _this.totalPages - (_this.paginationRange - i),
label: halfWay + 2 === i ? '...' : null,
};
}
if (isEnd) {
return {
value: _this.paginationRange - halfWay - 2 < i ? _this.totalPages - (_this.paginationRange - i) : i,
label: halfWay === i ? '...' : null,
};
}
return {
value: i === 1
? 1
: i === _this.paginationRange
? _this.totalPages
: _this.value + (halfWay - _this.paginationRange + i),
label: 2 === i || _this.paginationRange - 1 === i ? '...' : null,
};
}));
},
enumerable: true,
configurable: true
});
/**
* @param {?} __0
* @return {?}
*/
PaginationComponent.prototype.ngOnChanges = /**
* @param {?} __0
* @return {?}
*/
function (_a) {
var _this = this;
var ngModel = _a.ngModel;
if (!ngModel)
return;
if (!ngModel.currentValue)
setTimeout((/**
* @param {?} _
* @return {?}
*/
function (_) { return (_this.value = 1); }), 0);
if (ngModel.currentValue > this.totalPages || ngModel.currentValue < 1)
setTimeout((/**
* @param {?} _
* @return {?}
*/
function (_) { return (_this.value = ngModel.previousValue); }), 0);
};
/**
* @param {?} value
* @return {?}
*/
PaginationComponent.prototype.change = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value < 1 || value > this.totalPages)
return;
this.value = value;
};
PaginationComponent.decorators = [
{ type: Component, args: [{
selector: 'p-pagination',
template: "\n <ul class=\"pagination pagination-{{ size }} justify-content-{{ alignment }}\">\n <li [class.disabled]=\"value === 1\" (click)=\"change(value - 1)\" class=\"page-item\">\n <span class=\"page-link\">{{ previousLabel }}</span>\n </li>\n <li\n *ngFor=\"let page of pages\"\n [class.active]=\"page.value === value\"\n (click)=\"change(page.value)\"\n class=\"page-item\"\n >\n <span class=\"page-link\">{{ page.label || page.value }}</span>\n </li>\n <li [class.disabled]=\"value === totalPages\" (click)=\"change(value + 1)\" class=\"page-item\">\n <span class=\"page-link\">{{ nextLabel }}</span>\n </li>\n </ul>\n ",
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return PaginationComponent; })),
multi: true,
},
]
}] }
];
PaginationComponent.propDecorators = {
alignment: [{ type: Input }],
classes: [{ type: Input }],
paginationRange: [{ type: Input }],
totalPages: [{ type: Input }],
previousLabel: [{ type: Input }],
nextLabel: [{ type: Input }],
size: [{ type: Input }]
};
return PaginationComponent;
}(AbstractNgModelComponent));
export { PaginationComponent };
if (false) {
/** @type {?} */
PaginationComponent.prototype.alignment;
/** @type {?} */
PaginationComponent.prototype.classes;
/** @type {?} */
PaginationComponent.prototype.paginationRange;
/** @type {?} */
PaginationComponent.prototype.totalPages;
/** @type {?} */
PaginationComponent.prototype.previousLabel;
/** @type {?} */
PaginationComponent.prototype.nextLabel;
/** @type {?} */
PaginationComponent.prototype.size;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LXBlcmZvcm1hbmNlLXVpL3VpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFpQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFcEU7SUE4QnlDLCtDQUFnQztJQTlCekU7UUFBQSxxRUF3R0M7UUF4RUMsZUFBUyxHQUErQixPQUFPLENBQUM7UUFHaEQsYUFBTyxHQUFXLEVBQUUsQ0FBQztRQUdyQixxQkFBZSxHQUFtQixDQUFDLENBQUM7UUFHcEMsZ0JBQVUsR0FBVyxFQUFFLENBQUM7UUFHeEIsbUJBQWEsR0FBVyxVQUFVLENBQUM7UUFHbkMsZUFBUyxHQUFXLE1BQU0sQ0FBQztRQUczQixVQUFJLEdBQXVCLElBQUksQ0FBQzs7SUFzRGxDLENBQUM7SUFwREMsc0JBQUksc0NBQUs7Ozs7UUFBVDtZQUFBLGlCQXFDQztZQXBDQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDM0MsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHOzs7OztnQkFBQyxVQUFDLENBQUMsRUFBRSxLQUFLLElBQUssT0FBQSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUF0QixDQUFzQixFQUFDLENBQUM7YUFDakc7O2dCQUVLLE9B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LENBQUM7O2dCQXZHRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSxxc0JBaUJUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVOzs7NEJBQUMsY0FBTSxPQUFBLG1CQUFtQixFQUFuQixDQUFtQixFQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs7OzRCQUVFLEtBQUs7MEJBR0wsS0FBSztrQ0FHTCxLQUFLOzZCQUdMLEtBQUs7Z0NBR0wsS0FBSzs0QkFHTCxLQUFLO3VCQUdMLEtBQUs7O0lBdURSLDBCQUFDO0NBQUEsQUF4R0QsQ0E4QnlDLHdCQUF3QixHQTBFaEU7U0ExRVksbUJBQW1COzs7SUFDOUIsd0NBQ2dEOztJQUVoRCxzQ0FDcUI7O0lBRXJCLDhDQUNvQzs7SUFFcEMseUNBQ3dCOztJQUV4Qiw0Q0FDbUM7O0lBRW5DLHdDQUMyQjs7SUFFM0IsbUNBQ2dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJ0BuZ3gtcGVyZm9ybWFuY2UtdWkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3AtcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHVsIGNsYXNzPVwicGFnaW5hdGlvbiBwYWdpbmF0aW9uLXt7IHNpemUgfX0ganVzdGlmeS1jb250ZW50LXt7IGFsaWdubWVudCB9fVwiPlxuICAgICAgPGxpIFtjbGFzcy5kaXNhYmxlZF09XCJ2YWx1ZSA9PT0gMVwiIChjbGljayk9XCJjaGFuZ2UodmFsdWUgLSAxKVwiIGNsYXNzPVwicGFnZS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1saW5rXCI+e3sgcHJldmlvdXNMYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGlcbiAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInBhZ2UudmFsdWUgPT09IHZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZShwYWdlLnZhbHVlKVwiXG4gICAgICAgIGNsYXNzPVwicGFnZS1pdGVtXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYWdlLWxpbmtcIj57eyBwYWdlLmxhYmVsIHx8IHBhZ2UudmFsdWUgfX08L3NwYW4+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIFtjbGFzcy5kaXNhYmxlZF09XCJ2YWx1ZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJjaGFuZ2UodmFsdWUgKyAxKVwiIGNsYXNzPVwicGFnZS1pdGVtXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1saW5rXCI+e3sgbmV4dExhYmVsIH19PC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYWdpbmF0aW9uQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQ8bnVtYmVyPiB7XG4gIEBJbnB1dCgpXG4gIGFsaWdubWVudDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gIEBJbnB1dCgpXG4gIGNsYXNzZXM6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHBhZ2luYXRpb25SYW5nZTogNSB8IDcgfCA5IHwgMTEgPSA3O1xuXG4gIEBJbnB1dCgpXG4gIHRvdGFsUGFnZXM6IG51bWJlciA9IDE1O1xuXG4gIEBJbnB1dCgpXG4gIHByZXZpb3VzTGFiZWw6IHN0cmluZyA9ICdQcmV2aW91cyc7XG5cbiAgQElucHV0KClcbiAgbmV4dExhYmVsOiBzdHJpbmcgPSAnTmV4dCc7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ3NtJztcblxuICBnZXQgcGFnZXMoKTogQXJyYXk8eyB2YWx1ZTogbnVtYmVyOyBsYWJlbD86IHN0cmluZyB9PiB7XG4gICAgaWYgKHRoaXMucGFnaW5hdGlvblJhbmdlID49IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgcmV0dXJuIEFycmF5LmFwcGx5KG51bGwsIHsgbGVuZ3RoOiB0aGlzLnRvdGFsUGFnZXMgfSkubWFwKChfLCBpbmRleCkgPT4gKHsgdmFsdWU6IGluZGV4ICsgMSB9KSk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFsZldheSA9IE1hdGguZmxvb3IodGhpcy5wYWdpbmF0aW9uUmFuZ2UgLyAyKTtcblxuICAgIGNvbnN0IGlzU3RhcnQgPSB0aGlzLnZhbHVlIDw9IGhhbGZXYXk7XG4gICAgY29uc3QgaXNFbmQgPSB0aGlzLnRvdGFsUGFnZXMgLSB0aGlzLnZhbHVlIDwgaGFsZldheTtcblxuICAgIHJldHVybiBBcnJheS5hcHBseShudWxsLCB7IGxlbmd0aDogdGhpcy5wYWdpbmF0aW9uUmFuZ2UgfSkubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgaSA9IGluZGV4ICsgMTtcblxuICAgICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogaGFsZldheSArIDIgPj0gaSA/IGkgOiB0aGlzLnRvdGFsUGFnZXMgLSAodGhpcy5wYWdpbmF0aW9uUmFuZ2UgLSBpKSxcbiAgICAgICAgICBsYWJlbDogaGFsZldheSArIDIgPT09IGkgPyAnLi4uJyA6IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0VuZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLnBhZ2luYXRpb25SYW5nZSAtIGhhbGZXYXkgLSAyIDwgaSA/IHRoaXMudG90YWxQYWdlcyAtICh0aGlzLnBhZ2luYXRpb25SYW5nZSAtIGkpIDogaSxcbiAgICAgICAgICBsYWJlbDogaGFsZldheSA9PT0gaSA/ICcuLi4nIDogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgaSA9PT0gMVxuICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICA6IGkgPT09IHRoaXMucGFnaW5hdGlvblJhbmdlXG4gICAgICAgICAgICA/IHRoaXMudG90YWxQYWdlc1xuICAgICAgICAgICAgOiB0aGlzLnZhbHVlICsgKGhhbGZXYXkgLSB0aGlzLnBhZ2luYXRpb25SYW5nZSArIGkpLFxuICAgICAgICBsYWJlbDogMiA9PT0gaSB8fCB0aGlzLnBhZ2luYXRpb25SYW5nZSAtIDEgPT09IGkgPyAnLi4uJyA6IG51bGwsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoeyBuZ01vZGVsIH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIW5nTW9kZWwpIHJldHVybjtcblxuICAgIGlmICghbmdNb2RlbC5jdXJyZW50VmFsdWUpIHNldFRpbWVvdXQoXyA9PiAodGhpcy52YWx1ZSA9IDEpLCAwKTtcblxuICAgIGlmIChuZ01vZGVsLmN1cnJlbnRWYWx1ZSA+IHRoaXMudG90YWxQYWdlcyB8fCBuZ01vZGVsLmN1cnJlbnRWYWx1ZSA8IDEpXG4gICAgICBzZXRUaW1lb3V0KF8gPT4gKHRoaXMudmFsdWUgPSBuZ01vZGVsLnByZXZpb3VzVmFsdWUpLCAwKTtcbiAgfVxuXG4gIGNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlIDwgMSB8fCB2YWx1ZSA+IHRoaXMudG90YWxQYWdlcykgcmV0dXJuO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuIl19