rsuite 5.23.3 → 5.24.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 +25 -0
- package/Calendar/styles/index.less +15 -16
- package/DatePicker/styles/index.less +9 -0
- package/DatePicker/styles/mixin.less +8 -0
- package/Picker/styles/index.less +0 -1
- package/Picker/styles/mixin.less +1 -20
- package/Sidenav/styles/index.less +7 -2
- package/TreePicker/styles/index.less +13 -0
- package/cjs/AutoComplete/AutoComplete.d.ts +2 -0
- package/cjs/AutoComplete/AutoComplete.js +4 -1
- package/cjs/Calendar/MonthDropdown.d.ts +1 -0
- package/cjs/Calendar/MonthDropdown.js +14 -10
- package/cjs/Calendar/TableHeaderRow.js +3 -3
- package/cjs/Cascader/Cascader.js +2 -2
- package/cjs/Cascader/utils.d.ts +1 -1
- package/cjs/Cascader/utils.js +2 -2
- package/cjs/Content/Content.d.ts +1 -1
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +17 -1
- package/cjs/Dropdown/Dropdown.d.ts +2 -0
- package/cjs/Dropdown/Dropdown.js +3 -0
- package/cjs/Dropdown/DropdownItem.d.ts +5 -1
- package/cjs/Dropdown/DropdownItem.js +7 -7
- package/cjs/Dropdown/DropdownSeparator.d.ts +14 -0
- package/cjs/Dropdown/DropdownSeparator.js +48 -0
- package/cjs/Footer/Footer.d.ts +1 -1
- package/cjs/Header/Header.d.ts +1 -1
- package/cjs/MultiCascader/MultiCascader.js +4 -4
- package/cjs/MultiCascader/utils.d.ts +1 -1
- package/cjs/MultiCascader/utils.js +2 -2
- package/cjs/Navbar/NavbarBrand.d.ts +1 -1
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +3 -2
- package/cjs/TreePicker/TreeNode.d.ts +3 -3
- package/cjs/TreePicker/TreeNode.js +1 -11
- package/cjs/TreePicker/TreePicker.js +8 -1
- package/cjs/utils/createComponent.d.ts +3 -3
- package/cjs/utils/deprecatePropType.d.ts +9 -0
- package/cjs/utils/deprecatePropType.js +27 -0
- package/cjs/utils/treeUtils.d.ts +12 -0
- package/cjs/utils/treeUtils.js +42 -0
- package/dist/rsuite-rtl.css +172 -98
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +172 -98
- package/dist/rsuite.js +29 -18
- 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/AutoComplete/AutoComplete.d.ts +2 -0
- package/esm/AutoComplete/AutoComplete.js +4 -1
- package/esm/Calendar/MonthDropdown.d.ts +1 -0
- package/esm/Calendar/MonthDropdown.js +12 -9
- package/esm/Calendar/TableHeaderRow.js +3 -3
- package/esm/Cascader/Cascader.js +2 -2
- package/esm/Cascader/utils.d.ts +1 -1
- package/esm/Cascader/utils.js +2 -2
- package/esm/Content/Content.d.ts +1 -1
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +16 -1
- package/esm/Dropdown/Dropdown.d.ts +2 -0
- package/esm/Dropdown/Dropdown.js +2 -0
- package/esm/Dropdown/DropdownItem.d.ts +5 -1
- package/esm/Dropdown/DropdownItem.js +5 -7
- package/esm/Dropdown/DropdownSeparator.d.ts +14 -0
- package/esm/Dropdown/DropdownSeparator.js +35 -0
- package/esm/Footer/Footer.d.ts +1 -1
- package/esm/Header/Header.d.ts +1 -1
- package/esm/MultiCascader/MultiCascader.js +4 -4
- package/esm/MultiCascader/utils.d.ts +1 -1
- package/esm/MultiCascader/utils.js +2 -2
- package/esm/Navbar/NavbarBrand.d.ts +1 -1
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +3 -2
- package/esm/TreePicker/TreeNode.d.ts +3 -3
- package/esm/TreePicker/TreeNode.js +2 -11
- package/esm/TreePicker/TreePicker.js +9 -2
- package/esm/utils/createComponent.d.ts +3 -3
- package/esm/utils/deprecatePropType.d.ts +9 -0
- package/esm/utils/deprecatePropType.js +25 -0
- package/esm/utils/treeUtils.d.ts +12 -0
- package/esm/utils/treeUtils.js +36 -0
- package/package.json +2 -2
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/variables.less +7 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
## [5.24.1](https://github.com/rsuite/rsuite/compare/v5.24.0...v5.24.1) (2023-01-12)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **DatePicker,DateRangePicker:** fix the background color error when the cell is hovered ([#3018](https://github.com/rsuite/rsuite/issues/3018)) ([9d6f43e](https://github.com/rsuite/rsuite/commit/9d6f43e6db6049b7fdcc8514e071d870b785ecbb))
|
|
6
|
+
- **MultiCascader:** fix load async data error in inline mode ([#3015](https://github.com/rsuite/rsuite/issues/3015)) ([081eb14](https://github.com/rsuite/rsuite/commit/081eb14de9fb37d80a95324a669b8089e29ef03c)), closes [#3014](https://github.com/rsuite/rsuite/issues/3014)
|
|
7
|
+
- **Navbar.Brand:** fix missing href prop ([#3007](https://github.com/rsuite/rsuite/issues/3007)) ([d0a1f27](https://github.com/rsuite/rsuite/commit/d0a1f276d63e25c295fbef94f82559333ba4c148))
|
|
8
|
+
- **Tree:** fix Tree drag preview style error ([#3003](https://github.com/rsuite/rsuite/issues/3003)) ([4830148](https://github.com/rsuite/rsuite/commit/4830148b9e325bee926a2bfefe0786c08952ec79))
|
|
9
|
+
|
|
10
|
+
### Performance Improvements
|
|
11
|
+
|
|
12
|
+
- **CSS transitions:** improved duration of transitions ([#3016](https://github.com/rsuite/rsuite/issues/3016)) ([d1829da](https://github.com/rsuite/rsuite/commit/d1829da2e77131e031479ef9aa4f6d00d6307a52))
|
|
13
|
+
|
|
14
|
+
# [5.24.0](https://github.com/rsuite/rsuite/compare/v5.23.3...v5.24.0) (2022-12-30)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **AutoComplete:** fix AutoComplete size property not working ([#2990](https://github.com/rsuite/rsuite/issues/2990)) ([add665b](https://github.com/rsuite/rsuite/commit/add665b82b9d2cbd21e07576bf77f74e18991e21))
|
|
19
|
+
- **DatePicker:** fix inconsistency between month selectable state and ok button clickable state ([#2984](https://github.com/rsuite/rsuite/issues/2984)) ([70e6aba](https://github.com/rsuite/rsuite/commit/70e6aba0b7a3216c9f8b59b033826e55bebac1a1))
|
|
20
|
+
- **Sidenav:** fix Sidenav multilevel Nav.Menu arrow icon exception ([#2986](https://github.com/rsuite/rsuite/issues/2986)) ([87f6748](https://github.com/rsuite/rsuite/commit/87f67482b60eae4ed445246fe3e6ac9b0cad0385))
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
- **Dropdown:** add Dropdown.Separator component ([#2979](https://github.com/rsuite/rsuite/issues/2979)) ([db6fcbb](https://github.com/rsuite/rsuite/commit/db6fcbbd88961e3506f6b2d2146cf43717d1e1db))
|
|
25
|
+
|
|
1
26
|
## [5.23.3](https://github.com/rsuite/rsuite/compare/v5.23.2...v5.23.3) (2022-12-16)
|
|
2
27
|
|
|
3
28
|
### Bug Fixes
|
|
@@ -370,7 +370,8 @@
|
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
|
|
373
|
-
.rs-calendar-table-cell
|
|
373
|
+
.rs-calendar-table-cell,
|
|
374
|
+
.rs-calendar-table-header-cell {
|
|
374
375
|
display: table-cell;
|
|
375
376
|
width: 1%;
|
|
376
377
|
padding: @calendar-table-cell-padding 0;
|
|
@@ -418,21 +419,19 @@
|
|
|
418
419
|
}
|
|
419
420
|
|
|
420
421
|
// Table header row
|
|
421
|
-
.rs-calendar-table-header-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
cursor: auto;
|
|
435
|
-
}
|
|
422
|
+
.rs-calendar-table-header-cell-content {
|
|
423
|
+
color: var(--rs-text-secondary);
|
|
424
|
+
font-size: @font-size-small;
|
|
425
|
+
line-height: @line-height-small;
|
|
426
|
+
padding-top: 2px;
|
|
427
|
+
padding-bottom: 2px;
|
|
428
|
+
|
|
429
|
+
&,
|
|
430
|
+
&:hover,
|
|
431
|
+
&:focus,
|
|
432
|
+
&:hover:focus {
|
|
433
|
+
background: none;
|
|
434
|
+
cursor: auto;
|
|
436
435
|
}
|
|
437
436
|
}
|
|
438
437
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
@import '../../styles/mixins/listbox';
|
|
3
3
|
@import '../../Button/styles/mixin';
|
|
4
4
|
@import '../../Picker/styles/mixin';
|
|
5
|
+
@import 'mixin';
|
|
5
6
|
|
|
6
7
|
// DatePicker Picker
|
|
7
8
|
// ----------------------
|
|
@@ -91,6 +92,10 @@
|
|
|
91
92
|
.listbox-option-active();
|
|
92
93
|
}
|
|
93
94
|
|
|
95
|
+
.rs-calendar-month-dropdown-cell-active .rs-calendar-month-dropdown-cell-content:hover {
|
|
96
|
+
.calendar-cell-selected-hover();
|
|
97
|
+
}
|
|
98
|
+
|
|
94
99
|
.rs-calendar-table-header-row .rs-calendar-table-cell-content {
|
|
95
100
|
height: 24px;
|
|
96
101
|
padding-top: 0;
|
|
@@ -109,6 +114,10 @@
|
|
|
109
114
|
.listbox-option-active();
|
|
110
115
|
}
|
|
111
116
|
|
|
117
|
+
.rs-calendar-table-cell-selected:hover .rs-calendar-table-cell-content {
|
|
118
|
+
.calendar-cell-selected-hover();
|
|
119
|
+
}
|
|
120
|
+
|
|
112
121
|
.rs-calendar-month-dropdown-scroll {
|
|
113
122
|
height: 227px;
|
|
114
123
|
}
|
package/Picker/styles/index.less
CHANGED
|
@@ -382,7 +382,6 @@
|
|
|
382
382
|
display: block;
|
|
383
383
|
padding: @picker-item-content-padding-vertical @picker-item-content-padding-horizontal
|
|
384
384
|
@picker-item-content-padding-vertical @picker-check-item-content-padding-left;
|
|
385
|
-
transition: @picker-item-transition;
|
|
386
385
|
line-height: @line-height-computed;
|
|
387
386
|
|
|
388
387
|
.high-contrast-mode({
|
package/Picker/styles/mixin.less
CHANGED
|
@@ -31,21 +31,15 @@
|
|
|
31
31
|
padding: @picker-item-content-padding-vertical @picker-item-content-padding-horizontal;
|
|
32
32
|
padding-right: (@padding-x + @dropdown-caret-width + @dropdown-caret-padding);
|
|
33
33
|
position: relative;
|
|
34
|
-
cursor:
|
|
35
|
-
transition: @picker-item-transition;
|
|
34
|
+
cursor: pointer;
|
|
36
35
|
color: var(--rs-text-heading);
|
|
37
36
|
|
|
38
|
-
&:hover {
|
|
39
|
-
background-color: var(--rs-state-hover-bg);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
37
|
.rs-@{prefix}-menu-group-caret {
|
|
43
38
|
display: inline-block;
|
|
44
39
|
margin-left: 2px;
|
|
45
40
|
position: absolute;
|
|
46
41
|
top: @padding-y;
|
|
47
42
|
right: @padding-x;
|
|
48
|
-
transition: transform 0.3s linear;
|
|
49
43
|
padding: 3px;
|
|
50
44
|
}
|
|
51
45
|
}
|
|
@@ -60,19 +54,6 @@
|
|
|
60
54
|
}
|
|
61
55
|
}
|
|
62
56
|
|
|
63
|
-
.picker-select-item() {
|
|
64
|
-
display: block;
|
|
65
|
-
padding: @picker-item-content-padding-vertical @picker-item-content-padding-horizontal;
|
|
66
|
-
clear: both;
|
|
67
|
-
font-weight: normal;
|
|
68
|
-
line-height: @line-height-base;
|
|
69
|
-
color: var(--rs-text-primary);
|
|
70
|
-
cursor: pointer; //fixed link has not [href] style
|
|
71
|
-
transition: @picker-item-transition;
|
|
72
|
-
text-decoration: none;
|
|
73
|
-
width: 100%;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
57
|
.picker-item-hover() {
|
|
77
58
|
color: var(--rs-text-primary);
|
|
78
59
|
background-color: var(--rs-state-hover-bg);
|
|
@@ -76,14 +76,19 @@
|
|
|
76
76
|
top: @sidenav-children-padding-vertical;
|
|
77
77
|
// width: auto;
|
|
78
78
|
// height: @sidenav-dropdown-toggle-caret-width;
|
|
79
|
-
transform: rotate(90deg);
|
|
79
|
+
// transform: rotate(90deg);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
// Expanded submenu toggle icon
|
|
84
|
-
.rs-dropdown-item-expand
|
|
84
|
+
.rs-dropdown-item-expand-icon {
|
|
85
85
|
transform: rotate(270deg);
|
|
86
86
|
}
|
|
87
|
+
|
|
88
|
+
// Collapse submenu toggle icon
|
|
89
|
+
.rs-dropdown-item-collapse-icon {
|
|
90
|
+
transform: rotate(90deg);
|
|
91
|
+
}
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
.high-contrast-mode({
|
|
@@ -16,6 +16,19 @@
|
|
|
16
16
|
&.rs-tree-virtualized {
|
|
17
17
|
overflow: hidden;
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
&-drag-preview {
|
|
21
|
+
position: absolute;
|
|
22
|
+
top: 0;
|
|
23
|
+
color: var(--rs-text-primary);
|
|
24
|
+
background-color: var(--rs-bg-overlay);
|
|
25
|
+
display: inline-block;
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: @picker-tree-node-padding-vertical @picker-tree-node-padding-horizontal;
|
|
28
|
+
border-radius: 6px;
|
|
29
|
+
box-shadow: 0 1px 8px rgba(0, 0, 0, 0.12);
|
|
30
|
+
z-index: -1;
|
|
31
|
+
}
|
|
19
32
|
}
|
|
20
33
|
|
|
21
34
|
.rs-tree-node {
|
|
@@ -9,6 +9,8 @@ export interface AutoCompleteProps<T = ValueType> extends WithAsProps, FormContr
|
|
|
9
9
|
placement?: TypeAttributes.Placement;
|
|
10
10
|
/** When set to false, the Enter key selection function is invalid */
|
|
11
11
|
selectOnEnter?: boolean;
|
|
12
|
+
/** A component can have different sizes */
|
|
13
|
+
size?: TypeAttributes.Size;
|
|
12
14
|
/** Open the menu and control it */
|
|
13
15
|
open?: boolean;
|
|
14
16
|
/** Placeholder text */
|
|
@@ -52,6 +52,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
52
52
|
valueProp = props.value,
|
|
53
53
|
open = props.open,
|
|
54
54
|
style = props.style,
|
|
55
|
+
size = props.size,
|
|
55
56
|
menuClassName = props.menuClassName,
|
|
56
57
|
id = props.id,
|
|
57
58
|
renderMenu = props.renderMenu,
|
|
@@ -65,7 +66,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
65
66
|
onFocus = props.onFocus,
|
|
66
67
|
onBlur = props.onBlur,
|
|
67
68
|
onMenuFocus = props.onMenuFocus,
|
|
68
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "disabled", "className", "placement", "selectOnEnter", "classPrefix", "defaultValue", "menuAutoWidth", "data", "value", "open", "style", "menuClassName", "id", "renderMenu", "renderMenuItem", "onSelect", "filterBy", "onKeyDown", "onChange", "onClose", "onOpen", "onFocus", "onBlur", "onMenuFocus"]);
|
|
69
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "disabled", "className", "placement", "selectOnEnter", "classPrefix", "defaultValue", "menuAutoWidth", "data", "value", "open", "style", "size", "menuClassName", "id", "renderMenu", "renderMenuItem", "onSelect", "filterBy", "onKeyDown", "onChange", "onClose", "onOpen", "onFocus", "onBlur", "onMenuFocus"]);
|
|
69
70
|
var datalist = (0, _utils3.transformData)(data);
|
|
70
71
|
|
|
71
72
|
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
|
|
@@ -231,6 +232,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
231
232
|
id: id,
|
|
232
233
|
disabled: disabled,
|
|
233
234
|
value: value,
|
|
235
|
+
size: size,
|
|
234
236
|
onBlur: handleInputBlur,
|
|
235
237
|
onFocus: handleInputFocus,
|
|
236
238
|
onChange: handleChange,
|
|
@@ -260,6 +262,7 @@ AutoComplete.propTypes = (0, _extends2.default)({}, _utils2.animationPropTypes,
|
|
|
260
262
|
renderMenu: _propTypes.default.func,
|
|
261
263
|
renderMenuItem: _propTypes.default.func,
|
|
262
264
|
style: _propTypes.default.object,
|
|
265
|
+
size: _propTypes.default.oneOf(['lg', 'md', 'sm', 'xs']),
|
|
263
266
|
open: _propTypes.default.bool,
|
|
264
267
|
selectOnEnter: _propTypes.default.bool,
|
|
265
268
|
filterBy: _propTypes.default.func
|
|
@@ -22,5 +22,6 @@ export interface RowProps {
|
|
|
22
22
|
/** Style object to be applied to row (to position it); */
|
|
23
23
|
style?: React.CSSProperties;
|
|
24
24
|
}
|
|
25
|
+
export declare function isEveryDateInMonth(year: number, month: number, predicate: (date: Date) => boolean): boolean;
|
|
25
26
|
declare const MonthDropdown: RsRefForwardingComponent<'div', MonthDropdownProps>;
|
|
26
27
|
export default MonthDropdown;
|
|
@@ -5,6 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
6
|
|
|
7
7
|
exports.__esModule = true;
|
|
8
|
+
exports.isEveryDateInMonth = isEveryDateInMonth;
|
|
8
9
|
exports.default = void 0;
|
|
9
10
|
|
|
10
11
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
@@ -25,6 +26,18 @@ var _CalendarContext = require("./CalendarContext");
|
|
|
25
26
|
|
|
26
27
|
var monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
27
28
|
|
|
29
|
+
function isEveryDateInMonth(year, month, predicate) {
|
|
30
|
+
var days = _utils.DateUtils.getDaysInMonth(new Date(year, month));
|
|
31
|
+
|
|
32
|
+
for (var i = 1; i <= days; i++) {
|
|
33
|
+
if (!predicate(new Date(year, month, i))) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
|
|
28
41
|
var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
29
42
|
var _props$as = props.as,
|
|
30
43
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -60,16 +73,7 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
60
73
|
}, [limitEndYear, startYear, thisYear]);
|
|
61
74
|
var isMonthDisabled = (0, _react.useCallback)(function (year, month) {
|
|
62
75
|
if (disabledMonth) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
for (var i = 1; i <= days; i++) {
|
|
67
|
-
if (!disabledMonth(new Date(year, month, i))) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return true;
|
|
76
|
+
return isEveryDateInMonth(year, month, disabledMonth);
|
|
73
77
|
}
|
|
74
78
|
|
|
75
79
|
return false;
|
|
@@ -52,15 +52,15 @@ var TableHeaderRow = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
52
52
|
ref: ref,
|
|
53
53
|
className: classes
|
|
54
54
|
}), showWeekNumbers && /*#__PURE__*/_react.default.createElement("div", {
|
|
55
|
-
className: prefix('cell'),
|
|
55
|
+
className: prefix('header-cell'),
|
|
56
56
|
role: "columnheader"
|
|
57
57
|
}), items.map(function (key) {
|
|
58
58
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
59
59
|
key: key,
|
|
60
|
-
className: prefix('cell'),
|
|
60
|
+
className: prefix('header-cell'),
|
|
61
61
|
role: "columnheader"
|
|
62
62
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
63
|
-
className: prefix('cell-content')
|
|
63
|
+
className: prefix('header-cell-content')
|
|
64
64
|
}, locale === null || locale === void 0 ? void 0 : locale[key]));
|
|
65
65
|
}));
|
|
66
66
|
});
|
package/cjs/Cascader/Cascader.js
CHANGED
|
@@ -117,7 +117,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
117
117
|
valueToPaths = _usePaths.valueToPaths,
|
|
118
118
|
columnData = _usePaths.columnData,
|
|
119
119
|
addColumn = _usePaths.addColumn,
|
|
120
|
-
|
|
120
|
+
removeColumnByIndex = _usePaths.removeColumnByIndex,
|
|
121
121
|
setValueToPaths = _usePaths.setValueToPaths,
|
|
122
122
|
setColumnData = _usePaths.setColumnData,
|
|
123
123
|
setSelectedPaths = _usePaths.setSelectedPaths,
|
|
@@ -308,7 +308,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
308
308
|
addColumn(node[childrenKey], columnIndex);
|
|
309
309
|
} else {
|
|
310
310
|
// Removes subsequent columns of the current column when the clicked node is a leaf node.
|
|
311
|
-
|
|
311
|
+
removeColumnByIndex(columnIndex);
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
if (isLeafNode) {
|
package/cjs/Cascader/utils.d.ts
CHANGED
|
@@ -18,6 +18,6 @@ export declare function usePaths<T extends Record<string, unknown>>(params: UseP
|
|
|
18
18
|
setColumnData: import("react").Dispatch<import("react").SetStateAction<T[][]>>;
|
|
19
19
|
setSelectedPaths: import("react").Dispatch<import("react").SetStateAction<T[]>>;
|
|
20
20
|
addColumn: (column: T[], index: number) => void;
|
|
21
|
-
|
|
21
|
+
removeColumnByIndex: (index: number) => void;
|
|
22
22
|
};
|
|
23
23
|
export {};
|
package/cjs/Cascader/utils.js
CHANGED
|
@@ -131,7 +131,7 @@ function usePaths(params) {
|
|
|
131
131
|
*/
|
|
132
132
|
|
|
133
133
|
|
|
134
|
-
function
|
|
134
|
+
function removeColumnByIndex(index) {
|
|
135
135
|
setColumnData([].concat((0, _slice.default)(columnData, 0, index)));
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
@@ -170,6 +170,6 @@ function usePaths(params) {
|
|
|
170
170
|
setColumnData: setColumnData,
|
|
171
171
|
setSelectedPaths: setSelectedPaths,
|
|
172
172
|
addColumn: addColumn,
|
|
173
|
-
|
|
173
|
+
removeColumnByIndex: removeColumnByIndex
|
|
174
174
|
};
|
|
175
175
|
}
|
package/cjs/Content/Content.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ export declare type ContentProps = ComponentProps;
|
|
|
4
4
|
* For Internet Explorer 11 and lower, it's suggested that an ARIA role of "main"
|
|
5
5
|
* be added to the <main> element to ensure it is accessible
|
|
6
6
|
*/
|
|
7
|
-
declare const Content: import("../@types/common").RsRefForwardingComponent<"
|
|
7
|
+
declare const Content: import("../@types/common").RsRefForwardingComponent<"main", ComponentProps>;
|
|
8
8
|
export default Content;
|
|
@@ -29,7 +29,11 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
29
29
|
showMeridian?: boolean;
|
|
30
30
|
/** one tap to select */
|
|
31
31
|
oneTap?: boolean;
|
|
32
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Whether to disable a date on the calendar view
|
|
34
|
+
*
|
|
35
|
+
* @returns date should be disabled (not selectable)
|
|
36
|
+
*/
|
|
33
37
|
disabledDate?: (date?: Date) => boolean;
|
|
34
38
|
/** Disabled hours */
|
|
35
39
|
disabledHours?: (hour: number, date: Date) => boolean;
|
|
@@ -29,6 +29,8 @@ var _CalendarContainer = _interopRequireDefault(require("../Calendar/CalendarCon
|
|
|
29
29
|
|
|
30
30
|
var _useCalendarDate2 = _interopRequireDefault(require("../Calendar/useCalendarDate"));
|
|
31
31
|
|
|
32
|
+
var _MonthDropdown = require("../Calendar/MonthDropdown");
|
|
33
|
+
|
|
32
34
|
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
|
33
35
|
|
|
34
36
|
var _Stack = _interopRequireDefault(require("../Stack"));
|
|
@@ -336,6 +338,20 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
336
338
|
|
|
337
339
|
return allowDate || allowTime;
|
|
338
340
|
}, [disabledDateProp, props]);
|
|
341
|
+
/**
|
|
342
|
+
* Whether "OK" button is disabled
|
|
343
|
+
*
|
|
344
|
+
* - If format is date, disable ok button if selected date is disabled
|
|
345
|
+
* - If format is month, disable ok button if all dates in the month of selected date are disabled
|
|
346
|
+
*/
|
|
347
|
+
|
|
348
|
+
var isOKButtonDisabled = (0, _react.useCallback)(function (selectedDate) {
|
|
349
|
+
if (_utils.DateUtils.shouldRenderMonth(formatStr) && !_utils.DateUtils.shouldRenderDate(formatStr)) {
|
|
350
|
+
return (0, _MonthDropdown.isEveryDateInMonth)(selectedDate.getFullYear(), selectedDate.getMonth(), disabledToolbarHandle);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
return disabledToolbarHandle(selectedDate);
|
|
354
|
+
}, [disabledToolbarHandle, formatStr]);
|
|
339
355
|
var calendarProps = (0, _react.useMemo)(function () {
|
|
340
356
|
return (0, _mapValues.default)((0, _pick.default)(props, _utils.DateUtils.calendarOnlyProps), function (disabledOrHiddenTimeFunc) {
|
|
341
357
|
return function (next, date) {
|
|
@@ -406,7 +422,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
406
422
|
locale: locale,
|
|
407
423
|
ranges: bottomRanges,
|
|
408
424
|
calendarDate: calendarDate,
|
|
409
|
-
disabledOkBtn:
|
|
425
|
+
disabledOkBtn: isOKButtonDisabled,
|
|
410
426
|
disabledShortcut: disabledToolbarHandle,
|
|
411
427
|
onClickShortcut: handleShortcutPageDate,
|
|
412
428
|
onOk: handleOK,
|
|
@@ -4,6 +4,7 @@ import { TypeAttributes, WithAsProps, RsRefForwardingComponent } from '../@types
|
|
|
4
4
|
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
5
5
|
import DropdownItem from './DropdownItem';
|
|
6
6
|
import Button from '../Button';
|
|
7
|
+
import DropdownSeparator from './DropdownSeparator';
|
|
7
8
|
export declare type DropdownTrigger = 'click' | 'hover' | 'contextMenu';
|
|
8
9
|
export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect' | 'title'> {
|
|
9
10
|
/** Define the title as a submenu */
|
|
@@ -58,6 +59,7 @@ export interface DropdownComponent extends RsRefForwardingComponent<'div', Dropd
|
|
|
58
59
|
} & React.ComponentProps<ToggleAs>, context: any): JSX.Element | null;
|
|
59
60
|
Item: typeof DropdownItem;
|
|
60
61
|
Menu: typeof DropdownMenu;
|
|
62
|
+
Separator: typeof DropdownSeparator;
|
|
61
63
|
}
|
|
62
64
|
/**
|
|
63
65
|
* The <Dropdown> API
|
package/cjs/Dropdown/Dropdown.js
CHANGED
|
@@ -43,6 +43,8 @@ var _warnOnce = _interopRequireDefault(require("../utils/warnOnce"));
|
|
|
43
43
|
|
|
44
44
|
var _Nav = _interopRequireDefault(require("../Nav"));
|
|
45
45
|
|
|
46
|
+
var _DropdownSeparator = _interopRequireDefault(require("./DropdownSeparator"));
|
|
47
|
+
|
|
46
48
|
/**
|
|
47
49
|
* The <Dropdown> API
|
|
48
50
|
* When used inside <Sidenav>, renders a <TreeviewRootItem>;
|
|
@@ -186,6 +188,7 @@ var Dropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
186
188
|
|
|
187
189
|
Dropdown.Item = _DropdownItem.default;
|
|
188
190
|
Dropdown.Menu = _DropdownMenu.default;
|
|
191
|
+
Dropdown.Separator = _DropdownSeparator.default;
|
|
189
192
|
Dropdown.displayName = 'Dropdown';
|
|
190
193
|
Dropdown.propTypes = {
|
|
191
194
|
activeKey: _propTypes.default.any,
|
|
@@ -8,7 +8,11 @@ export interface DropdownMenuItemProps<T = any> extends WithAsProps, Omit<React.
|
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
/** You can use a custom element for this component */
|
|
10
10
|
as?: React.ElementType;
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Whether to display the divider
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Use dedicated <Dropdown.Separator> component instead
|
|
15
|
+
*/
|
|
12
16
|
divider?: boolean;
|
|
13
17
|
/** Disable the current option */
|
|
14
18
|
disabled?: boolean;
|
|
@@ -11,11 +11,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
13
|
|
|
14
|
+
var _pick2 = _interopRequireDefault(require("lodash/pick"));
|
|
15
|
+
|
|
14
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
17
|
|
|
16
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
19
|
|
|
18
|
-
var _deprecatePropType =
|
|
20
|
+
var _deprecatePropType = _interopRequireWildcard(require("../utils/deprecatePropType"));
|
|
19
21
|
|
|
20
22
|
var _MenuItem = _interopRequireDefault(require("../Menu/MenuItem"));
|
|
21
23
|
|
|
@@ -37,6 +39,8 @@ var _warnOnce = _interopRequireDefault(require("../utils/warnOnce"));
|
|
|
37
39
|
|
|
38
40
|
var _Nav = _interopRequireDefault(require("../Nav"));
|
|
39
41
|
|
|
42
|
+
var _DropdownSeparator = _interopRequireDefault(require("./DropdownSeparator"));
|
|
43
|
+
|
|
40
44
|
/**
|
|
41
45
|
* The <Dropdown.Item> API
|
|
42
46
|
* When used inside <Sidenav>, renders a <TreeviewItem>
|
|
@@ -106,11 +110,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
106
110
|
}
|
|
107
111
|
|
|
108
112
|
if (divider) {
|
|
109
|
-
return
|
|
110
|
-
ref: ref,
|
|
111
|
-
role: 'separator',
|
|
112
|
-
className: merge(prefix('divider'), className)
|
|
113
|
-
}, restProps));
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement(_DropdownSeparator.default, (0, _pick2.default)(props, ['data-testid']));
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
if (panel) {
|
|
@@ -159,7 +159,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
159
159
|
DropdownItem.displayName = 'Dropdown.Item';
|
|
160
160
|
DropdownItem.propTypes = {
|
|
161
161
|
as: _propTypes.default.elementType,
|
|
162
|
-
divider: _propTypes.default.bool,
|
|
162
|
+
divider: (0, _deprecatePropType.deprecatePropTypeNew)(_propTypes.default.bool, 'Use Dropdown.Separator component instead.'),
|
|
163
163
|
panel: _propTypes.default.bool,
|
|
164
164
|
trigger: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.oneOf(['click', 'hover'])]),
|
|
165
165
|
open: (0, _deprecatePropType.default)(_propTypes.default.bool),
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
|
|
3
|
+
export interface DropdownSeparatorProps extends WithAsProps, React.HTMLAttributes<HTMLElement> {
|
|
4
|
+
/** You can use a custom element for this component */
|
|
5
|
+
as?: React.ElementType;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The <Dropdown.Separator> API
|
|
9
|
+
*
|
|
10
|
+
* Renders a non-focusable and non-interactive `separator`
|
|
11
|
+
* Per ARIA APG https://www.w3.org/WAI/ARIA/apg/patterns/menu/
|
|
12
|
+
*/
|
|
13
|
+
declare const DropdownSeparator: RsRefForwardingComponent<'li', DropdownSeparatorProps>;
|
|
14
|
+
export default DropdownSeparator;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _utils = require("../utils");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The <Dropdown.Separator> API
|
|
20
|
+
*
|
|
21
|
+
* Renders a non-focusable and non-interactive `separator`
|
|
22
|
+
* Per ARIA APG https://www.w3.org/WAI/ARIA/apg/patterns/menu/
|
|
23
|
+
*/
|
|
24
|
+
var DropdownSeparator = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
25
|
+
var _props$classPrefix = props.classPrefix,
|
|
26
|
+
classPrefix = _props$classPrefix === void 0 ? 'dropdown-item-divider' : _props$classPrefix,
|
|
27
|
+
className = props.className,
|
|
28
|
+
_props$as = props.as,
|
|
29
|
+
Component = _props$as === void 0 ? 'li' : _props$as,
|
|
30
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "className", "as"]);
|
|
31
|
+
|
|
32
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
33
|
+
merge = _useClassNames.merge,
|
|
34
|
+
withClassPrefix = _useClassNames.withClassPrefix;
|
|
35
|
+
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
37
|
+
ref: ref,
|
|
38
|
+
role: "separator",
|
|
39
|
+
className: merge(withClassPrefix(), className)
|
|
40
|
+
}, restProps));
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
DropdownSeparator.displayName = 'Dropdown.Separator';
|
|
44
|
+
DropdownSeparator.propTypes = {
|
|
45
|
+
as: _propTypes.default.elementType
|
|
46
|
+
};
|
|
47
|
+
var _default = DropdownSeparator;
|
|
48
|
+
exports.default = _default;
|
package/cjs/Footer/Footer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ComponentProps } from '../utils/createComponent';
|
|
2
2
|
export declare type FooterProps = ComponentProps;
|
|
3
|
-
declare const Footer: import("../@types/common").RsRefForwardingComponent<"
|
|
3
|
+
declare const Footer: import("../@types/common").RsRefForwardingComponent<"footer", ComponentProps>;
|
|
4
4
|
export default Footer;
|
package/cjs/Header/Header.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ComponentProps } from '../utils/createComponent';
|
|
2
2
|
export declare type HeaderProps = ComponentProps;
|
|
3
|
-
declare const Header: import("../@types/common").RsRefForwardingComponent<"
|
|
3
|
+
declare const Header: import("../@types/common").RsRefForwardingComponent<"header", ComponentProps>;
|
|
4
4
|
export default Header;
|
|
@@ -127,7 +127,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
127
127
|
columnData = _useColumnData.columnData,
|
|
128
128
|
setColumnData = _useColumnData.setColumnData,
|
|
129
129
|
addColumn = _useColumnData.addColumn,
|
|
130
|
-
|
|
130
|
+
removeColumnByIndex = _useColumnData.removeColumnByIndex,
|
|
131
131
|
enforceUpdateColumnData = _useColumnData.enforceUpdateColumnData;
|
|
132
132
|
|
|
133
133
|
(0, _utils3.useUpdateEffect)(function () {
|
|
@@ -223,7 +223,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
223
223
|
node.loading = false;
|
|
224
224
|
node[childrenKey] = data;
|
|
225
225
|
|
|
226
|
-
if (targetRef.current) {
|
|
226
|
+
if (targetRef.current || inline) {
|
|
227
227
|
addFlattenData(data, node);
|
|
228
228
|
addColumn(data, columnIndex);
|
|
229
229
|
}
|
|
@@ -238,11 +238,11 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
238
238
|
addColumn(node[childrenKey], columnIndex);
|
|
239
239
|
} else {
|
|
240
240
|
// Removes subsequent columns of the current column when the clicked node is a leaf node.
|
|
241
|
-
|
|
241
|
+
removeColumnByIndex(columnIndex);
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
(_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$u = _triggerRef$current.updatePosition) === null || _triggerRef$current$u === void 0 ? void 0 : _triggerRef$current$u.call(_triggerRef$current);
|
|
245
|
-
}, [onSelect, getChildren, childrenKey, addFlattenData, addColumn,
|
|
245
|
+
}, [onSelect, getChildren, childrenKey, inline, addFlattenData, addColumn, removeColumnByIndex]);
|
|
246
246
|
var handleCheck = (0, _react.useCallback)(function (node, event, checked) {
|
|
247
247
|
var nodeValue = node[valueKey];
|
|
248
248
|
var nextValue = [];
|
|
@@ -51,7 +51,7 @@ export declare function useFlattenData<T>(data: T[], itemKeys: ItemKeys): {
|
|
|
51
51
|
export declare function useColumnData<T extends MayHasParent<Record<string, unknown>>>(flattenData: T[]): {
|
|
52
52
|
columnData: T[][];
|
|
53
53
|
addColumn: (column: T[], index: number) => void;
|
|
54
|
-
|
|
54
|
+
removeColumnByIndex: (index: number) => void;
|
|
55
55
|
setColumnData: import("react").Dispatch<import("react").SetStateAction<T[][]>>;
|
|
56
56
|
enforceUpdateColumnData: (nextData: T[]) => void;
|
|
57
57
|
};
|