@progress/kendo-react-data-tools 5.12.0-dev.202302271006 → 5.12.0-dev.202303130940

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.
@@ -118,8 +118,8 @@ var Expression = /** @class */ (function (_super) {
118
118
  var field = fields.find(function (f) { return f.name === filter.field; });
119
119
  var operators = ((field && field.operators) || [])
120
120
  .map(function (o) { return (__assign(__assign({}, o), { text: locService.toLanguageString(o.text, messages[o.text] || o.text) })); });
121
- return (React.createElement("div", { className: "k-filter-toolbar", role: "group", "aria-label": ariaLabel },
122
- React.createElement(Toolbar, { keyboardNavigation: false, role: "" },
121
+ return (React.createElement("div", { className: "k-filter-toolbar" },
122
+ React.createElement(Toolbar, { keyboardNavigation: false, role: "toolbar", ariaLabel: ariaLabel },
123
123
  React.createElement(ToolbarItem, { className: "k-filter-field" },
124
124
  React.createElement(DropDownList, { className: "k-filter-dropdown", data: fields, textField: "label", value: fields.find(function (f) { return f.name === filter.field; }), onChange: this.onFieldChange, ariaLabel: locService.toLanguageString(filterExpressionDropdownAriaLabel, messages[filterExpressionDropdownAriaLabel]) })),
125
125
  React.createElement(ToolbarItem, { className: "k-filter-operator" },
@@ -32,6 +32,10 @@ export interface FilterProps {
32
32
  * The composite filter descriptor value.
33
33
  */
34
34
  value: CompositeFilterDescriptor;
35
+ /**
36
+ * Represents the aria-label prop of the Filter's container component.
37
+ */
38
+ ariaLabel?: string;
35
39
  /**
36
40
  * Represents the aria-label prop of the Filter's underlying Group component.
37
41
  */
@@ -62,8 +62,8 @@ var Filter = /** @class */ (function (_super) {
62
62
  */
63
63
  Filter.prototype.render = function () {
64
64
  return (React.createElement("div", { className: 'k-widget k-filter' + (this.props.className ? ' ' + this.props.className : ''), style: this.props.style },
65
- React.createElement("ul", { className: "k-filter-container" },
66
- React.createElement("li", { className: "k-filter-group-main" },
65
+ React.createElement("ul", { role: 'tree', className: "k-filter-container", "aria-label": this.props.ariaLabel },
66
+ React.createElement("li", { role: 'treeitem', className: "k-filter-group-main" },
67
67
  React.createElement(Group, { filter: this.props.value, fields: this.props.fields, ariaLabel: this.props.ariaLabelGroup, ariaLabelExpression: this.props.ariaLabelExpression, onChange: this.onFilterChange, onRemove: this.onGroupRemove, defaultGroupFilter: this.props.defaultGroupFilter || { logic: 'and', filters: [] } })))));
68
68
  };
69
69
  /**
@@ -133,8 +133,8 @@ var Group = /** @class */ (function (_super) {
133
133
  var locService = provideLocalizationService(this);
134
134
  var _a = this.props, fields = _a.fields, filter = _a.filter, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? locService.toLanguageString(filterGroupAriaLabel, messages[filterGroupAriaLabel]) : _b;
135
135
  return (React.createElement(React.Fragment, null,
136
- React.createElement("div", { className: "k-filter-toolbar", role: "toolbar", "aria-label": ariaLabel },
137
- React.createElement(Toolbar, { keyboardNavigation: false, role: "" },
136
+ React.createElement("div", { className: "k-filter-toolbar" },
137
+ React.createElement(Toolbar, { keyboardNavigation: false, role: "toolbar", ariaLabel: ariaLabel },
138
138
  React.createElement(ToolbarItem, null,
139
139
  React.createElement(ButtonGroup, null,
140
140
  React.createElement(Button, { togglable: true, onClick: this.onLogicAnd, selected: filter.logic === 'and', type: "button" }, locService.toLanguageString(filterAndLogic, messages[filterAndLogic])),
@@ -145,8 +145,8 @@ var Group = /** @class */ (function (_super) {
145
145
  React.createElement(Button, { title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]), icon: "filter-add-group", svgIcon: filterAddGroupIcon, type: "button", onClick: this.onAddGroup })),
146
146
  React.createElement(ToolbarItem, null,
147
147
  React.createElement(Button, { title: locService.toLanguageString(filterClose, messages[filterClose]), icon: "x", svgIcon: xIcon, fillMode: "flat", type: "button", onClick: this.onGroupRemove })))),
148
- filter.filters.length > 0 && (React.createElement("ul", { className: "k-filter-lines" }, filter.filters.map(function (f, idx) {
149
- return (React.createElement("li", { key: idx, className: "k-filter-item" }, isCompositeFilterDescriptor(f) ?
148
+ filter.filters.length > 0 && (React.createElement("ul", { role: 'group', className: "k-filter-lines" }, filter.filters.map(function (f, idx) {
149
+ return (React.createElement("li", { role: 'treeitem', key: idx, className: "k-filter-item" }, isCompositeFilterDescriptor(f) ?
150
150
  React.createElement(Group, { filter: f, fields: fields, onChange: _this.onChange, onRemove: _this.onRemove, defaultGroupFilter: _this.props.defaultGroupFilter, ariaLabel: _this.props.ariaLabel, ariaLabelExpression: _this.props.ariaLabelExpression })
151
151
  :
152
152
  React.createElement(Expression, { filter: f, fields: fields, ariaLabel: _this.props.ariaLabelExpression, onChange: _this.onChange, onRemove: _this.onRemove })));
package/dist/es/main.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { Pager, PagerProps, PageChangeEvent, BasePageChangeEvent } from './pager/Pager';
1
+ export { Pager, PagerProps, PageChangeEvent, BasePageChangeEvent, PagerTargetEvent } from './pager/Pager';
2
2
  export * from './filteringCells';
3
3
  export * from './header';
4
4
  export * from './virtualization';
@@ -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: 1677490912,
8
+ publishDate: 1678699292,
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
  };
@@ -1,5 +1,19 @@
1
1
  import * as React from 'react';
2
2
  import * as PropTypes from 'prop-types';
3
+ /**
4
+ * A Pager target event.
5
+ */
6
+ export interface PagerTargetEvent {
7
+ [key: string]: any;
8
+ /**
9
+ * An event target.
10
+ */
11
+ target?: any;
12
+ /**
13
+ * An event value.
14
+ */
15
+ value?: any;
16
+ }
3
17
  /**
4
18
  * Represents the base object of the `onPageChange` event. It is usually used
5
19
  * in custom pager scenarios in cases when we don't need any of the events or the target.
@@ -21,6 +35,10 @@ export interface BasePageChangeEvent {
21
35
  * A native DOM event.
22
36
  */
23
37
  nativeEvent?: any;
38
+ /**
39
+ * A target change event.
40
+ */
41
+ targetEvent?: PagerTargetEvent;
24
42
  }
25
43
  /**
26
44
  * Represents the object of the `onPageChange` event.
@@ -38,6 +56,10 @@ export interface PageChangeEvent extends BasePageChangeEvent {
38
56
  * A native DOM event.
39
57
  */
40
58
  nativeEvent: any;
59
+ /**
60
+ * A target change event.
61
+ */
62
+ targetEvent: PagerTargetEvent;
41
63
  }
42
64
  export interface PagerProps {
43
65
  /**
@@ -77,7 +99,12 @@ export interface PagerProps {
77
99
  /**
78
100
  * Displays a menu for selecting the page size.
79
101
  */
80
- pageSizes?: Array<number>;
102
+ pageSizes?: Array<number> | Array<number | string>;
103
+ /**
104
+ * Sets the selected value of the page size Dropdownlist.
105
+ * It is useful when the selected value could also be a string not only a number.
106
+ */
107
+ pageSizeValue?: string | number;
81
108
  /**
82
109
  * Toggles the **Previous** and **Next** buttons.
83
110
  */
@@ -123,7 +150,7 @@ export declare class Pager extends React.Component<PagerProps> {
123
150
  buttonCount: PropTypes.Requireable<number>;
124
151
  info: PropTypes.Requireable<boolean>;
125
152
  type: PropTypes.Requireable<string>;
126
- pageSizes: PropTypes.Requireable<(number | null | undefined)[]>;
153
+ pageSizes: PropTypes.Requireable<(NonNullable<string | number | null | undefined> | null | undefined)[]>;
127
154
  previousNext: PropTypes.Requireable<boolean>;
128
155
  onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
129
156
  messagesMap: PropTypes.Requireable<(...args: any[]) => any>;
@@ -49,8 +49,8 @@ var Pager = /** @class */ (function (_super) {
49
49
  function Pager(props) {
50
50
  var _this = _super.call(this, props) || this;
51
51
  _this._element = null;
52
- _this.onPageChange = function (eventData, syntheticEvent) {
53
- var event = __assign({ target: _this, syntheticEvent: syntheticEvent, nativeEvent: syntheticEvent.nativeEvent }, eventData);
52
+ _this.onPageChange = function (eventData, targetEvent) {
53
+ var event = __assign({ target: _this, syntheticEvent: targetEvent.syntheticEvent, nativeEvent: targetEvent.nativeEvent, targetEvent: targetEvent }, eventData);
54
54
  if (_this.props.onPageChange) {
55
55
  _this.props.onPageChange.call(undefined, event);
56
56
  }
@@ -62,7 +62,8 @@ var Pager = /** @class */ (function (_super) {
62
62
  skip: (page - 1) * _this.props.take,
63
63
  take: _this.props.take,
64
64
  syntheticEvent: event,
65
- nativeEvent: event.nativeEvent
65
+ nativeEvent: event.nativeEvent,
66
+ targetEvent: event
66
67
  });
67
68
  }
68
69
  };
@@ -117,7 +118,7 @@ var Pager = /** @class */ (function (_super) {
117
118
  Pager.prototype.render = function () {
118
119
  var _a;
119
120
  var _this = this;
120
- var _b = this.props, skip = _b.skip, take = _b.take, total = _b.total, pageSizes = _b.pageSizes, size = _b.size, messagesMap = _b.messagesMap;
121
+ var _b = this.props, skip = _b.skip, take = _b.take, total = _b.total, pageSizes = _b.pageSizes, size = _b.size, messagesMap = _b.messagesMap, pageSizeValue = _b.pageSizeValue;
121
122
  var localizationService = provideLocalizationService(this);
122
123
  var intlService = provideIntlService(this);
123
124
  var currentPage = Math.floor(skip / take) + 1;
@@ -144,7 +145,7 @@ var Pager = /** @class */ (function (_super) {
144
145
  next = this.renderButton(currentPage + 1, 'k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'caret-alt-right', caretAltRightIcon, (currentPage >= this.totalPages ? true : undefined));
145
146
  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', caretAltToRightIcon, (currentPage >= this.totalPages ? true : undefined));
146
147
  }
147
- var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap, size: this.props.size }));
148
+ var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, value: pageSizeValue, messagesMap: messagesMap, size: this.props.size }));
148
149
  var info = this.props.info && (React.createElement("div", { className: "k-pager-info" }, intlService
149
150
  .format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [
150
151
  Math.min(skip + 1, total),
@@ -189,7 +190,10 @@ var Pager = /** @class */ (function (_super) {
189
190
  buttonCount: PropTypes.number,
190
191
  info: PropTypes.bool,
191
192
  type: PropTypes.oneOf(['numeric', 'input']),
192
- pageSizes: PropTypes.arrayOf(PropTypes.number),
193
+ pageSizes: PropTypes.arrayOf(PropTypes.oneOfType([
194
+ PropTypes.string,
195
+ PropTypes.number
196
+ ])),
193
197
  previousNext: PropTypes.bool,
194
198
  onPageChange: PropTypes.func,
195
199
  messagesMap: PropTypes.func,
@@ -1,15 +1,17 @@
1
1
  import * as React from 'react';
2
+ import { DropDownListChangeEvent } from '@progress/kendo-react-dropdowns';
2
3
  /**
3
4
  * @hidden
4
5
  */
5
6
  export interface PagerPageSizesProps {
7
+ value?: number | string;
6
8
  pageSize: number;
7
- pageSizes: number[];
9
+ pageSizes: number[] | Array<number | string>;
8
10
  size?: null | 'small' | 'medium' | 'large';
9
11
  pageChange?: (event: {
10
12
  skip: number;
11
13
  take: number;
12
- }, e: React.SyntheticEvent<any>) => void;
14
+ }, e: DropDownListChangeEvent) => void;
13
15
  messagesMap?: (messageKey: string) => ({
14
16
  messageKey: string;
15
17
  defaultMessage: string;
@@ -19,6 +21,6 @@ export interface PagerPageSizesProps {
19
21
  * @hidden
20
22
  */
21
23
  export declare class PagerPageSizes extends React.Component<PagerPageSizesProps, {}> {
22
- pageSizeChange: (e: any) => void;
24
+ pageSizeChange: (e: DropDownListChangeEvent) => void;
23
25
  render(): JSX.Element;
24
26
  }
@@ -32,17 +32,17 @@ var PagerPageSizes = /** @class */ (function (_super) {
32
32
  return _this;
33
33
  }
34
34
  PagerPageSizes.prototype.render = function () {
35
- var _this = this;
36
- var sizes = this.props.pageSizes.slice();
37
- if (sizes.filter(function (s) { return s === _this.props.pageSize; }).length === 0) {
38
- sizes.unshift(this.props.pageSize);
35
+ var _a = this.props, value = _a.value, pageSizes = _a.pageSizes, pageSize = _a.pageSize, messagesMap = _a.messagesMap;
36
+ var sizes = pageSizes.slice();
37
+ if (value === undefined && sizes.filter(function (s) { return s === pageSize; }).length === 0) {
38
+ sizes.unshift(pageSize);
39
39
  }
40
- var itemPerPageMessage = this.props.messagesMap ? this.props.messagesMap(pagerItemPerPage) :
40
+ var itemPerPageMessage = messagesMap ? messagesMap(pagerItemPerPage) :
41
41
  ({ messageKey: pagerItemPerPage, defaultMessage: messages[pagerItemPerPage] });
42
- var pageSelectionMessage = this.props.messagesMap ? this.props.messagesMap(pagerPageSelection) :
42
+ var pageSelectionMessage = messagesMap ? messagesMap(pagerPageSelection) :
43
43
  ({ messageKey: pagerPageSelection, defaultMessage: messages[pagerPageSelection] });
44
44
  return (React.createElement("span", { className: "k-pager-sizes" },
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 }),
45
+ React.createElement(DropDownList, { value: value !== undefined ? value : 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;
@@ -121,8 +121,8 @@ var Expression = /** @class */ (function (_super) {
121
121
  var field = fields.find(function (f) { return f.name === filter.field; });
122
122
  var operators = ((field && field.operators) || [])
123
123
  .map(function (o) { return (__assign(__assign({}, o), { text: locService.toLanguageString(o.text, messages_1.messages[o.text] || o.text) })); });
124
- return (React.createElement("div", { className: "k-filter-toolbar", role: "group", "aria-label": ariaLabel },
125
- React.createElement(kendo_react_buttons_1.Toolbar, { keyboardNavigation: false, role: "" },
124
+ return (React.createElement("div", { className: "k-filter-toolbar" },
125
+ React.createElement(kendo_react_buttons_1.Toolbar, { keyboardNavigation: false, role: "toolbar", ariaLabel: ariaLabel },
126
126
  React.createElement(kendo_react_buttons_1.ToolbarItem, { className: "k-filter-field" },
127
127
  React.createElement(kendo_react_dropdowns_1.DropDownList, { className: "k-filter-dropdown", data: fields, textField: "label", value: fields.find(function (f) { return f.name === filter.field; }), onChange: this.onFieldChange, ariaLabel: locService.toLanguageString(messages_1.filterExpressionDropdownAriaLabel, messages_1.messages[messages_1.filterExpressionDropdownAriaLabel]) })),
128
128
  React.createElement(kendo_react_buttons_1.ToolbarItem, { className: "k-filter-operator" },
@@ -32,6 +32,10 @@ export interface FilterProps {
32
32
  * The composite filter descriptor value.
33
33
  */
34
34
  value: CompositeFilterDescriptor;
35
+ /**
36
+ * Represents the aria-label prop of the Filter's container component.
37
+ */
38
+ ariaLabel?: string;
35
39
  /**
36
40
  * Represents the aria-label prop of the Filter's underlying Group component.
37
41
  */
@@ -65,8 +65,8 @@ var Filter = /** @class */ (function (_super) {
65
65
  */
66
66
  Filter.prototype.render = function () {
67
67
  return (React.createElement("div", { className: 'k-widget k-filter' + (this.props.className ? ' ' + this.props.className : ''), style: this.props.style },
68
- React.createElement("ul", { className: "k-filter-container" },
69
- React.createElement("li", { className: "k-filter-group-main" },
68
+ React.createElement("ul", { role: 'tree', className: "k-filter-container", "aria-label": this.props.ariaLabel },
69
+ React.createElement("li", { role: 'treeitem', className: "k-filter-group-main" },
70
70
  React.createElement(Group_1.Group, { filter: this.props.value, fields: this.props.fields, ariaLabel: this.props.ariaLabelGroup, ariaLabelExpression: this.props.ariaLabelExpression, onChange: this.onFilterChange, onRemove: this.onGroupRemove, defaultGroupFilter: this.props.defaultGroupFilter || { logic: 'and', filters: [] } })))));
71
71
  };
72
72
  /**
@@ -136,8 +136,8 @@ var Group = /** @class */ (function (_super) {
136
136
  var locService = (0, kendo_react_intl_1.provideLocalizationService)(this);
137
137
  var _a = this.props, fields = _a.fields, filter = _a.filter, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? locService.toLanguageString(messages_1.filterGroupAriaLabel, messages_1.messages[messages_1.filterGroupAriaLabel]) : _b;
138
138
  return (React.createElement(React.Fragment, null,
139
- React.createElement("div", { className: "k-filter-toolbar", role: "toolbar", "aria-label": ariaLabel },
140
- React.createElement(kendo_react_buttons_1.Toolbar, { keyboardNavigation: false, role: "" },
139
+ React.createElement("div", { className: "k-filter-toolbar" },
140
+ React.createElement(kendo_react_buttons_1.Toolbar, { keyboardNavigation: false, role: "toolbar", ariaLabel: ariaLabel },
141
141
  React.createElement(kendo_react_buttons_1.ToolbarItem, null,
142
142
  React.createElement(kendo_react_buttons_1.ButtonGroup, null,
143
143
  React.createElement(kendo_react_buttons_1.Button, { togglable: true, onClick: this.onLogicAnd, selected: filter.logic === 'and', type: "button" }, locService.toLanguageString(messages_1.filterAndLogic, messages_1.messages[messages_1.filterAndLogic])),
@@ -148,8 +148,8 @@ var Group = /** @class */ (function (_super) {
148
148
  React.createElement(kendo_react_buttons_1.Button, { title: locService.toLanguageString(messages_1.filterAddGroup, messages_1.messages[messages_1.filterAddGroup]), icon: "filter-add-group", svgIcon: kendo_svg_icons_1.filterAddGroupIcon, type: "button", onClick: this.onAddGroup })),
149
149
  React.createElement(kendo_react_buttons_1.ToolbarItem, null,
150
150
  React.createElement(kendo_react_buttons_1.Button, { title: locService.toLanguageString(messages_1.filterClose, messages_1.messages[messages_1.filterClose]), icon: "x", svgIcon: kendo_svg_icons_1.xIcon, fillMode: "flat", type: "button", onClick: this.onGroupRemove })))),
151
- filter.filters.length > 0 && (React.createElement("ul", { className: "k-filter-lines" }, filter.filters.map(function (f, idx) {
152
- return (React.createElement("li", { key: idx, className: "k-filter-item" }, (0, kendo_data_query_1.isCompositeFilterDescriptor)(f) ?
151
+ filter.filters.length > 0 && (React.createElement("ul", { role: 'group', className: "k-filter-lines" }, filter.filters.map(function (f, idx) {
152
+ return (React.createElement("li", { role: 'treeitem', key: idx, className: "k-filter-item" }, (0, kendo_data_query_1.isCompositeFilterDescriptor)(f) ?
153
153
  React.createElement(Group, { filter: f, fields: fields, onChange: _this.onChange, onRemove: _this.onRemove, defaultGroupFilter: _this.props.defaultGroupFilter, ariaLabel: _this.props.ariaLabel, ariaLabelExpression: _this.props.ariaLabelExpression })
154
154
  :
155
155
  React.createElement(Expression_1.Expression, { filter: f, fields: fields, ariaLabel: _this.props.ariaLabelExpression, onChange: _this.onChange, onRemove: _this.onRemove })));
@@ -1,4 +1,4 @@
1
- export { Pager, PagerProps, PageChangeEvent, BasePageChangeEvent } from './pager/Pager';
1
+ export { Pager, PagerProps, PageChangeEvent, BasePageChangeEvent, PagerTargetEvent } from './pager/Pager';
2
2
  export * from './filteringCells';
3
3
  export * from './header';
4
4
  export * from './virtualization';
@@ -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: 1677490912,
11
+ publishDate: 1678699292,
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
  };
@@ -1,5 +1,19 @@
1
1
  import * as React from 'react';
2
2
  import * as PropTypes from 'prop-types';
3
+ /**
4
+ * A Pager target event.
5
+ */
6
+ export interface PagerTargetEvent {
7
+ [key: string]: any;
8
+ /**
9
+ * An event target.
10
+ */
11
+ target?: any;
12
+ /**
13
+ * An event value.
14
+ */
15
+ value?: any;
16
+ }
3
17
  /**
4
18
  * Represents the base object of the `onPageChange` event. It is usually used
5
19
  * in custom pager scenarios in cases when we don't need any of the events or the target.
@@ -21,6 +35,10 @@ export interface BasePageChangeEvent {
21
35
  * A native DOM event.
22
36
  */
23
37
  nativeEvent?: any;
38
+ /**
39
+ * A target change event.
40
+ */
41
+ targetEvent?: PagerTargetEvent;
24
42
  }
25
43
  /**
26
44
  * Represents the object of the `onPageChange` event.
@@ -38,6 +56,10 @@ export interface PageChangeEvent extends BasePageChangeEvent {
38
56
  * A native DOM event.
39
57
  */
40
58
  nativeEvent: any;
59
+ /**
60
+ * A target change event.
61
+ */
62
+ targetEvent: PagerTargetEvent;
41
63
  }
42
64
  export interface PagerProps {
43
65
  /**
@@ -77,7 +99,12 @@ export interface PagerProps {
77
99
  /**
78
100
  * Displays a menu for selecting the page size.
79
101
  */
80
- pageSizes?: Array<number>;
102
+ pageSizes?: Array<number> | Array<number | string>;
103
+ /**
104
+ * Sets the selected value of the page size Dropdownlist.
105
+ * It is useful when the selected value could also be a string not only a number.
106
+ */
107
+ pageSizeValue?: string | number;
81
108
  /**
82
109
  * Toggles the **Previous** and **Next** buttons.
83
110
  */
@@ -123,7 +150,7 @@ export declare class Pager extends React.Component<PagerProps> {
123
150
  buttonCount: PropTypes.Requireable<number>;
124
151
  info: PropTypes.Requireable<boolean>;
125
152
  type: PropTypes.Requireable<string>;
126
- pageSizes: PropTypes.Requireable<(number | null | undefined)[]>;
153
+ pageSizes: PropTypes.Requireable<(NonNullable<string | number | null | undefined> | null | undefined)[]>;
127
154
  previousNext: PropTypes.Requireable<boolean>;
128
155
  onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
129
156
  messagesMap: PropTypes.Requireable<(...args: any[]) => any>;
@@ -52,8 +52,8 @@ var Pager = /** @class */ (function (_super) {
52
52
  function Pager(props) {
53
53
  var _this = _super.call(this, props) || this;
54
54
  _this._element = null;
55
- _this.onPageChange = function (eventData, syntheticEvent) {
56
- var event = __assign({ target: _this, syntheticEvent: syntheticEvent, nativeEvent: syntheticEvent.nativeEvent }, eventData);
55
+ _this.onPageChange = function (eventData, targetEvent) {
56
+ var event = __assign({ target: _this, syntheticEvent: targetEvent.syntheticEvent, nativeEvent: targetEvent.nativeEvent, targetEvent: targetEvent }, eventData);
57
57
  if (_this.props.onPageChange) {
58
58
  _this.props.onPageChange.call(undefined, event);
59
59
  }
@@ -65,7 +65,8 @@ var Pager = /** @class */ (function (_super) {
65
65
  skip: (page - 1) * _this.props.take,
66
66
  take: _this.props.take,
67
67
  syntheticEvent: event,
68
- nativeEvent: event.nativeEvent
68
+ nativeEvent: event.nativeEvent,
69
+ targetEvent: event
69
70
  });
70
71
  }
71
72
  };
@@ -120,7 +121,7 @@ var Pager = /** @class */ (function (_super) {
120
121
  Pager.prototype.render = function () {
121
122
  var _a;
122
123
  var _this = this;
123
- var _b = this.props, skip = _b.skip, take = _b.take, total = _b.total, pageSizes = _b.pageSizes, size = _b.size, messagesMap = _b.messagesMap;
124
+ var _b = this.props, skip = _b.skip, take = _b.take, total = _b.total, pageSizes = _b.pageSizes, size = _b.size, messagesMap = _b.messagesMap, pageSizeValue = _b.pageSizeValue;
124
125
  var localizationService = (0, kendo_react_intl_1.provideLocalizationService)(this);
125
126
  var intlService = (0, kendo_react_intl_1.provideIntlService)(this);
126
127
  var currentPage = Math.floor(skip / take) + 1;
@@ -147,7 +148,7 @@ var Pager = /** @class */ (function (_super) {
147
148
  next = this.renderButton(currentPage + 1, 'k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'caret-alt-right', kendo_svg_icons_1.caretAltRightIcon, (currentPage >= this.totalPages ? true : undefined));
148
149
  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', kendo_svg_icons_1.caretAltToRightIcon, (currentPage >= this.totalPages ? true : undefined));
149
150
  }
150
- var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes_1.PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap, size: this.props.size }));
151
+ var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes_1.PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, value: pageSizeValue, messagesMap: messagesMap, size: this.props.size }));
151
152
  var info = this.props.info && (React.createElement("div", { className: "k-pager-info" }, intlService
152
153
  .format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [
153
154
  Math.min(skip + 1, total),
@@ -192,7 +193,10 @@ var Pager = /** @class */ (function (_super) {
192
193
  buttonCount: PropTypes.number,
193
194
  info: PropTypes.bool,
194
195
  type: PropTypes.oneOf(['numeric', 'input']),
195
- pageSizes: PropTypes.arrayOf(PropTypes.number),
196
+ pageSizes: PropTypes.arrayOf(PropTypes.oneOfType([
197
+ PropTypes.string,
198
+ PropTypes.number
199
+ ])),
196
200
  previousNext: PropTypes.bool,
197
201
  onPageChange: PropTypes.func,
198
202
  messagesMap: PropTypes.func,
@@ -1,15 +1,17 @@
1
1
  import * as React from 'react';
2
+ import { DropDownListChangeEvent } from '@progress/kendo-react-dropdowns';
2
3
  /**
3
4
  * @hidden
4
5
  */
5
6
  export interface PagerPageSizesProps {
7
+ value?: number | string;
6
8
  pageSize: number;
7
- pageSizes: number[];
9
+ pageSizes: number[] | Array<number | string>;
8
10
  size?: null | 'small' | 'medium' | 'large';
9
11
  pageChange?: (event: {
10
12
  skip: number;
11
13
  take: number;
12
- }, e: React.SyntheticEvent<any>) => void;
14
+ }, e: DropDownListChangeEvent) => void;
13
15
  messagesMap?: (messageKey: string) => ({
14
16
  messageKey: string;
15
17
  defaultMessage: string;
@@ -19,6 +21,6 @@ export interface PagerPageSizesProps {
19
21
  * @hidden
20
22
  */
21
23
  export declare class PagerPageSizes extends React.Component<PagerPageSizesProps, {}> {
22
- pageSizeChange: (e: any) => void;
24
+ pageSizeChange: (e: DropDownListChangeEvent) => void;
23
25
  render(): JSX.Element;
24
26
  }
@@ -35,17 +35,17 @@ var PagerPageSizes = /** @class */ (function (_super) {
35
35
  return _this;
36
36
  }
37
37
  PagerPageSizes.prototype.render = function () {
38
- var _this = this;
39
- var sizes = this.props.pageSizes.slice();
40
- if (sizes.filter(function (s) { return s === _this.props.pageSize; }).length === 0) {
41
- sizes.unshift(this.props.pageSize);
38
+ var _a = this.props, value = _a.value, pageSizes = _a.pageSizes, pageSize = _a.pageSize, messagesMap = _a.messagesMap;
39
+ var sizes = pageSizes.slice();
40
+ if (value === undefined && sizes.filter(function (s) { return s === pageSize; }).length === 0) {
41
+ sizes.unshift(pageSize);
42
42
  }
43
- var itemPerPageMessage = this.props.messagesMap ? this.props.messagesMap(messages_1.pagerItemPerPage) :
43
+ var itemPerPageMessage = messagesMap ? messagesMap(messages_1.pagerItemPerPage) :
44
44
  ({ messageKey: messages_1.pagerItemPerPage, defaultMessage: messages_1.messages[messages_1.pagerItemPerPage] });
45
- var pageSelectionMessage = this.props.messagesMap ? this.props.messagesMap(messages_1.pagerPageSelection) :
45
+ var pageSelectionMessage = messagesMap ? messagesMap(messages_1.pagerPageSelection) :
46
46
  ({ messageKey: messages_1.pagerPageSelection, defaultMessage: messages_1.messages[messages_1.pagerPageSelection] });
47
47
  return (React.createElement("span", { className: "k-pager-sizes" },
48
- React.createElement(kendo_react_dropdowns_1.DropDownList, { value: this.props.pageSize, data: sizes, onChange: this.pageSizeChange, ariaLabel: (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(pageSelectionMessage.messageKey, pageSelectionMessage.defaultMessage), size: this.props.size }),
48
+ React.createElement(kendo_react_dropdowns_1.DropDownList, { value: value !== undefined ? value : pageSize, data: sizes, onChange: this.pageSizeChange, ariaLabel: (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(pageSelectionMessage.messageKey, pageSelectionMessage.defaultMessage), size: this.props.size }),
49
49
  (0, kendo_react_intl_1.provideLocalizationService)(this).toLanguageString(itemPerPageMessage.messageKey, itemPerPageMessage.defaultMessage)));
50
50
  };
51
51
  return PagerPageSizes;