@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.es.js
CHANGED
|
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => {
|
|
|
5
5
|
return value;
|
|
6
6
|
};
|
|
7
7
|
/*!
|
|
8
|
-
* @nutui/nutui-react-taro v2.0.
|
|
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) {
|
|
@@ -11807,7 +11809,8 @@ const MenuItem = forwardRef((props, ref) => {
|
|
|
11807
11809
|
usePageScroll(updateItemOffset);
|
|
11808
11810
|
useImperativeHandle(ref, () => ({
|
|
11809
11811
|
toggle: (s) => {
|
|
11810
|
-
|
|
11812
|
+
const from = "REF";
|
|
11813
|
+
s ? parent.toggleMenuItem(index, from) : parent.hideMenuItem(index, from);
|
|
11811
11814
|
}
|
|
11812
11815
|
}));
|
|
11813
11816
|
const getIconCName = (optionVal, value2) => {
|
|
@@ -11887,7 +11890,7 @@ const MenuItem = forwardRef((props, ref) => {
|
|
|
11887
11890
|
visible: showPopup,
|
|
11888
11891
|
closeOnOverlayClick: parent.closeOnOverlayClick,
|
|
11889
11892
|
onClick: () => {
|
|
11890
|
-
parent.closeOnOverlayClick && parent.
|
|
11893
|
+
parent.closeOnOverlayClick && parent.hideMenuItem(index);
|
|
11891
11894
|
}
|
|
11892
11895
|
}
|
|
11893
11896
|
) : null, /* @__PURE__ */ React__default.createElement(
|
|
@@ -11957,9 +11960,9 @@ const defaultProps$T = {
|
|
|
11957
11960
|
lockScroll: true,
|
|
11958
11961
|
overlay: true,
|
|
11959
11962
|
icon: null,
|
|
11960
|
-
onOpen: (index) => {
|
|
11963
|
+
onOpen: (index, from) => {
|
|
11961
11964
|
},
|
|
11962
|
-
onClose: (index) => {
|
|
11965
|
+
onClose: (index, from) => {
|
|
11963
11966
|
}
|
|
11964
11967
|
};
|
|
11965
11968
|
const Menu = (props) => {
|
|
@@ -11998,22 +12001,22 @@ const Menu = (props) => {
|
|
|
11998
12001
|
}, []);
|
|
11999
12002
|
const [showMenuItem, setShowMenuItem] = useState([]);
|
|
12000
12003
|
const [menuItemTitle, setMenuItemTitle] = useState([]);
|
|
12001
|
-
const toggleMenuItem = (index) => {
|
|
12004
|
+
const toggleMenuItem = (index, from = "NORMAL") => {
|
|
12002
12005
|
showMenuItem[index] = !showMenuItem[index];
|
|
12003
12006
|
if (showMenuItem[index]) {
|
|
12004
|
-
onOpen && onOpen(index);
|
|
12007
|
+
onOpen && onOpen(index, from);
|
|
12005
12008
|
} else {
|
|
12006
|
-
onClose && onClose(index);
|
|
12009
|
+
onClose && onClose(index, from);
|
|
12007
12010
|
}
|
|
12008
12011
|
const temp = showMenuItem.map(
|
|
12009
12012
|
(i, idx) => idx === index ? i : false
|
|
12010
12013
|
);
|
|
12011
12014
|
setShowMenuItem([...temp]);
|
|
12012
12015
|
};
|
|
12013
|
-
const hideMenuItem = (index) => {
|
|
12016
|
+
const hideMenuItem = (index, from = "NORMAL") => {
|
|
12014
12017
|
showMenuItem[index] = false;
|
|
12015
12018
|
setShowMenuItem([...showMenuItem]);
|
|
12016
|
-
onClose && onClose(index);
|
|
12019
|
+
onClose && onClose(index, from);
|
|
12017
12020
|
};
|
|
12018
12021
|
const updateTitle = (text, index) => {
|
|
12019
12022
|
menuItemTitle[index] = text;
|
|
@@ -13440,80 +13443,6 @@ const TextArea = (props) => {
|
|
|
13440
13443
|
};
|
|
13441
13444
|
TextArea.defaultProps = defaultProps$J;
|
|
13442
13445
|
TextArea.displayName = "NutTextArea";
|
|
13443
|
-
const defaultProps$I = {
|
|
13444
|
-
...ComponentDefaults,
|
|
13445
|
-
percent: 0,
|
|
13446
|
-
showText: false,
|
|
13447
|
-
animated: false,
|
|
13448
|
-
delay: 0
|
|
13449
|
-
};
|
|
13450
|
-
const Progress = (props) => {
|
|
13451
|
-
const {
|
|
13452
|
-
className,
|
|
13453
|
-
style,
|
|
13454
|
-
percent,
|
|
13455
|
-
background,
|
|
13456
|
-
color,
|
|
13457
|
-
strokeWidth,
|
|
13458
|
-
showText,
|
|
13459
|
-
animated,
|
|
13460
|
-
children,
|
|
13461
|
-
delay,
|
|
13462
|
-
...rest
|
|
13463
|
-
} = {
|
|
13464
|
-
...defaultProps$I,
|
|
13465
|
-
...props
|
|
13466
|
-
};
|
|
13467
|
-
const classPrefix2 = "nut-progress";
|
|
13468
|
-
const classesInner = classNames({
|
|
13469
|
-
[`${classPrefix2}-inner`]: true,
|
|
13470
|
-
[`${classPrefix2}-active`]: animated
|
|
13471
|
-
});
|
|
13472
|
-
const stylesOuter = {
|
|
13473
|
-
height: `${strokeWidth}px`,
|
|
13474
|
-
background
|
|
13475
|
-
};
|
|
13476
|
-
const [displayPercent, setDispalyPercent] = useState(0);
|
|
13477
|
-
const stylesInner = {
|
|
13478
|
-
width: `${displayPercent}%`,
|
|
13479
|
-
background: color
|
|
13480
|
-
};
|
|
13481
|
-
useEffect(() => {
|
|
13482
|
-
setDispalyPercent(percent);
|
|
13483
|
-
}, [percent]);
|
|
13484
|
-
useEffect(() => {
|
|
13485
|
-
let timer = null;
|
|
13486
|
-
if (delay) {
|
|
13487
|
-
setDispalyPercent(0);
|
|
13488
|
-
timer = setTimeout(() => {
|
|
13489
|
-
setDispalyPercent(percent);
|
|
13490
|
-
}, delay);
|
|
13491
|
-
}
|
|
13492
|
-
return () => {
|
|
13493
|
-
timer && clearTimeout(timer);
|
|
13494
|
-
};
|
|
13495
|
-
}, []);
|
|
13496
|
-
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(
|
|
13497
|
-
"div",
|
|
13498
|
-
{
|
|
13499
|
-
className: `${classPrefix2}-text`,
|
|
13500
|
-
style: { left: `${displayPercent}%` }
|
|
13501
|
-
},
|
|
13502
|
-
children || /* @__PURE__ */ React__default.createElement(
|
|
13503
|
-
"div",
|
|
13504
|
-
{
|
|
13505
|
-
className: `${classPrefix2}-text__inner`,
|
|
13506
|
-
style: {
|
|
13507
|
-
background: color
|
|
13508
|
-
}
|
|
13509
|
-
},
|
|
13510
|
-
percent,
|
|
13511
|
-
"%"
|
|
13512
|
-
)
|
|
13513
|
-
))));
|
|
13514
|
-
};
|
|
13515
|
-
Progress.defaultProps = defaultProps$I;
|
|
13516
|
-
Progress.displayName = "NutProgress";
|
|
13517
13446
|
class UploadOptions {
|
|
13518
13447
|
constructor() {
|
|
13519
13448
|
__publicField(this, "url", "");
|
|
@@ -13534,6 +13463,9 @@ class UploadOptions {
|
|
|
13534
13463
|
__publicField(this, "beforeXhrUpload");
|
|
13535
13464
|
}
|
|
13536
13465
|
}
|
|
13466
|
+
const UPLOADING = "uploading";
|
|
13467
|
+
const SUCCESS = "success";
|
|
13468
|
+
const ERROR = "error";
|
|
13537
13469
|
class Upload {
|
|
13538
13470
|
constructor(options) {
|
|
13539
13471
|
__publicField(this, "options");
|
|
@@ -13655,6 +13587,179 @@ const funcInterceptor = (interceptor, {
|
|
|
13655
13587
|
done();
|
|
13656
13588
|
}
|
|
13657
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
|
+
};
|
|
13658
13763
|
const defaultProps$H = {
|
|
13659
13764
|
...ComponentDefaults,
|
|
13660
13765
|
url: "",
|
|
@@ -13663,7 +13768,7 @@ const defaultProps$H = {
|
|
|
13663
13768
|
sourceType: ["album", "camera"],
|
|
13664
13769
|
mediaType: ["image", "video"],
|
|
13665
13770
|
camera: "back",
|
|
13666
|
-
uploadIcon:
|
|
13771
|
+
uploadIcon: /* @__PURE__ */ React__default.createElement(a$a, { size: "20px", color: "#808080" }),
|
|
13667
13772
|
uploadLabel: "",
|
|
13668
13773
|
previewType: "picture",
|
|
13669
13774
|
fit: "cover",
|
|
@@ -13686,19 +13791,6 @@ const defaultProps$H = {
|
|
|
13686
13791
|
return true;
|
|
13687
13792
|
}
|
|
13688
13793
|
};
|
|
13689
|
-
class FileItem {
|
|
13690
|
-
constructor() {
|
|
13691
|
-
__publicField(this, "status", "ready");
|
|
13692
|
-
__publicField(this, "message", "准备中..");
|
|
13693
|
-
__publicField(this, "uid", Date.now().toString());
|
|
13694
|
-
__publicField(this, "name");
|
|
13695
|
-
__publicField(this, "url");
|
|
13696
|
-
__publicField(this, "type");
|
|
13697
|
-
__publicField(this, "path");
|
|
13698
|
-
__publicField(this, "percentage", 0);
|
|
13699
|
-
__publicField(this, "formData", {});
|
|
13700
|
-
}
|
|
13701
|
-
}
|
|
13702
13794
|
const InternalUploader = (props, ref) => {
|
|
13703
13795
|
const { locale } = useConfig$1();
|
|
13704
13796
|
const {
|
|
@@ -13744,13 +13836,15 @@ const InternalUploader = (props, ref) => {
|
|
|
13744
13836
|
beforeDelete,
|
|
13745
13837
|
...restProps
|
|
13746
13838
|
} = { ...defaultProps$H, ...props };
|
|
13747
|
-
const [fileList, setFileList] =
|
|
13748
|
-
|
|
13749
|
-
|
|
13750
|
-
|
|
13751
|
-
|
|
13839
|
+
const [fileList, setFileList] = usePropsValue({
|
|
13840
|
+
value,
|
|
13841
|
+
defaultValue,
|
|
13842
|
+
finalValue: [],
|
|
13843
|
+
onChange: (v) => {
|
|
13844
|
+
onChange == null ? void 0 : onChange(v);
|
|
13752
13845
|
}
|
|
13753
|
-
}
|
|
13846
|
+
});
|
|
13847
|
+
const [uploadQueue, setUploadQueue] = useState([]);
|
|
13754
13848
|
const classes = classNames(className, "nut-uploader");
|
|
13755
13849
|
useImperativeHandle(ref, () => ({
|
|
13756
13850
|
submit: () => {
|
|
@@ -13841,63 +13935,60 @@ const InternalUploader = (props, ref) => {
|
|
|
13841
13935
|
uploadOption.beforeXhrUpload = beforeXhrUpload;
|
|
13842
13936
|
uploadOption.onStart = (option) => {
|
|
13843
13937
|
clearUploadQueue(index);
|
|
13844
|
-
setFileList(
|
|
13845
|
-
|
|
13938
|
+
setFileList(
|
|
13939
|
+
fileList.map((item) => {
|
|
13846
13940
|
if (item.uid === fileItem.uid) {
|
|
13847
13941
|
item.status = "ready";
|
|
13848
13942
|
item.message = locale.uploader.readyUpload;
|
|
13849
13943
|
}
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13944
|
+
return item;
|
|
13945
|
+
})
|
|
13946
|
+
);
|
|
13853
13947
|
onStart && onStart(option);
|
|
13854
13948
|
};
|
|
13855
13949
|
uploadOption.onProgress = (e, option) => {
|
|
13856
|
-
setFileList(
|
|
13857
|
-
|
|
13950
|
+
setFileList(
|
|
13951
|
+
fileList.map((item) => {
|
|
13858
13952
|
if (item.uid === fileItem.uid) {
|
|
13859
|
-
item.status =
|
|
13953
|
+
item.status = UPLOADING;
|
|
13860
13954
|
item.message = locale.uploader.uploading;
|
|
13861
13955
|
item.percentage = e.progress;
|
|
13862
13956
|
onProgress && onProgress({ e, option, percentage: item.percentage });
|
|
13863
13957
|
}
|
|
13864
|
-
|
|
13865
|
-
|
|
13866
|
-
|
|
13958
|
+
return item;
|
|
13959
|
+
})
|
|
13960
|
+
);
|
|
13867
13961
|
};
|
|
13868
13962
|
uploadOption.onSuccess = (responseText, option) => {
|
|
13869
|
-
|
|
13870
|
-
|
|
13871
|
-
|
|
13872
|
-
|
|
13873
|
-
|
|
13874
|
-
|
|
13875
|
-
|
|
13876
|
-
}
|
|
13877
|
-
});
|
|
13878
|
-
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;
|
|
13879
13970
|
});
|
|
13880
|
-
|
|
13971
|
+
setFileList(list);
|
|
13972
|
+
onSuccess == null ? void 0 : onSuccess({
|
|
13881
13973
|
responseText,
|
|
13882
13974
|
option,
|
|
13883
|
-
fileList
|
|
13975
|
+
fileList: list
|
|
13884
13976
|
});
|
|
13885
13977
|
};
|
|
13886
13978
|
uploadOption.onFailure = (responseText, option) => {
|
|
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 = ERROR;
|
|
13982
|
+
item.message = locale.uploader.error;
|
|
13983
|
+
item.responseText = responseText;
|
|
13984
|
+
}
|
|
13985
|
+
return item;
|
|
13896
13986
|
});
|
|
13897
|
-
|
|
13987
|
+
setFileList(list);
|
|
13988
|
+
onFailure == null ? void 0 : onFailure({
|
|
13898
13989
|
responseText,
|
|
13899
13990
|
option,
|
|
13900
|
-
fileList
|
|
13991
|
+
fileList: list
|
|
13901
13992
|
});
|
|
13902
13993
|
};
|
|
13903
13994
|
const task = new UploaderTaro(uploadOption);
|
|
@@ -13931,11 +14022,7 @@ const InternalUploader = (props, ref) => {
|
|
|
13931
14022
|
fileItem.status = "ready";
|
|
13932
14023
|
fileItem.type = fileType;
|
|
13933
14024
|
fileItem.uid = `${fileItem.uid}_${index}`;
|
|
13934
|
-
|
|
13935
|
-
fileItem.message = locale.uploader.readyUpload;
|
|
13936
|
-
} else {
|
|
13937
|
-
fileItem.message = locale.uploader.waitingUpload;
|
|
13938
|
-
}
|
|
14025
|
+
fileItem.message = autoUpload ? locale.uploader.readyUpload : locale.uploader.waitingUpload;
|
|
13939
14026
|
if (getEnv() === "WEB") {
|
|
13940
14027
|
const formData = new FormData();
|
|
13941
14028
|
for (const [key, value2] of Object.entries(data)) {
|
|
@@ -13952,7 +14039,7 @@ const InternalUploader = (props, ref) => {
|
|
|
13952
14039
|
fileItem.url = fileType === "video" ? file.thumbTempFilePath : filepath;
|
|
13953
14040
|
}
|
|
13954
14041
|
fileList.push(fileItem);
|
|
13955
|
-
setFileList(
|
|
14042
|
+
setFileList(fileList);
|
|
13956
14043
|
executeUpload(fileItem, index);
|
|
13957
14044
|
});
|
|
13958
14045
|
};
|
|
@@ -13977,9 +14064,9 @@ const InternalUploader = (props, ref) => {
|
|
|
13977
14064
|
return filterFile;
|
|
13978
14065
|
};
|
|
13979
14066
|
const deleted = (file, index) => {
|
|
13980
|
-
fileList.
|
|
13981
|
-
onDelete
|
|
13982
|
-
setFileList(
|
|
14067
|
+
const deletedFileList = fileList.filter((file2, idx) => idx !== index);
|
|
14068
|
+
onDelete == null ? void 0 : onDelete(file, deletedFileList);
|
|
14069
|
+
setFileList(deletedFileList);
|
|
13983
14070
|
};
|
|
13984
14071
|
const onDeleteItem = (file, index) => {
|
|
13985
14072
|
clearUploadQueue(index);
|
|
@@ -13992,88 +14079,34 @@ const InternalUploader = (props, ref) => {
|
|
|
13992
14079
|
const { tempFiles } = res;
|
|
13993
14080
|
const _files = filterFiles(tempFiles);
|
|
13994
14081
|
readFile(_files);
|
|
13995
|
-
onChange && onChange({ fileList });
|
|
13996
14082
|
};
|
|
13997
14083
|
const onChangeImage = (res) => {
|
|
13998
14084
|
const { tempFiles } = res;
|
|
13999
14085
|
const _files = filterFiles(tempFiles);
|
|
14000
14086
|
readFile(_files);
|
|
14001
|
-
onChange && onChange({ fileList });
|
|
14002
14087
|
};
|
|
14003
14088
|
const handleItemClick = (file) => {
|
|
14004
|
-
onFileItemClick
|
|
14089
|
+
onFileItemClick == null ? void 0 : onFileItemClick(file);
|
|
14005
14090
|
};
|
|
14006
|
-
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 }))),
|
|
14007
|
-
|
|
14008
|
-
|
|
14009
|
-
{
|
|
14010
|
-
|
|
14011
|
-
|
|
14012
|
-
|
|
14013
|
-
|
|
14014
|
-
|
|
14015
|
-
|
|
14016
|
-
|
|
14017
|
-
|
|
14018
|
-
|
|
14019
|
-
|
|
14020
|
-
),
|
|
14021
|
-
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(
|
|
14022
|
-
Image$2,
|
|
14023
|
-
{
|
|
14024
|
-
className: "nut-uploader__preview-img__c",
|
|
14025
|
-
style: { objectFit: fit },
|
|
14026
|
-
mode: "aspectFit",
|
|
14027
|
-
src: item.url,
|
|
14028
|
-
onClick: () => handleItemClick(item)
|
|
14029
|
-
}
|
|
14030
|
-
)) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, previewUrl ? /* @__PURE__ */ React__default.createElement(
|
|
14031
|
-
Image$2,
|
|
14032
|
-
{
|
|
14033
|
-
className: "nut-uploader__preview-img__c",
|
|
14034
|
-
mode: "aspectFit",
|
|
14035
|
-
src: previewUrl,
|
|
14036
|
-
onClick: () => handleItemClick(item)
|
|
14037
|
-
}
|
|
14038
|
-
) : /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React__default.createElement(
|
|
14039
|
-
"div",
|
|
14040
|
-
{
|
|
14041
|
-
onClick: () => handleItemClick(item),
|
|
14042
|
-
className: "nut-uploader__preview-img__file__name"
|
|
14043
|
-
},
|
|
14044
|
-
/* @__PURE__ */ React__default.createElement(a$i, { color: "#808080" }),
|
|
14045
|
-
/* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
|
|
14046
|
-
))), item.status === "success" ? /* @__PURE__ */ React__default.createElement("div", { className: "tips" }, item.name) : null),
|
|
14047
|
-
previewType === "list" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React__default.createElement(
|
|
14048
|
-
"div",
|
|
14049
|
-
{
|
|
14050
|
-
className: `nut-uploader__preview-img__file__name ${item.status}`,
|
|
14051
|
-
onClick: () => handleItemClick(item)
|
|
14052
|
-
},
|
|
14053
|
-
/* @__PURE__ */ React__default.createElement(a$i, null),
|
|
14054
|
-
/* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
|
|
14055
|
-
), deletable && /* @__PURE__ */ React__default.createElement(
|
|
14056
|
-
a$p,
|
|
14057
|
-
{
|
|
14058
|
-
color: "#808080",
|
|
14059
|
-
className: "nut-uploader__preview-img__file__del",
|
|
14060
|
-
onClick: () => onDeleteItem(item, index)
|
|
14061
|
-
}
|
|
14062
|
-
), item.status === "uploading" && /* @__PURE__ */ React__default.createElement(
|
|
14063
|
-
Progress,
|
|
14064
|
-
{
|
|
14065
|
-
percent: item.percentage,
|
|
14066
|
-
color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
|
|
14067
|
-
showText: false
|
|
14068
|
-
}
|
|
14069
|
-
))
|
|
14070
|
-
);
|
|
14071
|
-
}), 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(
|
|
14072
14105
|
"div",
|
|
14073
14106
|
{
|
|
14074
14107
|
className: `nut-uploader__upload ${previewType} ${disabled ? "nut-uploader__upload-disabled" : ""}`
|
|
14075
14108
|
},
|
|
14076
|
-
/* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon
|
|
14109
|
+
/* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon, /* @__PURE__ */ React__default.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
|
|
14077
14110
|
/* @__PURE__ */ React__default.createElement(Button, { className: "nut-uploader__input", onClick: _chooseImage })
|
|
14078
14111
|
));
|
|
14079
14112
|
};
|
|
@@ -17464,7 +17497,7 @@ const Indicator = (props) => {
|
|
|
17464
17497
|
}
|
|
17465
17498
|
return childs;
|
|
17466
17499
|
};
|
|
17467
|
-
return /* @__PURE__ */ React__default.createElement("div", { className: classNames(classes, className), ...rest }, renderElement());
|
|
17500
|
+
return /* @__PURE__ */ React__default.createElement("div", { className: classNames(classPrefix$4, classes, className), ...rest }, renderElement());
|
|
17468
17501
|
};
|
|
17469
17502
|
Indicator.defaultProps = defaultProps$i;
|
|
17470
17503
|
Indicator.displayName = "NutIndicator";
|
|
@@ -17488,6 +17521,7 @@ const Swiper = forwardRef((props, ref) => {
|
|
|
17488
17521
|
duration,
|
|
17489
17522
|
direction,
|
|
17490
17523
|
defaultValue,
|
|
17524
|
+
onChange,
|
|
17491
17525
|
...rest
|
|
17492
17526
|
} = {
|
|
17493
17527
|
...defaultProps$h,
|
|
@@ -17572,14 +17606,24 @@ const Swiper = forwardRef((props, ref) => {
|
|
|
17572
17606
|
autoplay: autoPlay,
|
|
17573
17607
|
vertical: direction === "vertical",
|
|
17574
17608
|
indicatorDots: false,
|
|
17575
|
-
onChange:
|
|
17609
|
+
onChange: (e) => {
|
|
17610
|
+
var _a;
|
|
17611
|
+
handleOnChange(e);
|
|
17612
|
+
(_a = props.onChange) == null ? void 0 : _a.call(props, e);
|
|
17613
|
+
},
|
|
17576
17614
|
style: {
|
|
17577
17615
|
width: !width ? "100%" : `${width}px`,
|
|
17578
17616
|
height: !height ? "150px" : `${height}px`
|
|
17579
17617
|
},
|
|
17580
17618
|
...rest
|
|
17581
17619
|
},
|
|
17582
|
-
Children.toArray(children).map((child, index) =>
|
|
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
|
+
})
|
|
17583
17627
|
)
|
|
17584
17628
|
),
|
|
17585
17629
|
renderIndicator()
|
|
@@ -17641,7 +17685,9 @@ const ImagePreview = (props) => {
|
|
|
17641
17685
|
});
|
|
17642
17686
|
const [showPop, setShowPop] = useState(visible);
|
|
17643
17687
|
const [active, setActive] = useState(0);
|
|
17644
|
-
const [maxNo] = useState(
|
|
17688
|
+
const [maxNo, setMaxNo] = useState(
|
|
17689
|
+
(images == null ? void 0 : images.length) || 0 + ((videos == null ? void 0 : videos.length) || 0)
|
|
17690
|
+
);
|
|
17645
17691
|
const [store, setStore] = useState({
|
|
17646
17692
|
scale: 1,
|
|
17647
17693
|
moveable: false
|
|
@@ -17730,6 +17776,9 @@ const ImagePreview = (props) => {
|
|
|
17730
17776
|
useEffect(() => {
|
|
17731
17777
|
setActive(innerNo);
|
|
17732
17778
|
}, [innerNo]);
|
|
17779
|
+
useEffect(() => {
|
|
17780
|
+
setMaxNo((images == null ? void 0 : images.length) || 0 + ((videos == null ? void 0 : videos.length) || 0));
|
|
17781
|
+
}, [images, videos]);
|
|
17733
17782
|
const scaleNow = () => {
|
|
17734
17783
|
if (ref.current) {
|
|
17735
17784
|
ref.current.style.transform = `scale(${store.scale})`;
|
|
@@ -17746,7 +17795,7 @@ const ImagePreview = (props) => {
|
|
|
17746
17795
|
};
|
|
17747
17796
|
const onCloseInner = () => {
|
|
17748
17797
|
setShowPop(false);
|
|
17749
|
-
setActive(
|
|
17798
|
+
setActive(innerNo);
|
|
17750
17799
|
scaleNow();
|
|
17751
17800
|
onClose && onClose();
|
|
17752
17801
|
setStore({
|