rsuite 5.11.0 → 5.13.1

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.
Files changed (181) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/Nav/styles/index.less +7 -1
  3. package/Navbar/styles/index.less +6 -1
  4. package/Sidenav/styles/index.less +47 -9
  5. package/cjs/Cascader/DropdownMenu.js +8 -3
  6. package/cjs/Disclosure/Disclosure.d.ts +1 -1
  7. package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
  8. package/cjs/Dropdown/Dropdown.js +26 -110
  9. package/cjs/Dropdown/DropdownItem.js +14 -58
  10. package/cjs/Dropdown/DropdownMenu.js +32 -76
  11. package/cjs/Dropdown/DropdownToggle.js +4 -17
  12. package/cjs/Form/Form.js +21 -7
  13. package/cjs/Form/FormContext.d.ts +18 -13
  14. package/cjs/Form/useSchemaModel.d.ts +9 -0
  15. package/cjs/Form/useSchemaModel.js +46 -0
  16. package/cjs/FormControl/FormControl.d.ts +3 -0
  17. package/cjs/FormControl/FormControl.js +9 -2
  18. package/cjs/FormControl/useRegisterModel.d.ts +4 -0
  19. package/cjs/FormControl/useRegisterModel.js +20 -0
  20. package/cjs/Menu/Menu.d.ts +1 -0
  21. package/cjs/Menu/Menu.js +1 -0
  22. package/cjs/Menu/MenuItem.d.ts +1 -0
  23. package/cjs/Menu/MenuItem.js +1 -0
  24. package/cjs/Menu/Menubar.d.ts +3 -0
  25. package/cjs/Menu/Menubar.js +4 -0
  26. package/cjs/Nav/Nav.d.ts +7 -2
  27. package/cjs/Nav/Nav.js +105 -5
  28. package/cjs/Nav/NavContext.d.ts +2 -8
  29. package/cjs/Nav/NavContext.js +1 -7
  30. package/cjs/Nav/NavDropdown.d.ts +71 -0
  31. package/cjs/Nav/NavDropdown.js +193 -0
  32. package/cjs/Nav/NavDropdownItem.d.ts +39 -0
  33. package/cjs/Nav/NavDropdownItem.js +141 -0
  34. package/cjs/Nav/NavDropdownMenu.d.ts +26 -0
  35. package/cjs/Nav/NavDropdownMenu.js +156 -0
  36. package/cjs/Nav/NavDropdownToggle.d.ts +21 -0
  37. package/cjs/Nav/NavDropdownToggle.js +74 -0
  38. package/cjs/Nav/NavItem.d.ts +2 -0
  39. package/cjs/Nav/NavItem.js +13 -26
  40. package/cjs/Nav/NavMenu.d.ts +38 -0
  41. package/cjs/Nav/NavMenu.js +122 -0
  42. package/cjs/Navbar/NavbarDropdown.d.ts +57 -0
  43. package/cjs/Navbar/NavbarDropdown.js +147 -0
  44. package/cjs/Navbar/NavbarDropdownItem.d.ts +41 -0
  45. package/cjs/Navbar/NavbarDropdownItem.js +149 -0
  46. package/cjs/Navbar/NavbarDropdownMenu.d.ts +37 -0
  47. package/cjs/Navbar/NavbarDropdownMenu.js +155 -0
  48. package/cjs/Navbar/NavbarDropdownToggle.d.ts +19 -0
  49. package/cjs/Navbar/NavbarDropdownToggle.js +72 -0
  50. package/cjs/Navbar/NavbarItem.d.ts +5 -2
  51. package/cjs/Navbar/NavbarItem.js +10 -4
  52. package/cjs/Overlay/OverlayTrigger.d.ts +4 -4
  53. package/cjs/Picker/utils.js +22 -15
  54. package/cjs/Sidenav/ExpandedSidenavDropdown.d.ts +43 -0
  55. package/cjs/Sidenav/ExpandedSidenavDropdown.js +166 -0
  56. package/cjs/Sidenav/ExpandedSidenavDropdownItem.d.ts +31 -0
  57. package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +141 -0
  58. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.d.ts +26 -0
  59. package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +145 -0
  60. package/cjs/Sidenav/Sidenav.d.ts +8 -2
  61. package/cjs/Sidenav/Sidenav.js +1 -2
  62. package/cjs/Sidenav/SidenavDropdown.d.ts +30 -8
  63. package/cjs/Sidenav/SidenavDropdown.js +144 -73
  64. package/cjs/Sidenav/SidenavDropdownItem.d.ts +22 -5
  65. package/cjs/Sidenav/SidenavDropdownItem.js +88 -72
  66. package/cjs/Sidenav/SidenavDropdownMenu.d.ts +26 -16
  67. package/cjs/Sidenav/SidenavDropdownMenu.js +122 -90
  68. package/cjs/Sidenav/SidenavDropdownToggle.d.ts +19 -0
  69. package/cjs/Sidenav/SidenavDropdownToggle.js +72 -0
  70. package/cjs/Sidenav/SidenavItem.d.ts +3 -0
  71. package/cjs/Sidenav/SidenavItem.js +22 -14
  72. package/cjs/Sidenav/SidenavToggle.d.ts +5 -1
  73. package/cjs/Sidenav/SidenavToggle.js +25 -9
  74. package/cjs/Whisper/Whisper.d.ts +3 -5
  75. package/cjs/Whisper/test/Whisper.test.d.ts +1 -0
  76. package/cjs/Whisper/test/Whisper.test.js +23 -0
  77. package/cjs/index.d.ts +1 -1
  78. package/cjs/utils/deprecateComponent.js +4 -6
  79. package/cjs/utils/deprecatePropType.d.ts +1 -5
  80. package/cjs/utils/deprecatePropType.js +7 -14
  81. package/cjs/utils/treeUtils.js +8 -10
  82. package/cjs/utils/useInternalId.d.ts +1 -1
  83. package/cjs/utils/useInternalId.js +2 -2
  84. package/cjs/utils/warnOnce.d.ts +9 -0
  85. package/cjs/utils/warnOnce.js +22 -0
  86. package/dist/rsuite-rtl.css +81 -15
  87. package/dist/rsuite-rtl.min.css +1 -1
  88. package/dist/rsuite-rtl.min.css.map +1 -1
  89. package/dist/rsuite.css +81 -15
  90. package/dist/rsuite.js +303 -28
  91. package/dist/rsuite.js.map +1 -1
  92. package/dist/rsuite.min.css +1 -1
  93. package/dist/rsuite.min.css.map +1 -1
  94. package/dist/rsuite.min.js +1 -1
  95. package/dist/rsuite.min.js.map +1 -1
  96. package/esm/Cascader/DropdownMenu.js +8 -3
  97. package/esm/Disclosure/Disclosure.d.ts +1 -1
  98. package/esm/Disclosure/DisclosureContext.d.ts +1 -1
  99. package/esm/Dropdown/Dropdown.js +25 -105
  100. package/esm/Dropdown/DropdownItem.js +13 -55
  101. package/esm/Dropdown/DropdownMenu.js +31 -76
  102. package/esm/Dropdown/DropdownToggle.js +4 -14
  103. package/esm/Form/Form.js +19 -7
  104. package/esm/Form/FormContext.d.ts +18 -13
  105. package/esm/Form/useSchemaModel.d.ts +9 -0
  106. package/esm/Form/useSchemaModel.js +39 -0
  107. package/esm/FormControl/FormControl.d.ts +3 -0
  108. package/esm/FormControl/FormControl.js +9 -6
  109. package/esm/FormControl/useRegisterModel.d.ts +4 -0
  110. package/esm/FormControl/useRegisterModel.js +14 -0
  111. package/esm/Menu/Menu.d.ts +1 -0
  112. package/esm/Menu/Menu.js +1 -0
  113. package/esm/Menu/MenuItem.d.ts +1 -0
  114. package/esm/Menu/MenuItem.js +1 -0
  115. package/esm/Menu/Menubar.d.ts +3 -0
  116. package/esm/Menu/Menubar.js +4 -0
  117. package/esm/Nav/Nav.d.ts +7 -2
  118. package/esm/Nav/Nav.js +96 -5
  119. package/esm/Nav/NavContext.d.ts +2 -8
  120. package/esm/Nav/NavContext.js +1 -6
  121. package/esm/Nav/NavDropdown.d.ts +71 -0
  122. package/esm/Nav/NavDropdown.js +170 -0
  123. package/esm/Nav/NavDropdownItem.d.ts +39 -0
  124. package/esm/Nav/NavDropdownItem.js +123 -0
  125. package/esm/Nav/NavDropdownMenu.d.ts +26 -0
  126. package/esm/Nav/NavDropdownMenu.js +138 -0
  127. package/esm/Nav/NavDropdownToggle.d.ts +21 -0
  128. package/esm/Nav/NavDropdownToggle.js +57 -0
  129. package/esm/Nav/NavItem.d.ts +2 -0
  130. package/esm/Nav/NavItem.js +13 -21
  131. package/esm/Nav/NavMenu.d.ts +38 -0
  132. package/esm/Nav/NavMenu.js +98 -0
  133. package/esm/Navbar/NavbarDropdown.d.ts +57 -0
  134. package/esm/Navbar/NavbarDropdown.js +124 -0
  135. package/esm/Navbar/NavbarDropdownItem.d.ts +41 -0
  136. package/esm/Navbar/NavbarDropdownItem.js +128 -0
  137. package/esm/Navbar/NavbarDropdownMenu.d.ts +37 -0
  138. package/esm/Navbar/NavbarDropdownMenu.js +135 -0
  139. package/esm/Navbar/NavbarDropdownToggle.d.ts +19 -0
  140. package/esm/Navbar/NavbarDropdownToggle.js +55 -0
  141. package/esm/Navbar/NavbarItem.d.ts +5 -2
  142. package/esm/Navbar/NavbarItem.js +11 -4
  143. package/esm/Overlay/OverlayTrigger.d.ts +4 -4
  144. package/esm/Picker/utils.js +22 -14
  145. package/esm/Sidenav/ExpandedSidenavDropdown.d.ts +43 -0
  146. package/esm/Sidenav/ExpandedSidenavDropdown.js +140 -0
  147. package/esm/Sidenav/ExpandedSidenavDropdownItem.d.ts +31 -0
  148. package/esm/Sidenav/ExpandedSidenavDropdownItem.js +120 -0
  149. package/esm/Sidenav/ExpandedSidenavDropdownMenu.d.ts +26 -0
  150. package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +121 -0
  151. package/esm/Sidenav/Sidenav.d.ts +8 -2
  152. package/esm/Sidenav/Sidenav.js +1 -2
  153. package/esm/Sidenav/SidenavDropdown.d.ts +30 -8
  154. package/esm/Sidenav/SidenavDropdown.js +145 -75
  155. package/esm/Sidenav/SidenavDropdownItem.d.ts +22 -5
  156. package/esm/Sidenav/SidenavDropdownItem.js +87 -71
  157. package/esm/Sidenav/SidenavDropdownMenu.d.ts +26 -16
  158. package/esm/Sidenav/SidenavDropdownMenu.js +122 -86
  159. package/esm/Sidenav/SidenavDropdownToggle.d.ts +19 -0
  160. package/esm/Sidenav/SidenavDropdownToggle.js +55 -0
  161. package/esm/Sidenav/SidenavItem.d.ts +3 -0
  162. package/esm/Sidenav/SidenavItem.js +23 -15
  163. package/esm/Sidenav/SidenavToggle.d.ts +5 -1
  164. package/esm/Sidenav/SidenavToggle.js +22 -9
  165. package/esm/Whisper/Whisper.d.ts +3 -5
  166. package/esm/Whisper/test/Whisper.test.d.ts +1 -0
  167. package/esm/Whisper/test/Whisper.test.js +16 -0
  168. package/esm/index.d.ts +1 -1
  169. package/esm/utils/deprecateComponent.js +3 -4
  170. package/esm/utils/deprecatePropType.d.ts +1 -5
  171. package/esm/utils/deprecatePropType.js +3 -13
  172. package/esm/utils/treeUtils.js +8 -10
  173. package/esm/utils/useInternalId.d.ts +1 -1
  174. package/esm/utils/useInternalId.js +2 -2
  175. package/esm/utils/warnOnce.d.ts +9 -0
  176. package/esm/utils/warnOnce.js +18 -0
  177. package/package.json +1 -1
  178. package/styles/color-modes/dark.less +3 -0
  179. package/styles/color-modes/high-contrast.less +3 -0
  180. package/styles/color-modes/light.less +3 -0
  181. package/styles/variables.less +3 -0
@@ -31,7 +31,16 @@ var _omit = _interopRequireDefault(require("lodash/omit"));
31
31
 
32
32
  var _Sidenav = require("./Sidenav");
33
33
 
34
+ /**
35
+ * @private
36
+ */
34
37
  var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
38
+ var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
39
+
40
+ if (!sidenav) {
41
+ throw new Error('<SidenavItem> component is not supposed to be used standalone. Use <Nav.Item> inside <Sidenav> instead.');
42
+ }
43
+
35
44
  var _props$as = props.as,
36
45
  Component = _props$as === void 0 ? _SafeAnchor.default : _props$as,
37
46
  activeProp = props.active,
@@ -48,15 +57,10 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
48
57
  divider = props.divider,
49
58
  panel = props.panel,
50
59
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "active", "children", "className", "disabled", "classPrefix", "icon", "eventKey", "style", "onClick", "onSelect", "divider", "panel"]);
51
- var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
52
-
53
- if (!sidenav) {
54
- throw new Error('<SidenavItem> component is not supposed to be used standalone. Use <Nav.Item> inside <Sidenav> instead.');
55
- }
56
60
 
57
- var _useContext = (0, _react.useContext)(_NavContext.default),
58
- activeKey = _useContext.activeKey,
59
- onSelectFromNav = _useContext.onSelect;
61
+ var _ref = (0, _react.useContext)(_NavContext.default),
62
+ activeKey = _ref.activeKey,
63
+ onSelectFromNav = _ref.onSelect;
60
64
 
61
65
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
62
66
  merge = _useClassNames.merge,
@@ -76,10 +80,10 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
76
80
  selected: selected,
77
81
  disabled: disabled,
78
82
  onActivate: handleClick
79
- }, function (_ref, menuitemRef) {
80
- var selected = _ref.selected,
81
- active = _ref.active,
82
- menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["selected", "active"]);
83
+ }, function (_ref2, menuitemRef) {
84
+ var selected = _ref2.selected,
85
+ active = _ref2.active,
86
+ menuitem = (0, _objectWithoutPropertiesLoose2.default)(_ref2, ["selected", "active"]);
83
87
  var classes = merge(className, withClassPrefix({
84
88
  focus: active,
85
89
  active: selected,
@@ -93,7 +97,9 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
93
97
  disabled: Component === _SafeAnchor.default ? disabled : undefined,
94
98
  className: classes,
95
99
  "data-event-key": eventKey
96
- }, (0, _omit.default)(rest, ['divider', 'panel']), triggerProps, menuitem), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
100
+ }, (0, _omit.default)(rest, ['divider', 'panel']), triggerProps, menuitem), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
101
+ className: prefix('icon')
102
+ }), _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
97
103
  },
98
104
  message: _children,
99
105
  placement: 'right'
@@ -129,7 +135,9 @@ var SidenavItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
129
135
  style: style,
130
136
  "aria-selected": selected || undefined,
131
137
  "data-event-key": eventKey
132
- }, rest), icon, _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
138
+ }, rest), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
139
+ className: prefix('icon')
140
+ }), _children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null));
133
141
  });
134
142
 
135
143
  SidenavItem.displayName = 'Sidenav.Item';
@@ -1,7 +1,11 @@
1
1
  import React from 'react';
2
2
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
3
  export interface SidenavToggleProps extends WithAsProps {
4
- /** Expand then nav */
4
+ /**
5
+ * Expand then nav
6
+ *
7
+ * @deprecated Use <Sidenav expanded> instead.
8
+ */
5
9
  expanded?: boolean;
6
10
  /** Callback function for menu state switching */
7
11
  onToggle?: (expanded: boolean, event: React.MouseEvent) => void;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  exports.__esModule = true;
@@ -9,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
11
 
10
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
@@ -21,24 +23,37 @@ var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"
21
23
 
22
24
  var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
23
25
 
26
+ var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropType"));
27
+
28
+ var _Sidenav = require("./Sidenav");
29
+
24
30
  var SidenavToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
31
+ var sidenav = (0, _react.useContext)(_Sidenav.SidenavContext);
32
+
33
+ if (!sidenav) {
34
+ throw new Error('<Sidenav.Toggle> must be rendered within a <Sidenav>');
35
+ }
36
+
25
37
  var _props$as = props.as,
26
38
  Component = _props$as === void 0 ? 'div' : _props$as,
27
- expanded = props.expanded,
39
+ DEPRECATED_expanded = props.expanded,
28
40
  className = props.className,
29
41
  _props$classPrefix = props.classPrefix,
30
42
  classPrefix = _props$classPrefix === void 0 ? 'sidenav-toggle' : _props$classPrefix,
31
43
  onToggle = props.onToggle,
32
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "expanded", "className", "classPrefix", "onToggle"]);
44
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "expanded", "className", "classPrefix", "onToggle"]); // if `expanded` prop is provided, it takes priority
45
+
46
+ var expanded = DEPRECATED_expanded !== null && DEPRECATED_expanded !== void 0 ? DEPRECATED_expanded : sidenav.expanded;
33
47
 
34
48
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
35
49
  merge = _useClassNames.merge,
36
- withClassPrefix = _useClassNames.withClassPrefix;
50
+ withClassPrefix = _useClassNames.withClassPrefix,
51
+ prefix = _useClassNames.prefix;
37
52
 
38
53
  var classes = merge(className, withClassPrefix({
39
54
  collapsed: !expanded
40
55
  }));
41
- var Icon = expanded ? _AngleRight.default : _AngleLeft.default;
56
+ var Icon = expanded ? _AngleLeft.default : _AngleRight.default;
42
57
 
43
58
  var handleToggle = function handleToggle(event) {
44
59
  onToggle === null || onToggle === void 0 ? void 0 : onToggle(!expanded, event);
@@ -48,17 +63,18 @@ var SidenavToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
48
63
  ref: ref,
49
64
  className: classes
50
65
  }), /*#__PURE__*/_react.default.createElement(_IconButton.default, {
51
- appearance: "default",
52
66
  icon: /*#__PURE__*/_react.default.createElement(Icon, null),
53
- onClick: handleToggle
67
+ className: prefix('button'),
68
+ onClick: handleToggle,
69
+ "aria-label": expanded ? 'Collapse' : 'Expand'
54
70
  }));
55
71
  });
56
72
 
57
- SidenavToggle.displayName = 'SidenavToggle';
73
+ SidenavToggle.displayName = 'Sidenav.Toggle';
58
74
  SidenavToggle.propTypes = {
59
75
  classPrefix: _propTypes.default.string,
60
76
  className: _propTypes.default.string,
61
- expanded: _propTypes.default.bool,
77
+ expanded: (0, _deprecatePropType.default)(_propTypes.default.bool, 'Use <Sidenav expanded> instead.'),
62
78
  onToggle: _propTypes.default.func
63
79
  };
64
80
  var _default = SidenavToggle;
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
+ import { OverlayTriggerInstance } from '../Overlay/OverlayTrigger';
2
3
  import { OverlayTriggerProps } from '../Overlay/OverlayTrigger';
3
4
  export declare type WhisperProps = OverlayTriggerProps;
4
- export interface WhisperInstance extends React.Component<WhisperProps> {
5
- open: (delay?: number) => void;
6
- close: (delay?: number) => void;
7
- }
8
- declare const Whisper: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<unknown>>;
5
+ export declare type WhisperInstance = OverlayTriggerInstance;
6
+ declare const Whisper: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerInstance>>;
9
7
  export default Whisper;
@@ -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 _Whisper = _interopRequireDefault(require("../Whisper"));
8
+
9
+ var _whisperRef$current, _whisperRef$current2, _whisperRef$current3, _whisperRef$current4, _whisperRef$current5;
10
+
11
+ var whisperRef = /*#__PURE__*/_react.default.createRef();
12
+
13
+ /*#__PURE__*/
14
+ _react.default.createElement(_Whisper.default, {
15
+ ref: whisperRef,
16
+ speaker: /*#__PURE__*/_react.default.createElement("div", null)
17
+ }, /*#__PURE__*/_react.default.createElement("div", null));
18
+
19
+ (_whisperRef$current = whisperRef.current) === null || _whisperRef$current === void 0 ? void 0 : _whisperRef$current.open();
20
+ (_whisperRef$current2 = whisperRef.current) === null || _whisperRef$current2 === void 0 ? void 0 : _whisperRef$current2.open(300);
21
+ (_whisperRef$current3 = whisperRef.current) === null || _whisperRef$current3 === void 0 ? void 0 : _whisperRef$current3.close();
22
+ (_whisperRef$current4 = whisperRef.current) === null || _whisperRef$current4 === void 0 ? void 0 : _whisperRef$current4.close(300);
23
+ (_whisperRef$current5 = whisperRef.current) === null || _whisperRef$current5 === void 0 ? void 0 : _whisperRef$current5.updatePosition();
package/cjs/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export type { ButtonToolbarProps } from './ButtonToolbar';
7
7
  export { default as ButtonGroup } from './ButtonGroup';
8
8
  export type { ButtonGroupProps } from './ButtonGroup';
9
9
  export { default as Whisper } from './Whisper';
10
- export type { WhisperProps } from './Whisper';
10
+ export type { WhisperProps, WhisperInstance } from './Whisper';
11
11
  export { default as Tooltip } from './Tooltip';
12
12
  export type { TooltipProps } from './Tooltip';
13
13
  export { default as Popover } from './Popover';
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  exports.__esModule = true;
@@ -9,7 +7,9 @@ exports.default = deprecateComponent;
9
7
 
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
9
 
12
- var _react = _interopRequireWildcard(require("react"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _warnOnce = _interopRequireDefault(require("./warnOnce"));
13
13
 
14
14
  /**
15
15
  * HOC for display a deprecation message from a deprecated component
@@ -21,9 +21,7 @@ function deprecateComponent(Component, message) {
21
21
  var componentDisplayName = (_Component$displayNam = Component.displayName) !== null && _Component$displayNam !== void 0 ? _Component$displayNam : Component.name;
22
22
 
23
23
  var Deprecated = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
24
- (0, _react.useEffect)(function () {
25
- console.warn(message);
26
- }, []);
24
+ (0, _warnOnce.default)(message);
27
25
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
28
26
  ref: ref
29
27
  }, props));
@@ -1,6 +1,2 @@
1
1
  import * as PropTypes from 'prop-types';
2
- declare function deprecatePropType<T extends PropTypes.Validator<any>>(propType: T, explanation?: string): typeof propType;
3
- declare namespace deprecatePropType {
4
- var _resetWarned: () => void;
5
- }
6
- export default deprecatePropType;
2
+ export default function deprecatePropType<T extends PropTypes.Validator<any>>(propType: T, explanation?: string): typeof propType;
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  exports.__esModule = true;
4
6
  exports.default = deprecatePropType;
5
- // Ref: https://github.com/thefrontside/deprecated-prop-type/blob/master/deprecated.js
6
- var warned = {};
7
7
 
8
+ var _warnOnce = _interopRequireDefault(require("./warnOnce"));
9
+
10
+ // Ref: https://github.com/thefrontside/deprecated-prop-type/blob/master/deprecated.js
8
11
  function deprecatePropType(propType, explanation) {
9
12
  return function validate(props, propName, componentName) {
10
13
  // Note ...rest here
11
14
  if (props[propName] != null) {
12
15
  var message = "\"" + propName + "\" property of \"" + componentName + "\" has been deprecated.\n" + explanation;
13
-
14
- if (!warned[message]) {
15
- console.warn(message);
16
- warned[message] = true;
17
- }
16
+ (0, _warnOnce.default)(message);
18
17
  }
19
18
 
20
19
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
@@ -23,10 +22,4 @@ function deprecatePropType(propType, explanation) {
23
22
 
24
23
  return propType.apply(void 0, [props, propName, componentName].concat(rest)); // and here
25
24
  };
26
- }
27
-
28
- function _resetWarned() {
29
- warned = {};
30
- }
31
-
32
- deprecatePropType._resetWarned = _resetWarned;
25
+ }
@@ -776,11 +776,7 @@ function useFlattenTreeData(_ref8) {
776
776
  var forceUpdate = (0, _react.useCallback)(function () {
777
777
  dispatch(Object.create(null));
778
778
  }, [dispatch]);
779
-
780
- var _useRef = (0, _react.useRef)({}),
781
- _useRef$current = _useRef.current,
782
- flattenNodes = _useRef$current === void 0 ? {} : _useRef$current;
783
-
779
+ var flattenNodes = (0, _react.useRef)({});
784
780
  var flattenTreeData = (0, _react.useCallback)(function (treeData, ref, parent, layer) {
785
781
  if (layer === void 0) {
786
782
  layer = 1;
@@ -795,20 +791,20 @@ function useFlattenTreeData(_ref8) {
795
791
 
796
792
  var refKey = ref + "-" + index;
797
793
  node.refKey = refKey;
798
- flattenNodes[refKey] = (0, _extends3.default)((_extends2 = {
794
+ flattenNodes.current[refKey] = (0, _extends3.default)((_extends2 = {
799
795
  layer: layer
800
796
  }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {
801
797
  return (0, _utils2.shallowEqual)(node[valueKey], value);
802
798
  }), _extends2), node);
803
799
 
804
800
  if (parent) {
805
- flattenNodes[refKey].parent = (0, _omit2.default)(parent, 'parent', 'children');
801
+ flattenNodes.current[refKey].parent = (0, _omit2.default)(parent, 'parent', 'children');
806
802
  }
807
803
 
808
804
  flattenTreeData(node[childrenKey], refKey, node, layer + 1);
809
805
  });
810
- callback === null || callback === void 0 ? void 0 : callback(flattenNodes);
811
- }, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues, flattenNodes]);
806
+ callback === null || callback === void 0 ? void 0 : callback(flattenNodes.current);
807
+ }, [childrenKey, valueKey, labelKey, callback, uncheckableItemValues]);
812
808
  var serializeListOnlyParent = (0, _react.useCallback)(function (nodes, key) {
813
809
  var list = [];
814
810
  Object.keys(nodes).forEach(function (refKey) {
@@ -909,12 +905,14 @@ function useFlattenTreeData(_ref8) {
909
905
  };
910
906
 
911
907
  (0, _react.useEffect)(function () {
908
+ // when data is changed, should clear the flattenNodes, avoid duplicate keys
909
+ flattenNodes.current = {};
912
910
  flattenTreeData(data, '0');
913
911
  }, [data]); // eslint-disable-line react-hooks/exhaustive-deps
914
912
 
915
913
  return {
916
914
  forceUpdate: forceUpdate,
917
- flattenNodes: flattenNodes,
915
+ flattenNodes: flattenNodes.current,
918
916
  flattenTreeData: flattenTreeData,
919
917
  serializeListOnlyParent: serializeListOnlyParent,
920
918
  unSerializeList: unSerializeList,
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * Used for generating unique ID for DOM elements
3
3
  */
4
- export default function useInternalId(prefix?: string): string;
4
+ export default function useInternalId(namespace?: string): string;
@@ -12,11 +12,11 @@ var _uniqueId = _interopRequireDefault(require("lodash/uniqueId"));
12
12
  /**
13
13
  * Used for generating unique ID for DOM elements
14
14
  */
15
- function useInternalId(prefix) {
15
+ function useInternalId(namespace) {
16
16
  var idRef = (0, _react.useRef)();
17
17
 
18
18
  if (!idRef.current) {
19
- idRef.current = (0, _uniqueId.default)("internal://" + prefix);
19
+ idRef.current = (0, _uniqueId.default)("internal://" + namespace);
20
20
  }
21
21
 
22
22
  (0, _react.useDebugValue)(idRef.current);
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Logs a warning message
3
+ * but dont warn a same message twice
4
+ */
5
+ declare function warnOnce(message: string): void;
6
+ declare namespace warnOnce {
7
+ var _resetWarned: () => void;
8
+ }
9
+ export default warnOnce;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = warnOnce;
5
+ var warned = {};
6
+ /**
7
+ * Logs a warning message
8
+ * but dont warn a same message twice
9
+ */
10
+
11
+ function warnOnce(message) {
12
+ if (!warned[message]) {
13
+ console.warn(message);
14
+ warned[message] = true;
15
+ }
16
+ }
17
+
18
+ warnOnce._resetWarned = function () {
19
+ for (var _message in warned) {
20
+ delete warned[_message];
21
+ }
22
+ };