rsuite 5.45.0 → 5.46.1
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/CHANGELOG.md +21 -0
- package/DatePicker/styles/index.less +15 -0
- package/cjs/Calendar/MonthDropdown.js +1 -2
- package/cjs/Calendar/MonthDropdownItem.js +26 -13
- package/cjs/Calendar/Table.js +2 -1
- package/cjs/Calendar/TableCell.d.ts +14 -0
- package/cjs/Calendar/TableCell.js +72 -0
- package/cjs/Calendar/TableHeaderRow.js +3 -1
- package/cjs/Calendar/TableRow.d.ts +1 -0
- package/cjs/Calendar/TableRow.js +31 -49
- package/cjs/Calendar/useCalendarDate.d.ts +1 -1
- package/cjs/Calendar/utils.d.ts +7 -0
- package/cjs/Calendar/utils.js +15 -0
- package/cjs/Cascader/Cascader.js +13 -3
- package/cjs/DatePicker/DatePicker.js +145 -38
- package/cjs/InputPicker/InputPicker.js +7 -4
- package/cjs/Picker/PickerToggle.js +3 -0
- package/cjs/Picker/utils.js +21 -12
- package/cjs/RangeSlider/RangeSlider.js +14 -6
- package/cjs/Slider/Slider.js +7 -3
- package/cjs/Table/Table.d.ts +7 -7
- package/dist/rsuite-no-reset-rtl.css +110 -62
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +110 -62
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +110 -62
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +110 -62
- package/dist/rsuite.js +60 -17
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Calendar/MonthDropdown.js +1 -2
- package/esm/Calendar/MonthDropdownItem.js +28 -15
- package/esm/Calendar/Table.js +2 -1
- package/esm/Calendar/TableCell.d.ts +14 -0
- package/esm/Calendar/TableCell.js +66 -0
- package/esm/Calendar/TableHeaderRow.js +3 -1
- package/esm/Calendar/TableRow.d.ts +1 -0
- package/esm/Calendar/TableRow.js +32 -50
- package/esm/Calendar/useCalendarDate.d.ts +1 -1
- package/esm/Calendar/utils.d.ts +7 -0
- package/esm/Calendar/utils.js +12 -0
- package/esm/Cascader/Cascader.js +13 -3
- package/esm/DatePicker/DatePicker.js +147 -40
- package/esm/InputPicker/InputPicker.js +7 -4
- package/esm/Picker/PickerToggle.js +3 -0
- package/esm/Picker/utils.js +21 -12
- package/esm/RangeSlider/RangeSlider.js +14 -6
- package/esm/Slider/Slider.js +7 -3
- package/esm/Table/Table.d.ts +7 -7
- package/package.json +2 -2
- package/styles/color-modes/dark.less +1 -41
- package/styles/color-modes/high-contrast.less +1 -36
- package/styles/color-modes/light.less +0 -46
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
## [5.46.1](https://github.com/rsuite/rsuite/compare/v5.46.0...v5.46.1) (2023-12-01)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **Calendar:** fix incorrect week numbers calculation ([#3471](https://github.com/rsuite/rsuite/issues/3471)) ([646e728](https://github.com/rsuite/rsuite/commit/646e72874595ee7c0a8d8596175c974ff67e146a))
|
|
6
|
+
- **CSS:** fix CSS calc syntax compatibility issue ([#3474](https://github.com/rsuite/rsuite/issues/3474)) ([88021ee](https://github.com/rsuite/rsuite/commit/88021eeaa0f7e720f6511616c0e2413570700159))
|
|
7
|
+
- **Slider,RangeSlider:** fix onChangeCommitted not triggered when the… ([#3472](https://github.com/rsuite/rsuite/issues/3472)) ([18a6e17](https://github.com/rsuite/rsuite/commit/18a6e17417bcb516701340b335c10ee3c7efa15a))
|
|
8
|
+
|
|
9
|
+
# [5.46.0](https://github.com/rsuite/rsuite/compare/v5.45.0...v5.46.0) (2023-11-24)
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **DatePicker:** improve DatePicker accessibility ([#3464](https://github.com/rsuite/rsuite/issues/3464)) ([63ac804](https://github.com/rsuite/rsuite/commit/63ac8048d9ed7ab3048d9b488a5a1ce306ea2f6d))
|
|
14
|
+
- improve accessibility of picker related components ([#3463](https://github.com/rsuite/rsuite/issues/3463)) ([1cc5481](https://github.com/rsuite/rsuite/commit/1cc54812957b096273e0fa503b365da3c5eeba11))
|
|
15
|
+
- **AutoComplete,Loader:** fix CSS relative colors causing test errors ([#3460](https://github.com/rsuite/rsuite/issues/3460)) ([f9b1244](https://github.com/rsuite/rsuite/commit/f9b124489d6c505d10b9c8a0324b5046022aef27))
|
|
16
|
+
- **Cascader:** fix bug in value selection via Enter key ([#3461](https://github.com/rsuite/rsuite/issues/3461)) ([4266e79](https://github.com/rsuite/rsuite/commit/4266e79928ce75a4e856b68003510d1d12ee4b70))
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- **CSS:** add compatibility for relative color syntax ([#3462](https://github.com/rsuite/rsuite/issues/3462)) ([a02eaa9](https://github.com/rsuite/rsuite/commit/a02eaa9b14dc374d503481a443051d413a9fd041))
|
|
21
|
+
|
|
1
22
|
# [5.45.0](https://github.com/rsuite/rsuite/compare/v5.44.0...v5.45.0) (2023-11-17)
|
|
2
23
|
|
|
3
24
|
### Bug Fixes
|
|
@@ -93,6 +93,21 @@
|
|
|
93
93
|
width: unset;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
&-month-dropdown-cell:focus-visible {
|
|
97
|
+
.rs-calendar-month-dropdown-cell-content {
|
|
98
|
+
outline: 3px solid var(--rs-color-focus-ring);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&-table-cell {
|
|
103
|
+
&:focus-visible {
|
|
104
|
+
outline: none;
|
|
105
|
+
.rs-calendar-table-cell-content {
|
|
106
|
+
outline: 3px solid var(--rs-color-focus-ring);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
96
111
|
.rs-calendar-month-dropdown-cell-content,
|
|
97
112
|
.rs-calendar-table-cell-content {
|
|
98
113
|
width: @calendar-in-menu-content-side-length;
|
|
@@ -81,8 +81,7 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
81
81
|
className: titleClassName,
|
|
82
82
|
role: "rowheader"
|
|
83
83
|
}, year), /*#__PURE__*/_react.default.createElement("div", {
|
|
84
|
-
className: prefix('list')
|
|
85
|
-
role: "gridcell"
|
|
84
|
+
className: prefix('list')
|
|
86
85
|
}, monthMap.map(function (item, month) {
|
|
87
86
|
return /*#__PURE__*/_react.default.createElement(_MonthDropdownItem.default, {
|
|
88
87
|
disabled: isMonthDisabled(year, month),
|
|
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _utils = require("../utils");
|
|
13
13
|
var _dateUtils = require("../utils/dateUtils");
|
|
14
14
|
var _CalendarContext = require("./CalendarContext");
|
|
15
|
+
var _utils2 = require("./utils");
|
|
15
16
|
var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
16
17
|
var _props$as = props.as,
|
|
17
18
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -27,19 +28,26 @@ var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
27
28
|
var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
|
|
28
29
|
date = _useCalendarContext.date,
|
|
29
30
|
onSelect = _useCalendarContext.onChangeMonth;
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
var _useCustom = (0, _utils.useCustom)('Calendar'),
|
|
32
|
+
locale = _useCustom.locale,
|
|
33
|
+
formatDate = _useCustom.formatDate;
|
|
34
|
+
var formatStr = locale.formattedMonthPattern;
|
|
35
|
+
var currentMonth = (0, _react.useMemo)(function () {
|
|
36
|
+
if (year && month) {
|
|
37
|
+
return (0, _utils.composeFunctions)(function (d) {
|
|
36
38
|
return (0, _dateUtils.setYear)(d, year);
|
|
37
39
|
}, function (d) {
|
|
38
40
|
return (0, _dateUtils.setMonth)(d, month - 1);
|
|
39
41
|
})(date);
|
|
40
|
-
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextMonth, event);
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
+
return date;
|
|
44
|
+
}, [date, month, year]);
|
|
45
|
+
var handleClick = (0, _react.useCallback)(function (event) {
|
|
46
|
+
if (disabled) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(currentMonth, event);
|
|
50
|
+
}, [currentMonth, disabled, onSelect]);
|
|
43
51
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
44
52
|
prefix = _useClassNames.prefix,
|
|
45
53
|
merge = _useClassNames.merge,
|
|
@@ -49,13 +57,18 @@ var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
49
57
|
}), {
|
|
50
58
|
disabled: disabled
|
|
51
59
|
});
|
|
52
|
-
|
|
60
|
+
var ariaLabel = currentMonth ? (0, _utils2.getAriaLabel)(currentMonth, formatStr, formatDate) : '';
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
62
|
+
key: month,
|
|
63
|
+
role: "gridcell",
|
|
64
|
+
"aria-selected": active ? true : undefined,
|
|
65
|
+
"aria-disabled": disabled ? true : undefined,
|
|
66
|
+
"aria-label": ariaLabel,
|
|
67
|
+
tabIndex: active ? 0 : -1,
|
|
53
68
|
ref: ref,
|
|
54
69
|
className: classes,
|
|
55
|
-
onClick: handleClick
|
|
56
|
-
|
|
57
|
-
tabIndex: -1
|
|
58
|
-
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
70
|
+
onClick: handleClick
|
|
71
|
+
}, rest), /*#__PURE__*/_react.default.createElement("span", {
|
|
59
72
|
className: prefix('content')
|
|
60
73
|
}, month));
|
|
61
74
|
});
|
package/cjs/Calendar/Table.js
CHANGED
|
@@ -32,7 +32,8 @@ var Table = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
32
32
|
}), /*#__PURE__*/_react.default.createElement(_TableHeaderRow.default, null), rows.map(function (week, index) {
|
|
33
33
|
return /*#__PURE__*/_react.default.createElement(_TableRow.default, {
|
|
34
34
|
key: index,
|
|
35
|
-
weekendDate: week
|
|
35
|
+
weekendDate: week,
|
|
36
|
+
rowIndex: index + 1
|
|
36
37
|
});
|
|
37
38
|
}));
|
|
38
39
|
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
|
|
3
|
+
export interface TableCellProps extends WithAsProps {
|
|
4
|
+
date: Date;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
selected?: boolean;
|
|
7
|
+
unSameMonth?: boolean;
|
|
8
|
+
rangeStart?: boolean;
|
|
9
|
+
rangeEnd?: boolean;
|
|
10
|
+
inRange?: boolean;
|
|
11
|
+
onSelect?: (date: Date, disabled: boolean | void, event: React.MouseEvent) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const TableCell: RsRefForwardingComponent<'div', TableCellProps>;
|
|
14
|
+
export default TableCell;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _partial = _interopRequireDefault(require("lodash/partial"));
|
|
11
|
+
var _utils = require("../utils");
|
|
12
|
+
var _dateUtils = require("../utils/dateUtils");
|
|
13
|
+
var _CalendarContext = require("./CalendarContext");
|
|
14
|
+
var _utils2 = require("./utils");
|
|
15
|
+
var TableCell = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
16
|
+
var _props$as = props.as,
|
|
17
|
+
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
18
|
+
_props$classPrefix = props.classPrefix,
|
|
19
|
+
classPrefix = _props$classPrefix === void 0 ? 'calendar-table' : _props$classPrefix,
|
|
20
|
+
disabled = props.disabled,
|
|
21
|
+
selected = props.selected,
|
|
22
|
+
date = props.date,
|
|
23
|
+
onSelect = props.onSelect,
|
|
24
|
+
unSameMonth = props.unSameMonth,
|
|
25
|
+
rangeStart = props.rangeStart,
|
|
26
|
+
rangeEnd = props.rangeEnd,
|
|
27
|
+
inRange = props.inRange,
|
|
28
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "disabled", "selected", "date", "onSelect", "unSameMonth", "rangeStart", "rangeEnd", "inRange"]);
|
|
29
|
+
var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
|
|
30
|
+
onMouseMove = _useCalendarContext.onMouseMove,
|
|
31
|
+
cellClassName = _useCalendarContext.cellClassName,
|
|
32
|
+
renderCell = _useCalendarContext.renderCell,
|
|
33
|
+
overrideLocale = _useCalendarContext.locale;
|
|
34
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
35
|
+
prefix = _useClassNames.prefix,
|
|
36
|
+
merge = _useClassNames.merge;
|
|
37
|
+
var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
|
|
38
|
+
locale = _useCustom.locale,
|
|
39
|
+
formatDate = _useCustom.formatDate;
|
|
40
|
+
var formatStr = locale.formattedDayPattern;
|
|
41
|
+
var ariaLabel = (0, _utils2.getAriaLabel)(date, formatStr, formatDate);
|
|
42
|
+
var todayDate = new Date();
|
|
43
|
+
var isToday = (0, _dateUtils.isSameDay)(date, todayDate);
|
|
44
|
+
var classes = merge(prefix('cell', {
|
|
45
|
+
'cell-un-same-month': unSameMonth,
|
|
46
|
+
'cell-is-today': isToday,
|
|
47
|
+
'cell-selected': selected,
|
|
48
|
+
'cell-selected-start': rangeStart,
|
|
49
|
+
'cell-selected-end': rangeEnd,
|
|
50
|
+
'cell-in-range': !unSameMonth && inRange,
|
|
51
|
+
'cell-disabled': disabled
|
|
52
|
+
}), cellClassName === null || cellClassName === void 0 ? void 0 : cellClassName(date));
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
54
|
+
ref: ref,
|
|
55
|
+
role: "gridcell",
|
|
56
|
+
"aria-label": ariaLabel,
|
|
57
|
+
"aria-selected": selected || undefined,
|
|
58
|
+
"aria-disabled": disabled || undefined,
|
|
59
|
+
tabIndex: selected ? 0 : -1,
|
|
60
|
+
title: isToday ? ariaLabel + " (" + (locale === null || locale === void 0 ? void 0 : locale.today) + ")" : ariaLabel,
|
|
61
|
+
className: classes,
|
|
62
|
+
onMouseEnter: !disabled && onMouseMove ? onMouseMove.bind(null, date) : undefined,
|
|
63
|
+
onClick: onSelect ? (0, _partial.default)(onSelect, date, disabled) : undefined
|
|
64
|
+
}, rest), /*#__PURE__*/_react.default.createElement("div", {
|
|
65
|
+
className: prefix('cell-content')
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
67
|
+
className: prefix('cell-day')
|
|
68
|
+
}, _utils.DateUtils.getDate(date)), renderCell === null || renderCell === void 0 ? void 0 : renderCell(date)));
|
|
69
|
+
});
|
|
70
|
+
TableCell.displayName = 'CalendarTableCell';
|
|
71
|
+
var _default = TableCell;
|
|
72
|
+
exports.default = _default;
|
|
@@ -8,6 +8,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
8
8
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
11
12
|
var _utils = require("../utils");
|
|
12
13
|
var _CalendarContext = require("./CalendarContext");
|
|
13
14
|
var weekKeys = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
|
|
@@ -45,7 +46,8 @@ var TableHeaderRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
45
46
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
46
47
|
key: key,
|
|
47
48
|
className: prefix('header-cell'),
|
|
48
|
-
role: "columnheader"
|
|
49
|
+
role: "columnheader",
|
|
50
|
+
"aria-label": (0, _upperFirst.default)(key)
|
|
49
51
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
50
52
|
className: prefix('header-cell-content')
|
|
51
53
|
}, locale === null || locale === void 0 ? void 0 : locale[key]));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
|
|
2
2
|
export interface TableRowProps extends WithAsProps {
|
|
3
3
|
weekendDate?: Date;
|
|
4
|
+
rowIndex?: number;
|
|
4
5
|
}
|
|
5
6
|
declare const TableRow: RsRefForwardingComponent<'div', TableRowProps>;
|
|
6
7
|
export default TableRow;
|
package/cjs/Calendar/TableRow.js
CHANGED
|
@@ -9,9 +9,10 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
-
var _partial = _interopRequireDefault(require("lodash/partial"));
|
|
13
12
|
var _utils = require("../utils");
|
|
13
|
+
var _dateUtils = require("../utils/dateUtils");
|
|
14
14
|
var _CalendarContext = require("./CalendarContext");
|
|
15
|
+
var _TableCell = _interopRequireDefault(require("./TableCell"));
|
|
15
16
|
var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
16
17
|
var _props$as = props.as,
|
|
17
18
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -20,7 +21,8 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
20
21
|
classPrefix = _props$classPrefix === void 0 ? 'calendar-table' : _props$classPrefix,
|
|
21
22
|
_props$weekendDate = props.weekendDate,
|
|
22
23
|
weekendDate = _props$weekendDate === void 0 ? new Date() : _props$weekendDate,
|
|
23
|
-
|
|
24
|
+
rowIndex = props.rowIndex,
|
|
25
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "weekendDate", "rowIndex"]);
|
|
24
26
|
var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
|
|
25
27
|
_useCalendarContext$d = _useCalendarContext.date,
|
|
26
28
|
selected = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
|
|
@@ -29,15 +31,8 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
29
31
|
hoverRangeValue = _useCalendarContext.hoverRangeValue,
|
|
30
32
|
inSameMonth = _useCalendarContext.inSameMonth,
|
|
31
33
|
isoWeek = _useCalendarContext.isoWeek,
|
|
32
|
-
onMouseMove = _useCalendarContext.onMouseMove,
|
|
33
34
|
onSelect = _useCalendarContext.onSelect,
|
|
34
|
-
cellClassName = _useCalendarContext.cellClassName,
|
|
35
|
-
renderCell = _useCalendarContext.renderCell,
|
|
36
|
-
overrideLocale = _useCalendarContext.locale,
|
|
37
35
|
showWeekNumbers = _useCalendarContext.showWeekNumbers;
|
|
38
|
-
var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
|
|
39
|
-
locale = _useCustom.locale,
|
|
40
|
-
formatDate = _useCustom.formatDate;
|
|
41
36
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
42
37
|
prefix = _useClassNames.prefix,
|
|
43
38
|
merge = _useClassNames.merge;
|
|
@@ -48,7 +43,6 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
48
43
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
49
44
|
}, [onSelect]);
|
|
50
45
|
var renderDays = function renderDays() {
|
|
51
|
-
var formatStr = locale.formattedDayPattern;
|
|
52
46
|
var days = [];
|
|
53
47
|
var _ref = dateRange || [],
|
|
54
48
|
selectedStartDate = _ref[0],
|
|
@@ -57,76 +51,64 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
57
51
|
hoverStartDate = _ref2[0],
|
|
58
52
|
hoverEndDate = _ref2[1];
|
|
59
53
|
var isRangeSelectionMode = typeof dateRange !== 'undefined';
|
|
60
|
-
var todayDate = new Date();
|
|
61
54
|
for (var i = 0; i < 7; i += 1) {
|
|
62
|
-
var thisDate =
|
|
55
|
+
var thisDate = (0, _dateUtils.addDays)(weekendDate, i);
|
|
63
56
|
var disabled = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(thisDate, dateRange, _utils.DATERANGE_DISABLED_TARGET.CALENDAR);
|
|
64
|
-
var isToday = _utils.DateUtils.isSameDay(thisDate, todayDate);
|
|
65
57
|
var unSameMonth = !(inSameMonth !== null && inSameMonth !== void 0 && inSameMonth(thisDate));
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
-
var isSelected = isRangeSelectionMode ?
|
|
58
|
+
var rangeStart = !unSameMonth && selectedStartDate && (0, _dateUtils.isSameDay)(thisDate, selectedStartDate);
|
|
59
|
+
var rangeEnd = !unSameMonth && selectedEndDate && (0, _dateUtils.isSameDay)(thisDate, selectedEndDate);
|
|
60
|
+
var isSelected = isRangeSelectionMode ? rangeStart || rangeEnd : (0, _dateUtils.isSameDay)(thisDate, selected);
|
|
69
61
|
|
|
70
62
|
// TODO-Doma Move those logic that's for DatePicker/DateRangePicker to a separate component
|
|
71
63
|
// Calendar is not supposed to be reused this way
|
|
72
64
|
var inRange = false;
|
|
73
65
|
// for Selected
|
|
74
66
|
if (selectedStartDate && selectedEndDate) {
|
|
75
|
-
if (
|
|
67
|
+
if ((0, _dateUtils.isBefore)(thisDate, selectedEndDate) && (0, _dateUtils.isAfter)(thisDate, selectedStartDate)) {
|
|
76
68
|
inRange = true;
|
|
77
69
|
}
|
|
78
|
-
if (
|
|
70
|
+
if ((0, _dateUtils.isBefore)(thisDate, selectedStartDate) && (0, _dateUtils.isAfter)(thisDate, selectedEndDate)) {
|
|
79
71
|
inRange = true;
|
|
80
72
|
}
|
|
81
73
|
}
|
|
82
74
|
|
|
83
75
|
// for Hovering
|
|
84
76
|
if (!isSelected && hoverStartDate && hoverEndDate) {
|
|
85
|
-
if (!
|
|
77
|
+
if (!(0, _dateUtils.isAfter)(thisDate, hoverEndDate) && !(0, _dateUtils.isBefore)(thisDate, hoverStartDate)) {
|
|
86
78
|
inRange = true;
|
|
87
79
|
}
|
|
88
|
-
if (!
|
|
80
|
+
if (!(0, _dateUtils.isAfter)(thisDate, hoverStartDate) && !(0, _dateUtils.isBefore)(thisDate, hoverEndDate)) {
|
|
89
81
|
inRange = true;
|
|
90
82
|
}
|
|
91
83
|
}
|
|
92
|
-
|
|
93
|
-
'
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
role: "gridcell",
|
|
104
|
-
key: title,
|
|
105
|
-
"aria-label": title,
|
|
106
|
-
"aria-selected": isSelected || undefined,
|
|
107
|
-
className: _classes
|
|
108
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
109
|
-
role: "button",
|
|
110
|
-
className: prefix('cell-content'),
|
|
111
|
-
tabIndex: -1,
|
|
112
|
-
title: isToday ? title + " (" + (locale === null || locale === void 0 ? void 0 : locale.today) + ")" : title,
|
|
113
|
-
onMouseEnter: !disabled && onMouseMove ? onMouseMove.bind(null, thisDate) : undefined,
|
|
114
|
-
onClick: (0, _partial.default)(handleSelect, thisDate, disabled)
|
|
115
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
116
|
-
className: prefix('cell-day')
|
|
117
|
-
}, _utils.DateUtils.getDate(thisDate)), renderCell && renderCell(thisDate))));
|
|
84
|
+
days.push( /*#__PURE__*/_react.default.createElement(_TableCell.default, {
|
|
85
|
+
key: (0, _dateUtils.format)(thisDate, 'yyyy-MM-dd'),
|
|
86
|
+
date: thisDate,
|
|
87
|
+
disabled: disabled,
|
|
88
|
+
selected: isSelected,
|
|
89
|
+
onSelect: handleSelect,
|
|
90
|
+
unSameMonth: unSameMonth,
|
|
91
|
+
rangeStart: rangeStart,
|
|
92
|
+
rangeEnd: rangeEnd,
|
|
93
|
+
inRange: inRange
|
|
94
|
+
}));
|
|
118
95
|
}
|
|
119
96
|
return days;
|
|
120
97
|
};
|
|
121
98
|
var classes = merge(className, prefix('row'));
|
|
99
|
+
var week = (0, _dateUtils.format)(weekendDate, isoWeek ? 'I' : 'w', {
|
|
100
|
+
firstWeekContainsDate: 4
|
|
101
|
+
});
|
|
122
102
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
123
103
|
ref: ref,
|
|
124
104
|
role: "row",
|
|
105
|
+
"aria-rowindex": rowIndex,
|
|
125
106
|
className: classes
|
|
126
107
|
}), showWeekNumbers && /*#__PURE__*/_react.default.createElement("div", {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
108
|
+
role: "rowheader",
|
|
109
|
+
"aria-label": "Week " + week,
|
|
110
|
+
className: prefix('cell-week-number')
|
|
111
|
+
}, week), renderDays());
|
|
130
112
|
});
|
|
131
113
|
TableRow.displayName = 'CalendarTableRow';
|
|
132
114
|
TableRow.propTypes = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const useCalendarDate: (value: Date | null | undefined, defaultDate: Date | undefined) => {
|
|
2
2
|
calendarDate: Date;
|
|
3
|
-
setCalendarDate: (date: Date | undefined) => void;
|
|
3
|
+
setCalendarDate: (date: React.SetStateAction<Date> | undefined) => void;
|
|
4
4
|
resetCalendarDate: (nextValue?: any) => void;
|
|
5
5
|
};
|
|
6
6
|
export default useCalendarDate;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get aria-label for the date.
|
|
3
|
+
* @param date - The date.
|
|
4
|
+
* @param formatStr - The format string.
|
|
5
|
+
* @param format - The format function.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getAriaLabel(date: Date, formatStr: string, format: (date: Date, formatStr: string) => string): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.getAriaLabel = getAriaLabel;
|
|
6
|
+
var _utils = require("../utils");
|
|
7
|
+
/**
|
|
8
|
+
* Get aria-label for the date.
|
|
9
|
+
* @param date - The date.
|
|
10
|
+
* @param formatStr - The format string.
|
|
11
|
+
* @param format - The format function.
|
|
12
|
+
*/
|
|
13
|
+
function getAriaLabel(date, formatStr, format) {
|
|
14
|
+
return format ? format(date, formatStr) : _utils.DateUtils.format(date, formatStr);
|
|
15
|
+
}
|
package/cjs/Cascader/Cascader.js
CHANGED
|
@@ -196,6 +196,10 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
196
196
|
var items = getSearchResult(value);
|
|
197
197
|
setSearchKeyword(value);
|
|
198
198
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
|
|
199
|
+
if (!value || items.length === 0) {
|
|
200
|
+
setFocusItemValue(undefined);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
199
203
|
if (items.length > 0) {
|
|
200
204
|
setFocusItemValue(items[0][valueKey]);
|
|
201
205
|
setLayer(0);
|
|
@@ -218,9 +222,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
218
222
|
setSearchKeyword('');
|
|
219
223
|
}, [onClose]);
|
|
220
224
|
var handleClose = (0, _react.useCallback)(function () {
|
|
221
|
-
var _triggerRef$current;
|
|
225
|
+
var _triggerRef$current, _targetRef$current, _targetRef$current$fo;
|
|
222
226
|
(_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
|
|
223
|
-
|
|
227
|
+
|
|
228
|
+
// The focus is on the trigger button after closing
|
|
229
|
+
(_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : (_targetRef$current$fo = _targetRef$current.focus) === null || _targetRef$current$fo === void 0 ? void 0 : _targetRef$current$fo.call(_targetRef$current);
|
|
230
|
+
}, []);
|
|
224
231
|
var handleClean = (0, _react.useCallback)(function (event) {
|
|
225
232
|
if (disabled || !targetRef.current) {
|
|
226
233
|
return;
|
|
@@ -350,6 +357,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
350
357
|
"aria-disabled": disabled,
|
|
351
358
|
"data-key": item[valueKey],
|
|
352
359
|
className: itemClasses,
|
|
360
|
+
tabIndex: -1,
|
|
361
|
+
role: "option",
|
|
353
362
|
onClick: function onClick(event) {
|
|
354
363
|
if (!disabled) {
|
|
355
364
|
handleSearchRowSelect(item, nodes, event);
|
|
@@ -364,7 +373,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
364
373
|
var items = getSearchResult();
|
|
365
374
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
366
375
|
className: prefix('cascader-search-panel'),
|
|
367
|
-
"data-layer": 0
|
|
376
|
+
"data-layer": 0,
|
|
377
|
+
role: "listbox"
|
|
368
378
|
}, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
|
|
369
379
|
className: prefix('none')
|
|
370
380
|
}, locale.noResultsText));
|