@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.
- package/CHANGELOG.md +14 -0
- package/dist/esm/Menu.js +2 -2
- package/dist/esm/MenuItem.js +1 -1
- package/dist/esm/Swiper.js +7 -1
- package/dist/esm/Uploader.js +5 -3
- package/dist/esm/{menu.taro-f419b9ef.js → menu.taro-cf8d7d5b.js} +1 -1
- package/dist/esm/{menuitem.taro-d598a86e.js → menuitem.taro-b73e5ed3.js} +2 -0
- package/dist/esm/nutui-react.es.js +3 -3
- package/dist/esm/types/src/packages/uploader/demo.taro.d.ts +0 -15
- package/dist/esm/types/src/packages/uploader/file-item.d.ts +19 -0
- package/dist/esm/types/src/packages/uploader/index.d.ts +2 -1
- package/dist/esm/types/src/packages/uploader/index.taro.d.ts +2 -1
- package/dist/esm/types/src/packages/uploader/preview.d.ts +2 -0
- package/dist/esm/types/src/packages/uploader/preview.taro.d.ts +2 -0
- package/dist/esm/types/src/packages/uploader/upload.d.ts +3 -0
- package/dist/esm/types/src/packages/uploader/uploader.d.ts +5 -23
- package/dist/esm/types/src/packages/uploader/uploader.taro.d.ts +10 -26
- package/dist/esm/{uploader.taro-56b2ca0d.js → uploader.taro-da0414ba.js} +148 -134
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/id-ID.js +1 -1
- package/dist/locales/tr-TR.js +1 -1
- package/dist/locales/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/locales/zh-UG.js +1 -1
- package/dist/nutui.react.es.js +247 -209
- package/dist/nutui.react.umd.js +247 -209
- package/dist/style.mjs +1 -1
- package/dist/types/packages/uploader/file-item.d.ts +19 -0
- package/dist/types/packages/uploader/index.taro.d.ts +2 -1
- package/dist/types/packages/uploader/preview.taro.d.ts +2 -0
- package/dist/types/packages/uploader/upload.d.ts +3 -0
- package/dist/types/packages/uploader/uploader.taro.d.ts +10 -26
- package/package.json +1 -1
package/dist/nutui.react.umd.js
CHANGED
|
@@ -8,7 +8,7 @@ var __publicField = (obj, key, value) => {
|
|
|
8
8
|
return value;
|
|
9
9
|
};
|
|
10
10
|
/*!
|
|
11
|
-
* @nutui/nutui-react-taro v2.0.19
|
|
11
|
+
* @nutui/nutui-react-taro v2.0.19 Wed Sep 27 2023 18:15:02 GMT+0800 (China Standard Time)
|
|
12
12
|
* (c) 2023 @jdf2e.
|
|
13
13
|
* Released under the MIT License.
|
|
14
14
|
*/
|
|
@@ -11810,6 +11810,8 @@ var __publicField = (obj, key, value) => {
|
|
|
11810
11810
|
}, [showPopup]);
|
|
11811
11811
|
const windowHeight = React.useMemo(() => Taro.getSystemInfoSync().windowHeight, []);
|
|
11812
11812
|
const updateItemOffset = React.useCallback(() => {
|
|
11813
|
+
if (!parent.lockScroll)
|
|
11814
|
+
return;
|
|
11813
11815
|
const p = parent.menuRef.current;
|
|
11814
11816
|
p.getBoundingClientRect().then((rect) => {
|
|
11815
11817
|
if (rect) {
|
|
@@ -13457,80 +13459,6 @@ var __publicField = (obj, key, value) => {
|
|
|
13457
13459
|
};
|
|
13458
13460
|
TextArea.defaultProps = defaultProps$J;
|
|
13459
13461
|
TextArea.displayName = "NutTextArea";
|
|
13460
|
-
const defaultProps$I = {
|
|
13461
|
-
...ComponentDefaults,
|
|
13462
|
-
percent: 0,
|
|
13463
|
-
showText: false,
|
|
13464
|
-
animated: false,
|
|
13465
|
-
delay: 0
|
|
13466
|
-
};
|
|
13467
|
-
const Progress = (props) => {
|
|
13468
|
-
const {
|
|
13469
|
-
className,
|
|
13470
|
-
style,
|
|
13471
|
-
percent,
|
|
13472
|
-
background,
|
|
13473
|
-
color,
|
|
13474
|
-
strokeWidth,
|
|
13475
|
-
showText,
|
|
13476
|
-
animated,
|
|
13477
|
-
children,
|
|
13478
|
-
delay,
|
|
13479
|
-
...rest
|
|
13480
|
-
} = {
|
|
13481
|
-
...defaultProps$I,
|
|
13482
|
-
...props
|
|
13483
|
-
};
|
|
13484
|
-
const classPrefix2 = "nut-progress";
|
|
13485
|
-
const classesInner = classNames({
|
|
13486
|
-
[`${classPrefix2}-inner`]: true,
|
|
13487
|
-
[`${classPrefix2}-active`]: animated
|
|
13488
|
-
});
|
|
13489
|
-
const stylesOuter = {
|
|
13490
|
-
height: `${strokeWidth}px`,
|
|
13491
|
-
background
|
|
13492
|
-
};
|
|
13493
|
-
const [displayPercent, setDispalyPercent] = React.useState(0);
|
|
13494
|
-
const stylesInner = {
|
|
13495
|
-
width: `${displayPercent}%`,
|
|
13496
|
-
background: color
|
|
13497
|
-
};
|
|
13498
|
-
React.useEffect(() => {
|
|
13499
|
-
setDispalyPercent(percent);
|
|
13500
|
-
}, [percent]);
|
|
13501
|
-
React.useEffect(() => {
|
|
13502
|
-
let timer = null;
|
|
13503
|
-
if (delay) {
|
|
13504
|
-
setDispalyPercent(0);
|
|
13505
|
-
timer = setTimeout(() => {
|
|
13506
|
-
setDispalyPercent(percent);
|
|
13507
|
-
}, delay);
|
|
13508
|
-
}
|
|
13509
|
-
return () => {
|
|
13510
|
-
timer && clearTimeout(timer);
|
|
13511
|
-
};
|
|
13512
|
-
}, []);
|
|
13513
|
-
return /* @__PURE__ */ React.createElement("div", { className: classNames(classPrefix2, className), style, ...rest }, /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-outer`, style: stylesOuter }, /* @__PURE__ */ React.createElement("div", { className: classesInner, style: stylesInner }, showText && /* @__PURE__ */ React.createElement(
|
|
13514
|
-
"div",
|
|
13515
|
-
{
|
|
13516
|
-
className: `${classPrefix2}-text`,
|
|
13517
|
-
style: { left: `${displayPercent}%` }
|
|
13518
|
-
},
|
|
13519
|
-
children || /* @__PURE__ */ React.createElement(
|
|
13520
|
-
"div",
|
|
13521
|
-
{
|
|
13522
|
-
className: `${classPrefix2}-text__inner`,
|
|
13523
|
-
style: {
|
|
13524
|
-
background: color
|
|
13525
|
-
}
|
|
13526
|
-
},
|
|
13527
|
-
percent,
|
|
13528
|
-
"%"
|
|
13529
|
-
)
|
|
13530
|
-
))));
|
|
13531
|
-
};
|
|
13532
|
-
Progress.defaultProps = defaultProps$I;
|
|
13533
|
-
Progress.displayName = "NutProgress";
|
|
13534
13462
|
class UploadOptions {
|
|
13535
13463
|
constructor() {
|
|
13536
13464
|
__publicField(this, "url", "");
|
|
@@ -13551,6 +13479,9 @@ var __publicField = (obj, key, value) => {
|
|
|
13551
13479
|
__publicField(this, "beforeXhrUpload");
|
|
13552
13480
|
}
|
|
13553
13481
|
}
|
|
13482
|
+
const UPLOADING = "uploading";
|
|
13483
|
+
const SUCCESS = "success";
|
|
13484
|
+
const ERROR = "error";
|
|
13554
13485
|
class Upload {
|
|
13555
13486
|
constructor(options) {
|
|
13556
13487
|
__publicField(this, "options");
|
|
@@ -13672,6 +13603,179 @@ var __publicField = (obj, key, value) => {
|
|
|
13672
13603
|
done();
|
|
13673
13604
|
}
|
|
13674
13605
|
};
|
|
13606
|
+
class FileItem {
|
|
13607
|
+
constructor() {
|
|
13608
|
+
__publicField(this, "status", "ready");
|
|
13609
|
+
__publicField(this, "message", "准备中..");
|
|
13610
|
+
__publicField(this, "uid", (/* @__PURE__ */ new Date()).getTime().toString());
|
|
13611
|
+
__publicField(this, "name");
|
|
13612
|
+
__publicField(this, "url");
|
|
13613
|
+
__publicField(this, "type");
|
|
13614
|
+
__publicField(this, "path");
|
|
13615
|
+
__publicField(this, "percentage", 0);
|
|
13616
|
+
__publicField(this, "formData", {});
|
|
13617
|
+
__publicField(this, "responseText");
|
|
13618
|
+
__publicField(this, "loadingIcon");
|
|
13619
|
+
__publicField(this, "failIcon");
|
|
13620
|
+
}
|
|
13621
|
+
}
|
|
13622
|
+
const defaultProps$I = {
|
|
13623
|
+
...ComponentDefaults,
|
|
13624
|
+
percent: 0,
|
|
13625
|
+
showText: false,
|
|
13626
|
+
animated: false,
|
|
13627
|
+
delay: 0
|
|
13628
|
+
};
|
|
13629
|
+
const Progress = (props) => {
|
|
13630
|
+
const {
|
|
13631
|
+
className,
|
|
13632
|
+
style,
|
|
13633
|
+
percent,
|
|
13634
|
+
background,
|
|
13635
|
+
color,
|
|
13636
|
+
strokeWidth,
|
|
13637
|
+
showText,
|
|
13638
|
+
animated,
|
|
13639
|
+
children,
|
|
13640
|
+
delay,
|
|
13641
|
+
...rest
|
|
13642
|
+
} = {
|
|
13643
|
+
...defaultProps$I,
|
|
13644
|
+
...props
|
|
13645
|
+
};
|
|
13646
|
+
const classPrefix2 = "nut-progress";
|
|
13647
|
+
const classesInner = classNames({
|
|
13648
|
+
[`${classPrefix2}-inner`]: true,
|
|
13649
|
+
[`${classPrefix2}-active`]: animated
|
|
13650
|
+
});
|
|
13651
|
+
const stylesOuter = {
|
|
13652
|
+
height: `${strokeWidth}px`,
|
|
13653
|
+
background
|
|
13654
|
+
};
|
|
13655
|
+
const [displayPercent, setDispalyPercent] = React.useState(0);
|
|
13656
|
+
const stylesInner = {
|
|
13657
|
+
width: `${displayPercent}%`,
|
|
13658
|
+
background: color
|
|
13659
|
+
};
|
|
13660
|
+
React.useEffect(() => {
|
|
13661
|
+
setDispalyPercent(percent);
|
|
13662
|
+
}, [percent]);
|
|
13663
|
+
React.useEffect(() => {
|
|
13664
|
+
let timer = null;
|
|
13665
|
+
if (delay) {
|
|
13666
|
+
setDispalyPercent(0);
|
|
13667
|
+
timer = setTimeout(() => {
|
|
13668
|
+
setDispalyPercent(percent);
|
|
13669
|
+
}, delay);
|
|
13670
|
+
}
|
|
13671
|
+
return () => {
|
|
13672
|
+
timer && clearTimeout(timer);
|
|
13673
|
+
};
|
|
13674
|
+
}, []);
|
|
13675
|
+
return /* @__PURE__ */ React.createElement("div", { className: classNames(classPrefix2, className), style, ...rest }, /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-outer`, style: stylesOuter }, /* @__PURE__ */ React.createElement("div", { className: classesInner, style: stylesInner }, showText && /* @__PURE__ */ React.createElement(
|
|
13676
|
+
"div",
|
|
13677
|
+
{
|
|
13678
|
+
className: `${classPrefix2}-text`,
|
|
13679
|
+
style: { left: `${displayPercent}%` }
|
|
13680
|
+
},
|
|
13681
|
+
children || /* @__PURE__ */ React.createElement(
|
|
13682
|
+
"div",
|
|
13683
|
+
{
|
|
13684
|
+
className: `${classPrefix2}-text__inner`,
|
|
13685
|
+
style: {
|
|
13686
|
+
background: color
|
|
13687
|
+
}
|
|
13688
|
+
},
|
|
13689
|
+
percent,
|
|
13690
|
+
"%"
|
|
13691
|
+
)
|
|
13692
|
+
))));
|
|
13693
|
+
};
|
|
13694
|
+
Progress.defaultProps = defaultProps$I;
|
|
13695
|
+
Progress.displayName = "NutProgress";
|
|
13696
|
+
const Preview = ({
|
|
13697
|
+
fileList,
|
|
13698
|
+
previewType,
|
|
13699
|
+
deletable,
|
|
13700
|
+
onDeleteItem,
|
|
13701
|
+
handleItemClick,
|
|
13702
|
+
previewUrl,
|
|
13703
|
+
children
|
|
13704
|
+
}) => {
|
|
13705
|
+
const renderIcon = (item) => {
|
|
13706
|
+
if (item.status === ERROR) {
|
|
13707
|
+
return item.failIcon || /* @__PURE__ */ React.createElement(a$n, { color: "#fff" });
|
|
13708
|
+
}
|
|
13709
|
+
return item.loadingIcon || /* @__PURE__ */ React.createElement(r$h, { className: "nut-icon-loading", color: "#fff" });
|
|
13710
|
+
};
|
|
13711
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, fileList.length !== 0 && fileList.map((item, index) => {
|
|
13712
|
+
var _a;
|
|
13713
|
+
return /* @__PURE__ */ React.createElement(
|
|
13714
|
+
"div",
|
|
13715
|
+
{
|
|
13716
|
+
className: `nut-uploader__preview ${previewType}`,
|
|
13717
|
+
key: item.uid
|
|
13718
|
+
},
|
|
13719
|
+
previewType === "picture" && deletable && /* @__PURE__ */ React.createElement(
|
|
13720
|
+
a$n,
|
|
13721
|
+
{
|
|
13722
|
+
color: "rgba(0,0,0,0.6)",
|
|
13723
|
+
className: "close",
|
|
13724
|
+
onClick: () => onDeleteItem(item, index)
|
|
13725
|
+
}
|
|
13726
|
+
),
|
|
13727
|
+
previewType === "picture" && !children && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-img" }, item.status === "ready" ? /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress" }, /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)) : item.status !== "success" && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress" }, renderIcon(item), /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)), ((_a = item.type) == null ? void 0 : _a.includes("image")) ? /* @__PURE__ */ React.createElement(React.Fragment, null, item.url && /* @__PURE__ */ React.createElement(
|
|
13728
|
+
components.Image,
|
|
13729
|
+
{
|
|
13730
|
+
className: "nut-uploader__preview-img__c",
|
|
13731
|
+
style: { objectFit: "fill" },
|
|
13732
|
+
mode: "aspectFit",
|
|
13733
|
+
src: item.url,
|
|
13734
|
+
onClick: () => handleItemClick(item)
|
|
13735
|
+
}
|
|
13736
|
+
)) : /* @__PURE__ */ React.createElement(React.Fragment, null, previewUrl ? /* @__PURE__ */ React.createElement(
|
|
13737
|
+
components.Image,
|
|
13738
|
+
{
|
|
13739
|
+
className: "nut-uploader__preview-img__c",
|
|
13740
|
+
mode: "aspectFit",
|
|
13741
|
+
src: previewUrl,
|
|
13742
|
+
onClick: () => handleItemClick(item)
|
|
13743
|
+
}
|
|
13744
|
+
) : /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React.createElement(
|
|
13745
|
+
"div",
|
|
13746
|
+
{
|
|
13747
|
+
onClick: () => handleItemClick(item),
|
|
13748
|
+
className: "nut-uploader__preview-img__file__name"
|
|
13749
|
+
},
|
|
13750
|
+
/* @__PURE__ */ React.createElement(a$i, { color: "#808080" }),
|
|
13751
|
+
/* @__PURE__ */ React.createElement("span", null, " ", item.name)
|
|
13752
|
+
))), item.status === "success" ? /* @__PURE__ */ React.createElement("div", { className: "tips" }, item.name) : null),
|
|
13753
|
+
previewType === "list" && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React.createElement(
|
|
13754
|
+
"div",
|
|
13755
|
+
{
|
|
13756
|
+
className: `nut-uploader__preview-img__file__name ${item.status}`,
|
|
13757
|
+
onClick: () => handleItemClick(item)
|
|
13758
|
+
},
|
|
13759
|
+
/* @__PURE__ */ React.createElement(a$i, null),
|
|
13760
|
+
/* @__PURE__ */ React.createElement("span", null, " ", item.name)
|
|
13761
|
+
), deletable && /* @__PURE__ */ React.createElement(
|
|
13762
|
+
a$p,
|
|
13763
|
+
{
|
|
13764
|
+
color: "#808080",
|
|
13765
|
+
className: "nut-uploader__preview-img__file__del",
|
|
13766
|
+
onClick: () => onDeleteItem(item, index)
|
|
13767
|
+
}
|
|
13768
|
+
), item.status === "uploading" && /* @__PURE__ */ React.createElement(
|
|
13769
|
+
Progress,
|
|
13770
|
+
{
|
|
13771
|
+
percent: item.percentage,
|
|
13772
|
+
color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
|
|
13773
|
+
showText: false
|
|
13774
|
+
}
|
|
13775
|
+
))
|
|
13776
|
+
);
|
|
13777
|
+
}));
|
|
13778
|
+
};
|
|
13675
13779
|
const defaultProps$H = {
|
|
13676
13780
|
...ComponentDefaults,
|
|
13677
13781
|
url: "",
|
|
@@ -13680,7 +13784,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13680
13784
|
sourceType: ["album", "camera"],
|
|
13681
13785
|
mediaType: ["image", "video"],
|
|
13682
13786
|
camera: "back",
|
|
13683
|
-
uploadIcon:
|
|
13787
|
+
uploadIcon: /* @__PURE__ */ React.createElement(a$a, { size: "20px", color: "#808080" }),
|
|
13684
13788
|
uploadLabel: "",
|
|
13685
13789
|
previewType: "picture",
|
|
13686
13790
|
fit: "cover",
|
|
@@ -13703,19 +13807,6 @@ var __publicField = (obj, key, value) => {
|
|
|
13703
13807
|
return true;
|
|
13704
13808
|
}
|
|
13705
13809
|
};
|
|
13706
|
-
class FileItem {
|
|
13707
|
-
constructor() {
|
|
13708
|
-
__publicField(this, "status", "ready");
|
|
13709
|
-
__publicField(this, "message", "准备中..");
|
|
13710
|
-
__publicField(this, "uid", Date.now().toString());
|
|
13711
|
-
__publicField(this, "name");
|
|
13712
|
-
__publicField(this, "url");
|
|
13713
|
-
__publicField(this, "type");
|
|
13714
|
-
__publicField(this, "path");
|
|
13715
|
-
__publicField(this, "percentage", 0);
|
|
13716
|
-
__publicField(this, "formData", {});
|
|
13717
|
-
}
|
|
13718
|
-
}
|
|
13719
13810
|
const InternalUploader = (props, ref) => {
|
|
13720
13811
|
const { locale } = useConfig$1();
|
|
13721
13812
|
const {
|
|
@@ -13761,13 +13852,15 @@ var __publicField = (obj, key, value) => {
|
|
|
13761
13852
|
beforeDelete,
|
|
13762
13853
|
...restProps
|
|
13763
13854
|
} = { ...defaultProps$H, ...props };
|
|
13764
|
-
const [fileList, setFileList] =
|
|
13765
|
-
|
|
13766
|
-
|
|
13767
|
-
|
|
13768
|
-
|
|
13855
|
+
const [fileList, setFileList] = usePropsValue({
|
|
13856
|
+
value,
|
|
13857
|
+
defaultValue,
|
|
13858
|
+
finalValue: [],
|
|
13859
|
+
onChange: (v) => {
|
|
13860
|
+
onChange == null ? void 0 : onChange(v);
|
|
13769
13861
|
}
|
|
13770
|
-
}
|
|
13862
|
+
});
|
|
13863
|
+
const [uploadQueue, setUploadQueue] = React.useState([]);
|
|
13771
13864
|
const classes = classNames(className, "nut-uploader");
|
|
13772
13865
|
React.useImperativeHandle(ref, () => ({
|
|
13773
13866
|
submit: () => {
|
|
@@ -13858,63 +13951,60 @@ var __publicField = (obj, key, value) => {
|
|
|
13858
13951
|
uploadOption.beforeXhrUpload = beforeXhrUpload;
|
|
13859
13952
|
uploadOption.onStart = (option) => {
|
|
13860
13953
|
clearUploadQueue(index);
|
|
13861
|
-
setFileList(
|
|
13862
|
-
|
|
13954
|
+
setFileList(
|
|
13955
|
+
fileList.map((item) => {
|
|
13863
13956
|
if (item.uid === fileItem.uid) {
|
|
13864
13957
|
item.status = "ready";
|
|
13865
13958
|
item.message = locale.uploader.readyUpload;
|
|
13866
13959
|
}
|
|
13867
|
-
|
|
13868
|
-
|
|
13869
|
-
|
|
13960
|
+
return item;
|
|
13961
|
+
})
|
|
13962
|
+
);
|
|
13870
13963
|
onStart && onStart(option);
|
|
13871
13964
|
};
|
|
13872
13965
|
uploadOption.onProgress = (e, option) => {
|
|
13873
|
-
setFileList(
|
|
13874
|
-
|
|
13966
|
+
setFileList(
|
|
13967
|
+
fileList.map((item) => {
|
|
13875
13968
|
if (item.uid === fileItem.uid) {
|
|
13876
|
-
item.status =
|
|
13969
|
+
item.status = UPLOADING;
|
|
13877
13970
|
item.message = locale.uploader.uploading;
|
|
13878
13971
|
item.percentage = e.progress;
|
|
13879
13972
|
onProgress && onProgress({ e, option, percentage: item.percentage });
|
|
13880
13973
|
}
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13974
|
+
return item;
|
|
13975
|
+
})
|
|
13976
|
+
);
|
|
13884
13977
|
};
|
|
13885
13978
|
uploadOption.onSuccess = (responseText, option) => {
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
13889
|
-
|
|
13890
|
-
|
|
13891
|
-
|
|
13892
|
-
|
|
13893
|
-
}
|
|
13894
|
-
});
|
|
13895
|
-
return [...fileList2];
|
|
13979
|
+
const list = fileList.map((item) => {
|
|
13980
|
+
if (item.uid === fileItem.uid) {
|
|
13981
|
+
item.status = SUCCESS;
|
|
13982
|
+
item.message = locale.uploader.success;
|
|
13983
|
+
item.responseText = responseText;
|
|
13984
|
+
}
|
|
13985
|
+
return item;
|
|
13896
13986
|
});
|
|
13897
|
-
|
|
13987
|
+
setFileList(list);
|
|
13988
|
+
onSuccess == null ? void 0 : onSuccess({
|
|
13898
13989
|
responseText,
|
|
13899
13990
|
option,
|
|
13900
|
-
fileList
|
|
13991
|
+
fileList: list
|
|
13901
13992
|
});
|
|
13902
13993
|
};
|
|
13903
13994
|
uploadOption.onFailure = (responseText, option) => {
|
|
13904
|
-
|
|
13905
|
-
|
|
13906
|
-
|
|
13907
|
-
|
|
13908
|
-
|
|
13909
|
-
|
|
13910
|
-
|
|
13911
|
-
});
|
|
13912
|
-
return [...fileList2];
|
|
13995
|
+
const list = fileList.map((item) => {
|
|
13996
|
+
if (item.uid === fileItem.uid) {
|
|
13997
|
+
item.status = ERROR;
|
|
13998
|
+
item.message = locale.uploader.error;
|
|
13999
|
+
item.responseText = responseText;
|
|
14000
|
+
}
|
|
14001
|
+
return item;
|
|
13913
14002
|
});
|
|
13914
|
-
|
|
14003
|
+
setFileList(list);
|
|
14004
|
+
onFailure == null ? void 0 : onFailure({
|
|
13915
14005
|
responseText,
|
|
13916
14006
|
option,
|
|
13917
|
-
fileList
|
|
14007
|
+
fileList: list
|
|
13918
14008
|
});
|
|
13919
14009
|
};
|
|
13920
14010
|
const task = new UploaderTaro(uploadOption);
|
|
@@ -13948,11 +14038,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13948
14038
|
fileItem.status = "ready";
|
|
13949
14039
|
fileItem.type = fileType;
|
|
13950
14040
|
fileItem.uid = `${fileItem.uid}_${index}`;
|
|
13951
|
-
|
|
13952
|
-
fileItem.message = locale.uploader.readyUpload;
|
|
13953
|
-
} else {
|
|
13954
|
-
fileItem.message = locale.uploader.waitingUpload;
|
|
13955
|
-
}
|
|
14041
|
+
fileItem.message = autoUpload ? locale.uploader.readyUpload : locale.uploader.waitingUpload;
|
|
13956
14042
|
if (Taro.getEnv() === "WEB") {
|
|
13957
14043
|
const formData = new FormData();
|
|
13958
14044
|
for (const [key, value2] of Object.entries(data)) {
|
|
@@ -13969,7 +14055,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13969
14055
|
fileItem.url = fileType === "video" ? file.thumbTempFilePath : filepath;
|
|
13970
14056
|
}
|
|
13971
14057
|
fileList.push(fileItem);
|
|
13972
|
-
setFileList(
|
|
14058
|
+
setFileList(fileList);
|
|
13973
14059
|
executeUpload(fileItem, index);
|
|
13974
14060
|
});
|
|
13975
14061
|
};
|
|
@@ -13994,9 +14080,9 @@ var __publicField = (obj, key, value) => {
|
|
|
13994
14080
|
return filterFile;
|
|
13995
14081
|
};
|
|
13996
14082
|
const deleted = (file, index) => {
|
|
13997
|
-
fileList.
|
|
13998
|
-
onDelete
|
|
13999
|
-
setFileList(
|
|
14083
|
+
const deletedFileList = fileList.filter((file2, idx) => idx !== index);
|
|
14084
|
+
onDelete == null ? void 0 : onDelete(file, deletedFileList);
|
|
14085
|
+
setFileList(deletedFileList);
|
|
14000
14086
|
};
|
|
14001
14087
|
const onDeleteItem = (file, index) => {
|
|
14002
14088
|
clearUploadQueue(index);
|
|
@@ -14009,88 +14095,34 @@ var __publicField = (obj, key, value) => {
|
|
|
14009
14095
|
const { tempFiles } = res;
|
|
14010
14096
|
const _files = filterFiles(tempFiles);
|
|
14011
14097
|
readFile(_files);
|
|
14012
|
-
onChange && onChange({ fileList });
|
|
14013
14098
|
};
|
|
14014
14099
|
const onChangeImage = (res) => {
|
|
14015
14100
|
const { tempFiles } = res;
|
|
14016
14101
|
const _files = filterFiles(tempFiles);
|
|
14017
14102
|
readFile(_files);
|
|
14018
|
-
onChange && onChange({ fileList });
|
|
14019
14103
|
};
|
|
14020
14104
|
const handleItemClick = (file) => {
|
|
14021
|
-
onFileItemClick
|
|
14105
|
+
onFileItemClick == null ? void 0 : onFileItemClick(file);
|
|
14022
14106
|
};
|
|
14023
|
-
return /* @__PURE__ */ React.createElement("div", { className: classes, ...restProps }, (children || previewType === "list") && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__slot" }, /* @__PURE__ */ React.createElement(React.Fragment, null, children || /* @__PURE__ */ React.createElement(Button, { size: "small", type: "primary" }, "上传文件"), maxCount > fileList.length && /* @__PURE__ */ React.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage }))),
|
|
14024
|
-
|
|
14025
|
-
|
|
14026
|
-
{
|
|
14027
|
-
|
|
14028
|
-
|
|
14029
|
-
|
|
14030
|
-
|
|
14031
|
-
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
|
|
14036
|
-
|
|
14037
|
-
),
|
|
14038
|
-
previewType === "picture" && !children && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-img" }, item.status === "ready" ? /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress" }, /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)) : item.status !== "success" && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress" }, item.failIcon !== " " && item.loadingIcon !== " " && (item.status === "error" ? item.failIcon || /* @__PURE__ */ React.createElement(a$n, { color: "#fff" }) : item.loadingIcon || /* @__PURE__ */ React.createElement(r$h, { color: "#fff" })), /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview__progress__msg" }, item.message)), item.type.includes("image") ? /* @__PURE__ */ React.createElement(React.Fragment, null, item.url && /* @__PURE__ */ React.createElement(
|
|
14039
|
-
components.Image,
|
|
14040
|
-
{
|
|
14041
|
-
className: "nut-uploader__preview-img__c",
|
|
14042
|
-
style: { objectFit: fit },
|
|
14043
|
-
mode: "aspectFit",
|
|
14044
|
-
src: item.url,
|
|
14045
|
-
onClick: () => handleItemClick(item)
|
|
14046
|
-
}
|
|
14047
|
-
)) : /* @__PURE__ */ React.createElement(React.Fragment, null, previewUrl ? /* @__PURE__ */ React.createElement(
|
|
14048
|
-
components.Image,
|
|
14049
|
-
{
|
|
14050
|
-
className: "nut-uploader__preview-img__c",
|
|
14051
|
-
mode: "aspectFit",
|
|
14052
|
-
src: previewUrl,
|
|
14053
|
-
onClick: () => handleItemClick(item)
|
|
14054
|
-
}
|
|
14055
|
-
) : /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React.createElement(
|
|
14056
|
-
"div",
|
|
14057
|
-
{
|
|
14058
|
-
onClick: () => handleItemClick(item),
|
|
14059
|
-
className: "nut-uploader__preview-img__file__name"
|
|
14060
|
-
},
|
|
14061
|
-
/* @__PURE__ */ React.createElement(a$i, { color: "#808080" }),
|
|
14062
|
-
/* @__PURE__ */ React.createElement("span", null, " ", item.name)
|
|
14063
|
-
))), item.status === "success" ? /* @__PURE__ */ React.createElement("div", { className: "tips" }, item.name) : null),
|
|
14064
|
-
previewType === "list" && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React.createElement(
|
|
14065
|
-
"div",
|
|
14066
|
-
{
|
|
14067
|
-
className: `nut-uploader__preview-img__file__name ${item.status}`,
|
|
14068
|
-
onClick: () => handleItemClick(item)
|
|
14069
|
-
},
|
|
14070
|
-
/* @__PURE__ */ React.createElement(a$i, null),
|
|
14071
|
-
/* @__PURE__ */ React.createElement("span", null, " ", item.name)
|
|
14072
|
-
), deletable && /* @__PURE__ */ React.createElement(
|
|
14073
|
-
a$p,
|
|
14074
|
-
{
|
|
14075
|
-
color: "#808080",
|
|
14076
|
-
className: "nut-uploader__preview-img__file__del",
|
|
14077
|
-
onClick: () => onDeleteItem(item, index)
|
|
14078
|
-
}
|
|
14079
|
-
), item.status === "uploading" && /* @__PURE__ */ React.createElement(
|
|
14080
|
-
Progress,
|
|
14081
|
-
{
|
|
14082
|
-
percent: item.percentage,
|
|
14083
|
-
color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
|
|
14084
|
-
showText: false
|
|
14085
|
-
}
|
|
14086
|
-
))
|
|
14087
|
-
);
|
|
14088
|
-
}), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React.createElement(
|
|
14107
|
+
return /* @__PURE__ */ React.createElement("div", { className: classes, ...restProps }, (children || previewType === "list") && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__slot" }, /* @__PURE__ */ React.createElement(React.Fragment, null, children || /* @__PURE__ */ React.createElement(Button, { size: "small", type: "primary" }, "上传文件"), maxCount > fileList.length && /* @__PURE__ */ React.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage }))), /* @__PURE__ */ React.createElement(
|
|
14108
|
+
Preview,
|
|
14109
|
+
{
|
|
14110
|
+
...{
|
|
14111
|
+
fileList,
|
|
14112
|
+
previewType,
|
|
14113
|
+
deletable,
|
|
14114
|
+
onDeleteItem,
|
|
14115
|
+
handleItemClick,
|
|
14116
|
+
previewUrl,
|
|
14117
|
+
children
|
|
14118
|
+
}
|
|
14119
|
+
}
|
|
14120
|
+
), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React.createElement(
|
|
14089
14121
|
"div",
|
|
14090
14122
|
{
|
|
14091
14123
|
className: `nut-uploader__upload ${previewType} ${disabled ? "nut-uploader__upload-disabled" : ""}`
|
|
14092
14124
|
},
|
|
14093
|
-
/* @__PURE__ */ React.createElement("div", { className: "nut-uploader__icon" }, uploadIcon
|
|
14125
|
+
/* @__PURE__ */ React.createElement("div", { className: "nut-uploader__icon" }, uploadIcon, /* @__PURE__ */ React.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
|
|
14094
14126
|
/* @__PURE__ */ React.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage })
|
|
14095
14127
|
));
|
|
14096
14128
|
};
|
|
@@ -17601,7 +17633,13 @@ var __publicField = (obj, key, value) => {
|
|
|
17601
17633
|
},
|
|
17602
17634
|
...rest
|
|
17603
17635
|
},
|
|
17604
|
-
React.Children.toArray(children).map((child, index) =>
|
|
17636
|
+
React.Children.toArray(children).map((child, index) => {
|
|
17637
|
+
let className2;
|
|
17638
|
+
if (React.isValidElement(child)) {
|
|
17639
|
+
className2 = child.props.className;
|
|
17640
|
+
}
|
|
17641
|
+
return /* @__PURE__ */ React.createElement(components.SwiperItem, { className: className2, key: index }, child);
|
|
17642
|
+
})
|
|
17605
17643
|
)
|
|
17606
17644
|
),
|
|
17607
17645
|
renderIndicator()
|
package/dist/style.mjs
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare class FileItem {
|
|
3
|
+
status: FileItemStatus;
|
|
4
|
+
message: string;
|
|
5
|
+
uid: string;
|
|
6
|
+
name?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
type?: string;
|
|
9
|
+
path?: string;
|
|
10
|
+
percentage?: string | number;
|
|
11
|
+
formData?: FormData;
|
|
12
|
+
responseText?: string;
|
|
13
|
+
loadingIcon?: ReactNode;
|
|
14
|
+
failIcon?: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export type FileItemStatus = 'ready' | 'uploading' | 'success' | 'error' | 'removed';
|
|
17
|
+
export type FileType<T> = {
|
|
18
|
+
[key: string]: T;
|
|
19
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { Uploader } from './uploader.taro';
|
|
2
|
-
export type {
|
|
2
|
+
export type { UploaderProps } from './uploader.taro';
|
|
3
|
+
export type { FileType, FileItem, FileItemStatus } from './file-item';
|
|
3
4
|
export default Uploader;
|
|
@@ -16,6 +16,9 @@ export declare class UploadOptions {
|
|
|
16
16
|
onFailure?: any;
|
|
17
17
|
beforeXhrUpload?: any;
|
|
18
18
|
}
|
|
19
|
+
export declare const UPLOADING = "uploading";
|
|
20
|
+
export declare const SUCCESS = "success";
|
|
21
|
+
export declare const ERROR = "error";
|
|
19
22
|
export declare class Upload {
|
|
20
23
|
options: UploadOptions;
|
|
21
24
|
constructor(options: UploadOptions);
|