rsuite 5.44.0 → 5.46.0
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/Button/styles/index.less +1 -1
- package/CHANGELOG.md +25 -0
- package/DatePicker/styles/index.less +15 -0
- package/Drawer/styles/index.less +1 -1
- package/Modal/styles/index.less +24 -2
- package/cjs/Calendar/MonthDropdown.js +1 -2
- package/cjs/Calendar/MonthDropdownItem.js +26 -13
- 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.js +22 -46
- 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/Drawer/Drawer.d.ts +2 -0
- package/cjs/Drawer/Drawer.js +16 -5
- package/cjs/Drawer/DrawerContext.d.ts +9 -0
- package/cjs/Drawer/DrawerContext.js +10 -0
- package/cjs/FormControl/FormControl.js +1 -1
- package/cjs/InputPicker/InputPicker.js +7 -4
- package/cjs/Modal/Modal.d.ts +2 -4
- package/cjs/Modal/Modal.js +24 -13
- package/cjs/Modal/ModalBody.js +14 -8
- package/cjs/Modal/ModalContext.d.ts +1 -3
- package/cjs/Modal/ModalHeader.js +9 -6
- package/cjs/Modal/index.d.ts +1 -0
- package/cjs/Modal/utils.d.ts +4 -1
- package/cjs/Modal/utils.js +9 -4
- package/cjs/Picker/PickerToggle.js +3 -0
- package/cjs/Picker/utils.js +21 -12
- package/cjs/Table/Table.d.ts +7 -7
- package/dist/rsuite-no-reset-rtl.css +141 -64
- 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 +141 -64
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +141 -64
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +141 -64
- package/dist/rsuite.js +73 -19
- 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/TableCell.d.ts +14 -0
- package/esm/Calendar/TableCell.js +66 -0
- package/esm/Calendar/TableHeaderRow.js +3 -1
- package/esm/Calendar/TableRow.js +23 -47
- 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/Drawer/Drawer.d.ts +2 -0
- package/esm/Drawer/Drawer.js +15 -5
- package/esm/Drawer/DrawerContext.d.ts +9 -0
- package/esm/Drawer/DrawerContext.js +4 -0
- package/esm/FormControl/FormControl.js +1 -1
- package/esm/InputPicker/InputPicker.js +7 -4
- package/esm/Modal/Modal.d.ts +2 -4
- package/esm/Modal/Modal.js +25 -14
- package/esm/Modal/ModalBody.js +14 -8
- package/esm/Modal/ModalContext.d.ts +1 -3
- package/esm/Modal/ModalHeader.js +9 -6
- package/esm/Modal/index.d.ts +1 -0
- package/esm/Modal/utils.d.ts +4 -1
- package/esm/Modal/utils.js +9 -4
- package/esm/Picker/PickerToggle.js +3 -0
- package/esm/Picker/utils.js +21 -12
- package/esm/Table/Table.d.ts +7 -7
- package/package.json +2 -2
- package/styles/color-modes/dark.less +0 -40
- package/styles/color-modes/high-contrast.less +0 -35
- package/styles/color-modes/light.less +0 -46
package/Button/styles/index.less
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
# [5.46.0](https://github.com/rsuite/rsuite/compare/v5.45.0...v5.46.0) (2023-11-24)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **DatePicker:** improve DatePicker accessibility ([#3464](https://github.com/rsuite/rsuite/issues/3464)) ([63ac804](https://github.com/rsuite/rsuite/commit/63ac8048d9ed7ab3048d9b488a5a1ce306ea2f6d))
|
|
6
|
+
- improve accessibility of picker related components ([#3463](https://github.com/rsuite/rsuite/issues/3463)) ([1cc5481](https://github.com/rsuite/rsuite/commit/1cc54812957b096273e0fa503b365da3c5eeba11))
|
|
7
|
+
- **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))
|
|
8
|
+
- **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))
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
- **CSS:** add compatibility for relative color syntax ([#3462](https://github.com/rsuite/rsuite/issues/3462)) ([a02eaa9](https://github.com/rsuite/rsuite/commit/a02eaa9b14dc374d503481a443051d413a9fd041))
|
|
13
|
+
|
|
14
|
+
# [5.45.0](https://github.com/rsuite/rsuite/compare/v5.44.0...v5.45.0) (2023-11-17)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **Button:** fix button radius using wrong less variable ([#3451](https://github.com/rsuite/rsuite/issues/3451)) ([037a2b3](https://github.com/rsuite/rsuite/commit/037a2b3fb2696a55390018958a3d84cd0dc38958))
|
|
19
|
+
- formControll will pass undefined as value when value is null defaultValue is undefined ([#3456](https://github.com/rsuite/rsuite/issues/3456)) ([cde5a88](https://github.com/rsuite/rsuite/commit/cde5a889036f1873115b8be2ac31a31b8ff28bd3))
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
- **Drawer:** add support for closeButton ([#3450](https://github.com/rsuite/rsuite/issues/3450)) ([90f25d0](https://github.com/rsuite/rsuite/commit/90f25d09e131e606c9ebd6dca41c0047e02f7908))
|
|
24
|
+
- **Modal,Drawer:** size prop supports number and string values ([#3103](https://github.com/rsuite/rsuite/issues/3103)) ([39741b7](https://github.com/rsuite/rsuite/commit/39741b755460e29cb8cfefb32bf4056b14cbf985))
|
|
25
|
+
|
|
1
26
|
# [5.44.0](https://github.com/rsuite/rsuite/compare/5.43.0...5.44.0) (2023-11-10)
|
|
2
27
|
|
|
3
28
|
### 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;
|
package/Drawer/styles/index.less
CHANGED
package/Modal/styles/index.less
CHANGED
|
@@ -72,8 +72,30 @@
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
&-full {
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
margin: 0;
|
|
76
|
+
height: 100%;
|
|
77
|
+
|
|
78
|
+
.rs-modal-content {
|
|
79
|
+
position: absolute;
|
|
80
|
+
height: 100%;
|
|
81
|
+
width: 100%;
|
|
82
|
+
border-radius: 0;
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-direction: column;
|
|
85
|
+
|
|
86
|
+
.rs-modal-header {
|
|
87
|
+
flex: 0 0 auto;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.rs-modal-body {
|
|
91
|
+
flex: 1 1 auto;
|
|
92
|
+
overflow: auto;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.rs-modal-footer {
|
|
96
|
+
flex: 0 0 auto;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
}
|
|
78
100
|
}
|
|
79
101
|
|
|
@@ -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
|
});
|
|
@@ -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]));
|
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,
|
|
@@ -29,15 +30,8 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
29
30
|
hoverRangeValue = _useCalendarContext.hoverRangeValue,
|
|
30
31
|
inSameMonth = _useCalendarContext.inSameMonth,
|
|
31
32
|
isoWeek = _useCalendarContext.isoWeek,
|
|
32
|
-
onMouseMove = _useCalendarContext.onMouseMove,
|
|
33
33
|
onSelect = _useCalendarContext.onSelect,
|
|
34
|
-
cellClassName = _useCalendarContext.cellClassName,
|
|
35
|
-
renderCell = _useCalendarContext.renderCell,
|
|
36
|
-
overrideLocale = _useCalendarContext.locale,
|
|
37
34
|
showWeekNumbers = _useCalendarContext.showWeekNumbers;
|
|
38
|
-
var _useCustom = (0, _utils.useCustom)('Calendar', overrideLocale),
|
|
39
|
-
locale = _useCustom.locale,
|
|
40
|
-
formatDate = _useCustom.formatDate;
|
|
41
35
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
42
36
|
prefix = _useClassNames.prefix,
|
|
43
37
|
merge = _useClassNames.merge;
|
|
@@ -48,7 +42,6 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
48
42
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
49
43
|
}, [onSelect]);
|
|
50
44
|
var renderDays = function renderDays() {
|
|
51
|
-
var formatStr = locale.formattedDayPattern;
|
|
52
45
|
var days = [];
|
|
53
46
|
var _ref = dateRange || [],
|
|
54
47
|
selectedStartDate = _ref[0],
|
|
@@ -57,64 +50,47 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
57
50
|
hoverStartDate = _ref2[0],
|
|
58
51
|
hoverEndDate = _ref2[1];
|
|
59
52
|
var isRangeSelectionMode = typeof dateRange !== 'undefined';
|
|
60
|
-
var todayDate = new Date();
|
|
61
53
|
for (var i = 0; i < 7; i += 1) {
|
|
62
|
-
var thisDate =
|
|
54
|
+
var thisDate = (0, _dateUtils.addDays)(weekendDate, i);
|
|
63
55
|
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
56
|
var unSameMonth = !(inSameMonth !== null && inSameMonth !== void 0 && inSameMonth(thisDate));
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
-
var isSelected = isRangeSelectionMode ?
|
|
57
|
+
var rangeStart = !unSameMonth && selectedStartDate && (0, _dateUtils.isSameDay)(thisDate, selectedStartDate);
|
|
58
|
+
var rangeEnd = !unSameMonth && selectedEndDate && (0, _dateUtils.isSameDay)(thisDate, selectedEndDate);
|
|
59
|
+
var isSelected = isRangeSelectionMode ? rangeStart || rangeEnd : (0, _dateUtils.isSameDay)(thisDate, selected);
|
|
69
60
|
|
|
70
61
|
// TODO-Doma Move those logic that's for DatePicker/DateRangePicker to a separate component
|
|
71
62
|
// Calendar is not supposed to be reused this way
|
|
72
63
|
var inRange = false;
|
|
73
64
|
// for Selected
|
|
74
65
|
if (selectedStartDate && selectedEndDate) {
|
|
75
|
-
if (
|
|
66
|
+
if ((0, _dateUtils.isBefore)(thisDate, selectedEndDate) && (0, _dateUtils.isAfter)(thisDate, selectedStartDate)) {
|
|
76
67
|
inRange = true;
|
|
77
68
|
}
|
|
78
|
-
if (
|
|
69
|
+
if ((0, _dateUtils.isBefore)(thisDate, selectedStartDate) && (0, _dateUtils.isAfter)(thisDate, selectedEndDate)) {
|
|
79
70
|
inRange = true;
|
|
80
71
|
}
|
|
81
72
|
}
|
|
82
73
|
|
|
83
74
|
// for Hovering
|
|
84
75
|
if (!isSelected && hoverStartDate && hoverEndDate) {
|
|
85
|
-
if (!
|
|
76
|
+
if (!(0, _dateUtils.isAfter)(thisDate, hoverEndDate) && !(0, _dateUtils.isBefore)(thisDate, hoverStartDate)) {
|
|
86
77
|
inRange = true;
|
|
87
78
|
}
|
|
88
|
-
if (!
|
|
79
|
+
if (!(0, _dateUtils.isAfter)(thisDate, hoverStartDate) && !(0, _dateUtils.isBefore)(thisDate, hoverEndDate)) {
|
|
89
80
|
inRange = true;
|
|
90
81
|
}
|
|
91
82
|
}
|
|
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))));
|
|
83
|
+
days.push( /*#__PURE__*/_react.default.createElement(_TableCell.default, {
|
|
84
|
+
key: (0, _dateUtils.format)(thisDate, 'yyyy-MM-dd'),
|
|
85
|
+
date: thisDate,
|
|
86
|
+
disabled: disabled,
|
|
87
|
+
selected: isSelected,
|
|
88
|
+
onSelect: handleSelect,
|
|
89
|
+
unSameMonth: unSameMonth,
|
|
90
|
+
rangeStart: rangeStart,
|
|
91
|
+
rangeEnd: rangeEnd,
|
|
92
|
+
inRange: inRange
|
|
93
|
+
}));
|
|
118
94
|
}
|
|
119
95
|
return days;
|
|
120
96
|
};
|
|
@@ -126,7 +102,7 @@ var TableRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
126
102
|
}), showWeekNumbers && /*#__PURE__*/_react.default.createElement("div", {
|
|
127
103
|
className: prefix('cell-week-number'),
|
|
128
104
|
role: "rowheader"
|
|
129
|
-
},
|
|
105
|
+
}, (0, _dateUtils.format)(weekendDate, isoWeek ? 'I' : 'w')), renderDays());
|
|
130
106
|
});
|
|
131
107
|
TableRow.displayName = 'CalendarTableRow';
|
|
132
108
|
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));
|