rsuite 5.16.1 → 5.16.2

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 (73) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/Picker/styles/index.less +2 -0
  3. package/Slider/styles/index.less +2 -1
  4. package/TreePicker/styles/index.less +0 -3
  5. package/cjs/Cascader/utils.js +3 -5
  6. package/cjs/CheckPicker/CheckPicker.d.ts +1 -1
  7. package/cjs/CheckPicker/test/CheckPicker.test.js +8 -0
  8. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +2 -2
  9. package/cjs/CheckTreePicker/test/CheckTreePicker.test.d.ts +1 -0
  10. package/cjs/CheckTreePicker/test/CheckTreePicker.test.js +15 -0
  11. package/cjs/CheckTreePicker/utils.js +3 -1
  12. package/cjs/CustomProvider/CustomProvider.js +6 -3
  13. package/cjs/DateRangePicker/Calendar.d.ts +0 -1
  14. package/cjs/DateRangePicker/Calendar.js +1 -39
  15. package/cjs/DateRangePicker/DateRangePicker.js +22 -22
  16. package/cjs/DateRangePicker/utils.d.ts +2 -1
  17. package/cjs/DateRangePicker/utils.js +12 -3
  18. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  19. package/cjs/InputPicker/test/InputPicker.test.d.ts +1 -0
  20. package/cjs/InputPicker/test/InputPicker.test.js +15 -0
  21. package/cjs/MultiCascader/utils.js +3 -2
  22. package/cjs/Overlay/OverlayTrigger.js +1 -1
  23. package/cjs/Panel/Panel.js +8 -7
  24. package/cjs/SelectPicker/SelectPicker.d.ts +7 -1
  25. package/cjs/SelectPicker/test/SelectPicker.test.js +23 -0
  26. package/cjs/TreePicker/TreePicker.d.ts +2 -2
  27. package/cjs/TreePicker/test/TreePicker.test.d.ts +1 -0
  28. package/cjs/TreePicker/test/TreePicker.test.js +15 -0
  29. package/cjs/utils/attachParent.d.ts +1 -0
  30. package/cjs/utils/attachParent.js +15 -0
  31. package/cjs/utils/treeUtils.js +3 -2
  32. package/cjs/utils/usePortal.d.ts +4 -2
  33. package/cjs/utils/usePortal.js +40 -14
  34. package/dist/rsuite-rtl.css +8 -9
  35. package/dist/rsuite-rtl.min.css +1 -1
  36. package/dist/rsuite-rtl.min.css.map +1 -1
  37. package/dist/rsuite.css +8 -9
  38. package/dist/rsuite.js +26 -15
  39. package/dist/rsuite.js.map +1 -1
  40. package/dist/rsuite.min.css +1 -1
  41. package/dist/rsuite.min.css.map +1 -1
  42. package/dist/rsuite.min.js +1 -1
  43. package/dist/rsuite.min.js.map +1 -1
  44. package/esm/Cascader/utils.js +2 -4
  45. package/esm/CheckPicker/CheckPicker.d.ts +1 -1
  46. package/esm/CheckPicker/test/CheckPicker.test.js +8 -0
  47. package/esm/CheckTreePicker/CheckTreePicker.d.ts +2 -2
  48. package/esm/CheckTreePicker/test/CheckTreePicker.test.d.ts +1 -0
  49. package/esm/CheckTreePicker/test/CheckTreePicker.test.js +10 -0
  50. package/esm/CheckTreePicker/utils.js +2 -1
  51. package/esm/CustomProvider/CustomProvider.js +6 -3
  52. package/esm/DateRangePicker/Calendar.d.ts +0 -1
  53. package/esm/DateRangePicker/Calendar.js +2 -41
  54. package/esm/DateRangePicker/DateRangePicker.js +22 -22
  55. package/esm/DateRangePicker/utils.d.ts +2 -1
  56. package/esm/DateRangePicker/utils.js +12 -3
  57. package/esm/InputPicker/InputPicker.d.ts +2 -2
  58. package/esm/InputPicker/test/InputPicker.test.d.ts +1 -0
  59. package/esm/InputPicker/test/InputPicker.test.js +10 -0
  60. package/esm/MultiCascader/utils.js +2 -2
  61. package/esm/Overlay/OverlayTrigger.js +1 -1
  62. package/esm/Panel/Panel.js +8 -7
  63. package/esm/SelectPicker/SelectPicker.d.ts +7 -1
  64. package/esm/SelectPicker/test/SelectPicker.test.js +23 -0
  65. package/esm/TreePicker/TreePicker.d.ts +2 -2
  66. package/esm/TreePicker/test/TreePicker.test.d.ts +1 -0
  67. package/esm/TreePicker/test/TreePicker.test.js +10 -0
  68. package/esm/utils/attachParent.d.ts +1 -0
  69. package/esm/utils/attachParent.js +10 -0
  70. package/esm/utils/treeUtils.js +2 -2
  71. package/esm/utils/usePortal.d.ts +4 -2
  72. package/esm/utils/usePortal.js +36 -14
  73. package/package.json +1 -1
@@ -66,6 +66,8 @@ var _reactToString = _interopRequireDefault(require("./reactToString"));
66
66
 
67
67
  var _constants = require("./constants");
68
68
 
69
+ var _attachParent = require("./attachParent");
70
+
69
71
  // gap of tree node
70
72
  var TREE_NODE_GAP = 4;
71
73
  /**
@@ -113,8 +115,7 @@ function flattenTree(tree, childrenKey, executor) {
113
115
 
114
116
  data.forEach(function (item, index) {
115
117
  var node = typeof executor === 'function' ? executor(item, index) : item;
116
- node.parent = parent;
117
- flattenData.push((0, _extends3.default)({}, node));
118
+ flattenData.push((0, _attachParent.attachParent)(node, parent));
118
119
 
119
120
  if (item[childrenKey]) {
120
121
  traverse(item[childrenKey], item);
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
2
  interface PortalProps {
3
- id?: string;
4
3
  container?: HTMLElement | (() => HTMLElement | null) | null;
4
+ waitMount?: boolean;
5
5
  }
6
6
  declare function usePortal(props?: PortalProps): {
7
7
  target: HTMLElement | null;
8
- Portal: React.FC<any>;
8
+ Portal: ((props: any) => JSX.Element) | (({ children }: {
9
+ children: React.ReactNode;
10
+ }) => React.ReactPortal | null);
9
11
  };
10
12
  export default usePortal;
@@ -1,41 +1,67 @@
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;
6
8
  exports.default = void 0;
7
9
 
8
- var _react = require("react");
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
9
13
 
10
14
  var _reactDom = require("react-dom");
11
15
 
12
16
  var _canUseDOM = _interopRequireDefault(require("dom-lib/canUseDOM"));
13
17
 
18
+ var MountedPortal = /*#__PURE__*/_react.default.memo(function (_ref) {
19
+ var children = _ref.children,
20
+ container = _ref.container;
21
+
22
+ var _useState = (0, _react.useState)(false),
23
+ mounted = _useState[0],
24
+ setMounted = _useState[1];
25
+
26
+ (0, _react.useEffect)(function () {
27
+ return setMounted(true);
28
+ }, []);
29
+
30
+ if (container && mounted) {
31
+ return /*#__PURE__*/(0, _reactDom.createPortal)(children, container);
32
+ }
33
+
34
+ return null;
35
+ });
36
+
14
37
  function usePortal(props) {
15
38
  if (props === void 0) {
16
39
  props = {};
17
40
  }
18
41
 
19
42
  var _props = props,
20
- id = _props.id,
21
- container = _props.container;
43
+ container = _props.container,
44
+ _props$waitMount = _props.waitMount,
45
+ waitMount = _props$waitMount === void 0 ? false : _props$waitMount;
22
46
  var rootElemRef = (0, _react.useRef)(_canUseDOM.default ? document.body : null);
23
47
  (0, _react.useEffect)(function () {
24
- var containerElement = typeof container === 'function' ? container() : container; // Look for existing target dom element to append to
25
-
26
- var existingParent = id && document.querySelector("#" + id); // Parent is either a new root or the existing dom element
48
+ var containerElement = typeof container === 'function' ? container() : container; // Parent is either a new root or the existing dom element
27
49
 
28
- var parentElement = containerElement || existingParent || document.body;
50
+ var parentElement = containerElement || document.body;
29
51
  rootElemRef.current = parentElement;
30
- }, [rootElemRef, container, id]);
31
- var Portal = (0, _react.useCallback)(function (_ref) {
32
- var children = _ref.children;
33
- if (rootElemRef.current != null) return /*#__PURE__*/(0, _reactDom.createPortal)(children, rootElemRef.current);
34
- return null;
35
- }, [rootElemRef]);
52
+ }, [rootElemRef, container]);
53
+ var Portal = (0, _react.useCallback)(function (_ref2) {
54
+ var children = _ref2.children;
55
+ return rootElemRef.current != null ? /*#__PURE__*/(0, _reactDom.createPortal)(children, rootElemRef.current) : null;
56
+ }, []);
57
+ var WaitMountPortal = (0, _react.useCallback)(function (props) {
58
+ return /*#__PURE__*/_react.default.createElement(MountedPortal, (0, _extends2.default)({
59
+ container: rootElemRef.current
60
+ }, props));
61
+ }, []);
36
62
  return {
37
63
  target: rootElemRef.current,
38
- Portal: Portal
64
+ Portal: waitMount ? WaitMountPortal : Portal
39
65
  };
40
66
  }
41
67
 
@@ -11656,6 +11656,13 @@ textarea.rs-picker-search-input {
11656
11656
  overflow: hidden;
11657
11657
  -webkit-transition: none;
11658
11658
  transition: none;
11659
+ display: -webkit-box;
11660
+ display: -ms-flexbox;
11661
+ display: flex;
11662
+ -webkit-box-orient: vertical;
11663
+ -webkit-box-direction: normal;
11664
+ -ms-flex-direction: column;
11665
+ flex-direction: column;
11659
11666
  /* stylelint-disable-next-line */
11660
11667
  }
11661
11668
  .rs-theme-high-contrast .rs-picker-menu {
@@ -13857,6 +13864,7 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
13857
13864
  .rs-slider-handle {
13858
13865
  position: absolute;
13859
13866
  top: -50%;
13867
+ outline: none;
13860
13868
  }
13861
13869
  .rs-slider-handle::before {
13862
13870
  content: '';
@@ -15729,15 +15737,6 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
15729
15737
  margin-right: -13px;
15730
15738
  border-right: 1px solid rgba(0, 0, 0, 0.1);
15731
15739
  }
15732
- .rs-picker-menu {
15733
- display: -webkit-box;
15734
- display: -ms-flexbox;
15735
- display: flex;
15736
- -webkit-box-orient: vertical;
15737
- -webkit-box-direction: normal;
15738
- -ms-flex-direction: column;
15739
- flex-direction: column;
15740
- }
15741
15740
  .rs-picker-menu.rs-tree-menu {
15742
15741
  padding-top: 12px;
15743
15742
  }