rsuite 5.2.2 → 5.2.3

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.
@@ -65,10 +65,10 @@ var CheckboxGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
65
65
  }, [disabled, handleChange, inline, isControlled, name, plaintext, readOnly, value]);
66
66
  return /*#__PURE__*/React.createElement(CheckboxGroupContext.Provider, {
67
67
  value: contextValue
68
- }, plaintext ? /*#__PURE__*/React.createElement(Plaintext, {
68
+ }, plaintext ? /*#__PURE__*/React.createElement(Plaintext, _extends({
69
69
  ref: ref,
70
70
  localeKey: "notSelected"
71
- }, value !== null && value !== void 0 && value.length ? children : null) : /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
71
+ }, rest), value !== null && value !== void 0 && value.length ? children : null) : /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
72
72
  ref: ref,
73
73
  role: "group",
74
74
  className: classes
@@ -666,7 +666,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
666
666
  var plaintextProps = {}; // TagPicker has -6px margin-left on the plaintext wrapper
667
667
  // for fixing margin-left on tags from 2nd line on
668
668
 
669
- if (multi) {
669
+ if (multi && hasValue) {
670
670
  plaintextProps.style = {
671
671
  marginLeft: -6
672
672
  };
package/esm/Menu/Menu.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { useCallback, useContext, useRef } from 'react';
2
+ import React, { useCallback, useContext, useRef, useMemo } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import MenuContext, { MenuActionTypes, MoveFocusTo } from './MenuContext';
5
5
  import { KEY_VALUES, useCustom } from '../utils';
@@ -40,7 +40,10 @@ function Menu(props) {
40
40
  rtl = _useCustom.rtl;
41
41
 
42
42
  var activeItem = (_items$activeItemInde = items[activeItemIndex]) === null || _items$activeItemInde === void 0 ? void 0 : _items$activeItemInde.element;
43
- var menuFocus = useFocus(menuElementRef);
43
+
44
+ var _useFocus = useFocus(menuElementRef),
45
+ grabFocus = _useFocus.grab;
46
+
44
47
  var openMenu = useCallback(function (event) {
45
48
  dispatch({
46
49
  type: MenuActionTypes.OpenMenu
@@ -54,8 +57,8 @@ function Menu(props) {
54
57
  }
55
58
 
56
59
  onToggleMenu === null || onToggleMenu === void 0 ? void 0 : onToggleMenu(true, event);
57
- menuFocus.grab();
58
- }, [dispatch, onToggleMenu, menuFocus]);
60
+ grabFocus();
61
+ }, [dispatch, onToggleMenu, grabFocus]);
59
62
  var closeMenu = useCallback(function (event, returnFocusToButton) {
60
63
  if (returnFocusToButton === void 0) {
61
64
  returnFocusToButton = true;
@@ -150,41 +153,48 @@ function Menu(props) {
150
153
  if (disabled) return;
151
154
  openMenu(event);
152
155
  }, [open, disabled, openMenu]);
153
- var buttonEventHandlers = {
154
- onKeyDown: handleButtonKeydown
155
- };
156
- /**
157
- * Bind event of trigger,
158
- * not used in in the expanded state of '<Sidenav>'
159
- */
160
-
161
- if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('click')) {
162
- buttonEventHandlers.onClick = handleButtonClick;
163
- }
156
+ var buttonEventHandlers = useMemo(function () {
157
+ var buttonEventHandlers = {
158
+ onKeyDown: handleButtonKeydown
159
+ };
160
+ /**
161
+ * Bind event of trigger,
162
+ * not used in in the expanded state of '<Sidenav>'
163
+ */
164
+
165
+ if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('click')) {
166
+ buttonEventHandlers.onClick = handleButtonClick;
167
+ }
164
168
 
165
- if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('contextmenu')) {
166
- buttonEventHandlers.onContextMenu = handleButtonContextMenu;
167
- }
169
+ if (openMenuOn !== null && openMenuOn !== void 0 && openMenuOn.includes('contextmenu')) {
170
+ buttonEventHandlers.onContextMenu = handleButtonContextMenu;
171
+ }
168
172
 
173
+ return buttonEventHandlers;
174
+ }, [openMenuOn, handleButtonKeydown, handleButtonClick, handleButtonContextMenu]);
169
175
  var buttonId = useUniqueId('menubutton-');
170
- var menuId = useUniqueId('menu-'); // Ref: https://www.w3.org/TR/wai-aria-practices-1.2/#wai-aria-roles-states-and-properties-14
171
-
172
- var buttonAriaAttributes = {
173
- role: 'button',
174
- 'aria-haspopup': 'menu',
175
- 'aria-expanded': open || undefined,
176
- // it's recommend to remove aria-expanded when menu is hidden
177
- 'aria-controls': menuId
178
- };
179
-
180
- var buttonProps = _extends({
181
- id: buttonId
182
- }, buttonAriaAttributes, buttonEventHandlers, {
183
- // render props
184
- open: open
185
- });
186
-
187
- var customMenuButton = renderMenuButton === null || renderMenuButton === void 0 ? void 0 : renderMenuButton(buttonProps, buttonElementRef);
176
+ var menuId = useUniqueId('menu-');
177
+ var buttonAriaAttributes = useMemo(function () {
178
+ // Ref: https://www.w3.org/TR/wai-aria-practices-1.2/#wai-aria-roles-states-and-properties-14
179
+ return {
180
+ role: 'button',
181
+ 'aria-haspopup': 'menu',
182
+ 'aria-expanded': open || undefined,
183
+ // it's recommend to remove aria-expanded when menu is hidden
184
+ 'aria-controls': menuId
185
+ };
186
+ }, [open, menuId]);
187
+ var buttonProps = useMemo(function () {
188
+ return _extends({
189
+ id: buttonId
190
+ }, buttonAriaAttributes, buttonEventHandlers, {
191
+ // render props
192
+ open: open
193
+ });
194
+ }, [buttonId, buttonAriaAttributes, buttonEventHandlers, open]);
195
+ var customMenuButton = useMemo(function () {
196
+ return renderMenuButton === null || renderMenuButton === void 0 ? void 0 : renderMenuButton(buttonProps, buttonElementRef);
197
+ }, [renderMenuButton, buttonProps, buttonElementRef]);
188
198
  var buttonElement = customMenuButton !== null && customMenuButton !== void 0 ? customMenuButton : /*#__PURE__*/React.createElement("button", _extends({
189
199
  ref: buttonElementRef
190
200
  }, buttonProps), menuButtonText);
@@ -32,20 +32,24 @@ function MenuItem(props) {
32
32
  }, [disabled, onActivate]); // Gain/release focus on mousedown in `menubar`
33
33
 
34
34
  var handleMouseDown = useCallback(function () {
35
- dispatch({
36
- type: MenuActionTypes.MoveFocus,
37
- to: MoveFocusTo.Specific,
38
- id: menuitemRef.current.id
39
- });
40
- }, [dispatch]); // Gain/release focus on mouseenter/mouseleave in `menu`
35
+ if (!hasFocus) {
36
+ dispatch({
37
+ type: MenuActionTypes.MoveFocus,
38
+ to: MoveFocusTo.Specific,
39
+ id: menuitemRef.current.id
40
+ });
41
+ }
42
+ }, [hasFocus, dispatch]); // Gain/release focus on mouseenter/mouseleave in `menu`
41
43
 
42
44
  var handleMouseMove = useCallback(function () {
43
- dispatch({
44
- type: MenuActionTypes.MoveFocus,
45
- to: MoveFocusTo.Specific,
46
- id: menuitemRef.current.id
47
- });
48
- }, [dispatch]);
45
+ if (!hasFocus) {
46
+ dispatch({
47
+ type: MenuActionTypes.MoveFocus,
48
+ to: MoveFocusTo.Specific,
49
+ id: menuitemRef.current.id
50
+ });
51
+ }
52
+ }, [hasFocus, dispatch]);
49
53
  var handleMouseLeave = useCallback(function () {
50
54
  dispatch({
51
55
  type: MenuActionTypes.MoveFocus,
@@ -83,15 +83,17 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
83
83
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
84
84
 
85
85
  if (input) {
86
- inputRef.current.focus();
86
+ var _inputRef$current;
87
+
88
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
87
89
  }
88
90
  }, [input, onFocus]);
89
91
  var handleBlur = useCallback(function (event) {
90
92
  if (document.activeElement !== inputRef.current) {
91
- var _inputRef$current;
93
+ var _inputRef$current2;
92
94
 
93
95
  setActive(false);
94
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
96
+ (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();
95
97
  }
96
98
 
97
99
  onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
@@ -55,10 +55,10 @@ var RadioGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
55
55
  }, [disabled, handleChange, inline, isControlled, name, plaintext, readOnly, value]);
56
56
  return /*#__PURE__*/React.createElement(RadioContext.Provider, {
57
57
  value: contextValue
58
- }, plaintext ? /*#__PURE__*/React.createElement(Plaintext, {
58
+ }, plaintext ? /*#__PURE__*/React.createElement(Plaintext, _extends({
59
59
  ref: ref,
60
60
  localeKey: "notSelected"
61
- }, value ? children : null) : /*#__PURE__*/React.createElement(Component, _extends({
61
+ }, rest), value ? children : null) : /*#__PURE__*/React.createElement(Component, _extends({
62
62
  role: "radiogroup"
63
63
  }, rest, {
64
64
  ref: ref,
package/esm/Rate/Rate.js CHANGED
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { useCallback, useEffect, useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
+ import isNil from 'lodash/isNil';
5
6
  import Star from '@rsuite/icons/legacy/Star';
6
7
  import { useClassNames, useControlled, shallowEqualArray, SIZE, KEY_VALUES } from '../utils';
7
8
  import { transformValueToCharacterMap, transformCharacterMapToValue } from './utils';
@@ -120,7 +121,7 @@ var Rate = /*#__PURE__*/React.forwardRef(function (props, ref) {
120
121
  return /*#__PURE__*/React.createElement(Plaintext, {
121
122
  localeKey: "notSelected",
122
123
  className: className
123
- }, value + "(" + max + ")");
124
+ }, !isNil(value) ? value + "(" + max + ")" : null);
124
125
  }
125
126
 
126
127
  return /*#__PURE__*/React.createElement(Component, _extends({
@@ -11,9 +11,12 @@ import { ResizeObserver } from '@juggle/resize-observer';
11
11
  export default function useElementResize(eventTarget, listener) {
12
12
  var resizeObserver = useRef();
13
13
  useEffect(function () {
14
- var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;
15
- resizeObserver.current = new ResizeObserver(listener);
16
- resizeObserver.current.observe(target);
14
+ if (!resizeObserver.current) {
15
+ var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;
16
+ resizeObserver.current = new ResizeObserver(listener);
17
+ resizeObserver.current.observe(target);
18
+ }
19
+
17
20
  return function () {
18
21
  var _resizeObserver$curre;
19
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.2.2",
3
+ "version": "5.2.3",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -37,7 +37,7 @@
37
37
  "lodash": "^4.17.11",
38
38
  "prop-types": "^15.7.2",
39
39
  "react-virtualized": "^9.22.3",
40
- "rsuite-table": "^5.2.0",
40
+ "rsuite-table": "^5.2.1",
41
41
  "schema-typed": "^2.0.2"
42
42
  },
43
43
  "peerDependencies": {