@progress/kendo-react-dateinputs 5.5.1-dev.202207140841 → 5.5.1-dev.202207252139

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.
Files changed (37) hide show
  1. package/dist/cdn/js/kendo-react-dateinputs.js +1 -1
  2. package/dist/es/calendar/components/Calendar.js +2 -17
  3. package/dist/es/calendar/components/HorizontalViewList.js +1 -1
  4. package/dist/es/calendar/components/MultiViewCalendar.js +1 -5
  5. package/dist/es/calendar/components/Navigation.d.ts +2 -0
  6. package/dist/es/calendar/components/Navigation.js +3 -2
  7. package/dist/es/calendar/components/TodayCommand.d.ts +1 -0
  8. package/dist/es/calendar/components/TodayCommand.js +1 -1
  9. package/dist/es/calendar/components/ViewList.d.ts +2 -0
  10. package/dist/es/calendar/components/ViewList.js +5 -4
  11. package/dist/es/dateinput/DateInput.d.ts +9 -0
  12. package/dist/es/dateinput/DateInput.js +3 -10
  13. package/dist/es/datepicker/DatePicker.js +3 -4
  14. package/dist/es/daterangepicker/DateRangePicker.d.ts +2 -3
  15. package/dist/es/daterangepicker/DateRangePicker.js +2 -2
  16. package/dist/es/datetimepicker/DateTimePicker.js +1 -2
  17. package/dist/es/package-metadata.js +1 -1
  18. package/dist/es/timepicker/TimePicker.js +1 -2
  19. package/dist/npm/calendar/components/Calendar.js +2 -17
  20. package/dist/npm/calendar/components/HorizontalViewList.js +1 -1
  21. package/dist/npm/calendar/components/MultiViewCalendar.js +1 -5
  22. package/dist/npm/calendar/components/Navigation.d.ts +2 -0
  23. package/dist/npm/calendar/components/Navigation.js +3 -2
  24. package/dist/npm/calendar/components/TodayCommand.d.ts +1 -0
  25. package/dist/npm/calendar/components/TodayCommand.js +1 -1
  26. package/dist/npm/calendar/components/ViewList.d.ts +2 -0
  27. package/dist/npm/calendar/components/ViewList.js +5 -4
  28. package/dist/npm/dateinput/DateInput.d.ts +9 -0
  29. package/dist/npm/dateinput/DateInput.js +3 -10
  30. package/dist/npm/datepicker/DatePicker.js +3 -4
  31. package/dist/npm/daterangepicker/DateRangePicker.d.ts +2 -3
  32. package/dist/npm/daterangepicker/DateRangePicker.js +2 -2
  33. package/dist/npm/datetimepicker/DateTimePicker.js +1 -2
  34. package/dist/npm/package-metadata.js +1 -1
  35. package/dist/npm/timepicker/TimePicker.js +1 -2
  36. package/dist/systemjs/kendo-react-dateinputs.js +1 -1
  37. package/package.json +14 -13
@@ -13,17 +13,6 @@ var __extends = (this && this.__extends) || (function () {
13
13
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
14
  };
15
15
  })();
16
- var __assign = (this && this.__assign) || function () {
17
- __assign = Object.assign || function(t) {
18
- for (var s, i = 1, n = arguments.length; i < n; i++) {
19
- s = arguments[i];
20
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
- t[p] = s[p];
22
- }
23
- return t;
24
- };
25
- return __assign.apply(this, arguments);
26
- };
27
16
  import * as React from 'react';
28
17
  import * as PropTypes from 'prop-types';
29
18
  import { classNames, guid, Keys, validatePackage, withPropsContext, createPropsContext } from '@progress/kendo-react-common';
@@ -315,12 +304,8 @@ var CalendarWithoutContext = /** @class */ (function (_super) {
315
304
  'k-disabled': this.props.disabled,
316
305
  'k-week-number': this.props.weekNumber
317
306
  }, this.props.className);
318
- var aria = {
319
- 'aria-disabled': this.props.disabled,
320
- 'aria-activedescendant': this.cellUID + this.focusedDate.getTime()
321
- };
322
- var calendarBody = [this.props.navigation && (React.createElement(Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem })), (React.createElement(ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: this.props.smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle }))];
323
- return (React.createElement("div", __assign({}, aria, { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, role: "grid", tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }), calendarBody));
307
+ var calendarBody = [this.props.navigation && (React.createElement(Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem, tabIndex: this.props.tabIndex })), (React.createElement(ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: this.props.smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle, tabIndex: this.props.tabIndex }))];
308
+ return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, "aria-disabled": this.props.disabled, tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }, calendarBody));
324
309
  };
325
310
  /**
326
311
  * @hidden
@@ -127,7 +127,7 @@ var HorizontalViewList = /** @class */ (function (_super) {
127
127
  'k-calendar-decadeview': this.props.activeView === CalendarViewEnum.decade,
128
128
  'k-calendar-centuryview': this.props.activeView === CalendarViewEnum.century
129
129
  });
130
- return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dates.map(function (date) { return (React.createElement("table", { className: "k-calendar-table k-calendar-content k-content", key: date.getTime() },
130
+ return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dates.map(function (date) { return (React.createElement("table", { className: "k-calendar-table k-calendar-content k-content", key: date.getTime(), role: "grid" },
131
131
  React.createElement(View, { bus: _this.props.bus, service: _this.props.service, key: date.getTime(), direction: "horizontal", activeView: _this.props.activeView, cellUID: _this.props.cellUID, viewDate: date, min: _this.min, max: _this.max, focusedDate: _this.props.focusedDate, selectionRange: selectionRange, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, onCellEnter: _this.props.onCellEnter, cell: _this.props.cell, weekCell: _this.props.weekCell }))); })));
132
132
  };
133
133
  HorizontalViewList.defaultProps = {
@@ -447,10 +447,6 @@ var MultiViewCalendarWithoutContext = /** @class */ (function (_super) {
447
447
  'k-disabled': this.props.disabled
448
448
  }, this.props.className);
449
449
  var visualizedRange = this.rangeWithFocused(this.selectedRange, this.focusedDate);
450
- var wrapperAria = {
451
- 'aria-disabled': this.props.disabled,
452
- 'aria-activedescendant': this.cellUID + this.focusedDate.getTime()
453
- };
454
450
  var prevViewTitle = this.localization.toLanguageString(prevView, messages[prevView]);
455
451
  var nextViewTittle = this.localization.toLanguageString(nextView, messages[nextView]);
456
452
  var isPrevDisabled = !this.canNavigate(Action.PrevView);
@@ -464,7 +460,7 @@ var MultiViewCalendarWithoutContext = /** @class */ (function (_super) {
464
460
  this.dates = this.service.datesList(this.focusedDate, this.props.views || HorizontalViewList.defaultProps.views);
465
461
  }
466
462
  var activeDate = cloneDate(this.dates && this.dates[0] ? this.dates[0] : getToday());
467
- return (React.createElement("div", __assign({ ref: function (el) { _this._element = el; }, className: wrapperClassName, id: this.props.id || this.wrapperID, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, role: 'grid', tabIndex: !this.props.disabled ? this.props.tabIndex : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, wrapperAria),
463
+ return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: wrapperClassName, id: this.props.id || this.wrapperID, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, tabIndex: !this.props.disabled ? this.props.tabIndex : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "aria-disabled": this.props.disabled },
468
464
  React.createElement(Header, { key: ".kendo.calendar.header.".concat(activeDate.getTime()), activeView: activeView, currentDate: activeDate, min: this.min, max: this.max, rangeLength: this.props.views, bus: this.bus, service: this.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,
469
465
  React.createElement(Button, __assign({ type: "button", className: "k-nav-prev", icon: "arrow-chevron-left", fillMode: "flat", title: prevViewTitle, disabled: isPrevDisabled, onClick: this.handlePrevButtonClick }, prevBtnAria)),
470
466
  React.createElement(TodayCommand, { min: this.min, max: this.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }),
@@ -27,6 +27,7 @@ export interface NavigationProps {
27
27
  service: ViewService;
28
28
  take?: number;
29
29
  navigationItem?: React.ComponentType<CalendarNavigationItemProps>;
30
+ tabIndex?: number;
30
31
  }
31
32
  /**
32
33
  * @hidden
@@ -45,6 +46,7 @@ export declare class Navigation extends React.Component<NavigationProps, Navigat
45
46
  min: PropTypes.Validator<Date>;
46
47
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
47
48
  take: PropTypes.Requireable<number>;
49
+ tabIndex: PropTypes.Requireable<number>;
48
50
  };
49
51
  static defaultProps: {
50
52
  take: number;
@@ -141,7 +141,7 @@ var Navigation = /** @class */ (function (_super) {
141
141
  || !isEqual(focusedDate, this.lastFocus)) {
142
142
  this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);
143
143
  }
144
- var navigationBody = (React.createElement(Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount },
144
+ var navigationBody = (React.createElement(Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, tabIndex: this.props.tabIndex },
145
145
  React.createElement("ul", { ref: function (el) { _this.list = el; }, className: "k-reset" }, dates.map(function (date) { return (_this.buildNavigationItem(date)); }))));
146
146
  return (React.createElement("div", { className: "k-calendar-navigation" },
147
147
  React.createElement("span", { className: "k-calendar-navigation-highlight" }),
@@ -156,7 +156,8 @@ var Navigation = /** @class */ (function (_super) {
156
156
  max: PropTypes.instanceOf(Date).isRequired,
157
157
  min: PropTypes.instanceOf(Date).isRequired,
158
158
  onChange: PropTypes.func,
159
- take: PropTypes.number
159
+ take: PropTypes.number,
160
+ tabIndex: PropTypes.number
160
161
  };
161
162
  Navigation.defaultProps = {
162
163
  take: ITEMS_COUNT
@@ -9,6 +9,7 @@ export interface TodayCommandProps {
9
9
  max: Date;
10
10
  onClick?: (event: HeaderEventArguments) => void;
11
11
  disabled?: boolean;
12
+ tabIndex?: number;
12
13
  }
13
14
  export declare class TodayCommand extends React.Component<TodayCommandProps> {
14
15
  static propTypes: {
@@ -74,7 +74,7 @@ var TodayCommand = /** @class */ (function (_super) {
74
74
  var todayClassNames = classNames('k-nav-today', {
75
75
  'k-disabled': this.props.disabled
76
76
  });
77
- return (React.createElement("span", { className: todayClassNames, onClick: this.handleClick }, todayMessage));
77
+ return (React.createElement("span", { className: todayClassNames, onClick: this.handleClick, tabIndex: this.props.tabIndex }, todayMessage));
78
78
  };
79
79
  TodayCommand.propTypes = {
80
80
  max: PropTypes.instanceOf(Date).isRequired,
@@ -41,6 +41,7 @@ export interface ViewListProps {
41
41
  weekCell?: React.ComponentType<CalendarWeekCellProps>;
42
42
  headerTitle?: React.ComponentType<CalendarHeaderTitleProps>;
43
43
  shouldScroll?: () => boolean;
44
+ tabIndex?: number;
44
45
  }
45
46
  /**
46
47
  * @hidden
@@ -67,6 +68,7 @@ export declare class ViewList extends React.Component<ViewListProps, ViewListSta
67
68
  value: PropTypes.Requireable<Date>;
68
69
  viewHeight: PropTypes.Requireable<number>;
69
70
  viewOffset: PropTypes.Requireable<number>;
71
+ tabIndex: PropTypes.Requireable<number>;
70
72
  };
71
73
  static defaultProps: {
72
74
  take: number;
@@ -84,7 +84,7 @@ var ViewList = /** @class */ (function (_super) {
84
84
  };
85
85
  _this.buildDates = function (cols, dates) {
86
86
  var cellUID = _this.props.cellUID;
87
- return (React.createElement("table", { className: "k-calendar-table", ref: function (table) { return _this.table = table; } },
87
+ return (React.createElement("table", { className: "k-calendar-table", ref: function (table) { return _this.table = table; }, role: "grid", "aria-activedescendant": cellUID + _this.props.focusedDate.getTime() },
88
88
  React.createElement("colgroup", null, cols.map(function (_, idx) { return (React.createElement("col", { key: idx })); })),
89
89
  dates.map(function (date) { return (React.createElement(View, { ref: function (el) { if (!_this.calendarView) {
90
90
  _this.calendarView = el;
@@ -226,9 +226,9 @@ var ViewList = /** @class */ (function (_super) {
226
226
  var dates = this.buildDates(cols, this.props.service.datesList(viewDate, take));
227
227
  var viewListBody = (React.createElement(React.Fragment, null,
228
228
  React.createElement(Header, { key: "calendar-view-list-header", currentDate: activeDate, min: this.props.min, max: this.props.max, activeView: this.props.activeView, bus: this.props.bus, service: this.props.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,
229
- React.createElement(TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }))) }),
229
+ React.createElement(TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange, tabIndex: this.props.tabIndex }))) }),
230
230
  this.props.activeView === CalendarViewEnum.month && this.buildMonthView(cols, this.weekNames),
231
- React.createElement(Virtualization, { key: "calendar-view-list-content", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates })));
231
+ React.createElement(Virtualization, { key: "calendar-view-list-content", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates, tabIndex: this.props.tabIndex })));
232
232
  return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dom.didCalculate ? viewListBody : null));
233
233
  };
234
234
  ViewList.propTypes = {
@@ -244,7 +244,8 @@ var ViewList = /** @class */ (function (_super) {
244
244
  take: PropTypes.number,
245
245
  value: PropTypes.instanceOf(Date),
246
246
  viewHeight: PropTypes.number,
247
- viewOffset: PropTypes.number
247
+ viewOffset: PropTypes.number,
248
+ tabIndex: PropTypes.number
248
249
  };
249
250
  ViewList.defaultProps = {
250
251
  take: VIEWS_COUNT,
@@ -42,6 +42,14 @@ export interface DateInputProps<T extends DateInput = any> extends FormComponent
42
42
  * Indicates whether the element is currently expanded or collapsed.
43
43
  */
44
44
  ariaExpanded?: boolean;
45
+ /**
46
+ * Specifies the role of the DateInput.
47
+ */
48
+ ariaRole?: string;
49
+ /**
50
+ * Identifies the element whose contents or presence are controlled by the current element.
51
+ */
52
+ ariaControls?: string | undefined;
45
53
  /**
46
54
  * Determines the event handler that will be fired when the user edits the value ([see example]({% slug dateranges_dateinput %})).
47
55
  */
@@ -144,6 +152,7 @@ export declare class DateInputWithoutContext extends React.Component<DateInputPr
144
152
  ariaLabelledBy: PropTypes.Requireable<string>;
145
153
  ariaDescribedBy: PropTypes.Requireable<string>;
146
154
  ariaLabel: PropTypes.Requireable<string>;
155
+ ariaRole: PropTypes.Requireable<string>;
147
156
  ariaExpanded: PropTypes.Requireable<boolean>;
148
157
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
149
158
  validationMessage: PropTypes.Requireable<string>;
@@ -254,20 +254,12 @@ var DateInputWithoutContext = /** @class */ (function (_super) {
254
254
  }
255
255
  var localizationService = provideLocalizationService(this);
256
256
  var props = __assign(__assign({}, DateInputWithoutContext.defaultProps), this.props);
257
- var min = props.min, max = props.max, name = props.name, label = props.label, id = props.id;
257
+ var name = props.name, label = props.label, id = props.id;
258
258
  var currentText = this.text;
259
259
  var text = currentText === this.props.placeholder ? '' : currentText;
260
260
  var placeholder = currentText === this.props.placeholder ? currentText : undefined;
261
261
  var inputId = id || this._inputId;
262
262
  var isValid = !this.validityStyles || this.validity.valid;
263
- var ariaProps = {
264
- 'aria-valuemin': min === null ? undefined : min.getTime(),
265
- 'aria-valuemax': max === null ? undefined : max.getTime(),
266
- 'aria-valuetext': text
267
- };
268
- if (this.value !== null) {
269
- ariaProps['aria-valuenow'] = this.value.getTime();
270
- }
271
263
  var wrapperClassesInstance = __spreadArray([], wrapperClasses, true);
272
264
  if (this.props.className) {
273
265
  wrapperClassesInstance.push(this.props.className);
@@ -285,7 +277,7 @@ var DateInputWithoutContext = /** @class */ (function (_super) {
285
277
  _b['k-required'] = _this.required,
286
278
  _b['k-disabled'] = _this.props.disabled,
287
279
  _b), _this.props.className), onFocus: onFocus, onBlur: onBlur },
288
- React.createElement("input", __assign({ role: "spinbutton", tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: "text", spellCheck: false, autoComplete: "off", autoCorrect: "off", className: "k-input-inner", id: inputId, "aria-label": _this.props.ariaLabel, "aria-labelledby": _this.props.ariaLabelledBy, "aria-describedby": _this.props.ariaDescribedBy, "aria-expanded": _this.props.ariaExpanded, "aria-haspopup": _this.props.ariaHasPopup, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: noop, value: text, placeholder: placeholder, name: name }, ariaProps, { ref: function (input) { return _this._element = input; } })),
280
+ React.createElement("input", { role: _this.props.ariaRole || 'textbox', tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: "text", spellCheck: false, autoComplete: "off", autoCorrect: "off", className: "k-input-inner", id: inputId, "aria-label": _this.props.ariaLabel, "aria-labelledby": _this.props.ariaLabelledBy, "aria-describedby": _this.props.ariaDescribedBy, "aria-haspopup": _this.props.ariaHasPopup, "aria-disabled": _this.props.disabled, "aria-expanded": _this.props.ariaExpanded, "aria-controls": _this.props.ariaControls, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: noop, value: text, placeholder: placeholder, name: name, ref: function (input) { return _this._element = input; } }),
289
281
  _this.props.children,
290
282
  _this.props.spinners && (React.createElement("span", { className: "k-input-spinner k-spin-button", onMouseDown: _this.spinnersMouseDown },
291
283
  React.createElement(Button, { tabIndex: -1, type: "button", className: "k-spinner-increase", icon: 'arrow-n', "aria-label": localizationService.toLanguageString(increaseValue, messages[increaseValue]), title: localizationService.toLanguageString(increaseValue, messages[increaseValue]), onClick: _this.increasePart }),
@@ -643,6 +635,7 @@ var DateInputWithoutContext = /** @class */ (function (_super) {
643
635
  ariaLabelledBy: PropTypes.string,
644
636
  ariaDescribedBy: PropTypes.string,
645
637
  ariaLabel: PropTypes.string,
638
+ ariaRole: PropTypes.string,
646
639
  ariaExpanded: PropTypes.oneOfType([
647
640
  PropTypes.bool
648
641
  ]),
@@ -379,7 +379,6 @@ var DatePickerWithoutContext = /** @class */ (function (_super) {
379
379
  value: value,
380
380
  label: undefined,
381
381
  placeholder: !this.state.focused ? this.props.placeholder : null,
382
- ariaHasPopup: true,
383
382
  ariaExpanded: this.show,
384
383
  size: null,
385
384
  fillMode: null,
@@ -406,7 +405,7 @@ var DatePickerWithoutContext = /** @class */ (function (_super) {
406
405
  var datepicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.handleBlur, onSyncBlur: this.props.onBlur, onSyncFocus: this.props.onFocus }, function (_a) {
407
406
  var _b;
408
407
  var onFocus = _a.onFocus, onBlur = _a.onBlur;
409
- return (React.createElement("span", { role: "group", "aria-expanded": _this.show, ref: function (span) { _this._element = span; }, className: classNames('k-input', 'k-datepicker', (_b = {},
408
+ return (React.createElement("span", { ref: function (span) { _this._element = span; }, className: classNames('k-input', 'k-datepicker', (_b = {},
410
409
  _b["k-input-".concat(kendoThemeMaps.sizeMap[size] || size)] = size,
411
410
  _b["k-rounded-".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,
412
411
  _b["k-input-".concat(fillMode)] = fillMode,
@@ -414,8 +413,8 @@ var DatePickerWithoutContext = /** @class */ (function (_super) {
414
413
  _b['k-required'] = _this.required,
415
414
  _b['k-disabled'] = _this.props.disabled,
416
415
  _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur },
417
- React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput }, dateInputProps)),
418
- React.createElement(_this.toggleButtonComp, { tabIndex: -1, type: "button", icon: "calendar", title: toggleButtonTitle, className: "k-input-button", rounded: null, onClick: _this.handleIconClick, "aria-label": toggleButtonTitle, onMouseDown: _this.handleIconMouseDown }),
416
+ React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: 'combobox', ariaExpanded: _this.show, ariaHasPopup: true, ariaControls: _this._popupId }, dateInputProps)),
417
+ React.createElement(_this.toggleButtonComp, { type: "button", icon: "calendar", title: toggleButtonTitle, className: "k-input-button", rounded: null, onClick: _this.handleIconClick, "aria-label": toggleButtonTitle, onMouseDown: _this.handleIconMouseDown }),
419
418
  React.createElement(_this.popupComp, __assign({}, popupProps),
420
419
  React.createElement(_this.calendarComp, __assign({ _ref: _this.setCalendarRef }, calendarProps)))));
421
420
  }));
@@ -119,6 +119,7 @@ export declare class DateRangePickerWithoutContext extends React.Component<DateR
119
119
  ariaLabelledBy: PropTypes.Requireable<string>;
120
120
  ariaDescribedBy: PropTypes.Requireable<string>;
121
121
  ariaLabel: PropTypes.Requireable<string>;
122
+ ariaRole: PropTypes.Requireable<string>;
122
123
  ariaExpanded: PropTypes.Requireable<boolean>;
123
124
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
124
125
  validationMessage: PropTypes.Requireable<string>;
@@ -127,9 +128,7 @@ export declare class DateRangePickerWithoutContext extends React.Component<DateR
127
128
  valid: PropTypes.Requireable<boolean>;
128
129
  size: PropTypes.Requireable<"small" | "medium" | "large" | null | undefined>;
129
130
  rounded: PropTypes.Requireable<"small" | "medium" | "full" | "large" | null | undefined>;
130
- fillMode: PropTypes.Requireable<"flat" | "outline" | "solid" | null | undefined>; /**
131
- * Gets the wrapping element of the DateRangePicker.
132
- */
131
+ fillMode: PropTypes.Requireable<"flat" | "outline" | "solid" | null | undefined>;
133
132
  }>>;
134
133
  focusedDate: PropTypes.Requireable<Date>;
135
134
  format: PropTypes.Requireable<string | PropTypes.InferProps<{
@@ -359,7 +359,7 @@ var DateRangePickerWithoutContext = /** @class */ (function (_super) {
359
359
  }, className: rootClassName, style: this.props.style, id: this.props.id, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, tabIndex: this.props.tabIndex, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown },
360
360
  this.props.startDateInput
361
361
  ? React.createElement(this.props.startDateInput, __assign({}, startDateInputProps))
362
- : React.createElement(DateInput, __assign({}, startDateInputProps, { ref: this._startDateInput })),
362
+ : React.createElement(DateInput, __assign({}, startDateInputProps, { ref: this._startDateInput, ariaRole: "combobox", ariaControls: this._popupId })),
363
363
  (this.props.allowReverse
364
364
  || (this.props.calendarSettings && this.props.calendarSettings.allowReverse))
365
365
  && this.props.swapButton
@@ -367,7 +367,7 @@ var DateRangePickerWithoutContext = /** @class */ (function (_super) {
367
367
  : (separatorMessage),
368
368
  this.props.endDateInput
369
369
  ? React.createElement(this.props.endDateInput, __assign({}, endDateInputProps))
370
- : React.createElement(DateInput, __assign({}, endDateInputProps, { ref: this._endDateInput })),
370
+ : React.createElement(DateInput, __assign({}, endDateInputProps, { ref: this._endDateInput, ariaRole: "combobox", ariaControls: this._popupId })),
371
371
  this.props.popup
372
372
  ? React.createElement(this.props.popup, __assign({}, popupProps), calendar)
373
373
  : React.createElement(Popup, __assign({}, popupProps), calendar)));
@@ -340,10 +340,9 @@ var DateTimePickerWithoutContext = /** @class */ (function (_super) {
340
340
  _b['k-required'] = _this.required,
341
341
  _b['k-disabled'] = _this.props.disabled,
342
342
  _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur },
343
- React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput }, dataInputProps)),
343
+ React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: "combobox", ariaControls: _this._popupId }, dataInputProps)),
344
344
  React.createElement(Button, __assign({ tabIndex: -1, type: "button", icon: 'calendar', onMouseDown: _this.handleIconMouseDown, onClick: _this.handleDateIconClick, title: provideLocalizationService(_this)
345
345
  .toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector]), className: "k-input-button", rounded: null }, {
346
- 'aria-controls': _this._popupId,
347
346
  'aria-label': provideLocalizationService(_this)
348
347
  .toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector])
349
348
  })),
@@ -5,7 +5,7 @@ export var packageMetadata = {
5
5
  name: '@progress/kendo-react-dateinputs',
6
6
  productName: 'KendoReact',
7
7
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
8
- publishDate: 1657786816,
8
+ publishDate: 1658784095,
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
  };
@@ -380,9 +380,8 @@ var TimePickerWithoutContext = /** @class */ (function (_super) {
380
380
  _b['k-required'] = _this.required,
381
381
  _b['k-disabled'] = _this.props.disabled,
382
382
  _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur },
383
- React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput }, dateInputProps)),
383
+ React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: "combobox", ariaControls: _this._popupId }, dateInputProps)),
384
384
  React.createElement(Button, __assign({ tabIndex: -1, type: "button", icon: 'clock', onMouseDown: _this.handleIconMouseDown, onClick: _this.handleIconClick, title: toggleTimeMessage, className: "k-input-button", rounded: null }, {
385
- 'aria-controls': _this._popupId,
386
385
  'aria-label': toggleClockMessage
387
386
  })),
388
387
  _this.props.popup
@@ -14,17 +14,6 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
17
  Object.defineProperty(exports, "__esModule", { value: true });
29
18
  exports.Calendar = exports.CalendarPropsContext = exports.CalendarWithoutContext = void 0;
30
19
  var React = require("react");
@@ -318,12 +307,8 @@ var CalendarWithoutContext = /** @class */ (function (_super) {
318
307
  'k-disabled': this.props.disabled,
319
308
  'k-week-number': this.props.weekNumber
320
309
  }, this.props.className);
321
- var aria = {
322
- 'aria-disabled': this.props.disabled,
323
- 'aria-activedescendant': this.cellUID + this.focusedDate.getTime()
324
- };
325
- var calendarBody = [this.props.navigation && (React.createElement(Navigation_1.Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem })), (React.createElement(ViewList_1.ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: this.props.smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle }))];
326
- return (React.createElement("div", __assign({}, aria, { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, role: "grid", tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }), calendarBody));
310
+ var calendarBody = [this.props.navigation && (React.createElement(Navigation_1.Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem, tabIndex: this.props.tabIndex })), (React.createElement(ViewList_1.ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: this.props.smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle, tabIndex: this.props.tabIndex }))];
311
+ return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, "aria-disabled": this.props.disabled, tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }, calendarBody));
327
312
  };
328
313
  /**
329
314
  * @hidden
@@ -130,7 +130,7 @@ var HorizontalViewList = /** @class */ (function (_super) {
130
130
  'k-calendar-decadeview': this.props.activeView === models_1.CalendarViewEnum.decade,
131
131
  'k-calendar-centuryview': this.props.activeView === models_1.CalendarViewEnum.century
132
132
  });
133
- return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dates.map(function (date) { return (React.createElement("table", { className: "k-calendar-table k-calendar-content k-content", key: date.getTime() },
133
+ return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dates.map(function (date) { return (React.createElement("table", { className: "k-calendar-table k-calendar-content k-content", key: date.getTime(), role: "grid" },
134
134
  React.createElement(View_1.View, { bus: _this.props.bus, service: _this.props.service, key: date.getTime(), direction: "horizontal", activeView: _this.props.activeView, cellUID: _this.props.cellUID, viewDate: date, min: _this.min, max: _this.max, focusedDate: _this.props.focusedDate, selectionRange: selectionRange, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, onCellEnter: _this.props.onCellEnter, cell: _this.props.cell, weekCell: _this.props.weekCell }))); })));
135
135
  };
136
136
  HorizontalViewList.defaultProps = {
@@ -450,10 +450,6 @@ var MultiViewCalendarWithoutContext = /** @class */ (function (_super) {
450
450
  'k-disabled': this.props.disabled
451
451
  }, this.props.className);
452
452
  var visualizedRange = this.rangeWithFocused(this.selectedRange, this.focusedDate);
453
- var wrapperAria = {
454
- 'aria-disabled': this.props.disabled,
455
- 'aria-activedescendant': this.cellUID + this.focusedDate.getTime()
456
- };
457
453
  var prevViewTitle = this.localization.toLanguageString(messages_1.prevView, messages_1.messages[messages_1.prevView]);
458
454
  var nextViewTittle = this.localization.toLanguageString(messages_1.nextView, messages_1.messages[messages_1.nextView]);
459
455
  var isPrevDisabled = !this.canNavigate(models_1.Action.PrevView);
@@ -467,7 +463,7 @@ var MultiViewCalendarWithoutContext = /** @class */ (function (_super) {
467
463
  this.dates = this.service.datesList(this.focusedDate, this.props.views || HorizontalViewList_1.HorizontalViewList.defaultProps.views);
468
464
  }
469
465
  var activeDate = (0, kendo_date_math_1.cloneDate)(this.dates && this.dates[0] ? this.dates[0] : (0, utils_1.getToday)());
470
- return (React.createElement("div", __assign({ ref: function (el) { _this._element = el; }, className: wrapperClassName, id: this.props.id || this.wrapperID, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, role: 'grid', tabIndex: !this.props.disabled ? this.props.tabIndex : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, wrapperAria),
466
+ return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: wrapperClassName, id: this.props.id || this.wrapperID, "aria-labelledby": this.props.ariaLabelledBy, "aria-describedby": this.props.ariaDescribedBy, tabIndex: !this.props.disabled ? this.props.tabIndex : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, onClick: this.handleClick, onKeyDown: this.handleKeyDown, "aria-disabled": this.props.disabled },
471
467
  React.createElement(Header_1.Header, { key: ".kendo.calendar.header.".concat(activeDate.getTime()), activeView: activeView, currentDate: activeDate, min: this.min, max: this.max, rangeLength: this.props.views, bus: this.bus, service: this.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,
472
468
  React.createElement(kendo_react_buttons_1.Button, __assign({ type: "button", className: "k-nav-prev", icon: "arrow-chevron-left", fillMode: "flat", title: prevViewTitle, disabled: isPrevDisabled, onClick: this.handlePrevButtonClick }, prevBtnAria)),
473
469
  React.createElement(TodayCommand_1.TodayCommand, { min: this.min, max: this.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }),
@@ -27,6 +27,7 @@ export interface NavigationProps {
27
27
  service: ViewService;
28
28
  take?: number;
29
29
  navigationItem?: React.ComponentType<CalendarNavigationItemProps>;
30
+ tabIndex?: number;
30
31
  }
31
32
  /**
32
33
  * @hidden
@@ -45,6 +46,7 @@ export declare class Navigation extends React.Component<NavigationProps, Navigat
45
46
  min: PropTypes.Validator<Date>;
46
47
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
47
48
  take: PropTypes.Requireable<number>;
49
+ tabIndex: PropTypes.Requireable<number>;
48
50
  };
49
51
  static defaultProps: {
50
52
  take: number;
@@ -144,7 +144,7 @@ var Navigation = /** @class */ (function (_super) {
144
144
  || !(0, kendo_date_math_1.isEqual)(focusedDate, this.lastFocus)) {
145
145
  this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);
146
146
  }
147
- var navigationBody = (React.createElement(Virtualization_1.Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount },
147
+ var navigationBody = (React.createElement(Virtualization_1.Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, tabIndex: this.props.tabIndex },
148
148
  React.createElement("ul", { ref: function (el) { _this.list = el; }, className: "k-reset" }, dates.map(function (date) { return (_this.buildNavigationItem(date)); }))));
149
149
  return (React.createElement("div", { className: "k-calendar-navigation" },
150
150
  React.createElement("span", { className: "k-calendar-navigation-highlight" }),
@@ -159,7 +159,8 @@ var Navigation = /** @class */ (function (_super) {
159
159
  max: PropTypes.instanceOf(Date).isRequired,
160
160
  min: PropTypes.instanceOf(Date).isRequired,
161
161
  onChange: PropTypes.func,
162
- take: PropTypes.number
162
+ take: PropTypes.number,
163
+ tabIndex: PropTypes.number
163
164
  };
164
165
  Navigation.defaultProps = {
165
166
  take: ITEMS_COUNT
@@ -9,6 +9,7 @@ export interface TodayCommandProps {
9
9
  max: Date;
10
10
  onClick?: (event: HeaderEventArguments) => void;
11
11
  disabled?: boolean;
12
+ tabIndex?: number;
12
13
  }
13
14
  export declare class TodayCommand extends React.Component<TodayCommandProps> {
14
15
  static propTypes: {
@@ -77,7 +77,7 @@ var TodayCommand = /** @class */ (function (_super) {
77
77
  var todayClassNames = (0, kendo_react_common_1.classNames)('k-nav-today', {
78
78
  'k-disabled': this.props.disabled
79
79
  });
80
- return (React.createElement("span", { className: todayClassNames, onClick: this.handleClick }, todayMessage));
80
+ return (React.createElement("span", { className: todayClassNames, onClick: this.handleClick, tabIndex: this.props.tabIndex }, todayMessage));
81
81
  };
82
82
  TodayCommand.propTypes = {
83
83
  max: PropTypes.instanceOf(Date).isRequired,
@@ -41,6 +41,7 @@ export interface ViewListProps {
41
41
  weekCell?: React.ComponentType<CalendarWeekCellProps>;
42
42
  headerTitle?: React.ComponentType<CalendarHeaderTitleProps>;
43
43
  shouldScroll?: () => boolean;
44
+ tabIndex?: number;
44
45
  }
45
46
  /**
46
47
  * @hidden
@@ -67,6 +68,7 @@ export declare class ViewList extends React.Component<ViewListProps, ViewListSta
67
68
  value: PropTypes.Requireable<Date>;
68
69
  viewHeight: PropTypes.Requireable<number>;
69
70
  viewOffset: PropTypes.Requireable<number>;
71
+ tabIndex: PropTypes.Requireable<number>;
70
72
  };
71
73
  static defaultProps: {
72
74
  take: number;
@@ -87,7 +87,7 @@ var ViewList = /** @class */ (function (_super) {
87
87
  };
88
88
  _this.buildDates = function (cols, dates) {
89
89
  var cellUID = _this.props.cellUID;
90
- return (React.createElement("table", { className: "k-calendar-table", ref: function (table) { return _this.table = table; } },
90
+ return (React.createElement("table", { className: "k-calendar-table", ref: function (table) { return _this.table = table; }, role: "grid", "aria-activedescendant": cellUID + _this.props.focusedDate.getTime() },
91
91
  React.createElement("colgroup", null, cols.map(function (_, idx) { return (React.createElement("col", { key: idx })); })),
92
92
  dates.map(function (date) { return (React.createElement(View_1.View, { ref: function (el) { if (!_this.calendarView) {
93
93
  _this.calendarView = el;
@@ -229,9 +229,9 @@ var ViewList = /** @class */ (function (_super) {
229
229
  var dates = this.buildDates(cols, this.props.service.datesList(viewDate, take));
230
230
  var viewListBody = (React.createElement(React.Fragment, null,
231
231
  React.createElement(Header_1.Header, { key: "calendar-view-list-header", currentDate: activeDate, min: this.props.min, max: this.props.max, activeView: this.props.activeView, bus: this.props.bus, service: this.props.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,
232
- React.createElement(TodayCommand_1.TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }))) }),
232
+ React.createElement(TodayCommand_1.TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange, tabIndex: this.props.tabIndex }))) }),
233
233
  this.props.activeView === models_1.CalendarViewEnum.month && this.buildMonthView(cols, this.weekNames),
234
- React.createElement(Virtualization_1.Virtualization, { key: "calendar-view-list-content", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates })));
234
+ React.createElement(Virtualization_1.Virtualization, { key: "calendar-view-list-content", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates, tabIndex: this.props.tabIndex })));
235
235
  return (React.createElement("div", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dom.didCalculate ? viewListBody : null));
236
236
  };
237
237
  ViewList.propTypes = {
@@ -247,7 +247,8 @@ var ViewList = /** @class */ (function (_super) {
247
247
  take: PropTypes.number,
248
248
  value: PropTypes.instanceOf(Date),
249
249
  viewHeight: PropTypes.number,
250
- viewOffset: PropTypes.number
250
+ viewOffset: PropTypes.number,
251
+ tabIndex: PropTypes.number
251
252
  };
252
253
  ViewList.defaultProps = {
253
254
  take: VIEWS_COUNT,
@@ -42,6 +42,14 @@ export interface DateInputProps<T extends DateInput = any> extends FormComponent
42
42
  * Indicates whether the element is currently expanded or collapsed.
43
43
  */
44
44
  ariaExpanded?: boolean;
45
+ /**
46
+ * Specifies the role of the DateInput.
47
+ */
48
+ ariaRole?: string;
49
+ /**
50
+ * Identifies the element whose contents or presence are controlled by the current element.
51
+ */
52
+ ariaControls?: string | undefined;
45
53
  /**
46
54
  * Determines the event handler that will be fired when the user edits the value ([see example]({% slug dateranges_dateinput %})).
47
55
  */
@@ -144,6 +152,7 @@ export declare class DateInputWithoutContext extends React.Component<DateInputPr
144
152
  ariaLabelledBy: PropTypes.Requireable<string>;
145
153
  ariaDescribedBy: PropTypes.Requireable<string>;
146
154
  ariaLabel: PropTypes.Requireable<string>;
155
+ ariaRole: PropTypes.Requireable<string>;
147
156
  ariaExpanded: PropTypes.Requireable<boolean>;
148
157
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
149
158
  validationMessage: PropTypes.Requireable<string>;
@@ -257,20 +257,12 @@ var DateInputWithoutContext = /** @class */ (function (_super) {
257
257
  }
258
258
  var localizationService = (0, kendo_react_intl_1.provideLocalizationService)(this);
259
259
  var props = __assign(__assign({}, DateInputWithoutContext.defaultProps), this.props);
260
- var min = props.min, max = props.max, name = props.name, label = props.label, id = props.id;
260
+ var name = props.name, label = props.label, id = props.id;
261
261
  var currentText = this.text;
262
262
  var text = currentText === this.props.placeholder ? '' : currentText;
263
263
  var placeholder = currentText === this.props.placeholder ? currentText : undefined;
264
264
  var inputId = id || this._inputId;
265
265
  var isValid = !this.validityStyles || this.validity.valid;
266
- var ariaProps = {
267
- 'aria-valuemin': min === null ? undefined : min.getTime(),
268
- 'aria-valuemax': max === null ? undefined : max.getTime(),
269
- 'aria-valuetext': text
270
- };
271
- if (this.value !== null) {
272
- ariaProps['aria-valuenow'] = this.value.getTime();
273
- }
274
266
  var wrapperClassesInstance = __spreadArray([], utils_1.wrapperClasses, true);
275
267
  if (this.props.className) {
276
268
  wrapperClassesInstance.push(this.props.className);
@@ -288,7 +280,7 @@ var DateInputWithoutContext = /** @class */ (function (_super) {
288
280
  _b['k-required'] = _this.required,
289
281
  _b['k-disabled'] = _this.props.disabled,
290
282
  _b), _this.props.className), onFocus: onFocus, onBlur: onBlur },
291
- React.createElement("input", __assign({ role: "spinbutton", tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: "text", spellCheck: false, autoComplete: "off", autoCorrect: "off", className: "k-input-inner", id: inputId, "aria-label": _this.props.ariaLabel, "aria-labelledby": _this.props.ariaLabelledBy, "aria-describedby": _this.props.ariaDescribedBy, "aria-expanded": _this.props.ariaExpanded, "aria-haspopup": _this.props.ariaHasPopup, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: kendo_react_common_1.noop, value: text, placeholder: placeholder, name: name }, ariaProps, { ref: function (input) { return _this._element = input; } })),
283
+ React.createElement("input", { role: _this.props.ariaRole || 'textbox', tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: "text", spellCheck: false, autoComplete: "off", autoCorrect: "off", className: "k-input-inner", id: inputId, "aria-label": _this.props.ariaLabel, "aria-labelledby": _this.props.ariaLabelledBy, "aria-describedby": _this.props.ariaDescribedBy, "aria-haspopup": _this.props.ariaHasPopup, "aria-disabled": _this.props.disabled, "aria-expanded": _this.props.ariaExpanded, "aria-controls": _this.props.ariaControls, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: kendo_react_common_1.noop, value: text, placeholder: placeholder, name: name, ref: function (input) { return _this._element = input; } }),
292
284
  _this.props.children,
293
285
  _this.props.spinners && (React.createElement("span", { className: "k-input-spinner k-spin-button", onMouseDown: _this.spinnersMouseDown },
294
286
  React.createElement(kendo_react_buttons_1.Button, { tabIndex: -1, type: "button", className: "k-spinner-increase", icon: 'arrow-n', "aria-label": localizationService.toLanguageString(messages_1.increaseValue, messages_1.messages[messages_1.increaseValue]), title: localizationService.toLanguageString(messages_1.increaseValue, messages_1.messages[messages_1.increaseValue]), onClick: _this.increasePart }),
@@ -646,6 +638,7 @@ var DateInputWithoutContext = /** @class */ (function (_super) {
646
638
  ariaLabelledBy: PropTypes.string,
647
639
  ariaDescribedBy: PropTypes.string,
648
640
  ariaLabel: PropTypes.string,
641
+ ariaRole: PropTypes.string,
649
642
  ariaExpanded: PropTypes.oneOfType([
650
643
  PropTypes.bool
651
644
  ]),