@arco-design/mobile-react 2.19.1-941e02b.7 → 2.20.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 (130) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.en-US.md +6 -6
  3. package/README.md +6 -6
  4. package/cjs/_helpers/type.d.ts +1 -1
  5. package/cjs/avatar/group.js +1 -1
  6. package/cjs/avatar/index.js +10 -13
  7. package/cjs/avatar/style/css/index.css +96 -126
  8. package/cjs/avatar/style/index.less +54 -72
  9. package/cjs/badge/index.js +6 -8
  10. package/cjs/badge/style/css/index.css +5 -5
  11. package/cjs/badge/style/index.less +5 -5
  12. package/cjs/button/hooks.d.ts +1 -2
  13. package/cjs/button/hooks.js +5 -3
  14. package/cjs/button/index.d.ts +12 -0
  15. package/cjs/button/index.js +40 -33
  16. package/cjs/button/style/css/index.css +75 -310
  17. package/cjs/button/style/index.less +32 -38
  18. package/cjs/count-down/demo/style/mobile.less +1 -1
  19. package/cjs/dropdown/dropdown.d.ts +3 -0
  20. package/cjs/dropdown/dropdown.js +306 -0
  21. package/cjs/dropdown/index.d.ts +3 -4
  22. package/cjs/dropdown/index.js +3 -303
  23. package/cjs/dropdown/options.js +2 -1
  24. package/cjs/dropdown/type.d.ts +20 -9
  25. package/cjs/dropdown-menu/dropdown-menu.d.ts +4 -0
  26. package/cjs/dropdown-menu/dropdown-menu.js +273 -0
  27. package/cjs/dropdown-menu/helper.d.ts +1 -1
  28. package/cjs/dropdown-menu/index.d.ts +2 -3
  29. package/cjs/dropdown-menu/index.js +2 -245
  30. package/cjs/dropdown-menu/type.d.ts +21 -20
  31. package/cjs/image/index.js +4 -1
  32. package/cjs/image/style/css/index.css +2 -1
  33. package/cjs/image/style/index.less +2 -1
  34. package/cjs/image-picker/index.d.ts +11 -8
  35. package/cjs/image-picker/index.js +19 -12
  36. package/cjs/image-picker/style/index.less +1 -1
  37. package/cjs/nav-bar/index.js +7 -2
  38. package/cjs/notify/index.d.ts +1 -0
  39. package/cjs/notify/index.js +12 -0
  40. package/cjs/notify/type.d.ts +1 -0
  41. package/cjs/show-monitor/index.js +31 -3
  42. package/cjs/transition/index.js +4 -2
  43. package/dist/index.js +677 -617
  44. package/dist/index.min.js +4 -4
  45. package/dist/style.css +174 -438
  46. package/dist/style.min.css +1 -1
  47. package/esm/_helpers/type.d.ts +1 -1
  48. package/esm/avatar/group.js +1 -1
  49. package/esm/avatar/index.js +10 -13
  50. package/esm/avatar/style/css/index.css +96 -126
  51. package/esm/avatar/style/index.less +54 -72
  52. package/esm/badge/index.js +6 -8
  53. package/esm/badge/style/css/index.css +5 -5
  54. package/esm/badge/style/index.less +5 -5
  55. package/esm/button/hooks.d.ts +1 -2
  56. package/esm/button/hooks.js +5 -3
  57. package/esm/button/index.d.ts +12 -0
  58. package/esm/button/index.js +42 -35
  59. package/esm/button/style/css/index.css +75 -310
  60. package/esm/button/style/index.less +32 -38
  61. package/esm/count-down/demo/style/mobile.less +1 -1
  62. package/esm/dropdown/dropdown.d.ts +3 -0
  63. package/esm/dropdown/dropdown.js +288 -0
  64. package/esm/dropdown/index.d.ts +3 -4
  65. package/esm/dropdown/index.js +3 -293
  66. package/esm/dropdown/options.js +2 -1
  67. package/esm/dropdown/type.d.ts +20 -9
  68. package/esm/dropdown-menu/dropdown-menu.d.ts +4 -0
  69. package/esm/dropdown-menu/dropdown-menu.js +256 -0
  70. package/esm/dropdown-menu/helper.d.ts +1 -1
  71. package/esm/dropdown-menu/index.d.ts +2 -3
  72. package/esm/dropdown-menu/index.js +2 -237
  73. package/esm/dropdown-menu/type.d.ts +21 -20
  74. package/esm/image/index.js +4 -1
  75. package/esm/image/style/css/index.css +2 -1
  76. package/esm/image/style/index.less +2 -1
  77. package/esm/image-picker/index.d.ts +11 -8
  78. package/esm/image-picker/index.js +19 -12
  79. package/esm/image-picker/style/index.less +1 -1
  80. package/esm/nav-bar/index.js +6 -2
  81. package/esm/notify/index.d.ts +1 -0
  82. package/esm/notify/index.js +1 -0
  83. package/esm/notify/type.d.ts +1 -0
  84. package/esm/show-monitor/index.js +31 -3
  85. package/esm/transition/index.js +4 -2
  86. package/package.json +3 -3
  87. package/tokens/app/arcodesign/default/css-variables.less +2 -1
  88. package/tokens/app/arcodesign/default/index.d.ts +2 -1
  89. package/tokens/app/arcodesign/default/index.js +2 -1
  90. package/tokens/app/arcodesign/default/index.json +123 -47
  91. package/tokens/app/arcodesign/default/index.less +2 -1
  92. package/umd/_helpers/type.d.ts +1 -1
  93. package/umd/avatar/group.js +1 -1
  94. package/umd/avatar/index.js +10 -13
  95. package/umd/avatar/style/css/index.css +96 -126
  96. package/umd/avatar/style/index.less +54 -72
  97. package/umd/badge/index.js +6 -8
  98. package/umd/badge/style/css/index.css +5 -5
  99. package/umd/badge/style/index.less +5 -5
  100. package/umd/button/hooks.d.ts +1 -2
  101. package/umd/button/hooks.js +5 -3
  102. package/umd/button/index.d.ts +12 -0
  103. package/umd/button/index.js +40 -33
  104. package/umd/button/style/css/index.css +75 -310
  105. package/umd/button/style/index.less +32 -38
  106. package/umd/count-down/demo/style/mobile.less +1 -1
  107. package/umd/dropdown/dropdown.d.ts +3 -0
  108. package/umd/dropdown/dropdown.js +309 -0
  109. package/umd/dropdown/index.d.ts +3 -4
  110. package/umd/dropdown/index.js +5 -298
  111. package/umd/dropdown/options.js +2 -1
  112. package/umd/dropdown/type.d.ts +20 -9
  113. package/umd/dropdown-menu/dropdown-menu.d.ts +4 -0
  114. package/umd/dropdown-menu/dropdown-menu.js +278 -0
  115. package/umd/dropdown-menu/helper.d.ts +1 -1
  116. package/umd/dropdown-menu/index.d.ts +2 -3
  117. package/umd/dropdown-menu/index.js +5 -241
  118. package/umd/dropdown-menu/type.d.ts +21 -20
  119. package/umd/image/index.js +4 -1
  120. package/umd/image/style/css/index.css +2 -1
  121. package/umd/image/style/index.less +2 -1
  122. package/umd/image-picker/index.d.ts +11 -8
  123. package/umd/image-picker/index.js +19 -12
  124. package/umd/image-picker/style/index.less +1 -1
  125. package/umd/nav-bar/index.js +9 -6
  126. package/umd/notify/index.d.ts +1 -0
  127. package/umd/notify/index.js +13 -4
  128. package/umd/notify/type.d.ts +1 -0
  129. package/umd/show-monitor/index.js +31 -3
  130. package/umd/transition/index.js +4 -2
package/dist/index.js CHANGED
@@ -1983,14 +1983,16 @@
1983
1983
  */
1984
1984
 
1985
1985
  function Transition(props) {
1986
- var children = props.children,
1986
+ var _a = props.children,
1987
+ children = _a === void 0 ? /*#__PURE__*/React__default["default"].createElement("div", null) : _a,
1987
1988
  type = props.type,
1988
1989
  transIn = props.in,
1989
- timeout = props.timeout,
1990
- _a = props.mountOnEnter,
1991
- mountOnEnter = _a === void 0 ? true : _a,
1992
- _b = props.unmountOnExit,
1993
- unmountOnExit = _b === void 0 ? true : _b,
1990
+ _b = props.timeout,
1991
+ timeout = _b === void 0 ? 300 : _b,
1992
+ _c = props.mountOnEnter,
1993
+ mountOnEnter = _c === void 0 ? true : _c,
1994
+ _d = props.unmountOnExit,
1995
+ unmountOnExit = _d === void 0 ? true : _d,
1994
1996
  restProps = __rest(props, ["children", "type", "in", "timeout", "mountOnEnter", "unmountOnExit"]);
1995
1997
 
1996
1998
  return /*#__PURE__*/React__default["default"].createElement(ContextLayout, null, function (_a) {
@@ -2947,7 +2949,7 @@
2947
2949
  var GroupContext = /*#__PURE__*/React__default["default"].createContext({
2948
2950
  isFromGroup: false
2949
2951
  });
2950
- function componentGenerator$8(Comp) {
2952
+ function componentGenerator$a(Comp) {
2951
2953
  return /*#__PURE__*/React.forwardRef(function (props, ref) {
2952
2954
  var _a = props.className,
2953
2955
  className = _a === void 0 ? '' : _a,
@@ -3070,7 +3072,7 @@
3070
3072
  });
3071
3073
  });
3072
3074
 
3073
- var Group$4 = componentGenerator$8(Cell);
3075
+ var Group$4 = componentGenerator$a(Cell);
3074
3076
  /**
3075
3077
  * 单元格组件,含单元格及单元格组合,常用于设置项、表单等。
3076
3078
  * @en Cell, including cells and cell group, are often used to set items, forms, etc.
@@ -3375,27 +3377,25 @@
3375
3377
  };
3376
3378
  });
3377
3379
 
3378
- function renderInnerBadge() {
3380
+ function renderInnerBadge(prefix) {
3379
3381
  return dot ? null : /*#__PURE__*/React__default["default"].createElement("span", {
3380
- className: "badge-text"
3382
+ className: prefix + "-text badge-text"
3381
3383
  }, Number(text) && Number(text) > maxCount ? maxCount + "+" : text);
3382
3384
  }
3383
3385
 
3384
3386
  return /*#__PURE__*/React__default["default"].createElement(ContextLayout, null, function (_a) {
3387
+ var _b;
3388
+
3385
3389
  var prefixCls = _a.prefixCls;
3386
3390
  return /*#__PURE__*/React__default["default"].createElement(Transition, {
3387
3391
  in: visible,
3388
3392
  timeout: timeout,
3389
3393
  type: "scale"
3390
3394
  }, /*#__PURE__*/React__default["default"].createElement("div", {
3391
- className: cls(prefixCls + "-badge", className, {
3392
- dot: dot,
3393
- bordered: bordered,
3394
- absolute: absolute
3395
- }),
3395
+ className: cls(prefixCls + "-badge", className, (_b = {}, _b[prefixCls + "-badge-dot dot"] = dot, _b[prefixCls + "-badge-bordered bordered"] = bordered, _b[prefixCls + "-badge-absolute absolute"] = absolute, _b)),
3396
3396
  style: style,
3397
3397
  ref: domRef
3398
- }, children || renderInnerBadge()));
3398
+ }, children || renderInnerBadge(prefixCls + "-badge")));
3399
3399
  });
3400
3400
  });
3401
3401
 
@@ -3432,6 +3432,7 @@
3432
3432
  var wrapRef = React.useRef(null);
3433
3433
  var retryCountRef = React.useRef(0);
3434
3434
  var loadingImageRef = React.useRef(null);
3435
+ var hasLoadedRef = React.useRef(false);
3435
3436
  var style = props.style,
3436
3437
  className = props.className,
3437
3438
  status = props.status,
@@ -3555,6 +3556,7 @@
3555
3556
  image.onload = function (evt) {
3556
3557
  loadingImageRef.current = null;
3557
3558
  imageDomRef.current = image;
3559
+ hasLoadedRef.current = true;
3558
3560
  changeStatus('loaded');
3559
3561
  var _a = image.width,
3560
3562
  imageWidth = _a === void 0 ? 0 : _a,
@@ -3669,7 +3671,8 @@
3669
3671
  })) : null, /*#__PURE__*/React__default["default"].createElement("div", {
3670
3672
  className: cls('image-container', validStatus, {
3671
3673
  animate: Boolean(animateDuration),
3672
- 'static-label': staticLabel
3674
+ 'static-label': staticLabel,
3675
+ 'has-loaded': hasLoadedRef.current
3673
3676
  }),
3674
3677
  style: getStyleWithVendor({
3675
3678
  transitionDuration: animateDuration + "ms"
@@ -3773,7 +3776,7 @@
3773
3776
  return /*#__PURE__*/React__default["default"].createElement("div", {
3774
3777
  ref: domRef,
3775
3778
  style: style,
3776
- className: cls(className, prefixCls + "-avatar-group", "group-" + size)
3779
+ className: cls(className, prefixCls + "-avatar-group", prefixCls + "-avatar-group-size-" + size, "group-" + size)
3777
3780
  }, /*#__PURE__*/React__default["default"].createElement(AvatarGroupContext.Provider, {
3778
3781
  value: {
3779
3782
  isGroup: true,
@@ -3793,50 +3796,47 @@
3793
3796
  })));
3794
3797
  });
3795
3798
 
3796
- function componentGenerator$7(Comp) {
3799
+ function componentGenerator$9(Comp) {
3797
3800
  return /*#__PURE__*/React.forwardRef(function (props, ref) {
3798
- var _a;
3801
+ var _a, _b;
3799
3802
 
3800
3803
  var prefixCls = React.useContext(GlobalContext).prefixCls;
3801
3804
 
3802
- var _b = React.useContext(AvatarGroupContext),
3803
- groupShape = _b.shape,
3804
- groupSize = _b.size,
3805
- isGroup = _b.isGroup;
3805
+ var _c = React.useContext(AvatarGroupContext),
3806
+ groupShape = _c.shape,
3807
+ groupSize = _c.size,
3808
+ isGroup = _c.isGroup;
3806
3809
 
3807
- var _c = props.shape,
3808
- shape = _c === void 0 ? props.shape || (isGroup ? groupShape : 'circle') : _c,
3809
- _d = props.size,
3810
- size = _d === void 0 ? props.size || (isGroup ? groupSize : 'small') : _d,
3810
+ var _d = props.shape,
3811
+ shape = _d === void 0 ? props.shape || (isGroup ? groupShape : 'circle') : _d,
3812
+ _e = props.size,
3813
+ size = _e === void 0 ? props.size || (isGroup ? groupSize : 'small') : _e,
3811
3814
  src = props.src,
3812
- _e = props.decoration,
3813
- decoration = _e === void 0 ? null : _e,
3814
- _f = props.textAvatar,
3815
- textAvatar = _f === void 0 ? '' : _f,
3816
- _g = props.avatarStyle,
3817
- avatarStyle = _g === void 0 ? {} : _g,
3818
- _h = props.autoFixFontSize,
3819
- autoFixFontSize = _h === void 0 ? true : _h,
3820
- _j = props.autoFixFontOffset,
3821
- autoFixFontOffset = _j === void 0 ? 2 : _j,
3822
- _k = props.avatarName,
3823
- avatarName = _k === void 0 ? '' : _k,
3824
- _l = props.avatarDesc,
3825
- avatarDesc = _l === void 0 ? '' : _l,
3826
- _m = props.children,
3827
- children = _m === void 0 ? null : _m,
3828
- _o = props.renderInfo,
3829
- renderInfo = _o === void 0 ? null : _o,
3830
- _p = props.className,
3831
- className = _p === void 0 ? '' : _p,
3832
- _q = props.style,
3833
- style = _q === void 0 ? {} : _q,
3834
- _r = props.imageProps,
3835
- imageProps = _r === void 0 ? {} : _r,
3836
- _s = props.defaultOverLap,
3837
- defaultOverLap = _s === void 0 ? /*#__PURE__*/React__default["default"].createElement(IconUserFill, {
3838
- className: prefixCls + "-avatar-default"
3839
- }) : _s,
3815
+ _f = props.decoration,
3816
+ decoration = _f === void 0 ? null : _f,
3817
+ _g = props.textAvatar,
3818
+ textAvatar = _g === void 0 ? '' : _g,
3819
+ _h = props.avatarStyle,
3820
+ avatarStyle = _h === void 0 ? {} : _h,
3821
+ _j = props.autoFixFontSize,
3822
+ autoFixFontSize = _j === void 0 ? true : _j,
3823
+ _k = props.autoFixFontOffset,
3824
+ autoFixFontOffset = _k === void 0 ? 2 : _k,
3825
+ _l = props.avatarName,
3826
+ avatarName = _l === void 0 ? '' : _l,
3827
+ _m = props.avatarDesc,
3828
+ avatarDesc = _m === void 0 ? '' : _m,
3829
+ _o = props.children,
3830
+ children = _o === void 0 ? null : _o,
3831
+ _p = props.renderInfo,
3832
+ renderInfo = _p === void 0 ? null : _p,
3833
+ _q = props.className,
3834
+ className = _q === void 0 ? '' : _q,
3835
+ _r = props.style,
3836
+ style = _r === void 0 ? {} : _r,
3837
+ _s = props.imageProps,
3838
+ imageProps = _s === void 0 ? {} : _s,
3839
+ defaultOverLap = props.defaultOverLap,
3840
3840
  onClickDecoration = props.onClickDecoration,
3841
3841
  onClick = props.onClick;
3842
3842
  var domRef = React.useRef(null);
@@ -3891,19 +3891,19 @@
3891
3891
  return /*#__PURE__*/React__default["default"].createElement("div", {
3892
3892
  ref: domRef,
3893
3893
  style: style,
3894
- className: cls(prefixCls + "-avatar-wrapper", className, size, shape, {
3895
- 'with-info': Boolean(avatarName)
3896
- }),
3894
+ className: cls(prefixCls + "-avatar-wrapper", className, size, shape, prefixCls + "-avatar-wrapper-shape-" + shape, (_a = {}, _a[prefixCls + "-avatar-wrapper-with-info " + prefixCls + "-avatar-wrapper-with-info-size-" + size + " with-info"] = Boolean(avatarName), _a)),
3897
3895
  onClick: onClick
3898
3896
  }, /*#__PURE__*/React__default["default"].createElement("div", {
3899
- className: cls(prefixCls + "-avatar", size, shape, (_a = {}, _a[prefixCls + "-text-avatar"] = isTextAvatar, _a[prefixCls + "-image-avatar"] = isImageAvatar, _a['default-overlap'] = useDefaultAvatar, _a)),
3897
+ className: cls(prefixCls + "-avatar", prefixCls + "-avatar-size-" + size, size, prefixCls + "-avatar-shape-" + shape, shape, (_b = {}, _b[prefixCls + "-text-avatar " + prefixCls + "-avatar-mode-text"] = isTextAvatar, _b[prefixCls + "-image-avatar " + prefixCls + "-avatar-mode-image"] = isImageAvatar, _b[prefixCls + "-avatar-default-overlap default-overlap"] = useDefaultAvatar, _b)),
3900
3898
  style: avatarStyle,
3901
3899
  ref: avatarRef
3902
- }, children, useDefaultAvatar && defaultOverLap, isImageAvatar && src && /*#__PURE__*/React__default["default"].createElement(Comp, __assign({}, {
3900
+ }, children, useDefaultAvatar && (defaultOverLap === void 0 ? /*#__PURE__*/React__default["default"].createElement(IconUserFill, {
3901
+ className: prefixCls + "-avatar-default " + prefixCls + "-avatar-default-icon-size-" + size
3902
+ }) : defaultOverLap), isImageAvatar && src && /*#__PURE__*/React__default["default"].createElement(Comp, __assign({}, {
3903
3903
  className: prefixCls + "-avatar-img",
3904
3904
  src: src
3905
3905
  }, imageProps)), isTextAvatar && /*#__PURE__*/React__default["default"].createElement("span", {
3906
- className: prefixCls + "-avatar-text",
3906
+ className: prefixCls + "-avatar-text " + prefixCls + "-avatar-text-size-" + size,
3907
3907
  ref: avatarTextRef,
3908
3908
  style: {
3909
3909
  transform: "scale(" + textScale + ")"
@@ -3914,13 +3914,13 @@
3914
3914
  }, decoration)), renderInfo, !renderInfo && avatarName && /*#__PURE__*/React__default["default"].createElement("div", {
3915
3915
  className: cls(prefixCls + "-avatar-info")
3916
3916
  }, /*#__PURE__*/React__default["default"].createElement("div", {
3917
- className: cls(prefixCls + "-avatar-name")
3917
+ className: prefixCls + "-avatar-name " + prefixCls + "-avatar-name-size-" + size
3918
3918
  }, avatarName), avatarDesc && /*#__PURE__*/React__default["default"].createElement("div", {
3919
- className: cls(prefixCls + "-avatar-desc")
3919
+ className: prefixCls + "-avatar-desc " + prefixCls + "-avatar-desc-size-" + size
3920
3920
  }, avatarDesc)));
3921
3921
  });
3922
3922
  }
3923
- var Avatar = componentGenerator$7(BaseImage);
3923
+ var Avatar = componentGenerator$9(BaseImage);
3924
3924
  /**
3925
3925
  * 头像展示组件,支持圆形和方形两种形状,支持图片文字头像,支持五种尺寸。
3926
3926
  * @en Avatar component supports two shapes of circle and square, supports pictures or text avatars, with five sizes.
@@ -3956,7 +3956,8 @@
3956
3956
  bgColor = _a.bgColor,
3957
3957
  borderColor = _a.borderColor,
3958
3958
  active = _a.isActive,
3959
- disabled = _a.disabled;
3959
+ disabled = _a.disabled,
3960
+ halfBorder = _a.halfBorder;
3960
3961
  var state = {
3961
3962
  active: active,
3962
3963
  disabled: disabled
@@ -3993,8 +3994,9 @@
3993
3994
  return res;
3994
3995
  }, [styleConfig, active, disabled]);
3995
3996
  var customColorClass = React.useMemo(function () {
3996
- return styleConfig.borderColor ? ['has-custom-border'] : [];
3997
- }, [diffColor(borderColor)]);
3997
+ var borderCls = halfBorder ? 'half-border' : '';
3998
+ return styleConfig.borderColor ? ['has-custom-border'] : [borderCls];
3999
+ }, [styleConfig.borderColor, halfBorder]);
3998
4000
  return {
3999
4001
  customColorStyle: customColorStyle,
4000
4002
  customColorClass: customColorClass
@@ -4011,58 +4013,67 @@
4011
4013
  */
4012
4014
 
4013
4015
  var Button = /*#__PURE__*/React.forwardRef(function (props, ref) {
4014
- var _a = React.useState(false),
4015
- isActive = _a[0],
4016
- setActive = _a[1];
4016
+ var _a, _b;
4017
+
4018
+ var _c = React.useState(false),
4019
+ isActive = _c[0],
4020
+ setActive = _c[1];
4017
4021
 
4018
4022
  var system = useSystem();
4019
- var _b = props.type,
4020
- type = _b === void 0 ? 'primary' : _b,
4021
- _c = props.size,
4022
- size = _c === void 0 ? 'large' : _c,
4023
- _d = props.inline,
4024
- inline = _d === void 0 ? false : _d,
4025
- _e = props.loading,
4026
- loading = _e === void 0 ? false : _e,
4027
- _f = props.disabled,
4028
- disabled = _f === void 0 ? false : _f,
4029
- _g = props.shape,
4030
- shape = _g === void 0 ? 'semi' : _g,
4031
- _h = props.halfBorder,
4032
- halfBorder = _h === void 0 ? false : _h,
4023
+ var _d = props.type,
4024
+ type = _d === void 0 ? 'primary' : _d,
4025
+ _e = props.size,
4026
+ size = _e === void 0 ? 'large' : _e,
4027
+ _f = props.inline,
4028
+ inline = _f === void 0 ? false : _f,
4029
+ _g = props.loading,
4030
+ loading = _g === void 0 ? false : _g,
4031
+ _h = props.disabled,
4032
+ disabled = _h === void 0 ? false : _h,
4033
+ _j = props.disableWhenLoading,
4034
+ disableWhenLoading = _j === void 0 ? true : _j,
4035
+ _k = props.shape,
4036
+ shape = _k === void 0 ? 'semi' : _k,
4037
+ _l = props.halfBorder,
4038
+ halfBorder = _l === void 0 ? false : _l,
4033
4039
  icon = props.icon,
4034
- _j = props.showTextWhenLoading,
4035
- showTextWhenLoading = _j === void 0 ? true : _j,
4036
- _k = props.needActive,
4037
- needActive = _k === void 0 ? true : _k,
4038
- _l = props.style,
4039
- style = _l === void 0 ? {} : _l,
4040
+ _m = props.showTextWhenLoading,
4041
+ showTextWhenLoading = _m === void 0 ? true : _m,
4042
+ _o = props.needActive,
4043
+ needActive = _o === void 0 ? true : _o,
4044
+ _p = props.style,
4045
+ style = _p === void 0 ? {} : _p,
4040
4046
  color = props.color,
4041
4047
  bgColor = props.bgColor,
4042
4048
  borderColor = props.borderColor,
4043
- _m = props.className,
4044
- className = _m === void 0 ? '' : _m,
4045
- _o = props.children,
4046
- children = _o === void 0 ? null : _o,
4049
+ _q = props.className,
4050
+ className = _q === void 0 ? '' : _q,
4051
+ _r = props.children,
4052
+ children = _r === void 0 ? null : _r,
4047
4053
  loadingIcon = props.loadingIcon,
4048
4054
  onClick = props.onClick,
4049
- onClickDisabled = props.onClickDisabled;
4055
+ onClickDisabled = props.onClickDisabled,
4056
+ _s = props.coverIconWhenLoading,
4057
+ coverIconWhenLoading = _s === void 0 ? true : _s;
4050
4058
  var domRef = React.useRef(null);
4059
+ var prefixCls = React.useContext(GlobalContext).prefixCls;
4060
+ var prefix = prefixCls + "-button";
4051
4061
  React.useImperativeHandle(ref, function () {
4052
4062
  return {
4053
4063
  dom: domRef.current
4054
4064
  };
4055
4065
  });
4056
4066
 
4057
- var _p = useCustomColor({
4067
+ var _t = useCustomColor({
4058
4068
  color: color,
4059
4069
  bgColor: bgColor,
4060
4070
  borderColor: borderColor,
4061
4071
  isActive: isActive,
4062
- disabled: disabled
4072
+ disabled: disabled,
4073
+ halfBorder: halfBorder
4063
4074
  }),
4064
- customColorClass = _p.customColorClass,
4065
- customColorStyle = _p.customColorStyle;
4075
+ customColorClass = _t.customColorClass,
4076
+ customColorStyle = _t.customColorStyle;
4066
4077
 
4067
4078
  var handleTouchStart = function handleTouchStart() {
4068
4079
  if (needActive && !disabled && !loading) {
@@ -4074,37 +4085,32 @@
4074
4085
  setActive(false);
4075
4086
  };
4076
4087
 
4077
- return /*#__PURE__*/React__default["default"].createElement(ContextLayout, null, function (_a) {
4078
- var prefixCls = _a.prefixCls;
4079
- return /*#__PURE__*/React__default["default"].createElement("button", {
4080
- type: "button",
4081
- ref: domRef,
4082
- style: __assign(__assign({}, customColorStyle), style),
4083
- className: cls.apply(void 0, __spreadArrays([prefixCls + "-button", className, "type-" + type, "size-" + size, "is-" + shape, system, {
4084
- inline: inline,
4085
- disabled: disabled,
4086
- loading: loading,
4087
- active: isActive,
4088
- 'half-border': halfBorder
4089
- }], customColorClass)),
4090
- onTouchStart: handleTouchStart,
4091
- onTouchEnd: handleTouchEnd,
4092
- onTouchCancel: handleTouchEnd,
4093
- onMouseDown: handleTouchStart,
4094
- onMouseUp: handleTouchEnd,
4095
- onClick: disabled ? onClickDisabled : onClick
4096
- }, /*#__PURE__*/React__default["default"].createElement("div", {
4097
- className: "btn-icon"
4098
- }, icon, loading && (loadingIcon === void 0 ? /*#__PURE__*/React__default["default"].createElement(Loading, {
4099
- className: "loading-icon",
4100
- radius: 6,
4101
- type: "circle"
4102
- }) : loadingIcon)), (!loading || loading && showTextWhenLoading) && children ? /*#__PURE__*/React__default["default"].createElement("div", {
4103
- className: cls('btn-text', {
4104
- 'has-icon': loading || icon
4105
- })
4106
- }, children) : null);
4107
- });
4088
+ var renderIcon = function renderIcon() {
4089
+ if (coverIconWhenLoading) {
4090
+ return loading ? null : icon;
4091
+ }
4092
+
4093
+ return icon;
4094
+ };
4095
+
4096
+ return /*#__PURE__*/React__default["default"].createElement("button", {
4097
+ type: "button",
4098
+ ref: domRef,
4099
+ style: __assign(__assign({}, customColorStyle), style),
4100
+ className: cls.apply(void 0, __spreadArrays([prefix, prefix + "-type-" + type + " type-" + type, prefix + "-size-" + size + " " + prefix + "-size-" + size + "-is-" + shape + " size-" + size, className, "is-" + shape, system, (_a = {}, _a[prefix + "-inline inline"] = inline, _a[prefix + "-type-" + type + "-disabled disabled"] = disabled, _a.loading = loading, _a[prefix + "-type-" + type + "-active active"] = isActive, _a)], customColorClass)),
4101
+ onTouchStart: handleTouchStart,
4102
+ onTouchEnd: handleTouchEnd,
4103
+ onTouchCancel: handleTouchEnd,
4104
+ onClick: disabled || loading && disableWhenLoading ? onClickDisabled : onClick
4105
+ }, icon || loading ? /*#__PURE__*/React__default["default"].createElement("div", {
4106
+ className: prefix + "-icon btn-icon"
4107
+ }, renderIcon(), loading && (loadingIcon === void 0 ? /*#__PURE__*/React__default["default"].createElement(Loading, {
4108
+ className: prefix + "-loading-icon loading-icon",
4109
+ radius: 6,
4110
+ type: "circle"
4111
+ }) : loadingIcon)) : null, (!loading || loading && showTextWhenLoading) && children ? /*#__PURE__*/React__default["default"].createElement("div", {
4112
+ className: cls(prefix + "-text", prefix + "-text-" + system, 'btn-text', (_b = {}, _b[prefix + "-text-has-icon has-icon"] = loading || icon, _b))
4113
+ }, children) : null);
4108
4114
  });
4109
4115
 
4110
4116
  /**
@@ -5562,7 +5568,7 @@
5562
5568
  value: [],
5563
5569
  onChange: function onChange() {}
5564
5570
  });
5565
- function componentGenerator$6(Comp) {
5571
+ function componentGenerator$8(Comp) {
5566
5572
  return /*#__PURE__*/React.forwardRef(function (props, ref) {
5567
5573
  var _a = props.style,
5568
5574
  style = _a === void 0 ? {} : _a,
@@ -5990,7 +5996,7 @@
5990
5996
  * @en Checkbox group
5991
5997
  * */
5992
5998
 
5993
- var Group$2 = componentGenerator$6(Checkbox$1);
5999
+ var Group$2 = componentGenerator$8(Checkbox$1);
5994
6000
  /**
5995
6001
  * 复选框,可用状态下点击切换选择,支持禁用,支持复选项组。
5996
6002
  * @en Checkbox, click to switch selection when available, support disabled status, support checkbox group.
@@ -6386,7 +6392,7 @@
6386
6392
  });
6387
6393
  });
6388
6394
 
6389
- function componentGenerator$5(Comp) {
6395
+ function componentGenerator$7(Comp) {
6390
6396
  return /*#__PURE__*/React.forwardRef(function (props, ref) {
6391
6397
  var _a = props.items,
6392
6398
  items = _a === void 0 ? [] : _a,
@@ -6504,7 +6510,7 @@
6504
6510
  })))));
6505
6511
  });
6506
6512
  }
6507
- var Group$1 = componentGenerator$5(Collapse);
6513
+ var Group$1 = componentGenerator$7(Collapse);
6508
6514
 
6509
6515
  /**
6510
6516
  * 折叠面板组件,支持手风琴模式。
@@ -10170,6 +10176,7 @@
10170
10176
  var Options = /*#__PURE__*/React.forwardRef(function (props, ref) {
10171
10177
  var options = props.options,
10172
10178
  useColumn = props.useColumn,
10179
+ icon = props.icon,
10173
10180
  selectedValue = props.selectedValue,
10174
10181
  defaultSelectedValue = props.defaultSelectedValue,
10175
10182
  multiple = props.multiple;
@@ -10250,7 +10257,7 @@
10250
10257
  return handleOptionChange(e, op);
10251
10258
  },
10252
10259
  style: minWidthStyle
10253
- }, op.label, /*#__PURE__*/React__default["default"].createElement(IconCheck, {
10260
+ }, op.label, icon !== void 0 ? icon : /*#__PURE__*/React__default["default"].createElement(IconCheck, {
10254
10261
  className: prefixCls + "-dropdown-options-item-icon"
10255
10262
  }));
10256
10263
  }), fakeOpts.map(function (_, i) {
@@ -10262,300 +10269,295 @@
10262
10269
  }));
10263
10270
  });
10264
10271
 
10265
- var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
10266
- var optionsWrapper = React.useRef(null);
10267
- var domRef = React.useRef(null);
10268
- var _a = props.className,
10269
- className = _a === void 0 ? '' : _a,
10270
- _b = props.style,
10271
- style = _b === void 0 ? {} : _b,
10272
- _c = props.options,
10273
- options = _c === void 0 ? [] : _c,
10274
- _d = props.showDropdown,
10275
- showDropdown = _d === void 0 ? false : _d,
10276
- _e = props.showMask,
10277
- showMask = _e === void 0 ? true : _e,
10278
- _f = props.direction,
10279
- direction = _f === void 0 ? 'down' : _f,
10280
- height = props.height,
10281
- _g = props.maxHeight,
10282
- maxHeight = _g === void 0 ? 500 : _g,
10283
- _h = props.touchToClose,
10284
- touchToClose = _h === void 0 ? true : _h,
10285
- useColumn = props.useColumn,
10286
- multiple = props.multiple,
10287
- defaultSelectedValue = props.defaultSelectedValue,
10288
- onCancel = props.onCancel,
10289
- getAnchorElement = props.getAnchorElement,
10290
- isStopTouchEl = props.isStopTouchEl,
10291
- getStopTouchElements = props.getStopTouchElements,
10292
- _j = props.getScrollContainer,
10293
- getScrollContainer = _j === void 0 ? function () {
10294
- return optionsWrapper.current;
10295
- } : _j,
10296
- getPortalContainer = props.getPortalContainer,
10297
- _k = props.clickOtherToClose,
10298
- clickOtherToClose = _k === void 0 ? true : _k,
10299
- _l = props.dropdownAnimationTimeout,
10300
- dropdownAnimationTimeout = _l === void 0 ? 300 : _l,
10301
- _m = props.dropdownAnimationFunction,
10302
- dropdownAnimationFunction = _m === void 0 ? 'cubic-bezier(0.32, 0.96, 0.6, 1)' : _m,
10303
- // 坑:ios touchstart会停留300ms 导致点击关闭蒙层后出现点击穿透 触发底部可点区域事件 这里设置更长的timeout规避
10304
- // @en In iOS, touchstart will stay for 300ms, resulting in click penetration after clicking to close the mask, triggering the bottom clickable area event, and setting a longer timeout to avoid it
10305
- _o = props.maskAnimationTimeout,
10306
- // 坑:ios touchstart会停留300ms 导致点击关闭蒙层后出现点击穿透 触发底部可点区域事件 这里设置更长的timeout规避
10307
- // @en In iOS, touchstart will stay for 300ms, resulting in click penetration after clicking to close the mask, triggering the bottom clickable area event, and setting a longer timeout to avoid it
10308
- maskAnimationTimeout = _o === void 0 ? 500 : _o,
10309
- _p = props.maskAnimationFunction,
10310
- maskAnimationFunction = _p === void 0 ? 'cubic-bezier(0.32, 0.96, 0.6, 1)' : _p,
10311
- _q = props.mountOnEnter,
10312
- mountOnEnter = _q === void 0 ? true : _q,
10313
- _r = props.unmountOnExit,
10314
- unmountOnExit = _r === void 0 ? true : _r,
10315
- _s = props.preventBodyScroll,
10316
- preventBodyScroll = _s === void 0 ? true : _s,
10317
- initialBodyOverflow = props.initialBodyOverflow;
10318
- var system = useSystem();
10319
-
10320
- var _t = useWindowSize(),
10321
- windowHeight = _t.windowHeight,
10322
- windowWidth = _t.windowWidth;
10272
+ function componentGenerator$6(Comp) {
10273
+ return /*#__PURE__*/React.forwardRef(function (props, ref) {
10274
+ var optionsWrapper = React.useRef(null);
10275
+ var domRef = React.useRef(null);
10276
+ var _a = props.className,
10277
+ className = _a === void 0 ? '' : _a,
10278
+ _b = props.style,
10279
+ style = _b === void 0 ? {} : _b,
10280
+ _c = props.options,
10281
+ options = _c === void 0 ? [] : _c,
10282
+ _d = props.showDropdown,
10283
+ showDropdown = _d === void 0 ? false : _d,
10284
+ _e = props.showMask,
10285
+ showMask = _e === void 0 ? true : _e,
10286
+ _f = props.direction,
10287
+ direction = _f === void 0 ? 'down' : _f,
10288
+ height = props.height,
10289
+ _g = props.maxHeight,
10290
+ maxHeight = _g === void 0 ? 500 : _g,
10291
+ _h = props.touchToClose,
10292
+ touchToClose = _h === void 0 ? true : _h,
10293
+ useColumn = props.useColumn,
10294
+ optionIcon = props.optionIcon,
10295
+ multiple = props.multiple,
10296
+ defaultSelectedValue = props.defaultSelectedValue,
10297
+ onCancel = props.onCancel,
10298
+ getAnchorElement = props.getAnchorElement,
10299
+ isStopTouchEl = props.isStopTouchEl,
10300
+ getStopTouchElements = props.getStopTouchElements,
10301
+ _j = props.getScrollContainer,
10302
+ getScrollContainer = _j === void 0 ? function () {
10303
+ return optionsWrapper.current;
10304
+ } : _j,
10305
+ getPortalContainer = props.getPortalContainer,
10306
+ _k = props.clickOtherToClose,
10307
+ clickOtherToClose = _k === void 0 ? true : _k,
10308
+ _l = props.dropdownAnimationTimeout,
10309
+ dropdownAnimationTimeout = _l === void 0 ? 300 : _l,
10310
+ _m = props.dropdownAnimationFunction,
10311
+ dropdownAnimationFunction = _m === void 0 ? 'cubic-bezier(0.32, 0.96, 0.6, 1)' : _m,
10312
+ // 坑:ios touchstart会停留300ms 导致点击关闭蒙层后出现点击穿透 触发底部可点区域事件 这里设置更长的timeout规避
10313
+ // @en In iOS, touchstart will stay for 300ms, resulting in click penetration after clicking to close the mask, triggering the bottom clickable area event, and setting a longer timeout to avoid it
10314
+ _o = props.maskAnimationTimeout,
10315
+ // 坑:ios touchstart会停留300ms 导致点击关闭蒙层后出现点击穿透 触发底部可点区域事件 这里设置更长的timeout规避
10316
+ // @en In iOS, touchstart will stay for 300ms, resulting in click penetration after clicking to close the mask, triggering the bottom clickable area event, and setting a longer timeout to avoid it
10317
+ maskAnimationTimeout = _o === void 0 ? 500 : _o,
10318
+ _p = props.maskAnimationFunction,
10319
+ maskAnimationFunction = _p === void 0 ? 'cubic-bezier(0.32, 0.96, 0.6, 1)' : _p,
10320
+ _q = props.mountOnEnter,
10321
+ mountOnEnter = _q === void 0 ? true : _q,
10322
+ _r = props.unmountOnExit,
10323
+ unmountOnExit = _r === void 0 ? true : _r,
10324
+ _s = props.preventBodyScroll,
10325
+ preventBodyScroll = _s === void 0 ? true : _s,
10326
+ initialBodyOverflow = props.initialBodyOverflow;
10327
+ var system = useSystem();
10328
+
10329
+ var _t = useWindowSize(),
10330
+ windowHeight = _t.windowHeight,
10331
+ windowWidth = _t.windowWidth;
10332
+
10333
+ var _u = React.useState({
10334
+ top: '',
10335
+ bottom: ''
10336
+ }),
10337
+ positionStyle = _u[0],
10338
+ setPositionStyle = _u[1];
10323
10339
 
10324
- var _u = React.useState({
10325
- top: '',
10326
- bottom: ''
10327
- }),
10328
- positionStyle = _u[0],
10329
- setPositionStyle = _u[1];
10340
+ var _v = React.useState(function () {
10341
+ var defaultValue = multiple ? [] : 0;
10342
+ return defaultSelectedValue !== void 0 ? defaultSelectedValue : defaultValue;
10343
+ }),
10344
+ innerValue = _v[0],
10345
+ setInnerValue = _v[1]; // down=0为向上展开,1为向下展开
10346
+ // @en down=0 is to expand upwards, 1 is to expand downwards
10330
10347
 
10331
- var _v = React.useState(function () {
10332
- var defaultValue = multiple ? [] : 0;
10333
- return defaultSelectedValue !== void 0 ? defaultSelectedValue : defaultValue;
10334
- }),
10335
- innerValue = _v[0],
10336
- setInnerValue = _v[1]; // down=0为向上展开,1为向下展开
10337
- // @en down=0 is to expand upwards, 1 is to expand downwards
10338
10348
 
10349
+ var _w = React.useState(direction === 'down'),
10350
+ down = _w[0],
10351
+ setDown = _w[1];
10339
10352
 
10340
- var _w = React.useState(direction === 'down'),
10341
- down = _w[0],
10342
- setDown = _w[1];
10353
+ var maskHeight = React.useRef(0);
10354
+ var optionsContainer = React.useRef(null);
10355
+ var dropdownContainer = React.useRef(null);
10343
10356
 
10344
- var maskHeight = React.useRef(0);
10345
- var optionsContainer = React.useRef(null);
10346
- var dropdownContainer = React.useRef(null);
10357
+ var _x = React.useState(0),
10358
+ optionsWrapperHeight = _x[0],
10359
+ setOptionsWrapperHeight = _x[1];
10360
+ /**
10361
+ * 判断是否阻止touch事件
10362
+ * @en Determine whether to block touch events
10363
+ * */
10347
10364
 
10348
- var _x = React.useState(0),
10349
- optionsWrapperHeight = _x[0],
10350
- setOptionsWrapperHeight = _x[1];
10351
- /**
10352
- * 判断是否阻止touch事件
10353
- * @en Determine whether to block touch events
10354
- * */
10355
10365
 
10366
+ var ifStopTouch = function ifStopTouch(el) {
10367
+ var _a;
10356
10368
 
10357
- var ifStopTouch = function ifStopTouch(el) {
10358
- var _a;
10369
+ if (isStopTouchEl) return isStopTouchEl(el);
10370
+ var tempEl = el;
10371
+ var elements = getStopTouchElements ? getStopTouchElements() : [(_a = dropdownContainer.current) === null || _a === void 0 ? void 0 : _a.parentElement];
10359
10372
 
10360
- if (isStopTouchEl) return isStopTouchEl(el);
10361
- var tempEl = el;
10362
- var elements = getStopTouchElements ? getStopTouchElements() : [(_a = dropdownContainer.current) === null || _a === void 0 ? void 0 : _a.parentElement];
10373
+ for (var i = 0; i < elements.length; i++) {
10374
+ while (tempEl && elements[i]) {
10375
+ if (tempEl === elements[i]) {
10376
+ return true;
10377
+ }
10363
10378
 
10364
- for (var i = 0; i < elements.length; i++) {
10365
- while (tempEl && elements[i]) {
10366
- if (tempEl === elements[i]) {
10367
- return true;
10379
+ tempEl = tempEl.parentElement;
10368
10380
  }
10369
-
10370
- tempEl = tempEl.parentElement;
10371
10381
  }
10372
- }
10373
10382
 
10374
- return false;
10375
- };
10376
-
10377
- usePopupScroll(showDropdown, domRef.current, getScrollContainer);
10378
- usePreventBodyScroll(showDropdown, preventBodyScroll, initialBodyOverflow);
10379
- React.useEffect(function () {
10380
- var _a; // 为0的时候不改变
10381
- // @en Does not change when it is 0
10383
+ return false;
10384
+ };
10382
10385
 
10386
+ usePopupScroll(showDropdown, domRef.current, getScrollContainer);
10387
+ usePreventBodyScroll(showDropdown, preventBodyScroll, initialBodyOverflow);
10388
+ React.useEffect(function () {
10389
+ var _a; // 为0的时候不改变
10390
+ // @en Does not change when it is 0
10383
10391
 
10384
- if (optionsWrapperHeight === 0) return;
10385
- var tempEl = getAnchorElement ? getAnchorElement() : (_a = dropdownContainer.current) === null || _a === void 0 ? void 0 : _a.parentElement;
10386
10392
 
10387
- var _b = (tempEl === null || tempEl === void 0 ? void 0 : tempEl.getBoundingClientRect()) || {
10388
- bottom: 0,
10389
- top: 0
10390
- },
10391
- bottom = _b.bottom,
10392
- top = _b.top;
10393
+ if (optionsWrapperHeight === 0) return;
10394
+ var tempEl = getAnchorElement ? getAnchorElement() : (_a = dropdownContainer.current) === null || _a === void 0 ? void 0 : _a.parentElement;
10393
10395
 
10394
- var tempTop = props.top || bottom;
10395
- var tempBottom = props.bottom || windowHeight - top;
10396
- var tempMaskHeight = windowHeight - tempTop; // 没有指定方向,且空间足够时,或向上展开的空间不够,向下展开
10397
- // @en If there is no specified direction and there is enough space, or there is not enough space to expand upward, expand downward
10396
+ var _b = (tempEl === null || tempEl === void 0 ? void 0 : tempEl.getBoundingClientRect()) || {
10397
+ bottom: 0,
10398
+ top: 0
10399
+ },
10400
+ bottom = _b.bottom,
10401
+ top = _b.top;
10398
10402
 
10399
- var tempDown = direction !== 'up' && optionsWrapperHeight < tempMaskHeight || optionsWrapperHeight > tempTop;
10403
+ var tempTop = props.top || bottom;
10404
+ var tempBottom = props.bottom || windowHeight - top;
10405
+ var tempMaskHeight = windowHeight - tempTop; // 没有指定方向,且空间足够时,或向上展开的空间不够,向下展开
10406
+ // @en If there is no specified direction and there is enough space, or there is not enough space to expand upward, expand downward
10400
10407
 
10401
- if (tempDown) {
10402
- maskHeight.current = tempMaskHeight;
10403
- setPositionStyle({
10404
- top: tempTop + "px",
10405
- bottom: ''
10406
- });
10407
- } else {
10408
- maskHeight.current = windowHeight - tempBottom;
10409
- setPositionStyle({
10410
- top: '',
10411
- bottom: tempBottom + "px"
10412
- });
10413
- }
10408
+ var tempDown = direction !== 'up' && optionsWrapperHeight < tempMaskHeight || optionsWrapperHeight > tempTop;
10414
10409
 
10415
- setDown(tempDown);
10416
- }, [dropdownContainer, optionsWrapperHeight, props.top, props.bottom, Boolean(getAnchorElement), direction, windowHeight]);
10417
- /**
10418
- * 取消选择
10419
- * @en Cancel selection
10420
- * */
10410
+ if (tempDown) {
10411
+ maskHeight.current = tempMaskHeight;
10412
+ setPositionStyle({
10413
+ top: tempTop + "px",
10414
+ bottom: ''
10415
+ });
10416
+ } else {
10417
+ maskHeight.current = windowHeight - tempBottom;
10418
+ setPositionStyle({
10419
+ top: '',
10420
+ bottom: tempBottom + "px"
10421
+ });
10422
+ }
10421
10423
 
10422
- var handleCancel = React.useCallback(function (e) {
10423
- var optionsWrapperDom = optionsWrapper.current;
10424
+ setDown(tempDown);
10425
+ }, [dropdownContainer, optionsWrapperHeight, props.top, props.bottom, Boolean(getAnchorElement), direction, windowHeight]);
10426
+ /**
10427
+ * 取消选择
10428
+ * @en Cancel selection
10429
+ * */
10424
10430
 
10425
- if (!e || !optionsWrapperDom) {
10426
- return;
10427
- }
10431
+ var handleCancel = React.useCallback(function (e) {
10432
+ var optionsWrapperDom = optionsWrapper.current;
10428
10433
 
10429
- var target = e.target;
10434
+ if (!e || !optionsWrapperDom) {
10435
+ return;
10436
+ }
10430
10437
 
10431
- if (!optionsWrapperDom.contains(target) && !ifStopTouch(target)) {
10432
- onCancel();
10433
- }
10438
+ var target = e.target;
10434
10439
 
10435
- e.stopPropagation();
10436
- }, [ifStopTouch, onCancel]);
10437
- /**
10438
- * 当面板放下时,给body添加事件监听,面板收起时,移除
10439
- * @en When the panel is down, add an event listener to the body, and when the panel is retracted, remove it
10440
- * */
10440
+ if (!optionsWrapperDom.contains(target) && !ifStopTouch(target)) {
10441
+ onCancel();
10442
+ }
10441
10443
 
10442
- React.useEffect(function () {
10443
- var needBind = showDropdown && clickOtherToClose;
10444
- var event = touchToClose ? 'touchstart' : 'click';
10444
+ e.stopPropagation();
10445
+ }, [ifStopTouch, onCancel]);
10446
+ /**
10447
+ * 当面板放下时,给body添加事件监听,面板收起时,移除
10448
+ * @en When the panel is down, add an event listener to the body, and when the panel is retracted, remove it
10449
+ * */
10445
10450
 
10446
- if (needBind) {
10447
- document.addEventListener(event, handleCancel);
10448
- }
10451
+ React.useEffect(function () {
10452
+ var needBind = showDropdown && clickOtherToClose;
10453
+ var event = touchToClose ? 'touchstart' : 'click';
10449
10454
 
10450
- return function () {
10451
10455
  if (needBind) {
10452
- document.removeEventListener(event, handleCancel);
10456
+ document.addEventListener(event, handleCancel);
10453
10457
  }
10454
- };
10455
- }, [showDropdown, clickOtherToClose, handleCancel]);
10456
- React.useEffect(function () {
10457
- nextTick(function () {
10458
- if (height !== void 0) {
10459
- // 受控模式下,完全交由外层控制
10460
- // @en In controlled mode, it is completely controlled by the outer layer
10461
- setOptionsWrapperHeight(height);
10462
- } else {
10463
- if (!optionsContainer.current) return;
10464
- if (!showDropdown) setOptionsWrapperHeight(0);else {
10465
- setOptionsWrapperHeight(optionsContainer.current.getBoundingClientRect().height);
10466
- }
10467
- }
10468
- });
10469
- }, [showDropdown, options.length, height]);
10470
- React.useImperativeHandle(ref, function () {
10471
- return {
10472
- dom: domRef.current
10473
- };
10474
- });
10475
10458
 
10476
- function getOptionsStyle() {
10477
- var trans = down ? 'translateY(-100%)' : 'translateY(100%)';
10478
- return getStyleWithVendor({
10479
- // height: `${optionsWrapperHeight}px`,
10480
- transform: optionsWrapperHeight ? '' : trans,
10481
- transition: "transform " + dropdownAnimationTimeout + "ms " + dropdownAnimationFunction,
10482
- overflow: optionsWrapperHeight > maxHeight || height ? 'auto' : 'hidden',
10483
- maxHeight: maxHeight + "px"
10459
+ return function () {
10460
+ if (needBind) {
10461
+ document.removeEventListener(event, handleCancel);
10462
+ }
10463
+ };
10464
+ }, [showDropdown, clickOtherToClose, handleCancel]);
10465
+ React.useEffect(function () {
10466
+ nextTick(function () {
10467
+ if (height !== void 0) {
10468
+ // 受控模式下,完全交由外层控制
10469
+ // @en In controlled mode, it is completely controlled by the outer layer
10470
+ setOptionsWrapperHeight(height);
10471
+ } else {
10472
+ if (!optionsContainer.current) return;
10473
+ if (!showDropdown) setOptionsWrapperHeight(0);else {
10474
+ setOptionsWrapperHeight(optionsContainer.current.getBoundingClientRect().height);
10475
+ }
10476
+ }
10477
+ });
10478
+ }, [showDropdown, options.length, height]);
10479
+ React.useImperativeHandle(ref, function () {
10480
+ return {
10481
+ dom: domRef.current
10482
+ };
10484
10483
  });
10485
- }
10486
10484
 
10487
- function renderInnerOptions() {
10488
- var optionProps = {
10489
- options: options,
10490
- useColumn: useColumn
10491
- };
10492
- var value = props.selectedValue !== void 0 ? props.selectedValue : innerValue;
10493
- return props.multiple === true ? /*#__PURE__*/React__default["default"].createElement(Options, __assign({}, optionProps, {
10494
- multiple: true,
10495
- selectedValue: value,
10496
- onOptionClick: props.onOptionClick,
10497
- onOptionChange: function onOptionChange(vals, op) {
10498
- var _a;
10485
+ function getOptionsStyle() {
10486
+ var trans = down ? 'translateY(-100%)' : 'translateY(100%)';
10487
+ return getStyleWithVendor({
10488
+ // height: `${optionsWrapperHeight}px`,
10489
+ transform: optionsWrapperHeight ? '' : trans,
10490
+ transition: "transform " + dropdownAnimationTimeout + "ms " + dropdownAnimationFunction,
10491
+ overflow: optionsWrapperHeight > maxHeight || height ? 'auto' : 'hidden',
10492
+ maxHeight: maxHeight + "px"
10493
+ });
10494
+ }
10499
10495
 
10500
- setInnerValue(vals);
10501
- (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, vals, op);
10502
- }
10503
- })) : /*#__PURE__*/React__default["default"].createElement(Options, __assign({}, optionProps, {
10504
- multiple: props.multiple,
10505
- selectedValue: value,
10506
- onOptionClick: props.onOptionClick,
10507
- onOptionChange: function onOptionChange(vals, op) {
10508
- var _a;
10496
+ function renderInnerOptions() {
10497
+ var value = props.selectedValue !== void 0 ? props.selectedValue : innerValue;
10498
+ var optionProps = {
10499
+ options: options,
10500
+ useColumn: useColumn,
10501
+ icon: optionIcon,
10502
+ selectedValue: value,
10503
+ multiple: props.multiple,
10504
+ onOptionClick: props.onOptionClick,
10505
+ onOptionChange: function onOptionChange(vals, op) {
10506
+ var _a;
10509
10507
 
10510
- setInnerValue(vals);
10511
- (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, vals, op);
10512
- }
10513
- }));
10514
- }
10508
+ setInnerValue(vals);
10509
+ (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, vals, op);
10510
+ }
10511
+ };
10512
+ return /*#__PURE__*/React__default["default"].createElement(Comp, __assign({}, optionProps));
10513
+ }
10515
10514
 
10516
- return /*#__PURE__*/React__default["default"].createElement(ContextLayout, null, function (_a) {
10517
- var prefixCls = _a.prefixCls;
10518
- return /*#__PURE__*/React__default["default"].createElement("div", {
10519
- ref: dropdownContainer
10520
- }, /*#__PURE__*/React__default["default"].createElement(Portal, {
10521
- getContainer: getPortalContainer
10522
- }, /*#__PURE__*/React__default["default"].createElement(reactTransitionGroup.CSSTransition, {
10523
- in: showDropdown,
10524
- timeout: Math.max(dropdownAnimationTimeout, maskAnimationTimeout),
10525
- onEnter: function onEnter(el) {
10526
- el.style.visibility = 'visible';
10527
- },
10528
- onExited: function onExited(el) {
10529
- el.style.visibility = 'hidden';
10530
- },
10531
- mountOnEnter: mountOnEnter,
10532
- unmountOnExit: unmountOnExit
10533
- }, /*#__PURE__*/React__default["default"].createElement("div", {
10534
- className: cls(prefixCls + "-dropdown all-border-box", system, className, {
10535
- 'drop-up': !down
10536
- }),
10537
- ref: domRef,
10538
- style: __assign(__assign({
10539
- height: maskHeight.current + "px",
10540
- maxWidth: windowWidth + "px"
10541
- }, style), positionStyle)
10542
- }, /*#__PURE__*/React__default["default"].createElement("div", {
10543
- className: cls(prefixCls + "-dropdown-options"),
10544
- ref: optionsWrapper,
10545
- style: getOptionsStyle()
10546
- }, /*#__PURE__*/React__default["default"].createElement("div", {
10547
- className: cls(prefixCls + "-dropdown-options-container"),
10548
- ref: optionsContainer
10549
- }, props.children || renderInnerOptions(), props.extraNode)), showMask && /*#__PURE__*/React__default["default"].createElement("div", {
10550
- className: cls(prefixCls + "-dropdown-mask", {
10551
- 'is-show': optionsWrapperHeight
10552
- }),
10553
- style: {
10554
- transition: "opacity " + maskAnimationTimeout + "ms " + maskAnimationFunction
10555
- }
10556
- })))));
10515
+ return /*#__PURE__*/React__default["default"].createElement(ContextLayout, null, function (_a) {
10516
+ var prefixCls = _a.prefixCls;
10517
+ return /*#__PURE__*/React__default["default"].createElement("div", {
10518
+ ref: dropdownContainer
10519
+ }, /*#__PURE__*/React__default["default"].createElement(Portal, {
10520
+ getContainer: getPortalContainer
10521
+ }, /*#__PURE__*/React__default["default"].createElement(reactTransitionGroup.CSSTransition, {
10522
+ in: showDropdown,
10523
+ timeout: Math.max(dropdownAnimationTimeout, maskAnimationTimeout),
10524
+ onEnter: function onEnter(el) {
10525
+ el.style.visibility = 'visible';
10526
+ },
10527
+ onExited: function onExited(el) {
10528
+ el.style.visibility = 'hidden';
10529
+ },
10530
+ mountOnEnter: mountOnEnter,
10531
+ unmountOnExit: unmountOnExit
10532
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
10533
+ className: cls(prefixCls + "-dropdown all-border-box", system, className, {
10534
+ 'drop-up': !down
10535
+ }),
10536
+ ref: domRef,
10537
+ style: __assign(__assign({
10538
+ height: maskHeight.current + "px",
10539
+ maxWidth: windowWidth + "px"
10540
+ }, style), positionStyle)
10541
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
10542
+ className: cls(prefixCls + "-dropdown-options"),
10543
+ ref: optionsWrapper,
10544
+ style: getOptionsStyle()
10545
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
10546
+ className: cls(prefixCls + "-dropdown-options-container"),
10547
+ ref: optionsContainer
10548
+ }, props.children || renderInnerOptions(), props.extraNode)), showMask && /*#__PURE__*/React__default["default"].createElement("div", {
10549
+ className: cls(prefixCls + "-dropdown-mask", {
10550
+ 'is-show': optionsWrapperHeight
10551
+ }),
10552
+ style: {
10553
+ transition: "opacity " + maskAnimationTimeout + "ms " + maskAnimationFunction
10554
+ }
10555
+ })))));
10556
+ });
10557
10557
  });
10558
- });
10558
+ }
10559
+
10560
+ var Dropdown = componentGenerator$6(Options);
10559
10561
  /**
10560
10562
  * 下拉面板,展示供选择的选择项
10561
10563
  * @en Dropdown panel, showing options to choose from
@@ -10703,251 +10705,271 @@
10703
10705
  });
10704
10706
  }
10705
10707
 
10706
- /**
10707
- * 下拉选择组件,点击选择器(select)展开下拉框(dropdown),展示选择项(options),兼容多个选择器的情况。
10708
- * @en Dropdown component, click the selector (select) to expand the dropdown box (dropdown), display the options (options), compatible with multiple selectors.
10709
- * @type 导航
10710
- * @type_en Navigation
10711
- * @name 下拉选择菜单
10712
- * @name_en DropdownMenu
10713
- */
10714
-
10715
- var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
10716
- var _a = props.className,
10717
- className = _a === void 0 ? '' : _a,
10718
- _b = props.style,
10719
- style = _b === void 0 ? {} : _b,
10720
- _c = props.options,
10721
- options = _c === void 0 ? [] : _c,
10722
- _d = props.disabled,
10723
- disabled = _d === void 0 ? [] : _d,
10724
- _e = props.selectTips,
10725
- selectTips = _e === void 0 ? [] : _e,
10726
- values = props.values,
10727
- _f = props.defaultValues,
10728
- defaultValues = _f === void 0 ? [] : _f,
10729
- icon = props.icon,
10730
- _g = props.chooseAndClose,
10731
- chooseAndClose = _g === void 0 ? true : _g,
10732
- selectIndex = props.selectIndex,
10733
- _h = props.defaultSelectIndex,
10734
- defaultSelectIndex = _h === void 0 ? 0 : _h,
10735
- showDropdown = props.showDropdown,
10736
- _j = props.defaultShowDropdown,
10737
- defaultShowDropdown = _j === void 0 ? false : _j,
10738
- renderSelectLabel = props.renderSelectLabel,
10739
- onValuesChange = props.onValuesChange,
10740
- onSelectChange = props.onSelectChange,
10741
- onDropdownChange = props.onDropdownChange,
10742
- _k = props.getFormattedOptions,
10743
- getFormattedOptions$1 = _k === void 0 ? getFormattedOptions : _k,
10744
- children = props.children,
10745
- extraForDropdown = props.extraForDropdown;
10746
-
10747
- var _l = React.useContext(GlobalContext),
10748
- prefixCls = _l.prefixCls,
10749
- locale = _l.locale;
10708
+ function componentGenerator$5(Comp) {
10709
+ return /*#__PURE__*/React.forwardRef(function (props, ref) {
10710
+ var _a = props.className,
10711
+ className = _a === void 0 ? '' : _a,
10712
+ _b = props.style,
10713
+ style = _b === void 0 ? {} : _b,
10714
+ _c = props.options,
10715
+ options = _c === void 0 ? [] : _c,
10716
+ _d = props.disabled,
10717
+ disabled = _d === void 0 ? [] : _d,
10718
+ _e = props.selectTips,
10719
+ selectTips = _e === void 0 ? [] : _e,
10720
+ values = props.values,
10721
+ _f = props.defaultValues,
10722
+ defaultValues = _f === void 0 ? [] : _f,
10723
+ icon = props.icon,
10724
+ _g = props.chooseAndClose,
10725
+ chooseAndClose = _g === void 0 ? true : _g,
10726
+ selectIndex = props.selectIndex,
10727
+ _h = props.defaultSelectIndex,
10728
+ defaultSelectIndex = _h === void 0 ? 0 : _h,
10729
+ showDropdown = props.showDropdown,
10730
+ _j = props.defaultShowDropdown,
10731
+ defaultShowDropdown = _j === void 0 ? false : _j,
10732
+ onValuesChange = props.onValuesChange,
10733
+ onSelectChange = props.onSelectChange,
10734
+ onDropdownChange = props.onDropdownChange,
10735
+ _k = props.getFormattedOptions,
10736
+ getFormattedOptions$1 = _k === void 0 ? getFormattedOptions : _k,
10737
+ getContainer = props.getContainer,
10738
+ children = props.children,
10739
+ extraForDropdown = props.extraForDropdown;
10750
10740
 
10751
- var _m = React.useState(defaultValues),
10752
- innerValues = _m[0],
10753
- setInnerValues = _m[1];
10741
+ var _l = React.useContext(GlobalContext),
10742
+ prefixCls = _l.prefixCls,
10743
+ locale = _l.locale;
10754
10744
 
10755
- var _o = React.useState(0),
10756
- defaultTop = _o[0],
10757
- setDefaultTop = _o[1];
10745
+ var _m = React.useState(defaultValues),
10746
+ innerValues = _m[0],
10747
+ setInnerValues = _m[1];
10758
10748
 
10759
- var currentValues = values !== void 0 ? values : innerValues;
10749
+ var _o = React.useState(0),
10750
+ defaultTop = _o[0],
10751
+ setDefaultTop = _o[1];
10760
10752
 
10761
- var _p = React.useState(defaultShowDropdown),
10762
- innerShowDropdown = _p[0],
10763
- setInnerShowDropdown = _p[1];
10753
+ var currentValues = values !== void 0 ? values : innerValues;
10764
10754
 
10765
- var dropdownShown = showDropdown !== void 0 ? showDropdown : innerShowDropdown;
10755
+ var _p = React.useState(defaultShowDropdown),
10756
+ innerShowDropdown = _p[0],
10757
+ setInnerShowDropdown = _p[1];
10766
10758
 
10767
- var _q = React.useState(defaultSelectIndex),
10768
- innerSelectedIndex = _q[0],
10769
- setInnerSelectedIndex = _q[1];
10759
+ var dropdownShown = showDropdown !== void 0 ? showDropdown : innerShowDropdown;
10770
10760
 
10771
- var selectedIndex = selectIndex !== void 0 ? selectIndex : innerSelectedIndex;
10772
- var selectWrapper = React.useRef(null);
10773
- var domRef = React.useRef(null);
10774
- var defaultOpItem = {
10775
- label: locale === null || locale === void 0 ? void 0 : locale.DropdownMenu.select,
10776
- value: -1
10777
- };
10778
- /**
10779
- * 下拉框的容器
10780
- * @en Dropdown container
10781
- */
10761
+ var _q = React.useState(defaultSelectIndex),
10762
+ innerSelectedIndex = _q[0],
10763
+ setInnerSelectedIndex = _q[1];
10782
10764
 
10783
- var getContainer = React.useCallback(function () {
10784
- if (props.getContainer) {
10785
- return props.getContainer() || selectWrapper.current;
10786
- }
10765
+ var selectedIndex = selectIndex !== void 0 ? selectIndex : innerSelectedIndex;
10766
+ var selectWrapper = React.useRef(null);
10767
+ var domRef = React.useRef(null);
10768
+ var defaultOpItem = {
10769
+ label: locale === null || locale === void 0 ? void 0 : locale.DropdownMenu.select,
10770
+ value: -1
10771
+ };
10772
+ /**
10773
+ * 更新选项数组和选择情况
10774
+ * @en Update options list and selection
10775
+ */
10787
10776
 
10788
- return selectWrapper.current;
10789
- }, [selectWrapper.current]);
10790
- /**
10791
- * 更新选项数组和选择情况
10792
- * @en Update options list and selection
10793
- */
10777
+ var formattedOptions = React.useMemo(function () {
10778
+ return getFormattedOptions$1(options, currentValues);
10779
+ }, [options, currentValues]).formattedOptions;
10780
+ var selectedOptions = React.useMemo(function () {
10781
+ return formattedOptions.map(function (ops, index) {
10782
+ if (props.multiple) {
10783
+ var value_1 = currentValues[index] || [];
10784
+ var opItems = ops.reduce(function (acc, op) {
10785
+ return __spreadArrays(acc, value_1.includes(op.value) ? [op] : []);
10786
+ }, []);
10787
+ return opItems.length ? opItems : [defaultOpItem];
10788
+ }
10794
10789
 
10795
- var formattedOptions = React.useMemo(function () {
10796
- return getFormattedOptions$1(options, currentValues);
10797
- }, [options, currentValues]).formattedOptions;
10798
- var selectedOptions = React.useMemo(function () {
10799
- return formattedOptions.map(function (ops, index) {
10800
- return ops.find(function (op) {
10801
10790
  var value = currentValues[index];
10802
- return Array.isArray(value) ? value.includes(op.value) : op.value === value;
10803
- }) || (props.multiple ? defaultOpItem : ops[0]);
10804
- });
10805
- }, [formattedOptions, currentValues]);
10806
- /**
10807
- * 当下拉框的状态变化
10808
- * @en When the state of the dropdown box changes
10809
- */
10791
+ return ops.find(function (op) {
10792
+ return op.value === value;
10793
+ }) || ops[0];
10794
+ });
10795
+ }, [formattedOptions, currentValues, props.multiple]);
10796
+ /**
10797
+ * 当下拉框的状态变化
10798
+ * @en When the state of the dropdown box changes
10799
+ */
10810
10800
 
10811
- var handleShowDropdownChange = function handleShowDropdownChange(show, index) {
10812
- onDropdownChange && onDropdownChange(show, index);
10813
- setInnerShowDropdown(show);
10814
- };
10801
+ var handleShowDropdownChange = function handleShowDropdownChange(show, index) {
10802
+ onDropdownChange && onDropdownChange(show, index);
10803
+ setInnerShowDropdown(show);
10804
+ };
10815
10805
 
10816
- var handleSelectedIndexChange = function handleSelectedIndexChange(idx) {
10817
- setInnerSelectedIndex(idx);
10818
- onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(idx);
10819
- };
10806
+ var handleSelectedIndexChange = function handleSelectedIndexChange(idx) {
10807
+ setInnerSelectedIndex(idx);
10808
+ onSelectChange === null || onSelectChange === void 0 ? void 0 : onSelectChange(idx);
10809
+ };
10820
10810
 
10821
- var handleValuesChange = function handleValuesChange(val) {
10822
- var newValue = __spreadArrays(currentValues); // 级联情况下 selectedIndex 之后的选项值重置
10823
- // @en Option values are reset after selectedIndex in case of cascade
10811
+ var handleValuesChange = function handleValuesChange(val) {
10812
+ var newValue = __spreadArrays(currentValues); // 级联情况下 selectedIndex 之后的选项值重置
10813
+ // @en Option values are reset after selectedIndex in case of cascade
10824
10814
 
10825
10815
 
10826
- if (isCascadeArray(options)) {
10827
- newValue = newValue.slice(0, selectedIndex);
10828
- }
10816
+ if (isCascadeArray(options)) {
10817
+ newValue = newValue.slice(0, selectedIndex);
10818
+ }
10829
10819
 
10830
- newValue[selectedIndex] = val;
10831
- newValue = getFormattedOptions$1(options, newValue).formattedValue;
10832
- setInnerValues(newValue);
10833
- onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(newValue);
10834
- };
10835
- /**
10836
- * 处理选择框的点击事件
10837
- * @en Handle click event of dropdown box
10838
- */
10820
+ newValue[selectedIndex] = val;
10821
+ newValue = getFormattedOptions$1(options, newValue).formattedValue;
10822
+ setInnerValues(newValue);
10823
+ onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(newValue);
10824
+ };
10825
+ /**
10826
+ * 处理选择框的点击事件
10827
+ * @en Handle click event of dropdown box
10828
+ */
10839
10829
 
10840
10830
 
10841
- var handleSelectClick = function handleSelectClick(idx) {
10842
- if (disabled[idx]) return;
10831
+ var handleSelectClick = function handleSelectClick(idx) {
10832
+ if (disabled[idx]) return;
10843
10833
 
10844
- if (Number(idx) === selectedIndex) {
10845
- handleShowDropdownChange(!dropdownShown, idx);
10846
- } else {
10847
- handleSelectedIndexChange(idx);
10848
- if (!dropdownShown) handleShowDropdownChange(true, idx);
10849
- }
10850
- };
10851
- /**
10852
- * 判断是否为当前实例下的选择框
10853
- * @en Determine whether it is the dropdown box under the current instance
10854
- */
10834
+ if (Number(idx) === selectedIndex) {
10835
+ handleShowDropdownChange(!dropdownShown, idx);
10836
+ } else {
10837
+ handleSelectedIndexChange(idx);
10838
+ if (!dropdownShown) handleShowDropdownChange(true, idx);
10839
+ }
10840
+ };
10841
+ /**
10842
+ * 判断是否为当前实例下的选择框
10843
+ * @en Determine whether it is the dropdown box under the current instance
10844
+ */
10855
10845
 
10856
10846
 
10857
- var isCurrentSelectEl = function isCurrentSelectEl(target) {
10858
- var isStopTouchEl = (extraForDropdown || {}).isStopTouchEl;
10859
- return isRefDom(target, selectWrapper) && isClassNameDom(target, 'select-item') || (isStopTouchEl === null || isStopTouchEl === void 0 ? void 0 : isStopTouchEl(target)) || false;
10860
- };
10847
+ var isCurrentSelectEl = function isCurrentSelectEl(target) {
10848
+ var isStopTouchEl = (extraForDropdown || {}).isStopTouchEl;
10849
+ return isRefDom(target, selectWrapper) && isClassNameDom(target, 'select-item') || (isStopTouchEl === null || isStopTouchEl === void 0 ? void 0 : isStopTouchEl(target)) || false;
10850
+ };
10861
10851
 
10862
- React.useImperativeHandle(ref, function () {
10863
- return {
10864
- dom: domRef.current
10852
+ React.useImperativeHandle(ref, function () {
10853
+ return {
10854
+ dom: domRef.current
10855
+ };
10856
+ });
10857
+ React.useEffect(function () {
10858
+ var defaultContainer = selectWrapper.current;
10859
+ var container = getContainer ? getContainer() || defaultContainer : defaultContainer;
10860
+ setDefaultTop((container === null || container === void 0 ? void 0 : container.getBoundingClientRect().bottom) || 0);
10861
+ }, [getContainer, dropdownShown]);
10862
+
10863
+ var onCancel = props.onCancel || function () {
10864
+ return handleShowDropdownChange(false);
10865
10865
  };
10866
- });
10867
- React.useEffect(function () {
10868
- var _a;
10869
10866
 
10870
- setDefaultTop(((_a = getContainer()) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().bottom) || 0);
10871
- }, [getContainer, dropdownShown]);
10867
+ var dropdownCommonProps = __assign(__assign({
10868
+ showDropdown: dropdownShown,
10869
+ top: (extraForDropdown === null || extraForDropdown === void 0 ? void 0 : extraForDropdown.top) || defaultTop,
10870
+ onCancel: onCancel
10871
+ }, extraForDropdown || {}), {
10872
+ isStopTouchEl: isCurrentSelectEl
10873
+ });
10872
10874
 
10873
- var onCancel = props.onCancel || function () {
10874
- return handleShowDropdownChange(false);
10875
- };
10875
+ var renderSelectedLabel = function renderSelectedLabel(op, index) {
10876
+ if (props.multiple === true) {
10877
+ var multipleOp = op || [];
10878
+ return props.renderSelectLabel ? props.renderSelectLabel(multipleOp, index) : /*#__PURE__*/React__default["default"].createElement("div", {
10879
+ className: cls(prefixCls + "-select-item-label-text")
10880
+ }, multipleOp.map(function (item) {
10881
+ return item.label;
10882
+ }).join(','));
10883
+ }
10876
10884
 
10877
- var dropdownCommonProps = __assign(__assign({
10878
- showDropdown: dropdownShown,
10879
- top: (extraForDropdown === null || extraForDropdown === void 0 ? void 0 : extraForDropdown.top) || defaultTop,
10880
- onCancel: onCancel
10881
- }, extraForDropdown || {}), {
10882
- isStopTouchEl: isCurrentSelectEl
10883
- });
10885
+ var singleOp = op || [];
10886
+ return props.renderSelectLabel ? props.renderSelectLabel(singleOp, index) : /*#__PURE__*/React__default["default"].createElement("div", {
10887
+ className: cls(prefixCls + "-select-item-label-text")
10888
+ }, singleOp.label);
10889
+ };
10884
10890
 
10885
- return /*#__PURE__*/React__default["default"].createElement("div", {
10886
- ref: domRef,
10887
- className: cls(prefixCls + "-dropdown-menu all-border-box " + (dropdownShown ? 'show' : ''), className),
10888
- style: style
10889
- }, /*#__PURE__*/React__default["default"].createElement("div", {
10890
- className: cls(prefixCls + "-select"),
10891
- ref: selectWrapper
10892
- }, selectedOptions.map(function (op, index) {
10893
- var tip = selectTips[index] || '';
10894
10891
  return /*#__PURE__*/React__default["default"].createElement("div", {
10895
- className: cls(prefixCls + "-select-item", {
10896
- 'is-disabled': disabled[index],
10897
- 'is-selected': dropdownShown && selectedIndex === index
10892
+ ref: domRef,
10893
+ className: cls(prefixCls + "-dropdown-menu all-border-box", className, {
10894
+ show: dropdownShown
10898
10895
  }),
10899
- key: index,
10900
- "data-idx": index,
10901
- onClick: function onClick() {
10902
- return handleSelectClick(index);
10903
- }
10904
- }, tip.length > 0 && /*#__PURE__*/React__default["default"].createElement("span", {
10905
- className: cls(prefixCls + "-select-item-tip")
10906
- }, tip), /*#__PURE__*/React__default["default"].createElement("div", {
10907
- className: cls(prefixCls + "-select-item-label")
10908
- }, renderSelectLabel ? renderSelectLabel(op, index) : /*#__PURE__*/React__default["default"].createElement("div", {
10909
- className: cls(prefixCls + "-select-item-label-text")
10910
- }, op.label), icon === void 0 ? /*#__PURE__*/React__default["default"].createElement(IconTriDown, {
10911
- className: cls(prefixCls + "-select-item-icon", {
10912
- 'is-show': dropdownShown && selectedIndex === index
10913
- })
10914
- }) : icon));
10915
- }), props.multiple === true ? /*#__PURE__*/React__default["default"].createElement(Dropdown$1, __assign({
10916
- multiple: true,
10917
- options: formattedOptions[selectedIndex] || [],
10918
- selectedValue: currentValues[selectedIndex] || [],
10919
- onOptionClick: function onOptionClick(selected, val, op) {
10920
- var _a;
10896
+ style: style
10897
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
10898
+ className: cls(prefixCls + "-select"),
10899
+ ref: selectWrapper
10900
+ }, selectedOptions.map(function (op, index) {
10901
+ var tip = selectTips[index] || '';
10902
+ return /*#__PURE__*/React__default["default"].createElement("div", {
10903
+ className: cls(prefixCls + "-select-item", {
10904
+ 'is-disabled': disabled[index],
10905
+ 'is-selected': dropdownShown && selectedIndex === index
10906
+ }),
10907
+ key: index,
10908
+ "data-idx": index,
10909
+ onClick: function onClick() {
10910
+ return handleSelectClick(index);
10911
+ }
10912
+ }, tip.length > 0 && /*#__PURE__*/React__default["default"].createElement("span", {
10913
+ className: cls(prefixCls + "-select-item-tip")
10914
+ }, tip), /*#__PURE__*/React__default["default"].createElement("div", {
10915
+ className: cls(prefixCls + "-select-item-label")
10916
+ }, renderSelectedLabel(op, index), icon === void 0 ? /*#__PURE__*/React__default["default"].createElement(IconTriDown, {
10917
+ className: cls(prefixCls + "-select-item-icon", {
10918
+ 'is-show': dropdownShown && selectedIndex === index
10919
+ })
10920
+ }) : icon));
10921
+ }), props.multiple === true ? /*#__PURE__*/React__default["default"].createElement(Comp, __assign({}, __assign(__assign({
10922
+ multiple: true,
10923
+ options: formattedOptions[selectedIndex] || [],
10924
+ selectedValue: currentValues[selectedIndex] || [],
10925
+ onOptionClick: function onOptionClick(selected, val, op) {
10926
+ var _a;
10921
10927
 
10922
- (_a = props.onOptionClick) === null || _a === void 0 ? void 0 : _a.call(props, selected, val, op, selectedIndex);
10923
- },
10924
- onOptionChange: function onOptionChange(val, op) {
10925
- var _a;
10928
+ (_a = props.onOptionClick) === null || _a === void 0 ? void 0 : _a.call(props, selected, val, op, selectedIndex);
10929
+ },
10930
+ onOptionChange: function onOptionChange(val, op) {
10931
+ var _a;
10926
10932
 
10927
- (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, val, op, selectedIndex);
10928
- handleValuesChange(val);
10929
- }
10930
- }, dropdownCommonProps), children) : /*#__PURE__*/React__default["default"].createElement(Dropdown$1, __assign({
10931
- multiple: props.multiple,
10932
- options: formattedOptions[selectedIndex] || [],
10933
- selectedValue: currentValues[selectedIndex] || 0,
10934
- onOptionClick: function onOptionClick(val, op) {
10935
- var _a;
10933
+ (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, val, op, selectedIndex);
10934
+ handleValuesChange(val);
10935
+ }
10936
+ }, dropdownCommonProps), {
10937
+ children: children
10938
+ }))) : /*#__PURE__*/React__default["default"].createElement(Comp, __assign({}, __assign(__assign({
10939
+ multiple: props.multiple,
10940
+ options: formattedOptions[selectedIndex] || [],
10941
+ selectedValue: currentValues[selectedIndex] || 0,
10942
+ onOptionClick: function onOptionClick(val, op) {
10943
+ var _a;
10936
10944
 
10937
- (_a = props.onOptionClick) === null || _a === void 0 ? void 0 : _a.call(props, val, op, selectedIndex);
10945
+ (_a = props.onOptionClick) === null || _a === void 0 ? void 0 : _a.call(props, val, op, selectedIndex);
10938
10946
 
10939
- if (chooseAndClose) {
10940
- handleShowDropdownChange(false, selectedIndex);
10947
+ if (chooseAndClose) {
10948
+ handleShowDropdownChange(false, selectedIndex);
10949
+ }
10950
+ },
10951
+ onOptionChange: function onOptionChange(val, op) {
10952
+ var _a;
10953
+
10954
+ (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, val, op, selectedIndex);
10955
+ handleValuesChange(val);
10941
10956
  }
10942
- },
10943
- onOptionChange: function onOptionChange(val, op) {
10944
- var _a;
10957
+ }, dropdownCommonProps), {
10958
+ children: children
10959
+ })))));
10960
+ });
10961
+ }
10945
10962
 
10946
- (_a = props.onOptionChange) === null || _a === void 0 ? void 0 : _a.call(props, val, op, selectedIndex);
10947
- handleValuesChange(val);
10948
- }
10949
- }, dropdownCommonProps), children)));
10950
- });
10963
+ /**
10964
+ * 下拉选择组件,点击选择器(select)展开下拉框(dropdown),展示选择项(options),兼容多个选择器的情况。
10965
+ * @en Dropdown component, click the selector (select) to expand the dropdown box (dropdown), display the options (options), compatible with multiple selectors.
10966
+ * @type 导航
10967
+ * @type_en Navigation
10968
+ * @name 下拉选择菜单
10969
+ * @name_en DropdownMenu
10970
+ */
10971
+
10972
+ var DropdownMenu = componentGenerator$5(Dropdown$1);
10951
10973
 
10952
10974
  var isBrowser$1 = function isBrowser() {
10953
10975
  return typeof window !== 'undefined' && typeof document !== 'undefined';
@@ -12473,6 +12495,34 @@
12473
12495
  offset: offset,
12474
12496
  threshold: threshold
12475
12497
  }, true);
12498
+ },
12499
+
12500
+ /**
12501
+ * 重置元素初始可见态为false,并重新对元素可见度发起检测,优先级低于disabled(通常用在对ShowMonitor内部元素变化时发起的重新监听)
12502
+ * @en Reset the initial visible state of the element to false, and re-detect the visibility of the element, the priority is lower than 'disabled'(Usually used to re-listen when elements inside ShowMonitor change)
12503
+ */
12504
+ flushVisibleStatus: function flushVisibleStatus() {
12505
+ isVisible.current = false;
12506
+
12507
+ if (isSupportNativeApi && io.current && domRef.current) {
12508
+ disabled ? io.current.unobserve(domRef.current) : io.current.observe(domRef.current);
12509
+ } else if (listener.current) {
12510
+ var key = wrapperKey.current;
12511
+
12512
+ if (once && (onOnceEmittedListeners === null || onOnceEmittedListeners === void 0 ? void 0 : onOnceEmittedListeners[key])) {
12513
+ onOnceEmittedListeners[key] = onOnceEmittedListeners[key].filter(function (emitListener) {
12514
+ return emitListener !== listener.current;
12515
+ });
12516
+ }
12517
+
12518
+ if (!disabled && !listeners[key].find(function (_listener) {
12519
+ return _listener === listener.current;
12520
+ })) {
12521
+ listeners[key].push(listener.current);
12522
+ }
12523
+
12524
+ !disabled && _checkVisible(listener.current);
12525
+ }
12476
12526
  }
12477
12527
  };
12478
12528
  });
@@ -13048,7 +13098,7 @@
13048
13098
  });
13049
13099
  };
13050
13100
 
13051
- var handleChange = function handleChange(event) {
13101
+ var handleChange = function handleChange(event, fromAdapter) {
13052
13102
  var files = __spreadArrays(event.target.files || []).filter(function (file) {
13053
13103
  // 过滤maxSize
13054
13104
  if (maxSize && file.size > maxSize * 1024) {
@@ -13058,7 +13108,11 @@
13058
13108
 
13059
13109
  return true;
13060
13110
  }) || [];
13061
- event.target.value = ''; // 截断limit
13111
+
13112
+ if (!fromAdapter) {
13113
+ event.target.value = '';
13114
+ } // 截断limit
13115
+
13062
13116
 
13063
13117
  if (limit !== 0 && files.length + images.length > limit) {
13064
13118
  onLimitExceed && onLimitExceed(files);
@@ -13072,7 +13126,7 @@
13072
13126
  var res = parseFiles.map(function (url, index) {
13073
13127
  return {
13074
13128
  url: url,
13075
- status: upload ? 'loading' : 'loaded',
13129
+ status: typeof upload === 'function' ? 'loading' : 'loaded',
13076
13130
  file: files[index]
13077
13131
  };
13078
13132
  });
@@ -13085,11 +13139,12 @@
13085
13139
  var propsImageLength_1 = images.length;
13086
13140
  files.forEach(function (_file, index) {
13087
13141
  upload(cacheRes[propsImageLength_1 + index]).then(function (data) {
13088
- cacheRes[propsImageLength_1 + index] = __assign(__assign({}, cacheRes[propsImageLength_1 + index]), data);
13142
+ cacheRes[propsImageLength_1 + index] = __assign(__assign(__assign({}, cacheRes[propsImageLength_1 + index]), data), {
13143
+ status: undefined
13144
+ });
13089
13145
  }).catch(function () {
13090
13146
  cacheRes[propsImageLength_1 + index].status = 'error';
13091
13147
  }).finally(function () {
13092
- cacheRes[propsImageLength_1 + index].status = 'loaded';
13093
13148
  onChange(__spreadArrays(cacheRes));
13094
13149
  });
13095
13150
  });
@@ -13110,15 +13165,15 @@
13110
13165
  e.preventDefault();
13111
13166
  timeOutEvent = setTimeout(function () {
13112
13167
  timeOutEvent = 0;
13113
- typeof onLongPress === 'function' && onLongPress(e, image, index);
13168
+ onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(e, image, index);
13114
13169
  }, 750);
13115
13170
  };
13116
13171
 
13117
- var handleTouchEnd = function handleTouchEnd(e, image, index) {
13172
+ var handleClick = function handleClick(e, image, index) {
13118
13173
  clearTimeout(timeOutEvent);
13119
13174
 
13120
13175
  if (timeOutEvent !== 0) {
13121
- typeof onClick === 'function' && onClick(e, image, index);
13176
+ onClick === null || onClick === void 0 ? void 0 : onClick(e, image, index);
13122
13177
  }
13123
13178
  };
13124
13179
 
@@ -13131,7 +13186,7 @@
13131
13186
  target: {
13132
13187
  files: files
13133
13188
  }
13134
- });
13189
+ }, true);
13135
13190
  }) : (_a = fileRef.current) === null || _a === void 0 ? void 0 : _a.click();
13136
13191
  };
13137
13192
 
@@ -13167,8 +13222,8 @@
13167
13222
  onTouchStart: function onTouchStart(e) {
13168
13223
  return handleTouchStart(e, image, index);
13169
13224
  },
13170
- onTouchEnd: function onTouchEnd(e) {
13171
- return handleTouchEnd(e, image, index);
13225
+ onClick: function onClick(e) {
13226
+ return handleClick(e, image, index);
13172
13227
  },
13173
13228
  className: prefixCls + "-image-picker-image-container"
13174
13229
  }, /*#__PURE__*/React__default["default"].createElement(BaseImage, __assign({
@@ -13209,7 +13264,9 @@
13209
13264
  accept: accept,
13210
13265
  multiple: multiple,
13211
13266
  type: "file",
13212
- onChange: handleChange,
13267
+ onChange: function onChange(e) {
13268
+ return handleChange(e);
13269
+ },
13213
13270
  ref: fileRef
13214
13271
  }) : null)),
13215
13272
  title: ''
@@ -13240,7 +13297,7 @@
13240
13297
  });
13241
13298
 
13242
13299
  /*!
13243
- * @arco-design/transformable v1.0.2
13300
+ * @arco-design/transformable v1.0.1
13244
13301
  * (c) 2022 ludan.kibbon
13245
13302
  */
13246
13303
  function _defineProperty(obj, key, value) {
@@ -16944,8 +17001,10 @@
16944
17001
  customStyle = _k[0],
16945
17002
  setCustomStyle = _k[1];
16946
17003
 
17004
+ var system = useSystem();
17005
+
16947
17006
  var onElementScroll = function onElementScroll(curOffset) {
16948
- setScrollToggleHide(curOffset <= showOffset);
17007
+ setScrollToggleHide(curOffset < showOffset);
16949
17008
 
16950
17009
  if (getComputedStyleByScroll) {
16951
17010
  var cstyle = getComputedStyleByScroll(curOffset);
@@ -16971,6 +17030,7 @@
16971
17030
  React.useEffect(function () {
16972
17031
  var needBind = showOffset || getComputedStyleByScroll;
16973
17032
  var container = getValidScrollContainer(getScrollContainer);
17033
+ handleEleScroll();
16974
17034
 
16975
17035
  if (needBind && container) {
16976
17036
  container.addEventListener('scroll', handleEleScroll, false);
@@ -17018,7 +17078,7 @@
17018
17078
  background: relBackground
17019
17079
  } : {})
17020
17080
  }, /*#__PURE__*/React__default["default"].createElement("div", {
17021
- className: cls(className, prefixCls + "-nav-bar-wrapper", (_c = {}, _c[prefixCls + "-nav-bar-wrapper-fixed"] = fixed, _c[prefixCls + "-nav-bar-wrapper-border"] = hasBottomLine, _c)),
17081
+ className: cls(className, system, prefixCls + "-nav-bar-wrapper", (_c = {}, _c[prefixCls + "-nav-bar-wrapper-fixed"] = fixed, _c[prefixCls + "-nav-bar-wrapper-border"] = hasBottomLine, _c)),
17022
17082
  style: __assign({
17023
17083
  paddingTop: statusBarHeight ? statusBarHeight + "px" : ''
17024
17084
  }, customStyle)