rsuite 5.1.0 → 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.
Files changed (211) hide show
  1. package/Button/styles/index.less +7 -1
  2. package/CHANGELOG.md +45 -0
  3. package/PanelGroup/styles/index.less +12 -12
  4. package/README.md +3 -45
  5. package/Sidenav/styles/index.less +4 -0
  6. package/Slider/styles/index.less +20 -14
  7. package/Toggle/styles/index.less +48 -27
  8. package/Toggle/styles/mixin.less +16 -14
  9. package/cjs/@types/common.d.ts +8 -2
  10. package/cjs/Affix/Affix.js +3 -3
  11. package/cjs/Animation/Collapse.js +9 -7
  12. package/cjs/Animation/Transition.js +4 -2
  13. package/cjs/AutoComplete/AutoComplete.d.ts +2 -2
  14. package/cjs/AutoComplete/AutoComplete.js +7 -4
  15. package/cjs/Calendar/TimeDropdown.js +5 -3
  16. package/cjs/Cascader/Cascader.d.ts +1 -1
  17. package/cjs/Cascader/DropdownMenu.js +6 -5
  18. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  19. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  20. package/cjs/CheckTreePicker/utils.d.ts +1 -1
  21. package/cjs/CheckTreePicker/utils.js +7 -6
  22. package/cjs/Checkbox/Checkbox.d.ts +3 -3
  23. package/cjs/CheckboxGroup/CheckboxGroup.js +2 -2
  24. package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  25. package/cjs/DOMHelper/index.d.ts +12 -27
  26. package/cjs/DOMHelper/index.js +4 -3
  27. package/cjs/DOMHelper/isElement.d.ts +2 -0
  28. package/cjs/DOMHelper/isElement.js +11 -0
  29. package/cjs/DatePicker/DatePicker.d.ts +3 -3
  30. package/cjs/DateRangePicker/Calendar.d.ts +1 -1
  31. package/cjs/DateRangePicker/DateRangePicker.d.ts +2 -2
  32. package/cjs/Disclosure/Disclosure.d.ts +1 -1
  33. package/cjs/Disclosure/DisclosureContext.d.ts +1 -1
  34. package/cjs/Dropdown/DropdownItem.d.ts +1 -1
  35. package/cjs/Dropdown/DropdownItem.js +16 -19
  36. package/cjs/Dropdown/DropdownMenu.d.ts +2 -2
  37. package/cjs/Dropdown/useRenderDropdownItem.d.ts +2 -0
  38. package/cjs/Dropdown/useRenderDropdownItem.js +26 -0
  39. package/cjs/Form/Form.d.ts +1 -1
  40. package/cjs/FormControl/FormControl.d.ts +9 -3
  41. package/cjs/Input/Input.d.ts +2 -1
  42. package/cjs/InputNumber/InputNumber.js +2 -2
  43. package/cjs/InputPicker/InputPicker.js +3 -3
  44. package/cjs/List/helper/useSortHelper.js +11 -6
  45. package/cjs/MaskedInput/MaskedInput.d.ts +5 -42
  46. package/cjs/MaskedInput/MaskedInput.js +9 -63
  47. package/cjs/MaskedInput/TextMask.d.ts +43 -0
  48. package/cjs/MaskedInput/TextMask.js +80 -0
  49. package/cjs/Menu/Menu.js +46 -34
  50. package/cjs/Menu/MenuItem.d.ts +1 -1
  51. package/cjs/Menu/MenuItem.js +16 -12
  52. package/cjs/Menu/Menubar.d.ts +1 -1
  53. package/cjs/Message/Message.js +13 -11
  54. package/cjs/Modal/Modal.js +5 -3
  55. package/cjs/Modal/utils.js +15 -14
  56. package/cjs/Notification/Notification.js +6 -3
  57. package/cjs/Overlay/Modal.js +14 -11
  58. package/cjs/Overlay/ModalManager.js +19 -7
  59. package/cjs/Overlay/OverlayTrigger.js +2 -2
  60. package/cjs/Overlay/Position.js +27 -17
  61. package/cjs/Overlay/positionUtils.js +16 -8
  62. package/cjs/Panel/Panel.d.ts +1 -1
  63. package/cjs/Picker/DropdownMenu.js +10 -6
  64. package/cjs/Picker/DropdownMenuCheckItem.d.ts +3 -3
  65. package/cjs/Picker/PickerOverlay.js +5 -3
  66. package/cjs/Picker/PickerToggle.d.ts +6 -0
  67. package/cjs/Picker/PickerToggle.js +16 -8
  68. package/cjs/Picker/SearchBar.d.ts +1 -1
  69. package/cjs/Picker/utils.d.ts +2 -2
  70. package/cjs/Radio/Radio.d.ts +1 -1
  71. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  72. package/cjs/RadioGroup/RadioGroup.js +2 -2
  73. package/cjs/RangeSlider/RangeSlider.js +9 -5
  74. package/cjs/Rate/Character.js +2 -2
  75. package/cjs/Rate/Rate.js +3 -1
  76. package/cjs/Ripple/Ripple.js +6 -7
  77. package/cjs/Sidenav/SidenavDropdownItem.d.ts +1 -1
  78. package/cjs/Sidenav/SidenavDropdownItem.js +17 -10
  79. package/cjs/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  80. package/cjs/Slider/Graduated.js +1 -1
  81. package/cjs/Slider/Handle.js +10 -5
  82. package/cjs/Slider/ProgressBar.js +1 -1
  83. package/cjs/Slider/Slider.js +9 -5
  84. package/cjs/Toggle/Toggle.d.ts +3 -6
  85. package/cjs/Toggle/Toggle.js +32 -27
  86. package/cjs/Tree/Tree.d.ts +3 -3
  87. package/cjs/TreePicker/TreeNode.d.ts +1 -1
  88. package/cjs/TreePicker/TreeNode.js +2 -2
  89. package/cjs/TreePicker/TreePicker.d.ts +1 -1
  90. package/cjs/Uploader/Uploader.d.ts +4 -4
  91. package/cjs/locales/fa_IR.js +8 -8
  92. package/cjs/utils/BrowserDetection.js +1 -1
  93. package/cjs/utils/index.d.ts +1 -0
  94. package/cjs/utils/index.js +7 -2
  95. package/cjs/utils/scrollTopAnimation.js +5 -5
  96. package/cjs/utils/treeUtils.d.ts +2 -2
  97. package/cjs/utils/useElementResize.d.ts +1 -1
  98. package/cjs/utils/useElementResize.js +11 -6
  99. package/cjs/utils/useEventListener.js +4 -2
  100. package/cjs/utils/useIsMounted.d.ts +2 -0
  101. package/cjs/utils/useIsMounted.js +22 -0
  102. package/cjs/utils/usePortal.js +2 -2
  103. package/cjs/utils/useRootClose.js +10 -10
  104. package/dist/rsuite-rtl.css +194 -119
  105. package/dist/rsuite-rtl.min.css +1 -1
  106. package/dist/rsuite-rtl.min.css.map +1 -1
  107. package/dist/rsuite.css +194 -119
  108. package/dist/rsuite.js +703 -504
  109. package/dist/rsuite.js.map +1 -1
  110. package/dist/rsuite.min.css +1 -1
  111. package/dist/rsuite.min.css.map +1 -1
  112. package/dist/rsuite.min.js +1 -1
  113. package/dist/rsuite.min.js.LICENSE.txt +9 -0
  114. package/dist/rsuite.min.js.map +1 -1
  115. package/esm/@types/common.d.ts +8 -2
  116. package/esm/Affix/Affix.js +1 -1
  117. package/esm/Animation/Collapse.js +2 -1
  118. package/esm/Animation/Transition.js +3 -2
  119. package/esm/AutoComplete/AutoComplete.d.ts +2 -2
  120. package/esm/AutoComplete/AutoComplete.js +8 -5
  121. package/esm/Calendar/TimeDropdown.js +2 -1
  122. package/esm/Cascader/Cascader.d.ts +1 -1
  123. package/esm/Cascader/DropdownMenu.js +4 -3
  124. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  125. package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  126. package/esm/CheckTreePicker/utils.d.ts +1 -1
  127. package/esm/CheckTreePicker/utils.js +7 -6
  128. package/esm/Checkbox/Checkbox.d.ts +3 -3
  129. package/esm/CheckboxGroup/CheckboxGroup.js +2 -2
  130. package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  131. package/esm/DOMHelper/index.d.ts +12 -27
  132. package/esm/DOMHelper/index.js +2 -3
  133. package/esm/DOMHelper/isElement.d.ts +2 -0
  134. package/esm/DOMHelper/isElement.js +5 -0
  135. package/esm/DatePicker/DatePicker.d.ts +3 -3
  136. package/esm/DateRangePicker/Calendar.d.ts +1 -1
  137. package/esm/DateRangePicker/DateRangePicker.d.ts +2 -2
  138. package/esm/Disclosure/Disclosure.d.ts +1 -1
  139. package/esm/Disclosure/DisclosureContext.d.ts +1 -1
  140. package/esm/Dropdown/DropdownItem.d.ts +1 -1
  141. package/esm/Dropdown/DropdownItem.js +15 -19
  142. package/esm/Dropdown/DropdownMenu.d.ts +2 -2
  143. package/esm/Dropdown/useRenderDropdownItem.d.ts +2 -0
  144. package/esm/Dropdown/useRenderDropdownItem.js +18 -0
  145. package/esm/Form/Form.d.ts +1 -1
  146. package/esm/FormControl/FormControl.d.ts +9 -3
  147. package/esm/Input/Input.d.ts +2 -1
  148. package/esm/InputNumber/InputNumber.js +2 -2
  149. package/esm/InputPicker/InputPicker.js +2 -2
  150. package/esm/List/helper/useSortHelper.js +8 -4
  151. package/esm/MaskedInput/MaskedInput.d.ts +5 -42
  152. package/esm/MaskedInput/MaskedInput.js +9 -63
  153. package/esm/MaskedInput/TextMask.d.ts +43 -0
  154. package/esm/MaskedInput/TextMask.js +67 -0
  155. package/esm/Menu/Menu.js +46 -36
  156. package/esm/Menu/MenuItem.d.ts +1 -1
  157. package/esm/Menu/MenuItem.js +16 -12
  158. package/esm/Menu/Menubar.d.ts +1 -1
  159. package/esm/Message/Message.js +15 -13
  160. package/esm/Modal/Modal.js +3 -2
  161. package/esm/Modal/utils.js +14 -12
  162. package/esm/Notification/Notification.js +7 -4
  163. package/esm/Overlay/Modal.js +11 -8
  164. package/esm/Overlay/ModalManager.js +6 -1
  165. package/esm/Overlay/OverlayTrigger.js +1 -1
  166. package/esm/Overlay/Position.js +20 -11
  167. package/esm/Overlay/positionUtils.js +5 -1
  168. package/esm/Panel/Panel.d.ts +1 -1
  169. package/esm/Picker/DropdownMenu.js +3 -1
  170. package/esm/Picker/DropdownMenuCheckItem.d.ts +3 -3
  171. package/esm/Picker/PickerOverlay.js +2 -1
  172. package/esm/Picker/PickerToggle.d.ts +6 -0
  173. package/esm/Picker/PickerToggle.js +15 -8
  174. package/esm/Picker/SearchBar.d.ts +1 -1
  175. package/esm/Picker/utils.d.ts +2 -2
  176. package/esm/Radio/Radio.d.ts +1 -1
  177. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  178. package/esm/RadioGroup/RadioGroup.js +2 -2
  179. package/esm/RangeSlider/RangeSlider.js +4 -2
  180. package/esm/Rate/Character.js +2 -2
  181. package/esm/Rate/Rate.js +2 -1
  182. package/esm/Ripple/Ripple.js +4 -3
  183. package/esm/Sidenav/SidenavDropdownItem.d.ts +1 -1
  184. package/esm/Sidenav/SidenavDropdownItem.js +16 -10
  185. package/esm/Sidenav/SidenavDropdownMenu.d.ts +1 -1
  186. package/esm/Slider/Graduated.js +1 -1
  187. package/esm/Slider/Handle.js +5 -2
  188. package/esm/Slider/ProgressBar.js +1 -1
  189. package/esm/Slider/Slider.js +4 -2
  190. package/esm/Toggle/Toggle.d.ts +3 -6
  191. package/esm/Toggle/Toggle.js +34 -29
  192. package/esm/Tree/Tree.d.ts +3 -3
  193. package/esm/TreePicker/TreeNode.d.ts +1 -1
  194. package/esm/TreePicker/TreeNode.js +1 -1
  195. package/esm/TreePicker/TreePicker.d.ts +1 -1
  196. package/esm/Uploader/Uploader.d.ts +4 -4
  197. package/esm/locales/fa_IR.js +8 -8
  198. package/esm/utils/BrowserDetection.js +1 -1
  199. package/esm/utils/index.d.ts +1 -0
  200. package/esm/utils/index.js +2 -1
  201. package/esm/utils/scrollTopAnimation.js +2 -2
  202. package/esm/utils/treeUtils.d.ts +2 -2
  203. package/esm/utils/useElementResize.d.ts +1 -1
  204. package/esm/utils/useElementResize.js +12 -5
  205. package/esm/utils/useEventListener.js +1 -1
  206. package/esm/utils/useIsMounted.d.ts +2 -0
  207. package/esm/utils/useIsMounted.js +16 -0
  208. package/esm/utils/usePortal.js +2 -2
  209. package/esm/utils/useRootClose.js +8 -6
  210. package/package.json +5 -5
  211. package/styles/plugins/palette.js +10 -1
@@ -17,7 +17,9 @@ var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
- var _domLib = require("dom-lib");
20
+ var _getPosition2 = _interopRequireDefault(require("dom-lib/getPosition"));
21
+
22
+ var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
21
23
 
22
24
  var _partial = _interopRequireDefault(require("lodash/partial"));
23
25
 
@@ -99,10 +101,10 @@ var scrollTo = function scrollTo(time, row) {
99
101
  var node = container === null || container === void 0 ? void 0 : container.querySelector("[data-key=\"" + type + "-" + value + "\"]");
100
102
 
101
103
  if (node && container) {
102
- var _getPosition = (0, _domLib.getPosition)(node, container),
104
+ var _getPosition = (0, _getPosition2.default)(node, container),
103
105
  top = _getPosition.top;
104
106
 
105
- (0, _utils.scrollTopAnimation)(container, top, (0, _domLib.scrollTop)(container) !== 0);
107
+ (0, _utils.scrollTopAnimation)(container, top, (0, _scrollTop.default)(container) !== 0);
106
108
  }
107
109
  });
108
110
  };
@@ -25,7 +25,7 @@ export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T,
25
25
  /** Called when clean */
26
26
  onClean?: (event: React.SyntheticEvent) => void;
27
27
  /** Called when searching */
28
- onSearch?: (searchKeyword: string, event: React.SyntheticEvent<HTMLElement>) => void;
28
+ onSearch?: (searchKeyword: string, event: React.SyntheticEvent) => void;
29
29
  /** Asynchronously load the children of the tree node. */
30
30
  getChildren?: (node: ItemDataType) => ItemDataType[] | Promise<ItemDataType[]>;
31
31
  }
@@ -17,8 +17,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
18
  var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
19
19
 
20
- var _DOMHelper = _interopRequireDefault(require("../DOMHelper"));
21
-
22
20
  var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
23
21
 
24
22
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
@@ -31,6 +29,10 @@ var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"
31
29
 
32
30
  var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
33
31
 
32
+ var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
33
+
34
+ var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
35
+
34
36
  var emptyArray = [];
35
37
 
36
38
  var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -83,10 +85,9 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
83
85
  }
84
86
 
85
87
  if (activeItem) {
86
- var position = _DOMHelper.default.getPosition(activeItem, column); // Let the active option scroll into view.
87
-
88
+ var position = (0, _getPosition.default)(activeItem, column); // Let the active option scroll into view.
88
89
 
89
- _DOMHelper.default.scrollTop(column, position.top);
90
+ (0, _scrollTop.default)(column, position.top);
90
91
  }
91
92
  });
92
93
  }, [prefix]);
@@ -20,7 +20,7 @@ export interface CheckTreeNodeProps extends WithAsProps {
20
20
  uncheckable?: boolean;
21
21
  allUncheckable?: boolean;
22
22
  onExpand?: (nodeData: any) => void;
23
- onSelect?: (nodeData: any, event: React.SyntheticEvent<any>) => void;
23
+ onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
24
24
  onRenderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
25
25
  onRenderTreeNode?: (nodeData: any) => React.ReactNode;
26
26
  }
@@ -14,7 +14,7 @@ export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, It
14
14
  /** Custom render selected items */
15
15
  renderValue?: (value: any[], selectedItems: any[], selectedElement: React.ReactNode) => React.ReactNode;
16
16
  /** Called when scrolling */
17
- onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;
17
+ onScroll?: (event: React.SyntheticEvent) => void;
18
18
  }
19
19
  declare const CheckTreePicker: PickerComponent<CheckTreePickerProps>;
20
20
  export default CheckTreePicker;
@@ -19,7 +19,7 @@ export interface TreeNodesType {
19
19
  [key: string]: TreeNodeType;
20
20
  }
21
21
  export declare function isEveryChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
22
- export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
22
+ export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType, childrenKey: string): boolean;
23
23
  export declare function isSomeNodeHasChildren(data: any[], childrenKey: string): boolean;
24
24
  /**
25
25
  * is all siblings nodes is uncheckable
@@ -41,18 +41,19 @@ function isEveryChildChecked(nodes, parent) {
41
41
  });
42
42
  }
43
43
 
44
- function isSomeChildChecked(nodes, parent) {
44
+ function isSomeChildChecked(nodes, parent, childrenKey) {
45
45
  if ((0, _isNil2.default)(nodes[parent.refKey])) {
46
46
  return false;
47
47
  }
48
48
 
49
49
  var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);
50
+ return children.some(function (child) {
51
+ var _child$childrenKey;
50
52
 
51
- if (!children.length) {
52
- return nodes[parent.refKey].check;
53
- }
53
+ if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {
54
+ return isSomeChildChecked(nodes, child, childrenKey);
55
+ }
54
56
 
55
- return children.some(function (child) {
56
57
  return nodes[child.refKey].check;
57
58
  });
58
59
  }
@@ -215,7 +216,7 @@ function getNodeCheckState(_ref) {
215
216
  return _utils.CHECK_STATE.CHECK;
216
217
  }
217
218
 
218
- if (isSomeChildChecked(nodes, node)) {
219
+ if (isSomeChildChecked(nodes, node, childrenKey)) {
219
220
  nodes[node.refKey].checkAll = false;
220
221
  return _utils.CHECK_STATE.INDETERMINATE;
221
222
  }
@@ -31,11 +31,11 @@ export interface CheckboxProps<V = ValueType> extends WithAsProps {
31
31
  /** Used for the name of the form */
32
32
  name?: string;
33
33
  /** Called when the user attempts to change the checked state. */
34
- onChange?: (value: V, checked: boolean, event: React.SyntheticEvent<HTMLInputElement>) => void;
34
+ onChange?: (value: V, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
35
35
  /** Called when the checkbox or label is clicked. */
36
- onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;
36
+ onClick?: (event: React.SyntheticEvent) => void;
37
37
  /** Called when the checkbox is clicked. */
38
- onCheckboxClick?: (event: React.SyntheticEvent<HTMLElement>) => void;
38
+ onCheckboxClick?: (event: React.SyntheticEvent) => void;
39
39
  }
40
40
  declare const Checkbox: RsRefForwardingComponent<'div', CheckboxProps>;
41
41
  export default Checkbox;
@@ -83,10 +83,10 @@ var CheckboxGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
83
83
  }, [disabled, handleChange, inline, isControlled, name, plaintext, readOnly, value]);
84
84
  return /*#__PURE__*/_react.default.createElement(_CheckboxGroupContext.CheckboxGroupContext.Provider, {
85
85
  value: contextValue
86
- }, plaintext ? /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
86
+ }, plaintext ? /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({
87
87
  ref: ref,
88
88
  localeKey: "notSelected"
89
- }, value !== null && value !== void 0 && value.length ? children : null) : /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
89
+ }, rest), value !== null && value !== void 0 && value.length ? children : null) : /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
90
90
  ref: ref,
91
91
  role: "group",
92
92
  className: classes
@@ -8,6 +8,6 @@ export interface CheckboxGroupContextValue {
8
8
  disabled?: boolean;
9
9
  readOnly?: boolean;
10
10
  plaintext?: boolean;
11
- onChange?: (value: any, checked: boolean, event: React.SyntheticEvent<HTMLInputElement>) => void;
11
+ onChange?: (value: any, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
12
12
  }
13
13
  export declare const CheckboxGroupContext: React.Context<CheckboxGroupContextValue>;
@@ -2,34 +2,17 @@ import * as helpers from 'dom-lib';
2
2
  export * from 'dom-lib';
3
3
  declare const DOMHelper: {
4
4
  isElement: (node: HTMLElement) => boolean;
5
- animation: typeof helpers.animation;
6
- transition: () => {
7
- end: any;
8
- backfaceVisibility: string;
9
- transform: string;
10
- property: string;
11
- timing: string;
12
- delay: string;
13
- duration: string;
14
- };
15
- translateDOMPositionXY: (style: CSSStyleDeclaration, x?: number, y?: number) => CSSStyleDeclaration;
16
- getVendorPrefixedName: typeof helpers.getVendorPrefixedName;
17
- BrowserSupportCore: {
18
- hasCSSAnimations: () => boolean;
19
- hasCSSTransforms: () => boolean;
20
- hasCSS3DTransforms: () => boolean;
21
- hasCSSTransitions: () => boolean;
22
- };
23
- DOMMouseMoveTracker: typeof helpers.DOMMouseMoveTracker;
5
+ on: typeof helpers.on;
6
+ off: typeof helpers.off;
24
7
  WheelHandler: typeof helpers.WheelHandler;
8
+ DOMMouseMoveTracker: typeof helpers.DOMMouseMoveTracker;
25
9
  addClass: (target: Element, className: string) => Element;
26
- hasClass: (target: Element, className: string) => boolean;
27
10
  removeClass: (target: Element, className: string) => Element;
11
+ hasClass: (target: Element, className: string) => boolean;
28
12
  toggleClass: (target: Element, className: string) => Element;
29
- getStyle: (node: Element, property?: string) => string | CSSStyleDeclaration;
30
- removeStyle: (node: Element, keys: string | string[]) => void;
31
- addStyle: (node: Element, property: string | import("dom-lib/lib/style/addStyle").CSSProperty, value?: string | number) => void;
32
- getComputedStyle: (node: Element) => CSSStyleDeclaration;
13
+ cancelAnimationFramePolyfill: typeof clearTimeout;
14
+ requestAnimationFramePolyfill: typeof requestAnimationFrame;
15
+ getAnimationEnd: typeof helpers.getAnimationEnd;
33
16
  ownerDocument: (node: Element) => Document;
34
17
  ownerWindow: (componentOrElement: Element) => Window;
35
18
  getWindow: (node: any) => Window;
@@ -53,11 +36,13 @@ declare const DOMHelper: {
53
36
  width: number;
54
37
  };
55
38
  isOverflowing: (container: Element) => boolean;
56
- activeElement: (doc?: Document) => Element;
57
39
  getScrollbarSize: (recalc?: boolean) => number | void;
58
40
  getHeight: (node: Element | Window, client?: Element) => number;
59
41
  getWidth: (node: Element | Window, client?: Element) => number;
60
- on: typeof helpers.on;
61
- off: typeof helpers.off;
42
+ isFocusable: typeof helpers.isFocusable;
43
+ getStyle: (node: Element, property?: string) => string | CSSStyleDeclaration;
44
+ removeStyle: (node: Element, keys: string | string[]) => void;
45
+ addStyle: (node: Element, property: string | import("dom-lib/esm/addStyle").CSSProperty, value?: string | number) => void;
46
+ translateDOMPositionXY: (style: CSSStyleDeclaration, x?: number, y?: number) => CSSStyleDeclaration;
62
47
  };
63
48
  export default DOMHelper;
@@ -18,10 +18,11 @@ Object.keys(helpers).forEach(function (key) {
18
18
  if (key in exports && exports[key] === helpers[key]) return;
19
19
  exports[key] = helpers[key];
20
20
  });
21
+
22
+ var _isElement = _interopRequireDefault(require("./isElement"));
23
+
21
24
  var DOMHelper = (0, _extends2.default)({}, helpers, {
22
- isElement: function isElement(node) {
23
- return (node === null || node === void 0 ? void 0 : node.nodeType) && typeof (node === null || node === void 0 ? void 0 : node.nodeName) === 'string';
24
- }
25
+ isElement: _isElement.default
25
26
  });
26
27
  var _default = DOMHelper;
27
28
  exports.default = _default;
@@ -0,0 +1,2 @@
1
+ declare const isElement: (node: HTMLElement) => boolean;
2
+ export default isElement;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var isElement = function isElement(node) {
7
+ return (node === null || node === void 0 ? void 0 : node.nodeType) === 1 && typeof (node === null || node === void 0 ? void 0 : node.nodeName) === 'string';
8
+ };
9
+
10
+ var _default = isElement;
11
+ exports.default = _default;
@@ -41,19 +41,19 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
41
41
  /** Hidden seconds */
42
42
  hideSeconds?: (second: number, date: Date) => boolean;
43
43
  /** Called when the calendar panel date changes */
44
- onChangeCalendarDate?: (date: Date, event?: React.SyntheticEvent<HTMLElement>) => void;
44
+ onChangeCalendarDate?: (date: Date, event?: React.SyntheticEvent) => void;
45
45
  /** Called when opening the month view */
46
46
  onToggleMonthDropdown?: (toggle: boolean) => void;
47
47
  /** Called when opening the time view */
48
48
  onToggleTimeDropdown?: (toggle: boolean) => void;
49
49
  /** Called when the option is selected */
50
- onSelect?: (date: Date, event?: React.SyntheticEvent<HTMLElement>) => void;
50
+ onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
51
51
  /** Called after the prev month */
52
52
  onPrevMonth?: (date: Date) => void;
53
53
  /** Called after the next month */
54
54
  onNextMonth?: (date: Date) => void;
55
55
  /** Called after clicking the OK button */
56
- onOk?: (date: Date, event: React.SyntheticEvent<HTMLElement>) => void;
56
+ onOk?: (date: Date, event: React.SyntheticEvent) => void;
57
57
  /** Called when clean */
58
58
  onClean?: (event: React.MouseEvent) => void;
59
59
  /** Custom render value */
@@ -16,7 +16,7 @@ export interface CalendarProps extends WithAsProps, Omit<CalendarCoreProps, Omit
16
16
  onChangeCalendarDate?: (index: number, date: Date) => void;
17
17
  onChangeCalendarTime?: (index: number, date: Date) => void;
18
18
  onMouseMove?: (date: Date) => void;
19
- onSelect?: (date: Date, event?: React.SyntheticEvent<any>) => void;
19
+ onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
20
20
  showOneCalendar?: boolean;
21
21
  showWeekNumbers?: boolean;
22
22
  value?: ValueType;
@@ -26,9 +26,9 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
26
26
  /** Disabled date */
27
27
  disabledDate?: DisabledDateFunction;
28
28
  /** Called when the option is selected */
29
- onSelect?: (date: Date, event?: React.SyntheticEvent<HTMLElement>) => void;
29
+ onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
30
30
  /** Called after clicking the OK button */
31
- onOk?: (date: ValueType, event: React.SyntheticEvent<HTMLElement>) => void;
31
+ onOk?: (date: ValueType, event: React.SyntheticEvent) => void;
32
32
  /** Called when clean */
33
33
  onClean?: (event: React.MouseEvent) => void;
34
34
  /** Custom render value */
@@ -12,7 +12,7 @@ export interface DisclosureProps {
12
12
  defaultOpen?: boolean;
13
13
  hideOnClickOutside?: boolean;
14
14
  /** Callback when disclosure button is being activated to update the open state */
15
- onToggle?: (open: boolean, event: React.SyntheticEvent<HTMLElement>) => void;
15
+ onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
16
16
  }
17
17
  declare function Disclosure(props: DisclosureProps): JSX.Element;
18
18
  declare namespace Disclosure {
@@ -13,7 +13,7 @@ export declare type DisclosureContextProps = [
13
13
  DisclosureState,
14
14
  Dispatch<DisclosureAction>,
15
15
  {
16
- onToggle: (open: boolean, event?: React.SyntheticEvent<HTMLElement>) => void;
16
+ onToggle: (open: boolean, event?: React.SyntheticEvent) => void;
17
17
  }
18
18
  ];
19
19
  declare const DisclosureContext: React.Context<DisclosureContextProps>;
@@ -32,7 +32,7 @@ export interface DropdownMenuItemProps<T = any> extends WithAsProps, Omit<React.
32
32
  */
33
33
  open?: boolean;
34
34
  /** Select the callback function for the current option */
35
- onSelect?: (eventKey: T, event: React.SyntheticEvent<HTMLElement>) => void;
35
+ onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
36
36
  }
37
37
  /**
38
38
  * The <Dropdown.Item> API
@@ -41,6 +41,8 @@ var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
41
41
 
42
42
  var _DropdownState = require("./DropdownState");
43
43
 
44
+ var _useRenderDropdownItem = require("./useRenderDropdownItem");
45
+
44
46
  /**
45
47
  * The <Dropdown.Item> API
46
48
  * When used inside <Sidenav>, renders a <TreeviewItem>
@@ -112,15 +114,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
112
114
  };
113
115
  }
114
116
  }, [internalId, selected, dispatch]);
115
- var renderDropdownItem = (0, _react.useCallback)(function (ui) {
116
- if (Component === 'li') {
117
- return ui;
118
- }
119
-
120
- return /*#__PURE__*/_react.default.createElement("li", {
121
- role: "none presentation"
122
- }, ui);
123
- }, [Component]);
117
+ var renderDropdownItem = (0, _useRenderDropdownItem.useRenderDropdownItem)(Component);
124
118
 
125
119
  if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
126
120
  return /*#__PURE__*/_react.default.createElement(_SidenavDropdownItem.default, (0, _extends2.default)({
@@ -129,18 +123,19 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
129
123
  }
130
124
 
131
125
  if (divider) {
132
- return renderDropdownItem( /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
126
+ return renderDropdownItem((0, _extends2.default)({
133
127
  ref: ref,
134
- role: "separator",
128
+ role: 'separator',
135
129
  className: merge(prefix('divider'), className)
136
- }, restProps)));
130
+ }, restProps));
137
131
  }
138
132
 
139
133
  if (panel) {
140
- return renderDropdownItem( /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
134
+ return renderDropdownItem((0, _extends2.default)({
141
135
  ref: ref,
142
- className: merge(prefix('panel'), className)
143
- }, restProps), children));
136
+ className: merge(prefix('panel'), className),
137
+ children: children
138
+ }, restProps));
144
139
  }
145
140
 
146
141
  if (navbar) {
@@ -195,12 +190,14 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
195
190
  dataAttributes['data-event-key-type'] = typeof eventKey;
196
191
  }
197
192
 
198
- return renderDropdownItem( /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
193
+ return renderDropdownItem((0, _extends2.default)({
199
194
  ref: (0, _utils.mergeRefs)(ref, menuitemRef),
200
195
  className: classes
201
- }, menuitem, dataAttributes, restProps), icon && /*#__PURE__*/_react.default.cloneElement(icon, {
202
- className: prefix('menu-icon')
203
- }), children));
196
+ }, menuitem, dataAttributes, restProps, {
197
+ children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.cloneElement(icon, {
198
+ className: prefix('menu-icon')
199
+ }), children)
200
+ }));
204
201
  });
205
202
  });
206
203
 
@@ -19,8 +19,8 @@ export interface DropdownMenuProps<T = string> extends StandardProps {
19
19
  disabled?: boolean;
20
20
  activeKey?: T;
21
21
  trigger?: 'hover' | 'click';
22
- onSelect?: (eventKey: T, event: React.SyntheticEvent<Element>) => void;
23
- onToggle?: (eventKey: T, event: React.SyntheticEvent<Element>) => void;
22
+ onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
23
+ onToggle?: (eventKey: T, event: React.SyntheticEvent) => void;
24
24
  }
25
25
  /**
26
26
  * The <Dropdown.Menu> API
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function useRenderDropdownItem(Component: React.ElementType): (props: any, OverrideComponent?: React.ElementType) => JSX.Element;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ exports.__esModule = true;
6
+ exports.useRenderDropdownItem = useRenderDropdownItem;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ function useRenderDropdownItem(Component) {
11
+ return (0, _react.useCallback)(function (props, OverrideComponent) {
12
+ if (Component === 'li') {
13
+ if (OverrideComponent) {
14
+ return /*#__PURE__*/_react.default.createElement("li", {
15
+ role: "none presentation"
16
+ }, /*#__PURE__*/_react.default.createElement(OverrideComponent, props));
17
+ }
18
+
19
+ return /*#__PURE__*/_react.default.createElement(Component, props);
20
+ }
21
+
22
+ return /*#__PURE__*/_react.default.createElement("li", {
23
+ role: "none presentation"
24
+ }, /*#__PURE__*/_react.default.createElement(Component, props));
25
+ }, [Component]);
26
+ }
@@ -33,7 +33,7 @@ export interface FormProps<T = Record<string, any>, errorMsgType = any, E = {
33
33
  /** The error message comes from context */
34
34
  errorFromContext?: boolean;
35
35
  /** Callback fired when data changing */
36
- onChange?: (formValue: T, event: React.SyntheticEvent<HTMLElement>) => void;
36
+ onChange?: (formValue: T, event: React.SyntheticEvent) => void;
37
37
  /** Callback fired when error checking */
38
38
  onError?: (formError: E) => void;
39
39
  /** Callback fired when data cheking */
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { TypeAttributes, FormControlBaseProps, WithAsProps, RsRefForwardingComponent } from '../@types/common';
2
+ import Input from '../Input';
3
+ import { TypeAttributes, FormControlBaseProps, WithAsProps } from '../@types/common';
3
4
  /**
4
5
  * Props that FormControl passes to its accepter
5
6
  */
@@ -12,7 +13,7 @@ export interface FormControlProps<P = any, ValueType = any> extends WithAsProps,
12
13
  /** Value */
13
14
  value?: ValueType;
14
15
  /** Callback fired when data changing */
15
- onChange?(value: ValueType, event: React.SyntheticEvent<HTMLElement>): void;
16
+ onChange?(value: ValueType, event: React.SyntheticEvent): void;
16
17
  /** The data validation trigger type, and it wiill overrides the setting on <Form> */
17
18
  checkTrigger?: TypeAttributes.CheckTrigger;
18
19
  /** Show error messages */
@@ -28,5 +29,10 @@ export interface FormControlProps<P = any, ValueType = any> extends WithAsProps,
28
29
  /** Asynchronous check value */
29
30
  checkAsync?: boolean;
30
31
  }
31
- declare const FormControl: RsRefForwardingComponent<'div', FormControlProps>;
32
+ interface FormControlComponent extends React.FC<FormControlProps> {
33
+ <Accepter extends React.ElementType = typeof Input>(props: FormControlProps & {
34
+ accepter?: Accepter;
35
+ } & React.ComponentPropsWithRef<Accepter>): React.ReactElement;
36
+ }
37
+ declare const FormControl: FormControlComponent;
32
38
  export default FormControl;
@@ -3,7 +3,7 @@ import { WithAsProps, RsRefForwardingComponent, TypeAttributes, FormControlBaseP
3
3
  export interface LocaleType {
4
4
  unfilled: string;
5
5
  }
6
- export interface InputProps extends WithAsProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'>, FormControlBaseProps<string | number | ReadonlyArray<string>> {
6
+ export interface InputProps extends WithAsProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'>, FormControlBaseProps {
7
7
  /** The HTML input type */
8
8
  type?: string;
9
9
  /** The HTML input id */
@@ -12,6 +12,7 @@ export interface InputProps extends WithAsProps, Omit<React.InputHTMLAttributes<
12
12
  size?: TypeAttributes.Size;
13
13
  /** Ref of input element */
14
14
  inputRef?: React.Ref<any>;
15
+ onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
15
16
  /** Called on press enter */
16
17
  onPressEnter?: React.KeyboardEventHandler<HTMLInputElement>;
17
18
  }
@@ -21,7 +21,7 @@ var _AngleUp = _interopRequireDefault(require("@rsuite/icons/legacy/AngleUp"));
21
21
 
22
22
  var _AngleDown = _interopRequireDefault(require("@rsuite/icons/legacy/AngleDown"));
23
23
 
24
- var _DOMHelper = _interopRequireDefault(require("../DOMHelper"));
24
+ var _on = _interopRequireDefault(require("dom-lib/on"));
25
25
 
26
26
  var _InputGroup = _interopRequireDefault(require("../InputGroup/InputGroup"));
27
27
 
@@ -216,7 +216,7 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
216
216
  var wheelListener;
217
217
 
218
218
  if (inputRef.current && scrollable) {
219
- wheelListener = _DOMHelper.default.on(inputRef.current, 'wheel', handleWheel, {
219
+ wheelListener = (0, _on.default)(inputRef.current, 'wheel', handleWheel, {
220
220
  passive: false
221
221
  });
222
222
  }
@@ -33,7 +33,7 @@ var _omit = _interopRequireDefault(require("lodash/omit"));
33
33
 
34
34
  var _pick = _interopRequireDefault(require("lodash/pick"));
35
35
 
36
- var _domLib = require("dom-lib");
36
+ var _getWidth = _interopRequireDefault(require("dom-lib/getWidth"));
37
37
 
38
38
  var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
39
39
 
@@ -232,7 +232,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
232
232
 
233
233
  // In multiple selection, you need to set a maximum width for the input.
234
234
  if ((_triggerRef$current2 = triggerRef.current) !== null && _triggerRef$current2 !== void 0 && _triggerRef$current2.root) {
235
- setMaxWidth((0, _domLib.getWidth)(triggerRef.current.root));
235
+ setMaxWidth((0, _getWidth.default)(triggerRef.current.root));
236
236
  }
237
237
  }, []); // Update the position of the menu when the search keyword and value change
238
238
 
@@ -696,7 +696,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
696
696
  var plaintextProps = {}; // TagPicker has -6px margin-left on the plaintext wrapper
697
697
  // for fixing margin-left on tags from 2nd line on
698
698
 
699
- if (multi) {
699
+ if (multi && hasValue) {
700
700
  plaintextProps.style = {
701
701
  marginLeft: -6
702
702
  };
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
 
8
- var _domLib = require("dom-lib");
8
+ var _on = _interopRequireDefault(require("dom-lib/on"));
9
9
 
10
10
  var _react = require("react");
11
11
 
@@ -13,6 +13,8 @@ var _AutoScroller = _interopRequireDefault(require("./AutoScroller"));
13
13
 
14
14
  var _utils = require("./utils");
15
15
 
16
+ var _utils2 = require("../../utils");
17
+
16
18
  var _useManager2 = _interopRequireDefault(require("./useManager"));
17
19
 
18
20
  function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -41,14 +43,16 @@ var useSortHelper = function useSortHelper(config) {
41
43
  listItemRegister = _useManager.listItemRegister,
42
44
  getManagedItem = _useManager.getManagedItem,
43
45
  getOrderedItems = _useManager.getOrderedItems;
46
+
47
+ var isMounted = (0, _utils2.useIsMounted)();
44
48
  /**
45
49
  * start dragging
46
50
  * */
47
51
 
48
-
49
52
  var handlePress = (0, _react.useCallback)(function (mouseDownEvent, targetNode, curManagedItem) {
50
53
  var _activeNodeHelper;
51
54
 
55
+ if (!isMounted()) return;
52
56
  var listItemBaseClassName = targetNode.classList[0]; // get list item base className
53
57
 
54
58
  var helperElementClass = listItemBaseClassName + "-helper";
@@ -108,7 +112,7 @@ var useSortHelper = function useSortHelper(config) {
108
112
  });
109
113
  };
110
114
 
111
- var sortMouseMoveListener = (0, _domLib.on)(window, 'mousemove', function (mouseOverEvent) {
115
+ var sortMouseMoveListener = (0, _on.default)(window, 'mousemove', function (mouseOverEvent) {
112
116
  // Update helper position
113
117
  var offset = {
114
118
  x: (mouseOverEvent === null || mouseOverEvent === void 0 ? void 0 : mouseOverEvent.pageX) || 0,
@@ -213,7 +217,7 @@ var useSortHelper = function useSortHelper(config) {
213
217
  }, {
214
218
  passive: false
215
219
  });
216
- var sortMouseEndListener = (0, _domLib.on)(window, 'mouseup', function (event) {
220
+ var sortMouseEndListener = (0, _on.default)(window, 'mouseup', function (event) {
217
221
  // Remove the event listeners
218
222
  sortMouseMoveListener.off();
219
223
  sortMouseEndListener.off();
@@ -228,7 +232,8 @@ var useSortHelper = function useSortHelper(config) {
228
232
  setTimeout(function () {
229
233
  var _activeNodeHelper2, _activeNodeHelper2$pa;
230
234
 
231
- // Remove the helper from the DOM
235
+ if (!isMounted()) return; // Remove the helper from the DOM
236
+
232
237
  (_activeNodeHelper2 = activeNodeHelper) === null || _activeNodeHelper2 === void 0 ? void 0 : (_activeNodeHelper2$pa = _activeNodeHelper2.parentNode) === null || _activeNodeHelper2$pa === void 0 ? void 0 : _activeNodeHelper2$pa.removeChild(activeNodeHelper);
233
238
  activeNodeHelper = null; // Remove redundant styles
234
239
 
@@ -271,7 +276,7 @@ var useSortHelper = function useSortHelper(config) {
271
276
  oldIndex: activeNodeOldIndex,
272
277
  newIndex: activeNodeNextIndex
273
278
  }, mouseDownEvent.nativeEvent);
274
- }, [autoScroll, getOrderedItems, onSort, onSortEnd, onSortMove, onSortStart, transitionDuration]);
279
+ }, [autoScroll, getOrderedItems, isMounted, onSort, onSortEnd, onSortMove, onSortStart, transitionDuration]);
275
280
  /**
276
281
  * Determine whether to start dragging
277
282
  * */