@para-ui/core 4.0.6 → 4.0.7-alpha

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 (169) hide show
  1. package/AutoBox/index.js +1 -1
  2. package/AutoTips/index.js +1 -1
  3. package/Breadcrumbs/index.js +1 -1
  4. package/Button/index.js +2 -2
  5. package/ButtonGroup/index.js +1 -1
  6. package/Carousel/index.js +1 -1
  7. package/Cascader/index.js +4 -4
  8. package/Checkbox/index.js +1 -1
  9. package/CheckboxGroup/index.js +1 -1
  10. package/ComboSelect/index.js +2 -2
  11. package/CopyText/index.js +1 -1
  12. package/CycleSelector/index.js +24 -8
  13. package/CycleSelector/lang/en_US.d.ts +1 -0
  14. package/CycleSelector/lang/index.d.ts +2 -0
  15. package/CycleSelector/lang/zh_CN.d.ts +1 -0
  16. package/DatePicker/index.js +2 -2
  17. package/Descriptions/index.d.ts +2 -0
  18. package/Descriptions/index.js +8 -3
  19. package/Desktop/index.js +1 -1
  20. package/DragVerify/index.js +1 -1
  21. package/Drawer/index.js +1 -1
  22. package/DynamicMultiBox/index.js +6 -6
  23. package/Form/index.js +3 -3
  24. package/FormItem/index.js +3 -3
  25. package/FunctionModal/index.js +3 -3
  26. package/GlobalContext/confirmLocale.d.ts +2 -4
  27. package/GlobalContext/index.js +5 -4
  28. package/Help/index.js +1 -1
  29. package/InputLang/index.js +1 -1
  30. package/InputNumber/index.js +1 -1
  31. package/Label/index.js +1 -1
  32. package/Menu/index.js +74 -24
  33. package/Menu/interface.d.ts +9 -0
  34. package/Modal/index.js +1 -1
  35. package/MultiBox/index.js +1 -1
  36. package/Notification/index.js +3 -3
  37. package/OperateBtn/index.js +1 -1
  38. package/PageHeader/index.js +1 -1
  39. package/Pagination/index.js +2 -2
  40. package/ParauiProvider/index.js +1 -1
  41. package/PopConfirm/index.js +1 -1
  42. package/Popover/index.js +1 -1
  43. package/Progress/index.js +1 -1
  44. package/QuickReply/index.js +3 -3
  45. package/README.md +9 -0
  46. package/Radio/index.js +1 -1
  47. package/RadioGroup/index.js +1 -1
  48. package/Search/index.js +1 -1
  49. package/Select/index.js +19 -2
  50. package/SelectInput/index.js +1 -1
  51. package/Selector/index.js +4 -4
  52. package/SelectorPicker/index.js +1 -1
  53. package/SingleBox/index.js +1 -1
  54. package/Slider/index.js +1 -1
  55. package/Stepper/index.js +1 -1
  56. package/Switch/index.js +1 -1
  57. package/Table/index.js +5 -4
  58. package/Table/interface.d.ts +2 -0
  59. package/Table/lang/en_US.d.ts +1 -1
  60. package/Table/lang/index.d.ts +1 -1
  61. package/Tabs/index.js +2 -2
  62. package/Tag/index.js +1 -1
  63. package/TextEditor/index.js +1 -1
  64. package/TextField/index.js +1 -1
  65. package/TimePicker/index.js +2 -2
  66. package/Timeline/index.js +1 -1
  67. package/Title/index.js +1 -1
  68. package/ToggleButton/index.js +1 -1
  69. package/Tooltip/index.js +1 -1
  70. package/Transfer/index.js +2 -2
  71. package/Tree/index.js +3 -3
  72. package/Upload/index.js +1 -1
  73. package/Utils/index.d.ts +2 -0
  74. package/Utils/index.js +10 -3
  75. package/_verture/defineProperty-6f62bb2a.js +34 -0
  76. package/_verture/{index-767e63dd.js → index-b08d8bf5.js} +1 -1
  77. package/_verture/{index-9784b09c.js → index-b33b6e81.js} +228 -119
  78. package/_verture/{index-28a6bc3a.js → index-e5429414.js} +1 -1
  79. package/_verture/{modalContext-8982647f.js → modalContext-25549697.js} +1 -1
  80. package/_verture/{sortable.esm-49896035.js → sortable.esm-76fe46a4.js} +597 -1029
  81. package/_verture/tslib.es6-fe0d4b4e.js +43 -0
  82. package/index.js +9 -9
  83. package/locale/en-US.d.ts +2 -1
  84. package/locale/index.d.ts +3 -1
  85. package/locale/index.js +8 -6
  86. package/locale/zh-CN.d.ts +1 -0
  87. package/package.json +11 -11
  88. package/umd/AutoBox.js +18 -18
  89. package/umd/AutoTips.js +18 -18
  90. package/umd/Badge.js +1 -1
  91. package/umd/Breadcrumbs.js +18 -18
  92. package/umd/Button.js +18 -18
  93. package/umd/ButtonGroup.js +18 -18
  94. package/umd/Carousel.js +13 -13
  95. package/umd/Cascader.js +18 -18
  96. package/umd/Checkbox.js +18 -18
  97. package/umd/CheckboxGroup.js +18 -18
  98. package/umd/Collapse.js +17 -17
  99. package/umd/CollapseBox.js +1 -1
  100. package/umd/CollapseLayout.js +8 -8
  101. package/umd/ColorPicker.js +1 -1
  102. package/umd/ComboSelect.js +18 -18
  103. package/umd/Container.js +1 -1
  104. package/umd/CopyText.js +18 -18
  105. package/umd/CycleSelector.js +18 -18
  106. package/umd/DatePicker.js +18 -18
  107. package/umd/Descriptions.js +18 -18
  108. package/umd/Desktop.js +18 -18
  109. package/umd/DragVerify.js +8 -8
  110. package/umd/Drawer.js +18 -18
  111. package/umd/Dropdown.js +8 -8
  112. package/umd/DynamicMultiBox.js +21 -21
  113. package/umd/Empty.js +1 -1
  114. package/umd/Form.js +18 -18
  115. package/umd/FormItem.js +18 -18
  116. package/umd/FunctionModal.js +18 -18
  117. package/umd/GlobalContext.js +1 -1
  118. package/umd/Help.js +18 -18
  119. package/umd/HelperText.js +1 -1
  120. package/umd/InputLang.js +18 -18
  121. package/umd/InputNumber.js +18 -18
  122. package/umd/Label.js +18 -18
  123. package/umd/Loading.js +8 -8
  124. package/umd/Menu.js +30 -16
  125. package/umd/Message.js +8 -8
  126. package/umd/Modal.js +18 -18
  127. package/umd/MultiBox.js +18 -18
  128. package/umd/Notification.js +17 -17
  129. package/umd/OperateBtn.js +18 -18
  130. package/umd/PageHeader.js +18 -18
  131. package/umd/Pagination.js +18 -18
  132. package/umd/ParauiProvider.js +1 -1
  133. package/umd/PasswordRules.js +8 -8
  134. package/umd/PopConfirm.js +18 -18
  135. package/umd/Popover.js +18 -18
  136. package/umd/Progress.js +13 -13
  137. package/umd/Prompt.js +8 -8
  138. package/umd/Querying.js +1 -1
  139. package/umd/QuickReply.js +21 -21
  140. package/umd/Radio.js +18 -18
  141. package/umd/RadioGroup.js +18 -18
  142. package/umd/Search.js +18 -18
  143. package/umd/Select.js +18 -18
  144. package/umd/SelectInput.js +18 -18
  145. package/umd/Selector.js +18 -18
  146. package/umd/SelectorPicker.js +18 -18
  147. package/umd/SingleBox.js +18 -18
  148. package/umd/Slider.js +8 -8
  149. package/umd/Status.js +8 -8
  150. package/umd/Stepper.js +18 -18
  151. package/umd/Switch.js +18 -18
  152. package/umd/Table.js +18 -18
  153. package/umd/Tabs.js +18 -18
  154. package/umd/Tag.js +18 -18
  155. package/umd/TextEditor.js +31 -31
  156. package/umd/TextField.js +18 -18
  157. package/umd/TimePicker.js +18 -18
  158. package/umd/Timeline.js +1 -1
  159. package/umd/Title.js +18 -18
  160. package/umd/ToggleButton.js +18 -18
  161. package/umd/Tooltip.js +18 -18
  162. package/umd/Transfer.js +20 -20
  163. package/umd/Tree.js +18 -18
  164. package/umd/Upload.js +19 -19
  165. package/umd/Utils.js +1 -1
  166. package/umd/locale.js +1 -1
  167. package/_verture/defineProperty-1d116156.js +0 -34
  168. package/_verture/tslib.es6-55ed4bd2.js +0 -38
  169. /package/_verture/{index-d795d1f0.js → index-6cd67e49.js} +0 -0
@@ -1,7 +1,7 @@
1
- import { _ as __rest } from './tslib.es6-55ed4bd2.js';
1
+ import { _ as __rest } from './tslib.es6-fe0d4b4e.js';
2
2
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
3
  import { _ as _arrayLikeToArray, a as _unsupportedIterableToArray, b as _slicedToArray, c as _arrayWithHoles, d as _nonIterableRest } from './slicedToArray-8223a2ef.js';
4
- import { _ as _defineProperty, a as _toPropertyKey } from './defineProperty-1d116156.js';
4
+ import { _ as _defineProperty, t as toPropertyKey } from './defineProperty-6f62bb2a.js';
5
5
  import { _ as _typeof$1 } from './typeof-adeedc13.js';
6
6
  import * as React$4 from 'react';
7
7
  import React__default, { useState as useState$1, useMemo as useMemo$1, useCallback, useRef, useEffect } from 'react';
@@ -245,8 +245,19 @@ var preWarningFns = [];
245
245
  var preMessage = function preMessage(fn) {
246
246
  preWarningFns.push(fn);
247
247
  };
248
+
249
+ /**
250
+ * Warning if condition not match.
251
+ * @param valid Condition
252
+ * @param message Warning message
253
+ * @example
254
+ * ```js
255
+ * warning(false, 'some error'); // print some error
256
+ * warning(true, 'some error'); // print nothing
257
+ * warning(1 === 2, 'some error'); // print some error
258
+ * ```
259
+ */
248
260
  function warning(valid, message) {
249
- // Support uglify
250
261
  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {
251
262
  var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {
252
263
  return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');
@@ -256,8 +267,9 @@ function warning(valid, message) {
256
267
  }
257
268
  }
258
269
  }
270
+
271
+ /** @see Similar to {@link warning} */
259
272
  function note(valid, message) {
260
- // Support uglify
261
273
  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {
262
274
  var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {
263
275
  return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');
@@ -276,16 +288,19 @@ function call(method, valid, message) {
276
288
  warned[message] = true;
277
289
  }
278
290
  }
291
+
292
+ /** @see Same as {@link warning}, but only warn once for the same message */
279
293
  function warningOnce(valid, message) {
280
294
  call(warning, valid, message);
281
295
  }
296
+
297
+ /** @see Same as {@link warning}, but only warn once for the same message */
282
298
  function noteOnce(valid, message) {
283
299
  call(note, valid, message);
284
300
  }
285
301
  warningOnce.preMessage = preMessage;
286
302
  warningOnce.resetWarned = resetWarned;
287
303
  warningOnce.noteOnce = noteOnce;
288
- /* eslint-enable */
289
304
 
290
305
  var classnames = {exports: {}};
291
306
 
@@ -302,39 +317,57 @@ var classnames = {exports: {}};
302
317
 
303
318
  var hasOwn = {}.hasOwnProperty;
304
319
 
305
- function classNames() {
306
- var classes = [];
320
+ function classNames () {
321
+ var classes = '';
307
322
 
308
323
  for (var i = 0; i < arguments.length; i++) {
309
324
  var arg = arguments[i];
310
- if (!arg) continue;
311
-
312
- var argType = typeof arg;
313
-
314
- if (argType === 'string' || argType === 'number') {
315
- classes.push(arg);
316
- } else if (Array.isArray(arg)) {
317
- if (arg.length) {
318
- var inner = classNames.apply(null, arg);
319
- if (inner) {
320
- classes.push(inner);
321
- }
322
- }
323
- } else if (argType === 'object') {
324
- if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
325
- classes.push(arg.toString());
326
- continue;
327
- }
328
-
329
- for (var key in arg) {
330
- if (hasOwn.call(arg, key) && arg[key]) {
331
- classes.push(key);
332
- }
333
- }
325
+ if (arg) {
326
+ classes = appendClass(classes, parseValue(arg));
334
327
  }
335
328
  }
336
329
 
337
- return classes.join(' ');
330
+ return classes;
331
+ }
332
+
333
+ function parseValue (arg) {
334
+ if (typeof arg === 'string' || typeof arg === 'number') {
335
+ return arg;
336
+ }
337
+
338
+ if (typeof arg !== 'object') {
339
+ return '';
340
+ }
341
+
342
+ if (Array.isArray(arg)) {
343
+ return classNames.apply(null, arg);
344
+ }
345
+
346
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
347
+ return arg.toString();
348
+ }
349
+
350
+ var classes = '';
351
+
352
+ for (var key in arg) {
353
+ if (hasOwn.call(arg, key) && arg[key]) {
354
+ classes = appendClass(classes, key);
355
+ }
356
+ }
357
+
358
+ return classes;
359
+ }
360
+
361
+ function appendClass (value, newClass) {
362
+ if (!newClass) {
363
+ return value;
364
+ }
365
+
366
+ if (value) {
367
+ return value + ' ' + newClass;
368
+ }
369
+
370
+ return value + newClass;
338
371
  }
339
372
 
340
373
  if (module.exports) {
@@ -1212,12 +1245,12 @@ function supportRef(nodeOrComponent) {
1212
1245
  var type = reactIs.exports.isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;
1213
1246
 
1214
1247
  // Function component node
1215
- if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {
1248
+ if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== reactIs.exports.ForwardRef) {
1216
1249
  return false;
1217
1250
  }
1218
1251
 
1219
1252
  // Class component
1220
- if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {
1253
+ if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== reactIs.exports.ForwardRef) {
1221
1254
  return false;
1222
1255
  }
1223
1256
  return true;
@@ -2480,7 +2513,7 @@ function _defineProperties(target, props) {
2480
2513
  descriptor.enumerable = descriptor.enumerable || false;
2481
2514
  descriptor.configurable = true;
2482
2515
  if ("value" in descriptor) descriptor.writable = true;
2483
- Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
2516
+ Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
2484
2517
  }
2485
2518
  }
2486
2519
  function _createClass(Constructor, protoProps, staticProps) {
@@ -2525,15 +2558,12 @@ function _getPrototypeOf(o) {
2525
2558
  }
2526
2559
 
2527
2560
  function _isNativeReflectConstruct() {
2528
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
2529
- if (Reflect.construct.sham) return false;
2530
- if (typeof Proxy === "function") return true;
2531
2561
  try {
2532
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
2533
- return true;
2534
- } catch (e) {
2535
- return false;
2536
- }
2562
+ var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
2563
+ } catch (t) {}
2564
+ return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
2565
+ return !!t;
2566
+ })();
2537
2567
  }
2538
2568
 
2539
2569
  function _assertThisInitialized(self) {
@@ -3917,7 +3947,7 @@ function injectCSS(css) {
3917
3947
  if (prepend) {
3918
3948
  // If is queue `prepend`, it will prepend first style and then append rest style
3919
3949
  if (isPrependQueue) {
3920
- var existStyle = findStyles(container).filter(function (node) {
3950
+ var existStyle = (option.styles || findStyles(container)).filter(function (node) {
3921
3951
  // Ignore style which not injected by rc-util with prepend
3922
3952
  if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {
3923
3953
  return false;
@@ -3943,7 +3973,7 @@ function injectCSS(css) {
3943
3973
  function findExistNode(key) {
3944
3974
  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3945
3975
  var container = getContainer(option);
3946
- return findStyles(container).find(function (node) {
3976
+ return (option.styles || findStyles(container)).find(function (node) {
3947
3977
  return node.getAttribute(getMark(option)) === key;
3948
3978
  });
3949
3979
  }
@@ -3971,8 +4001,12 @@ function syncRealContainer(container, option) {
3971
4001
  }
3972
4002
  }
3973
4003
  function updateCSS(css, key) {
3974
- var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
3975
- var container = getContainer(option);
4004
+ var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4005
+ var container = getContainer(originOption);
4006
+ var styles = findStyles(container);
4007
+ var option = _objectSpread2(_objectSpread2({}, originOption), {}, {
4008
+ styles: styles
4009
+ });
3976
4010
 
3977
4011
  // Sync real parent
3978
4012
  syncRealContainer(container, option);
@@ -3994,43 +4028,60 @@ function updateCSS(css, key) {
3994
4028
  }
3995
4029
 
3996
4030
  /* eslint-disable no-param-reassign */
4031
+ function measureScrollbarSize(ele) {
4032
+ var randomId = "rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7));
4033
+ var measureEle = document.createElement('div');
4034
+ measureEle.id = randomId;
4035
+
4036
+ // Create Style
4037
+ var measureStyle = measureEle.style;
4038
+ measureStyle.position = 'absolute';
4039
+ measureStyle.left = '0';
4040
+ measureStyle.top = '0';
4041
+ measureStyle.width = '100px';
4042
+ measureStyle.height = '100px';
4043
+ measureStyle.overflow = 'scroll';
4044
+
4045
+ // Clone Style if needed
4046
+ var fallbackWidth;
4047
+ var fallbackHeight;
4048
+ if (ele) {
4049
+ var targetStyle = getComputedStyle(ele);
4050
+ measureStyle.scrollbarColor = targetStyle.scrollbarColor;
4051
+ measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;
4052
+
4053
+ // Set Webkit style
4054
+ var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');
4055
+ var width = parseInt(webkitScrollbarStyle.width, 10);
4056
+ var height = parseInt(webkitScrollbarStyle.height, 10);
4057
+
4058
+ // Try wrap to handle CSP case
4059
+ try {
4060
+ var widthStyle = width ? "width: ".concat(webkitScrollbarStyle.width, ";") : '';
4061
+ var heightStyle = height ? "height: ".concat(webkitScrollbarStyle.height, ";") : '';
4062
+ updateCSS("\n#".concat(randomId, "::-webkit-scrollbar {\n").concat(widthStyle, "\n").concat(heightStyle, "\n}"), randomId);
4063
+ } catch (e) {
4064
+ // Can't wrap, just log error
4065
+ console.error(e);
4066
+
4067
+ // Get from style directly
4068
+ fallbackWidth = width;
4069
+ fallbackHeight = height;
4070
+ }
4071
+ }
4072
+ document.body.appendChild(measureEle);
4073
+
4074
+ // Measure. Get fallback style if provided
4075
+ var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;
4076
+ var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;
3997
4077
 
3998
- var cached;
3999
- function getScrollBarSize(fresh) {
4000
- if (typeof document === 'undefined') {
4001
- return 0;
4002
- }
4003
- if (fresh || cached === undefined) {
4004
- var inner = document.createElement('div');
4005
- inner.style.width = '100%';
4006
- inner.style.height = '200px';
4007
- var outer = document.createElement('div');
4008
- var outerStyle = outer.style;
4009
- outerStyle.position = 'absolute';
4010
- outerStyle.top = '0';
4011
- outerStyle.left = '0';
4012
- outerStyle.pointerEvents = 'none';
4013
- outerStyle.visibility = 'hidden';
4014
- outerStyle.width = '200px';
4015
- outerStyle.height = '150px';
4016
- outerStyle.overflow = 'hidden';
4017
- outer.appendChild(inner);
4018
- document.body.appendChild(outer);
4019
- var widthContained = inner.offsetWidth;
4020
- outer.style.overflow = 'scroll';
4021
- var widthScroll = inner.offsetWidth;
4022
- if (widthContained === widthScroll) {
4023
- widthScroll = outer.clientWidth;
4024
- }
4025
- document.body.removeChild(outer);
4026
- cached = widthContained - widthScroll;
4027
- }
4028
- return cached;
4029
- }
4030
- function ensureSize(str) {
4031
- var match = str.match(/^(.*)px$/);
4032
- var value = Number(match === null || match === void 0 ? void 0 : match[1]);
4033
- return Number.isNaN(value) ? getScrollBarSize() : value;
4078
+ // Clean up
4079
+ document.body.removeChild(measureEle);
4080
+ removeCSS(randomId);
4081
+ return {
4082
+ width: scrollWidth,
4083
+ height: scrollHeight
4084
+ };
4034
4085
  }
4035
4086
  function getTargetScrollBarSize(target) {
4036
4087
  if (typeof document === 'undefined' || !target || !(target instanceof Element)) {
@@ -4039,13 +4090,7 @@ function getTargetScrollBarSize(target) {
4039
4090
  height: 0
4040
4091
  };
4041
4092
  }
4042
- var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),
4043
- width = _getComputedStyle.width,
4044
- height = _getComputedStyle.height;
4045
- return {
4046
- width: ensureSize(width),
4047
- height: ensureSize(height)
4048
- };
4093
+ return measureScrollbarSize(target);
4049
4094
  }
4050
4095
 
4051
4096
  /**
@@ -5369,7 +5414,9 @@ var _excluded$6 = ["prefixCls", "children", "action", "showAction", "hideAction"
5369
5414
  // Removed Props List
5370
5415
  // Seems this can be auto
5371
5416
  // getDocument?: (element?: HTMLElement) => Document;
5417
+
5372
5418
  // New version will not wrap popup with `rc-trigger-popup-content` when multiple children
5419
+
5373
5420
  function generateTrigger() {
5374
5421
  var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;
5375
5422
  var Trigger = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
@@ -5717,9 +5764,9 @@ function generateTrigger() {
5717
5764
  wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {
5718
5765
  setMousePosByEvent(event);
5719
5766
  });
5720
- onPopupMouseEnter = function onPopupMouseEnter() {
5767
+ onPopupMouseEnter = function onPopupMouseEnter(event) {
5721
5768
  // Only trigger re-open when popup is visible
5722
- if (mergedOpen || inMotion) {
5769
+ if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {
5723
5770
  triggerOpen(true, mouseEnterDelay);
5724
5771
  }
5725
5772
  };
@@ -6944,16 +6991,15 @@ var Filler = /*#__PURE__*/React$4.forwardRef(function (_ref, ref) {
6944
6991
  flexDirection: 'column'
6945
6992
  };
6946
6993
  if (offsetY !== undefined) {
6947
- var _objectSpread2$1;
6948
6994
  // Not set `width` since this will break `sticky: right`
6949
6995
  outerStyle = {
6950
6996
  height: height,
6951
6997
  position: 'relative',
6952
6998
  overflow: 'hidden'
6953
6999
  };
6954
- innerStyle = _objectSpread2(_objectSpread2({}, innerStyle), {}, (_objectSpread2$1 = {
7000
+ innerStyle = _objectSpread2(_objectSpread2({}, innerStyle), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
6955
7001
  transform: "translateY(".concat(offsetY, "px)")
6956
- }, _defineProperty(_objectSpread2$1, rtl ? 'marginRight' : 'marginLeft', -offsetX), _defineProperty(_objectSpread2$1, "position", 'absolute'), _defineProperty(_objectSpread2$1, "left", 0), _defineProperty(_objectSpread2$1, "right", 0), _defineProperty(_objectSpread2$1, "top", 0), _objectSpread2$1));
7002
+ }, rtl ? 'marginRight' : 'marginLeft', -offsetX), "position", 'absolute'), "left", 0), "right", 0), "top", 0));
6957
7003
  }
6958
7004
  return /*#__PURE__*/React$4.createElement("div", {
6959
7005
  style: outerStyle
@@ -6977,7 +7023,6 @@ function getPageXY(e, horizontal) {
6977
7023
  return obj[horizontal ? 'pageX' : 'pageY'];
6978
7024
  }
6979
7025
  var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
6980
- var _classNames;
6981
7026
  var prefixCls = props.prefixCls,
6982
7027
  rtl = props.rtl,
6983
7028
  scrollOffset = props.scrollOffset,
@@ -7003,9 +7048,11 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7003
7048
  startTop = _React$useState6[0],
7004
7049
  setStartTop = _React$useState6[1];
7005
7050
  var isLTR = !rtl;
7051
+
7006
7052
  // ========================= Refs =========================
7007
7053
  var scrollbarRef = React$4.useRef();
7008
7054
  var thumbRef = React$4.useRef();
7055
+
7009
7056
  // ======================= Visible ========================
7010
7057
  var _React$useState7 = React$4.useState(false),
7011
7058
  _React$useState8 = _slicedToArray(_React$useState7, 2),
@@ -7019,11 +7066,11 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7019
7066
  setVisible(false);
7020
7067
  }, 3000);
7021
7068
  };
7069
+
7022
7070
  // ======================== Range =========================
7023
7071
  var enableScrollRange = scrollRange - containerSize || 0;
7024
7072
  var enableOffsetRange = containerSize - spinSize || 0;
7025
- // `scrollWidth` < `clientWidth` means no need to show scrollbar
7026
- var canScroll = enableScrollRange > 0;
7073
+
7027
7074
  // ========================= Top ==========================
7028
7075
  var top = React$4.useMemo(function () {
7029
7076
  if (scrollOffset === 0 || enableScrollRange === 0) {
@@ -7032,11 +7079,13 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7032
7079
  var ptg = scrollOffset / enableScrollRange;
7033
7080
  return ptg * enableOffsetRange;
7034
7081
  }, [scrollOffset, enableScrollRange, enableOffsetRange]);
7082
+
7035
7083
  // ====================== Container =======================
7036
7084
  var onContainerMouseDown = function onContainerMouseDown(e) {
7037
7085
  e.stopPropagation();
7038
7086
  e.preventDefault();
7039
7087
  };
7088
+
7040
7089
  // ======================== Thumb =========================
7041
7090
  var stateRef = React$4.useRef({
7042
7091
  top: top,
@@ -7058,7 +7107,9 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7058
7107
  e.stopPropagation();
7059
7108
  e.preventDefault();
7060
7109
  };
7110
+
7061
7111
  // ======================== Effect ========================
7112
+
7062
7113
  // React make event as passive, but we need to preventDefault
7063
7114
  // Add event on dom directly instead.
7064
7115
  // ref: https://github.com/facebook/react/issues/9809
@@ -7075,6 +7126,7 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7075
7126
  thumbEle.removeEventListener('touchstart', onThumbMouseDown);
7076
7127
  };
7077
7128
  }, []);
7129
+
7078
7130
  // Pass to effect
7079
7131
  var enableScrollRangeRef = React$4.useRef();
7080
7132
  enableScrollRangeRef.current = enableScrollRange;
@@ -7128,17 +7180,19 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7128
7180
  React$4.useEffect(function () {
7129
7181
  delayHidden();
7130
7182
  }, [scrollOffset]);
7183
+
7131
7184
  // ====================== Imperative ======================
7132
7185
  React$4.useImperativeHandle(ref, function () {
7133
7186
  return {
7134
7187
  delayHidden: delayHidden
7135
7188
  };
7136
7189
  });
7190
+
7137
7191
  // ======================== Render ========================
7138
7192
  var scrollbarPrefixCls = "".concat(prefixCls, "-scrollbar");
7139
7193
  var containerStyle = {
7140
7194
  position: 'absolute',
7141
- visibility: visible && canScroll ? null : 'hidden'
7195
+ visibility: visible ? null : 'hidden'
7142
7196
  };
7143
7197
  var thumbStyle = {
7144
7198
  position: 'absolute',
@@ -7153,6 +7207,7 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7153
7207
  containerStyle.left = 0;
7154
7208
  containerStyle.right = 0;
7155
7209
  containerStyle.bottom = 0;
7210
+
7156
7211
  // Thumb
7157
7212
  thumbStyle.height = '100%';
7158
7213
  thumbStyle.width = spinSize;
@@ -7171,6 +7226,7 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7171
7226
  } else {
7172
7227
  containerStyle.left = 0;
7173
7228
  }
7229
+
7174
7230
  // Thumb
7175
7231
  thumbStyle.width = '100%';
7176
7232
  thumbStyle.height = spinSize;
@@ -7178,7 +7234,7 @@ var ScrollBar = /*#__PURE__*/React$4.forwardRef(function (props, ref) {
7178
7234
  }
7179
7235
  return /*#__PURE__*/React$4.createElement("div", {
7180
7236
  ref: scrollbarRef,
7181
- className: classNames(scrollbarPrefixCls, (_classNames = {}, _defineProperty(_classNames, "".concat(scrollbarPrefixCls, "-horizontal"), horizontal), _defineProperty(_classNames, "".concat(scrollbarPrefixCls, "-vertical"), !horizontal), _defineProperty(_classNames, "".concat(scrollbarPrefixCls, "-visible"), visible), _classNames)),
7237
+ className: classNames(scrollbarPrefixCls, _defineProperty(_defineProperty(_defineProperty({}, "".concat(scrollbarPrefixCls, "-horizontal"), horizontal), "".concat(scrollbarPrefixCls, "-vertical"), !horizontal), "".concat(scrollbarPrefixCls, "-visible"), visible)),
7182
7238
  style: _objectSpread2(_objectSpread2({}, containerStyle), style),
7183
7239
  onMouseDown: onContainerMouseDown,
7184
7240
  onMouseMove: delayHidden
@@ -7227,10 +7283,10 @@ function useChildren(list, startIndex, endIndex, scrollWidth, setNodeRef, render
7227
7283
  var CacheMap = /*#__PURE__*/function () {
7228
7284
  function CacheMap() {
7229
7285
  _classCallCheck(this, CacheMap);
7230
- this.maps = void 0;
7286
+ _defineProperty(this, "maps", void 0);
7231
7287
  // Used for cache key
7232
7288
  // `useMemo` no need to update if `id` not change
7233
- this.id = 0;
7289
+ _defineProperty(this, "id", 0);
7234
7290
  this.maps = Object.create(null);
7235
7291
  }
7236
7292
  _createClass(CacheMap, [{
@@ -7272,6 +7328,7 @@ function useHeights(getKey, onItemAdd, onItemRemove) {
7272
7328
  }
7273
7329
  }
7274
7330
  });
7331
+
7275
7332
  // Always trigger update mark to tell parent that should re-calculate heights when resized
7276
7333
  setUpdatedMark(function (c) {
7277
7334
  return c + 1;
@@ -7292,12 +7349,13 @@ function useHeights(getKey, onItemAdd, onItemRemove) {
7292
7349
  } else {
7293
7350
  instanceRef.current.delete(key);
7294
7351
  }
7352
+
7295
7353
  // Instance changed
7296
7354
  if (!origin !== !instance) {
7297
7355
  if (instance) {
7298
- onItemAdd === null || onItemAdd === void 0 ? void 0 : onItemAdd(item);
7356
+ onItemAdd === null || onItemAdd === void 0 || onItemAdd(item);
7299
7357
  } else {
7300
- onItemRemove === null || onItemRemove === void 0 ? void 0 : onItemRemove(item);
7358
+ onItemRemove === null || onItemRemove === void 0 || onItemRemove(item);
7301
7359
  }
7302
7360
  }
7303
7361
  }
@@ -7314,6 +7372,7 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7314
7372
  _React$useState2 = _slicedToArray(_React$useState, 2),
7315
7373
  syncState = _React$useState2[0],
7316
7374
  setSyncState = _React$useState2[1];
7375
+
7317
7376
  // ========================== Sync Scroll ==========================
7318
7377
  useLayoutEffect$3(function () {
7319
7378
  if (syncState && syncState.times < MAX_TIMES) {
@@ -7333,9 +7392,11 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7333
7392
  var needCollectHeight = false;
7334
7393
  var newTargetAlign = targetAlign;
7335
7394
  var targetTop = null;
7395
+
7336
7396
  // Go to next frame if height not exist
7337
7397
  if (height) {
7338
7398
  var mergedAlign = targetAlign || originAlign;
7399
+
7339
7400
  // Get top & bottom
7340
7401
  var stackTop = 0;
7341
7402
  var itemTop = 0;
@@ -7348,6 +7409,7 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7348
7409
  itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);
7349
7410
  stackTop = itemBottom;
7350
7411
  }
7412
+
7351
7413
  // Check if need sync height (visible range has item not record height)
7352
7414
  var leftHeight = mergedAlign === 'top' ? offset : height - offset;
7353
7415
  for (var _i = maxLen; _i >= 0; _i -= 1) {
@@ -7362,6 +7424,7 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7362
7424
  break;
7363
7425
  }
7364
7426
  }
7427
+
7365
7428
  // Scroll to
7366
7429
  switch (mergedAlign) {
7367
7430
  case 'top':
@@ -7384,11 +7447,13 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7384
7447
  if (targetTop !== null) {
7385
7448
  syncScrollTop(targetTop);
7386
7449
  }
7450
+
7387
7451
  // One more time for sync
7388
7452
  if (targetTop !== syncState.lastTop) {
7389
7453
  needCollectHeight = true;
7390
7454
  }
7391
7455
  }
7456
+
7392
7457
  // Trigger next effect
7393
7458
  if (needCollectHeight) {
7394
7459
  setSyncState(_objectSpread2(_objectSpread2({}, syncState), {}, {
@@ -7401,6 +7466,7 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7401
7466
  warningOnce(false, 'Seems `scrollTo` with `rc-virtual-list` reach the max limitation. Please fire issue for us. Thanks.');
7402
7467
  }
7403
7468
  }, [syncState, containerRef.current]);
7469
+
7404
7470
  // =========================== Scroll To ===========================
7405
7471
  return function (arg) {
7406
7472
  // When not argument provided, we think dev may want to show the scrollbar
@@ -7408,6 +7474,7 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7408
7474
  triggerFlash();
7409
7475
  return;
7410
7476
  }
7477
+
7411
7478
  // Normal scroll logic
7412
7479
  wrapperRaf.cancel(scrollRef.current);
7413
7480
  if (typeof arg === 'number') {
@@ -7447,6 +7514,7 @@ function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHei
7447
7514
  * [5]: 9
7448
7515
  * [6]: 3
7449
7516
  */
7517
+
7450
7518
  /**
7451
7519
  * We assume that 2 list has only 1 item diff and others keeping the order.
7452
7520
  * So we can use dichotomy algorithm to find changed one.
@@ -7475,6 +7543,7 @@ function findListDiffIndex(originList, targetList, getKey) {
7475
7543
  }
7476
7544
  return notExistKey;
7477
7545
  }
7546
+
7478
7547
  // Loop to find diff one
7479
7548
  var diffIndex = null;
7480
7549
  var multiple = Math.abs(originLen - targetLen) !== 1;
@@ -7505,7 +7574,7 @@ function useDiffItem(data, getKey, onDiff) {
7505
7574
  React$4.useEffect(function () {
7506
7575
  var diff = findListDiffIndex(prevData || [], data || [], getKey);
7507
7576
  if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {
7508
- onDiff === null || onDiff === void 0 ? void 0 : onDiff(diff.index);
7577
+ onDiff === null || onDiff === void 0 || onDiff(diff.index);
7509
7578
  setDiffItem(data[diff.index]);
7510
7579
  }
7511
7580
  setPrevData(data);
@@ -7526,6 +7595,7 @@ var useOriginScroll = (function (isScrollAtTop, isScrollAtBottom) {
7526
7595
  lockRef.current = false;
7527
7596
  }, 50);
7528
7597
  }
7598
+
7529
7599
  // Pass to ref since global add is in closure
7530
7600
  var scrollPingRef = useRef({
7531
7601
  top: isScrollAtTop,
@@ -7558,17 +7628,21 @@ function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, horizontalScr
7558
7628
  onWheelDelta) {
7559
7629
  var offsetRef = useRef(0);
7560
7630
  var nextFrameRef = useRef(null);
7631
+
7561
7632
  // Firefox patch
7562
7633
  var wheelValueRef = useRef(null);
7563
7634
  var isMouseScrollRef = useRef(false);
7635
+
7564
7636
  // Scroll status sync
7565
7637
  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);
7566
7638
  function onWheelY(event, deltaY) {
7567
7639
  wrapperRaf.cancel(nextFrameRef.current);
7568
7640
  offsetRef.current += deltaY;
7569
7641
  wheelValueRef.current = deltaY;
7642
+
7570
7643
  // Do nothing when scroll at the edge, Skip check when is in scroll
7571
7644
  if (originScroll(deltaY)) return;
7645
+
7572
7646
  // Proxy of scroll events
7573
7647
  if (!isFF) {
7574
7648
  event.preventDefault();
@@ -7587,11 +7661,13 @@ onWheelDelta) {
7587
7661
  event.preventDefault();
7588
7662
  }
7589
7663
  }
7664
+
7590
7665
  // Check for which direction does wheel do. `sx` means `shift + wheel`
7591
7666
  var wheelDirectionRef = useRef(null);
7592
7667
  var wheelDirectionCleanRef = useRef(null);
7593
7668
  function onWheel(event) {
7594
7669
  if (!inVirtual) return;
7670
+
7595
7671
  // Wait for 2 frame to clean direction
7596
7672
  wrapperRaf.cancel(wheelDirectionCleanRef.current);
7597
7673
  wheelDirectionCleanRef.current = wrapperRaf(function () {
@@ -7618,6 +7694,7 @@ onWheelDelta) {
7618
7694
  onWheelX(event, mergedDeltaX);
7619
7695
  }
7620
7696
  }
7697
+
7621
7698
  // A patch for firefox
7622
7699
  function onFireFoxScroll(event) {
7623
7700
  if (!inVirtual) return;
@@ -7631,23 +7708,26 @@ function useMobileTouchMove(inVirtual, listRef, callback) {
7631
7708
  var touchedRef = useRef(false);
7632
7709
  var touchYRef = useRef(0);
7633
7710
  var elementRef = useRef(null);
7711
+
7634
7712
  // Smooth scroll
7635
7713
  var intervalRef = useRef(null);
7714
+
7636
7715
  /* eslint-disable prefer-const */
7637
7716
  var cleanUpEvents;
7638
7717
  var onTouchMove = function onTouchMove(e) {
7639
7718
  if (touchedRef.current) {
7640
7719
  var currentY = Math.ceil(e.touches[0].pageY);
7641
- var offsetY = touchYRef.current - currentY;
7720
+ var _offsetY = touchYRef.current - currentY;
7642
7721
  touchYRef.current = currentY;
7643
- if (callback(offsetY)) {
7722
+ if (callback(_offsetY)) {
7644
7723
  e.preventDefault();
7645
7724
  }
7725
+
7646
7726
  // Smooth interval
7647
7727
  clearInterval(intervalRef.current);
7648
7728
  intervalRef.current = setInterval(function () {
7649
- offsetY *= SMOOTH_PTG;
7650
- if (!callback(offsetY, true) || Math.abs(offsetY) <= 0.1) {
7729
+ _offsetY *= SMOOTH_PTG;
7730
+ if (!callback(_offsetY, true) || Math.abs(_offsetY) <= 0.1) {
7651
7731
  clearInterval(intervalRef.current);
7652
7732
  }
7653
7733
  }, 16);
@@ -7679,7 +7759,7 @@ function useMobileTouchMove(inVirtual, listRef, callback) {
7679
7759
  }
7680
7760
  return function () {
7681
7761
  var _listRef$current;
7682
- (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.removeEventListener('touchstart', onTouchStart);
7762
+ (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.removeEventListener('touchstart', onTouchStart);
7683
7763
  cleanUpEvents();
7684
7764
  clearInterval(intervalRef.current);
7685
7765
  };
@@ -7690,12 +7770,11 @@ var MIN_SIZE = 20;
7690
7770
  function getSpinSize() {
7691
7771
  var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
7692
7772
  var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
7693
- var baseSize = containerSize / scrollRange * 100;
7773
+ var baseSize = containerSize / scrollRange * containerSize;
7694
7774
  if (isNaN(baseSize)) {
7695
7775
  baseSize = 0;
7696
7776
  }
7697
7777
  baseSize = Math.max(baseSize, MIN_SIZE);
7698
- baseSize = Math.min(baseSize, containerSize / 2);
7699
7778
  return Math.floor(baseSize);
7700
7779
  }
7701
7780
 
@@ -7715,6 +7794,7 @@ function useGetSize(mergedData, getKey, heights, itemHeight) {
7715
7794
  // Get from cache first
7716
7795
  var startIndex = key2Index.get(startKey);
7717
7796
  var endIndex = key2Index.get(endKey);
7797
+
7718
7798
  // Loop to fill the cache
7719
7799
  if (startIndex === undefined || endIndex === undefined) {
7720
7800
  var dataLen = mergedData.length;
@@ -7774,6 +7854,7 @@ function RawList(props, ref) {
7774
7854
  extraRender = props.extraRender,
7775
7855
  styles = props.styles,
7776
7856
  restProps = _objectWithoutProperties(props, _excluded$2);
7857
+
7777
7858
  // ================================= MISC =================================
7778
7859
  var useVirtual = !!(virtual !== false && height && itemHeight);
7779
7860
  var inVirtual = useVirtual && data && (itemHeight * data.length > height || !!scrollWidth);
@@ -7782,7 +7863,9 @@ function RawList(props, ref) {
7782
7863
  var mergedData = data || EMPTY_DATA;
7783
7864
  var componentRef = useRef();
7784
7865
  var fillerInnerRef = useRef();
7866
+
7785
7867
  // =============================== Item Key ===============================
7868
+
7786
7869
  var _useState = useState$1(0),
7787
7870
  _useState2 = _slicedToArray(_useState, 2),
7788
7871
  offsetTop = _useState2[0],
@@ -7801,6 +7884,7 @@ function RawList(props, ref) {
7801
7884
  var onScrollbarStopMove = function onScrollbarStopMove() {
7802
7885
  setScrollMoving(false);
7803
7886
  };
7887
+
7804
7888
  // =============================== Item Key ===============================
7805
7889
  var getKey = React$4.useCallback(function (item) {
7806
7890
  if (typeof itemKey === 'function') {
@@ -7811,6 +7895,7 @@ function RawList(props, ref) {
7811
7895
  var sharedConfig = {
7812
7896
  getKey: getKey
7813
7897
  };
7898
+
7814
7899
  // ================================ Scroll ================================
7815
7900
  function syncScrollTop(newTop) {
7816
7901
  setOffsetTop(function (origin) {
@@ -7825,6 +7910,7 @@ function RawList(props, ref) {
7825
7910
  return alignedTop;
7826
7911
  });
7827
7912
  }
7913
+
7828
7914
  // ================================ Legacy ================================
7829
7915
  // Put ref here since the range is generate by follow
7830
7916
  var rangeRef = useRef({
@@ -7836,6 +7922,7 @@ function RawList(props, ref) {
7836
7922
  _useDiffItem2 = _slicedToArray(_useDiffItem, 1),
7837
7923
  diffItem = _useDiffItem2[0];
7838
7924
  diffItemRef.current = diffItem;
7925
+
7839
7926
  // ================================ Height ================================
7840
7927
  var _useHeights = useHeights(getKey, null, null),
7841
7928
  _useHeights2 = _slicedToArray(_useHeights, 4),
@@ -7843,6 +7930,7 @@ function RawList(props, ref) {
7843
7930
  collectHeight = _useHeights2[1],
7844
7931
  heights = _useHeights2[2],
7845
7932
  heightUpdatedMark = _useHeights2[3];
7933
+
7846
7934
  // ========================== Visible Calculation =========================
7847
7935
  var _React$useMemo = React$4.useMemo(function () {
7848
7936
  if (!useVirtual) {
@@ -7853,6 +7941,7 @@ function RawList(props, ref) {
7853
7941
  offset: undefined
7854
7942
  };
7855
7943
  }
7944
+
7856
7945
  // Always use virtual scroll bar in avoid shaking
7857
7946
  if (!inVirtual) {
7858
7947
  var _fillerInnerRef$curre;
@@ -7869,21 +7958,24 @@ function RawList(props, ref) {
7869
7958
  var endIndex;
7870
7959
  var dataLen = mergedData.length;
7871
7960
  for (var i = 0; i < dataLen; i += 1) {
7872
- var item = mergedData[i];
7873
- var key = getKey(item);
7961
+ var _item = mergedData[i];
7962
+ var key = getKey(_item);
7874
7963
  var cacheHeight = heights.get(key);
7875
7964
  var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);
7965
+
7876
7966
  // Check item top in the range
7877
7967
  if (currentItemBottom >= offsetTop && startIndex === undefined) {
7878
7968
  startIndex = i;
7879
7969
  startOffset = itemTop;
7880
7970
  }
7971
+
7881
7972
  // Check item bottom in the range. We will render additional one item for motion usage
7882
7973
  if (currentItemBottom > offsetTop + height && endIndex === undefined) {
7883
7974
  endIndex = i;
7884
7975
  }
7885
7976
  itemTop = currentItemBottom;
7886
7977
  }
7978
+
7887
7979
  // When scrollTop at the end but data cut to small count will reach this
7888
7980
  if (startIndex === undefined) {
7889
7981
  startIndex = 0;
@@ -7893,6 +7985,7 @@ function RawList(props, ref) {
7893
7985
  if (endIndex === undefined) {
7894
7986
  endIndex = mergedData.length - 1;
7895
7987
  }
7988
+
7896
7989
  // Give cache to improve scroll experience
7897
7990
  endIndex = Math.min(endIndex + 1, mergedData.length - 1);
7898
7991
  return {
@@ -7908,6 +8001,7 @@ function RawList(props, ref) {
7908
8001
  fillerOffset = _React$useMemo.offset;
7909
8002
  rangeRef.current.start = start;
7910
8003
  rangeRef.current.end = end;
8004
+
7911
8005
  // ================================= Size =================================
7912
8006
  var _React$useState = React$4.useState({
7913
8007
  width: 0,
@@ -7922,6 +8016,7 @@ function RawList(props, ref) {
7922
8016
  height: sizeInfo.height || sizeInfo.offsetHeight
7923
8017
  });
7924
8018
  };
8019
+
7925
8020
  // Hack on scrollbar to enable flash call
7926
8021
  var verticalScrollBarRef = useRef();
7927
8022
  var horizontalScrollBarRef = useRef();
@@ -7931,6 +8026,7 @@ function RawList(props, ref) {
7931
8026
  var verticalScrollBarSpinSize = React$4.useMemo(function () {
7932
8027
  return getSpinSize(size.height, scrollHeight);
7933
8028
  }, [size.height, scrollHeight]);
8029
+
7934
8030
  // =============================== In Range ===============================
7935
8031
  var maxScrollHeight = scrollHeight - height;
7936
8032
  var maxScrollHeightRef = useRef(maxScrollHeight);
@@ -7946,6 +8042,7 @@ function RawList(props, ref) {
7946
8042
  var isScrollAtTop = offsetTop <= 0;
7947
8043
  var isScrollAtBottom = offsetTop >= maxScrollHeight;
7948
8044
  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);
8045
+
7949
8046
  // ================================ Scroll ================================
7950
8047
  var getVirtualScrollInfo = function getVirtualScrollInfo() {
7951
8048
  return {
@@ -7957,6 +8054,7 @@ function RawList(props, ref) {
7957
8054
  var triggerScroll = useEvent$2(function () {
7958
8055
  if (onVirtualScroll) {
7959
8056
  var nextInfo = getVirtualScrollInfo();
8057
+
7960
8058
  // Trigger when offset changed
7961
8059
  if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {
7962
8060
  onVirtualScroll(nextInfo);
@@ -7975,14 +8073,16 @@ function RawList(props, ref) {
7975
8073
  syncScrollTop(newOffset);
7976
8074
  }
7977
8075
  }
8076
+
7978
8077
  // When data size reduce. It may trigger native scroll event back to fit scroll position
7979
8078
  function onFallbackScroll(e) {
7980
8079
  var newScrollTop = e.currentTarget.scrollTop;
7981
8080
  if (newScrollTop !== offsetTop) {
7982
8081
  syncScrollTop(newScrollTop);
7983
8082
  }
8083
+
7984
8084
  // Trigger origin onScroll
7985
- onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);
8085
+ onScroll === null || onScroll === void 0 || onScroll(e);
7986
8086
  triggerScroll();
7987
8087
  }
7988
8088
  var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {
@@ -7995,6 +8095,7 @@ function RawList(props, ref) {
7995
8095
  var onWheelDelta = useEvent$2(function (offsetXY, fromHorizontal) {
7996
8096
  if (fromHorizontal) {
7997
8097
  // Horizontal scroll no need sync virtual position
8098
+
7998
8099
  flushSync(function () {
7999
8100
  setOffsetLeft(function (left) {
8000
8101
  var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);
@@ -8009,11 +8110,13 @@ function RawList(props, ref) {
8009
8110
  });
8010
8111
  }
8011
8112
  });
8113
+
8012
8114
  // Since this added in global,should use ref to keep update
8013
8115
  var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, !!scrollWidth, onWheelDelta),
8014
8116
  _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),
8015
8117
  onRawWheel = _useFrameWheel2[0],
8016
8118
  onFireFoxScroll = _useFrameWheel2[1];
8119
+
8017
8120
  // Mobile touch move
8018
8121
  useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {
8019
8122
  if (originScroll(deltaY, smoothOffset)) {
@@ -8042,6 +8145,7 @@ function RawList(props, ref) {
8042
8145
  componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);
8043
8146
  };
8044
8147
  }, [useVirtual]);
8148
+
8045
8149
  // Sync scroll left
8046
8150
  useLayoutEffect$3(function () {
8047
8151
  if (scrollWidth) {
@@ -8050,11 +8154,12 @@ function RawList(props, ref) {
8050
8154
  });
8051
8155
  }
8052
8156
  }, [size.width, scrollWidth]);
8157
+
8053
8158
  // ================================= Ref ==================================
8054
8159
  var delayHideScrollBar = function delayHideScrollBar() {
8055
8160
  var _verticalScrollBarRef, _horizontalScrollBarR;
8056
- (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 ? void 0 : _verticalScrollBarRef.delayHidden();
8057
- (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 ? void 0 : _horizontalScrollBarR.delayHidden();
8161
+ (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();
8162
+ (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();
8058
8163
  };
8059
8164
  var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {
8060
8165
  return collectHeight(true);
@@ -8071,6 +8176,7 @@ function RawList(props, ref) {
8071
8176
  if (config.left !== undefined) {
8072
8177
  setOffsetLeft(keepInHorizontalRange(config.left));
8073
8178
  }
8179
+
8074
8180
  // Scroll Y
8075
8181
  _scrollTo(config.top);
8076
8182
  } else {
@@ -8079,6 +8185,7 @@ function RawList(props, ref) {
8079
8185
  }
8080
8186
  };
8081
8187
  });
8188
+
8082
8189
  // ================================ Effect ================================
8083
8190
  /** We need told outside that some list not rendered */
8084
8191
  useLayoutEffect$3(function () {
@@ -8087,6 +8194,7 @@ function RawList(props, ref) {
8087
8194
  onVisibleChange(renderList, mergedData);
8088
8195
  }
8089
8196
  }, [start, end, mergedData]);
8197
+
8090
8198
  // ================================ Extra =================================
8091
8199
  var getSize = useGetSize(mergedData, getKey, heights, itemHeight);
8092
8200
  var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({
@@ -8098,6 +8206,7 @@ function RawList(props, ref) {
8098
8206
  rtl: isRTL,
8099
8207
  getSize: getSize
8100
8208
  });
8209
+
8101
8210
  // ================================ Render ================================
8102
8211
  var listChildren = useChildren(mergedData, start, end, scrollWidth, setInstanceRef, children, sharedConfig);
8103
8212
  var componentStyle = null;
@@ -8154,7 +8263,7 @@ function RawList(props, ref) {
8154
8263
  containerSize: size.height,
8155
8264
  style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,
8156
8265
  thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb
8157
- }), inVirtual && scrollWidth && /*#__PURE__*/React$4.createElement(ScrollBar, {
8266
+ }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React$4.createElement(ScrollBar, {
8158
8267
  ref: horizontalScrollBarRef,
8159
8268
  prefixCls: prefixCls,
8160
8269
  scrollOffset: offsetLeft,
@@ -9300,7 +9409,7 @@ var interopRequireWildcard = {exports: {}};
9300
9409
  __proto__: null
9301
9410
  },
9302
9411
  a = Object.defineProperty && Object.getOwnPropertyDescriptor;
9303
- for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {
9412
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
9304
9413
  var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
9305
9414
  i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
9306
9415
  }