rsuite 5.20.0 → 5.21.0

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 (132) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/CheckTreePicker/styles/index.less +0 -25
  3. package/Picker/styles/index.less +0 -10
  4. package/Picker/styles/mixin.less +0 -5
  5. package/README.md +4 -2
  6. package/TreePicker/styles/index.less +0 -19
  7. package/Windowing/package.json +7 -0
  8. package/cjs/Calendar/MonthDropdown.d.ts +1 -0
  9. package/cjs/Calendar/MonthDropdown.js +27 -40
  10. package/cjs/Cascader/Cascader.d.ts +2 -2
  11. package/cjs/Cascader/DropdownMenu.js +5 -2
  12. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  13. package/cjs/CheckPicker/CheckPicker.js +4 -1
  14. package/cjs/CheckTreePicker/CheckTreePicker.js +37 -39
  15. package/cjs/CustomProvider/CustomProvider.d.ts +1 -108
  16. package/cjs/CustomProvider/CustomProvider.js +2 -5
  17. package/cjs/CustomProvider/index.d.ts +2 -2
  18. package/cjs/CustomProvider/index.js +0 -1
  19. package/cjs/DateRangePicker/DateRangePicker.js +5 -5
  20. package/cjs/Disclosure/Disclosure.d.ts +2 -2
  21. package/cjs/Disclosure/Disclosure.js +6 -6
  22. package/cjs/InputPicker/InputPicker.js +4 -1
  23. package/cjs/Modal/ModalBody.js +18 -17
  24. package/cjs/MultiCascader/DropdownMenu.js +5 -2
  25. package/cjs/Navbar/NavbarDropdownMenu.js +16 -10
  26. package/cjs/Overlay/OverlayTrigger.d.ts +2 -2
  27. package/cjs/Picker/DropdownMenu.d.ts +2 -1
  28. package/cjs/Picker/DropdownMenu.js +38 -34
  29. package/cjs/Picker/PickerOverlay.d.ts +2 -2
  30. package/cjs/Picker/PickerToggle.js +4 -1
  31. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -2
  32. package/cjs/Picker/PickerToggleTrigger.js +11 -10
  33. package/cjs/Picker/index.d.ts +3 -3
  34. package/cjs/Picker/types.d.ts +7 -5
  35. package/cjs/Picker/utils.d.ts +11 -12
  36. package/cjs/Picker/utils.js +4 -0
  37. package/cjs/SelectPicker/SelectPicker.d.ts +4 -5
  38. package/cjs/SelectPicker/SelectPicker.js +4 -1
  39. package/cjs/Tree/Tree.d.ts +2 -5
  40. package/cjs/TreePicker/TreePicker.js +35 -37
  41. package/cjs/TreePicker/test/TreePicker.test.js +14 -0
  42. package/cjs/Whisper/Whisper.d.ts +3 -3
  43. package/cjs/Whisper/Whisper.js +11 -10
  44. package/cjs/Windowing/AutoSizer.d.ts +25 -0
  45. package/cjs/Windowing/AutoSizer.js +103 -0
  46. package/cjs/Windowing/List.d.ts +45 -0
  47. package/cjs/Windowing/List.js +72 -0
  48. package/cjs/Windowing/index.d.ts +5 -0
  49. package/cjs/Windowing/index.js +19 -0
  50. package/cjs/index.d.ts +1 -0
  51. package/cjs/toaster/ToastContainer.d.ts +2 -1
  52. package/cjs/toaster/ToastContainer.js +27 -26
  53. package/cjs/toaster/toaster.d.ts +1 -1
  54. package/cjs/toaster/toaster.js +43 -13
  55. package/cjs/toaster/useToaster.d.ts +1 -1
  56. package/cjs/utils/index.d.ts +1 -0
  57. package/cjs/utils/index.js +6 -1
  58. package/cjs/utils/render.d.ts +3 -0
  59. package/cjs/utils/render.js +49 -0
  60. package/cjs/utils/treeUtils.d.ts +2 -2
  61. package/cjs/utils/useUniqueId.js +10 -2
  62. package/dist/rsuite-rtl.css +0 -67
  63. package/dist/rsuite-rtl.min.css +1 -1
  64. package/dist/rsuite-rtl.min.css.map +1 -1
  65. package/dist/rsuite.css +0 -67
  66. package/dist/rsuite.js +104 -363
  67. package/dist/rsuite.js.map +1 -1
  68. package/dist/rsuite.min.css +1 -1
  69. package/dist/rsuite.min.css.map +1 -1
  70. package/dist/rsuite.min.js +1 -1
  71. package/dist/rsuite.min.js.LICENSE.txt +2 -0
  72. package/dist/rsuite.min.js.map +1 -1
  73. package/esm/Calendar/MonthDropdown.d.ts +1 -0
  74. package/esm/Calendar/MonthDropdown.js +26 -41
  75. package/esm/Cascader/Cascader.d.ts +2 -2
  76. package/esm/Cascader/DropdownMenu.js +5 -2
  77. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  78. package/esm/CheckPicker/CheckPicker.js +4 -1
  79. package/esm/CheckTreePicker/CheckTreePicker.js +37 -38
  80. package/esm/CustomProvider/CustomProvider.d.ts +1 -108
  81. package/esm/CustomProvider/CustomProvider.js +2 -4
  82. package/esm/CustomProvider/index.d.ts +2 -2
  83. package/esm/CustomProvider/index.js +2 -2
  84. package/esm/DateRangePicker/DateRangePicker.js +5 -5
  85. package/esm/Disclosure/Disclosure.d.ts +2 -2
  86. package/esm/Disclosure/Disclosure.js +6 -6
  87. package/esm/InputPicker/InputPicker.js +4 -1
  88. package/esm/Modal/ModalBody.js +16 -17
  89. package/esm/MultiCascader/DropdownMenu.js +5 -2
  90. package/esm/Navbar/NavbarDropdownMenu.js +14 -8
  91. package/esm/Overlay/OverlayTrigger.d.ts +2 -2
  92. package/esm/Picker/DropdownMenu.d.ts +2 -1
  93. package/esm/Picker/DropdownMenu.js +38 -36
  94. package/esm/Picker/PickerOverlay.d.ts +2 -2
  95. package/esm/Picker/PickerToggle.js +4 -1
  96. package/esm/Picker/PickerToggleTrigger.d.ts +2 -2
  97. package/esm/Picker/PickerToggleTrigger.js +10 -11
  98. package/esm/Picker/index.d.ts +3 -3
  99. package/esm/Picker/types.d.ts +7 -5
  100. package/esm/Picker/utils.d.ts +11 -12
  101. package/esm/Picker/utils.js +4 -0
  102. package/esm/SelectPicker/SelectPicker.d.ts +4 -5
  103. package/esm/SelectPicker/SelectPicker.js +4 -1
  104. package/esm/Tree/Tree.d.ts +2 -5
  105. package/esm/TreePicker/TreePicker.js +34 -35
  106. package/esm/TreePicker/test/TreePicker.test.js +14 -0
  107. package/esm/Whisper/Whisper.d.ts +3 -3
  108. package/esm/Whisper/Whisper.js +10 -11
  109. package/esm/Windowing/AutoSizer.d.ts +25 -0
  110. package/esm/Windowing/AutoSizer.js +88 -0
  111. package/esm/Windowing/List.d.ts +45 -0
  112. package/esm/Windowing/List.js +58 -0
  113. package/esm/Windowing/index.d.ts +5 -0
  114. package/esm/Windowing/index.js +3 -0
  115. package/esm/index.d.ts +1 -0
  116. package/esm/toaster/ToastContainer.d.ts +2 -1
  117. package/esm/toaster/ToastContainer.js +28 -26
  118. package/esm/toaster/toaster.d.ts +1 -1
  119. package/esm/toaster/toaster.js +41 -13
  120. package/esm/toaster/useToaster.d.ts +1 -1
  121. package/esm/utils/index.d.ts +1 -0
  122. package/esm/utils/index.js +1 -0
  123. package/esm/utils/render.d.ts +3 -0
  124. package/esm/utils/render.js +37 -0
  125. package/esm/utils/treeUtils.d.ts +2 -2
  126. package/esm/utils/useUniqueId.js +7 -2
  127. package/package.json +3 -3
  128. package/styles/mixins/listbox.less +0 -5
  129. package/cjs/Picker/VirtualizedList.d.ts +0 -37
  130. package/cjs/Picker/VirtualizedList.js +0 -15
  131. package/esm/Picker/VirtualizedList.d.ts +0 -37
  132. package/esm/Picker/VirtualizedList.js +0 -4
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # [5.21.0](https://github.com/rsuite/rsuite/compare/v5.20.0...v5.21.0) (2022-10-27)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **DateRangePicker:** fix end time will change with the start time ([#2841](https://github.com/rsuite/rsuite/issues/2841)) ([7fb38dd](https://github.com/rsuite/rsuite/commit/7fb38dd6aaf84e018d4f3e06882fb92dfa20e5bd))
6
+
7
+ ### Features
8
+
9
+ - support React 18 ([#2595](https://github.com/rsuite/rsuite/issues/2595)) ([a071214](https://github.com/rsuite/rsuite/commit/a071214e4cffb2f9607887e776a52af42aed58cb)), closes [#2646](https://github.com/rsuite/rsuite/issues/2646) [#2661](https://github.com/rsuite/rsuite/issues/2661) [#2681](https://github.com/rsuite/rsuite/issues/2681) [#2776](https://github.com/rsuite/rsuite/issues/2776) [#2806](https://github.com/rsuite/rsuite/issues/2806) [#2826](https://github.com/rsuite/rsuite/issues/2826) [#2825](https://github.com/rsuite/rsuite/issues/2825)
10
+
1
11
  # [5.20.0](https://github.com/rsuite/rsuite/compare/v5.19.1...v5.20.0) (2022-10-21)
2
12
 
3
13
  ### Bug Fixes
@@ -14,15 +14,6 @@
14
14
 
15
15
  &.rs-check-tree-virtualized {
16
16
  overflow: hidden;
17
-
18
- /* stylelint-disable-next-line */ // **This class name provide by Virtualized.
19
- .ReactVirtualized__Grid.ReactVirtualized__List {
20
- padding: 0 @picker-menu-padding @picker-menu-padding 0;
21
-
22
- &:focus {
23
- outline: none;
24
- }
25
- }
26
17
  }
27
18
 
28
19
  .rs-check-item .rs-checkbox-checker {
@@ -178,10 +169,6 @@
178
169
  .rs-check-tree {
179
170
  padding: 0 @picker-menu-padding @picker-menu-padding 0;
180
171
 
181
- &.rs-check-tree-virtualized {
182
- padding: 0;
183
- }
184
-
185
172
  &-node > .rs-check-tree-node-label .rs-check-tree-node-text-wrapper {
186
173
  .ellipsis();
187
174
 
@@ -198,16 +185,4 @@
198
185
  padding-right: inherit;
199
186
  }
200
187
 
201
- /* stylelint-disable-next-line */
202
- .rs-check-tree {
203
- /* stylelint-disable-next-line */
204
- &-node > &-node-label .rs-check-item .rs-checkbox-checker > label::before {
205
- /* stylelint-disable-next-line */
206
- [dir='rtl'] .ReactVirtualized__Grid__innerScrollContainer & {
207
- padding-right: inherit;
208
- right: 46px;
209
- }
210
- }
211
- }
212
-
213
188
  /* rtl:end:ignore */
@@ -337,11 +337,6 @@
337
337
  }
338
338
  }
339
339
 
340
- /* stylelint-disable-next-line */ // This class name provide by Virtualized.
341
- .ReactVirtualized__Grid.ReactVirtualized__List:focus {
342
- outline: none;
343
- }
344
-
345
340
  &.rs-picker-inline {
346
341
  position: relative;
347
342
  box-shadow: none;
@@ -402,11 +397,6 @@
402
397
  });
403
398
  }
404
399
 
405
- /* stylelint-disable-next-line */ // This class name provide by Virtualized.
406
- .ReactVirtualized__Grid & {
407
- .ellipsis-basic();
408
- }
409
-
410
400
  .rs-checkbox-disabled& {
411
401
  cursor: not-allowed;
412
402
  }
@@ -71,11 +71,6 @@
71
71
  transition: @picker-item-transition;
72
72
  text-decoration: none;
73
73
  width: 100%;
74
-
75
- /* stylelint-disable-next-line */ // This class name provide by Virtualized.
76
- .ReactVirtualized__Grid & {
77
- .ellipsis-basic();
78
- }
79
74
  }
80
75
 
81
76
  .picker-item-hover() {
package/README.md CHANGED
@@ -59,11 +59,13 @@ yarn add rsuite
59
59
 
60
60
  Here's a simple example
61
61
 
62
- ```js
62
+ ```jsx
63
63
  import { Button } from 'rsuite';
64
64
  import 'rsuite/styles/index.less'; // or 'rsuite/dist/rsuite.min.css'
65
65
 
66
- ReactDOM.render(<Button>Button</Button>, mountNode);
66
+ function App() {
67
+ return <Button appearance="primary">Hello World</Button>;
68
+ }
67
69
  ```
68
70
 
69
71
  [**Live preview on CodeSandbox**][live-preview-on-codesandbox]
@@ -15,15 +15,6 @@
15
15
 
16
16
  &.rs-tree-virtualized {
17
17
  overflow: hidden;
18
-
19
- /* stylelint-disable-next-line */ // This class name provide by Virtualized.
20
- .ReactVirtualized__Grid.ReactVirtualized__List {
21
- padding: 0 @picker-menu-padding @picker-menu-padding 0;
22
-
23
- &:focus {
24
- outline: none;
25
- }
26
- }
27
18
  }
28
19
  }
29
20
 
@@ -242,14 +233,4 @@
242
233
  padding-right: inherit;
243
234
  }
244
235
 
245
- /* stylelint-disable */
246
- [dir='rtl']
247
- .ReactVirtualized__Grid__innerScrollContainer
248
- .rs-tree-node
249
- > .rs-tree-node-label::before {
250
- display: none;
251
- }
252
-
253
- /* stylelint-enable */
254
-
255
236
  /* rtl:end:ignore */
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "rsuite/Windowing",
3
+ "private": true,
4
+ "main": "../cjs/Windowing/index.js",
5
+ "module": "../esm/Windowing/index.js",
6
+ "types": "../esm/Windowing/index.d.ts"
7
+ }
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
3
  export interface MonthDropdownProps extends WithAsProps {
4
4
  show?: boolean;
5
+ limitStartYear?: number;
5
6
  limitEndYear?: number;
6
7
  height?: number;
7
8
  width?: number;
@@ -15,7 +15,7 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
17
17
 
18
- var _VirtualizedList = require("../Picker/VirtualizedList");
18
+ var _Windowing = require("../Windowing");
19
19
 
20
20
  var _utils = require("../utils");
21
21
 
@@ -24,22 +24,6 @@ var _MonthDropdownItem = _interopRequireDefault(require("./MonthDropdownItem"));
24
24
  var _CalendarContext = require("./CalendarContext");
25
25
 
26
26
  var monthMap = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
27
- /**
28
- * Set the row height.
29
- * Add 1px to the first and last lines.
30
- */
31
-
32
- function getRowHeight(count) {
33
- return function (_ref) {
34
- var index = _ref.index;
35
-
36
- if (index === 0 || count - 1 === index) {
37
- return 75 + 1;
38
- }
39
-
40
- return 75;
41
- };
42
- }
43
27
 
44
28
  var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
45
29
  var _props$as = props.as,
@@ -47,6 +31,7 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
47
31
  className = props.className,
48
32
  _props$classPrefix = props.classPrefix,
49
33
  classPrefix = _props$classPrefix === void 0 ? 'calendar-month-dropdown' : _props$classPrefix,
34
+ limitStartYear = props.limitStartYear,
50
35
  _props$limitEndYear = props.limitEndYear,
51
36
  limitEndYear = _props$limitEndYear === void 0 ? 5 : _props$limitEndYear,
52
37
  show = props.show,
@@ -55,7 +40,7 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
55
40
  _props$width = props.width,
56
41
  defaultWidth = _props$width === void 0 ? 256 : _props$width,
57
42
  disabledMonth = props.disabledMonth,
58
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "limitEndYear", "show", "height", "width", "disabledMonth"]);
43
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "limitStartYear", "limitEndYear", "show", "height", "width", "disabledMonth"]);
59
44
 
60
45
  var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
61
46
  _useCalendarContext$d = _useCalendarContext.date,
@@ -66,9 +51,13 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
66
51
  merge = _useClassNames.merge,
67
52
  withClassPrefix = _useClassNames.withClassPrefix;
68
53
 
69
- var getRowCount = (0, _react.useCallback)(function () {
70
- return _utils.DateUtils.getYear(new Date()) + limitEndYear;
71
- }, [limitEndYear]);
54
+ var thisYear = _utils.DateUtils.getYear(new Date());
55
+
56
+ var startYear = limitStartYear ? thisYear - limitStartYear : 1900;
57
+ var rowCount = (0, _react.useMemo)(function () {
58
+ var endYear = thisYear + limitEndYear;
59
+ return endYear - startYear;
60
+ }, [limitEndYear, startYear, thisYear]);
72
61
  var isMonthDisabled = (0, _react.useCallback)(function (year, month) {
73
62
  if (disabledMonth) {
74
63
  var days = _utils.DateUtils.getDaysInMonth(new Date(year, month)); // If all dates in a month are disabled, disable the current month
@@ -86,29 +75,26 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
86
75
  return false;
87
76
  }, [disabledMonth]);
88
77
 
89
- var rowRenderer = function rowRenderer(_ref2) {
90
- var index = _ref2.index,
91
- key = _ref2.key,
92
- style = _ref2.style;
78
+ var rowRenderer = function rowRenderer(_ref) {
79
+ var index = _ref.index,
80
+ style = _ref.style;
93
81
 
94
82
  var selectedMonth = _utils.DateUtils.getMonth(date);
95
83
 
96
84
  var selectedYear = _utils.DateUtils.getYear(date);
97
85
 
98
- var year = index + 1;
86
+ var year = startYear + index;
99
87
  var isSelectedYear = year === selectedYear;
100
- var count = getRowCount();
101
88
  var titleClassName = prefix('year', {
102
89
  'year-active': isSelectedYear
103
90
  });
104
91
  var rowClassName = merge(prefix('row'), {
105
92
  'first-row': index === 0,
106
- 'last-row': index === count - 1
93
+ 'last-row': index === rowCount - 1
107
94
  });
108
95
  return /*#__PURE__*/_react.default.createElement("div", {
109
96
  className: rowClassName,
110
97
  role: "row",
111
- key: key,
112
98
  style: style
113
99
  }, /*#__PURE__*/_react.default.createElement("div", {
114
100
  className: titleClassName,
@@ -127,10 +113,12 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
127
113
  })));
128
114
  };
129
115
 
130
- var count = getRowCount();
131
116
  var classes = merge(className, withClassPrefix(), {
132
117
  show: show
133
118
  });
119
+ var itemSize = 75;
120
+ var initialItemIndex = _utils.DateUtils.getYear(date) - startYear;
121
+ var initialScrollOffset = itemSize * initialItemIndex;
134
122
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
135
123
  role: "menu"
136
124
  }, rest, {
@@ -140,21 +128,20 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
140
128
  className: prefix('content')
141
129
  }, /*#__PURE__*/_react.default.createElement("div", {
142
130
  className: prefix('scroll')
143
- }, show && /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {
131
+ }, show && /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
144
132
  defaultHeight: defaultHeight,
145
133
  defaultWidth: defaultWidth
146
- }, function (_ref3) {
147
- var height = _ref3.height,
148
- width = _ref3.width;
149
- return /*#__PURE__*/_react.default.createElement(_VirtualizedList.List, {
134
+ }, function (_ref2) {
135
+ var height = _ref2.height,
136
+ width = _ref2.width;
137
+ return /*#__PURE__*/_react.default.createElement(_Windowing.FixedSizeList, {
150
138
  className: prefix('row-wrapper'),
151
139
  width: width || defaultWidth,
152
140
  height: height || defaultHeight,
153
- rowHeight: getRowHeight(count),
154
- rowCount: count,
155
- scrollToIndex: _utils.DateUtils.getYear(date),
156
- rowRenderer: rowRenderer
157
- });
141
+ itemSize: itemSize,
142
+ itemCount: rowCount,
143
+ initialScrollOffset: initialScrollOffset
144
+ }, rowRenderer);
158
145
  }))));
159
146
  });
160
147
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerInstance } from '../Picker';
3
+ import { PickerHandle } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
5
5
  export declare type ValueType = number | string;
6
6
  export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T>> {
@@ -33,7 +33,7 @@ export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T |
33
33
  }
34
34
  export interface CascaderComponent {
35
35
  <T>(props: CascaderProps<T> & {
36
- ref?: React.Ref<PickerInstance>;
36
+ ref?: React.Ref<PickerHandle>;
37
37
  }): JSX.Element | null;
38
38
  displayName?: string;
39
39
  propTypes?: React.WeakValidationMap<CascaderProps<any>>;
@@ -68,7 +68,10 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
68
68
 
69
69
  var classes = merge(className, prefix('items'));
70
70
  var rootRef = (0, _react.useRef)();
71
- var rtl = (0, _utils.useCustom)('DropdownMenu');
71
+
72
+ var _useCustom = (0, _utils.useCustom)('DropdownMenu'),
73
+ rtl = _useCustom.rtl;
74
+
72
75
  (0, _react.useEffect)(function () {
73
76
  var _rootRef$current;
74
77
 
@@ -119,7 +122,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
119
122
  }); // Use `value` in keys when If `value` is string or number
120
123
 
121
124
  var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
122
- var Icon = node.loading ? _Spinner.default : rtl ? _AngleRight.default : _AngleLeft.default;
125
+ var Icon = node.loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
123
126
  return /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenuItem, {
124
127
  classPrefix: "picker-cascader-menu-item",
125
128
  as: 'li',
@@ -1,6 +1,6 @@
1
1
  import React, { Ref } from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerInstance, PickerToggleProps } from '../Picker';
3
+ import { PickerHandle, PickerToggleProps } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
5
5
  import type { MultipleSelectProps } from '../SelectPicker';
6
6
  export declare type ValueType = (number | string)[];
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
12
12
  }
13
13
  export interface CheckPickerComponent {
14
14
  <T>(props: CheckPickerProps<T> & {
15
- ref?: Ref<PickerInstance>;
15
+ ref?: Ref<PickerHandle>;
16
16
  }): JSX.Element | null;
17
17
  displayName?: string;
18
18
  propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
@@ -104,6 +104,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
104
104
  var targetRef = (0, _react.useRef)(null);
105
105
  var overlayRef = (0, _react.useRef)(null);
106
106
  var searchInputRef = (0, _react.useRef)(null);
107
+ var listRef = (0, _react.useRef)(null);
107
108
 
108
109
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
109
110
  locale = _useCustom.locale;
@@ -258,7 +259,8 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
258
259
  (0, _Picker.usePublicMethods)(ref, {
259
260
  triggerRef: triggerRef,
260
261
  overlayRef: overlayRef,
261
- targetRef: targetRef
262
+ targetRef: targetRef,
263
+ listRef: listRef
262
264
  });
263
265
  var selectedItems = data.filter(function (item) {
264
266
  return value === null || value === void 0 ? void 0 : value.some(function (val) {
@@ -329,6 +331,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
329
331
  var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
330
332
  id: id ? id + "-listbox" : undefined,
331
333
  listProps: listProps,
334
+ listRef: listRef,
332
335
  disabledItemValues: disabledItemValues,
333
336
  valueKey: valueKey,
334
337
  labelKey: labelKey,
@@ -29,7 +29,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
29
29
 
30
30
  var _classnames = _interopRequireDefault(require("classnames"));
31
31
 
32
- var _VirtualizedList = require("../Picker/VirtualizedList");
32
+ var _Windowing = require("../Windowing");
33
33
 
34
34
  var _CheckTreeNode = _interopRequireDefault(require("./CheckTreeNode"));
35
35
 
@@ -45,6 +45,10 @@ var _utils2 = require("./utils");
45
45
 
46
46
  var emptyArray = [];
47
47
 
48
+ var itemSize = function itemSize() {
49
+ return 36;
50
+ };
51
+
48
52
  var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
49
53
  var _props$as = props.as,
50
54
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -626,34 +630,31 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
626
630
  }, nodeProps));
627
631
  };
628
632
 
629
- var renderVirtualListNode = function renderVirtualListNode(nodes) {
630
- return function (_ref3) {
631
- var key = _ref3.key,
632
- index = _ref3.index,
633
- style = _ref3.style;
634
- var node = nodes[index];
635
- var layer = node.layer,
636
- refKey = node.refKey,
637
- visible = node.visible;
638
- var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));
639
- var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {
640
- /**
641
- * spread operator don't copy unenumerable properties
642
- * so we need to copy them manually
643
- */
644
- parent: node.parent,
645
- expand: expand
646
- }), layer), {
647
- hasChildren: node.hasChildren
648
- });
649
- return visible && /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({
650
- style: style,
651
- key: key,
652
- ref: function ref(_ref4) {
653
- return saveTreeNodeRef(_ref4, refKey);
654
- }
655
- }, nodeProps));
656
- };
633
+ var renderVirtualListNode = function renderVirtualListNode(_ref3) {
634
+ var index = _ref3.index,
635
+ style = _ref3.style,
636
+ data = _ref3.data;
637
+ var node = data[index];
638
+ var layer = node.layer,
639
+ refKey = node.refKey,
640
+ visible = node.visible;
641
+ var expand = (0, _treeUtils.getExpandWhenSearching)(searchKeywordState, expandItemValues.includes(node[valueKey]));
642
+ var nodeProps = (0, _extends2.default)({}, getTreeNodeProps((0, _extends2.default)({}, node, {
643
+ /**
644
+ * spread operator don't copy unenumerable properties
645
+ * so we need to copy them manually
646
+ */
647
+ parent: node.parent,
648
+ expand: expand
649
+ }), layer), {
650
+ hasChildren: node.hasChildren
651
+ });
652
+ return visible && /*#__PURE__*/_react.default.createElement(_CheckTreeNode.default, (0, _extends2.default)({
653
+ style: style,
654
+ ref: function ref(_ref4) {
655
+ return saveTreeNodeRef(_ref4, refKey);
656
+ }
657
+ }, nodeProps));
657
658
  };
658
659
 
659
660
  var renderCheckTree = function renderCheckTree() {
@@ -685,24 +686,21 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
685
686
  onKeyDown: inline ? handleTreeKeydown : undefined
686
687
  }, /*#__PURE__*/_react.default.createElement("div", {
687
688
  className: treeNodesClass
688
- }, virtualized ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.AutoSizer, {
689
+ }, virtualized ? /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
689
690
  defaultHeight: inline ? height : menuMaxHeight,
690
691
  style: {
691
692
  width: 'auto',
692
693
  height: 'auto'
693
694
  }
694
695
  }, function (_ref5) {
695
- var height = _ref5.height,
696
- width = _ref5.width;
697
- return /*#__PURE__*/_react.default.createElement(_VirtualizedList.List, (0, _extends2.default)({
696
+ var height = _ref5.height;
697
+ return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({
698
698
  ref: listRef,
699
- width: width,
700
699
  height: height,
701
- rowHeight: 36,
702
- rowCount: formattedNodes.length,
703
- rowRenderer: renderVirtualListNode(formattedNodes),
704
- scrollToAlignment: "center"
705
- }, listProps));
700
+ itemSize: itemSize,
701
+ itemCount: formattedNodes.length,
702
+ itemData: formattedNodes
703
+ }, listProps), renderVirtualListNode);
706
704
  }) : formattedNodes));
707
705
  };
708
706
 
@@ -156,113 +156,6 @@ declare const CustomContext: React.Context<CustomProviderProps<{
156
156
  off: string;
157
157
  } | undefined;
158
158
  }>>;
159
- declare const Consumer: React.Consumer<CustomProviderProps<{
160
- common?: {
161
- loading: string;
162
- emptyMessage: string;
163
- } | undefined;
164
- Plaintext?: {
165
- unfilled: string;
166
- notSelected: string;
167
- notUploaded: string;
168
- } | undefined;
169
- Pagination?: {
170
- more: string;
171
- prev: string;
172
- next: string;
173
- first: string;
174
- last: string;
175
- limit: string;
176
- total: string;
177
- skip: string;
178
- } | undefined;
179
- Calendar?: {
180
- sunday: string;
181
- monday: string;
182
- tuesday: string;
183
- wednesday: string;
184
- thursday: string;
185
- friday: string;
186
- saturday: string;
187
- ok: string;
188
- today: string;
189
- yesterday: string;
190
- hours: string;
191
- minutes: string;
192
- seconds: string;
193
- formattedMonthPattern: string;
194
- formattedDayPattern: string;
195
- dateLocale: any;
196
- } | undefined;
197
- DatePicker?: {
198
- sunday: string;
199
- monday: string;
200
- tuesday: string;
201
- wednesday: string;
202
- thursday: string;
203
- friday: string;
204
- saturday: string;
205
- ok: string;
206
- today: string;
207
- yesterday: string;
208
- hours: string;
209
- minutes: string;
210
- seconds: string;
211
- formattedMonthPattern: string;
212
- formattedDayPattern: string;
213
- dateLocale: any;
214
- } | undefined;
215
- DateRangePicker?: {
216
- last7Days: string;
217
- sunday: string;
218
- monday: string;
219
- tuesday: string;
220
- wednesday: string;
221
- thursday: string;
222
- friday: string;
223
- saturday: string;
224
- ok: string;
225
- today: string;
226
- yesterday: string;
227
- hours: string;
228
- minutes: string;
229
- seconds: string;
230
- formattedMonthPattern: string;
231
- formattedDayPattern: string;
232
- dateLocale: any;
233
- } | undefined;
234
- Picker?: {
235
- noResultsText: string;
236
- placeholder: string;
237
- searchPlaceholder: string;
238
- checkAll: string;
239
- } | undefined;
240
- InputPicker?: {
241
- newItem: string;
242
- /**
243
- * A Map of toast containers
244
- */
245
- createOption: string;
246
- } | undefined;
247
- Uploader?: {
248
- inited: string;
249
- progress: string;
250
- error: string;
251
- complete: string;
252
- emptyFile: string;
253
- upload: string;
254
- } | undefined;
255
- CloseButton?: {
256
- closeLabel: string;
257
- } | undefined;
258
- Breadcrumb?: {
259
- expandText: string;
260
- } | undefined;
261
- Toggle?: {
262
- on: string;
263
- off: string;
264
- } | undefined;
265
- }>>;
266
159
  declare const CustomProvider: (props: Omit<CustomProviderProps, 'toasters'>) => JSX.Element;
267
- export { CustomContext, Consumer as CustomConsumer };
160
+ export { CustomContext };
268
161
  export default CustomProvider;
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
 
7
7
  exports.__esModule = true;
8
- exports.default = exports.CustomConsumer = exports.CustomContext = void 0;
8
+ exports.default = exports.CustomContext = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -24,9 +24,6 @@ var _utils = require("../utils");
24
24
  var CustomContext = /*#__PURE__*/_react.default.createContext({});
25
25
 
26
26
  exports.CustomContext = CustomContext;
27
- var Consumer = CustomContext.Consumer,
28
- Provider = CustomContext.Provider;
29
- exports.CustomConsumer = Consumer;
30
27
  var themes = ['light', 'dark', 'high-contrast'];
31
28
 
32
29
  var CustomProvider = function CustomProvider(props) {
@@ -64,7 +61,7 @@ var CustomProvider = function CustomProvider(props) {
64
61
  });
65
62
  }
66
63
  }, [classPrefix, theme]);
67
- return /*#__PURE__*/_react.default.createElement(Provider, {
64
+ return /*#__PURE__*/_react.default.createElement(CustomContext.Provider, {
68
65
  value: value
69
66
  }, children, /*#__PURE__*/_react.default.createElement(Portal, null, /*#__PURE__*/_react.default.createElement("div", {
70
67
  className: "rs-toast-provider"
@@ -1,5 +1,5 @@
1
- import CustomProvider, { CustomContext, CustomConsumer } from './CustomProvider';
1
+ import CustomProvider, { CustomContext } from './CustomProvider';
2
2
  import FormattedDate from './FormattedDate';
3
- export { CustomContext, CustomConsumer, FormattedDate };
3
+ export { CustomContext, FormattedDate };
4
4
  export type { CustomProviderProps } from './CustomProvider';
5
5
  export default CustomProvider;
@@ -10,7 +10,6 @@ exports.default = void 0;
10
10
  var _CustomProvider = _interopRequireWildcard(require("./CustomProvider"));
11
11
 
12
12
  exports.CustomContext = _CustomProvider.CustomContext;
13
- exports.CustomConsumer = _CustomProvider.CustomConsumer;
14
13
 
15
14
  var _FormattedDate = _interopRequireDefault(require("./FormattedDate"));
16
15