rsuite 5.16.4 → 5.16.5

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,11 @@
1
+ ## [5.16.5](https://github.com/rsuite/rsuite/compare/v5.16.4...v5.16.5) (2022-08-11)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **AutoComplete:** fix `listbox` not keeping the same width as `input` ([#2645](https://github.com/rsuite/rsuite/issues/2645)) ([ad09288](https://github.com/rsuite/rsuite/commit/ad09288e0fc38f964524466a79ca25532dc221f8))
6
+ - **AutoComplete:** fix missing definition of string in datatype ([#2644](https://github.com/rsuite/rsuite/issues/2644)) ([528e291](https://github.com/rsuite/rsuite/commit/528e29154d188d928e3d93853f5ed0673b932b4a))
7
+ - **DateRangePicker:** fix default time not working ([#2642](https://github.com/rsuite/rsuite/issues/2642)) ([915de28](https://github.com/rsuite/rsuite/commit/915de2820af418195e7f9a6ed228c1b05362d633))
8
+
1
9
  ## [5.16.4](https://github.com/rsuite/rsuite/compare/v5.16.3...v5.16.4) (2022-08-04)
2
10
 
3
11
  ### Bug Fixes
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { PickerComponent } from '../Picker';
3
3
  import { WithAsProps, FormControlPickerProps, TypeAttributes, ItemDataType } from '../@types/common';
4
4
  export declare type ValueType = string;
5
- export interface AutoCompleteProps<T = ValueType> extends WithAsProps, FormControlPickerProps<T, any, ItemDataType> {
5
+ export interface AutoCompleteProps<T = ValueType> extends WithAsProps, FormControlPickerProps<T, any, ItemDataType | string> {
6
6
  /** Additional classes for menu */
7
7
  menuClassName?: string;
8
8
  /** The placement of component */
@@ -13,6 +13,8 @@ export interface AutoCompleteProps<T = ValueType> extends WithAsProps, FormContr
13
13
  open?: boolean;
14
14
  /** Placeholder text */
15
15
  placeholder?: string;
16
+ /** The width of the menu will automatically follow the width of the input box */
17
+ menuAutoWidth?: boolean;
16
18
  /** Custom filter function to determine whether the item will be displayed */
17
19
  filterBy?: (value: string, item: ItemDataType) => boolean;
18
20
  /** Called when a option is selected */
@@ -44,6 +44,8 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
44
44
  classPrefix = _props$classPrefix === void 0 ? 'auto-complete' : _props$classPrefix,
45
45
  _props$defaultValue = props.defaultValue,
46
46
  defaultValue = _props$defaultValue === void 0 ? '' : _props$defaultValue,
47
+ _props$menuAutoWidth = props.menuAutoWidth,
48
+ menuAutoWidth = _props$menuAutoWidth === void 0 ? true : _props$menuAutoWidth,
47
49
  data = props.data,
48
50
  valueProp = props.value,
49
51
  open = props.open,
@@ -61,7 +63,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
61
63
  onFocus = props.onFocus,
62
64
  onBlur = props.onBlur,
63
65
  onMenuFocus = props.onMenuFocus,
64
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "disabled", "className", "placement", "selectOnEnter", "classPrefix", "defaultValue", "data", "value", "open", "style", "menuClassName", "id", "renderMenu", "renderMenuItem", "onSelect", "filterBy", "onKeyDown", "onChange", "onClose", "onOpen", "onFocus", "onBlur", "onMenuFocus"]);
66
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "disabled", "className", "placement", "selectOnEnter", "classPrefix", "defaultValue", "menuAutoWidth", "data", "value", "open", "style", "menuClassName", "id", "renderMenu", "renderMenuItem", "onSelect", "filterBy", "onKeyDown", "onChange", "onClose", "onOpen", "onFocus", "onBlur", "onMenuFocus"]);
65
67
  var datalist = (0, _utils3.transformData)(data);
66
68
 
67
69
  var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
@@ -203,7 +205,8 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
203
205
  style: styles,
204
206
  className: className,
205
207
  onKeyDown: handleKeyDownEvent,
206
- target: triggerRef
208
+ target: triggerRef,
209
+ autoWidth: menuAutoWidth
207
210
  }, renderMenu ? renderMenu(menu) : menu);
208
211
  };
209
212
 
@@ -239,6 +242,7 @@ AutoComplete.propTypes = (0, _extends2.default)({}, _utils2.animationPropTypes,
239
242
  defaultValue: _propTypes.default.string,
240
243
  className: _propTypes.default.string,
241
244
  menuClassName: _propTypes.default.string,
245
+ menuAutoWidth: _propTypes.default.bool,
242
246
  placement: _propTypes.default.oneOf(_utils.PLACEMENT),
243
247
  onFocus: _propTypes.default.func,
244
248
  onMenuFocus: _propTypes.default.func,
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _AutoComplete = _interopRequireDefault(require("../AutoComplete"));
8
+
9
+ /*#__PURE__*/
10
+ _react.default.createElement(_AutoComplete.default, {
11
+ data: ['item1', 'item2']
12
+ });
13
+
14
+ /*#__PURE__*/
15
+ _react.default.createElement(_AutoComplete.default, {
16
+ data: [{
17
+ label: 'item1',
18
+ value: 'item1'
19
+ }, {
20
+ label: 'item2',
21
+ value: 'item2'
22
+ }]
23
+ });
@@ -1,5 +1,6 @@
1
1
  declare const useCalendarDate: (value: Date | null | undefined, defaultDate: Date | undefined) => {
2
2
  calendarDate: Date;
3
3
  setCalendarDate: (date: Date | undefined) => void;
4
+ resetCalendarDate: () => void;
4
5
  };
5
6
  export default useCalendarDate;
@@ -21,6 +21,11 @@ var useCalendarDate = function useCalendarDate(value, defaultDate) {
21
21
  setValue(date);
22
22
  }
23
23
  }, [calendarDate]);
24
+ var resetCalendarDate = (0, _react.useCallback)(function () {
25
+ var _ref2;
26
+
27
+ setValue((_ref2 = value !== null && value !== void 0 ? value : defaultDate) !== null && _ref2 !== void 0 ? _ref2 : new Date());
28
+ }, [defaultDate, value]);
24
29
  (0, _utils.useUpdateEffect)(function () {
25
30
  var _valueRef$current;
26
31
 
@@ -31,7 +36,8 @@ var useCalendarDate = function useCalendarDate(value, defaultDate) {
31
36
  }, [value]);
32
37
  return {
33
38
  calendarDate: calendarDate,
34
- setCalendarDate: setCalendarDate
39
+ setCalendarDate: setCalendarDate,
40
+ resetCalendarDate: resetCalendarDate
35
41
  };
36
42
  };
37
43
 
@@ -101,7 +101,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
101
101
 
102
102
  var _useCalendarDate = (0, _useCalendarDate2.default)(valueProp, calendarDefaultDate),
103
103
  calendarDate = _useCalendarDate.calendarDate,
104
- setCalendarDate = _useCalendarDate.setCalendarDate;
104
+ setCalendarDate = _useCalendarDate.setCalendarDate,
105
+ resetCalendarDate = _useCalendarDate.resetCalendarDate;
105
106
 
106
107
  var _useState = (0, _react.useState)(),
107
108
  inputState = _useState[0],
@@ -244,9 +245,9 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
244
245
  */
245
246
 
246
247
  var handleClean = (0, _react.useCallback)(function (event) {
247
- setCalendarDate(new Date());
248
248
  updateValue(event, null);
249
- }, [setCalendarDate, updateValue]);
249
+ resetCalendarDate();
250
+ }, [resetCalendarDate, updateValue]);
250
251
  /**
251
252
  * Handle keyboard events.
252
253
  */
@@ -161,11 +161,31 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
161
161
  */
162
162
 
163
163
  var updateCalendarDateRange = (0, _react.useCallback)(function (value, calendarKey) {
164
+ var nextValue = value;
165
+ var shouldTime = _utils.DateUtils.shouldTime,
166
+ getHours = _utils.DateUtils.getHours,
167
+ getMinutes = _utils.DateUtils.getMinutes,
168
+ getSeconds = _utils.DateUtils.getSeconds,
169
+ set = _utils.DateUtils.set;
170
+
171
+ if (shouldTime(formatStr) && calendarKey === undefined && (value === null || value === void 0 ? void 0 : value.length) === 1 && (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue.length) === 2) {
172
+ var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || defaultCalendarValue[1];
173
+ var _startDate = value[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
174
+
175
+ var _endDate = set((0, _dateUtils.addMonths)(_startDate, 1), {
176
+ hours: getHours(calendarEndDate),
177
+ minutes: getMinutes(calendarEndDate),
178
+ seconds: getSeconds(calendarEndDate)
179
+ });
180
+
181
+ nextValue = [_startDate, _endDate];
182
+ }
183
+
164
184
  setCalendarDate((0, _utils2.getCalendarDate)({
165
- value: value,
185
+ value: nextValue,
166
186
  calendarKey: calendarKey
167
187
  }));
168
- }, []); // if valueProp changed then update selectValue/hoverValue
188
+ }, [calendarDate, defaultCalendarValue, formatStr]); // if valueProp changed then update selectValue/hoverValue
169
189
 
170
190
  (0, _react.useEffect)(function () {
171
191
  setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
@@ -463,10 +483,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
463
483
  var nextCalendarDate;
464
484
 
465
485
  if (value && value.length) {
466
- var _startDate = value[0],
486
+ var _startDate2 = value[0],
467
487
  endData = value[1];
468
- nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
488
+ nextCalendarDate = [_startDate2, (0, _dateUtils.isSameMonth)(_startDate2, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
469
489
  } else {
490
+ // Reset the date on the calendar to the default date
470
491
  nextCalendarDate = (0, _utils2.getCalendarDate)({
471
492
  value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
472
493
  });
@@ -35,6 +35,7 @@ export { default as startOfWeek } from 'date-fns/startOfWeek';
35
35
  export { default as subDays } from 'date-fns/subDays';
36
36
  export { default as isMatch } from 'date-fns/isMatch';
37
37
  export { default as isValid } from 'date-fns/isValid';
38
+ export { default as set } from 'date-fns/set';
38
39
  export declare type CalendarOnlyPropsType = 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'hideHours' | 'hideMinutes' | 'hideSeconds';
39
40
  export declare const calendarOnlyProps: CalendarOnlyPropsType[];
40
41
  /**
@@ -6,7 +6,7 @@ exports.__esModule = true;
6
6
  exports.disabledTime = disabledTime;
7
7
  exports.getMonthView = getMonthView;
8
8
  exports.getDateMask = getDateMask;
9
- exports.shouldOnlyTime = exports.shouldDate = exports.shouldMonth = exports.shouldTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameSecond = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0;
9
+ exports.shouldOnlyTime = exports.shouldDate = exports.shouldMonth = exports.shouldTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.set = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameSecond = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0;
10
10
 
11
11
  var _pick = _interopRequireDefault(require("lodash/pick"));
12
12
 
@@ -159,6 +159,10 @@ exports.isMatch = _isMatch.default;
159
159
  var _isValid = _interopRequireDefault(require("date-fns/isValid"));
160
160
 
161
161
  exports.isValid = _isValid.default;
162
+
163
+ var _set = _interopRequireDefault(require("date-fns/set"));
164
+
165
+ exports.set = _set.default;
162
166
  var disabledTimeProps = ['disabledHours', 'disabledMinutes', 'disabledSeconds'];
163
167
  var hideTimeProps = ['hideHours', 'hideMinutes', 'hideSeconds'];
164
168
  var calendarOnlyProps = disabledTimeProps.concat(hideTimeProps);