rsuite 5.20.0 → 5.22.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/CHANGELOG.md +25 -973
- package/CheckTreePicker/styles/index.less +0 -25
- package/DatePicker/styles/index.less +11 -0
- package/Picker/styles/index.less +0 -10
- package/Picker/styles/mixin.less +0 -5
- package/README.md +4 -2
- package/Table/styles/index.less +12 -7
- package/TreePicker/styles/index.less +0 -19
- package/Windowing/package.json +7 -0
- package/cjs/Calendar/MonthDropdown.d.ts +1 -0
- package/cjs/Calendar/MonthDropdown.js +27 -40
- package/cjs/Cascader/Cascader.d.ts +2 -2
- package/cjs/Cascader/DropdownMenu.js +5 -2
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +4 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +37 -39
- package/cjs/CustomProvider/CustomProvider.d.ts +1 -108
- package/cjs/CustomProvider/CustomProvider.js +2 -5
- package/cjs/CustomProvider/index.d.ts +2 -2
- package/cjs/CustomProvider/index.js +0 -1
- package/cjs/DatePicker/DatePicker.js +25 -3
- package/cjs/DatePicker/types.d.ts +1 -0
- package/cjs/DateRangePicker/DateRangePicker.js +39 -20
- package/cjs/Disclosure/Disclosure.d.ts +2 -2
- package/cjs/Disclosure/Disclosure.js +6 -6
- package/cjs/InputPicker/InputPicker.js +4 -1
- package/cjs/Modal/ModalBody.js +18 -17
- package/cjs/MultiCascader/DropdownMenu.js +5 -2
- package/cjs/Navbar/NavbarDropdownMenu.js +16 -10
- package/cjs/Overlay/OverlayTrigger.d.ts +2 -2
- package/cjs/Picker/DropdownMenu.d.ts +2 -1
- package/cjs/Picker/DropdownMenu.js +38 -34
- package/cjs/Picker/PickerOverlay.d.ts +2 -2
- package/cjs/Picker/PickerToggle.js +4 -1
- package/cjs/Picker/PickerToggleTrigger.d.ts +2 -2
- package/cjs/Picker/PickerToggleTrigger.js +11 -10
- package/cjs/Picker/index.d.ts +3 -3
- package/cjs/Picker/types.d.ts +7 -5
- package/cjs/Picker/utils.d.ts +11 -12
- package/cjs/Picker/utils.js +4 -0
- package/cjs/SelectPicker/SelectPicker.d.ts +4 -5
- package/cjs/SelectPicker/SelectPicker.js +4 -1
- package/cjs/Tree/Tree.d.ts +2 -5
- package/cjs/TreePicker/TreePicker.js +35 -37
- package/cjs/TreePicker/test/TreePicker.test.js +14 -0
- package/cjs/Whisper/Whisper.d.ts +3 -3
- package/cjs/Whisper/Whisper.js +11 -10
- package/cjs/Windowing/AutoSizer.d.ts +25 -0
- package/cjs/Windowing/AutoSizer.js +103 -0
- package/cjs/Windowing/List.d.ts +45 -0
- package/cjs/Windowing/List.js +72 -0
- package/cjs/Windowing/index.d.ts +5 -0
- package/cjs/Windowing/index.js +19 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/toaster/ToastContainer.d.ts +2 -1
- package/cjs/toaster/ToastContainer.js +27 -26
- package/cjs/toaster/toaster.d.ts +1 -1
- package/cjs/toaster/toaster.js +43 -13
- package/cjs/toaster/useToaster.d.ts +1 -1
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +6 -1
- package/cjs/utils/render.d.ts +3 -0
- package/cjs/utils/render.js +49 -0
- package/cjs/utils/treeUtils.d.ts +2 -2
- package/cjs/utils/useUniqueId.js +10 -2
- package/dist/rsuite-rtl.css +20 -73
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +20 -73
- package/dist/rsuite.js +118 -377
- 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.LICENSE.txt +2 -0
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Calendar/MonthDropdown.d.ts +1 -0
- package/esm/Calendar/MonthDropdown.js +26 -41
- package/esm/Cascader/Cascader.d.ts +2 -2
- package/esm/Cascader/DropdownMenu.js +5 -2
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +4 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +37 -38
- package/esm/CustomProvider/CustomProvider.d.ts +1 -108
- package/esm/CustomProvider/CustomProvider.js +2 -4
- package/esm/CustomProvider/index.d.ts +2 -2
- package/esm/CustomProvider/index.js +2 -2
- package/esm/DatePicker/DatePicker.js +22 -3
- package/esm/DatePicker/types.d.ts +1 -0
- package/esm/DateRangePicker/DateRangePicker.js +39 -20
- package/esm/Disclosure/Disclosure.d.ts +2 -2
- package/esm/Disclosure/Disclosure.js +6 -6
- package/esm/InputPicker/InputPicker.js +4 -1
- package/esm/Modal/ModalBody.js +16 -17
- package/esm/MultiCascader/DropdownMenu.js +5 -2
- package/esm/Navbar/NavbarDropdownMenu.js +14 -8
- package/esm/Overlay/OverlayTrigger.d.ts +2 -2
- package/esm/Picker/DropdownMenu.d.ts +2 -1
- package/esm/Picker/DropdownMenu.js +38 -36
- package/esm/Picker/PickerOverlay.d.ts +2 -2
- package/esm/Picker/PickerToggle.js +4 -1
- package/esm/Picker/PickerToggleTrigger.d.ts +2 -2
- package/esm/Picker/PickerToggleTrigger.js +10 -11
- package/esm/Picker/index.d.ts +3 -3
- package/esm/Picker/types.d.ts +7 -5
- package/esm/Picker/utils.d.ts +11 -12
- package/esm/Picker/utils.js +4 -0
- package/esm/SelectPicker/SelectPicker.d.ts +4 -5
- package/esm/SelectPicker/SelectPicker.js +4 -1
- package/esm/Tree/Tree.d.ts +2 -5
- package/esm/TreePicker/TreePicker.js +34 -35
- package/esm/TreePicker/test/TreePicker.test.js +14 -0
- package/esm/Whisper/Whisper.d.ts +3 -3
- package/esm/Whisper/Whisper.js +10 -11
- package/esm/Windowing/AutoSizer.d.ts +25 -0
- package/esm/Windowing/AutoSizer.js +88 -0
- package/esm/Windowing/List.d.ts +45 -0
- package/esm/Windowing/List.js +58 -0
- package/esm/Windowing/index.d.ts +5 -0
- package/esm/Windowing/index.js +3 -0
- package/esm/index.d.ts +1 -0
- package/esm/toaster/ToastContainer.d.ts +2 -1
- package/esm/toaster/ToastContainer.js +28 -26
- package/esm/toaster/toaster.d.ts +1 -1
- package/esm/toaster/toaster.js +41 -13
- package/esm/toaster/useToaster.d.ts +1 -1
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/esm/utils/render.d.ts +3 -0
- package/esm/utils/render.js +37 -0
- package/esm/utils/treeUtils.d.ts +2 -2
- package/esm/utils/useUniqueId.js +7 -2
- package/package.json +5 -5
- package/styles/mixins/listbox.less +0 -5
- package/styles/variables.less +1 -0
- package/cjs/Picker/VirtualizedList.d.ts +0 -37
- package/cjs/Picker/VirtualizedList.js +0 -15
- package/esm/Picker/VirtualizedList.d.ts +0 -37
- package/esm/Picker/VirtualizedList.js +0 -4
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
import React, { useCallback } from 'react';
|
|
3
|
+
import React, { useCallback, useMemo } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import { AutoSizer,
|
|
5
|
+
import { AutoSizer, FixedSizeList } from '../Windowing';
|
|
6
6
|
import { DateUtils, useClassNames } from '../utils';
|
|
7
7
|
import MonthDropdownItem from './MonthDropdownItem';
|
|
8
8
|
import { useCalendarContext } from './CalendarContext';
|
|
9
9
|
var monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
10
|
-
/**
|
|
11
|
-
* Set the row height.
|
|
12
|
-
* Add 1px to the first and last lines.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
function getRowHeight(count) {
|
|
16
|
-
return function (_ref) {
|
|
17
|
-
var index = _ref.index;
|
|
18
|
-
|
|
19
|
-
if (index === 0 || count - 1 === index) {
|
|
20
|
-
return 75 + 1;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return 75;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
10
|
var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
28
11
|
var _props$as = props.as,
|
|
29
12
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
30
13
|
className = props.className,
|
|
31
14
|
_props$classPrefix = props.classPrefix,
|
|
32
15
|
classPrefix = _props$classPrefix === void 0 ? 'calendar-month-dropdown' : _props$classPrefix,
|
|
16
|
+
limitStartYear = props.limitStartYear,
|
|
33
17
|
_props$limitEndYear = props.limitEndYear,
|
|
34
18
|
limitEndYear = _props$limitEndYear === void 0 ? 5 : _props$limitEndYear,
|
|
35
19
|
show = props.show,
|
|
@@ -38,7 +22,7 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
38
22
|
_props$width = props.width,
|
|
39
23
|
defaultWidth = _props$width === void 0 ? 256 : _props$width,
|
|
40
24
|
disabledMonth = props.disabledMonth,
|
|
41
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "limitEndYear", "show", "height", "width", "disabledMonth"]);
|
|
25
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "limitStartYear", "limitEndYear", "show", "height", "width", "disabledMonth"]);
|
|
42
26
|
|
|
43
27
|
var _useCalendarContext = useCalendarContext(),
|
|
44
28
|
_useCalendarContext$d = _useCalendarContext.date,
|
|
@@ -49,9 +33,12 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
49
33
|
merge = _useClassNames.merge,
|
|
50
34
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
51
35
|
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
|
|
36
|
+
var thisYear = DateUtils.getYear(new Date());
|
|
37
|
+
var startYear = limitStartYear ? thisYear - limitStartYear : 1900;
|
|
38
|
+
var rowCount = useMemo(function () {
|
|
39
|
+
var endYear = thisYear + limitEndYear;
|
|
40
|
+
return endYear - startYear;
|
|
41
|
+
}, [limitEndYear, startYear, thisYear]);
|
|
55
42
|
var isMonthDisabled = useCallback(function (year, month) {
|
|
56
43
|
if (disabledMonth) {
|
|
57
44
|
var days = DateUtils.getDaysInMonth(new Date(year, month)); // If all dates in a month are disabled, disable the current month
|
|
@@ -68,26 +55,23 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
68
55
|
return false;
|
|
69
56
|
}, [disabledMonth]);
|
|
70
57
|
|
|
71
|
-
var rowRenderer = function rowRenderer(
|
|
72
|
-
var index =
|
|
73
|
-
|
|
74
|
-
style = _ref2.style;
|
|
58
|
+
var rowRenderer = function rowRenderer(_ref) {
|
|
59
|
+
var index = _ref.index,
|
|
60
|
+
style = _ref.style;
|
|
75
61
|
var selectedMonth = DateUtils.getMonth(date);
|
|
76
62
|
var selectedYear = DateUtils.getYear(date);
|
|
77
|
-
var year =
|
|
63
|
+
var year = startYear + index;
|
|
78
64
|
var isSelectedYear = year === selectedYear;
|
|
79
|
-
var count = getRowCount();
|
|
80
65
|
var titleClassName = prefix('year', {
|
|
81
66
|
'year-active': isSelectedYear
|
|
82
67
|
});
|
|
83
68
|
var rowClassName = merge(prefix('row'), {
|
|
84
69
|
'first-row': index === 0,
|
|
85
|
-
'last-row': index ===
|
|
70
|
+
'last-row': index === rowCount - 1
|
|
86
71
|
});
|
|
87
72
|
return /*#__PURE__*/React.createElement("div", {
|
|
88
73
|
className: rowClassName,
|
|
89
74
|
role: "row",
|
|
90
|
-
key: key,
|
|
91
75
|
style: style
|
|
92
76
|
}, /*#__PURE__*/React.createElement("div", {
|
|
93
77
|
className: titleClassName,
|
|
@@ -106,10 +90,12 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
106
90
|
})));
|
|
107
91
|
};
|
|
108
92
|
|
|
109
|
-
var count = getRowCount();
|
|
110
93
|
var classes = merge(className, withClassPrefix(), {
|
|
111
94
|
show: show
|
|
112
95
|
});
|
|
96
|
+
var itemSize = 75;
|
|
97
|
+
var initialItemIndex = DateUtils.getYear(date) - startYear;
|
|
98
|
+
var initialScrollOffset = itemSize * initialItemIndex;
|
|
113
99
|
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
114
100
|
role: "menu"
|
|
115
101
|
}, rest, {
|
|
@@ -122,18 +108,17 @@ var MonthDropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
122
108
|
}, show && /*#__PURE__*/React.createElement(AutoSizer, {
|
|
123
109
|
defaultHeight: defaultHeight,
|
|
124
110
|
defaultWidth: defaultWidth
|
|
125
|
-
}, function (
|
|
126
|
-
var height =
|
|
127
|
-
width =
|
|
128
|
-
return /*#__PURE__*/React.createElement(
|
|
111
|
+
}, function (_ref2) {
|
|
112
|
+
var height = _ref2.height,
|
|
113
|
+
width = _ref2.width;
|
|
114
|
+
return /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
129
115
|
className: prefix('row-wrapper'),
|
|
130
116
|
width: width || defaultWidth,
|
|
131
117
|
height: height || defaultHeight,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
});
|
|
118
|
+
itemSize: itemSize,
|
|
119
|
+
itemCount: rowCount,
|
|
120
|
+
initialScrollOffset: initialScrollOffset
|
|
121
|
+
}, rowRenderer);
|
|
137
122
|
}))));
|
|
138
123
|
});
|
|
139
124
|
MonthDropdown.displayName = 'MonthDropdown';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
-
import {
|
|
3
|
+
import { PickerHandle } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
export declare type ValueType = number | string;
|
|
6
6
|
export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T>> {
|
|
@@ -33,7 +33,7 @@ export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T |
|
|
|
33
33
|
}
|
|
34
34
|
export interface CascaderComponent {
|
|
35
35
|
<T>(props: CascaderProps<T> & {
|
|
36
|
-
ref?: React.Ref<
|
|
36
|
+
ref?: React.Ref<PickerHandle>;
|
|
37
37
|
}): JSX.Element | null;
|
|
38
38
|
displayName?: string;
|
|
39
39
|
propTypes?: React.WeakValidationMap<CascaderProps<any>>;
|
|
@@ -45,7 +45,10 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
45
45
|
|
|
46
46
|
var classes = merge(className, prefix('items'));
|
|
47
47
|
var rootRef = useRef();
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
var _useCustom = useCustom('DropdownMenu'),
|
|
50
|
+
rtl = _useCustom.rtl;
|
|
51
|
+
|
|
49
52
|
useEffect(function () {
|
|
50
53
|
var _rootRef$current;
|
|
51
54
|
|
|
@@ -96,7 +99,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
96
99
|
}); // Use `value` in keys when If `value` is string or number
|
|
97
100
|
|
|
98
101
|
var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
|
|
99
|
-
var Icon = node.loading ? SpinnerIcon : rtl ?
|
|
102
|
+
var Icon = node.loading ? SpinnerIcon : rtl ? AngleLeftIcon : AngleRightIcon;
|
|
100
103
|
return /*#__PURE__*/React.createElement(DropdownMenuItem, {
|
|
101
104
|
classPrefix: "picker-cascader-menu-item",
|
|
102
105
|
as: 'li',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { Ref } from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
-
import {
|
|
3
|
+
import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
import type { MultipleSelectProps } from '../SelectPicker';
|
|
6
6
|
export declare type ValueType = (number | string)[];
|
|
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
|
|
|
12
12
|
}
|
|
13
13
|
export interface CheckPickerComponent {
|
|
14
14
|
<T>(props: CheckPickerProps<T> & {
|
|
15
|
-
ref?: Ref<
|
|
15
|
+
ref?: Ref<PickerHandle>;
|
|
16
16
|
}): JSX.Element | null;
|
|
17
17
|
displayName?: string;
|
|
18
18
|
propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
|
|
@@ -81,6 +81,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
81
81
|
var targetRef = useRef(null);
|
|
82
82
|
var overlayRef = useRef(null);
|
|
83
83
|
var searchInputRef = useRef(null);
|
|
84
|
+
var listRef = useRef(null);
|
|
84
85
|
|
|
85
86
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
86
87
|
locale = _useCustom.locale;
|
|
@@ -235,7 +236,8 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
235
236
|
usePublicMethods(ref, {
|
|
236
237
|
triggerRef: triggerRef,
|
|
237
238
|
overlayRef: overlayRef,
|
|
238
|
-
targetRef: targetRef
|
|
239
|
+
targetRef: targetRef,
|
|
240
|
+
listRef: listRef
|
|
239
241
|
});
|
|
240
242
|
var selectedItems = data.filter(function (item) {
|
|
241
243
|
return value === null || value === void 0 ? void 0 : value.some(function (val) {
|
|
@@ -308,6 +310,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
308
310
|
var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
309
311
|
id: id ? id + "-listbox" : undefined,
|
|
310
312
|
listProps: listProps,
|
|
313
|
+
listRef: listRef,
|
|
311
314
|
disabledItemValues: disabledItemValues,
|
|
312
315
|
valueKey: valueKey,
|
|
313
316
|
labelKey: labelKey,
|
|
@@ -9,7 +9,7 @@ import _isNil from "lodash/isNil";
|
|
|
9
9
|
import React, { useState, useRef, useEffect, useCallback, useContext, useMemo } from 'react';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
11
|
import classNames from 'classnames';
|
|
12
|
-
import { List, AutoSizer } from '../
|
|
12
|
+
import { List, AutoSizer } from '../Windowing';
|
|
13
13
|
import CheckTreeNode from './CheckTreeNode';
|
|
14
14
|
import TreeContext from '../Tree/TreeContext';
|
|
15
15
|
import { getTreeNodeIndent } from '../utils/treeUtils';
|
|
@@ -18,6 +18,11 @@ import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar
|
|
|
18
18
|
import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
|
|
19
19
|
import { hasVisibleChildren, getExpandWhenSearching, useTreeSearch, useTreeNodeRefs, getDefaultExpandItemValues, useFlattenTreeData, focusNextItem, getFocusableItems, focusPreviousItem, toggleExpand, getActiveItem, useGetTreeNodeChildren, focusToActiveTreeNode, focusTreeNode, leftArrowHandler, rightArrowHandler, isSearching } from '../utils/treeUtils';
|
|
20
20
|
var emptyArray = [];
|
|
21
|
+
|
|
22
|
+
var itemSize = function itemSize() {
|
|
23
|
+
return 36;
|
|
24
|
+
};
|
|
25
|
+
|
|
21
26
|
var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
22
27
|
var _props$as = props.as,
|
|
23
28
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -601,36 +606,33 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
601
606
|
}, nodeProps));
|
|
602
607
|
};
|
|
603
608
|
|
|
604
|
-
var renderVirtualListNode = function renderVirtualListNode(
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
var expand = getExpandWhenSearching(searchKeywordState, expandItemValues.includes(node[valueKey]));
|
|
614
|
-
|
|
615
|
-
var nodeProps = _extends({}, getTreeNodeProps(_extends({}, node, {
|
|
616
|
-
/**
|
|
617
|
-
* spread operator don't copy unenumerable properties
|
|
618
|
-
* so we need to copy them manually
|
|
619
|
-
*/
|
|
620
|
-
parent: node.parent,
|
|
621
|
-
expand: expand
|
|
622
|
-
}), layer), {
|
|
623
|
-
hasChildren: node.hasChildren
|
|
624
|
-
});
|
|
609
|
+
var renderVirtualListNode = function renderVirtualListNode(_ref3) {
|
|
610
|
+
var index = _ref3.index,
|
|
611
|
+
style = _ref3.style,
|
|
612
|
+
data = _ref3.data;
|
|
613
|
+
var node = data[index];
|
|
614
|
+
var layer = node.layer,
|
|
615
|
+
refKey = node.refKey,
|
|
616
|
+
visible = node.visible;
|
|
617
|
+
var expand = getExpandWhenSearching(searchKeywordState, expandItemValues.includes(node[valueKey]));
|
|
625
618
|
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
}
|
|
619
|
+
var nodeProps = _extends({}, getTreeNodeProps(_extends({}, node, {
|
|
620
|
+
/**
|
|
621
|
+
* spread operator don't copy unenumerable properties
|
|
622
|
+
* so we need to copy them manually
|
|
623
|
+
*/
|
|
624
|
+
parent: node.parent,
|
|
625
|
+
expand: expand
|
|
626
|
+
}), layer), {
|
|
627
|
+
hasChildren: node.hasChildren
|
|
628
|
+
});
|
|
629
|
+
|
|
630
|
+
return visible && /*#__PURE__*/React.createElement(CheckTreeNode, _extends({
|
|
631
|
+
style: style,
|
|
632
|
+
ref: function ref(_ref4) {
|
|
633
|
+
return saveTreeNodeRef(_ref4, refKey);
|
|
634
|
+
}
|
|
635
|
+
}, nodeProps));
|
|
634
636
|
};
|
|
635
637
|
|
|
636
638
|
var renderCheckTree = function renderCheckTree() {
|
|
@@ -669,17 +671,14 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
669
671
|
height: 'auto'
|
|
670
672
|
}
|
|
671
673
|
}, function (_ref5) {
|
|
672
|
-
var height = _ref5.height
|
|
673
|
-
width = _ref5.width;
|
|
674
|
+
var height = _ref5.height;
|
|
674
675
|
return /*#__PURE__*/React.createElement(List, _extends({
|
|
675
676
|
ref: listRef,
|
|
676
|
-
width: width,
|
|
677
677
|
height: height,
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
}, listProps));
|
|
678
|
+
itemSize: itemSize,
|
|
679
|
+
itemCount: formattedNodes.length,
|
|
680
|
+
itemData: formattedNodes
|
|
681
|
+
}, listProps), renderVirtualListNode);
|
|
683
682
|
}) : formattedNodes));
|
|
684
683
|
};
|
|
685
684
|
|
|
@@ -156,113 +156,6 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
156
156
|
off: string;
|
|
157
157
|
} | undefined;
|
|
158
158
|
}>>;
|
|
159
|
-
declare const Consumer: React.Consumer<CustomProviderProps<{
|
|
160
|
-
common?: {
|
|
161
|
-
loading: string;
|
|
162
|
-
emptyMessage: string;
|
|
163
|
-
} | undefined;
|
|
164
|
-
Plaintext?: {
|
|
165
|
-
unfilled: string;
|
|
166
|
-
notSelected: string;
|
|
167
|
-
notUploaded: string;
|
|
168
|
-
} | undefined;
|
|
169
|
-
Pagination?: {
|
|
170
|
-
more: string;
|
|
171
|
-
prev: string;
|
|
172
|
-
next: string;
|
|
173
|
-
first: string;
|
|
174
|
-
last: string;
|
|
175
|
-
limit: string;
|
|
176
|
-
total: string;
|
|
177
|
-
skip: string;
|
|
178
|
-
} | undefined;
|
|
179
|
-
Calendar?: {
|
|
180
|
-
sunday: string;
|
|
181
|
-
monday: string;
|
|
182
|
-
tuesday: string;
|
|
183
|
-
wednesday: string;
|
|
184
|
-
thursday: string;
|
|
185
|
-
friday: string;
|
|
186
|
-
saturday: string;
|
|
187
|
-
ok: string;
|
|
188
|
-
today: string;
|
|
189
|
-
yesterday: string;
|
|
190
|
-
hours: string;
|
|
191
|
-
minutes: string;
|
|
192
|
-
seconds: string;
|
|
193
|
-
formattedMonthPattern: string;
|
|
194
|
-
formattedDayPattern: string;
|
|
195
|
-
dateLocale: any;
|
|
196
|
-
} | undefined;
|
|
197
|
-
DatePicker?: {
|
|
198
|
-
sunday: string;
|
|
199
|
-
monday: string;
|
|
200
|
-
tuesday: string;
|
|
201
|
-
wednesday: string;
|
|
202
|
-
thursday: string;
|
|
203
|
-
friday: string;
|
|
204
|
-
saturday: string;
|
|
205
|
-
ok: string;
|
|
206
|
-
today: string;
|
|
207
|
-
yesterday: string;
|
|
208
|
-
hours: string;
|
|
209
|
-
minutes: string;
|
|
210
|
-
seconds: string;
|
|
211
|
-
formattedMonthPattern: string;
|
|
212
|
-
formattedDayPattern: string;
|
|
213
|
-
dateLocale: any;
|
|
214
|
-
} | undefined;
|
|
215
|
-
DateRangePicker?: {
|
|
216
|
-
last7Days: string;
|
|
217
|
-
sunday: string;
|
|
218
|
-
monday: string;
|
|
219
|
-
tuesday: string;
|
|
220
|
-
wednesday: string;
|
|
221
|
-
thursday: string;
|
|
222
|
-
friday: string;
|
|
223
|
-
saturday: string;
|
|
224
|
-
ok: string;
|
|
225
|
-
today: string;
|
|
226
|
-
yesterday: string;
|
|
227
|
-
hours: string;
|
|
228
|
-
minutes: string;
|
|
229
|
-
seconds: string;
|
|
230
|
-
formattedMonthPattern: string;
|
|
231
|
-
formattedDayPattern: string;
|
|
232
|
-
dateLocale: any;
|
|
233
|
-
} | undefined;
|
|
234
|
-
Picker?: {
|
|
235
|
-
noResultsText: string;
|
|
236
|
-
placeholder: string;
|
|
237
|
-
searchPlaceholder: string;
|
|
238
|
-
checkAll: string;
|
|
239
|
-
} | undefined;
|
|
240
|
-
InputPicker?: {
|
|
241
|
-
newItem: string;
|
|
242
|
-
/**
|
|
243
|
-
* A Map of toast containers
|
|
244
|
-
*/
|
|
245
|
-
createOption: string;
|
|
246
|
-
} | undefined;
|
|
247
|
-
Uploader?: {
|
|
248
|
-
inited: string;
|
|
249
|
-
progress: string;
|
|
250
|
-
error: string;
|
|
251
|
-
complete: string;
|
|
252
|
-
emptyFile: string;
|
|
253
|
-
upload: string;
|
|
254
|
-
} | undefined;
|
|
255
|
-
CloseButton?: {
|
|
256
|
-
closeLabel: string;
|
|
257
|
-
} | undefined;
|
|
258
|
-
Breadcrumb?: {
|
|
259
|
-
expandText: string;
|
|
260
|
-
} | undefined;
|
|
261
|
-
Toggle?: {
|
|
262
|
-
on: string;
|
|
263
|
-
off: string;
|
|
264
|
-
} | undefined;
|
|
265
|
-
}>>;
|
|
266
159
|
declare const CustomProvider: (props: Omit<CustomProviderProps, 'toasters'>) => JSX.Element;
|
|
267
|
-
export { CustomContext
|
|
160
|
+
export { CustomContext };
|
|
268
161
|
export default CustomProvider;
|
|
@@ -6,8 +6,6 @@ import { addClass, removeClass, canUseDOM } from '../DOMHelper';
|
|
|
6
6
|
import ToastContainer, { toastPlacements } from '../toaster/ToastContainer';
|
|
7
7
|
import { usePortal } from '../utils';
|
|
8
8
|
var CustomContext = /*#__PURE__*/React.createContext({});
|
|
9
|
-
var Consumer = CustomContext.Consumer,
|
|
10
|
-
Provider = CustomContext.Provider;
|
|
11
9
|
var themes = ['light', 'dark', 'high-contrast'];
|
|
12
10
|
|
|
13
11
|
var CustomProvider = function CustomProvider(props) {
|
|
@@ -44,7 +42,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
44
42
|
});
|
|
45
43
|
}
|
|
46
44
|
}, [classPrefix, theme]);
|
|
47
|
-
return /*#__PURE__*/React.createElement(Provider, {
|
|
45
|
+
return /*#__PURE__*/React.createElement(CustomContext.Provider, {
|
|
48
46
|
value: value
|
|
49
47
|
}, children, /*#__PURE__*/React.createElement(Portal, null, /*#__PURE__*/React.createElement("div", {
|
|
50
48
|
className: "rs-toast-provider"
|
|
@@ -59,5 +57,5 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
59
57
|
}))));
|
|
60
58
|
};
|
|
61
59
|
|
|
62
|
-
export { CustomContext
|
|
60
|
+
export { CustomContext };
|
|
63
61
|
export default CustomProvider;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import CustomProvider, { CustomContext
|
|
1
|
+
import CustomProvider, { CustomContext } from './CustomProvider';
|
|
2
2
|
import FormattedDate from './FormattedDate';
|
|
3
|
-
export { CustomContext,
|
|
3
|
+
export { CustomContext, FormattedDate };
|
|
4
4
|
export type { CustomProviderProps } from './CustomProvider';
|
|
5
5
|
export default CustomProvider;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import CustomProvider, { CustomContext
|
|
1
|
+
import CustomProvider, { CustomContext } from './CustomProvider';
|
|
2
2
|
import FormattedDate from './FormattedDate';
|
|
3
|
-
export { CustomContext,
|
|
3
|
+
export { CustomContext, FormattedDate };
|
|
4
4
|
export default CustomProvider;
|
|
@@ -10,6 +10,8 @@ import IconClockO from '@rsuite/icons/legacy/ClockO';
|
|
|
10
10
|
import CalendarContainer from '../Calendar/CalendarContainer';
|
|
11
11
|
import useCalendarDate from '../Calendar/useCalendarDate';
|
|
12
12
|
import Toolbar from './Toolbar';
|
|
13
|
+
import Stack from '../Stack';
|
|
14
|
+
import PredefinedRanges from './PredefinedRanges';
|
|
13
15
|
import { composeFunctions, createChainedFunction, DateUtils, mergeRefs, useClassNames, useControlled, useCustom } from '../utils';
|
|
14
16
|
import { PickerOverlay, pickerPropTypes, PickerToggle, PickerToggleTrigger, pickTriggerPropKeys, omitTriggerPropKeys, usePickerClassName, usePublicMethods, useToggleKeyDownEvent } from '../Picker';
|
|
15
17
|
import { OverlayCloseCause } from '../Overlay/OverlayTrigger';
|
|
@@ -334,6 +336,12 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
334
336
|
onChangePageTime: handleChangePageTime,
|
|
335
337
|
onToggleMeridian: handleToggleMeridian
|
|
336
338
|
}));
|
|
339
|
+
var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
340
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
341
|
+
})) || [];
|
|
342
|
+
var bottomRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
343
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
344
|
+
})) || [];
|
|
337
345
|
|
|
338
346
|
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
339
347
|
var left = positionProps.left,
|
|
@@ -350,16 +358,27 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
350
358
|
ref: mergeRefs(overlayRef, speakerRef),
|
|
351
359
|
style: styles,
|
|
352
360
|
target: triggerRef
|
|
353
|
-
},
|
|
361
|
+
}, /*#__PURE__*/React.createElement(Stack, {
|
|
362
|
+
alignItems: "flex-start"
|
|
363
|
+
}, sideRanges.length > 0 && /*#__PURE__*/React.createElement(PredefinedRanges, {
|
|
364
|
+
direction: "column",
|
|
365
|
+
spacing: 0,
|
|
366
|
+
className: prefix('date-predefined'),
|
|
367
|
+
ranges: sideRanges,
|
|
368
|
+
calendarDate: calendarDate,
|
|
369
|
+
locale: locale,
|
|
370
|
+
disabledShortcut: disabledToolbarHandle,
|
|
371
|
+
onClickShortcut: handleShortcutPageDate
|
|
372
|
+
}), /*#__PURE__*/React.createElement(React.Fragment, null, calendar, /*#__PURE__*/React.createElement(Toolbar, {
|
|
354
373
|
locale: locale,
|
|
355
|
-
ranges:
|
|
374
|
+
ranges: bottomRanges,
|
|
356
375
|
calendarDate: calendarDate,
|
|
357
376
|
disabledOkBtn: disabledToolbarHandle,
|
|
358
377
|
disabledShortcut: disabledToolbarHandle,
|
|
359
378
|
onClickShortcut: handleShortcutPageDate,
|
|
360
379
|
onOk: handleOK,
|
|
361
380
|
hideOkBtn: oneTap
|
|
362
|
-
}));
|
|
381
|
+
}))));
|
|
363
382
|
};
|
|
364
383
|
|
|
365
384
|
var hasValue = !!value;
|
|
@@ -134,27 +134,34 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
134
134
|
|
|
135
135
|
var selectRangeValueRef = useRef(null);
|
|
136
136
|
/**
|
|
137
|
-
*
|
|
138
|
-
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
137
|
+
* Get the time on the second calendar as the end of the date range.
|
|
139
138
|
*/
|
|
140
139
|
|
|
141
|
-
var
|
|
142
|
-
var
|
|
143
|
-
var shouldRenderTime = DateUtils.shouldRenderTime,
|
|
144
|
-
getHours = DateUtils.getHours,
|
|
140
|
+
var getCalendarEndDatetime = useCallback(function (date) {
|
|
141
|
+
var getHours = DateUtils.getHours,
|
|
145
142
|
getMinutes = DateUtils.getMinutes,
|
|
146
143
|
getSeconds = DateUtils.getSeconds,
|
|
147
144
|
set = DateUtils.set;
|
|
145
|
+
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
|
|
146
|
+
return set(date, {
|
|
147
|
+
hours: getHours(calendarEndDate),
|
|
148
|
+
minutes: getMinutes(calendarEndDate),
|
|
149
|
+
seconds: getSeconds(calendarEndDate)
|
|
150
|
+
});
|
|
151
|
+
}, [calendarDate, defaultCalendarValue]);
|
|
152
|
+
/**
|
|
153
|
+
* Call this function to update the calendar panel rendering benchmark value.
|
|
154
|
+
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
155
|
+
*/
|
|
148
156
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
157
|
+
var updateCalendarDateRange = useCallback(function (selectedDate, calendarKey) {
|
|
158
|
+
var nextValue = selectedDate;
|
|
159
|
+
var shouldRenderTime = DateUtils.shouldRenderTime;
|
|
152
160
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
});
|
|
161
|
+
if (shouldRenderTime(formatStr) && calendarKey === undefined && selectedDate !== null && selectedDate !== void 0 && selectedDate.length) {
|
|
162
|
+
var _startDate = selectedDate[0];
|
|
163
|
+
|
|
164
|
+
var _endDate = getCalendarEndDatetime(addMonths(_startDate, 1));
|
|
158
165
|
|
|
159
166
|
nextValue = [_startDate, _endDate];
|
|
160
167
|
}
|
|
@@ -163,7 +170,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
163
170
|
value: nextValue,
|
|
164
171
|
calendarKey: calendarKey
|
|
165
172
|
}));
|
|
166
|
-
}, [
|
|
173
|
+
}, [getCalendarEndDatetime, formatStr]); // if valueProp changed then update selectValue/hoverValue
|
|
167
174
|
|
|
168
175
|
useEffect(function () {
|
|
169
176
|
setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
|
|
@@ -327,19 +334,31 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
327
334
|
nextSelectDates = hoverRangeValue;
|
|
328
335
|
selectRangeValueRef.current = hoverRangeValue;
|
|
329
336
|
}
|
|
330
|
-
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
var shouldRenderTime = DateUtils.shouldRenderTime,
|
|
340
|
+
isAfter = DateUtils.isAfter;
|
|
341
|
+
|
|
342
|
+
if (nextSelectDates.length === 2) {
|
|
343
|
+
// If user have completed the selection, then sort the selected dates.
|
|
344
|
+
if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
|
|
345
|
+
nextSelectDates.reverse();
|
|
346
|
+
}
|
|
331
347
|
|
|
348
|
+
if (shouldRenderTime(formatStr)) {
|
|
349
|
+
nextSelectDates[1] = getCalendarEndDatetime(nextSelectDates[1]);
|
|
350
|
+
}
|
|
332
351
|
|
|
333
|
-
|
|
334
|
-
|
|
352
|
+
setHoverDateRange(nextSelectDates);
|
|
353
|
+
} else {
|
|
354
|
+
setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);
|
|
335
355
|
}
|
|
336
356
|
|
|
337
|
-
setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);
|
|
338
357
|
setSelectedDates(nextSelectDates);
|
|
339
358
|
updateCalendarDateRange(nextSelectDates);
|
|
340
359
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
341
360
|
hasDoneSelect.current = !hasDoneSelect.current;
|
|
342
|
-
}, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
361
|
+
}, [formatStr, getCalendarEndDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
343
362
|
/**
|
|
344
363
|
* If `selectValue` changed, there will be the following effects.
|
|
345
364
|
* 1. Check if the selection is completed.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import DisclosureButton from './DisclosureButton';
|
|
3
3
|
import DisclosureContent from './DisclosureContent';
|
|
4
|
-
export declare type DisclosureTrigger = 'click' | '
|
|
5
|
-
export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, '
|
|
4
|
+
export declare type DisclosureTrigger = 'click' | 'hover';
|
|
5
|
+
export interface DisclosureRenderProps extends Pick<React.HTMLAttributes<HTMLElement>, 'onMouseEnter' | 'onMouseLeave'> {
|
|
6
6
|
open: boolean;
|
|
7
7
|
}
|
|
8
8
|
export interface DisclosureProps {
|