@nutui/nutui-react-taro 2.0.19-beta.0 → 2.0.19

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 (34) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/Menu.js +2 -2
  3. package/dist/esm/MenuItem.js +1 -1
  4. package/dist/esm/Swiper.js +7 -1
  5. package/dist/esm/Uploader.js +5 -3
  6. package/dist/esm/{menu.taro-f419b9ef.js → menu.taro-cf8d7d5b.js} +1 -1
  7. package/dist/esm/{menuitem.taro-d598a86e.js → menuitem.taro-b73e5ed3.js} +2 -0
  8. package/dist/esm/nutui-react.es.js +3 -3
  9. package/dist/esm/types/src/packages/uploader/demo.taro.d.ts +0 -15
  10. package/dist/esm/types/src/packages/uploader/file-item.d.ts +19 -0
  11. package/dist/esm/types/src/packages/uploader/index.d.ts +2 -1
  12. package/dist/esm/types/src/packages/uploader/index.taro.d.ts +2 -1
  13. package/dist/esm/types/src/packages/uploader/preview.d.ts +2 -0
  14. package/dist/esm/types/src/packages/uploader/preview.taro.d.ts +2 -0
  15. package/dist/esm/types/src/packages/uploader/upload.d.ts +3 -0
  16. package/dist/esm/types/src/packages/uploader/uploader.d.ts +5 -23
  17. package/dist/esm/types/src/packages/uploader/uploader.taro.d.ts +10 -26
  18. package/dist/esm/{uploader.taro-56b2ca0d.js → uploader.taro-da0414ba.js} +148 -134
  19. package/dist/locales/base.js +1 -1
  20. package/dist/locales/en-US.js +1 -1
  21. package/dist/locales/id-ID.js +1 -1
  22. package/dist/locales/tr-TR.js +1 -1
  23. package/dist/locales/zh-CN.js +1 -1
  24. package/dist/locales/zh-TW.js +1 -1
  25. package/dist/locales/zh-UG.js +1 -1
  26. package/dist/nutui.react.es.js +247 -209
  27. package/dist/nutui.react.umd.js +247 -209
  28. package/dist/style.mjs +1 -1
  29. package/dist/types/packages/uploader/file-item.d.ts +19 -0
  30. package/dist/types/packages/uploader/index.taro.d.ts +2 -1
  31. package/dist/types/packages/uploader/preview.taro.d.ts +2 -0
  32. package/dist/types/packages/uploader/upload.d.ts +3 -0
  33. package/dist/types/packages/uploader/uploader.taro.d.ts +10 -26
  34. package/package.json +1 -1
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  /*!
8
- * @nutui/nutui-react-taro v2.0.19-beta.0 Mon Sep 25 2023 18:03:38 GMT+0800 (China Standard Time)
8
+ * @nutui/nutui-react-taro v2.0.19 Wed Sep 27 2023 18:15:02 GMT+0800 (China Standard Time)
9
9
  * (c) 2023 @jdf2e.
10
10
  * Released under the MIT License.
11
11
  */
@@ -11794,6 +11794,8 @@ const MenuItem = forwardRef((props, ref) => {
11794
11794
  }, [showPopup]);
11795
11795
  const windowHeight = useMemo$1(() => getSystemInfoSync().windowHeight, []);
11796
11796
  const updateItemOffset = useCallback(() => {
11797
+ if (!parent.lockScroll)
11798
+ return;
11797
11799
  const p = parent.menuRef.current;
11798
11800
  p.getBoundingClientRect().then((rect) => {
11799
11801
  if (rect) {
@@ -13441,80 +13443,6 @@ const TextArea = (props) => {
13441
13443
  };
13442
13444
  TextArea.defaultProps = defaultProps$J;
13443
13445
  TextArea.displayName = "NutTextArea";
13444
- const defaultProps$I = {
13445
- ...ComponentDefaults,
13446
- percent: 0,
13447
- showText: false,
13448
- animated: false,
13449
- delay: 0
13450
- };
13451
- const Progress = (props) => {
13452
- const {
13453
- className,
13454
- style,
13455
- percent,
13456
- background,
13457
- color,
13458
- strokeWidth,
13459
- showText,
13460
- animated,
13461
- children,
13462
- delay,
13463
- ...rest
13464
- } = {
13465
- ...defaultProps$I,
13466
- ...props
13467
- };
13468
- const classPrefix2 = "nut-progress";
13469
- const classesInner = classNames({
13470
- [`${classPrefix2}-inner`]: true,
13471
- [`${classPrefix2}-active`]: animated
13472
- });
13473
- const stylesOuter = {
13474
- height: `${strokeWidth}px`,
13475
- background
13476
- };
13477
- const [displayPercent, setDispalyPercent] = useState(0);
13478
- const stylesInner = {
13479
- width: `${displayPercent}%`,
13480
- background: color
13481
- };
13482
- useEffect(() => {
13483
- setDispalyPercent(percent);
13484
- }, [percent]);
13485
- useEffect(() => {
13486
- let timer = null;
13487
- if (delay) {
13488
- setDispalyPercent(0);
13489
- timer = setTimeout(() => {
13490
- setDispalyPercent(percent);
13491
- }, delay);
13492
- }
13493
- return () => {
13494
- timer && clearTimeout(timer);
13495
- };
13496
- }, []);
13497
- return /* @__PURE__ */ React__default.createElement("div", { className: classNames(classPrefix2, className), style, ...rest }, /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-outer`, style: stylesOuter }, /* @__PURE__ */ React__default.createElement("div", { className: classesInner, style: stylesInner }, showText && /* @__PURE__ */ React__default.createElement(
13498
- "div",
13499
- {
13500
- className: `${classPrefix2}-text`,
13501
- style: { left: `${displayPercent}%` }
13502
- },
13503
- children || /* @__PURE__ */ React__default.createElement(
13504
- "div",
13505
- {
13506
- className: `${classPrefix2}-text__inner`,
13507
- style: {
13508
- background: color
13509
- }
13510
- },
13511
- percent,
13512
- "%"
13513
- )
13514
- ))));
13515
- };
13516
- Progress.defaultProps = defaultProps$I;
13517
- Progress.displayName = "NutProgress";
13518
13446
  class UploadOptions {
13519
13447
  constructor() {
13520
13448
  __publicField(this, "url", "");
@@ -13535,6 +13463,9 @@ class UploadOptions {
13535
13463
  __publicField(this, "beforeXhrUpload");
13536
13464
  }
13537
13465
  }
13466
+ const UPLOADING = "uploading";
13467
+ const SUCCESS = "success";
13468
+ const ERROR = "error";
13538
13469
  class Upload {
13539
13470
  constructor(options) {
13540
13471
  __publicField(this, "options");
@@ -13656,6 +13587,179 @@ const funcInterceptor = (interceptor, {
13656
13587
  done();
13657
13588
  }
13658
13589
  };
13590
+ class FileItem {
13591
+ constructor() {
13592
+ __publicField(this, "status", "ready");
13593
+ __publicField(this, "message", "准备中..");
13594
+ __publicField(this, "uid", (/* @__PURE__ */ new Date()).getTime().toString());
13595
+ __publicField(this, "name");
13596
+ __publicField(this, "url");
13597
+ __publicField(this, "type");
13598
+ __publicField(this, "path");
13599
+ __publicField(this, "percentage", 0);
13600
+ __publicField(this, "formData", {});
13601
+ __publicField(this, "responseText");
13602
+ __publicField(this, "loadingIcon");
13603
+ __publicField(this, "failIcon");
13604
+ }
13605
+ }
13606
+ const defaultProps$I = {
13607
+ ...ComponentDefaults,
13608
+ percent: 0,
13609
+ showText: false,
13610
+ animated: false,
13611
+ delay: 0
13612
+ };
13613
+ const Progress = (props) => {
13614
+ const {
13615
+ className,
13616
+ style,
13617
+ percent,
13618
+ background,
13619
+ color,
13620
+ strokeWidth,
13621
+ showText,
13622
+ animated,
13623
+ children,
13624
+ delay,
13625
+ ...rest
13626
+ } = {
13627
+ ...defaultProps$I,
13628
+ ...props
13629
+ };
13630
+ const classPrefix2 = "nut-progress";
13631
+ const classesInner = classNames({
13632
+ [`${classPrefix2}-inner`]: true,
13633
+ [`${classPrefix2}-active`]: animated
13634
+ });
13635
+ const stylesOuter = {
13636
+ height: `${strokeWidth}px`,
13637
+ background
13638
+ };
13639
+ const [displayPercent, setDispalyPercent] = useState(0);
13640
+ const stylesInner = {
13641
+ width: `${displayPercent}%`,
13642
+ background: color
13643
+ };
13644
+ useEffect(() => {
13645
+ setDispalyPercent(percent);
13646
+ }, [percent]);
13647
+ useEffect(() => {
13648
+ let timer = null;
13649
+ if (delay) {
13650
+ setDispalyPercent(0);
13651
+ timer = setTimeout(() => {
13652
+ setDispalyPercent(percent);
13653
+ }, delay);
13654
+ }
13655
+ return () => {
13656
+ timer && clearTimeout(timer);
13657
+ };
13658
+ }, []);
13659
+ return /* @__PURE__ */ React__default.createElement("div", { className: classNames(classPrefix2, className), style, ...rest }, /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-outer`, style: stylesOuter }, /* @__PURE__ */ React__default.createElement("div", { className: classesInner, style: stylesInner }, showText && /* @__PURE__ */ React__default.createElement(
13660
+ "div",
13661
+ {
13662
+ className: `${classPrefix2}-text`,
13663
+ style: { left: `${displayPercent}%` }
13664
+ },
13665
+ children || /* @__PURE__ */ React__default.createElement(
13666
+ "div",
13667
+ {
13668
+ className: `${classPrefix2}-text__inner`,
13669
+ style: {
13670
+ background: color
13671
+ }
13672
+ },
13673
+ percent,
13674
+ "%"
13675
+ )
13676
+ ))));
13677
+ };
13678
+ Progress.defaultProps = defaultProps$I;
13679
+ Progress.displayName = "NutProgress";
13680
+ const Preview = ({
13681
+ fileList,
13682
+ previewType,
13683
+ deletable,
13684
+ onDeleteItem,
13685
+ handleItemClick,
13686
+ previewUrl,
13687
+ children
13688
+ }) => {
13689
+ const renderIcon = (item) => {
13690
+ if (item.status === ERROR) {
13691
+ return item.failIcon || /* @__PURE__ */ React__default.createElement(a$n, { color: "#fff" });
13692
+ }
13693
+ return item.loadingIcon || /* @__PURE__ */ React__default.createElement(r$h, { className: "nut-icon-loading", color: "#fff" });
13694
+ };
13695
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, fileList.length !== 0 && fileList.map((item, index) => {
13696
+ var _a;
13697
+ return /* @__PURE__ */ React__default.createElement(
13698
+ "div",
13699
+ {
13700
+ className: `nut-uploader__preview ${previewType}`,
13701
+ key: item.uid
13702
+ },
13703
+ previewType === "picture" && deletable && /* @__PURE__ */ React__default.createElement(
13704
+ a$n,
13705
+ {
13706
+ color: "rgba(0,0,0,0.6)",
13707
+ className: "close",
13708
+ onClick: () => onDeleteItem(item, index)
13709
+ }
13710
+ ),
13711
+ previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img" }, item.status === "ready" ? /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress" }, /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)) : item.status !== "success" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress" }, renderIcon(item), /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)), ((_a = item.type) == null ? void 0 : _a.includes("image")) ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, item.url && /* @__PURE__ */ React__default.createElement(
13712
+ Image$2,
13713
+ {
13714
+ className: "nut-uploader__preview-img__c",
13715
+ style: { objectFit: "fill" },
13716
+ mode: "aspectFit",
13717
+ src: item.url,
13718
+ onClick: () => handleItemClick(item)
13719
+ }
13720
+ )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, previewUrl ? /* @__PURE__ */ React__default.createElement(
13721
+ Image$2,
13722
+ {
13723
+ className: "nut-uploader__preview-img__c",
13724
+ mode: "aspectFit",
13725
+ src: previewUrl,
13726
+ onClick: () => handleItemClick(item)
13727
+ }
13728
+ ) : /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React__default.createElement(
13729
+ "div",
13730
+ {
13731
+ onClick: () => handleItemClick(item),
13732
+ className: "nut-uploader__preview-img__file__name"
13733
+ },
13734
+ /* @__PURE__ */ React__default.createElement(a$i, { color: "#808080" }),
13735
+ /* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
13736
+ ))), item.status === "success" ? /* @__PURE__ */ React__default.createElement("div", { className: "tips" }, item.name) : null),
13737
+ previewType === "list" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React__default.createElement(
13738
+ "div",
13739
+ {
13740
+ className: `nut-uploader__preview-img__file__name ${item.status}`,
13741
+ onClick: () => handleItemClick(item)
13742
+ },
13743
+ /* @__PURE__ */ React__default.createElement(a$i, null),
13744
+ /* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
13745
+ ), deletable && /* @__PURE__ */ React__default.createElement(
13746
+ a$p,
13747
+ {
13748
+ color: "#808080",
13749
+ className: "nut-uploader__preview-img__file__del",
13750
+ onClick: () => onDeleteItem(item, index)
13751
+ }
13752
+ ), item.status === "uploading" && /* @__PURE__ */ React__default.createElement(
13753
+ Progress,
13754
+ {
13755
+ percent: item.percentage,
13756
+ color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
13757
+ showText: false
13758
+ }
13759
+ ))
13760
+ );
13761
+ }));
13762
+ };
13659
13763
  const defaultProps$H = {
13660
13764
  ...ComponentDefaults,
13661
13765
  url: "",
@@ -13664,7 +13768,7 @@ const defaultProps$H = {
13664
13768
  sourceType: ["album", "camera"],
13665
13769
  mediaType: ["image", "video"],
13666
13770
  camera: "back",
13667
- uploadIcon: null,
13771
+ uploadIcon: /* @__PURE__ */ React__default.createElement(a$a, { size: "20px", color: "#808080" }),
13668
13772
  uploadLabel: "",
13669
13773
  previewType: "picture",
13670
13774
  fit: "cover",
@@ -13687,19 +13791,6 @@ const defaultProps$H = {
13687
13791
  return true;
13688
13792
  }
13689
13793
  };
13690
- class FileItem {
13691
- constructor() {
13692
- __publicField(this, "status", "ready");
13693
- __publicField(this, "message", "准备中..");
13694
- __publicField(this, "uid", Date.now().toString());
13695
- __publicField(this, "name");
13696
- __publicField(this, "url");
13697
- __publicField(this, "type");
13698
- __publicField(this, "path");
13699
- __publicField(this, "percentage", 0);
13700
- __publicField(this, "formData", {});
13701
- }
13702
- }
13703
13794
  const InternalUploader = (props, ref) => {
13704
13795
  const { locale } = useConfig$1();
13705
13796
  const {
@@ -13745,13 +13836,15 @@ const InternalUploader = (props, ref) => {
13745
13836
  beforeDelete,
13746
13837
  ...restProps
13747
13838
  } = { ...defaultProps$H, ...props };
13748
- const [fileList, setFileList] = useState(defaultValue || []);
13749
- const [uploadQueue, setUploadQueue] = useState([]);
13750
- useEffect(() => {
13751
- if (value) {
13752
- setFileList(value);
13839
+ const [fileList, setFileList] = usePropsValue({
13840
+ value,
13841
+ defaultValue,
13842
+ finalValue: [],
13843
+ onChange: (v) => {
13844
+ onChange == null ? void 0 : onChange(v);
13753
13845
  }
13754
- }, [value]);
13846
+ });
13847
+ const [uploadQueue, setUploadQueue] = useState([]);
13755
13848
  const classes = classNames(className, "nut-uploader");
13756
13849
  useImperativeHandle(ref, () => ({
13757
13850
  submit: () => {
@@ -13842,63 +13935,60 @@ const InternalUploader = (props, ref) => {
13842
13935
  uploadOption.beforeXhrUpload = beforeXhrUpload;
13843
13936
  uploadOption.onStart = (option) => {
13844
13937
  clearUploadQueue(index);
13845
- setFileList((fileList2) => {
13846
- fileList2.forEach((item) => {
13938
+ setFileList(
13939
+ fileList.map((item) => {
13847
13940
  if (item.uid === fileItem.uid) {
13848
13941
  item.status = "ready";
13849
13942
  item.message = locale.uploader.readyUpload;
13850
13943
  }
13851
- });
13852
- return [...fileList2];
13853
- });
13944
+ return item;
13945
+ })
13946
+ );
13854
13947
  onStart && onStart(option);
13855
13948
  };
13856
13949
  uploadOption.onProgress = (e, option) => {
13857
- setFileList((fileList2) => {
13858
- fileList2.forEach((item) => {
13950
+ setFileList(
13951
+ fileList.map((item) => {
13859
13952
  if (item.uid === fileItem.uid) {
13860
- item.status = "uploading";
13953
+ item.status = UPLOADING;
13861
13954
  item.message = locale.uploader.uploading;
13862
13955
  item.percentage = e.progress;
13863
13956
  onProgress && onProgress({ e, option, percentage: item.percentage });
13864
13957
  }
13865
- });
13866
- return [...fileList2];
13867
- });
13958
+ return item;
13959
+ })
13960
+ );
13868
13961
  };
13869
13962
  uploadOption.onSuccess = (responseText, option) => {
13870
- setFileList((fileList2) => {
13871
- onUpdate && onUpdate(fileList2);
13872
- fileList2.forEach((item) => {
13873
- if (item.uid === fileItem.uid) {
13874
- item.status = "success";
13875
- item.message = locale.uploader.success;
13876
- item.responseText = responseText;
13877
- }
13878
- });
13879
- return [...fileList2];
13963
+ const list = fileList.map((item) => {
13964
+ if (item.uid === fileItem.uid) {
13965
+ item.status = SUCCESS;
13966
+ item.message = locale.uploader.success;
13967
+ item.responseText = responseText;
13968
+ }
13969
+ return item;
13880
13970
  });
13881
- onSuccess && onSuccess({
13971
+ setFileList(list);
13972
+ onSuccess == null ? void 0 : onSuccess({
13882
13973
  responseText,
13883
13974
  option,
13884
- fileList
13975
+ fileList: list
13885
13976
  });
13886
13977
  };
13887
13978
  uploadOption.onFailure = (responseText, option) => {
13888
- setFileList((fileList2) => {
13889
- fileList2.forEach((item) => {
13890
- if (item.uid === fileItem.uid) {
13891
- item.status = "error";
13892
- item.message = locale.uploader.error;
13893
- item.responseText = responseText;
13894
- }
13895
- });
13896
- return [...fileList2];
13979
+ const list = fileList.map((item) => {
13980
+ if (item.uid === fileItem.uid) {
13981
+ item.status = ERROR;
13982
+ item.message = locale.uploader.error;
13983
+ item.responseText = responseText;
13984
+ }
13985
+ return item;
13897
13986
  });
13898
- onFailure && onFailure({
13987
+ setFileList(list);
13988
+ onFailure == null ? void 0 : onFailure({
13899
13989
  responseText,
13900
13990
  option,
13901
- fileList
13991
+ fileList: list
13902
13992
  });
13903
13993
  };
13904
13994
  const task = new UploaderTaro(uploadOption);
@@ -13932,11 +14022,7 @@ const InternalUploader = (props, ref) => {
13932
14022
  fileItem.status = "ready";
13933
14023
  fileItem.type = fileType;
13934
14024
  fileItem.uid = `${fileItem.uid}_${index}`;
13935
- if (autoUpload) {
13936
- fileItem.message = locale.uploader.readyUpload;
13937
- } else {
13938
- fileItem.message = locale.uploader.waitingUpload;
13939
- }
14025
+ fileItem.message = autoUpload ? locale.uploader.readyUpload : locale.uploader.waitingUpload;
13940
14026
  if (getEnv() === "WEB") {
13941
14027
  const formData = new FormData();
13942
14028
  for (const [key, value2] of Object.entries(data)) {
@@ -13953,7 +14039,7 @@ const InternalUploader = (props, ref) => {
13953
14039
  fileItem.url = fileType === "video" ? file.thumbTempFilePath : filepath;
13954
14040
  }
13955
14041
  fileList.push(fileItem);
13956
- setFileList([...fileList]);
14042
+ setFileList(fileList);
13957
14043
  executeUpload(fileItem, index);
13958
14044
  });
13959
14045
  };
@@ -13978,9 +14064,9 @@ const InternalUploader = (props, ref) => {
13978
14064
  return filterFile;
13979
14065
  };
13980
14066
  const deleted = (file, index) => {
13981
- fileList.splice(index, 1);
13982
- onDelete && onDelete(file, fileList);
13983
- setFileList([...fileList]);
14067
+ const deletedFileList = fileList.filter((file2, idx) => idx !== index);
14068
+ onDelete == null ? void 0 : onDelete(file, deletedFileList);
14069
+ setFileList(deletedFileList);
13984
14070
  };
13985
14071
  const onDeleteItem = (file, index) => {
13986
14072
  clearUploadQueue(index);
@@ -13993,88 +14079,34 @@ const InternalUploader = (props, ref) => {
13993
14079
  const { tempFiles } = res;
13994
14080
  const _files = filterFiles(tempFiles);
13995
14081
  readFile(_files);
13996
- onChange && onChange({ fileList });
13997
14082
  };
13998
14083
  const onChangeImage = (res) => {
13999
14084
  const { tempFiles } = res;
14000
14085
  const _files = filterFiles(tempFiles);
14001
14086
  readFile(_files);
14002
- onChange && onChange({ fileList });
14003
14087
  };
14004
14088
  const handleItemClick = (file) => {
14005
- onFileItemClick && onFileItemClick(file);
14089
+ onFileItemClick == null ? void 0 : onFileItemClick(file);
14006
14090
  };
14007
- return /* @__PURE__ */ React__default.createElement("div", { className: classes, ...restProps }, (children || previewType === "list") && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__slot" }, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children || /* @__PURE__ */ React__default.createElement(Button, { size: "small", type: "primary" }, "上传文件"), maxCount > fileList.length && /* @__PURE__ */ React__default.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage }))), fileList.length !== 0 && Array.isArray(fileList) && fileList.map((item, index) => {
14008
- return /* @__PURE__ */ React__default.createElement(
14009
- "div",
14010
- {
14011
- className: `nut-uploader__preview ${previewType}`,
14012
- key: item.uid
14013
- },
14014
- previewType === "picture" && deletable && /* @__PURE__ */ React__default.createElement(
14015
- a$n,
14016
- {
14017
- color: "rgba(0,0,0,0.6)",
14018
- className: "close",
14019
- onClick: () => onDeleteItem(item, index)
14020
- }
14021
- ),
14022
- previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img" }, item.status === "ready" ? /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress" }, /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)) : item.status !== "success" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress" }, item.failIcon !== " " && item.loadingIcon !== " " && (item.status === "error" ? item.failIcon || /* @__PURE__ */ React__default.createElement(a$n, { color: "#fff" }) : item.loadingIcon || /* @__PURE__ */ React__default.createElement(r$h, { color: "#fff" })), /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)), item.type.includes("image") ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, item.url && /* @__PURE__ */ React__default.createElement(
14023
- Image$2,
14024
- {
14025
- className: "nut-uploader__preview-img__c",
14026
- style: { objectFit: fit },
14027
- mode: "aspectFit",
14028
- src: item.url,
14029
- onClick: () => handleItemClick(item)
14030
- }
14031
- )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, previewUrl ? /* @__PURE__ */ React__default.createElement(
14032
- Image$2,
14033
- {
14034
- className: "nut-uploader__preview-img__c",
14035
- mode: "aspectFit",
14036
- src: previewUrl,
14037
- onClick: () => handleItemClick(item)
14038
- }
14039
- ) : /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React__default.createElement(
14040
- "div",
14041
- {
14042
- onClick: () => handleItemClick(item),
14043
- className: "nut-uploader__preview-img__file__name"
14044
- },
14045
- /* @__PURE__ */ React__default.createElement(a$i, { color: "#808080" }),
14046
- /* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
14047
- ))), item.status === "success" ? /* @__PURE__ */ React__default.createElement("div", { className: "tips" }, item.name) : null),
14048
- previewType === "list" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React__default.createElement(
14049
- "div",
14050
- {
14051
- className: `nut-uploader__preview-img__file__name ${item.status}`,
14052
- onClick: () => handleItemClick(item)
14053
- },
14054
- /* @__PURE__ */ React__default.createElement(a$i, null),
14055
- /* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
14056
- ), deletable && /* @__PURE__ */ React__default.createElement(
14057
- a$p,
14058
- {
14059
- color: "#808080",
14060
- className: "nut-uploader__preview-img__file__del",
14061
- onClick: () => onDeleteItem(item, index)
14062
- }
14063
- ), item.status === "uploading" && /* @__PURE__ */ React__default.createElement(
14064
- Progress,
14065
- {
14066
- percent: item.percentage,
14067
- color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
14068
- showText: false
14069
- }
14070
- ))
14071
- );
14072
- }), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement(
14091
+ return /* @__PURE__ */ React__default.createElement("div", { className: classes, ...restProps }, (children || previewType === "list") && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__slot" }, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children || /* @__PURE__ */ React__default.createElement(Button, { size: "small", type: "primary" }, "上传文件"), maxCount > fileList.length && /* @__PURE__ */ React__default.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage }))), /* @__PURE__ */ React__default.createElement(
14092
+ Preview,
14093
+ {
14094
+ ...{
14095
+ fileList,
14096
+ previewType,
14097
+ deletable,
14098
+ onDeleteItem,
14099
+ handleItemClick,
14100
+ previewUrl,
14101
+ children
14102
+ }
14103
+ }
14104
+ ), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement(
14073
14105
  "div",
14074
14106
  {
14075
14107
  className: `nut-uploader__upload ${previewType} ${disabled ? "nut-uploader__upload-disabled" : ""}`
14076
14108
  },
14077
- /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon || /* @__PURE__ */ React__default.createElement(a$a, { size: "20px", color: "#808080" }), /* @__PURE__ */ React__default.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
14109
+ /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon, /* @__PURE__ */ React__default.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
14078
14110
  /* @__PURE__ */ React__default.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage })
14079
14111
  ));
14080
14112
  };
@@ -17585,7 +17617,13 @@ const Swiper = forwardRef((props, ref) => {
17585
17617
  },
17586
17618
  ...rest
17587
17619
  },
17588
- Children.toArray(children).map((child, index) => /* @__PURE__ */ React__default.createElement(SwiperItem$1, { key: index }, child))
17620
+ Children.toArray(children).map((child, index) => {
17621
+ let className2;
17622
+ if (React__default.isValidElement(child)) {
17623
+ className2 = child.props.className;
17624
+ }
17625
+ return /* @__PURE__ */ React__default.createElement(SwiperItem$1, { className: className2, key: index }, child);
17626
+ })
17589
17627
  )
17590
17628
  ),
17591
17629
  renderIndicator()