ngx-mariem-datatable
Version:
Advanced table extension with sorting, filtering, paging and more... for Angular apps
193 lines • 15.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/ngx-mariem-pagination/ngx-mariem-pagination.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter, Pipe, } from "@angular/core";
var NgxMariemPaginationComponent = /** @class */ (function () {
function NgxMariemPaginationComponent() {
this.previousText = "‹";
this.nextText = "›";
this.firstText = "«";
this.lastText = "»";
this.pageChanged = new EventEmitter();
this._totalItems = 0;
this._itemsPerPage = 10;
this._maxSize = 5;
this.listNumbers = [];
this.activeIndex = 0;
}
Object.defineProperty(NgxMariemPaginationComponent.prototype, "totalItems", {
get: /**
* @return {?}
*/
function () {
return this._totalItems;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._totalItems = value;
this.fixListNumbers();
},
enumerable: true,
configurable: true
});
Object.defineProperty(NgxMariemPaginationComponent.prototype, "itemsPerPage", {
get: /**
* @return {?}
*/
function () {
return this._itemsPerPage;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._itemsPerPage = value;
this.fixListNumbers();
},
enumerable: true,
configurable: true
});
Object.defineProperty(NgxMariemPaginationComponent.prototype, "maxSize", {
get: /**
* @return {?}
*/
function () {
return this._maxSize;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._maxSize = value;
this.fixListNumbers();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NgxMariemPaginationComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.pageChangedFn(0);
};
/**
* @return {?}
*/
NgxMariemPaginationComponent.prototype.fixListNumbers = /**
* @return {?}
*/
function () {
/** @type {?} */
var round = Math.round(this.totalItems / this.itemsPerPage);
/** @type {?} */
var items = round * this.itemsPerPage < this.totalItems ? round + 1 : round;
this.listNumbers = [];
for (var index = 0; index < items; index++) {
this.listNumbers.push(index + 1);
}
};
/**
* @param {?} index
* @return {?}
*/
NgxMariemPaginationComponent.prototype.pageChangedFn = /**
* @param {?} index
* @return {?}
*/
function (index) {
this.activeIndex = index;
this.pageChanged.emit({
page: index + 1,
itemsPerPage: this.itemsPerPage,
});
};
NgxMariemPaginationComponent.decorators = [
{ type: Component, args: [{
selector: "ngx-mariem-pagination",
template: "\n <div class=\"flex\">\n <button\n [disabled]=\"activeIndex == 0\"\n (click)=\"pageChangedFn(0)\"\n [innerHTML]=\"firstText\"\n class=\"page-link\"\n ></button>\n <button\n [disabled]=\"activeIndex == 0\"\n (click)=\"pageChangedFn(activeIndex - 1)\"\n [innerHTML]=\"previousText\"\n class=\"page-link\"\n ></button>\n <button\n *ngFor=\"\n let i of listNumbers\n | pipePagination: { maxSize: maxSize, activeIndex: activeIndex }\n \"\n class=\"page-link\"\n [ngClass]=\"{ 'active-page': activeIndex == i - 1 }\"\n (click)=\"pageChangedFn(i - 1)\"\n >\n {{ i }}\n </button>\n <button\n [disabled]=\"activeIndex == listNumbers.length - 1\"\n (click)=\"pageChangedFn(activeIndex + 1)\"\n [innerHTML]=\"nextText\"\n class=\"page-link\"\n ></button>\n <button\n [disabled]=\"activeIndex == listNumbers.length - 1\"\n (click)=\"pageChangedFn(listNumbers.length - 1)\"\n [innerHTML]=\"lastText\"\n class=\"page-link\"\n ></button>\n </div>\n ",
styles: [".flex{display:flex}.active-page{background-color:rgba(158,158,158,.2)!important}.page-link{background:0 0;color:#333!important;border:none!important;font-weight:700!important;align-items:center!important;margin:0!important;padding:.5rem;height:auto!important;min-width:auto!important;border-radius:.25rem!important;cursor:pointer}.page-link:hover{background-color:rgba(158,158,158,.2)!important}.page-link[disabled]{cursor:no-drop}"]
}] }
];
/** @nocollapse */
NgxMariemPaginationComponent.ctorParameters = function () { return []; };
NgxMariemPaginationComponent.propDecorators = {
totalItems: [{ type: Input }],
itemsPerPage: [{ type: Input }],
maxSize: [{ type: Input }],
previousText: [{ type: Input }],
nextText: [{ type: Input }],
firstText: [{ type: Input }],
lastText: [{ type: Input }],
pageChanged: [{ type: Output }]
};
return NgxMariemPaginationComponent;
}());
export { NgxMariemPaginationComponent };
if (false) {
/** @type {?} */
NgxMariemPaginationComponent.prototype.previousText;
/** @type {?} */
NgxMariemPaginationComponent.prototype.nextText;
/** @type {?} */
NgxMariemPaginationComponent.prototype.firstText;
/** @type {?} */
NgxMariemPaginationComponent.prototype.lastText;
/** @type {?} */
NgxMariemPaginationComponent.prototype.pageChanged;
/** @type {?} */
NgxMariemPaginationComponent.prototype._totalItems;
/** @type {?} */
NgxMariemPaginationComponent.prototype._itemsPerPage;
/** @type {?} */
NgxMariemPaginationComponent.prototype._maxSize;
/** @type {?} */
NgxMariemPaginationComponent.prototype.listNumbers;
/** @type {?} */
NgxMariemPaginationComponent.prototype.activeIndex;
}
var pipePagination = /** @class */ (function () {
function pipePagination() {
}
/**
* @param {?} list
* @param {?} filterObj
* @return {?}
*/
pipePagination.prototype.transform = /**
* @param {?} list
* @param {?} filterObj
* @return {?}
*/
function (list, filterObj) {
if (list.length <= filterObj.maxSize) {
return list;
}
else {
/** @type {?} */
var tab = void 0;
if (filterObj.activeIndex + filterObj.maxSize >= list.length) {
tab = list.slice(list.length - filterObj.maxSize, list.length);
}
else {
tab = list.slice(filterObj.activeIndex, filterObj.activeIndex + filterObj.maxSize);
}
return tab;
}
};
pipePagination.decorators = [
{ type: Pipe, args: [{ name: "pipePagination" },] }
];
return pipePagination;
}());
export { pipePagination };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW1hcmllbS1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tYXJpZW0tZGF0YXRhYmxlLyIsInNvdXJjZXMiOlsibGliL25neC1tYXJpZW0tcGFnaW5hdGlvbi9uZ3gtbWFyaWVtLXBhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUM7QUFFdkI7SUFrRUU7UUFWUyxpQkFBWSxHQUFXLFVBQVUsQ0FBQztRQUNsQyxhQUFRLEdBQVcsVUFBVSxDQUFDO1FBQzlCLGNBQVMsR0FBVyxTQUFTLENBQUM7UUFDOUIsYUFBUSxHQUFXLFNBQVMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFXLENBQUMsQ0FBQztJQUNULENBQUM7SUF0QmhCLHNCQUFhLG9EQUFVOzs7O1FBMEN2QjtZQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDOzs7OztRQTVDRCxVQUF3QixLQUFLO1lBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDOzs7T0FBQTtJQUNELHNCQUFhLHNEQUFZOzs7O1FBeUN6QjtZQUNFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM1QixDQUFDOzs7OztRQTNDRCxVQUEwQixLQUFLO1lBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFj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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm5neC1tYXJpZW0tcGFnaW5hdGlvblwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVJbmRleCA9PSAwXCJcbiAgICAgICAgKGNsaWNrKT1cInBhZ2VDaGFuZ2VkRm4oMClcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImZpcnN0VGV4dFwiXG4gICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZUluZGV4ID09IDBcIlxuICAgICAgICAoY2xpY2spPVwicGFnZUNoYW5nZWRGbihhY3RpdmVJbmRleCAtIDEpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJwcmV2aW91c1RleHRcIlxuICAgICAgICBjbGFzcz1cInBhZ2UtbGlua1wiXG4gICAgICA+PC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgIGxldCBpIG9mIGxpc3ROdW1iZXJzXG4gICAgICAgICAgICB8IHBpcGVQYWdpbmF0aW9uOiB7IG1heFNpemU6IG1heFNpemUsIGFjdGl2ZUluZGV4OiBhY3RpdmVJbmRleCB9XG4gICAgICAgIFwiXG4gICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLXBhZ2UnOiBhY3RpdmVJbmRleCA9PSBpIC0gMSB9XCJcbiAgICAgICAgKGNsaWNrKT1cInBhZ2VDaGFuZ2VkRm4oaSAtIDEpXCJcbiAgICAgID5cbiAgICAgICAge3sgaSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVJbmRleCA9PSBsaXN0TnVtYmVycy5sZW5ndGggLSAxXCJcbiAgICAgICAgKGNsaWNrKT1cInBhZ2VDaGFuZ2VkRm4oYWN0aXZlSW5kZXggKyAxKVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwibmV4dFRleHRcIlxuICAgICAgICBjbGFzcz1cInBhZ2UtbGlua1wiXG4gICAgICA+PC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJhY3RpdmVJbmRleCA9PSBsaXN0TnVtYmVycy5sZW5ndGggLSAxXCJcbiAgICAgICAgKGNsaWNrKT1cInBhZ2VDaGFuZ2VkRm4obGlzdE51bWJlcnMubGVuZ3RoIC0gMSlcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cImxhc3RUZXh0XCJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFtcIi4vbmd4LW1hcmllbS1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXJpZW1QYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2V0IHRvdGFsSXRlbXModmFsdWUpIHtcbiAgICB0aGlzLl90b3RhbEl0ZW1zID0gdmFsdWU7XG4gICAgdGhpcy5maXhMaXN0TnVtYmVycygpO1xuICB9XG4gIEBJbnB1dCgpIHNldCBpdGVtc1BlclBhZ2UodmFsdWUpIHtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UgPSB2YWx1ZTtcbiAgICB0aGlzLmZpeExpc3ROdW1iZXJzKCk7XG4gIH1cbiAgQElucHV0KCkgc2V0IG1heFNpemUodmFsdWUpIHtcbiAgICB0aGlzLl9tYXhTaXplID0gdmFsdWU7XG4gICAgdGhpcy5maXhMaXN0TnVtYmVycygpO1xuICB9XG4gIEBJbnB1dCgpIHByZXZpb3VzVGV4dDogc3RyaW5nID0gXCImbHNhcXVvO1wiO1xuICBASW5wdXQoKSBuZXh0VGV4dDogc3RyaW5nID0gXCImcnNhcXVvO1wiO1xuICBASW5wdXQoKSBmaXJzdFRleHQ6IHN0cmluZyA9IFwiJmxhcXVvO1wiO1xuICBASW5wdXQoKSBsYXN0VGV4dDogc3RyaW5nID0gXCImcmFxdW87XCI7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgX3RvdGFsSXRlbXM6IG51bWJlciA9IDA7XG4gIF9pdGVtc1BlclBhZ2U6IG51bWJlciA9IDEwO1xuICBfbWF4U2l6ZTogbnVtYmVyID0gNTtcbiAgbGlzdE51bWJlcnMgPSBbXTtcbiAgYWN0aXZlSW5kZXg6IG51bWJlciA9IDA7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkRm4oMCk7XG4gIH1cbiAgZml4TGlzdE51bWJlcnMoKSB7XG4gICAgbGV0IHJvdW5kID0gTWF0aC5yb3VuZCh0aGlzLnRvdGFsSXRlbXMgLyB0aGlzLml0ZW1zUGVyUGFnZSk7XG4gICAgbGV0IGl0ZW1zID0gcm91bmQgKiB0aGlzLml0ZW1zUGVyUGFnZSA8IHRoaXMudG90YWxJdGVtcyA/IHJvdW5kICsgMSA6IHJvdW5kO1xuICAgIHRoaXMubGlzdE51bWJlcnM9W11cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgaXRlbXM7IGluZGV4KyspIHtcbiAgICAgIHRoaXMubGlzdE51bWJlcnMucHVzaChpbmRleCArIDEpO1xuICAgIH1cbiAgfVxuICBwYWdlQ2hhbmdlZEZuKGluZGV4KSB7XG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCh7XG4gICAgICBwYWdlOiBpbmRleCArIDEsXG4gICAgICBpdGVtc1BlclBhZ2U6IHRoaXMuaXRlbXNQZXJQYWdlLFxuICAgIH0pO1xuICB9XG4gIGdldCB0b3RhbEl0ZW1zKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbEl0ZW1zO1xuICB9XG4gIGdldCBpdGVtc1BlclBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZTtcbiAgfVxuICBnZXQgbWF4U2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4U2l6ZTtcbiAgfVxufVxuQFBpcGUoeyBuYW1lOiBcInBpcGVQYWdpbmF0aW9uXCIgfSlcbmV4cG9ydCBjbGFzcyBwaXBlUGFnaW5hdGlvbiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0obGlzdCwgZmlsdGVyT2JqKTogYW55W10ge1xuICAgIGlmIChsaXN0Lmxlbmd0aCA8PSBmaWx0ZXJPYmoubWF4U2l6ZSkge1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB0YWI7XG4gICAgICBpZiAoZmlsdGVyT2JqLmFjdGl2ZUluZGV4ICsgZmlsdGVyT2JqLm1heFNpemUgPj0gbGlzdC5sZW5ndGgpIHtcbiAgICAgICAgdGFiID0gbGlzdC5zbGljZShsaXN0Lmxlbmd0aCAtIGZpbHRlck9iai5tYXhTaXplLCBsaXN0Lmxlbmd0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWIgPSBsaXN0LnNsaWNlKFxuICAgICAgICAgIGZpbHRlck9iai5hY3RpdmVJbmRleCxcbiAgICAgICAgICBmaWx0ZXJPYmouYWN0aXZlSW5kZXggKyBmaWx0ZXJPYmoubWF4U2l6ZVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRhYjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==