@progress/kendo-react-grid
Version:
KendoReact Grid package
91 lines • 5.28 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var GridPagerSettings_1 = require("./GridPagerSettings");
var PagerNumericButtons_1 = require("./PagerNumericButtons");
var PagerInput_1 = require("./PagerInput");
var PagerPageSizes_1 = require("./PagerPageSizes");
var messages_1 = require("../messages");
var kendo_react_intl_1 = require("@progress/kendo-react-intl");
/**
* @hidden
*/
var Pager = /** @class */ (function (_super) {
__extends(Pager, _super);
function Pager() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.changePage = function (page, e) {
if (_this.props.pageChange && page > 0 && page <= _this.totalPages) {
_this.props.pageChange({
skip: (page - 1) * _this.props.pageSize,
take: _this.props.pageSize
}, e);
}
};
return _this;
}
Object.defineProperty(Pager.prototype, "totalPages", {
get: function () {
return Math.ceil((this.props.total || 0) / this.props.pageSize);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Pager.prototype, "currentPage", {
get: function () {
return Math.floor((this.props.skip || 0) / this.props.pageSize) + 1;
},
enumerable: true,
configurable: true
});
Pager.prototype.button = function (page, className, title, icon) {
var _this = this;
return (React.createElement("a", { onClick: function (e) { e.preventDefault(); _this.changePage(page, e); }, href: "#", className: className, title: title },
React.createElement("span", { className: icon, "aria-label": title })));
};
Pager.prototype.render = function () {
var settings = GridPagerSettings_1.normalize(this.props.settings);
var localizationService = kendo_react_intl_1.provideLocalizationService(this);
var intlService = kendo_react_intl_1.provideIntlService(this);
var changer = settings.type === 'numeric' ?
(React.createElement(PagerNumericButtons_1.PagerNumericButtons, { buttonCount: settings.buttonCount || 0, totalPages: this.totalPages, currentPage: this.currentPage, pageChange: this.changePage })) : (React.createElement(PagerInput_1.PagerInput, { currentPage: this.currentPage, totalPages: this.totalPages, pageChange: this.changePage }));
var first, prev, next, last;
if (settings.previousNext) {
first = this.button(1, 'k-link k-pager-nav k-pager-first' + (this.currentPage === 1 ? ' k-state-disabled' : ''), localizationService.toLanguageString(messages_1.pagerFirstPage, messages_1.messages[messages_1.pagerFirstPage]), 'k-icon k-i-seek-w');
prev = this.button(this.currentPage - 1, 'k-link k-pager-nav' + (this.currentPage === 1 ? ' k-state-disabled' : ''), localizationService.toLanguageString(messages_1.pagerPreviousPage, messages_1.messages[messages_1.pagerPreviousPage]), 'k-icon k-i-arrow-w');
next = this.button(this.currentPage + 1, 'k-link k-pager-nav' + (this.currentPage === this.totalPages ? ' k-state-disabled' : ''), localizationService.toLanguageString(messages_1.pagerNextPage, messages_1.messages[messages_1.pagerNextPage]), 'k-icon k-i-arrow-e');
last = this.button(this.totalPages, 'k-link k-pager-nav k-pager-last' + (this.currentPage === this.totalPages ? ' k-state-disabled' : ''), localizationService.toLanguageString(messages_1.pagerLastPage, messages_1.messages[messages_1.pagerLastPage]), 'k-icon k-i-seek-e');
}
var pageSizes = settings.pageSizes !== false && (React.createElement(PagerPageSizes_1.PagerPageSizes, { pageChange: this.props.pageChange, pageSize: this.props.pageSize, pageSizes: settings.pageSizes }));
var defaultMessage = messages_1.messages[messages_1.pagerInfo];
var info = !settings.info ? '' : (React.createElement("div", { className: "k-pager-info k-label" }, intlService
.format(localizationService.toLanguageString(messages_1.pagerInfo, defaultMessage), [
Math.min(this.props.skip + 1, this.props.total),
Math.min(this.props.skip + this.props.pageSize, this.props.total),
this.props.total
])));
return (React.createElement("div", { className: "k-pager-wrap k-grid-pager k-widget" },
first,
prev,
changer,
next,
last,
pageSizes,
info));
};
return Pager;
}(React.Component));
exports.Pager = Pager;
kendo_react_intl_1.registerForIntl(Pager);
kendo_react_intl_1.registerForLocalization(Pager);
//# sourceMappingURL=Pager.js.map