@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.
- package/dist/cdn/js/kendo-react-dateinputs.js +1 -1
- package/dist/es/calendar/components/Calendar.js +2 -17
- package/dist/es/calendar/components/HorizontalViewList.js +1 -1
- package/dist/es/calendar/components/MultiViewCalendar.js +1 -5
- package/dist/es/calendar/components/Navigation.d.ts +2 -0
- package/dist/es/calendar/components/Navigation.js +3 -2
- package/dist/es/calendar/components/TodayCommand.d.ts +1 -0
- package/dist/es/calendar/components/TodayCommand.js +1 -1
- package/dist/es/calendar/components/ViewList.d.ts +2 -0
- package/dist/es/calendar/components/ViewList.js +5 -4
- package/dist/es/dateinput/DateInput.d.ts +9 -0
- package/dist/es/dateinput/DateInput.js +3 -10
- package/dist/es/datepicker/DatePicker.js +3 -4
- package/dist/es/daterangepicker/DateRangePicker.d.ts +2 -3
- package/dist/es/daterangepicker/DateRangePicker.js +2 -2
- package/dist/es/datetimepicker/DateTimePicker.js +1 -2
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/timepicker/TimePicker.js +1 -2
- package/dist/npm/calendar/components/Calendar.js +2 -17
- package/dist/npm/calendar/components/HorizontalViewList.js +1 -1
- package/dist/npm/calendar/components/MultiViewCalendar.js +1 -5
- package/dist/npm/calendar/components/Navigation.d.ts +2 -0
- package/dist/npm/calendar/components/Navigation.js +3 -2
- package/dist/npm/calendar/components/TodayCommand.d.ts +1 -0
- package/dist/npm/calendar/components/TodayCommand.js +1 -1
- package/dist/npm/calendar/components/ViewList.d.ts +2 -0
- package/dist/npm/calendar/components/ViewList.js +5 -4
- package/dist/npm/dateinput/DateInput.d.ts +9 -0
- package/dist/npm/dateinput/DateInput.js +3 -10
- package/dist/npm/datepicker/DatePicker.js +3 -4
- package/dist/npm/daterangepicker/DateRangePicker.d.ts +2 -3
- package/dist/npm/daterangepicker/DateRangePicker.js +2 -2
- package/dist/npm/datetimepicker/DateTimePicker.js +1 -2
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/timepicker/TimePicker.js +1 -2
- package/dist/systemjs/kendo-react-dateinputs.js +1 -1
- 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
|
|
319
|
-
|
|
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",
|
|
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
|
|
@@ -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
|
|
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",
|
|
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", {
|
|
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, {
|
|
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:
|
|
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
|
|
322
|
-
|
|
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",
|
|
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
|
|
@@ -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
|
|
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",
|
|
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
|
]),
|