rsuite 5.49.0 → 5.51.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 +24 -0
- package/Cascader/styles/index.less +4 -4
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Form/styles/mixin.less +1 -2
- package/InputGroup/styles/index.less +0 -14
- package/InputPicker/styles/index.less +1 -1
- package/Picker/styles/index.less +33 -26
- package/Picker/styles/mixin.less +20 -16
- package/README.md +4 -4
- package/TagInput/styles/index.less +2 -2
- package/TagPicker/styles/index.less +5 -1
- package/TreePicker/styles/index.less +2 -2
- package/cjs/@types/common.d.ts +8 -0
- package/cjs/AutoComplete/AutoComplete.js +39 -37
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +58 -59
- package/cjs/Cascader/DropdownMenu.d.ts +3 -20
- package/cjs/Cascader/DropdownMenu.js +48 -48
- package/cjs/Cascader/TreeView.d.ts +24 -0
- package/cjs/Cascader/TreeView.js +174 -0
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +42 -44
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +7 -10
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -202
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/Form/Form.d.ts +14 -0
- package/cjs/Form/Form.js +39 -30
- package/cjs/Form/FormContext.d.ts +1 -0
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +40 -17
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +108 -92
- package/cjs/InputPicker/InputSearch.js +3 -15
- package/cjs/InputPicker/TagList.d.ts +3 -0
- package/cjs/InputPicker/TagList.js +29 -0
- package/cjs/InputPicker/TextBox.d.ts +18 -0
- package/cjs/InputPicker/TextBox.js +48 -0
- package/cjs/MultiCascader/MultiCascader.js +53 -52
- package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
- package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
- package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
- package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
- package/cjs/Picker/ListItemGroup.d.ts +6 -0
- package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/cjs/Picker/Listbox.d.ts +35 -0
- package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +63 -181
- package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
- package/cjs/Picker/PickerToggleTrigger.js +21 -5
- package/cjs/Picker/SearchBar.js +7 -9
- package/cjs/Picker/TreeView.d.ts +7 -0
- package/cjs/Picker/TreeView.js +31 -0
- package/cjs/Picker/hooks/index.d.ts +6 -0
- package/cjs/Picker/hooks/index.js +18 -0
- package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
- package/cjs/Picker/hooks/useCombobox.js +22 -0
- package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
- package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/cjs/Picker/hooks/usePickerClassName.js +39 -0
- package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
- package/cjs/Picker/hooks/useSearch.d.ts +18 -0
- package/cjs/Picker/hooks/useSearch.js +57 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
- package/cjs/Picker/index.d.ts +9 -5
- package/cjs/Picker/index.js +32 -16
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -100
- package/cjs/Picker/utils.js +1 -473
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +47 -50
- package/cjs/TagInput/index.js +4 -0
- package/cjs/TreePicker/TreeNode.d.ts +2 -2
- package/cjs/TreePicker/TreeNode.js +22 -56
- package/cjs/TreePicker/TreePicker.js +91 -95
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +201 -186
- 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 +201 -186
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +201 -186
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +201 -186
- package/dist/rsuite.js +235 -104
- 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/@types/common.d.ts +8 -0
- package/esm/AutoComplete/AutoComplete.js +42 -40
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +61 -62
- package/esm/Cascader/DropdownMenu.d.ts +3 -20
- package/esm/Cascader/DropdownMenu.js +50 -49
- package/esm/Cascader/TreeView.d.ts +24 -0
- package/esm/Cascader/TreeView.js +167 -0
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +45 -47
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +5 -8
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -204
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/Form/Form.d.ts +14 -0
- package/esm/Form/Form.js +41 -32
- package/esm/Form/FormContext.d.ts +1 -0
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +41 -18
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +110 -94
- package/esm/InputPicker/InputSearch.js +4 -15
- package/esm/InputPicker/TagList.d.ts +3 -0
- package/esm/InputPicker/TagList.js +23 -0
- package/esm/InputPicker/TextBox.d.ts +18 -0
- package/esm/InputPicker/TextBox.js +42 -0
- package/esm/MultiCascader/MultiCascader.js +56 -55
- package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
- package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
- package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
- package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
- package/esm/Picker/ListItemGroup.d.ts +6 -0
- package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/esm/Picker/Listbox.d.ts +35 -0
- package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +65 -183
- package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
- package/esm/Picker/PickerToggleTrigger.js +20 -5
- package/esm/Picker/SearchBar.js +8 -9
- package/esm/Picker/TreeView.d.ts +7 -0
- package/esm/Picker/TreeView.js +25 -0
- package/esm/Picker/hooks/index.d.ts +6 -0
- package/esm/Picker/hooks/index.js +7 -0
- package/esm/Picker/hooks/useCombobox.d.ts +7 -0
- package/esm/Picker/hooks/useCombobox.js +17 -0
- package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/esm/Picker/hooks/useFocusItemValue.js +240 -0
- package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/esm/Picker/hooks/usePickerClassName.js +33 -0
- package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
- package/esm/Picker/hooks/useSearch.d.ts +18 -0
- package/esm/Picker/hooks/useSearch.js +51 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
- package/esm/Picker/index.d.ts +9 -5
- package/esm/Picker/index.js +9 -5
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -100
- package/esm/Picker/utils.js +2 -467
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +50 -53
- package/esm/TagInput/index.js +4 -0
- package/esm/TreePicker/TreeNode.d.ts +2 -2
- package/esm/TreePicker/TreeNode.js +24 -58
- package/esm/TreePicker/TreePicker.js +94 -98
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- package/styles/variables.less +1 -3
- package/cjs/Picker/DropdownMenu.d.ts +0 -59
- package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
- package/esm/Picker/DropdownMenu.d.ts +0 -59
- package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
package/esm/@types/common.d.ts
CHANGED
|
@@ -77,6 +77,14 @@ export interface PickerBaseProps<LocaleType = any> extends WithAsProps, Animatio
|
|
|
77
77
|
onOpen?: () => void;
|
|
78
78
|
/** Called when Modal is closed */
|
|
79
79
|
onClose?: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Called when the component is focused.
|
|
82
|
+
*/
|
|
83
|
+
onFocus?: React.FocusEventHandler<any>;
|
|
84
|
+
/**
|
|
85
|
+
* Called when the component is blurred.
|
|
86
|
+
*/
|
|
87
|
+
onBlur?: React.FocusEventHandler<any>;
|
|
80
88
|
/** Custom render extra footer */
|
|
81
89
|
renderExtraFooter?: () => React.ReactNode;
|
|
82
90
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import React, { useState
|
|
4
|
+
import React, { useState } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import pick from 'lodash/pick';
|
|
7
7
|
import omit from 'lodash/omit';
|
|
8
|
-
import
|
|
9
|
-
import { useClassNames, useControlled, PLACEMENT, mergeRefs, useIsMounted, partitionHTMLProps } from '../utils';
|
|
8
|
+
import { useClassNames, useControlled, useIsMounted, useEventCallback, PLACEMENT, mergeRefs, partitionHTMLProps } from '../utils';
|
|
10
9
|
import { animationPropTypes } from '../Animation/utils';
|
|
11
|
-
import { PickerToggleTrigger, onMenuKeyDown,
|
|
10
|
+
import { PickerToggleTrigger, onMenuKeyDown, Listbox, ListItem, PickerPopup, useFocusItemValue, usePickerRef, pickTriggerPropKeys } from '../Picker';
|
|
12
11
|
import { transformData, shouldDisplay } from './utils';
|
|
13
12
|
import Plaintext from '../Plaintext';
|
|
13
|
+
import Combobox from './Combobox';
|
|
14
14
|
/**
|
|
15
15
|
* Autocomplete function of input field.
|
|
16
16
|
* @see https://rsuitejs.com/components/auto-complete
|
|
@@ -63,22 +63,26 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
63
63
|
setFocus = _useState[1];
|
|
64
64
|
var items = (datalist === null || datalist === void 0 ? void 0 : datalist.filter(shouldDisplay(filterBy, value))) || [];
|
|
65
65
|
var hasItems = items.length > 0;
|
|
66
|
-
var
|
|
66
|
+
var _usePickerRef = usePickerRef(ref),
|
|
67
|
+
trigger = _usePickerRef.trigger,
|
|
68
|
+
overlay = _usePickerRef.overlay,
|
|
69
|
+
root = _usePickerRef.root;
|
|
67
70
|
var isMounted = useIsMounted();
|
|
68
71
|
|
|
69
72
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
70
73
|
var _useFocusItemValue = useFocusItemValue(value, {
|
|
71
74
|
data: datalist,
|
|
75
|
+
focusToOption: false,
|
|
72
76
|
callback: onMenuFocus,
|
|
73
77
|
target: function target() {
|
|
74
|
-
return
|
|
78
|
+
return overlay.current;
|
|
75
79
|
}
|
|
76
80
|
}),
|
|
77
81
|
focusItemValue = _useFocusItemValue.focusItemValue,
|
|
78
82
|
setFocusItemValue = _useFocusItemValue.setFocusItemValue,
|
|
79
83
|
handleKeyDown = _useFocusItemValue.onKeyDown;
|
|
80
84
|
var handleKeyDownEvent = function handleKeyDownEvent(event) {
|
|
81
|
-
if (!
|
|
85
|
+
if (!overlay.current) {
|
|
82
86
|
return;
|
|
83
87
|
}
|
|
84
88
|
onMenuKeyDown(event, {
|
|
@@ -103,29 +107,29 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
103
107
|
}
|
|
104
108
|
handleClose();
|
|
105
109
|
};
|
|
106
|
-
var handleSelect =
|
|
110
|
+
var handleSelect = useEventCallback(function (item, event) {
|
|
107
111
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(item.value, item, event);
|
|
108
|
-
}
|
|
109
|
-
var handleChangeValue =
|
|
112
|
+
});
|
|
113
|
+
var handleChangeValue = useEventCallback(function (value, event) {
|
|
110
114
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
111
|
-
}
|
|
115
|
+
});
|
|
112
116
|
var handleChange = function handleChange(value, event) {
|
|
113
117
|
setFocusItemValue('');
|
|
114
118
|
setValue(value);
|
|
115
119
|
setFocus(true);
|
|
116
120
|
handleChangeValue(value, event);
|
|
117
121
|
};
|
|
118
|
-
var handleClose =
|
|
122
|
+
var handleClose = useEventCallback(function () {
|
|
119
123
|
if (isMounted()) {
|
|
120
124
|
setFocus(false);
|
|
121
125
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
122
126
|
}
|
|
123
|
-
}
|
|
124
|
-
var handleOpen =
|
|
127
|
+
});
|
|
128
|
+
var handleOpen = useEventCallback(function () {
|
|
125
129
|
setFocus(true);
|
|
126
130
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
127
|
-
}
|
|
128
|
-
var handleItemSelect =
|
|
131
|
+
});
|
|
132
|
+
var handleItemSelect = useEventCallback(function (nextItemValue, item, event) {
|
|
129
133
|
setValue(nextItemValue);
|
|
130
134
|
setFocusItemValue(nextItemValue);
|
|
131
135
|
handleSelect(item, event);
|
|
@@ -133,30 +137,25 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
133
137
|
handleChangeValue(nextItemValue, event);
|
|
134
138
|
}
|
|
135
139
|
handleClose();
|
|
136
|
-
}
|
|
137
|
-
var handleInputFocus =
|
|
140
|
+
});
|
|
141
|
+
var handleInputFocus = useEventCallback(function (event) {
|
|
138
142
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
139
143
|
handleOpen();
|
|
140
|
-
}
|
|
141
|
-
var handleInputBlur =
|
|
144
|
+
});
|
|
145
|
+
var handleInputBlur = useEventCallback(function (event) {
|
|
142
146
|
setTimeout(handleClose, 300);
|
|
143
147
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
144
|
-
}
|
|
148
|
+
});
|
|
145
149
|
var _useClassNames = useClassNames(classPrefix),
|
|
146
150
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
147
151
|
merge = _useClassNames.merge;
|
|
148
152
|
var classes = merge(className, withClassPrefix({
|
|
149
153
|
disabled: disabled
|
|
150
154
|
}));
|
|
151
|
-
var triggerRef = useRef(null);
|
|
152
155
|
var _partitionHTMLProps = partitionHTMLProps(omit(rest, pickTriggerPropKeys)),
|
|
153
156
|
htmlInputProps = _partitionHTMLProps[0],
|
|
154
157
|
restProps = _partitionHTMLProps[1];
|
|
155
|
-
|
|
156
|
-
triggerRef: triggerRef,
|
|
157
|
-
overlayRef: overlayRef
|
|
158
|
-
});
|
|
159
|
-
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
158
|
+
var renderPopup = function renderPopup(positionProps, speakerRef) {
|
|
160
159
|
var left = positionProps.left,
|
|
161
160
|
top = positionProps.top,
|
|
162
161
|
className = positionProps.className;
|
|
@@ -164,23 +163,22 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
164
163
|
left: left,
|
|
165
164
|
top: top
|
|
166
165
|
};
|
|
167
|
-
var menu = /*#__PURE__*/React.createElement(
|
|
168
|
-
id: id ? id + "-listbox" : undefined,
|
|
166
|
+
var menu = /*#__PURE__*/React.createElement(Listbox, {
|
|
169
167
|
classPrefix: "auto-complete-menu",
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
listItemClassPrefix: "auto-complete-item",
|
|
169
|
+
listItemAs: ListItem,
|
|
172
170
|
focusItemValue: focusItemValue,
|
|
173
171
|
onSelect: handleItemSelect,
|
|
174
172
|
renderMenuItem: renderMenuItem,
|
|
175
173
|
data: items,
|
|
176
174
|
className: menuClassName
|
|
177
175
|
});
|
|
178
|
-
return /*#__PURE__*/React.createElement(
|
|
179
|
-
ref: mergeRefs(
|
|
176
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
177
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
180
178
|
style: styles,
|
|
181
179
|
className: className,
|
|
182
180
|
onKeyDown: handleKeyDownEvent,
|
|
183
|
-
target:
|
|
181
|
+
target: trigger,
|
|
184
182
|
autoWidth: menuAutoWidth
|
|
185
183
|
}, renderMenu ? renderMenu(menu) : menu);
|
|
186
184
|
};
|
|
@@ -190,22 +188,26 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
190
188
|
localeKey: "unfilled"
|
|
191
189
|
}, typeof value === 'undefined' ? defaultValue : value);
|
|
192
190
|
}
|
|
191
|
+
var expanded = open || focus && hasItems;
|
|
193
192
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
194
|
-
|
|
193
|
+
id: id,
|
|
194
|
+
ref: trigger,
|
|
195
195
|
placement: placement,
|
|
196
196
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
197
197
|
trigger: ['click', 'focus'],
|
|
198
|
-
open:
|
|
199
|
-
speaker:
|
|
198
|
+
open: expanded,
|
|
199
|
+
speaker: renderPopup
|
|
200
200
|
}, /*#__PURE__*/React.createElement(Component, _extends({
|
|
201
201
|
className: classes,
|
|
202
|
-
style: style
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
style: style,
|
|
203
|
+
ref: root
|
|
204
|
+
}, restProps), /*#__PURE__*/React.createElement(Combobox, _extends({}, htmlInputProps, {
|
|
205
205
|
disabled: disabled,
|
|
206
206
|
value: value,
|
|
207
207
|
size: size,
|
|
208
208
|
readOnly: readOnly,
|
|
209
|
+
expanded: expanded,
|
|
210
|
+
focusItemValue: focusItemValue,
|
|
209
211
|
onBlur: handleInputBlur,
|
|
210
212
|
onFocus: handleInputFocus,
|
|
211
213
|
onChange: handleChange,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type InputProps } from '../Input';
|
|
3
|
+
interface ComboboxProps extends InputProps {
|
|
4
|
+
expanded?: boolean;
|
|
5
|
+
focusItemValue?: string | null;
|
|
6
|
+
}
|
|
7
|
+
declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
8
|
+
export default Combobox;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useCombobox } from '../Picker';
|
|
6
|
+
import Input from '../Input';
|
|
7
|
+
var Combobox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
8
|
+
var _useCombobox = useCombobox(),
|
|
9
|
+
id = _useCombobox.id,
|
|
10
|
+
popupType = _useCombobox.popupType;
|
|
11
|
+
var expanded = props.expanded,
|
|
12
|
+
focusItemValue = props.focusItemValue,
|
|
13
|
+
rest = _objectWithoutPropertiesLoose(props, ["expanded", "focusItemValue"]);
|
|
14
|
+
return /*#__PURE__*/React.createElement(Input, _extends({
|
|
15
|
+
role: "combobox",
|
|
16
|
+
"aria-autocomplete": "list",
|
|
17
|
+
"aria-haspopup": popupType,
|
|
18
|
+
"aria-expanded": expanded,
|
|
19
|
+
"aria-activedescendant": focusItemValue ? id + "-opt-" + focusItemValue : undefined,
|
|
20
|
+
autoComplete: "off",
|
|
21
|
+
id: id,
|
|
22
|
+
ref: ref
|
|
23
|
+
}, rest));
|
|
24
|
+
});
|
|
25
|
+
export default Combobox;
|
|
@@ -7,7 +7,11 @@ export interface CalendarProps extends WithAsProps {
|
|
|
7
7
|
value?: Date;
|
|
8
8
|
/** Default value */
|
|
9
9
|
defaultValue?: Date;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
12
|
+
*
|
|
13
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
14
|
+
*/
|
|
11
15
|
isoWeek?: boolean;
|
|
12
16
|
/** Display a compact calendar */
|
|
13
17
|
compact?: boolean;
|
|
@@ -32,7 +32,11 @@ export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivE
|
|
|
32
32
|
hideSeconds?: (second: number, date: Date) => boolean;
|
|
33
33
|
/** The value that mouse hover on in range selection */
|
|
34
34
|
hoverRangeValue?: [Date, Date];
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
37
|
+
*
|
|
38
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
39
|
+
*/
|
|
36
40
|
isoWeek?: boolean;
|
|
37
41
|
/** Limit showing how many years in the future */
|
|
38
42
|
limitEndYear?: number;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import React, {
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import pick from 'lodash/pick';
|
|
7
7
|
import MonthDropdown from './MonthDropdown';
|
|
8
8
|
import TimeDropdown from './TimeDropdown';
|
|
9
9
|
import CalendarBody from './CalendarBody';
|
|
10
10
|
import CalendarHeader from './CalendarHeader';
|
|
11
|
-
import { useClassNames } from '../utils';
|
|
11
|
+
import { useClassNames, useEventCallback } from '../utils';
|
|
12
12
|
import { disabledTime, addMonths, shouldRenderDate, shouldRenderTime, shouldRenderMonth, isSameMonth, calendarOnlyProps, omitHideDisabledProps, isValid } from '../utils/dateUtils';
|
|
13
13
|
import { CalendarProvider } from './CalendarContext';
|
|
14
14
|
import useCalendarState, { CalendarState } from './useCalendarState';
|
|
@@ -62,42 +62,42 @@ var CalendarContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
62
62
|
var calendarDate = useMemo(function () {
|
|
63
63
|
return isValid(calendarDateProp) ? calendarDateProp : new Date();
|
|
64
64
|
}, [calendarDateProp]);
|
|
65
|
-
var isDisabledDate =
|
|
65
|
+
var isDisabledDate = useEventCallback(function (date) {
|
|
66
66
|
var _disabledDate;
|
|
67
67
|
return (_disabledDate = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date)) !== null && _disabledDate !== void 0 ? _disabledDate : false;
|
|
68
|
-
}
|
|
68
|
+
});
|
|
69
69
|
var isTimeDisabled = function isTimeDisabled(date) {
|
|
70
70
|
return disabledTime(props, date);
|
|
71
71
|
};
|
|
72
|
-
var handleMoveForward =
|
|
72
|
+
var handleMoveForward = useEventCallback(function () {
|
|
73
73
|
onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward(addMonths(calendarDate, 1));
|
|
74
|
-
}
|
|
75
|
-
var handleMoveBackward =
|
|
74
|
+
});
|
|
75
|
+
var handleMoveBackward = useEventCallback(function () {
|
|
76
76
|
onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward(addMonths(calendarDate, -1));
|
|
77
|
-
}
|
|
77
|
+
});
|
|
78
78
|
|
|
79
79
|
// It is displayed as the month to be selected.
|
|
80
|
-
var toggleMonthView =
|
|
80
|
+
var toggleMonthView = useEventCallback(function () {
|
|
81
81
|
if (calendarState === CalendarState.MONTH) {
|
|
82
82
|
reset();
|
|
83
83
|
} else {
|
|
84
84
|
openMonth();
|
|
85
85
|
}
|
|
86
86
|
onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(calendarState !== CalendarState.MONTH);
|
|
87
|
-
}
|
|
87
|
+
});
|
|
88
88
|
|
|
89
89
|
// It is displayed as a time to be selected.
|
|
90
|
-
var toggleTimeView =
|
|
90
|
+
var toggleTimeView = useEventCallback(function () {
|
|
91
91
|
if (calendarState === CalendarState.TIME) {
|
|
92
92
|
reset();
|
|
93
93
|
} else {
|
|
94
94
|
openTime();
|
|
95
95
|
}
|
|
96
96
|
onToggleTimeDropdown === null || onToggleTimeDropdown === void 0 ? void 0 : onToggleTimeDropdown(calendarState !== CalendarState.TIME);
|
|
97
|
-
}
|
|
98
|
-
var handleCloseDropdown =
|
|
97
|
+
});
|
|
98
|
+
var handleCloseDropdown = useEventCallback(function () {
|
|
99
99
|
return reset();
|
|
100
|
-
}
|
|
100
|
+
});
|
|
101
101
|
var renderDate = shouldRenderDate(format);
|
|
102
102
|
var renderTime = shouldRenderTime(format);
|
|
103
103
|
var renderMonth = shouldRenderMonth(format);
|
|
@@ -105,40 +105,38 @@ var CalendarContainer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
105
105
|
var onlyShowMonth = renderMonth && !renderDate && !renderTime;
|
|
106
106
|
var showTime = calendarState === CalendarState.TIME || onlyShowTime;
|
|
107
107
|
var showMonth = calendarState === CalendarState.MONTH || onlyShowMonth;
|
|
108
|
-
var inSameThisMonthDate =
|
|
108
|
+
var inSameThisMonthDate = useEventCallback(function (date) {
|
|
109
109
|
return isSameMonth(calendarDate, date);
|
|
110
|
-
}
|
|
110
|
+
});
|
|
111
111
|
var calendarClasses = merge(className, withClassPrefix({
|
|
112
112
|
'time-view': showTime,
|
|
113
113
|
'month-view': showMonth,
|
|
114
114
|
'show-week-numbers': showWeekNumbers
|
|
115
115
|
}));
|
|
116
116
|
var timeDropdownProps = pick(rest, calendarOnlyProps);
|
|
117
|
-
var handleChangeMonth =
|
|
117
|
+
var handleChangeMonth = useEventCallback(function (date, event) {
|
|
118
118
|
reset();
|
|
119
119
|
onChangeMonth === null || onChangeMonth === void 0 ? void 0 : onChangeMonth(date, event);
|
|
120
|
-
}
|
|
121
|
-
var contextValue =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
};
|
|
141
|
-
}, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameThisMonthDate, inline, isDisabledDate, isoWeek, targetId, locale, onChangeTime, onMouseMove, onSelect, cellClassName, renderCell, showWeekNumbers]);
|
|
120
|
+
});
|
|
121
|
+
var contextValue = {
|
|
122
|
+
date: calendarDate,
|
|
123
|
+
dateRange: dateRange,
|
|
124
|
+
disabledDate: isDisabledDate,
|
|
125
|
+
format: format,
|
|
126
|
+
hoverRangeValue: hoverRangeValue,
|
|
127
|
+
inSameMonth: inSameThisMonthDate,
|
|
128
|
+
isoWeek: isoWeek,
|
|
129
|
+
targetId: targetId,
|
|
130
|
+
locale: locale,
|
|
131
|
+
onChangeMonth: handleChangeMonth,
|
|
132
|
+
onChangeTime: onChangeTime,
|
|
133
|
+
onMouseMove: onMouseMove,
|
|
134
|
+
onSelect: onSelect,
|
|
135
|
+
cellClassName: cellClassName,
|
|
136
|
+
renderCell: renderCell,
|
|
137
|
+
showWeekNumbers: showWeekNumbers,
|
|
138
|
+
inline: inline
|
|
139
|
+
};
|
|
142
140
|
return /*#__PURE__*/React.createElement(CalendarProvider, {
|
|
143
141
|
value: contextValue
|
|
144
142
|
}, /*#__PURE__*/React.createElement(Component, _extends({
|