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
@@ -1,14 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import React, { useCallback } from 'react';
3
+ import React, { useCallback, useRef } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { useClassNames, useControlled, useCustom } from '../utils';
6
6
  import Plaintext from '../Plaintext';
7
7
  import Loader from '../Loader';
8
-
9
- /**
10
- * fixme: Should contain an input[type=checkbox]
11
- */
12
8
  var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
13
9
  var _props$as = props.as,
14
10
  Component = _props$as === void 0 ? 'span' : _props$as,
@@ -21,7 +17,7 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
21
17
  checkedChildren = props.checkedChildren,
22
18
  unCheckedChildren = props.unCheckedChildren,
23
19
  _props$classPrefix = props.classPrefix,
24
- classPrefix = _props$classPrefix === void 0 ? 'btn-toggle' : _props$classPrefix,
20
+ classPrefix = _props$classPrefix === void 0 ? 'toggle' : _props$classPrefix,
25
21
  checkedProp = props.checked,
26
22
  defaultChecked = props.defaultChecked,
27
23
  size = props.size,
@@ -29,6 +25,8 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
29
25
  onChange = props.onChange,
30
26
  rest = _objectWithoutPropertiesLoose(props, ["as", "disabled", "readOnly", "loading", "plaintext", "className", "checkedChildren", "unCheckedChildren", "classPrefix", "checked", "defaultChecked", "size", "locale", "onChange"]);
31
27
 
28
+ var inputRef = useRef();
29
+
32
30
  var _useControlled = useControlled(checkedProp, defaultChecked),
33
31
  checked = _useControlled[0],
34
32
  setChecked = _useControlled[1];
@@ -48,48 +46,49 @@ var Toggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
48
46
  }));
49
47
  var inner = checked ? checkedChildren : unCheckedChildren;
50
48
  var label = checked ? locale.on : locale.off;
51
- var handleChange = useCallback(function (event) {
49
+ var handleInputChange = useCallback(function (e) {
52
50
  if (disabled || readOnly) {
53
51
  return;
54
52
  }
55
53
 
56
- setChecked(!checked);
57
- onChange === null || onChange === void 0 ? void 0 : onChange(!checked, event);
58
- }, [checked, disabled, onChange, readOnly, setChecked]);
59
- var handleKeyDown = useCallback(function (event) {
60
- if (event.key !== ' ') {
61
- return;
62
- }
63
-
64
- handleChange(event);
65
- event.preventDefault();
66
- }, [handleChange]);
54
+ var checked = e.target.checked;
55
+ setChecked(checked);
56
+ onChange === null || onChange === void 0 ? void 0 : onChange(checked, e);
57
+ }, [disabled, readOnly, setChecked, onChange]);
67
58
 
68
59
  if (plaintext) {
69
60
  return /*#__PURE__*/React.createElement(Plaintext, null, inner || label);
70
61
  }
71
62
 
72
- return /*#__PURE__*/React.createElement(Component, _extends({
63
+ return /*#__PURE__*/React.createElement("label", _extends({
64
+ ref: ref,
65
+ className: classes
66
+ }, rest), /*#__PURE__*/React.createElement("input", {
67
+ ref: inputRef,
68
+ type: "checkbox",
69
+ checked: checked,
70
+ disabled: disabled,
71
+ readOnly: readOnly,
72
+ onChange: handleInputChange,
73
+ className: prefix('input'),
73
74
  role: "switch",
74
75
  "aria-checked": checked,
75
76
  "aria-disabled": disabled,
76
77
  "aria-label": typeof inner === 'string' ? inner : label,
77
- "aria-busy": loading || undefined,
78
- tabIndex: 0
79
- }, rest, {
80
- ref: ref,
81
- className: classes,
82
- onClick: handleChange,
83
- onKeyDown: handleKeyDown
84
- }), /*#__PURE__*/React.createElement("span", {
78
+ "aria-busy": loading || undefined
79
+ }), /*#__PURE__*/React.createElement(Component, {
80
+ className: prefix('presentation')
81
+ }, /*#__PURE__*/React.createElement("span", {
85
82
  className: prefix('inner')
86
83
  }, inner), loading && /*#__PURE__*/React.createElement(Loader, {
87
84
  className: prefix('loader')
88
- }));
85
+ })));
89
86
  });
90
87
  Toggle.displayName = 'Toggle';
91
88
  Toggle.propTypes = {
92
89
  disabled: PropTypes.bool,
90
+ readOnly: PropTypes.bool,
91
+ plaintext: PropTypes.bool,
93
92
  checked: PropTypes.bool,
94
93
  defaultChecked: PropTypes.bool,
95
94
  checkedChildren: PropTypes.node,
@@ -97,6 +96,12 @@ Toggle.propTypes = {
97
96
  loading: PropTypes.bool,
98
97
  classPrefix: PropTypes.string,
99
98
  className: PropTypes.string,
100
- onChange: PropTypes.func
99
+ onChange: PropTypes.func,
100
+ as: PropTypes.elementType,
101
+ size: PropTypes.oneOf(['sm', 'md', 'lg']),
102
+ locale: PropTypes.shape({
103
+ on: PropTypes.string,
104
+ off: PropTypes.string
105
+ })
101
106
  };
102
107
  export default Toggle;
@@ -23,7 +23,7 @@ export interface TreeDragProps<ItemDataType = Record<string, any>> {
23
23
  /** Whether the node can be dragged */
24
24
  draggable?: boolean;
25
25
  /** Called when scrolling */
26
- onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;
26
+ onScroll?: (event: React.SyntheticEvent) => void;
27
27
  /** Called when node drag start */
28
28
  onDragStart?: (nodeData: ItemDataType, e: React.DragEvent) => void;
29
29
  /** Called when node drag enter */
@@ -61,7 +61,7 @@ export interface TreeBaseProps<ValueType = string | number, ItemDataType = Recor
61
61
  /** Callback function for data change */
62
62
  onExpand?: (expandItemValues: ItemDataType[], activeNode: ItemDataType, concat: (data: ItemDataType[], children: React.ReactNode) => ItemDataType[]) => void;
63
63
  /** Callback function after selecting tree node */
64
- onSelect?: (activeNode: ItemDataType, value: ValueType, event: React.SyntheticEvent<any>) => void;
64
+ onSelect?: (activeNode: ItemDataType, value: ValueType, event: React.SyntheticEvent) => void;
65
65
  /** Custom Render tree Node */
66
66
  renderTreeNode?: (nodeData: ItemDataType) => React.ReactNode;
67
67
  /** Custom Render icon */
@@ -69,7 +69,7 @@ export interface TreeBaseProps<ValueType = string | number, ItemDataType = Recor
69
69
  /** callback fired when search */
70
70
  onSearch?: (searchKeyword: string, event: React.KeyboardEvent<HTMLInputElement>) => void;
71
71
  /** Called when clean */
72
- onClean?: (event: React.SyntheticEvent<any>) => void;
72
+ onClean?: (event: React.SyntheticEvent) => void;
73
73
  /** Custom search rules. */
74
74
  searchBy?: (keyword: string, label: React.ReactNode, item: any) => boolean;
75
75
  /** Customizing the Rendering Menu list */
@@ -22,7 +22,7 @@ export interface TreeNodeProps extends WithAsProps {
22
22
  classPrefix?: string;
23
23
  style?: React.CSSProperties;
24
24
  onExpand?: (nodeData: any) => void;
25
- onSelect?: (nodeData: any, event: React.SyntheticEvent<any>) => void;
25
+ onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
26
26
  onRenderTreeIcon?: (nodeData: any) => React.ReactNode;
27
27
  onRenderTreeNode?: (nodeData: any) => React.ReactNode;
28
28
  onDragStart?: (data: any, event: React.DragEvent<any>) => void;
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import React, { forwardRef, useCallback, useContext } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { hasClass } from 'dom-lib';
5
+ import hasClass from 'dom-lib/hasClass';
6
6
  import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
7
7
  import Spinner from '@rsuite/icons/legacy/Spinner';
8
8
  import TreeContext from '../Tree/TreeContext';
@@ -22,7 +22,7 @@ export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, I
22
22
  /** Custom render selected items */
23
23
  renderValue?: (value: T, selectedItems: ItemDataType, selectedElement: React.ReactNode) => React.ReactNode;
24
24
  /** Called when scrolling */
25
- onScroll?: (event: React.SyntheticEvent<HTMLElement>) => void;
25
+ onScroll?: (event: React.SyntheticEvent) => void;
26
26
  }
27
27
  declare const TreePicker: PickerComponent<TreePickerProps>;
28
28
  export default TreePicker;
@@ -82,13 +82,13 @@ export interface UploaderProps extends WithAsProps {
82
82
  /** In the file list, for uploading failed files, click the callback function to upload */
83
83
  onReupload?: (file: FileType) => void;
84
84
  /** In the file list, click the callback function for the uploaded file */
85
- onPreview?: (file: FileType, event: React.SyntheticEvent<any>) => void;
85
+ onPreview?: (file: FileType, event: React.SyntheticEvent) => void;
86
86
  /** Upload callback function with erro */
87
- onError?: (status: any, file: FileType, event: React.SyntheticEvent<any>, xhr: XMLHttpRequest) => void;
87
+ onError?: (status: any, file: FileType, event: React.SyntheticEvent, xhr: XMLHttpRequest) => void;
88
88
  /** callback function after successful upload */
89
- onSuccess?: (response: any, file: FileType, event: React.SyntheticEvent<any>, xhr: XMLHttpRequest) => void;
89
+ onSuccess?: (response: any, file: FileType, event: React.SyntheticEvent, xhr: XMLHttpRequest) => void;
90
90
  /** Callback functions that upload progress change */
91
- onProgress?: (percent: number, file: FileType, event: React.SyntheticEvent<any>, xhr: XMLHttpRequest) => void;
91
+ onProgress?: (percent: number, file: FileType, event: React.SyntheticEvent, xhr: XMLHttpRequest) => void;
92
92
  /** In the file list, click the callback function to delete a file */
93
93
  onRemove?: (file: FileType) => void;
94
94
  /** Custom render file information */
@@ -1,14 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import faIR from 'date-fns/locale/fa-IR';
3
3
  var Calendar = {
4
- sunday: 'یکشنبه',
5
- monday: 'دوشنبه',
6
- tuesday: 'سه شنبه',
7
- wednesday: 'چهارشنبه',
8
- thursday: 'پنجشنبه',
9
- friday: 'جمعه',
10
- saturday: 'شنبه',
11
- ok: 'خوب',
4
+ sunday: 'ی',
5
+ monday: 'د',
6
+ tuesday: 'س',
7
+ wednesday: 'چ',
8
+ thursday: 'پ',
9
+ friday: 'ج',
10
+ saturday: 'ش',
11
+ ok: 'تایید',
12
12
  today: 'امروز',
13
13
  yesterday: 'دیروز',
14
14
  hours: 'ساعت',
@@ -1,5 +1,5 @@
1
1
  // from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
2
- import canUseDOM from 'dom-lib/lib/query/canUseDOM'; // Internet Explorer 6-11
2
+ import canUseDOM from 'dom-lib/canUseDOM'; // Internet Explorer 6-11
3
3
 
4
4
  export var isIE = function isIE() {
5
5
  return canUseDOM && /MSIE |Trident\/|Edge\//.test(window.navigator.userAgent);
@@ -39,3 +39,4 @@ export { default as useEventCallback } from './useEventCallback';
39
39
  export { default as useUpdatedRef } from './useUpdatedRef';
40
40
  export { default as useWillUnmount } from './useWillUnmount';
41
41
  export { default as useUpdateEffect } from './useUpdateEffect';
42
+ export { default as useIsMounted } from './useIsMounted';
@@ -41,4 +41,5 @@ export { default as stringToObject } from './stringToObject';
41
41
  export { default as useEventCallback } from './useEventCallback';
42
42
  export { default as useUpdatedRef } from './useUpdatedRef';
43
43
  export { default as useWillUnmount } from './useWillUnmount';
44
- export { default as useUpdateEffect } from './useUpdateEffect';
44
+ export { default as useUpdateEffect } from './useUpdateEffect';
45
+ export { default as useIsMounted } from './useIsMounted';
@@ -1,5 +1,5 @@
1
- import { scrollTop } from 'dom-lib';
2
- import requestAnimationFramePolyfill from 'dom-lib/lib/animation/requestAnimationFramePolyfill';
1
+ import scrollTop from 'dom-lib/scrollTop';
2
+ import requestAnimationFramePolyfill from 'dom-lib/requestAnimationFramePolyfill';
3
3
  export default function scrollTopAnimation(target, nextTop, animation, callback) {
4
4
  if (animation === void 0) {
5
5
  animation = true;
@@ -210,7 +210,7 @@ interface TreeSearchProps {
210
210
  searchKeyword: string;
211
211
  data: ItemDataType[];
212
212
  searchBy: (keyword: any, label: any, item: any) => boolean;
213
- callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent<any>) => void;
213
+ callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent) => void;
214
214
  }
215
215
  /**
216
216
  * A hook that handles tree search filter options
@@ -221,7 +221,7 @@ export declare function useTreeSearch(props: TreeSearchProps): {
221
221
  filteredData: ItemDataType[];
222
222
  setFilteredData: (data: ItemDataType[], searchKeyword: string) => void;
223
223
  setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
224
- handleSearch: (searchKeyword: string, event: React.SyntheticEvent<any>) => void;
224
+ handleSearch: (searchKeyword: string, event: React.SyntheticEvent) => void;
225
225
  };
226
226
  export declare function useGetTreeNodeChildren(treeData: ItemDataType[], valueKey: string, childrenKey: string): {
227
227
  data: ItemDataType[];
@@ -5,4 +5,4 @@
5
5
  * @param eventTarget The target to listen for events on
6
6
  * @param listener An event handler
7
7
  */
8
- export default function useElementResize(eventTarget: EventTarget | (() => EventTarget), listener: EventListenerOrEventListenerObject): void;
8
+ export default function useElementResize(eventTarget: Element | (() => Element), listener: ResizeObserverCallback): void;
@@ -1,5 +1,5 @@
1
- import { useEffect } from 'react';
2
- import bindElementResize, { unbind } from 'element-resize-event';
1
+ import { useEffect, useRef } from 'react';
2
+ import { ResizeObserver } from '@juggle/resize-observer';
3
3
  /**
4
4
  * Attach the event handler directly to the specified DOM element,
5
5
  * and it will be triggered when the size of the DOM element is changed.
@@ -9,11 +9,18 @@ import bindElementResize, { unbind } from 'element-resize-event';
9
9
  */
10
10
 
11
11
  export default function useElementResize(eventTarget, listener) {
12
+ var resizeObserver = useRef();
12
13
  useEffect(function () {
13
- var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;
14
- bindElementResize(target, listener);
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
+
15
20
  return function () {
16
- return unbind(target);
21
+ var _resizeObserver$curre;
22
+
23
+ (_resizeObserver$curre = resizeObserver.current) === null || _resizeObserver$curre === void 0 ? void 0 : _resizeObserver$curre.disconnect();
17
24
  };
18
25
  }, [eventTarget, listener]);
19
26
  }
@@ -1,5 +1,5 @@
1
1
  import { useEffect } from 'react';
2
- import { on } from 'dom-lib';
2
+ import on from 'dom-lib/on';
3
3
  /**
4
4
  * Attach the event handler directly to the specified DOM element.
5
5
  *
@@ -0,0 +1,2 @@
1
+ declare function useIsMounted(): () => boolean;
2
+ export default useIsMounted;
@@ -0,0 +1,16 @@
1
+ import { useCallback, useEffect, useRef } from 'react';
2
+
3
+ function useIsMounted() {
4
+ var isMounted = useRef(false);
5
+ useEffect(function () {
6
+ isMounted.current = true;
7
+ return function () {
8
+ isMounted.current = false;
9
+ };
10
+ }, []);
11
+ return useCallback(function () {
12
+ return isMounted.current;
13
+ }, []);
14
+ }
15
+
16
+ export default useIsMounted;
@@ -1,6 +1,6 @@
1
1
  import { useRef, useEffect, useCallback } from 'react';
2
2
  import { createPortal } from 'react-dom';
3
- import helper from '../DOMHelper';
3
+ import canUseDOM from 'dom-lib/canUseDOM';
4
4
 
5
5
  function usePortal(props) {
6
6
  if (props === void 0) {
@@ -10,7 +10,7 @@ function usePortal(props) {
10
10
  var _props = props,
11
11
  id = _props.id,
12
12
  container = _props.container;
13
- var rootElemRef = useRef(helper.canUseDOM ? document.body : null);
13
+ var rootElemRef = useRef(canUseDOM ? document.body : null);
14
14
  useEffect(function () {
15
15
  var containerElement = typeof container === 'function' ? container() : container; // Look for existing target dom element to append to
16
16
 
@@ -1,5 +1,7 @@
1
1
  import { useEffect, useCallback } from 'react';
2
- import helper from '../DOMHelper';
2
+ import contains from 'dom-lib/contains';
3
+ import ownerDocument from 'dom-lib/ownerDocument';
4
+ import on from 'dom-lib/on';
3
5
  import { getDOMNode, KEY_VALUES } from './';
4
6
 
5
7
  function isLeftClickEvent(event) {
@@ -31,12 +33,12 @@ function useRootClose(onRootClose, _ref) {
31
33
  var triggerElement = getDOMNode(triggerTarget);
32
34
  var overlayElement = getDOMNode(overlayTarget); // Check if the clicked element is a trigger.
33
35
 
34
- if (triggerElement && helper.contains(triggerElement, event.target)) {
36
+ if (triggerElement && contains(triggerElement, event.target)) {
35
37
  return;
36
38
  } // Check if the clicked element is a overlay.
37
39
 
38
40
 
39
- if (overlayElement && helper.contains(overlayElement, event.target)) {
41
+ if (overlayElement && contains(overlayElement, event.target)) {
40
42
  return;
41
43
  }
42
44
 
@@ -49,9 +51,9 @@ function useRootClose(onRootClose, _ref) {
49
51
  useEffect(function () {
50
52
  var currentTarget = getDOMNode(triggerTarget);
51
53
  if (disabled || !currentTarget) return;
52
- var doc = helper.ownerDocument(currentTarget);
53
- var onDocumentMouseDownListener = helper.on(doc, 'mousedown', handleDocumentMouseDown, true);
54
- var onDocumentKeyupListener = helper.on(doc, 'keyup', handleDocumentKeyUp);
54
+ var doc = ownerDocument(currentTarget);
55
+ var onDocumentMouseDownListener = on(doc, 'mousedown', handleDocumentMouseDown, true);
56
+ var onDocumentKeyupListener = on(doc, 'keyup', handleDocumentKeyUp);
55
57
  return function () {
56
58
  onDocumentMouseDownListener === null || onDocumentMouseDownListener === void 0 ? void 0 : onDocumentMouseDownListener.off();
57
59
  onDocumentKeyupListener === null || onDocumentKeyupListener === void 0 ? void 0 : onDocumentKeyupListener.off();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.1.0",
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",
@@ -25,6 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.8.4",
28
+ "@juggle/resize-observer": "^3.3.1",
28
29
  "@rsuite/icons": "^1.0.2",
29
30
  "@types/chai": "^4.2.18",
30
31
  "@types/lodash": "^4.14.134",
@@ -32,13 +33,12 @@
32
33
  "@types/react-virtualized": "^9.21.11",
33
34
  "classnames": "^2.3.1",
34
35
  "date-fns": "^2.13.0",
35
- "dom-lib": "^2.1.0",
36
- "element-resize-event": "^3.0.6",
36
+ "dom-lib": "^3.0.0",
37
37
  "lodash": "^4.17.11",
38
38
  "prop-types": "^15.7.2",
39
39
  "react-virtualized": "^9.22.3",
40
- "rsuite-table": "^5.0.2",
41
- "schema-typed": "^2.0.1"
40
+ "rsuite-table": "^5.2.1",
41
+ "schema-typed": "^2.0.2"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "react": ">=16.8.0",
@@ -1353,7 +1353,16 @@ module.exports = {
1353
1353
  * @param colorNumber
1354
1354
  */
1355
1355
  functions.add('palette', function (color, colorNumber) {
1356
- const hsv = tinycolor(color.value).toHsv();
1356
+ const {
1357
+ rgb: [r, g, b],
1358
+ alpha: a
1359
+ } = color;
1360
+ const hsv = tinycolor({
1361
+ r,
1362
+ g,
1363
+ b,
1364
+ a
1365
+ }).toHsv();
1357
1366
  const index = COLOR_NUMBER_SET.indexOf('' + colorNumber.value);
1358
1367
  if (index === -1 || index === PRIMARY_INDEX) {
1359
1368
  return less.color(color.rgb);