@progress/kendo-react-data-tools 5.10.0-dev.202301051045 → 5.10.0-dev.202301091032

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ export var packageMetadata = {
5
5
  name: '@progress/kendo-react-data-tools',
6
6
  productName: 'KendoReact',
7
7
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
8
- publishDate: 1672914463,
8
+ publishDate: 1673259211,
9
9
  version: '',
10
10
  licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'
11
11
  };
@@ -72,6 +72,18 @@ export interface PagerProps {
72
72
  * Defines if the pager will be responsive. Defaults to `true`.
73
73
  */
74
74
  responsive?: boolean;
75
+ /**
76
+ * Configures the `size` of the Pager.
77
+ *
78
+ * The available options are:
79
+ * - small
80
+ * - medium
81
+ * - large
82
+ * - null—Does not set a size `className`.
83
+ *
84
+ * @default `medium`
85
+ */
86
+ size?: null | 'small' | 'medium' | 'large';
75
87
  /**
76
88
  * Fires when the page of the Pager is changed. You have to handle the event yourself and page the data.
77
89
  */
@@ -101,6 +113,7 @@ export declare class Pager extends React.Component<PagerProps> {
101
113
  previousNext: PropTypes.Requireable<boolean>;
102
114
  onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
103
115
  messagesMap: PropTypes.Requireable<(...args: any[]) => any>;
116
+ size: PropTypes.Requireable<string | null>;
104
117
  };
105
118
  /**
106
119
  * @hidden
@@ -109,6 +122,7 @@ export declare class Pager extends React.Component<PagerProps> {
109
122
  buttonCount: number;
110
123
  info: boolean;
111
124
  type: string;
125
+ size: string;
112
126
  };
113
127
  private _element;
114
128
  /**
@@ -29,9 +29,10 @@ import * as PropTypes from 'prop-types';
29
29
  import { PagerNumericButtons } from './PagerNumericButtons';
30
30
  import { PagerInput } from './PagerInput';
31
31
  import { PagerPageSizes } from './PagerPageSizes';
32
+ import { Button } from '@progress/kendo-react-buttons';
32
33
  import { messages, pagerFirstPage, pagerLastPage, pagerNextPage, pagerPreviousPage, pagerInfo, pagerAriaKeyshortcuts, pagerAriaLabel } from '../messages';
33
34
  import { registerForIntl, registerForLocalization, provideLocalizationService, provideIntlService } from '@progress/kendo-react-intl';
34
- import { classNames, Icon } from '@progress/kendo-react-common';
35
+ import { classNames, kendoThemeMaps } from '@progress/kendo-react-common';
35
36
  import { validatePackage } from '@progress/kendo-react-common';
36
37
  import { packageMetadata } from '../package-metadata';
37
38
  /**
@@ -113,13 +114,14 @@ var Pager = /** @class */ (function (_super) {
113
114
  * @hidden
114
115
  */
115
116
  Pager.prototype.render = function () {
117
+ var _a;
116
118
  var _this = this;
117
- var _a = this.props, skip = _a.skip, take = _a.take, total = _a.total, pageSizes = _a.pageSizes, messagesMap = _a.messagesMap;
119
+ var _b = this.props, skip = _b.skip, take = _b.take, total = _b.total, pageSizes = _b.pageSizes, size = _b.size, messagesMap = _b.messagesMap;
118
120
  var localizationService = provideLocalizationService(this);
119
121
  var intlService = provideIntlService(this);
120
122
  var currentPage = Math.floor(skip / take) + 1;
121
123
  var changer = this.props.type === 'numeric' ?
122
- (React.createElement(PagerNumericButtons, { buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage, messagesMap: this.props.messagesMap })) : (React.createElement(PagerInput, { currentPage: currentPage, totalPages: this.totalPages, pageChange: this.changePage, messagesMap: messagesMap }));
124
+ (React.createElement(PagerNumericButtons, { buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage, messagesMap: this.props.messagesMap, size: this.props.size })) : (React.createElement(PagerInput, { buttonCount: this.props.buttonCount || 0, currentPage: currentPage, totalPages: this.totalPages, pageChange: this.changePage, messagesMap: messagesMap, size: this.props.size }));
123
125
  var firstPageMessage = messagesMap ? messagesMap(pagerFirstPage) :
124
126
  ({ messageKey: pagerFirstPage, defaultMessage: messages[pagerFirstPage] });
125
127
  var previousPageMessage = messagesMap ? messagesMap(pagerPreviousPage) :
@@ -136,34 +138,36 @@ var Pager = /** @class */ (function (_super) {
136
138
  ({ messageKey: pagerAriaLabel, defaultMessage: messages[pagerAriaLabel] });
137
139
  var first, prev, next, last;
138
140
  if (this.props.previousNext) {
139
- first = this.renderButton(1, 'k-link k-pager-nav k-pager-first' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage), 'caret-alt-to-left', (currentPage === 1 ? true : undefined));
140
- prev = this.renderButton(currentPage - 1, 'k-link k-pager-nav' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage), 'caret-alt-left', (currentPage === 1 ? true : undefined));
141
- next = this.renderButton(currentPage + 1, 'k-link k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'caret-alt-right', (currentPage >= this.totalPages ? true : undefined));
142
- last = this.renderButton(this.totalPages, 'k-link k-pager-nav k-pager-last' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage), 'caret-alt-to-right', (currentPage >= this.totalPages ? true : undefined));
141
+ first = this.renderButton(1, 'k-pager-nav k-pager-first' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage), 'caret-alt-to-left', (currentPage === 1 ? true : undefined));
142
+ prev = this.renderButton(currentPage - 1, 'k-pager-nav' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage), 'caret-alt-left', (currentPage === 1 ? true : undefined));
143
+ next = this.renderButton(currentPage + 1, 'k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'caret-alt-right', (currentPage >= this.totalPages ? true : undefined));
144
+ last = this.renderButton(this.totalPages, 'k-pager-nav k-pager-last' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage), 'caret-alt-to-right', (currentPage >= this.totalPages ? true : undefined));
143
145
  }
144
- var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap }));
146
+ var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap, size: this.props.size }));
145
147
  var info = this.props.info && (React.createElement("div", { className: "k-pager-info k-label" }, intlService
146
148
  .format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [
147
149
  Math.min(skip + 1, total),
148
150
  Math.min(skip + take, total),
149
151
  total
150
152
  ])));
151
- return (React.createElement("div", { className: classNames('k-pager k-widget', this.props.className), style: this.props.style, role: "application", "aria-roledescription": "pager", "aria-keyshortcuts": localizationService.toLanguageString(ariaKeyshortcutsMessage.messageKey, ariaKeyshortcutsMessage.defaultMessage), "aria-label": localizationService.toLanguageString(ariaLabelMessage.messageKey, ariaLabelMessage.defaultMessage), ref: function (element) { return _this._element = element; } },
152
- first,
153
- prev,
154
- changer,
155
- next,
156
- last,
153
+ return (React.createElement("div", { className: classNames('k-pager', (_a = {},
154
+ _a["k-pager-".concat(kendoThemeMaps.sizeMap[size] || size)] = size,
155
+ _a), this.props.className), style: this.props.style, role: "application", "aria-roledescription": "pager", "aria-keyshortcuts": localizationService.toLanguageString(ariaKeyshortcutsMessage.messageKey, ariaKeyshortcutsMessage.defaultMessage), "aria-label": localizationService.toLanguageString(ariaLabelMessage.messageKey, ariaLabelMessage.defaultMessage), ref: function (element) { return _this._element = element; } },
156
+ React.createElement("div", { className: classNames('k-pager-numbers-wrap', this.props.className) },
157
+ first,
158
+ prev,
159
+ changer,
160
+ next,
161
+ last),
157
162
  pagerPageSizes,
158
163
  info));
159
164
  };
160
165
  Pager.prototype.renderButton = function (page, className, title, icon, isDisabled) {
161
166
  var _this = this;
162
- return (React.createElement("a", { onClick: function (e) {
167
+ return (React.createElement(Button, { fillMode: 'flat', themeColor: 'base', size: this.props.size, rounded: null, className: className, icon: icon, title: title, role: "button", "aria-disabled": isDisabled, onClick: function (e) {
163
168
  e.preventDefault();
164
169
  _this.changePage(page, e);
165
- }, href: "#", className: className, title: title, role: "button", "aria-disabled": isDisabled },
166
- React.createElement(Icon, { name: icon })));
170
+ } }));
167
171
  };
168
172
  Object.defineProperty(Pager.prototype, "totalPages", {
169
173
  get: function () {
@@ -187,7 +191,8 @@ var Pager = /** @class */ (function (_super) {
187
191
  pageSizes: PropTypes.arrayOf(PropTypes.number),
188
192
  previousNext: PropTypes.bool,
189
193
  onPageChange: PropTypes.func,
190
- messagesMap: PropTypes.func
194
+ messagesMap: PropTypes.func,
195
+ size: PropTypes.oneOf([null, 'small', 'medium', 'large'])
191
196
  };
192
197
  /**
193
198
  * @hidden
@@ -195,7 +200,8 @@ var Pager = /** @class */ (function (_super) {
195
200
  Pager.defaultProps = {
196
201
  buttonCount: 10,
197
202
  info: true,
198
- type: 'numeric'
203
+ type: 'numeric',
204
+ size: 'medium'
199
205
  };
200
206
  return Pager;
201
207
  }(React.Component));
@@ -3,8 +3,10 @@ import * as React from 'react';
3
3
  * @hidden
4
4
  */
5
5
  export interface PagerInputProps {
6
+ buttonCount: number;
6
7
  totalPages: number;
7
8
  currentPage: number;
9
+ size?: null | 'small' | 'medium' | 'large';
8
10
  pageChange: (page: number, e: React.SyntheticEvent<any>) => any;
9
11
  messagesMap?: (messageKey: string) => ({
10
12
  messageKey: string;
@@ -19,4 +21,6 @@ export declare class PagerInput extends React.Component<PagerInputProps> {
19
21
  onChange: (e: any) => void;
20
22
  value: () => string;
21
23
  render(): JSX.Element;
24
+ private get end();
25
+ private get start();
22
26
  }
@@ -14,8 +14,9 @@ var __extends = (this && this.__extends) || (function () {
14
14
  };
15
15
  })();
16
16
  import * as React from 'react';
17
+ import { classNames, kendoThemeMaps } from '@progress/kendo-react-common';
17
18
  import { registerForLocalization, provideLocalizationService, provideIntlService } from '@progress/kendo-react-intl';
18
- import { messages, pagerOf, pagerPage, pagerTotalPages } from './../messages';
19
+ import { messages, pagerOf, pagerPage, pagerTotalPages, pagerMobileSelect } from './../messages';
19
20
  /**
20
21
  * @hidden
21
22
  */
@@ -39,6 +40,7 @@ var PagerInput = /** @class */ (function (_super) {
39
40
  return _this;
40
41
  }
41
42
  PagerInput.prototype.render = function () {
43
+ var _a;
42
44
  var _this = this;
43
45
  var intlService = provideIntlService(this);
44
46
  var localizationService = provideLocalizationService(this);
@@ -48,14 +50,45 @@ var PagerInput = /** @class */ (function (_super) {
48
50
  ({ messageKey: pagerOf, defaultMessage: messages[pagerOf] });
49
51
  var totalPagesMessage = this.props.messagesMap ? this.props.messagesMap(pagerTotalPages) :
50
52
  ({ messageKey: pagerTotalPages, defaultMessage: messages[pagerTotalPages] });
51
- return (React.createElement("span", { className: "k-pager-input k-label" },
52
- localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage),
53
- React.createElement("span", { className: 'k-textbox k-input k-input-md k-rounded-md k-input-solid' },
54
- React.createElement("input", { className: "k-input-inner", value: this.value(), onBlur: function () { return _this.forceUpdate(); }, onChange: this.onChange })), "".concat(localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage), " ").concat(intlService
55
- .format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [
56
- this.props.totalPages
57
- ]))));
53
+ var mobileSelectMessage = this.props.messagesMap ? this.props.messagesMap(pagerMobileSelect) :
54
+ ({ messageKey: pagerMobileSelect, defaultMessage: messages[pagerMobileSelect] });
55
+ var buttons = [];
56
+ for (var idx = this.start; idx <= this.end; idx++) {
57
+ buttons.push(idx);
58
+ }
59
+ var options = buttons.map(function (page) { return (React.createElement("option", { key: page }, page)); });
60
+ return (React.createElement(React.Fragment, null,
61
+ React.createElement("select", { className: classNames('k-picker k-dropdown-list k-dropdown k-rounded-md', (_a = {},
62
+ _a["k-picker-".concat(kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
63
+ _a)), "aria-label": localizationService.toLanguageString(mobileSelectMessage.messageKey, mobileSelectMessage.defaultMessage), value: this.props.currentPage, onChange: this.onChange }, options),
64
+ React.createElement("span", { className: "k-pager-input k-label" },
65
+ localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage),
66
+ React.createElement("span", { className: 'k-textbox k-input k-input-md k-rounded-md k-input-solid' },
67
+ React.createElement("input", { className: "k-input-inner", value: this.value(), onBlur: function () { return _this.forceUpdate(); }, onChange: this.onChange })), "".concat(localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage), " ").concat(intlService
68
+ .format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [
69
+ this.props.totalPages
70
+ ])))));
58
71
  };
72
+ Object.defineProperty(PagerInput.prototype, "end", {
73
+ get: function () {
74
+ return Math.min((this.start + this.props.buttonCount) - 1, this.props.totalPages);
75
+ },
76
+ enumerable: false,
77
+ configurable: true
78
+ });
79
+ Object.defineProperty(PagerInput.prototype, "start", {
80
+ get: function () {
81
+ var page = this.props.currentPage;
82
+ var buttonCount = this.props.buttonCount;
83
+ if (page > buttonCount) {
84
+ var reminder = (page % buttonCount);
85
+ return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;
86
+ }
87
+ return 1;
88
+ },
89
+ enumerable: false,
90
+ configurable: true
91
+ });
59
92
  return PagerInput;
60
93
  }(React.Component));
61
94
  export { PagerInput };
@@ -6,6 +6,7 @@ export interface PagerNumericButtonsProps {
6
6
  buttonCount: number;
7
7
  totalPages: number;
8
8
  currentPage: number;
9
+ size?: null | 'small' | 'medium' | 'large';
9
10
  pageChange: (page: number, e: React.SyntheticEvent<any>) => any;
10
11
  messagesMap?: (messageKey: string) => ({
11
12
  messageKey: string;
@@ -17,8 +18,6 @@ export interface PagerNumericButtonsProps {
17
18
  */
18
19
  export declare class PagerNumericButtons extends React.Component<PagerNumericButtonsProps> {
19
20
  render(): JSX.Element;
20
- private renderDots;
21
- private renderOptionDots;
22
21
  private handlePageChange;
23
22
  private handleSelectPageChange;
24
23
  private get end();
@@ -14,10 +14,10 @@ var __extends = (this && this.__extends) || (function () {
14
14
  };
15
15
  })();
16
16
  import * as React from 'react';
17
- import { classNames } from '@progress/kendo-react-common';
17
+ import { classNames, kendoThemeMaps } from '@progress/kendo-react-common';
18
+ import { Button } from '@progress/kendo-react-buttons';
18
19
  import { messages, pagerMobileSelect, pagerPageNumberLabel } from '../messages';
19
20
  import { provideLocalizationService } from '@progress/kendo-react-intl';
20
- var dots = '...';
21
21
  /**
22
22
  * @hidden
23
23
  */
@@ -36,12 +36,9 @@ var PagerNumericButtons = /** @class */ (function (_super) {
36
36
  return _this;
37
37
  }
38
38
  PagerNumericButtons.prototype.render = function () {
39
+ var _a;
39
40
  var _this = this;
40
41
  var localizationService = provideLocalizationService(this);
41
- var prevDots = this.start > 1 && this.renderDots(this.start - 1);
42
- var postDots = this.end < this.props.totalPages && this.renderDots(this.end + 1);
43
- var prevOptionDots = this.start > 1 && this.renderOptionDots(this.start - 1);
44
- var postOptionDots = this.end < this.props.totalPages && this.renderOptionDots(this.end + 1);
45
42
  var mobileSelectMessage = this.props.messagesMap ? this.props.messagesMap(pagerMobileSelect) :
46
43
  ({ messageKey: pagerMobileSelect, defaultMessage: messages[pagerMobileSelect] });
47
44
  var pageNumberLabelMessage = this.props.messagesMap ? this.props.messagesMap(pagerPageNumberLabel) :
@@ -50,28 +47,13 @@ var PagerNumericButtons = /** @class */ (function (_super) {
50
47
  for (var idx = this.start; idx <= this.end; idx++) {
51
48
  buttons.push(idx);
52
49
  }
53
- var numerics = buttons.map(function (page) { return (React.createElement("li", { key: page },
54
- React.createElement("a", { role: "button", "aria-label": localizationService.toLanguageString(pageNumberLabelMessage.messageKey, pageNumberLabelMessage.defaultMessage) + ' ' + page, "aria-current": _this.props.currentPage === page ? true : undefined, href: "#", onClick: function (e) { return _this.handlePageChange(e, page); }, className: classNames('k-link', {
55
- 'k-selected': _this.props.currentPage === page
56
- }) }, page))); });
57
- var options = buttons.map(function (page) { return (React.createElement("option", { key: page, className: classNames('k-link') }, page)); });
58
- return (React.createElement("div", { className: "k-pager-numbers-wrap" },
59
- React.createElement("select", { className: "k-dropdown", "aria-label": localizationService.toLanguageString(mobileSelectMessage.messageKey, mobileSelectMessage.defaultMessage), value: this.props.currentPage, onChange: function (e) { return _this.handleSelectPageChange(e); } },
60
- prevOptionDots,
61
- options,
62
- postOptionDots),
63
- React.createElement("ul", { className: "k-pager-numbers" },
64
- prevDots,
65
- numerics,
66
- postDots)));
67
- };
68
- PagerNumericButtons.prototype.renderDots = function (page) {
69
- var _this = this;
70
- return (React.createElement("li", null,
71
- React.createElement("a", { className: "k-link", onClick: function (e) { return _this.handlePageChange(e, page); }, href: "#" }, dots)));
72
- };
73
- PagerNumericButtons.prototype.renderOptionDots = function (page) {
74
- return (React.createElement("option", { className: "k-link", value: page }, dots));
50
+ var numerics = buttons.map(function (page) { return (React.createElement(Button, { className: classNames({ 'k-selected': _this.props.currentPage === page }), key: page, fillMode: 'flat', themeColor: 'primary', size: _this.props.size, rounded: null, role: "button", "aria-label": localizationService.toLanguageString(pageNumberLabelMessage.messageKey, pageNumberLabelMessage.defaultMessage) + ' ' + page, "aria-current": _this.props.currentPage === page ? true : undefined, onClick: function (e) { return _this.handlePageChange(e, page); } }, page)); });
51
+ var options = buttons.map(function (page) { return (React.createElement("option", { key: page }, page)); });
52
+ return (React.createElement(React.Fragment, null,
53
+ React.createElement("select", { className: classNames('k-picker k-dropdown-list k-dropdown k-rounded-md', (_a = {},
54
+ _a["k-picker-".concat(kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
55
+ _a)), "aria-label": localizationService.toLanguageString(mobileSelectMessage.messageKey, mobileSelectMessage.defaultMessage), value: this.props.currentPage, onChange: function (e) { return _this.handleSelectPageChange(e); } }, options),
56
+ React.createElement("div", { className: "k-pager-numbers" }, numerics)));
75
57
  };
76
58
  Object.defineProperty(PagerNumericButtons.prototype, "end", {
77
59
  get: function () {
@@ -4,11 +4,12 @@ import * as React from 'react';
4
4
  */
5
5
  export interface PagerPageSizesProps {
6
6
  pageSize: number;
7
+ pageSizes: number[];
8
+ size?: null | 'small' | 'medium' | 'large';
7
9
  pageChange?: (event: {
8
10
  skip: number;
9
11
  take: number;
10
12
  }, e: React.SyntheticEvent<any>) => void;
11
- pageSizes: number[];
12
13
  messagesMap?: (messageKey: string) => ({
13
14
  messageKey: string;
14
15
  defaultMessage: string;
@@ -42,7 +42,7 @@ var PagerPageSizes = /** @class */ (function (_super) {
42
42
  var pageSelectionMessage = this.props.messagesMap ? this.props.messagesMap(pagerPageSelection) :
43
43
  ({ messageKey: pagerPageSelection, defaultMessage: messages[pagerPageSelection] });
44
44
  return (React.createElement("span", { className: "k-pager-sizes k-label" },
45
- React.createElement(DropDownList, { value: this.props.pageSize, data: sizes, onChange: this.pageSizeChange, ariaLabel: provideLocalizationService(this).toLanguageString(pageSelectionMessage.messageKey, pageSelectionMessage.defaultMessage) }),
45
+ React.createElement(DropDownList, { value: this.props.pageSize, data: sizes, onChange: this.pageSizeChange, ariaLabel: provideLocalizationService(this).toLanguageString(pageSelectionMessage.messageKey, pageSelectionMessage.defaultMessage), size: this.props.size }),
46
46
  provideLocalizationService(this).toLanguageString(itemPerPageMessage.messageKey, itemPerPageMessage.defaultMessage)));
47
47
  };
48
48
  return PagerPageSizes;
@@ -8,7 +8,7 @@ exports.packageMetadata = {
8
8
  name: '@progress/kendo-react-data-tools',
9
9
  productName: 'KendoReact',
10
10
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
11
- publishDate: 1672914463,
11
+ publishDate: 1673259211,
12
12
  version: '',
13
13
  licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'
14
14
  };
@@ -72,6 +72,18 @@ export interface PagerProps {
72
72
  * Defines if the pager will be responsive. Defaults to `true`.
73
73
  */
74
74
  responsive?: boolean;
75
+ /**
76
+ * Configures the `size` of the Pager.
77
+ *
78
+ * The available options are:
79
+ * - small
80
+ * - medium
81
+ * - large
82
+ * - null&mdash;Does not set a size `className`.
83
+ *
84
+ * @default `medium`
85
+ */
86
+ size?: null | 'small' | 'medium' | 'large';
75
87
  /**
76
88
  * Fires when the page of the Pager is changed. You have to handle the event yourself and page the data.
77
89
  */
@@ -101,6 +113,7 @@ export declare class Pager extends React.Component<PagerProps> {
101
113
  previousNext: PropTypes.Requireable<boolean>;
102
114
  onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
103
115
  messagesMap: PropTypes.Requireable<(...args: any[]) => any>;
116
+ size: PropTypes.Requireable<string | null>;
104
117
  };
105
118
  /**
106
119
  * @hidden
@@ -109,6 +122,7 @@ export declare class Pager extends React.Component<PagerProps> {
109
122
  buttonCount: number;
110
123
  info: boolean;
111
124
  type: string;
125
+ size: string;
112
126
  };
113
127
  private _element;
114
128
  /**
@@ -32,6 +32,7 @@ var PropTypes = require("prop-types");
32
32
  var PagerNumericButtons_1 = require("./PagerNumericButtons");
33
33
  var PagerInput_1 = require("./PagerInput");
34
34
  var PagerPageSizes_1 = require("./PagerPageSizes");
35
+ var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
35
36
  var messages_1 = require("../messages");
36
37
  var kendo_react_intl_1 = require("@progress/kendo-react-intl");
37
38
  var kendo_react_common_1 = require("@progress/kendo-react-common");
@@ -116,13 +117,14 @@ var Pager = /** @class */ (function (_super) {
116
117
  * @hidden
117
118
  */
118
119
  Pager.prototype.render = function () {
120
+ var _a;
119
121
  var _this = this;
120
- var _a = this.props, skip = _a.skip, take = _a.take, total = _a.total, pageSizes = _a.pageSizes, messagesMap = _a.messagesMap;
122
+ var _b = this.props, skip = _b.skip, take = _b.take, total = _b.total, pageSizes = _b.pageSizes, size = _b.size, messagesMap = _b.messagesMap;
121
123
  var localizationService = (0, kendo_react_intl_1.provideLocalizationService)(this);
122
124
  var intlService = (0, kendo_react_intl_1.provideIntlService)(this);
123
125
  var currentPage = Math.floor(skip / take) + 1;
124
126
  var changer = this.props.type === 'numeric' ?
125
- (React.createElement(PagerNumericButtons_1.PagerNumericButtons, { buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage, messagesMap: this.props.messagesMap })) : (React.createElement(PagerInput_1.PagerInput, { currentPage: currentPage, totalPages: this.totalPages, pageChange: this.changePage, messagesMap: messagesMap }));
127
+ (React.createElement(PagerNumericButtons_1.PagerNumericButtons, { buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage, messagesMap: this.props.messagesMap, size: this.props.size })) : (React.createElement(PagerInput_1.PagerInput, { buttonCount: this.props.buttonCount || 0, currentPage: currentPage, totalPages: this.totalPages, pageChange: this.changePage, messagesMap: messagesMap, size: this.props.size }));
126
128
  var firstPageMessage = messagesMap ? messagesMap(messages_1.pagerFirstPage) :
127
129
  ({ messageKey: messages_1.pagerFirstPage, defaultMessage: messages_1.messages[messages_1.pagerFirstPage] });
128
130
  var previousPageMessage = messagesMap ? messagesMap(messages_1.pagerPreviousPage) :
@@ -139,34 +141,36 @@ var Pager = /** @class */ (function (_super) {
139
141
  ({ messageKey: messages_1.pagerAriaLabel, defaultMessage: messages_1.messages[messages_1.pagerAriaLabel] });
140
142
  var first, prev, next, last;
141
143
  if (this.props.previousNext) {
142
- first = this.renderButton(1, 'k-link k-pager-nav k-pager-first' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage), 'caret-alt-to-left', (currentPage === 1 ? true : undefined));
143
- prev = this.renderButton(currentPage - 1, 'k-link k-pager-nav' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage), 'caret-alt-left', (currentPage === 1 ? true : undefined));
144
- next = this.renderButton(currentPage + 1, 'k-link k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'caret-alt-right', (currentPage >= this.totalPages ? true : undefined));
145
- last = this.renderButton(this.totalPages, 'k-link k-pager-nav k-pager-last' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage), 'caret-alt-to-right', (currentPage >= this.totalPages ? true : undefined));
144
+ first = this.renderButton(1, 'k-pager-nav k-pager-first' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage), 'caret-alt-to-left', (currentPage === 1 ? true : undefined));
145
+ prev = this.renderButton(currentPage - 1, 'k-pager-nav' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage), 'caret-alt-left', (currentPage === 1 ? true : undefined));
146
+ next = this.renderButton(currentPage + 1, 'k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'caret-alt-right', (currentPage >= this.totalPages ? true : undefined));
147
+ last = this.renderButton(this.totalPages, 'k-pager-nav k-pager-last' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage), 'caret-alt-to-right', (currentPage >= this.totalPages ? true : undefined));
146
148
  }
147
- var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes_1.PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap }));
149
+ var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes_1.PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap, size: this.props.size }));
148
150
  var info = this.props.info && (React.createElement("div", { className: "k-pager-info k-label" }, intlService
149
151
  .format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [
150
152
  Math.min(skip + 1, total),
151
153
  Math.min(skip + take, total),
152
154
  total
153
155
  ])));
154
- return (React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-pager k-widget', this.props.className), style: this.props.style, role: "application", "aria-roledescription": "pager", "aria-keyshortcuts": localizationService.toLanguageString(ariaKeyshortcutsMessage.messageKey, ariaKeyshortcutsMessage.defaultMessage), "aria-label": localizationService.toLanguageString(ariaLabelMessage.messageKey, ariaLabelMessage.defaultMessage), ref: function (element) { return _this._element = element; } },
155
- first,
156
- prev,
157
- changer,
158
- next,
159
- last,
156
+ return (React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-pager', (_a = {},
157
+ _a["k-pager-".concat(kendo_react_common_1.kendoThemeMaps.sizeMap[size] || size)] = size,
158
+ _a), this.props.className), style: this.props.style, role: "application", "aria-roledescription": "pager", "aria-keyshortcuts": localizationService.toLanguageString(ariaKeyshortcutsMessage.messageKey, ariaKeyshortcutsMessage.defaultMessage), "aria-label": localizationService.toLanguageString(ariaLabelMessage.messageKey, ariaLabelMessage.defaultMessage), ref: function (element) { return _this._element = element; } },
159
+ React.createElement("div", { className: (0, kendo_react_common_1.classNames)('k-pager-numbers-wrap', this.props.className) },
160
+ first,
161
+ prev,
162
+ changer,
163
+ next,
164
+ last),
160
165
  pagerPageSizes,
161
166
  info));
162
167
  };
163
168
  Pager.prototype.renderButton = function (page, className, title, icon, isDisabled) {
164
169
  var _this = this;
165
- return (React.createElement("a", { onClick: function (e) {
170
+ return (React.createElement(kendo_react_buttons_1.Button, { fillMode: 'flat', themeColor: 'base', size: this.props.size, rounded: null, className: className, icon: icon, title: title, role: "button", "aria-disabled": isDisabled, onClick: function (e) {
166
171
  e.preventDefault();
167
172
  _this.changePage(page, e);
168
- }, href: "#", className: className, title: title, role: "button", "aria-disabled": isDisabled },
169
- React.createElement(kendo_react_common_1.Icon, { name: icon })));
173
+ } }));
170
174
  };
171
175
  Object.defineProperty(Pager.prototype, "totalPages", {
172
176
  get: function () {
@@ -190,7 +194,8 @@ var Pager = /** @class */ (function (_super) {
190
194
  pageSizes: PropTypes.arrayOf(PropTypes.number),
191
195
  previousNext: PropTypes.bool,
192
196
  onPageChange: PropTypes.func,
193
- messagesMap: PropTypes.func
197
+ messagesMap: PropTypes.func,
198
+ size: PropTypes.oneOf([null, 'small', 'medium', 'large'])
194
199
  };
195
200
  /**
196
201
  * @hidden
@@ -198,7 +203,8 @@ var Pager = /** @class */ (function (_super) {
198
203
  Pager.defaultProps = {
199
204
  buttonCount: 10,
200
205
  info: true,
201
- type: 'numeric'
206
+ type: 'numeric',
207
+ size: 'medium'
202
208
  };
203
209
  return Pager;
204
210
  }(React.Component));
@@ -3,8 +3,10 @@ import * as React from 'react';
3
3
  * @hidden
4
4
  */
5
5
  export interface PagerInputProps {
6
+ buttonCount: number;
6
7
  totalPages: number;
7
8
  currentPage: number;
9
+ size?: null | 'small' | 'medium' | 'large';
8
10
  pageChange: (page: number, e: React.SyntheticEvent<any>) => any;
9
11
  messagesMap?: (messageKey: string) => ({
10
12
  messageKey: string;
@@ -19,4 +21,6 @@ export declare class PagerInput extends React.Component<PagerInputProps> {
19
21
  onChange: (e: any) => void;
20
22
  value: () => string;
21
23
  render(): JSX.Element;
24
+ private get end();
25
+ private get start();
22
26
  }
@@ -17,6 +17,7 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.PagerInput = void 0;
19
19
  var React = require("react");
20
+ var kendo_react_common_1 = require("@progress/kendo-react-common");
20
21
  var kendo_react_intl_1 = require("@progress/kendo-react-intl");
21
22
  var messages_1 = require("./../messages");
22
23
  /**
@@ -42,6 +43,7 @@ var PagerInput = /** @class */ (function (_super) {
42
43
  return _this;
43
44
  }
44
45
  PagerInput.prototype.render = function () {
46
+ var _a;
45
47
  var _this = this;
46
48
  var intlService = (0, kendo_react_intl_1.provideIntlService)(this);
47
49
  var localizationService = (0, kendo_react_intl_1.provideLocalizationService)(this);
@@ -51,14 +53,45 @@ var PagerInput = /** @class */ (function (_super) {
51
53
  ({ messageKey: messages_1.pagerOf, defaultMessage: messages_1.messages[messages_1.pagerOf] });
52
54
  var totalPagesMessage = this.props.messagesMap ? this.props.messagesMap(messages_1.pagerTotalPages) :
53
55
  ({ messageKey: messages_1.pagerTotalPages, defaultMessage: messages_1.messages[messages_1.pagerTotalPages] });
54
- return (React.createElement("span", { className: "k-pager-input k-label" },
55
- localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage),
56
- React.createElement("span", { className: 'k-textbox k-input k-input-md k-rounded-md k-input-solid' },
57
- React.createElement("input", { className: "k-input-inner", value: this.value(), onBlur: function () { return _this.forceUpdate(); }, onChange: this.onChange })), "".concat(localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage), " ").concat(intlService
58
- .format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [
59
- this.props.totalPages
60
- ]))));
56
+ var mobileSelectMessage = this.props.messagesMap ? this.props.messagesMap(messages_1.pagerMobileSelect) :
57
+ ({ messageKey: messages_1.pagerMobileSelect, defaultMessage: messages_1.messages[messages_1.pagerMobileSelect] });
58
+ var buttons = [];
59
+ for (var idx = this.start; idx <= this.end; idx++) {
60
+ buttons.push(idx);
61
+ }
62
+ var options = buttons.map(function (page) { return (React.createElement("option", { key: page }, page)); });
63
+ return (React.createElement(React.Fragment, null,
64
+ React.createElement("select", { className: (0, kendo_react_common_1.classNames)('k-picker k-dropdown-list k-dropdown k-rounded-md', (_a = {},
65
+ _a["k-picker-".concat(kendo_react_common_1.kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,
66
+ _a)), "aria-label": localizationService.toLanguageString(mobileSelectMessage.messageKey, mobileSelectMessage.defaultMessage), value: this.props.currentPage, onChange: this.onChange }, options),
67
+ React.createElement("span", { className: "k-pager-input k-label" },
68
+ localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage),
69
+ React.createElement("span", { className: 'k-textbox k-input k-input-md k-rounded-md k-input-solid' },
70
+ React.createElement("input", { className: "k-input-inner", value: this.value(), onBlur: function () { return _this.forceUpdate(); }, onChange: this.onChange })), "".concat(localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage), " ").concat(intlService
71
+ .format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [
72
+ this.props.totalPages
73
+ ])))));
61
74
  };
75
+ Object.defineProperty(PagerInput.prototype, "end", {
76
+ get: function () {
77
+ return Math.min((this.start + this.props.buttonCount) - 1, this.props.totalPages);
78
+ },
79
+ enumerable: false,
80
+ configurable: true
81
+ });
82
+ Object.defineProperty(PagerInput.prototype, "start", {
83
+ get: function () {
84
+ var page = this.props.currentPage;
85
+ var buttonCount = this.props.buttonCount;
86
+ if (page > buttonCount) {
87
+ var reminder = (page % buttonCount);
88
+ return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;
89
+ }
90
+ return 1;
91
+ },
92
+ enumerable: false,
93
+ configurable: true
94
+ });
62
95
  return PagerInput;
63
96
  }(React.Component));
64
97
  exports.PagerInput = PagerInput;
@@ -6,6 +6,7 @@ export interface PagerNumericButtonsProps {
6
6
  buttonCount: number;
7
7
  totalPages: number;
8
8
  currentPage: number;
9
+ size?: null | 'small' | 'medium' | 'large';
9
10
  pageChange: (page: number, e: React.SyntheticEvent<any>) => any;
10
11
  messagesMap?: (messageKey: string) => ({
11
12
  messageKey: string;
@@ -17,8 +18,6 @@ export interface PagerNumericButtonsProps {
17
18
  */
18
19
  export declare class PagerNumericButtons extends React.Component<PagerNumericButtonsProps> {
19
20
  render(): JSX.Element;
20
- private renderDots;
21
- private renderOptionDots;
22
21
  private handlePageChange;
23
22
  private handleSelectPageChange;
24
23
  private get end();