@nutui/nutui-react-taro 1.4.9-beta.1 → 1.4.9

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 (108) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/esm/ActionSheet.js +3 -3
  3. package/dist/esm/Address.js +3 -3
  4. package/dist/esm/Badge.js +3 -2
  5. package/dist/esm/Calendar.js +4 -4
  6. package/dist/esm/CalendarItem.js +3 -2
  7. package/dist/esm/Card.js +3 -3
  8. package/dist/esm/Cascader.js +4 -4
  9. package/dist/esm/Checkbox.js +2 -2
  10. package/dist/esm/CheckboxGroup.js +2 -2
  11. package/dist/esm/CircleProgress.js +3 -2
  12. package/dist/esm/Collapse.js +3 -2
  13. package/dist/esm/DatePicker.js +5 -4
  14. package/dist/esm/Form/style/index.js +1 -1
  15. package/dist/esm/FormItem/style/index.js +1 -1
  16. package/dist/esm/Grid.js +3 -2
  17. package/dist/esm/GridItem.js +3 -2
  18. package/dist/esm/ImagePreview.js +3 -3
  19. package/dist/esm/Indicator.js +2 -2
  20. package/dist/esm/MenuItem/style/index.js +1 -1
  21. package/dist/esm/NavBar/style/index.js +1 -1
  22. package/dist/esm/NumberKeyboard/style/index.js +1 -1
  23. package/dist/esm/NumberKeyboard.js +3 -3
  24. package/dist/esm/Picker.js +3 -3
  25. package/dist/esm/Popover/style/index.js +2 -1
  26. package/dist/esm/Popup.js +2 -2
  27. package/dist/esm/Rate.js +3 -2
  28. package/dist/esm/SearchBar/style/index.js +1 -1
  29. package/dist/esm/ShortPassword.js +3 -3
  30. package/dist/esm/SideNavBar/style/index.js +1 -1
  31. package/dist/esm/SideNavBar.js +3 -3
  32. package/dist/esm/Skeleton/style/index.js +1 -1
  33. package/dist/esm/Sticky.js +6 -3
  34. package/dist/esm/Swipe.js +3 -2
  35. package/dist/esm/Table/style/index.js +1 -1
  36. package/dist/esm/Tabs/style/index.js +2 -1
  37. package/dist/esm/Tabs.js +3 -2
  38. package/dist/esm/TimeSelect/style/index.js +1 -0
  39. package/dist/esm/TimeSelect.js +3 -3
  40. package/dist/esm/Uploader/style/index.js +1 -0
  41. package/dist/esm/Uploader.js +4 -2
  42. package/dist/esm/{actionsheet.taro-166ce936.js → actionsheet.taro-c5ccaf4e.js} +1 -1
  43. package/dist/esm/{address.taro-55f308f1.js → address.taro-f977bad0.js} +1 -1
  44. package/dist/esm/{badge.taro-116b2521.js → badge.taro-a2e7dd5a.js} +5 -2
  45. package/dist/esm/{calendar.taro-c95e6998.js → calendar.taro-2dee4f90.js} +2 -2
  46. package/dist/esm/{calendaritem.taro-86412398.js → calendaritem.taro-f5da0936.js} +6 -2
  47. package/dist/esm/{card.taro-a03f0dfc.js → card.taro-4fb6bc4e.js} +2 -1
  48. package/dist/esm/{cascader.taro-e0fb7e63.js → cascader.taro-a2ee549c.js} +2 -2
  49. package/dist/esm/{checkbox.taro-b76b1c82.js → checkbox.taro-6aab93c3.js} +60 -69
  50. package/dist/esm/{circleprogress.taro-47db537c.js → circleprogress.taro-897ea24b.js} +1 -2
  51. package/dist/esm/{collapse.taro-af58206c.js → collapse.taro-c903a060.js} +2 -1
  52. package/dist/esm/{datepicker.taro-324d9d98.js → datepicker.taro-e5f3aa90.js} +11 -10
  53. package/dist/esm/{grid.taro-e6decfce.js → grid.taro-9410ff69.js} +4 -1
  54. package/dist/esm/{griditem.taro-5406bd2c.js → griditem.taro-26863577.js} +9 -2
  55. package/dist/esm/{imagepreview.taro-2d23d0ae.js → imagepreview.taro-3a5722e8.js} +1 -1
  56. package/dist/esm/index-a90733f9.js +7 -0
  57. package/dist/esm/{indicator.taro-183ea169.js → indicator.taro-25682172.js} +1 -1
  58. package/dist/esm/{numberkeyboard.taro-c6b5b0e1.js → numberkeyboard.taro-78224b3a.js} +1 -1
  59. package/dist/esm/nutui-react.es.js +28 -27
  60. package/dist/esm/{picker.taro-33e33120.js → picker.taro-4298ce4e.js} +1 -1
  61. package/dist/esm/{popup.taro-4c18f46c.js → popup.taro-6e81162a.js} +1 -1
  62. package/dist/esm/{rate.taro-17b84a51.js → rate.taro-f18381f3.js} +5 -2
  63. package/dist/esm/{shortpassword.taro-53b7ee7b.js → shortpassword.taro-e8ea4593.js} +1 -1
  64. package/dist/esm/{sidenavbar.taro-51a133e6.js → sidenavbar.taro-e03a5287.js} +1 -1
  65. package/dist/esm/{sticky.taro-2d9b2804.js → sticky.taro-b15d1173.js} +9 -4
  66. package/dist/esm/{swipe.taro-6532405d.js → swipe.taro-9375a9a1.js} +2 -1
  67. package/dist/esm/{tabs.taro-4629d66c.js → tabs.taro-95edd45d.js} +2 -0
  68. package/dist/esm/{timeselect.taro-4fb46162.js → timeselect.taro-f276b0a9.js} +1 -1
  69. package/dist/esm/types/src/packages/checkbox/checkbox.d.ts +2 -7
  70. package/dist/esm/types/src/packages/checkbox/checkbox.taro.d.ts +2 -7
  71. package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.d.ts +4 -5
  72. package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.taro.d.ts +4 -5
  73. package/dist/esm/types/src/packages/checkboxgroup/context.d.ts +10 -0
  74. package/dist/esm/types/src/packages/tabs/tabs.d.ts +4 -1
  75. package/dist/esm/types/src/packages/tabs/tabs.taro.d.ts +4 -1
  76. package/dist/esm/types/src/packages/uploader/upload.d.ts +3 -0
  77. package/dist/esm/types/src/packages/uploader/uploader.d.ts +4 -1
  78. package/dist/esm/types/src/packages/uploader/uploader.taro.d.ts +15 -6
  79. package/dist/esm/types/src/utils/Interceptor.d.ts +6 -0
  80. package/dist/esm/types/src/utils/index.d.ts +2 -0
  81. package/dist/esm/{uploader.taro-c830b573.js → uploader.taro-77396b5d.js} +183 -81
  82. package/dist/locales/base.js +1 -1
  83. package/dist/locales/en-US.js +1 -1
  84. package/dist/locales/id-ID.js +1 -1
  85. package/dist/locales/zh-CN.js +1 -1
  86. package/dist/locales/zh-TW.js +1 -1
  87. package/dist/locales/zh-UG.js +1 -1
  88. package/dist/nutui.react.es.js +319 -218
  89. package/dist/nutui.react.umd.js +318 -217
  90. package/dist/packages/datepicker/datepicker.scss +0 -3
  91. package/dist/packages/form/form.scss +1 -0
  92. package/dist/packages/formitem/formitem.scss +13 -0
  93. package/dist/packages/menuitem/menuitem.scss +4 -0
  94. package/dist/packages/navbar/navbar.scss +24 -0
  95. package/dist/packages/numberkeyboard/numberkeyboard.scss +1 -0
  96. package/dist/packages/searchbar/searchbar.scss +1 -0
  97. package/dist/packages/sidenavbar/sidenavbar.scss +13 -0
  98. package/dist/packages/skeleton/skeleton.scss +7 -0
  99. package/dist/packages/table/table.scss +22 -0
  100. package/dist/packages/tabs/tabs.scss +44 -2
  101. package/dist/packages/timeselect/timeselect.scss +7 -0
  102. package/dist/packages/uploader/uploader.scss +85 -28
  103. package/dist/style.css +1 -1
  104. package/dist/style.es.js +1 -1
  105. package/dist/styles/variables.scss +62 -0
  106. package/dist/types/index.d.ts +28 -21
  107. package/package.json +1 -1
  108. package/dist/esm/types/src/packages/tabbar/use-props-value.d.ts +0 -7
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react-taro v1.4.9-beta.1 Fri Feb 24 2023 14:33:09 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react-taro v1.4.9 Wed Mar 01 2023 15:41:27 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1632,7 +1632,7 @@
1632
1632
  round,
1633
1633
  [`nut-popup-${position}`]: true,
1634
1634
  [`${popClass}`]: true,
1635
- [`${className}`]: true
1635
+ [`${className || ""}`]: true
1636
1636
  },
1637
1637
  b2("")
1638
1638
  );
@@ -1862,7 +1862,9 @@
1862
1862
  const b2 = cn("grid");
1863
1863
  const rootClass = () => {
1864
1864
  const prefixCls = b2();
1865
- return `${className} ${prefixCls} ${border && !gutter ? `${b2("border")}` : ""}`;
1865
+ return classNames(className, prefixCls, {
1866
+ [b2("border")]: border && !gutter
1867
+ });
1866
1868
  };
1867
1869
  const rootStyle = () => {
1868
1870
  let styleSelf = {};
@@ -1963,8 +1965,14 @@
1963
1965
  return style;
1964
1966
  };
1965
1967
  const contentClass = () => {
1966
- return `${b2("content")} ${border && b2("content--border")} ${border && gutter && b2("content--surround")} ${center && b2("content--center")} ${square && b2("content--square")} ${reverse && b2("content--reverse")} ${!!direction && b2(`content--${direction}`)}
1967
- `;
1968
+ return classNames(b2("content"), {
1969
+ [b2("content--border")]: border,
1970
+ [b2("content--surround")]: border && gutter,
1971
+ [b2("content--center")]: center,
1972
+ [b2("content--square")]: square,
1973
+ [b2("content--reverse")]: reverse,
1974
+ [b2(`content--${direction}`)]: !!direction
1975
+ });
1968
1976
  };
1969
1977
  const isIconName = () => {
1970
1978
  return typeof icon === "string";
@@ -2135,6 +2143,7 @@
2135
2143
  bottom: 0,
2136
2144
  zIndex: 2e3
2137
2145
  };
2146
+ const b$2 = cn("sticky");
2138
2147
  const Sticky = (props) => {
2139
2148
  const {
2140
2149
  position = "top",
@@ -2235,10 +2244,10 @@
2235
2244
  return /* @__PURE__ */ React__default["default"].createElement("div", {
2236
2245
  ref: rootRef,
2237
2246
  style: rootStyle,
2238
- className: `nut-sticky ${className}`,
2247
+ className: classNames(b$2(), className),
2239
2248
  ...rest
2240
2249
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
2241
- className: `nut-sticky-box ${fixed ? "nut-sticky-fixed" : ""}`,
2250
+ className: classNames("nut-sticky-box", { "nut-sticky-fixed": fixed }),
2242
2251
  ref: stickyRef,
2243
2252
  style: stickyStyle
2244
2253
  }, children));
@@ -2609,7 +2618,7 @@
2609
2618
  React.useEffect(() => {
2610
2619
  }, []);
2611
2620
  return /* @__PURE__ */ React__default["default"].createElement("div", {
2612
- className: `${classes} ${className}`,
2621
+ className: classNames(classes, className),
2613
2622
  ...rest
2614
2623
  }, renderEles());
2615
2624
  };
@@ -3618,6 +3627,7 @@
3618
3627
  };
3619
3628
  Tabs.defaultProps = defaultProps$15;
3620
3629
  Tabs.displayName = "NutTabs";
3630
+ Tabs.TabPane = TabPane;
3621
3631
  const Utils = {
3622
3632
  isLeapYear(y) {
3623
3633
  return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
@@ -3765,6 +3775,7 @@
3765
3775
  const [monthsData, setMonthsData] = React.useState([]);
3766
3776
  const [translateY, setTranslateY] = React.useState(0);
3767
3777
  const [monthDefaultRange, setMonthDefaultRange] = React.useState([]);
3778
+ const [scrollTop, setScrollTop] = React.useState(0);
3768
3779
  const [state] = React.useState({
3769
3780
  currDate: "",
3770
3781
  propStartDate: "",
@@ -4061,7 +4072,7 @@
4061
4072
  setMonthDefaultRange([start2, end]);
4062
4073
  setTranslateY(state.monthsData[start2].cssScrollHeight);
4063
4074
  };
4064
- const mothsViewScroll = (e2) => {
4075
+ const monthsViewScroll = (e2) => {
4065
4076
  if (state.monthsData.length <= 1) {
4066
4077
  return;
4067
4078
  }
@@ -4261,11 +4272,13 @@
4261
4272
  clearInterval(interval);
4262
4273
  if (months.current) {
4263
4274
  months.current.scrollTop = state.monthsData[index].cssScrollHeight;
4275
+ setScrollTop(months.current.scrollTop);
4264
4276
  }
4265
4277
  }
4266
4278
  }, 40);
4267
4279
  } else {
4268
4280
  months.current.scrollTop = state.monthsData[index].cssScrollHeight;
4281
+ setScrollTop(months.current.scrollTop);
4269
4282
  }
4270
4283
  }
4271
4284
  }
@@ -4296,9 +4309,12 @@
4296
4309
  }, weeks.map((item) => /* @__PURE__ */ React__default["default"].createElement("div", {
4297
4310
  className: "calendar-week-item",
4298
4311
  key: item
4299
- }, item)))), /* @__PURE__ */ React__default["default"].createElement("div", {
4312
+ }, item)))), /* @__PURE__ */ React__default["default"].createElement(index_cjs.ScrollView, {
4313
+ scrollTop,
4314
+ scrollY: true,
4315
+ scrollWithAnimation: true,
4300
4316
  className: "nut-calendar-content",
4301
- onScroll: mothsViewScroll,
4317
+ onScroll: monthsViewScroll,
4302
4318
  ref: months
4303
4319
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
4304
4320
  className: "calendar-months-panel",
@@ -4958,6 +4974,7 @@
4958
4974
  const Cascader = React__default["default"].forwardRef(InternalCascader);
4959
4975
  Cascader.defaultProps = defaultProps$11;
4960
4976
  Cascader.displayName = "NutCascader";
4977
+ const CheckboxGroupContext = React.createContext(null);
4961
4978
  const defaultProps$10 = {
4962
4979
  disabled: false,
4963
4980
  checkedValue: [],
@@ -4983,8 +5000,6 @@
4983
5000
  options,
4984
5001
  ...rest
4985
5002
  } = props;
4986
- const [innerDisabled, setInnerDisabled] = React.useState(disabled);
4987
- const [innerValue, setInnerValue] = React.useState(checkedValue);
4988
5003
  React.useImperativeHandle(ref, () => ({
4989
5004
  toggleAll(state) {
4990
5005
  if (state === false) {
@@ -5010,75 +5025,41 @@
5010
5025
  setInnerValue(reverse);
5011
5026
  }
5012
5027
  }));
5028
+ const [innerValue, setInnerValue] = React.useState(checkedValue || []);
5013
5029
  React.useEffect(() => {
5014
- setInnerDisabled(disabled);
5015
- setInnerValue(checkedValue);
5016
- }, [disabled, checkedValue]);
5017
- function handleChildChange(state, label) {
5018
- if (max !== void 0 && innerValue && innerValue.length > max)
5019
- return;
5020
- if (innerValue) {
5021
- let clippedValue = [];
5022
- if (state) {
5023
- clippedValue = [...innerValue, label];
5024
- } else {
5025
- innerValue == null ? void 0 : innerValue.splice(innerValue == null ? void 0 : innerValue.indexOf(label), 1);
5026
- clippedValue = [...innerValue];
5027
- }
5028
- setInnerValue(clippedValue);
5029
- onChange && onChange(clippedValue);
5030
- }
5031
- }
5032
- function validateChildChecked(child) {
5033
- if (!innerValue)
5034
- return false;
5035
- return (innerValue == null ? void 0 : innerValue.indexOf(child.props.label || child.children)) > -1;
5036
- }
5037
- function validateChecked(value) {
5038
- if (!innerValue)
5039
- return false;
5040
- return (innerValue == null ? void 0 : innerValue.indexOf(value)) > -1;
5041
- }
5042
- function getParentVals() {
5043
- return innerValue;
5044
- }
5045
- function cloneChildren() {
5046
- return React__default["default"].Children.map(children, (child) => {
5047
- const childChecked = validateChildChecked(child);
5048
- if (child.type.displayName !== "NutCheckBox") {
5049
- return React__default["default"].cloneElement(child);
5050
- }
5051
- return React__default["default"].cloneElement(child, {
5052
- disabled: innerDisabled,
5053
- checked: childChecked,
5054
- onChange: handleChildChange,
5055
- getParentVals,
5056
- max,
5057
- textPosition
5058
- });
5059
- });
5060
- }
5061
- const renderOptionsChildren = React.useCallback(() => {
5030
+ setInnerValue(checkedValue || []);
5031
+ }, [checkedValue]);
5032
+ const renderOptions = React.useCallback(() => {
5062
5033
  return options == null ? void 0 : options.map(({ label, value, disabled: disabled2, onChange: onChange2, ...rest2 }) => {
5063
- const childChecked = validateChecked(value);
5064
5034
  return /* @__PURE__ */ React__default["default"].createElement(Checkbox, {
5065
5035
  key: value == null ? void 0 : value.toString(),
5066
5036
  children: label,
5067
5037
  label: value,
5068
- disabled: innerDisabled ? true : disabled2,
5069
- onChange: handleChildChange,
5070
- ...rest2,
5071
- max,
5072
- textPosition,
5073
- getParentVals,
5074
- checked: childChecked
5038
+ ...rest2
5075
5039
  });
5076
5040
  });
5077
- }, [innerValue, options, innerDisabled, max]);
5078
- return /* @__PURE__ */ React__default["default"].createElement("div", {
5041
+ }, [options, max]);
5042
+ return /* @__PURE__ */ React__default["default"].createElement(CheckboxGroupContext.Provider, {
5043
+ value: {
5044
+ textPosition: textPosition || "left",
5045
+ disabled,
5046
+ max,
5047
+ checkedValue: innerValue || [],
5048
+ check: (value) => {
5049
+ const combined = [...innerValue, value];
5050
+ setInnerValue(combined);
5051
+ onChange && onChange(combined);
5052
+ },
5053
+ uncheck: (value) => {
5054
+ const reduced = innerValue.filter((item) => item !== value);
5055
+ setInnerValue(reduced);
5056
+ onChange && onChange(reduced);
5057
+ }
5058
+ }
5059
+ }, /* @__PURE__ */ React__default["default"].createElement("div", {
5079
5060
  className: `${b2()} nut-checkboxgroup--${props.direction} ${className || ""}`,
5080
5061
  ...rest
5081
- }, (options == null ? void 0 : options.length) ? renderOptionsChildren() : cloneChildren());
5062
+ }, (options == null ? void 0 : options.length) ? renderOptions() : children));
5082
5063
  }
5083
5064
  );
5084
5065
  CheckboxGroup.defaultProps = defaultProps$10;
@@ -5108,7 +5089,6 @@
5108
5089
  iconSize,
5109
5090
  label,
5110
5091
  className,
5111
- textPosition,
5112
5092
  iconActiveName,
5113
5093
  checked,
5114
5094
  disabled,
@@ -5117,20 +5097,33 @@
5117
5097
  iconClassPrefix,
5118
5098
  iconFontClassName,
5119
5099
  iconIndeterminateName,
5120
- getParentVals,
5121
- max,
5122
- ...rest
5100
+ ...others
5123
5101
  } = props;
5124
- const [innerChecked, setInnerChecked] = React.useState(checked);
5125
- const [innerDisabled, setDisabled] = React.useState(disabled);
5102
+ let { textPosition, ...rest } = others;
5103
+ const ctx2 = React.useContext(CheckboxGroupContext);
5104
+ let [innerChecked, setInnerChecked] = React.useState(checked);
5105
+ let [innerDisabled, setDisabled] = React.useState(disabled);
5126
5106
  const [_indeterminate, setIndeterminate] = React.useState(indeterminate);
5127
5107
  React.useEffect(() => {
5128
- setInnerChecked(checked);
5108
+ !ctx2 && setInnerChecked(checked);
5129
5109
  setDisabled(disabled);
5130
- }, [disabled, checked]);
5131
- React.useEffect(() => {
5132
5110
  setIndeterminate(indeterminate);
5133
- }, [indeterminate]);
5111
+ }, [disabled, checked, indeterminate]);
5112
+ if (ctx2) {
5113
+ if (ctx2.textPosition !== void 0) {
5114
+ textPosition = ctx2.textPosition;
5115
+ }
5116
+ innerDisabled = ctx2.disabled;
5117
+ innerChecked = ctx2.checkedValue.includes(label);
5118
+ setInnerChecked = (checked2) => {
5119
+ if (ctx2.disabled)
5120
+ return;
5121
+ if (checked2)
5122
+ ctx2.check(label);
5123
+ if (!checked2)
5124
+ ctx2.uncheck(label);
5125
+ };
5126
+ }
5134
5127
  const getIconName = () => {
5135
5128
  if (!innerChecked) {
5136
5129
  return iconName;
@@ -5167,13 +5160,15 @@
5167
5160
  }, children || label);
5168
5161
  };
5169
5162
  const handleClick = () => {
5170
- if (!disabled) {
5171
- const latest = !innerChecked;
5172
- if (max !== void 0 && latest && getParentVals().length >= max)
5163
+ if (disabled)
5164
+ return;
5165
+ const latestChecked = !innerChecked;
5166
+ if (ctx2 && ctx2.max !== void 0) {
5167
+ if (latestChecked && ctx2.checkedValue.length >= ctx2.max)
5173
5168
  return;
5174
- onChange && onChange(latest, label || children);
5175
- setInnerChecked(latest);
5176
5169
  }
5170
+ onChange && onChange(latestChecked, label || children);
5171
+ setInnerChecked(latestChecked);
5177
5172
  };
5178
5173
  return /* @__PURE__ */ React__default["default"].createElement("div", {
5179
5174
  className: `${b2({ reverse: textPosition === "left" })} ${className || ""}`,
@@ -5690,6 +5685,19 @@
5690
5685
  }))));
5691
5686
  };
5692
5687
  const Picker = React__default["default"].forwardRef(InternalPicker);
5688
+ const defaultConfigRef = {
5689
+ current: {
5690
+ locale: zhCN
5691
+ }
5692
+ };
5693
+ const getDefaultConfig = () => {
5694
+ return defaultConfigRef.current;
5695
+ };
5696
+ const ConfigContext = React.createContext(null);
5697
+ const useConfig = () => {
5698
+ var _a;
5699
+ return (_a = React.useContext(ConfigContext)) != null ? _a : getDefaultConfig();
5700
+ };
5693
5701
  const currentYear = new Date().getFullYear();
5694
5702
  const defaultProps$_ = {
5695
5703
  modelValue: null,
@@ -5725,6 +5733,7 @@
5725
5733
  ...defaultProps$_,
5726
5734
  ...props
5727
5735
  };
5736
+ const { locale } = useConfig();
5728
5737
  const [show, setShow] = React.useState(false);
5729
5738
  const [currentDate, setCurrentDate] = React.useState(modelValue);
5730
5739
  const [defaultValue, setDefaultValue] = React.useState([]);
@@ -5733,13 +5742,14 @@
5733
5742
  const isDate = (val) => {
5734
5743
  return Object.prototype.toString.call(val) === "[object Date]" && !Number.isNaN(val.getTime());
5735
5744
  };
5745
+ const datepickerLang = locale.datepicker;
5736
5746
  const zhCNType = {
5737
- day: "\u65E5",
5738
- year: "\u5E74",
5739
- month: "\u6708",
5740
- hour: "\u65F6",
5741
- minute: "\u5206",
5742
- seconds: "\u79D2"
5747
+ day: datepickerLang.day,
5748
+ year: datepickerLang.year,
5749
+ month: datepickerLang.month,
5750
+ hour: datepickerLang.hour,
5751
+ minute: datepickerLang.min,
5752
+ seconds: datepickerLang.seconds
5743
5753
  };
5744
5754
  const formatValue = (value) => {
5745
5755
  let cvalue = value;
@@ -5790,7 +5800,6 @@
5790
5800
  };
5791
5801
  const ranges = (date) => {
5792
5802
  const curDate = date || currentDate;
5793
- console.log(11, currentDate);
5794
5803
  if (!curDate)
5795
5804
  return [];
5796
5805
  const { maxYear, maxDate: maxDate2, maxMonth, maxHour, maxMinute, maxSeconds } = getBoundary("max", curDate);
@@ -5977,6 +5986,7 @@
5977
5986
  style,
5978
5987
  ...rest
5979
5988
  }, listData.length > 0 && /* @__PURE__ */ React__default["default"].createElement(Picker, {
5989
+ title,
5980
5990
  isVisible: show,
5981
5991
  listData,
5982
5992
  onClose: onCloseDatePicker,
@@ -7820,7 +7830,7 @@
7820
7830
  onChange && onChange(value);
7821
7831
  };
7822
7832
  return /* @__PURE__ */ React__default["default"].createElement("div", {
7823
- className: `${b2()} ${className}`,
7833
+ className: classNames(b2(), className),
7824
7834
  style
7825
7835
  }, countArray.map((n) => {
7826
7836
  return /* @__PURE__ */ React__default["default"].createElement("div", {
@@ -7832,7 +7842,9 @@
7832
7842
  classPrefix: iconClassPrefix,
7833
7843
  fontClassName: iconFontClassName,
7834
7844
  size: iconSize,
7835
- className: `${bi("icon")} ${disabled || n > score ? bi("icon--disabled") : ""}`,
7845
+ className: classNames(bi("icon"), {
7846
+ [bi("icon--disabled")]: disabled || n > score
7847
+ }),
7836
7848
  name: n <= score ? checkedIcon : uncheckedIcon,
7837
7849
  color: n <= score ? activeColor : voidColor
7838
7850
  }), allowHalf && score > n - 1 && /* @__PURE__ */ React__default["default"].createElement(Icon, {
@@ -8507,57 +8519,98 @@
8507
8519
  console.warn("\u6D4F\u89C8\u5668\u4E0D\u652F\u6301 XMLHttpRequest");
8508
8520
  }
8509
8521
  }
8522
+ }
8523
+ class UploaderTaro extends Upload {
8524
+ constructor(options) {
8525
+ super(options);
8526
+ }
8510
8527
  uploadTaro(uploadFile, env) {
8511
8528
  var _a;
8512
8529
  const options = this.options;
8513
8530
  if (env === "WEB") {
8514
8531
  this.upload();
8515
- } else if (options.beforeXhrUpload) {
8516
- options.beforeXhrUpload(uploadFile, options);
8517
8532
  } else {
8518
- const uploadTask = uploadFile({
8519
- url: options.url,
8520
- filePath: options.taroFilePath,
8521
- fileType: options.fileType,
8522
- header: {
8523
- "Content-Type": "multipart/form-data",
8524
- ...options.headers
8525
- },
8526
- formData: options.formData,
8527
- name: options.name,
8528
- success(response) {
8529
- var _a2, _b;
8530
- if (options.xhrState == response.statusCode) {
8531
- (_a2 = options.onSuccess) == null ? void 0 : _a2.call(options, response, options);
8532
- } else {
8533
- (_b = options.onFailure) == null ? void 0 : _b.call(options, response, options);
8533
+ if (options.beforeXhrUpload) {
8534
+ options.beforeXhrUpload(uploadFile, options);
8535
+ } else {
8536
+ const uploadTask = uploadFile({
8537
+ url: options.url,
8538
+ filePath: options.taroFilePath,
8539
+ fileType: options.fileType,
8540
+ header: {
8541
+ "Content-Type": "multipart/form-data",
8542
+ ...options.headers
8543
+ },
8544
+ formData: options.formData,
8545
+ name: options.name,
8546
+ success(response) {
8547
+ var _a2, _b;
8548
+ if (options.xhrState == response.statusCode) {
8549
+ (_a2 = options.onSuccess) == null ? void 0 : _a2.call(options, response, options);
8550
+ } else {
8551
+ (_b = options.onFailure) == null ? void 0 : _b.call(options, response, options);
8552
+ }
8553
+ },
8554
+ fail(e2) {
8555
+ var _a2;
8556
+ (_a2 = options.onFailure) == null ? void 0 : _a2.call(options, e2, options);
8534
8557
  }
8535
- },
8536
- fail(e2) {
8537
- var _a2;
8538
- (_a2 = options.onFailure) == null ? void 0 : _a2.call(options, e2, options);
8558
+ });
8559
+ (_a = options.onStart) == null ? void 0 : _a.call(options, options);
8560
+ uploadTask.progress(
8561
+ (res) => {
8562
+ var _a2;
8563
+ (_a2 = options.onProgress) == null ? void 0 : _a2.call(options, res, options);
8564
+ }
8565
+ );
8566
+ }
8567
+ }
8568
+ }
8569
+ }
8570
+ const isObject = (val) => val !== null && typeof val === "object";
8571
+ const isFunction = (val) => typeof val === "function";
8572
+ const isPromise = (val) => {
8573
+ return isObject(val) && isFunction(val.then) && isFunction(val.catch);
8574
+ };
8575
+ const funcInterceptor = (interceptor, {
8576
+ args = [],
8577
+ done,
8578
+ canceled
8579
+ }) => {
8580
+ if (interceptor) {
8581
+ const returnVal = interceptor.apply(null, args);
8582
+ if (isPromise(returnVal)) {
8583
+ returnVal.then((value) => {
8584
+ if (value) {
8585
+ done(value);
8586
+ } else if (canceled) {
8587
+ canceled();
8539
8588
  }
8589
+ }).catch(() => {
8540
8590
  });
8541
- (_a = options.onStart) == null ? void 0 : _a.call(options, options);
8542
- uploadTask.progress(
8543
- (res) => {
8544
- var _a2;
8545
- (_a2 = options.onProgress) == null ? void 0 : _a2.call(options, res, options);
8546
- }
8547
- );
8591
+ } else if (returnVal) {
8592
+ done();
8593
+ } else if (canceled) {
8594
+ canceled();
8548
8595
  }
8596
+ } else {
8597
+ done();
8549
8598
  }
8550
- }
8599
+ };
8551
8600
  const defaultProps$K = {
8552
8601
  ...ComponentDefaults,
8553
8602
  url: "",
8554
- maximum: 9,
8603
+ maximum: 1,
8555
8604
  sizeType: ["original", "compressed"],
8556
8605
  sourceType: ["album", "camera"],
8606
+ mediaType: ["image", "video"],
8607
+ camera: "back",
8557
8608
  uploadIcon: "photograph",
8558
8609
  uploadIconSize: "",
8610
+ uploadIconTip: "",
8559
8611
  listType: "picture",
8560
8612
  name: "file",
8613
+ accept: "*",
8561
8614
  disabled: false,
8562
8615
  autoUpload: true,
8563
8616
  multiple: false,
@@ -8570,6 +8623,7 @@
8570
8623
  timeout: 1e3 * 30,
8571
8624
  isPreview: true,
8572
8625
  isDeletable: true,
8626
+ maxDuration: 10,
8573
8627
  onBeforeDelete: (file, files) => {
8574
8628
  return true;
8575
8629
  }
@@ -8589,10 +8643,14 @@
8589
8643
  children,
8590
8644
  uploadIcon,
8591
8645
  uploadIconSize,
8646
+ uploadIconTip,
8647
+ accept,
8592
8648
  name,
8649
+ camera,
8593
8650
  defaultFileList,
8594
8651
  listType,
8595
8652
  disabled,
8653
+ multiple,
8596
8654
  url,
8597
8655
  defaultImg,
8598
8656
  headers,
@@ -8604,11 +8662,14 @@
8604
8662
  isDeletable,
8605
8663
  maximum,
8606
8664
  maximize,
8607
- multiple,
8665
+ mediaType,
8608
8666
  className,
8609
8667
  autoUpload,
8610
8668
  sizeType,
8611
8669
  sourceType,
8670
+ maxDuration,
8671
+ iconClassPrefix,
8672
+ iconFontClassName,
8612
8673
  onStart,
8613
8674
  onRemove,
8614
8675
  onChange,
@@ -8618,7 +8679,6 @@
8618
8679
  onUpdate,
8619
8680
  onFailure,
8620
8681
  onOversize,
8621
- onBeforeUpload,
8622
8682
  onBeforeXhrUpload,
8623
8683
  onBeforeDelete,
8624
8684
  ...restProps
@@ -8637,6 +8697,9 @@
8637
8697
  Promise.all(uploadQueue).then((res) => {
8638
8698
  res.forEach((i) => i.uploadTaro(Taro.uploadFile, Taro.getEnv()));
8639
8699
  });
8700
+ },
8701
+ clear: () => {
8702
+ clearUploadQueue();
8640
8703
  }
8641
8704
  }));
8642
8705
  const clearUploadQueue = (index = -1) => {
@@ -8645,18 +8708,54 @@
8645
8708
  setUploadQueue(uploadQueue);
8646
8709
  } else {
8647
8710
  setUploadQueue([]);
8711
+ fileList.splice(0, fileList.length);
8712
+ setFileList([...fileList]);
8648
8713
  }
8649
8714
  };
8650
8715
  const _chooseImage = () => {
8651
8716
  if (disabled) {
8652
8717
  return;
8653
8718
  }
8654
- Taro.chooseImage({
8655
- count: multiple ? maximum * 1 - fileList.length : 1,
8656
- sizeType,
8657
- sourceType,
8658
- success: onChangeFn
8659
- });
8719
+ if (Taro__default["default"].getEnv() == "WEB") {
8720
+ let el = document.getElementById("taroChooseImage");
8721
+ if (el) {
8722
+ el == null ? void 0 : el.setAttribute("accept", accept);
8723
+ } else {
8724
+ const obj = document.createElement("input");
8725
+ obj.setAttribute("type", "file");
8726
+ obj.setAttribute("id", "taroChooseImage");
8727
+ obj.setAttribute("accept", accept);
8728
+ obj.setAttribute(
8729
+ "style",
8730
+ "position: fixed; top: -4000px; left: -3000px; z-index: -300;"
8731
+ );
8732
+ document.body.appendChild(obj);
8733
+ }
8734
+ }
8735
+ if (Taro.getEnv() == "WEAPP") {
8736
+ Taro.chooseMedia({
8737
+ count: multiple ? maximum * 1 - fileList.length : 1,
8738
+ mediaType,
8739
+ sourceType,
8740
+ maxDuration,
8741
+ sizeType: [],
8742
+ camera,
8743
+ fail: (res) => {
8744
+ onFailure && onFailure(res);
8745
+ },
8746
+ success: onChangeMedia
8747
+ });
8748
+ } else {
8749
+ Taro.chooseImage({
8750
+ count: multiple ? maximum * 1 - fileList.length : 1,
8751
+ sizeType,
8752
+ sourceType,
8753
+ success: onChangeImage,
8754
+ fail: (res) => {
8755
+ onFailure && onFailure(res);
8756
+ }
8757
+ });
8758
+ }
8660
8759
  };
8661
8760
  const executeUpload = (fileItem, index) => {
8662
8761
  const uploadOption = new UploadOptions();
@@ -8709,7 +8808,8 @@
8709
8808
  });
8710
8809
  onSuccess && onSuccess({
8711
8810
  responseText,
8712
- option
8811
+ option,
8812
+ fileList
8713
8813
  });
8714
8814
  };
8715
8815
  uploadOption.onFailure = (responseText, option) => {
@@ -8724,10 +8824,11 @@
8724
8824
  });
8725
8825
  onFailure && onFailure({
8726
8826
  responseText,
8727
- option
8827
+ option,
8828
+ fileList
8728
8829
  });
8729
8830
  };
8730
- const task = new Upload(uploadOption);
8831
+ const task = new UploaderTaro(uploadOption);
8731
8832
  if (props.autoUpload) {
8732
8833
  task.uploadTaro(Taro.uploadFile, Taro.getEnv());
8733
8834
  } else {
@@ -8740,20 +8841,28 @@
8740
8841
  }
8741
8842
  };
8742
8843
  const readFile = (files) => {
8743
- const imgReg = /\.(png|jpeg|jpg|webp|gif)$/i;
8744
8844
  files.forEach((file, index) => {
8745
8845
  var _a, _b;
8746
- console.log("file", file);
8747
8846
  let fileType = file.type;
8847
+ let filepath = file.tempFilePath || file.path;
8748
8848
  const fileItem = new FileItem();
8749
- if (!fileType && imgReg.test(file.path)) {
8750
- fileType = "image";
8849
+ if (file.fileType) {
8850
+ fileType = file.fileType;
8851
+ } else {
8852
+ const imgReg = /\.(png|jpeg|jpg|webp|gif)$/i;
8853
+ if (!fileType && (imgReg.test(filepath) || filepath.includes("data:image"))) {
8854
+ fileType = "image";
8855
+ }
8751
8856
  }
8752
- fileItem.path = file.path;
8753
- fileItem.name = file.path;
8857
+ fileItem.path = filepath;
8858
+ fileItem.name = filepath;
8754
8859
  fileItem.status = "ready";
8755
- fileItem.message = locale.uploader.readyUpload;
8756
8860
  fileItem.type = fileType;
8861
+ if (autoUpload) {
8862
+ fileItem.message = locale.uploader.readyUpload;
8863
+ } else {
8864
+ fileItem.message = locale.uploader.waitingUpload;
8865
+ }
8757
8866
  if (Taro.getEnv() === "WEB") {
8758
8867
  const formData = new FormData();
8759
8868
  for (const [key, value] of Object.entries(data)) {
@@ -8767,7 +8876,7 @@
8767
8876
  fileItem.formData = data;
8768
8877
  }
8769
8878
  if (isPreview) {
8770
- fileItem.url = file.path;
8879
+ fileItem.url = fileType == "video" ? file.thumbTempFilePath : filepath;
8771
8880
  }
8772
8881
  fileList.push(fileItem);
8773
8882
  setFileList([...fileList]);
@@ -8794,27 +8903,28 @@
8794
8903
  }
8795
8904
  return filterFile;
8796
8905
  };
8906
+ const deleted = (file, index) => {
8907
+ fileList.splice(index, 1);
8908
+ onRemove && onRemove(file, fileList);
8909
+ setFileList([...fileList]);
8910
+ };
8797
8911
  const onDelete = (file, index) => {
8798
8912
  clearUploadQueue(index);
8799
- if (onBeforeDelete && onBeforeDelete(file, fileList)) {
8800
- fileList.splice(index, 1);
8801
- onRemove && onRemove(file, fileList);
8802
- setFileList([...fileList]);
8803
- } else {
8804
- console.log(locale.uploader.deleteWord);
8805
- }
8913
+ funcInterceptor(onBeforeDelete, {
8914
+ args: [file, fileList],
8915
+ done: () => deleted(file, index)
8916
+ });
8806
8917
  };
8807
- const onChangeFn = (res) => {
8918
+ const onChangeMedia = (res) => {
8808
8919
  const { tempFiles } = res;
8809
- if (onBeforeUpload) {
8810
- onBeforeUpload(tempFiles).then((f) => {
8811
- const _files = filterFiles(f);
8812
- readFile(_files);
8813
- });
8814
- } else {
8815
- const _files = filterFiles(tempFiles);
8816
- readFile(_files);
8817
- }
8920
+ const _files = filterFiles(tempFiles);
8921
+ readFile(_files);
8922
+ onChange && onChange({ fileList });
8923
+ };
8924
+ const onChangeImage = (res) => {
8925
+ const { tempFiles } = res;
8926
+ const _files = filterFiles(tempFiles);
8927
+ readFile(_files);
8818
8928
  onChange && onChange({ fileList });
8819
8929
  };
8820
8930
  const handleItemClick = (file) => {
@@ -8834,35 +8944,35 @@
8834
8944
  key: item.uid
8835
8945
  }, listType === "picture" && !children && /* @__PURE__ */ React__default["default"].createElement("div", {
8836
8946
  className: "nut-uploader__preview-img"
8837
- }, item.status === "ready" ? /* @__PURE__ */ React__default["default"].createElement("div", {
8947
+ }, isDeletable && /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8948
+ classPrefix: iconClassPrefix,
8949
+ fontClassName: iconFontClassName,
8950
+ color: "rgba(0,0,0,0.6)",
8951
+ className: "close",
8952
+ name: "failure",
8953
+ onClick: () => onDelete(item, index)
8954
+ }), item.status === "ready" ? /* @__PURE__ */ React__default["default"].createElement("div", {
8838
8955
  className: "nut-uploader__preview__progress"
8839
8956
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
8840
8957
  className: "nut-uploader__preview__progress__msg"
8841
8958
  }, item.message)) : item.status !== "success" && /* @__PURE__ */ React__default["default"].createElement("div", {
8842
8959
  className: "nut-uploader__preview__progress"
8843
- }, /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8844
- classPrefix: props.iconClassPrefix,
8845
- fontClassName: props.iconFontClassName,
8960
+ }, item.failIcon === " " || item.loadingIcon === " " ? null : /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8961
+ classPrefix: iconClassPrefix,
8962
+ fontClassName: iconFontClassName,
8846
8963
  color: "#fff",
8847
- name: `${item.status === "error" ? "failure" : "loading"}`
8964
+ name: `${item.status === "error" ? `${item.failIcon || "failure"}` : `${item.loadingIcon || "loading"}`}`
8848
8965
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
8849
8966
  className: "nut-uploader__preview__progress__msg"
8850
- }, item.message)), isDeletable && /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8851
- classPrefix: props.iconClassPrefix,
8852
- fontClassName: props.iconFontClassName,
8853
- color: "rgba(0,0,0,0.6)",
8854
- className: "close",
8855
- name: "failure",
8856
- onClick: () => onDelete(item, index)
8857
- }), item.type.includes("image") ? /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, item.url && /* @__PURE__ */ React__default["default"].createElement("img", {
8967
+ }, item.message)), item.type.includes("image") ? /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, item.url && /* @__PURE__ */ React__default["default"].createElement(index_cjs.Image, {
8858
8968
  className: "nut-uploader__preview-img__c",
8969
+ mode: "aspectFit",
8859
8970
  src: item.url,
8860
- alt: "",
8861
8971
  onClick: () => handleItemClick(item)
8862
- })) : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, defaultImg ? /* @__PURE__ */ React__default["default"].createElement("img", {
8972
+ })) : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, defaultImg ? /* @__PURE__ */ React__default["default"].createElement(index_cjs.Image, {
8863
8973
  className: "nut-uploader__preview-img__c",
8974
+ mode: "aspectFit",
8864
8975
  src: defaultImg,
8865
- alt: "",
8866
8976
  onClick: () => handleItemClick(item)
8867
8977
  }) : /* @__PURE__ */ React__default["default"].createElement("div", {
8868
8978
  className: "nut-uploader__preview-img__file"
@@ -8870,24 +8980,24 @@
8870
8980
  onClick: () => handleItemClick(item),
8871
8981
  className: "nut-uploader__preview-img__file__name"
8872
8982
  }, /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8873
- classPrefix: props.iconClassPrefix,
8874
- fontClassName: props.iconFontClassName,
8983
+ classPrefix: iconClassPrefix,
8984
+ fontClassName: iconFontClassName,
8875
8985
  color: "#808080",
8876
8986
  name: "link"
8877
- }), "\xA0", item.name))), /* @__PURE__ */ React__default["default"].createElement("div", {
8987
+ }), "\xA0", item.name))), item.status === "success" ? /* @__PURE__ */ React__default["default"].createElement("div", {
8878
8988
  className: "tips"
8879
- }, item.name)), listType === "list" && /* @__PURE__ */ React__default["default"].createElement("div", {
8989
+ }, item.name) : null), listType === "list" && /* @__PURE__ */ React__default["default"].createElement("div", {
8880
8990
  className: "nut-uploader__preview-list"
8881
8991
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
8882
8992
  className: `nut-uploader__preview-img__file__name ${item.status}`,
8883
8993
  onClick: () => handleItemClick(item)
8884
8994
  }, /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8885
- classPrefix: props.iconClassPrefix,
8886
- fontClassName: props.iconFontClassName,
8995
+ classPrefix: iconClassPrefix,
8996
+ fontClassName: iconFontClassName,
8887
8997
  name: "link"
8888
8998
  }), "\xA0", item.name), isDeletable && /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8889
- classPrefix: props.iconClassPrefix,
8890
- fontClassName: props.iconFontClassName,
8999
+ classPrefix: iconClassPrefix,
9000
+ fontClassName: iconFontClassName,
8891
9001
  color: "#808080",
8892
9002
  className: "nut-uploader__preview-img__file__del",
8893
9003
  name: "del",
@@ -8899,14 +9009,18 @@
8899
9009
  showText: false
8900
9010
  })));
8901
9011
  }), maximum > fileList.length && listType === "picture" && !children && /* @__PURE__ */ React__default["default"].createElement("div", {
8902
- className: `nut-uploader__upload ${listType}`
9012
+ className: `nut-uploader__upload ${listType} ${disabled ? "nut-uploader__upload-disabled" : ""}`
9013
+ }, /* @__PURE__ */ React__default["default"].createElement("div", {
9014
+ className: "nut-uploader__icon"
8903
9015
  }, /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
8904
- classPrefix: props.iconClassPrefix,
8905
- fontClassName: props.iconFontClassName,
9016
+ classPrefix: iconClassPrefix,
9017
+ fontClassName: iconFontClassName,
8906
9018
  size: uploadIconSize,
8907
9019
  color: "#808080",
8908
9020
  name: uploadIcon
8909
- }), /* @__PURE__ */ React__default["default"].createElement(Button, {
9021
+ }), /* @__PURE__ */ React__default["default"].createElement("span", {
9022
+ className: "nut-uploader__icon-tip"
9023
+ }, uploadIconTip)), /* @__PURE__ */ React__default["default"].createElement(Button, {
8910
9024
  className: "nut-uploader__input",
8911
9025
  onClick: _chooseImage
8912
9026
  })));
@@ -14462,7 +14576,7 @@
14462
14576
  }, []);
14463
14577
  return /* @__PURE__ */ React__default["default"].createElement("div", {
14464
14578
  ref: root2,
14465
- className: `${swipeBem()} ${className}`,
14579
+ className: classNames(swipeBem(), className),
14466
14580
  onTouchStart: (e2) => onTouchStart(e2),
14467
14581
  onTouchMove: (e2) => onTouchMove(e2),
14468
14582
  onTouchEnd: (e2) => onTouchEnd(e2),
@@ -14690,7 +14804,7 @@
14690
14804
  AnimatingNumbers.defaultProps = defaultProps$y;
14691
14805
  AnimatingNumbers.displayName = "NutAnimatingNumbers";
14692
14806
  AnimatingNumbers.CountUp = CountUp;
14693
- const b = cn("audio");
14807
+ const b$1 = cn("audio");
14694
14808
  const warn = console.warn;
14695
14809
  const defaultProps$x = {
14696
14810
  ...ComponentDefaults,
@@ -14825,9 +14939,9 @@
14825
14939
  };
14826
14940
  const renderIcon = () => {
14827
14941
  return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
14828
- className: b("icon")
14942
+ className: b$1("icon")
14829
14943
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
14830
- className: `${b("icon-box")} ${playing ? b("icon-play") : b("icon-stop")}`,
14944
+ className: `${b$1("icon-box")} ${playing ? b$1("icon-play") : b$1("icon-stop")}`,
14831
14945
  onClick: handleStatusChange
14832
14946
  }, playing ? /* @__PURE__ */ React__default["default"].createElement(Icon$1, {
14833
14947
  classPrefix: iconClassPrefix,
@@ -14842,11 +14956,11 @@
14842
14956
  };
14843
14957
  const renderProgerss = () => {
14844
14958
  return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
14845
- className: b("progress")
14959
+ className: b$1("progress")
14846
14960
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
14847
14961
  className: "time"
14848
14962
  }, currentDuration), /* @__PURE__ */ React__default["default"].createElement("div", {
14849
- className: b("progress-bar-wrapper")
14963
+ className: b$1("progress-bar-wrapper")
14850
14964
  }, /* @__PURE__ */ React__default["default"].createElement(Range, {
14851
14965
  modelValue: percent,
14852
14966
  hiddenTag: true,
@@ -14875,7 +14989,7 @@
14875
14989
  };
14876
14990
  const renderNone = () => {
14877
14991
  return /* @__PURE__ */ React__default["default"].createElement("div", {
14878
- className: b("none-container"),
14992
+ className: b$1("none-container"),
14879
14993
  onClick: handleStatusChange
14880
14994
  }, children);
14881
14995
  };
@@ -14892,7 +15006,7 @@
14892
15006
  }
14893
15007
  };
14894
15008
  return /* @__PURE__ */ React__default["default"].createElement("div", {
14895
- className: `${b()} ${className}`,
15009
+ className: `${b$1()} ${className}`,
14896
15010
  style,
14897
15011
  ...rest
14898
15012
  }, renderAudio());
@@ -15015,19 +15129,6 @@
15015
15129
  };
15016
15130
  Avatar.defaultProps = defaultProps$w;
15017
15131
  Avatar.displayName = "NutAvatar";
15018
- const defaultConfigRef = {
15019
- current: {
15020
- locale: zhCN
15021
- }
15022
- };
15023
- const getDefaultConfig = () => {
15024
- return defaultConfigRef.current;
15025
- };
15026
- const ConfigContext = React.createContext(null);
15027
- const useConfig = () => {
15028
- var _a;
15029
- return (_a = React.useContext(ConfigContext)) != null ? _a : getDefaultConfig();
15030
- };
15031
15132
  const defaultProps$v = {
15032
15133
  maxContent: "",
15033
15134
  maxCount: "",
@@ -15059,6 +15160,7 @@
15059
15160
  };
15060
15161
  AvatarGroup.defaultProps = defaultProps$v;
15061
15162
  AvatarGroup.displayName = "NutAvatarGroup";
15163
+ const b = cn("badge");
15062
15164
  const defaultProps$u = {
15063
15165
  ...ComponentDefaults,
15064
15166
  className: "",
@@ -15107,7 +15209,7 @@
15107
15209
  return style2;
15108
15210
  };
15109
15211
  return /* @__PURE__ */ React__default["default"].createElement("div", {
15110
- className: `nut-badge ${className}`,
15212
+ className: classNames(b(), className),
15111
15213
  style
15112
15214
  }, icons !== "" && /* @__PURE__ */ React__default["default"].createElement("div", {
15113
15215
  className: "slot-icons"
@@ -15119,13 +15221,12 @@
15119
15221
  color: "#ffffff",
15120
15222
  size: "12"
15121
15223
  })), /* @__PURE__ */ React__default["default"].createElement("div", null, children), /* @__PURE__ */ React__default["default"].createElement("div", {
15122
- className: `${dot ? "is-dot" : ""} nut-badge__content sup`,
15224
+ className: classNames({ "is-dot": dot }, b("content"), "sup"),
15123
15225
  style: getStyle()
15124
15226
  }, content()));
15125
15227
  };
15126
15228
  Badge.defaultProps = defaultProps$u;
15127
15229
  Badge.displayName = "NutBadge";
15128
- const isObject = (val) => val !== null && typeof val === "object";
15129
15230
  const defaultProps$t = {
15130
15231
  strokeWidth: 5,
15131
15232
  radius: 50,
@@ -15318,7 +15419,7 @@
15318
15419
  onChange && onChange(!isOpen, name);
15319
15420
  };
15320
15421
  return /* @__PURE__ */ React__default["default"].createElement("div", {
15321
- className: `${colBem()} ${className}`,
15422
+ className: classNames(colBem(), className),
15322
15423
  style
15323
15424
  }, childrenDom.map((item) => {
15324
15425
  return React__default["default"].cloneElement(item, {
@@ -19053,7 +19154,7 @@
19053
19154
  };
19054
19155
  const b2 = cn("card");
19055
19156
  return /* @__PURE__ */ React__default["default"].createElement("div", {
19056
- className: `${b2()} ${className}`,
19157
+ className: classNames(b2(), className),
19057
19158
  style,
19058
19159
  ...rest
19059
19160
  }, /* @__PURE__ */ React__default["default"].createElement("div", {