UNPKG

@progress/kendo-react-grid

Version:
89 lines 5.02 kB
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 __()); }; })(); import * as React from 'react'; import { normalize } from './GridPagerSettings'; import { PagerNumericButtons } from './PagerNumericButtons'; import { PagerInput } from './PagerInput'; import { PagerPageSizes } from './PagerPageSizes'; import { messages, pagerFirstPage, pagerLastPage, pagerNextPage, pagerPreviousPage, pagerInfo } from '../messages'; import { registerForIntl, registerForLocalization, provideLocalizationService, provideIntlService } from '@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 = normalize(this.props.settings); var localizationService = provideLocalizationService(this); var intlService = provideIntlService(this); var changer = settings.type === 'numeric' ? (React.createElement(PagerNumericButtons, { buttonCount: settings.buttonCount || 0, totalPages: this.totalPages, currentPage: this.currentPage, pageChange: this.changePage })) : (React.createElement(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(pagerFirstPage, messages[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(pagerPreviousPage, messages[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(pagerNextPage, messages[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(pagerLastPage, messages[pagerLastPage]), 'k-icon k-i-seek-e'); } var pageSizes = settings.pageSizes !== false && (React.createElement(PagerPageSizes, { pageChange: this.props.pageChange, pageSize: this.props.pageSize, pageSizes: settings.pageSizes })); var defaultMessage = messages[pagerInfo]; var info = !settings.info ? '' : (React.createElement("div", { className: "k-pager-info k-label" }, intlService .format(localizationService.toLanguageString(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)); export { Pager }; registerForIntl(Pager); registerForLocalization(Pager); //# sourceMappingURL=Pager.js.map