rsuite 5.80.1 → 5.80.2

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 CHANGED
@@ -1,3 +1,13 @@
1
+ ## [5.80.2](https://github.com/rsuite/rsuite/compare/v5.80.1...v5.80.2) (2025-05-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **DateInput:** ignore function keys (F1–F12) to prevent NaN input ([#4272](https://github.com/rsuite/rsuite/issues/4272)) ([42899bf](https://github.com/rsuite/rsuite/commit/42899bfe54b51fff285d28de118bf8f62f9b2a99))
7
+ * **DateRangeInput:** ignore function keys (F1–F12) to prevent NaN input ([#4263](https://github.com/rsuite/rsuite/issues/4263)) ([3fd1516](https://github.com/rsuite/rsuite/commit/3fd15161d40ae257bd56eb3fa0c5c57e7ec93faf))
8
+
9
+
10
+
1
11
  ## [5.80.1](https://github.com/rsuite/rsuite/compare/v5.80.0...v5.80.1) (2025-04-25)
2
12
 
3
13
 
@@ -125,6 +125,10 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
125
125
  var onSegmentValueChangeWithNumericKeys = (0, _hooks.useEventCallback)(function (event) {
126
126
  var input = event.target;
127
127
  var key = event.key;
128
+ var isFunctionKey = key.startsWith('F') && !isNaN(Number(key.slice(1)));
129
+ if (isFunctionKey) {
130
+ return;
131
+ }
128
132
  var pattern = selectedState.selectedPattern;
129
133
  if (!pattern) {
130
134
  return;
@@ -0,0 +1,6 @@
1
+ export interface TestKeyPressProps {
2
+ defaultValue?: Date | [Date | null, Date | null] | null;
3
+ format?: string;
4
+ expectedValue: string;
5
+ key: string;
6
+ }
@@ -0,0 +1,4 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
@@ -167,6 +167,10 @@ var DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref
167
167
  var input = event.target;
168
168
  var key = event.key;
169
169
  var pattern = selectedState.selectedPattern;
170
+ var isFunctionKey = key.startsWith('F') && !isNaN(Number(key.slice(1)));
171
+ if (isFunctionKey) {
172
+ return;
173
+ }
170
174
  if (!pattern) {
171
175
  return;
172
176
  }
package/dist/rsuite.js CHANGED
@@ -2369,7 +2369,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2369
2369
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2370
2370
 
2371
2371
  "use strict";
2372
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar _Input = _interopRequireDefault(__webpack_require__(/*! ../Input */ \"./src/Input/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DateInput/utils.ts\");\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\nvar _useDateInputState2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useDateInputState */ \"./src/DateInput/hooks/useDateInputState.ts\"));\nvar _useKeyboardInputEvent = _interopRequireDefault(__webpack_require__(/*! ./hooks/useKeyboardInputEvent */ \"./src/DateInput/hooks/useKeyboardInputEvent.ts\"));\nvar _useIsFocused2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useIsFocused */ \"./src/DateInput/hooks/useIsFocused.ts\"));\nvar _useFieldCursor2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFieldCursor */ \"./src/DateInput/hooks/useFieldCursor.ts\"));\nvar _useSelectedState2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useSelectedState */ \"./src/DateInput/hooks/useSelectedState.ts\"));\nvar _excluded = [\"format\", \"value\", \"defaultValue\", \"placeholder\", \"onChange\", \"onKeyDown\", \"onBlur\", \"onFocus\", \"onPaste\"];\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateInput/DateInput.tsx\",\n _this = void 0;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/**\n * The DateInput component lets users select a date with the keyboard.\n * @version 5.58.0\n * @see https://rsuitejs.com/components/date-input/\n */\nvar DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useCustom = (0, _CustomProvider.useCustom)('DateInput', props),\n propsWithDefaults = _useCustom.propsWithDefaults,\n parseDate = _useCustom.parseDate,\n getLocale = _useCustom.getLocale;\n var _getLocale = getLocale('DateTimeFormats'),\n dateLocale = _getLocale.dateLocale,\n shortDateFormat = _getLocale.shortDateFormat;\n var _propsWithDefaults$fo = propsWithDefaults.format,\n formatStr = _propsWithDefaults$fo === void 0 ? shortDateFormat : _propsWithDefaults$fo,\n valueProp = propsWithDefaults.value,\n defaultValue = propsWithDefaults.defaultValue,\n placeholder = propsWithDefaults.placeholder,\n onChange = propsWithDefaults.onChange,\n onKeyDown = propsWithDefaults.onKeyDown,\n onBlur = propsWithDefaults.onBlur,\n onFocus = propsWithDefaults.onFocus,\n onPaste = propsWithDefaults.onPaste,\n rest = (0, _objectWithoutPropertiesLoose2.default)(propsWithDefaults, _excluded);\n var inputRef = (0, _react.useRef)();\n var _useSelectedState = (0, _useSelectedState2.default)(),\n selectedState = _useSelectedState.selectedState,\n setSelectedState = _useSelectedState.setSelectedState;\n var _useControlled = (0, _hooks.useControlled)(valueProp, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n var _useDateInputState = (0, _useDateInputState2.default)({\n formatStr: formatStr,\n locale: dateLocale,\n date: value,\n isControlledDate: isControlled\n }),\n dateField = _useDateInputState.dateField,\n setDateOffset = _useDateInputState.setDateOffset,\n setDateField = _useDateInputState.setDateField,\n setNewDate = _useDateInputState.setNewDate,\n getDateField = _useDateInputState.getDateField,\n toDateString = _useDateInputState.toDateString,\n isEmptyValue = _useDateInputState.isEmptyValue;\n var _useFieldCursor = (0, _useFieldCursor2.default)(formatStr, valueProp),\n isMoveCursor = _useFieldCursor.isMoveCursor,\n isResetValue = _useFieldCursor.isResetValue,\n increment = _useFieldCursor.increment,\n reset = _useFieldCursor.reset;\n var dateString = toDateString();\n var keyPressOptions = (0, _react.useMemo)(function () {\n return {\n formatStr: formatStr,\n localize: dateLocale.localize,\n selectedMonth: dateField.month,\n dateString: dateString\n };\n }, [dateField, dateString, formatStr, dateLocale]);\n var setSelectionRange = (0, _utils2.useInputSelection)(inputRef);\n var handleChange = (0, _hooks.useEventCallback)(function (value, event) {\n onChange === null || onChange === void 0 || onChange(value, event);\n setValue(value);\n });\n var handleClear = (0, _hooks.useEventCallback)(function (event) {\n handleChange(null, event);\n setNewDate(null);\n setSelectionRange(0, 0);\n reset();\n });\n var onSegmentChange = (0, _hooks.useEventCallback)(function (event, nextDirection) {\n var input = event.target;\n var key = event.key;\n var direction = nextDirection || (key === 'ArrowRight' ? 'right' : 'left');\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n direction: direction\n }));\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n\n // If the selected field changes, reset the input state\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var onSegmentValueChange = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var offset = key === 'ArrowUp' ? 1 : -1;\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: offset\n }));\n setSelectedState(state);\n setDateOffset(state.selectedPattern, offset, function (date) {\n return handleChange(date, event);\n });\n setSelectionRange(state.selectionStart, state.selectionEnd);\n });\n var onSegmentValueChangeWithNumericKeys = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var pattern = selectedState.selectedPattern;\n if (!pattern) {\n return;\n }\n var field = getDateField(pattern);\n var value = parseInt(key, 10);\n var padValue = parseInt(\"\" + (field.value || '') + key, 10);\n var newValue = value;\n if ((0, _utils2.validateDateTime)(field.name, padValue) && !isResetValue()) {\n // Check if the value entered by the user is a valid date\n newValue = padValue;\n }\n setDateField(pattern, newValue, function (date) {\n return handleChange(date, event);\n });\n\n // The currently selected month will be retained as a parameter of getInputSelectedState,\n // but if the user enters a month, the month value will be replaced with the value entered by the user.\n var selectedMonth = pattern === 'M' ? newValue : dateField.month;\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n selectedMonth: selectedMonth\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n increment();\n\n // If the field is full value, move the cursor to the next field\n if (isMoveCursor(newValue, pattern) && input.selectionEnd !== input.value.length) {\n onSegmentChange(event, 'right');\n }\n });\n var onSegmentValueRemove = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var value = input.value;\n\n // If the text is all selected, clear the value\n if (input.selectionStart === 0 && value && input.selectionEnd === value.length) {\n handleClear(event);\n } else if (selectedState.selectedPattern) {\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: null\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n setDateField(selectedState.selectedPattern, null, function (date) {\n return handleChange(date, event);\n });\n reset();\n }\n });\n var handleClick = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input\n }));\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var handlePaste = (0, _hooks.useEventCallback)(function (event) {\n var _event$clipboardData;\n event.preventDefault();\n var pasteText = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text');\n var nextDate = parseDate(pasteText, formatStr);\n if ((0, _date.isValid)(nextDate)) {\n handleChange(nextDate, event);\n setNewDate(nextDate);\n }\n onPaste === null || onPaste === void 0 || onPaste(event);\n });\n var onKeyboardInput = (0, _useKeyboardInputEvent.default)({\n onSegmentChange: onSegmentChange,\n onSegmentValueChange: onSegmentValueChange,\n onSegmentValueChangeWithNumericKeys: onSegmentValueChangeWithNumericKeys,\n onSegmentValueRemove: onSegmentValueRemove,\n onKeyDown: onKeyDown\n });\n var _useIsFocused = (0, _useIsFocused2.default)({\n onBlur: onBlur,\n onFocus: onFocus\n }),\n focused = _useIsFocused[0],\n focusEventProps = _useIsFocused[1];\n var renderedValue = (0, _react.useMemo)(function () {\n if (!isEmptyValue()) {\n return dateString;\n }\n return !focused ? '' : dateString;\n }, [dateString, focused, isEmptyValue]);\n return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({\n inputMode: focused ? 'numeric' : 'text',\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: false,\n ref: (0, _utils.mergeRefs)(inputRef, ref),\n onKeyDown: onKeyboardInput,\n onClick: handleClick,\n onPaste: handlePaste,\n value: renderedValue,\n placeholder: placeholder || formatStr\n }, focusEventProps, rest, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 236,\n columnNumber: 5\n }\n }));\n});\nDateInput.displayName = 'DateInput';\nDateInput.propTypes = {\n defaultValue: _propTypes.default.instanceOf(Date),\n format: _propTypes.default.string,\n value: _propTypes.default.instanceOf(Date),\n placeholder: _propTypes.default.string,\n onChange: _propTypes.default.func,\n onKeyDown: _propTypes.default.func,\n onBlur: _propTypes.default.func,\n onFocus: _propTypes.default.func\n};\nvar _default = exports[\"default\"] = DateInput;\n\n//# sourceURL=webpack://rsuite/./src/DateInput/DateInput.tsx?");
2372
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar _Input = _interopRequireDefault(__webpack_require__(/*! ../Input */ \"./src/Input/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DateInput/utils.ts\");\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\nvar _useDateInputState2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useDateInputState */ \"./src/DateInput/hooks/useDateInputState.ts\"));\nvar _useKeyboardInputEvent = _interopRequireDefault(__webpack_require__(/*! ./hooks/useKeyboardInputEvent */ \"./src/DateInput/hooks/useKeyboardInputEvent.ts\"));\nvar _useIsFocused2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useIsFocused */ \"./src/DateInput/hooks/useIsFocused.ts\"));\nvar _useFieldCursor2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFieldCursor */ \"./src/DateInput/hooks/useFieldCursor.ts\"));\nvar _useSelectedState2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useSelectedState */ \"./src/DateInput/hooks/useSelectedState.ts\"));\nvar _excluded = [\"format\", \"value\", \"defaultValue\", \"placeholder\", \"onChange\", \"onKeyDown\", \"onBlur\", \"onFocus\", \"onPaste\"];\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateInput/DateInput.tsx\",\n _this = void 0;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/**\n * The DateInput component lets users select a date with the keyboard.\n * @version 5.58.0\n * @see https://rsuitejs.com/components/date-input/\n */\nvar DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useCustom = (0, _CustomProvider.useCustom)('DateInput', props),\n propsWithDefaults = _useCustom.propsWithDefaults,\n parseDate = _useCustom.parseDate,\n getLocale = _useCustom.getLocale;\n var _getLocale = getLocale('DateTimeFormats'),\n dateLocale = _getLocale.dateLocale,\n shortDateFormat = _getLocale.shortDateFormat;\n var _propsWithDefaults$fo = propsWithDefaults.format,\n formatStr = _propsWithDefaults$fo === void 0 ? shortDateFormat : _propsWithDefaults$fo,\n valueProp = propsWithDefaults.value,\n defaultValue = propsWithDefaults.defaultValue,\n placeholder = propsWithDefaults.placeholder,\n onChange = propsWithDefaults.onChange,\n onKeyDown = propsWithDefaults.onKeyDown,\n onBlur = propsWithDefaults.onBlur,\n onFocus = propsWithDefaults.onFocus,\n onPaste = propsWithDefaults.onPaste,\n rest = (0, _objectWithoutPropertiesLoose2.default)(propsWithDefaults, _excluded);\n var inputRef = (0, _react.useRef)();\n var _useSelectedState = (0, _useSelectedState2.default)(),\n selectedState = _useSelectedState.selectedState,\n setSelectedState = _useSelectedState.setSelectedState;\n var _useControlled = (0, _hooks.useControlled)(valueProp, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n var _useDateInputState = (0, _useDateInputState2.default)({\n formatStr: formatStr,\n locale: dateLocale,\n date: value,\n isControlledDate: isControlled\n }),\n dateField = _useDateInputState.dateField,\n setDateOffset = _useDateInputState.setDateOffset,\n setDateField = _useDateInputState.setDateField,\n setNewDate = _useDateInputState.setNewDate,\n getDateField = _useDateInputState.getDateField,\n toDateString = _useDateInputState.toDateString,\n isEmptyValue = _useDateInputState.isEmptyValue;\n var _useFieldCursor = (0, _useFieldCursor2.default)(formatStr, valueProp),\n isMoveCursor = _useFieldCursor.isMoveCursor,\n isResetValue = _useFieldCursor.isResetValue,\n increment = _useFieldCursor.increment,\n reset = _useFieldCursor.reset;\n var dateString = toDateString();\n var keyPressOptions = (0, _react.useMemo)(function () {\n return {\n formatStr: formatStr,\n localize: dateLocale.localize,\n selectedMonth: dateField.month,\n dateString: dateString\n };\n }, [dateField, dateString, formatStr, dateLocale]);\n var setSelectionRange = (0, _utils2.useInputSelection)(inputRef);\n var handleChange = (0, _hooks.useEventCallback)(function (value, event) {\n onChange === null || onChange === void 0 || onChange(value, event);\n setValue(value);\n });\n var handleClear = (0, _hooks.useEventCallback)(function (event) {\n handleChange(null, event);\n setNewDate(null);\n setSelectionRange(0, 0);\n reset();\n });\n var onSegmentChange = (0, _hooks.useEventCallback)(function (event, nextDirection) {\n var input = event.target;\n var key = event.key;\n var direction = nextDirection || (key === 'ArrowRight' ? 'right' : 'left');\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n direction: direction\n }));\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n\n // If the selected field changes, reset the input state\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var onSegmentValueChange = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var offset = key === 'ArrowUp' ? 1 : -1;\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: offset\n }));\n setSelectedState(state);\n setDateOffset(state.selectedPattern, offset, function (date) {\n return handleChange(date, event);\n });\n setSelectionRange(state.selectionStart, state.selectionEnd);\n });\n var onSegmentValueChangeWithNumericKeys = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var isFunctionKey = key.startsWith('F') && !isNaN(Number(key.slice(1)));\n if (isFunctionKey) {\n return;\n }\n var pattern = selectedState.selectedPattern;\n if (!pattern) {\n return;\n }\n var field = getDateField(pattern);\n var value = parseInt(key, 10);\n var padValue = parseInt(\"\" + (field.value || '') + key, 10);\n var newValue = value;\n if ((0, _utils2.validateDateTime)(field.name, padValue) && !isResetValue()) {\n // Check if the value entered by the user is a valid date\n newValue = padValue;\n }\n setDateField(pattern, newValue, function (date) {\n return handleChange(date, event);\n });\n\n // The currently selected month will be retained as a parameter of getInputSelectedState,\n // but if the user enters a month, the month value will be replaced with the value entered by the user.\n var selectedMonth = pattern === 'M' ? newValue : dateField.month;\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n selectedMonth: selectedMonth\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n increment();\n\n // If the field is full value, move the cursor to the next field\n if (isMoveCursor(newValue, pattern) && input.selectionEnd !== input.value.length) {\n onSegmentChange(event, 'right');\n }\n });\n var onSegmentValueRemove = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var value = input.value;\n\n // If the text is all selected, clear the value\n if (input.selectionStart === 0 && value && input.selectionEnd === value.length) {\n handleClear(event);\n } else if (selectedState.selectedPattern) {\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: null\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n setDateField(selectedState.selectedPattern, null, function (date) {\n return handleChange(date, event);\n });\n reset();\n }\n });\n var handleClick = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input\n }));\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var handlePaste = (0, _hooks.useEventCallback)(function (event) {\n var _event$clipboardData;\n event.preventDefault();\n var pasteText = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text');\n var nextDate = parseDate(pasteText, formatStr);\n if ((0, _date.isValid)(nextDate)) {\n handleChange(nextDate, event);\n setNewDate(nextDate);\n }\n onPaste === null || onPaste === void 0 || onPaste(event);\n });\n var onKeyboardInput = (0, _useKeyboardInputEvent.default)({\n onSegmentChange: onSegmentChange,\n onSegmentValueChange: onSegmentValueChange,\n onSegmentValueChangeWithNumericKeys: onSegmentValueChangeWithNumericKeys,\n onSegmentValueRemove: onSegmentValueRemove,\n onKeyDown: onKeyDown\n });\n var _useIsFocused = (0, _useIsFocused2.default)({\n onBlur: onBlur,\n onFocus: onFocus\n }),\n focused = _useIsFocused[0],\n focusEventProps = _useIsFocused[1];\n var renderedValue = (0, _react.useMemo)(function () {\n if (!isEmptyValue()) {\n return dateString;\n }\n return !focused ? '' : dateString;\n }, [dateString, focused, isEmptyValue]);\n return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({\n inputMode: focused ? 'numeric' : 'text',\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: false,\n ref: (0, _utils.mergeRefs)(inputRef, ref),\n onKeyDown: onKeyboardInput,\n onClick: handleClick,\n onPaste: handlePaste,\n value: renderedValue,\n placeholder: placeholder || formatStr\n }, focusEventProps, rest, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 241,\n columnNumber: 5\n }\n }));\n});\nDateInput.displayName = 'DateInput';\nDateInput.propTypes = {\n defaultValue: _propTypes.default.instanceOf(Date),\n format: _propTypes.default.string,\n value: _propTypes.default.instanceOf(Date),\n placeholder: _propTypes.default.string,\n onChange: _propTypes.default.func,\n onKeyDown: _propTypes.default.func,\n onBlur: _propTypes.default.func,\n onFocus: _propTypes.default.func\n};\nvar _default = exports[\"default\"] = DateInput;\n\n//# sourceURL=webpack://rsuite/./src/DateInput/DateInput.tsx?");
2373
2373
 
2374
2374
  /***/ }),
2375
2375
 
@@ -2545,7 +2545,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
2545
2545
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2546
2546
 
2547
2547
  "use strict";
2548
- eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar _Input = _interopRequireDefault(__webpack_require__(/*! ../Input */ \"./src/Input/index.tsx\"));\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _DateInput = __webpack_require__(/*! ../DateInput */ \"./src/DateInput/index.tsx\");\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DateRangeInput/utils.ts\");\nvar _excluded = [\"className\", \"classPrefix\", \"character\", \"format\", \"value\", \"defaultValue\", \"placeholder\", \"onChange\", \"onKeyDown\", \"onBlur\", \"onFocus\", \"onPaste\"];\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangeInput/DateRangeInput.tsx\",\n _this = void 0;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/**\n * The DateRangeInput component lets users select a date with the keyboard.\n * @version 5.59.0\n * @see https://rsuitejs.com/components/date-range-input/\n */\nvar DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useCustom = (0, _CustomProvider.useCustom)('Calendar', props),\n propsWithDefaults = _useCustom.propsWithDefaults,\n parseDate = _useCustom.parseDate,\n getLocale = _useCustom.getLocale;\n var _getLocale = getLocale('DateTimeFormats'),\n shortDateFormat = _getLocale.shortDateFormat,\n dateLocale = _getLocale.dateLocale;\n var className = propsWithDefaults.className,\n _propsWithDefaults$cl = propsWithDefaults.classPrefix,\n classPrefix = _propsWithDefaults$cl === void 0 ? 'date-range-input' : _propsWithDefaults$cl,\n _propsWithDefaults$ch = propsWithDefaults.character,\n character = _propsWithDefaults$ch === void 0 ? ' ~ ' : _propsWithDefaults$ch,\n _propsWithDefaults$fo = propsWithDefaults.format,\n formatStr = _propsWithDefaults$fo === void 0 ? shortDateFormat : _propsWithDefaults$fo,\n valueProp = propsWithDefaults.value,\n _propsWithDefaults$de = propsWithDefaults.defaultValue,\n defaultValue = _propsWithDefaults$de === void 0 ? [] : _propsWithDefaults$de,\n placeholder = propsWithDefaults.placeholder,\n onChange = propsWithDefaults.onChange,\n onKeyDown = propsWithDefaults.onKeyDown,\n onBlur = propsWithDefaults.onBlur,\n onFocus = propsWithDefaults.onFocus,\n onPaste = propsWithDefaults.onPaste,\n rest = (0, _objectWithoutPropertiesLoose2.default)(propsWithDefaults, _excluded);\n var _useClassNames = (0, _hooks.useClassNames)(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n var classes = merge(className, withClassPrefix());\n var inputRef = (0, _react.useRef)();\n var _useSelectedState = (0, _DateInput.useSelectedState)(),\n selectedState = _useSelectedState.selectedState,\n setSelectedState = _useSelectedState.setSelectedState;\n var rangeFormatStr = \"\" + formatStr + character + formatStr;\n var _useControlled = (0, _hooks.useControlled)(valueProp, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n var _useState = (0, _react.useState)(_utils2.DateType.Start),\n dateType = _useState[0],\n setDateType = _useState[1];\n var dateInputOptions = {\n formatStr: formatStr,\n locale: dateLocale,\n isControlledDate: isControlled\n };\n var startDateState = (0, _DateInput.useDateInputState)((0, _extends2.default)({}, dateInputOptions, {\n date: (value === null || value === void 0 ? void 0 : value[0]) || null\n }));\n var endDateState = (0, _DateInput.useDateInputState)((0, _extends2.default)({}, dateInputOptions, {\n date: (value === null || value === void 0 ? void 0 : value[1]) || null\n }));\n var _useFieldCursor = (0, _DateInput.useFieldCursor)(formatStr, valueProp),\n isMoveCursor = _useFieldCursor.isMoveCursor,\n isResetValue = _useFieldCursor.isResetValue,\n increment = _useFieldCursor.increment,\n reset = _useFieldCursor.reset;\n var getActiveState = function getActiveState(type) {\n if (type === void 0) {\n type = dateType;\n }\n return type === _utils2.DateType.Start ? startDateState : endDateState;\n };\n var _useIsFocused = (0, _DateInput.useIsFocused)({\n onBlur: onBlur,\n onFocus: onFocus\n }),\n focused = _useIsFocused[0],\n focusEventProps = _useIsFocused[1];\n var renderedValue = (0, _react.useMemo)(function () {\n var dateString = startDateState.toDateString() + character + endDateState.toDateString();\n if (!startDateState.isEmptyValue() || !endDateState.isEmptyValue()) {\n return dateString;\n }\n return !focused ? '' : dateString;\n }, [character, endDateState, focused, startDateState]);\n var keyPressOptions = {\n formatStr: formatStr,\n rangeFormatStr: rangeFormatStr,\n localize: dateLocale.localize,\n selectedMonth: getActiveState().dateField.month,\n dateString: renderedValue,\n dateType: dateType,\n character: character\n };\n var setSelectionRange = (0, _DateInput.useInputSelection)(inputRef);\n var handleChange = (0, _hooks.useEventCallback)(function (date, event) {\n var nextValue = dateType === _utils2.DateType.Start ? [date, value === null || value === void 0 ? void 0 : value[1]] : [value === null || value === void 0 ? void 0 : value[0], date];\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n setValue(nextValue);\n });\n var handleClear = (0, _hooks.useEventCallback)(function (event) {\n startDateState.setNewDate(null);\n endDateState.setNewDate(null);\n setSelectionRange(0, 0);\n reset();\n setValue(null);\n onChange === null || onChange === void 0 || onChange(null, event);\n });\n var onSegmentChange = (0, _hooks.useEventCallback)(function (event, nextDirection) {\n var input = event.target;\n var key = event.key;\n var direction = nextDirection || (key === 'ArrowRight' ? 'right' : 'left');\n if (input.selectionEnd === null || input.selectionStart === null) {\n return;\n }\n var cursorIndex = direction === 'right' ? input.selectionEnd : input.selectionStart;\n var nextDateType = dateType;\n if ((0, _utils2.isSwitchDateType)(renderedValue, character, cursorIndex, direction)) {\n nextDateType = dateType === _utils2.DateType.Start ? _utils2.DateType.End : _utils2.DateType.Start;\n setDateType(nextDateType);\n }\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n dateType: nextDateType,\n selectedMonth: getActiveState(nextDateType).dateField.month,\n input: input,\n direction: direction\n }));\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n\n // If the selected field changes, reset the input state\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var onSegmentValueChange = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var offset = key === 'ArrowUp' ? 1 : -1;\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: offset\n }));\n setSelectedState(state);\n getActiveState().setDateOffset(state.selectedPattern, offset, function (date) {\n return handleChange(date, event);\n });\n setSelectionRange(state.selectionStart, state.selectionEnd);\n });\n var onSegmentValueChangeWithNumericKeys = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var pattern = selectedState.selectedPattern;\n if (!pattern) {\n return;\n }\n var field = getActiveState().getDateField(pattern);\n var value = parseInt(key, 10);\n var padValue = parseInt(\"\" + (field.value || '') + key, 10);\n var newValue = value;\n\n // Check if the value entered by the user is a valid date\n if ((0, _DateInput.validateDateTime)(field.name, padValue) && !isResetValue()) {\n newValue = padValue;\n }\n getActiveState().setDateField(pattern, newValue, function (date) {\n return handleChange(date, event);\n });\n\n // The currently selected month will be retained as a parameter of getInputSelectedState,\n // but if the user enters a month, the month value will be replaced with the value entered by the user.\n var selectedMonth = pattern === 'M' ? newValue : getActiveState().dateField.month;\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n selectedMonth: selectedMonth\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n increment();\n\n // If the field is full value, move the cursor to the next field\n if (isMoveCursor(newValue, pattern) && input.selectionEnd !== input.value.length) {\n onSegmentChange(event, 'right');\n }\n });\n var onSegmentValueRemove = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var value = input.value;\n if (input.selectionStart === 0 && value && input.selectionEnd === value.length) {\n handleClear(event);\n } else if (selectedState.selectedPattern) {\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: null\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n getActiveState().setDateField(selectedState.selectedPattern, null, function (date) {\n return handleChange(date, event);\n });\n reset();\n }\n });\n var handleClick = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n if (input.selectionStart === null) {\n return;\n }\n var cursorIndex = input.selectionStart === renderedValue.length ? 0 : input.selectionStart;\n var dateType = (0, _utils2.getDateType)(renderedValue || rangeFormatStr, character, cursorIndex);\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n dateType: dateType,\n selectedMonth: getActiveState(dateType).dateField.month,\n input: input\n }));\n setDateType(dateType);\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var handlePaste = (0, _hooks.useEventCallback)(function (event) {\n var _event$clipboardData;\n event.preventDefault();\n var pasteText = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text');\n var _ref = pasteText.split(character).map(function (date) {\n return parseDate(date, formatStr);\n }),\n start = _ref[0],\n end = _ref[1];\n if ((0, _date.isValid)(start) && (0, _date.isValid)(end)) {\n var nextValue = [start, end];\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n setValue(nextValue);\n startDateState.setNewDate(start);\n endDateState.setNewDate(end);\n }\n onPaste === null || onPaste === void 0 || onPaste(event);\n });\n var onKeyboardInput = (0, _DateInput.useKeyboardInputEvent)({\n onSegmentChange: onSegmentChange,\n onSegmentValueChange: onSegmentValueChange,\n onSegmentValueChangeWithNumericKeys: onSegmentValueChangeWithNumericKeys,\n onSegmentValueRemove: onSegmentValueRemove,\n onKeyDown: onKeyDown\n });\n return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({\n inputMode: focused ? 'numeric' : 'text',\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: false,\n className: classes,\n ref: (0, _utils.mergeRefs)(inputRef, ref),\n onKeyDown: onKeyboardInput,\n onClick: handleClick,\n onPaste: handlePaste,\n value: renderedValue,\n placeholder: placeholder || rangeFormatStr\n }, focusEventProps, rest, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 310,\n columnNumber: 5\n }\n }));\n});\nDateRangeInput.displayName = 'DateRangeInput';\nDateRangeInput.propTypes = {\n character: _propTypes.default.string,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n format: _propTypes.default.string,\n placeholder: _propTypes.default.string,\n onChange: _propTypes.default.func,\n onKeyDown: _propTypes.default.func,\n onFocus: _propTypes.default.func,\n onBlur: _propTypes.default.func\n};\nvar _default = exports[\"default\"] = DateRangeInput;\n\n//# sourceURL=webpack://rsuite/./src/DateRangeInput/DateRangeInput.tsx?");
2548
+ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"react\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar _Input = _interopRequireDefault(__webpack_require__(/*! ../Input */ \"./src/Input/index.tsx\"));\nvar _date = __webpack_require__(/*! ../internals/utils/date */ \"./src/internals/utils/date/index.ts\");\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _DateInput = __webpack_require__(/*! ../DateInput */ \"./src/DateInput/index.tsx\");\nvar _CustomProvider = __webpack_require__(/*! ../CustomProvider */ \"./src/CustomProvider/index.tsx\");\nvar _utils2 = __webpack_require__(/*! ./utils */ \"./src/DateRangeInput/utils.ts\");\nvar _excluded = [\"className\", \"classPrefix\", \"character\", \"format\", \"value\", \"defaultValue\", \"placeholder\", \"onChange\", \"onKeyDown\", \"onBlur\", \"onFocus\", \"onPaste\"];\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/DateRangeInput/DateRangeInput.tsx\",\n _this = void 0;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\n/**\n * The DateRangeInput component lets users select a date with the keyboard.\n * @version 5.59.0\n * @see https://rsuitejs.com/components/date-range-input/\n */\nvar DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _useCustom = (0, _CustomProvider.useCustom)('Calendar', props),\n propsWithDefaults = _useCustom.propsWithDefaults,\n parseDate = _useCustom.parseDate,\n getLocale = _useCustom.getLocale;\n var _getLocale = getLocale('DateTimeFormats'),\n shortDateFormat = _getLocale.shortDateFormat,\n dateLocale = _getLocale.dateLocale;\n var className = propsWithDefaults.className,\n _propsWithDefaults$cl = propsWithDefaults.classPrefix,\n classPrefix = _propsWithDefaults$cl === void 0 ? 'date-range-input' : _propsWithDefaults$cl,\n _propsWithDefaults$ch = propsWithDefaults.character,\n character = _propsWithDefaults$ch === void 0 ? ' ~ ' : _propsWithDefaults$ch,\n _propsWithDefaults$fo = propsWithDefaults.format,\n formatStr = _propsWithDefaults$fo === void 0 ? shortDateFormat : _propsWithDefaults$fo,\n valueProp = propsWithDefaults.value,\n _propsWithDefaults$de = propsWithDefaults.defaultValue,\n defaultValue = _propsWithDefaults$de === void 0 ? [] : _propsWithDefaults$de,\n placeholder = propsWithDefaults.placeholder,\n onChange = propsWithDefaults.onChange,\n onKeyDown = propsWithDefaults.onKeyDown,\n onBlur = propsWithDefaults.onBlur,\n onFocus = propsWithDefaults.onFocus,\n onPaste = propsWithDefaults.onPaste,\n rest = (0, _objectWithoutPropertiesLoose2.default)(propsWithDefaults, _excluded);\n var _useClassNames = (0, _hooks.useClassNames)(classPrefix),\n withClassPrefix = _useClassNames.withClassPrefix,\n merge = _useClassNames.merge;\n var classes = merge(className, withClassPrefix());\n var inputRef = (0, _react.useRef)();\n var _useSelectedState = (0, _DateInput.useSelectedState)(),\n selectedState = _useSelectedState.selectedState,\n setSelectedState = _useSelectedState.setSelectedState;\n var rangeFormatStr = \"\" + formatStr + character + formatStr;\n var _useControlled = (0, _hooks.useControlled)(valueProp, defaultValue),\n value = _useControlled[0],\n setValue = _useControlled[1],\n isControlled = _useControlled[2];\n var _useState = (0, _react.useState)(_utils2.DateType.Start),\n dateType = _useState[0],\n setDateType = _useState[1];\n var dateInputOptions = {\n formatStr: formatStr,\n locale: dateLocale,\n isControlledDate: isControlled\n };\n var startDateState = (0, _DateInput.useDateInputState)((0, _extends2.default)({}, dateInputOptions, {\n date: (value === null || value === void 0 ? void 0 : value[0]) || null\n }));\n var endDateState = (0, _DateInput.useDateInputState)((0, _extends2.default)({}, dateInputOptions, {\n date: (value === null || value === void 0 ? void 0 : value[1]) || null\n }));\n var _useFieldCursor = (0, _DateInput.useFieldCursor)(formatStr, valueProp),\n isMoveCursor = _useFieldCursor.isMoveCursor,\n isResetValue = _useFieldCursor.isResetValue,\n increment = _useFieldCursor.increment,\n reset = _useFieldCursor.reset;\n var getActiveState = function getActiveState(type) {\n if (type === void 0) {\n type = dateType;\n }\n return type === _utils2.DateType.Start ? startDateState : endDateState;\n };\n var _useIsFocused = (0, _DateInput.useIsFocused)({\n onBlur: onBlur,\n onFocus: onFocus\n }),\n focused = _useIsFocused[0],\n focusEventProps = _useIsFocused[1];\n var renderedValue = (0, _react.useMemo)(function () {\n var dateString = startDateState.toDateString() + character + endDateState.toDateString();\n if (!startDateState.isEmptyValue() || !endDateState.isEmptyValue()) {\n return dateString;\n }\n return !focused ? '' : dateString;\n }, [character, endDateState, focused, startDateState]);\n var keyPressOptions = {\n formatStr: formatStr,\n rangeFormatStr: rangeFormatStr,\n localize: dateLocale.localize,\n selectedMonth: getActiveState().dateField.month,\n dateString: renderedValue,\n dateType: dateType,\n character: character\n };\n var setSelectionRange = (0, _DateInput.useInputSelection)(inputRef);\n var handleChange = (0, _hooks.useEventCallback)(function (date, event) {\n var nextValue = dateType === _utils2.DateType.Start ? [date, value === null || value === void 0 ? void 0 : value[1]] : [value === null || value === void 0 ? void 0 : value[0], date];\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n setValue(nextValue);\n });\n var handleClear = (0, _hooks.useEventCallback)(function (event) {\n startDateState.setNewDate(null);\n endDateState.setNewDate(null);\n setSelectionRange(0, 0);\n reset();\n setValue(null);\n onChange === null || onChange === void 0 || onChange(null, event);\n });\n var onSegmentChange = (0, _hooks.useEventCallback)(function (event, nextDirection) {\n var input = event.target;\n var key = event.key;\n var direction = nextDirection || (key === 'ArrowRight' ? 'right' : 'left');\n if (input.selectionEnd === null || input.selectionStart === null) {\n return;\n }\n var cursorIndex = direction === 'right' ? input.selectionEnd : input.selectionStart;\n var nextDateType = dateType;\n if ((0, _utils2.isSwitchDateType)(renderedValue, character, cursorIndex, direction)) {\n nextDateType = dateType === _utils2.DateType.Start ? _utils2.DateType.End : _utils2.DateType.Start;\n setDateType(nextDateType);\n }\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n dateType: nextDateType,\n selectedMonth: getActiveState(nextDateType).dateField.month,\n input: input,\n direction: direction\n }));\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n\n // If the selected field changes, reset the input state\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var onSegmentValueChange = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var offset = key === 'ArrowUp' ? 1 : -1;\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: offset\n }));\n setSelectedState(state);\n getActiveState().setDateOffset(state.selectedPattern, offset, function (date) {\n return handleChange(date, event);\n });\n setSelectionRange(state.selectionStart, state.selectionEnd);\n });\n var onSegmentValueChangeWithNumericKeys = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var key = event.key;\n var pattern = selectedState.selectedPattern;\n var isFunctionKey = key.startsWith('F') && !isNaN(Number(key.slice(1)));\n if (isFunctionKey) {\n return;\n }\n if (!pattern) {\n return;\n }\n var field = getActiveState().getDateField(pattern);\n var value = parseInt(key, 10);\n var padValue = parseInt(\"\" + (field.value || '') + key, 10);\n var newValue = value;\n\n // Check if the value entered by the user is a valid date\n if ((0, _DateInput.validateDateTime)(field.name, padValue) && !isResetValue()) {\n newValue = padValue;\n }\n getActiveState().setDateField(pattern, newValue, function (date) {\n return handleChange(date, event);\n });\n\n // The currently selected month will be retained as a parameter of getInputSelectedState,\n // but if the user enters a month, the month value will be replaced with the value entered by the user.\n var selectedMonth = pattern === 'M' ? newValue : getActiveState().dateField.month;\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n selectedMonth: selectedMonth\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n increment();\n\n // If the field is full value, move the cursor to the next field\n if (isMoveCursor(newValue, pattern) && input.selectionEnd !== input.value.length) {\n onSegmentChange(event, 'right');\n }\n });\n var onSegmentValueRemove = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n var value = input.value;\n if (input.selectionStart === 0 && value && input.selectionEnd === value.length) {\n handleClear(event);\n } else if (selectedState.selectedPattern) {\n var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n input: input,\n valueOffset: null\n }));\n setSelectedState(nextState);\n setSelectionRange(nextState.selectionStart, nextState.selectionEnd);\n getActiveState().setDateField(selectedState.selectedPattern, null, function (date) {\n return handleChange(date, event);\n });\n reset();\n }\n });\n var handleClick = (0, _hooks.useEventCallback)(function (event) {\n var input = event.target;\n if (input.selectionStart === null) {\n return;\n }\n var cursorIndex = input.selectionStart === renderedValue.length ? 0 : input.selectionStart;\n var dateType = (0, _utils2.getDateType)(renderedValue || rangeFormatStr, character, cursorIndex);\n var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {\n dateType: dateType,\n selectedMonth: getActiveState(dateType).dateField.month,\n input: input\n }));\n setDateType(dateType);\n setSelectedState(state);\n setSelectionRange(state.selectionStart, state.selectionEnd);\n if (selectedState.selectedPattern !== state.selectedPattern) {\n reset();\n }\n });\n var handlePaste = (0, _hooks.useEventCallback)(function (event) {\n var _event$clipboardData;\n event.preventDefault();\n var pasteText = (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('text');\n var _ref = pasteText.split(character).map(function (date) {\n return parseDate(date, formatStr);\n }),\n start = _ref[0],\n end = _ref[1];\n if ((0, _date.isValid)(start) && (0, _date.isValid)(end)) {\n var nextValue = [start, end];\n onChange === null || onChange === void 0 || onChange(nextValue, event);\n setValue(nextValue);\n startDateState.setNewDate(start);\n endDateState.setNewDate(end);\n }\n onPaste === null || onPaste === void 0 || onPaste(event);\n });\n var onKeyboardInput = (0, _DateInput.useKeyboardInputEvent)({\n onSegmentChange: onSegmentChange,\n onSegmentValueChange: onSegmentValueChange,\n onSegmentValueChangeWithNumericKeys: onSegmentValueChangeWithNumericKeys,\n onSegmentValueRemove: onSegmentValueRemove,\n onKeyDown: onKeyDown\n });\n return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({\n inputMode: focused ? 'numeric' : 'text',\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellCheck: false,\n className: classes,\n ref: (0, _utils.mergeRefs)(inputRef, ref),\n onKeyDown: onKeyboardInput,\n onClick: handleClick,\n onPaste: handlePaste,\n value: renderedValue,\n placeholder: placeholder || rangeFormatStr\n }, focusEventProps, rest, {\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 315,\n columnNumber: 5\n }\n }));\n});\nDateRangeInput.displayName = 'DateRangeInput';\nDateRangeInput.propTypes = {\n character: _propTypes.default.string,\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n format: _propTypes.default.string,\n placeholder: _propTypes.default.string,\n onChange: _propTypes.default.func,\n onKeyDown: _propTypes.default.func,\n onFocus: _propTypes.default.func,\n onBlur: _propTypes.default.func\n};\nvar _default = exports[\"default\"] = DateRangeInput;\n\n//# sourceURL=webpack://rsuite/./src/DateRangeInput/DateRangeInput.tsx?");
2549
2549
 
2550
2550
  /***/ }),
2551
2551
 
@@ -10818,9 +10818,9 @@ eval("var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ \"./node_m
10818
10818
  /*!***************************************!*\
10819
10819
  !*** ./node_modules/lodash/_toKey.js ***!
10820
10820
  \***************************************/
10821
- /***/ (function(module) {
10821
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
10822
10822
 
10823
- eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/_toKey.js?");
10823
+ eval("var isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/_toKey.js?");
10824
10824
 
10825
10825
  /***/ }),
10826
10826