UNPKG

aurelia-materialize-bridge

Version:
114 lines 5.45 kB
System.register(["tslib", "../aurelia"], function (exports_1, context_1) { "use strict"; var tslib_1, au, MdPagination; var __moduleName = context_1 && context_1.id; return { setters: [ function (tslib_1_1) { tslib_1 = tslib_1_1; }, function (au_1) { au = au_1; } ], execute: function () { MdPagination = /** @class */ (function () { function MdPagination(element) { this.element = element; this.activePage = 1; this.pages = 5; this.visiblePageLinks = 15; this.pageLinks = []; this.showFirstLast = true; this.showPrevNext = true; this.showPageLinks = true; } MdPagination.prototype.pagesChanged = function () { this.setActivePage(1); }; MdPagination.prototype.visiblePageLinksChanged = function () { this.pageLinks = this.generatePageLinks(); }; MdPagination.prototype.bind = function () { this.pageLinks = this.generatePageLinks(); }; MdPagination.prototype.setActivePage = function (page) { this.activePage = page; this.pageLinks = this.generatePageLinks(); au.fireMaterializeEvent(this.element, "page-changed", this.activePage); }; MdPagination.prototype.setFirstPage = function () { if (this.activePage > 1) { this.setActivePage(1); } }; MdPagination.prototype.setLastPage = function () { if (this.activePage < this.pages) { this.setActivePage(this.pages); } }; MdPagination.prototype.setPreviousPage = function () { if (this.activePage > 1) { this.setActivePage(this.activePage - 1); } }; MdPagination.prototype.setNextPage = function () { if (this.activePage < this.pages) { this.setActivePage(this.activePage + 1); } }; MdPagination.prototype.generatePageLinks = function () { var numberOfLinks = Math.min(this.visiblePageLinks, this.pages); var midPoint = Math.ceil(numberOfLinks / 2); var start = Math.max(this.activePage - midPoint, 0); // respect visible links if (start + midPoint * 2 > this.pages) { start = Math.max(this.pages - midPoint * 2, 0); } var end = Math.min(start + numberOfLinks, this.pages); var list = []; for (var i = start; i < end; i++) { list.push(i); } return list; }; tslib_1.__decorate([ au.ato.bindable.numberMd({ defaultBindingMode: au.bindingMode.twoWay }), tslib_1.__metadata("design:type", Number) ], MdPagination.prototype, "activePage", void 0); tslib_1.__decorate([ au.ato.bindable.numberMd({ defaultBindingMode: au.bindingMode.oneWay }), tslib_1.__metadata("design:type", Number) ], MdPagination.prototype, "pages", void 0); tslib_1.__decorate([ au.ato.bindable.numberMd({ defaultBindingMode: au.bindingMode.oneWay }), tslib_1.__metadata("design:type", Number) ], MdPagination.prototype, "visiblePageLinks", void 0); tslib_1.__decorate([ au.bindable({ defaultBindingMode: au.bindingMode.oneWay }), tslib_1.__metadata("design:type", Array) ], MdPagination.prototype, "pageLinks", void 0); tslib_1.__decorate([ au.ato.bindable.booleanMd, tslib_1.__metadata("design:type", Boolean) ], MdPagination.prototype, "showFirstLast", void 0); tslib_1.__decorate([ au.ato.bindable.booleanMd, tslib_1.__metadata("design:type", Boolean) ], MdPagination.prototype, "showPrevNext", void 0); tslib_1.__decorate([ au.ato.bindable.booleanMd, tslib_1.__metadata("design:type", Boolean) ], MdPagination.prototype, "showPageLinks", void 0); MdPagination = tslib_1.__decorate([ au.customElement("md-pagination"), au.autoinject, tslib_1.__metadata("design:paramtypes", [Element]) ], MdPagination); return MdPagination; }()); exports_1("MdPagination", MdPagination); } }; }); //# sourceMappingURL=pagination.js.map