UNPKG

@progress/kendo-react-grid

Version:
91 lines 5.28 kB
"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