@nutui/nutui-react-taro 2.0.18 → 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 +15 -1
- package/dist/esm/Audio/style/style.css +1 -1
- package/dist/esm/Button/style/style.css +1 -1
- package/dist/esm/Dialog/style/style.css +1 -1
- package/dist/esm/ImagePreview/style/style.css +1 -1
- package/dist/esm/ImagePreview.js +2 -2
- package/dist/esm/Indicator/style/style.css +1 -1
- package/dist/esm/Indicator.js +1 -1
- package/dist/esm/Input/style/style.css +1 -1
- package/dist/esm/Menu.js +2 -2
- package/dist/esm/MenuItem.js +1 -1
- package/dist/esm/Swiper/style/style.css +1 -1
- package/dist/esm/Swiper.js +14 -4
- package/dist/esm/Uploader.js +5 -3
- package/dist/esm/{imagepreview.taro-87d85d88.js → imagepreview.taro-78c0a7b8.js} +5 -2
- package/dist/esm/{indicator.taro-4ed0d6da.js → indicator.taro-092f9f4e.js} +1 -1
- package/dist/esm/{menu.taro-cc93f12a.js → menu.taro-cf8d7d5b.js} +8 -8
- package/dist/esm/{menuitem.taro-69a45abd.js → menuitem.taro-b73e5ed3.js} +5 -2
- package/dist/esm/nutui-react.es.js +5 -5
- package/dist/esm/types/src/packages/menu/index.d.ts +1 -1
- package/dist/esm/types/src/packages/menu/index.taro.d.ts +1 -1
- package/dist/esm/types/src/packages/menu/menu.d.ts +4 -2
- package/dist/esm/types/src/packages/menu/menu.taro.d.ts +4 -2
- package/dist/esm/types/src/packages/swiper/swiper.taro.d.ts +1 -0
- 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 +271 -222
- package/dist/nutui.react.umd.js +271 -222
- package/dist/packages/button/button.scss +1 -1
- package/dist/packages/indicator/indicator.scss +5 -0
- package/dist/packages/input/input.scss +1 -0
- package/dist/style.css +1 -1
- package/dist/style.mjs +1 -1
- package/dist/types/packages/menu/index.taro.d.ts +1 -1
- package/dist/types/packages/menu/menu.taro.d.ts +4 -2
- package/dist/types/packages/swiper/swiper.taro.d.ts +5 -0
- 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.
|
|
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) {
|
|
@@ -11823,7 +11825,8 @@ var __publicField = (obj, key, value) => {
|
|
|
11823
11825
|
Taro.usePageScroll(updateItemOffset);
|
|
11824
11826
|
React.useImperativeHandle(ref, () => ({
|
|
11825
11827
|
toggle: (s) => {
|
|
11826
|
-
|
|
11828
|
+
const from = "REF";
|
|
11829
|
+
s ? parent.toggleMenuItem(index, from) : parent.hideMenuItem(index, from);
|
|
11827
11830
|
}
|
|
11828
11831
|
}));
|
|
11829
11832
|
const getIconCName = (optionVal, value2) => {
|
|
@@ -11903,7 +11906,7 @@ var __publicField = (obj, key, value) => {
|
|
|
11903
11906
|
visible: showPopup,
|
|
11904
11907
|
closeOnOverlayClick: parent.closeOnOverlayClick,
|
|
11905
11908
|
onClick: () => {
|
|
11906
|
-
parent.closeOnOverlayClick && parent.
|
|
11909
|
+
parent.closeOnOverlayClick && parent.hideMenuItem(index);
|
|
11907
11910
|
}
|
|
11908
11911
|
}
|
|
11909
11912
|
) : null, /* @__PURE__ */ React.createElement(
|
|
@@ -11973,9 +11976,9 @@ var __publicField = (obj, key, value) => {
|
|
|
11973
11976
|
lockScroll: true,
|
|
11974
11977
|
overlay: true,
|
|
11975
11978
|
icon: null,
|
|
11976
|
-
onOpen: (index) => {
|
|
11979
|
+
onOpen: (index, from) => {
|
|
11977
11980
|
},
|
|
11978
|
-
onClose: (index) => {
|
|
11981
|
+
onClose: (index, from) => {
|
|
11979
11982
|
}
|
|
11980
11983
|
};
|
|
11981
11984
|
const Menu = (props) => {
|
|
@@ -12014,22 +12017,22 @@ var __publicField = (obj, key, value) => {
|
|
|
12014
12017
|
}, []);
|
|
12015
12018
|
const [showMenuItem, setShowMenuItem] = React.useState([]);
|
|
12016
12019
|
const [menuItemTitle, setMenuItemTitle] = React.useState([]);
|
|
12017
|
-
const toggleMenuItem = (index) => {
|
|
12020
|
+
const toggleMenuItem = (index, from = "NORMAL") => {
|
|
12018
12021
|
showMenuItem[index] = !showMenuItem[index];
|
|
12019
12022
|
if (showMenuItem[index]) {
|
|
12020
|
-
onOpen && onOpen(index);
|
|
12023
|
+
onOpen && onOpen(index, from);
|
|
12021
12024
|
} else {
|
|
12022
|
-
onClose && onClose(index);
|
|
12025
|
+
onClose && onClose(index, from);
|
|
12023
12026
|
}
|
|
12024
12027
|
const temp = showMenuItem.map(
|
|
12025
12028
|
(i, idx) => idx === index ? i : false
|
|
12026
12029
|
);
|
|
12027
12030
|
setShowMenuItem([...temp]);
|
|
12028
12031
|
};
|
|
12029
|
-
const hideMenuItem = (index) => {
|
|
12032
|
+
const hideMenuItem = (index, from = "NORMAL") => {
|
|
12030
12033
|
showMenuItem[index] = false;
|
|
12031
12034
|
setShowMenuItem([...showMenuItem]);
|
|
12032
|
-
onClose && onClose(index);
|
|
12035
|
+
onClose && onClose(index, from);
|
|
12033
12036
|
};
|
|
12034
12037
|
const updateTitle = (text, index) => {
|
|
12035
12038
|
menuItemTitle[index] = text;
|
|
@@ -13456,80 +13459,6 @@ var __publicField = (obj, key, value) => {
|
|
|
13456
13459
|
};
|
|
13457
13460
|
TextArea.defaultProps = defaultProps$J;
|
|
13458
13461
|
TextArea.displayName = "NutTextArea";
|
|
13459
|
-
const defaultProps$I = {
|
|
13460
|
-
...ComponentDefaults,
|
|
13461
|
-
percent: 0,
|
|
13462
|
-
showText: false,
|
|
13463
|
-
animated: false,
|
|
13464
|
-
delay: 0
|
|
13465
|
-
};
|
|
13466
|
-
const Progress = (props) => {
|
|
13467
|
-
const {
|
|
13468
|
-
className,
|
|
13469
|
-
style,
|
|
13470
|
-
percent,
|
|
13471
|
-
background,
|
|
13472
|
-
color,
|
|
13473
|
-
strokeWidth,
|
|
13474
|
-
showText,
|
|
13475
|
-
animated,
|
|
13476
|
-
children,
|
|
13477
|
-
delay,
|
|
13478
|
-
...rest
|
|
13479
|
-
} = {
|
|
13480
|
-
...defaultProps$I,
|
|
13481
|
-
...props
|
|
13482
|
-
};
|
|
13483
|
-
const classPrefix2 = "nut-progress";
|
|
13484
|
-
const classesInner = classNames({
|
|
13485
|
-
[`${classPrefix2}-inner`]: true,
|
|
13486
|
-
[`${classPrefix2}-active`]: animated
|
|
13487
|
-
});
|
|
13488
|
-
const stylesOuter = {
|
|
13489
|
-
height: `${strokeWidth}px`,
|
|
13490
|
-
background
|
|
13491
|
-
};
|
|
13492
|
-
const [displayPercent, setDispalyPercent] = React.useState(0);
|
|
13493
|
-
const stylesInner = {
|
|
13494
|
-
width: `${displayPercent}%`,
|
|
13495
|
-
background: color
|
|
13496
|
-
};
|
|
13497
|
-
React.useEffect(() => {
|
|
13498
|
-
setDispalyPercent(percent);
|
|
13499
|
-
}, [percent]);
|
|
13500
|
-
React.useEffect(() => {
|
|
13501
|
-
let timer = null;
|
|
13502
|
-
if (delay) {
|
|
13503
|
-
setDispalyPercent(0);
|
|
13504
|
-
timer = setTimeout(() => {
|
|
13505
|
-
setDispalyPercent(percent);
|
|
13506
|
-
}, delay);
|
|
13507
|
-
}
|
|
13508
|
-
return () => {
|
|
13509
|
-
timer && clearTimeout(timer);
|
|
13510
|
-
};
|
|
13511
|
-
}, []);
|
|
13512
|
-
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(
|
|
13513
|
-
"div",
|
|
13514
|
-
{
|
|
13515
|
-
className: `${classPrefix2}-text`,
|
|
13516
|
-
style: { left: `${displayPercent}%` }
|
|
13517
|
-
},
|
|
13518
|
-
children || /* @__PURE__ */ React.createElement(
|
|
13519
|
-
"div",
|
|
13520
|
-
{
|
|
13521
|
-
className: `${classPrefix2}-text__inner`,
|
|
13522
|
-
style: {
|
|
13523
|
-
background: color
|
|
13524
|
-
}
|
|
13525
|
-
},
|
|
13526
|
-
percent,
|
|
13527
|
-
"%"
|
|
13528
|
-
)
|
|
13529
|
-
))));
|
|
13530
|
-
};
|
|
13531
|
-
Progress.defaultProps = defaultProps$I;
|
|
13532
|
-
Progress.displayName = "NutProgress";
|
|
13533
13462
|
class UploadOptions {
|
|
13534
13463
|
constructor() {
|
|
13535
13464
|
__publicField(this, "url", "");
|
|
@@ -13550,6 +13479,9 @@ var __publicField = (obj, key, value) => {
|
|
|
13550
13479
|
__publicField(this, "beforeXhrUpload");
|
|
13551
13480
|
}
|
|
13552
13481
|
}
|
|
13482
|
+
const UPLOADING = "uploading";
|
|
13483
|
+
const SUCCESS = "success";
|
|
13484
|
+
const ERROR = "error";
|
|
13553
13485
|
class Upload {
|
|
13554
13486
|
constructor(options) {
|
|
13555
13487
|
__publicField(this, "options");
|
|
@@ -13671,6 +13603,179 @@ var __publicField = (obj, key, value) => {
|
|
|
13671
13603
|
done();
|
|
13672
13604
|
}
|
|
13673
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
|
+
};
|
|
13674
13779
|
const defaultProps$H = {
|
|
13675
13780
|
...ComponentDefaults,
|
|
13676
13781
|
url: "",
|
|
@@ -13679,7 +13784,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13679
13784
|
sourceType: ["album", "camera"],
|
|
13680
13785
|
mediaType: ["image", "video"],
|
|
13681
13786
|
camera: "back",
|
|
13682
|
-
uploadIcon:
|
|
13787
|
+
uploadIcon: /* @__PURE__ */ React.createElement(a$a, { size: "20px", color: "#808080" }),
|
|
13683
13788
|
uploadLabel: "",
|
|
13684
13789
|
previewType: "picture",
|
|
13685
13790
|
fit: "cover",
|
|
@@ -13702,19 +13807,6 @@ var __publicField = (obj, key, value) => {
|
|
|
13702
13807
|
return true;
|
|
13703
13808
|
}
|
|
13704
13809
|
};
|
|
13705
|
-
class FileItem {
|
|
13706
|
-
constructor() {
|
|
13707
|
-
__publicField(this, "status", "ready");
|
|
13708
|
-
__publicField(this, "message", "准备中..");
|
|
13709
|
-
__publicField(this, "uid", Date.now().toString());
|
|
13710
|
-
__publicField(this, "name");
|
|
13711
|
-
__publicField(this, "url");
|
|
13712
|
-
__publicField(this, "type");
|
|
13713
|
-
__publicField(this, "path");
|
|
13714
|
-
__publicField(this, "percentage", 0);
|
|
13715
|
-
__publicField(this, "formData", {});
|
|
13716
|
-
}
|
|
13717
|
-
}
|
|
13718
13810
|
const InternalUploader = (props, ref) => {
|
|
13719
13811
|
const { locale } = useConfig$1();
|
|
13720
13812
|
const {
|
|
@@ -13760,13 +13852,15 @@ var __publicField = (obj, key, value) => {
|
|
|
13760
13852
|
beforeDelete,
|
|
13761
13853
|
...restProps
|
|
13762
13854
|
} = { ...defaultProps$H, ...props };
|
|
13763
|
-
const [fileList, setFileList] =
|
|
13764
|
-
|
|
13765
|
-
|
|
13766
|
-
|
|
13767
|
-
|
|
13855
|
+
const [fileList, setFileList] = usePropsValue({
|
|
13856
|
+
value,
|
|
13857
|
+
defaultValue,
|
|
13858
|
+
finalValue: [],
|
|
13859
|
+
onChange: (v) => {
|
|
13860
|
+
onChange == null ? void 0 : onChange(v);
|
|
13768
13861
|
}
|
|
13769
|
-
}
|
|
13862
|
+
});
|
|
13863
|
+
const [uploadQueue, setUploadQueue] = React.useState([]);
|
|
13770
13864
|
const classes = classNames(className, "nut-uploader");
|
|
13771
13865
|
React.useImperativeHandle(ref, () => ({
|
|
13772
13866
|
submit: () => {
|
|
@@ -13857,63 +13951,60 @@ var __publicField = (obj, key, value) => {
|
|
|
13857
13951
|
uploadOption.beforeXhrUpload = beforeXhrUpload;
|
|
13858
13952
|
uploadOption.onStart = (option) => {
|
|
13859
13953
|
clearUploadQueue(index);
|
|
13860
|
-
setFileList(
|
|
13861
|
-
|
|
13954
|
+
setFileList(
|
|
13955
|
+
fileList.map((item) => {
|
|
13862
13956
|
if (item.uid === fileItem.uid) {
|
|
13863
13957
|
item.status = "ready";
|
|
13864
13958
|
item.message = locale.uploader.readyUpload;
|
|
13865
13959
|
}
|
|
13866
|
-
|
|
13867
|
-
|
|
13868
|
-
|
|
13960
|
+
return item;
|
|
13961
|
+
})
|
|
13962
|
+
);
|
|
13869
13963
|
onStart && onStart(option);
|
|
13870
13964
|
};
|
|
13871
13965
|
uploadOption.onProgress = (e, option) => {
|
|
13872
|
-
setFileList(
|
|
13873
|
-
|
|
13966
|
+
setFileList(
|
|
13967
|
+
fileList.map((item) => {
|
|
13874
13968
|
if (item.uid === fileItem.uid) {
|
|
13875
|
-
item.status =
|
|
13969
|
+
item.status = UPLOADING;
|
|
13876
13970
|
item.message = locale.uploader.uploading;
|
|
13877
13971
|
item.percentage = e.progress;
|
|
13878
13972
|
onProgress && onProgress({ e, option, percentage: item.percentage });
|
|
13879
13973
|
}
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13974
|
+
return item;
|
|
13975
|
+
})
|
|
13976
|
+
);
|
|
13883
13977
|
};
|
|
13884
13978
|
uploadOption.onSuccess = (responseText, option) => {
|
|
13885
|
-
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
13889
|
-
|
|
13890
|
-
|
|
13891
|
-
|
|
13892
|
-
}
|
|
13893
|
-
});
|
|
13894
|
-
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;
|
|
13895
13986
|
});
|
|
13896
|
-
|
|
13987
|
+
setFileList(list);
|
|
13988
|
+
onSuccess == null ? void 0 : onSuccess({
|
|
13897
13989
|
responseText,
|
|
13898
13990
|
option,
|
|
13899
|
-
fileList
|
|
13991
|
+
fileList: list
|
|
13900
13992
|
});
|
|
13901
13993
|
};
|
|
13902
13994
|
uploadOption.onFailure = (responseText, option) => {
|
|
13903
|
-
|
|
13904
|
-
|
|
13905
|
-
|
|
13906
|
-
|
|
13907
|
-
|
|
13908
|
-
|
|
13909
|
-
|
|
13910
|
-
});
|
|
13911
|
-
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;
|
|
13912
14002
|
});
|
|
13913
|
-
|
|
14003
|
+
setFileList(list);
|
|
14004
|
+
onFailure == null ? void 0 : onFailure({
|
|
13914
14005
|
responseText,
|
|
13915
14006
|
option,
|
|
13916
|
-
fileList
|
|
14007
|
+
fileList: list
|
|
13917
14008
|
});
|
|
13918
14009
|
};
|
|
13919
14010
|
const task = new UploaderTaro(uploadOption);
|
|
@@ -13947,11 +14038,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13947
14038
|
fileItem.status = "ready";
|
|
13948
14039
|
fileItem.type = fileType;
|
|
13949
14040
|
fileItem.uid = `${fileItem.uid}_${index}`;
|
|
13950
|
-
|
|
13951
|
-
fileItem.message = locale.uploader.readyUpload;
|
|
13952
|
-
} else {
|
|
13953
|
-
fileItem.message = locale.uploader.waitingUpload;
|
|
13954
|
-
}
|
|
14041
|
+
fileItem.message = autoUpload ? locale.uploader.readyUpload : locale.uploader.waitingUpload;
|
|
13955
14042
|
if (Taro.getEnv() === "WEB") {
|
|
13956
14043
|
const formData = new FormData();
|
|
13957
14044
|
for (const [key, value2] of Object.entries(data)) {
|
|
@@ -13968,7 +14055,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13968
14055
|
fileItem.url = fileType === "video" ? file.thumbTempFilePath : filepath;
|
|
13969
14056
|
}
|
|
13970
14057
|
fileList.push(fileItem);
|
|
13971
|
-
setFileList(
|
|
14058
|
+
setFileList(fileList);
|
|
13972
14059
|
executeUpload(fileItem, index);
|
|
13973
14060
|
});
|
|
13974
14061
|
};
|
|
@@ -13993,9 +14080,9 @@ var __publicField = (obj, key, value) => {
|
|
|
13993
14080
|
return filterFile;
|
|
13994
14081
|
};
|
|
13995
14082
|
const deleted = (file, index) => {
|
|
13996
|
-
fileList.
|
|
13997
|
-
onDelete
|
|
13998
|
-
setFileList(
|
|
14083
|
+
const deletedFileList = fileList.filter((file2, idx) => idx !== index);
|
|
14084
|
+
onDelete == null ? void 0 : onDelete(file, deletedFileList);
|
|
14085
|
+
setFileList(deletedFileList);
|
|
13999
14086
|
};
|
|
14000
14087
|
const onDeleteItem = (file, index) => {
|
|
14001
14088
|
clearUploadQueue(index);
|
|
@@ -14008,88 +14095,34 @@ var __publicField = (obj, key, value) => {
|
|
|
14008
14095
|
const { tempFiles } = res;
|
|
14009
14096
|
const _files = filterFiles(tempFiles);
|
|
14010
14097
|
readFile(_files);
|
|
14011
|
-
onChange && onChange({ fileList });
|
|
14012
14098
|
};
|
|
14013
14099
|
const onChangeImage = (res) => {
|
|
14014
14100
|
const { tempFiles } = res;
|
|
14015
14101
|
const _files = filterFiles(tempFiles);
|
|
14016
14102
|
readFile(_files);
|
|
14017
|
-
onChange && onChange({ fileList });
|
|
14018
14103
|
};
|
|
14019
14104
|
const handleItemClick = (file) => {
|
|
14020
|
-
onFileItemClick
|
|
14105
|
+
onFileItemClick == null ? void 0 : onFileItemClick(file);
|
|
14021
14106
|
};
|
|
14022
|
-
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 }))),
|
|
14023
|
-
|
|
14024
|
-
|
|
14025
|
-
{
|
|
14026
|
-
|
|
14027
|
-
|
|
14028
|
-
|
|
14029
|
-
|
|
14030
|
-
|
|
14031
|
-
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
|
|
14036
|
-
),
|
|
14037
|
-
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(
|
|
14038
|
-
components.Image,
|
|
14039
|
-
{
|
|
14040
|
-
className: "nut-uploader__preview-img__c",
|
|
14041
|
-
style: { objectFit: fit },
|
|
14042
|
-
mode: "aspectFit",
|
|
14043
|
-
src: item.url,
|
|
14044
|
-
onClick: () => handleItemClick(item)
|
|
14045
|
-
}
|
|
14046
|
-
)) : /* @__PURE__ */ React.createElement(React.Fragment, null, previewUrl ? /* @__PURE__ */ React.createElement(
|
|
14047
|
-
components.Image,
|
|
14048
|
-
{
|
|
14049
|
-
className: "nut-uploader__preview-img__c",
|
|
14050
|
-
mode: "aspectFit",
|
|
14051
|
-
src: previewUrl,
|
|
14052
|
-
onClick: () => handleItemClick(item)
|
|
14053
|
-
}
|
|
14054
|
-
) : /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React.createElement(
|
|
14055
|
-
"div",
|
|
14056
|
-
{
|
|
14057
|
-
onClick: () => handleItemClick(item),
|
|
14058
|
-
className: "nut-uploader__preview-img__file__name"
|
|
14059
|
-
},
|
|
14060
|
-
/* @__PURE__ */ React.createElement(a$i, { color: "#808080" }),
|
|
14061
|
-
/* @__PURE__ */ React.createElement("span", null, " ", item.name)
|
|
14062
|
-
))), item.status === "success" ? /* @__PURE__ */ React.createElement("div", { className: "tips" }, item.name) : null),
|
|
14063
|
-
previewType === "list" && /* @__PURE__ */ React.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React.createElement(
|
|
14064
|
-
"div",
|
|
14065
|
-
{
|
|
14066
|
-
className: `nut-uploader__preview-img__file__name ${item.status}`,
|
|
14067
|
-
onClick: () => handleItemClick(item)
|
|
14068
|
-
},
|
|
14069
|
-
/* @__PURE__ */ React.createElement(a$i, null),
|
|
14070
|
-
/* @__PURE__ */ React.createElement("span", null, " ", item.name)
|
|
14071
|
-
), deletable && /* @__PURE__ */ React.createElement(
|
|
14072
|
-
a$p,
|
|
14073
|
-
{
|
|
14074
|
-
color: "#808080",
|
|
14075
|
-
className: "nut-uploader__preview-img__file__del",
|
|
14076
|
-
onClick: () => onDeleteItem(item, index)
|
|
14077
|
-
}
|
|
14078
|
-
), item.status === "uploading" && /* @__PURE__ */ React.createElement(
|
|
14079
|
-
Progress,
|
|
14080
|
-
{
|
|
14081
|
-
percent: item.percentage,
|
|
14082
|
-
color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
|
|
14083
|
-
showText: false
|
|
14084
|
-
}
|
|
14085
|
-
))
|
|
14086
|
-
);
|
|
14087
|
-
}), 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(
|
|
14088
14121
|
"div",
|
|
14089
14122
|
{
|
|
14090
14123
|
className: `nut-uploader__upload ${previewType} ${disabled ? "nut-uploader__upload-disabled" : ""}`
|
|
14091
14124
|
},
|
|
14092
|
-
/* @__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)),
|
|
14093
14126
|
/* @__PURE__ */ React.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage })
|
|
14094
14127
|
));
|
|
14095
14128
|
};
|
|
@@ -17480,7 +17513,7 @@ var __publicField = (obj, key, value) => {
|
|
|
17480
17513
|
}
|
|
17481
17514
|
return childs;
|
|
17482
17515
|
};
|
|
17483
|
-
return /* @__PURE__ */ React.createElement("div", { className: classNames(classes, className), ...rest }, renderElement());
|
|
17516
|
+
return /* @__PURE__ */ React.createElement("div", { className: classNames(classPrefix$4, classes, className), ...rest }, renderElement());
|
|
17484
17517
|
};
|
|
17485
17518
|
Indicator.defaultProps = defaultProps$i;
|
|
17486
17519
|
Indicator.displayName = "NutIndicator";
|
|
@@ -17504,6 +17537,7 @@ var __publicField = (obj, key, value) => {
|
|
|
17504
17537
|
duration,
|
|
17505
17538
|
direction,
|
|
17506
17539
|
defaultValue,
|
|
17540
|
+
onChange,
|
|
17507
17541
|
...rest
|
|
17508
17542
|
} = {
|
|
17509
17543
|
...defaultProps$h,
|
|
@@ -17588,14 +17622,24 @@ var __publicField = (obj, key, value) => {
|
|
|
17588
17622
|
autoplay: autoPlay,
|
|
17589
17623
|
vertical: direction === "vertical",
|
|
17590
17624
|
indicatorDots: false,
|
|
17591
|
-
onChange:
|
|
17625
|
+
onChange: (e) => {
|
|
17626
|
+
var _a;
|
|
17627
|
+
handleOnChange(e);
|
|
17628
|
+
(_a = props.onChange) == null ? void 0 : _a.call(props, e);
|
|
17629
|
+
},
|
|
17592
17630
|
style: {
|
|
17593
17631
|
width: !width ? "100%" : `${width}px`,
|
|
17594
17632
|
height: !height ? "150px" : `${height}px`
|
|
17595
17633
|
},
|
|
17596
17634
|
...rest
|
|
17597
17635
|
},
|
|
17598
|
-
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
|
+
})
|
|
17599
17643
|
)
|
|
17600
17644
|
),
|
|
17601
17645
|
renderIndicator()
|
|
@@ -17657,7 +17701,9 @@ var __publicField = (obj, key, value) => {
|
|
|
17657
17701
|
});
|
|
17658
17702
|
const [showPop, setShowPop] = React.useState(visible);
|
|
17659
17703
|
const [active, setActive] = React.useState(0);
|
|
17660
|
-
const [maxNo] = React.useState(
|
|
17704
|
+
const [maxNo, setMaxNo] = React.useState(
|
|
17705
|
+
(images == null ? void 0 : images.length) || 0 + ((videos == null ? void 0 : videos.length) || 0)
|
|
17706
|
+
);
|
|
17661
17707
|
const [store, setStore] = React.useState({
|
|
17662
17708
|
scale: 1,
|
|
17663
17709
|
moveable: false
|
|
@@ -17746,6 +17792,9 @@ var __publicField = (obj, key, value) => {
|
|
|
17746
17792
|
React.useEffect(() => {
|
|
17747
17793
|
setActive(innerNo);
|
|
17748
17794
|
}, [innerNo]);
|
|
17795
|
+
React.useEffect(() => {
|
|
17796
|
+
setMaxNo((images == null ? void 0 : images.length) || 0 + ((videos == null ? void 0 : videos.length) || 0));
|
|
17797
|
+
}, [images, videos]);
|
|
17749
17798
|
const scaleNow = () => {
|
|
17750
17799
|
if (ref.current) {
|
|
17751
17800
|
ref.current.style.transform = `scale(${store.scale})`;
|
|
@@ -17762,7 +17811,7 @@ var __publicField = (obj, key, value) => {
|
|
|
17762
17811
|
};
|
|
17763
17812
|
const onCloseInner = () => {
|
|
17764
17813
|
setShowPop(false);
|
|
17765
|
-
setActive(
|
|
17814
|
+
setActive(innerNo);
|
|
17766
17815
|
scaleNow();
|
|
17767
17816
|
onClose && onClose();
|
|
17768
17817
|
setStore({
|