UNPKG

@ngx-performance-ui/ui

Version:
160 lines 15.2 kB
/** * @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