@nutui/nutui-react 2.0.19-beta.1 → 2.0.20-beta.0
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 +25 -0
- package/dist/esm/Button.js +84 -5
- package/dist/esm/Image.js +1 -1
- package/dist/esm/Uploader.js +191 -191
- package/dist/esm/formitem2.js +184 -78
- 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/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 +281 -300
- package/dist/nutui.react.umd.js +281 -300
- package/dist/style.mjs +1 -1
- package/dist/types/packages/calendar/calendar.d.ts +4 -4
- package/dist/types/packages/uploader/file-item.d.ts +19 -0
- package/dist/types/packages/uploader/index.d.ts +2 -1
- package/dist/types/packages/uploader/preview.d.ts +2 -0
- package/dist/types/packages/uploader/upload.d.ts +3 -0
- package/dist/types/packages/uploader/uploader.d.ts +5 -23
- package/package.json +1 -1
- package/dist/esm/button2.js +0 -87
package/dist/nutui.react.es.js
CHANGED
|
@@ -6,7 +6,7 @@ var __publicField = (obj, key, value) => {
|
|
|
6
6
|
};
|
|
7
7
|
var _a;
|
|
8
8
|
/*!
|
|
9
|
-
* @nutui/nutui-react v2.0.
|
|
9
|
+
* @nutui/nutui-react v2.0.20 Fri Oct 13 2023 14:00:36 GMT+0800 (China Standard Time)
|
|
10
10
|
* (c) 2023 @jdf2e.
|
|
11
11
|
* Released under the MIT License.
|
|
12
12
|
*/
|
|
@@ -3750,7 +3750,7 @@ const defaultProps$1p = {
|
|
|
3750
3750
|
fit: "fill",
|
|
3751
3751
|
position: "center",
|
|
3752
3752
|
alt: "",
|
|
3753
|
-
width: "
|
|
3753
|
+
width: "",
|
|
3754
3754
|
height: "",
|
|
3755
3755
|
error: true,
|
|
3756
3756
|
loading: true,
|
|
@@ -16461,11 +16461,11 @@ class FormStore {
|
|
|
16461
16461
|
...this.store,
|
|
16462
16462
|
...newStore
|
|
16463
16463
|
};
|
|
16464
|
-
this.fieldEntities.forEach((
|
|
16465
|
-
const { name } =
|
|
16464
|
+
this.fieldEntities.forEach((entity) => {
|
|
16465
|
+
const { name } = entity.props;
|
|
16466
16466
|
Object.keys(newStore).forEach((key) => {
|
|
16467
16467
|
if (key === name) {
|
|
16468
|
-
|
|
16468
|
+
entity.onStoreChange("update");
|
|
16469
16469
|
}
|
|
16470
16470
|
});
|
|
16471
16471
|
});
|
|
@@ -16476,44 +16476,19 @@ class FormStore {
|
|
|
16476
16476
|
...callback
|
|
16477
16477
|
};
|
|
16478
16478
|
});
|
|
16479
|
-
__publicField(this, "
|
|
16480
|
-
|
|
16479
|
+
__publicField(this, "validateFields", async (nameList) => {
|
|
16480
|
+
var _a2;
|
|
16481
|
+
let filterEntitys = [];
|
|
16482
|
+
const errs = [];
|
|
16481
16483
|
this.errors.length = 0;
|
|
16482
|
-
this.fieldEntities.forEach((entity) => {
|
|
16483
|
-
var _a2;
|
|
16484
|
-
const { name, rules: rules2 = [] } = entity.props;
|
|
16485
|
-
const descriptor = {};
|
|
16486
|
-
if (rules2.length) {
|
|
16487
|
-
if (rules2.length > 1) {
|
|
16488
|
-
descriptor[name] = [];
|
|
16489
|
-
rules2.forEach((v) => {
|
|
16490
|
-
descriptor[name].push(v);
|
|
16491
|
-
});
|
|
16492
|
-
} else {
|
|
16493
|
-
descriptor[name] = rules2[0];
|
|
16494
|
-
}
|
|
16495
|
-
}
|
|
16496
|
-
const validator = new Schema(descriptor);
|
|
16497
|
-
validator.messages();
|
|
16498
|
-
validator.validate({ [name]: (_a2 = this.store) == null ? void 0 : _a2[name] }, (errors) => {
|
|
16499
|
-
if (errors) {
|
|
16500
|
-
err.push(...errors);
|
|
16501
|
-
this.errors[name] = errors;
|
|
16502
|
-
}
|
|
16503
|
-
entity.onStoreChange("validate");
|
|
16504
|
-
});
|
|
16505
|
-
});
|
|
16506
|
-
return err;
|
|
16507
|
-
});
|
|
16508
|
-
__publicField(this, "validateFields", (nameList) => {
|
|
16509
16484
|
if (!nameList || nameList.length === 0) {
|
|
16510
|
-
this.
|
|
16511
|
-
|
|
16485
|
+
filterEntitys = this.fieldEntities;
|
|
16486
|
+
} else {
|
|
16487
|
+
filterEntitys = this.fieldEntities.filter(
|
|
16488
|
+
({ props: { name } }) => nameList.includes(name)
|
|
16489
|
+
);
|
|
16512
16490
|
}
|
|
16513
|
-
|
|
16514
|
-
return nameList.includes(name);
|
|
16515
|
-
}).forEach((entity) => {
|
|
16516
|
-
var _a2;
|
|
16491
|
+
for (const entity of filterEntitys) {
|
|
16517
16492
|
const { name, rules: rules2 = [] } = entity.props;
|
|
16518
16493
|
const descriptor = {};
|
|
16519
16494
|
if (rules2.length) {
|
|
@@ -16527,19 +16502,22 @@ class FormStore {
|
|
|
16527
16502
|
}
|
|
16528
16503
|
}
|
|
16529
16504
|
const validator = new Schema(descriptor);
|
|
16530
|
-
|
|
16531
|
-
validator.validate({ [name]: (_a2 = this.store) == null ? void 0 : _a2[name] }, (errors) => {
|
|
16505
|
+
try {
|
|
16532
16506
|
this.errors[name] = [];
|
|
16507
|
+
await validator.validate({ [name]: (_a2 = this.store) == null ? void 0 : _a2[name] });
|
|
16508
|
+
} catch ({ errors }) {
|
|
16533
16509
|
if (errors) {
|
|
16510
|
+
errs.push(...errors);
|
|
16534
16511
|
this.errors[name] = errors;
|
|
16535
16512
|
}
|
|
16536
|
-
|
|
16537
|
-
|
|
16538
|
-
}
|
|
16513
|
+
}
|
|
16514
|
+
entity.onStoreChange("validate");
|
|
16515
|
+
}
|
|
16516
|
+
return errs;
|
|
16539
16517
|
});
|
|
16540
|
-
__publicField(this, "submit", () => {
|
|
16518
|
+
__publicField(this, "submit", async () => {
|
|
16541
16519
|
var _a2, _b, _c, _d;
|
|
16542
|
-
const errors = this.
|
|
16520
|
+
const errors = await this.validateFields();
|
|
16543
16521
|
if (errors.length === 0) {
|
|
16544
16522
|
(_b = (_a2 = this.callbacks).onFinish) == null ? void 0 : _b.call(_a2, this.store);
|
|
16545
16523
|
} else if (errors.length > 0) {
|
|
@@ -18986,6 +18964,99 @@ const TextArea = (props) => {
|
|
|
18986
18964
|
};
|
|
18987
18965
|
TextArea.defaultProps = defaultProps$H;
|
|
18988
18966
|
TextArea.displayName = "NutTextArea";
|
|
18967
|
+
class UploadOptions {
|
|
18968
|
+
constructor() {
|
|
18969
|
+
__publicField(this, "url", "");
|
|
18970
|
+
__publicField(this, "name", "file");
|
|
18971
|
+
__publicField(this, "fileType", "image");
|
|
18972
|
+
__publicField(this, "formData");
|
|
18973
|
+
__publicField(this, "sourceFile");
|
|
18974
|
+
__publicField(this, "method", "post");
|
|
18975
|
+
__publicField(this, "xhrState", 200);
|
|
18976
|
+
__publicField(this, "timeout", 30 * 1e3);
|
|
18977
|
+
__publicField(this, "headers", {});
|
|
18978
|
+
__publicField(this, "withCredentials", false);
|
|
18979
|
+
__publicField(this, "onStart");
|
|
18980
|
+
__publicField(this, "taroFilePath");
|
|
18981
|
+
__publicField(this, "onProgress");
|
|
18982
|
+
__publicField(this, "onSuccess");
|
|
18983
|
+
__publicField(this, "onFailure");
|
|
18984
|
+
__publicField(this, "beforeXhrUpload");
|
|
18985
|
+
}
|
|
18986
|
+
}
|
|
18987
|
+
const UPLOADING = "uploading";
|
|
18988
|
+
const SUCCESS = "success";
|
|
18989
|
+
const ERROR = "error";
|
|
18990
|
+
class Upload {
|
|
18991
|
+
constructor(options2) {
|
|
18992
|
+
__publicField(this, "options");
|
|
18993
|
+
this.options = options2;
|
|
18994
|
+
}
|
|
18995
|
+
upload() {
|
|
18996
|
+
var _a2;
|
|
18997
|
+
const { options: options2 } = this;
|
|
18998
|
+
const xhr = new XMLHttpRequest();
|
|
18999
|
+
xhr.timeout = options2.timeout;
|
|
19000
|
+
if (xhr.upload) {
|
|
19001
|
+
xhr.upload.addEventListener(
|
|
19002
|
+
"progress",
|
|
19003
|
+
(e) => {
|
|
19004
|
+
var _a3;
|
|
19005
|
+
(_a3 = options2.onProgress) == null ? void 0 : _a3.call(options2, e, options2);
|
|
19006
|
+
},
|
|
19007
|
+
false
|
|
19008
|
+
);
|
|
19009
|
+
xhr.onreadystatechange = () => {
|
|
19010
|
+
var _a3, _b;
|
|
19011
|
+
if (xhr.readyState === 4) {
|
|
19012
|
+
if (xhr.status === options2.xhrState) {
|
|
19013
|
+
(_a3 = options2.onSuccess) == null ? void 0 : _a3.call(options2, xhr.responseText, options2);
|
|
19014
|
+
} else {
|
|
19015
|
+
(_b = options2.onFailure) == null ? void 0 : _b.call(options2, xhr.responseText, options2);
|
|
19016
|
+
}
|
|
19017
|
+
}
|
|
19018
|
+
};
|
|
19019
|
+
xhr.withCredentials = options2.withCredentials;
|
|
19020
|
+
xhr.open(options2.method, options2.url, true);
|
|
19021
|
+
for (const [key, value] of Object.entries(options2.headers)) {
|
|
19022
|
+
xhr.setRequestHeader(key, value);
|
|
19023
|
+
}
|
|
19024
|
+
(_a2 = options2.onStart) == null ? void 0 : _a2.call(options2, options2);
|
|
19025
|
+
if (options2.beforeXhrUpload) {
|
|
19026
|
+
options2.beforeXhrUpload(xhr, options2);
|
|
19027
|
+
} else {
|
|
19028
|
+
xhr.send(options2.formData);
|
|
19029
|
+
}
|
|
19030
|
+
} else {
|
|
19031
|
+
console.warn("浏览器不支持 XMLHttpRequest");
|
|
19032
|
+
}
|
|
19033
|
+
}
|
|
19034
|
+
}
|
|
19035
|
+
const funcInterceptor = (interceptor, {
|
|
19036
|
+
args = [],
|
|
19037
|
+
done,
|
|
19038
|
+
canceled
|
|
19039
|
+
}) => {
|
|
19040
|
+
if (interceptor) {
|
|
19041
|
+
const returnVal = interceptor.apply(null, args);
|
|
19042
|
+
if (isPromise(returnVal)) {
|
|
19043
|
+
returnVal.then((value) => {
|
|
19044
|
+
if (value) {
|
|
19045
|
+
done(value);
|
|
19046
|
+
} else if (canceled) {
|
|
19047
|
+
canceled();
|
|
19048
|
+
}
|
|
19049
|
+
}).catch(() => {
|
|
19050
|
+
});
|
|
19051
|
+
} else if (returnVal) {
|
|
19052
|
+
done();
|
|
19053
|
+
} else if (canceled) {
|
|
19054
|
+
canceled();
|
|
19055
|
+
}
|
|
19056
|
+
} else {
|
|
19057
|
+
done();
|
|
19058
|
+
}
|
|
19059
|
+
};
|
|
18989
19060
|
const defaultProps$G = {
|
|
18990
19061
|
...ComponentDefaults,
|
|
18991
19062
|
percent: 0,
|
|
@@ -19106,96 +19177,105 @@ const Progress = (props) => {
|
|
|
19106
19177
|
};
|
|
19107
19178
|
Progress.defaultProps = defaultProps$G;
|
|
19108
19179
|
Progress.displayName = "NutProgress";
|
|
19109
|
-
|
|
19110
|
-
|
|
19111
|
-
|
|
19112
|
-
|
|
19113
|
-
|
|
19114
|
-
|
|
19115
|
-
|
|
19116
|
-
|
|
19117
|
-
|
|
19118
|
-
|
|
19119
|
-
|
|
19120
|
-
|
|
19121
|
-
|
|
19122
|
-
|
|
19123
|
-
|
|
19124
|
-
|
|
19125
|
-
__publicField(this, "onFailure");
|
|
19126
|
-
__publicField(this, "beforeXhrUpload");
|
|
19127
|
-
}
|
|
19128
|
-
}
|
|
19129
|
-
class Upload {
|
|
19130
|
-
constructor(options2) {
|
|
19131
|
-
__publicField(this, "options");
|
|
19132
|
-
this.options = options2;
|
|
19133
|
-
}
|
|
19134
|
-
upload() {
|
|
19180
|
+
const Preview = ({
|
|
19181
|
+
fileList,
|
|
19182
|
+
previewType,
|
|
19183
|
+
deletable,
|
|
19184
|
+
onDeleteItem,
|
|
19185
|
+
handleItemClick,
|
|
19186
|
+
previewUrl,
|
|
19187
|
+
children
|
|
19188
|
+
}) => {
|
|
19189
|
+
const renderIcon = (item) => {
|
|
19190
|
+
if (item.status === ERROR) {
|
|
19191
|
+
return item.failIcon || /* @__PURE__ */ React__default.createElement(x$9, { color: "#fff" });
|
|
19192
|
+
}
|
|
19193
|
+
return item.loadingIcon || /* @__PURE__ */ React__default.createElement(k$3, { className: "nut-icon-loading", color: "#fff" });
|
|
19194
|
+
};
|
|
19195
|
+
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, fileList.length !== 0 && fileList.map((item, index) => {
|
|
19135
19196
|
var _a2;
|
|
19136
|
-
|
|
19137
|
-
|
|
19138
|
-
|
|
19139
|
-
|
|
19140
|
-
|
|
19141
|
-
|
|
19142
|
-
|
|
19143
|
-
|
|
19144
|
-
|
|
19197
|
+
return /* @__PURE__ */ React__default.createElement(
|
|
19198
|
+
"div",
|
|
19199
|
+
{
|
|
19200
|
+
className: `nut-uploader__preview ${previewType}`,
|
|
19201
|
+
key: item.uid
|
|
19202
|
+
},
|
|
19203
|
+
previewType === "picture" && deletable && /* @__PURE__ */ React__default.createElement(
|
|
19204
|
+
x$9,
|
|
19205
|
+
{
|
|
19206
|
+
color: "rgba(0,0,0,0.6)",
|
|
19207
|
+
className: "close",
|
|
19208
|
+
onClick: () => onDeleteItem(item, index)
|
|
19209
|
+
}
|
|
19210
|
+
),
|
|
19211
|
+
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)), ((_a2 = item.type) == null ? void 0 : _a2.includes("image")) ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, item.url && /* @__PURE__ */ React__default.createElement(
|
|
19212
|
+
"img",
|
|
19213
|
+
{
|
|
19214
|
+
className: "nut-uploader__preview-img__c",
|
|
19215
|
+
style: { objectFit: "fill" },
|
|
19216
|
+
src: item.url,
|
|
19217
|
+
alt: "",
|
|
19218
|
+
onClick: () => handleItemClick(item)
|
|
19219
|
+
}
|
|
19220
|
+
)) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, previewUrl ? /* @__PURE__ */ React__default.createElement(
|
|
19221
|
+
"img",
|
|
19222
|
+
{
|
|
19223
|
+
className: "nut-uploader__preview-img__c",
|
|
19224
|
+
src: previewUrl,
|
|
19225
|
+
alt: "",
|
|
19226
|
+
onClick: () => handleItemClick(item)
|
|
19227
|
+
}
|
|
19228
|
+
) : /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React__default.createElement(
|
|
19229
|
+
"div",
|
|
19230
|
+
{
|
|
19231
|
+
onClick: () => handleItemClick(item),
|
|
19232
|
+
className: "nut-uploader__preview-img__file__name"
|
|
19145
19233
|
},
|
|
19146
|
-
|
|
19147
|
-
|
|
19148
|
-
|
|
19149
|
-
|
|
19150
|
-
|
|
19151
|
-
|
|
19152
|
-
|
|
19153
|
-
|
|
19154
|
-
|
|
19155
|
-
|
|
19234
|
+
/* @__PURE__ */ React__default.createElement(x$6, { color: "#808080" }),
|
|
19235
|
+
/* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
|
|
19236
|
+
))), item.status === "success" ? /* @__PURE__ */ React__default.createElement("div", { className: "tips" }, item.name) : null),
|
|
19237
|
+
previewType === "list" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React__default.createElement(
|
|
19238
|
+
"div",
|
|
19239
|
+
{
|
|
19240
|
+
className: `nut-uploader__preview-img__file__name ${item.status}`,
|
|
19241
|
+
onClick: () => handleItemClick(item)
|
|
19242
|
+
},
|
|
19243
|
+
/* @__PURE__ */ React__default.createElement(x$6, null),
|
|
19244
|
+
/* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
|
|
19245
|
+
), deletable && /* @__PURE__ */ React__default.createElement(
|
|
19246
|
+
y$8,
|
|
19247
|
+
{
|
|
19248
|
+
color: "#808080",
|
|
19249
|
+
className: "nut-uploader__preview-img__file__del",
|
|
19250
|
+
onClick: () => onDeleteItem(item, index)
|
|
19156
19251
|
}
|
|
19157
|
-
|
|
19158
|
-
|
|
19159
|
-
|
|
19160
|
-
|
|
19161
|
-
|
|
19162
|
-
|
|
19163
|
-
(_a2 = options2.onStart) == null ? void 0 : _a2.call(options2, options2);
|
|
19164
|
-
if (options2.beforeXhrUpload) {
|
|
19165
|
-
options2.beforeXhrUpload(xhr, options2);
|
|
19166
|
-
} else {
|
|
19167
|
-
xhr.send(options2.formData);
|
|
19168
|
-
}
|
|
19169
|
-
} else {
|
|
19170
|
-
console.warn("浏览器不支持 XMLHttpRequest");
|
|
19171
|
-
}
|
|
19172
|
-
}
|
|
19173
|
-
}
|
|
19174
|
-
const funcInterceptor = (interceptor, {
|
|
19175
|
-
args = [],
|
|
19176
|
-
done,
|
|
19177
|
-
canceled
|
|
19178
|
-
}) => {
|
|
19179
|
-
if (interceptor) {
|
|
19180
|
-
const returnVal = interceptor.apply(null, args);
|
|
19181
|
-
if (isPromise(returnVal)) {
|
|
19182
|
-
returnVal.then((value) => {
|
|
19183
|
-
if (value) {
|
|
19184
|
-
done(value);
|
|
19185
|
-
} else if (canceled) {
|
|
19186
|
-
canceled();
|
|
19252
|
+
), item.status === "uploading" && /* @__PURE__ */ React__default.createElement(
|
|
19253
|
+
Progress,
|
|
19254
|
+
{
|
|
19255
|
+
percent: item.percentage,
|
|
19256
|
+
color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
|
|
19257
|
+
showText: false
|
|
19187
19258
|
}
|
|
19188
|
-
|
|
19189
|
-
|
|
19190
|
-
|
|
19191
|
-
done();
|
|
19192
|
-
} else if (canceled) {
|
|
19193
|
-
canceled();
|
|
19194
|
-
}
|
|
19195
|
-
} else {
|
|
19196
|
-
done();
|
|
19197
|
-
}
|
|
19259
|
+
))
|
|
19260
|
+
);
|
|
19261
|
+
}));
|
|
19198
19262
|
};
|
|
19263
|
+
class FileItem {
|
|
19264
|
+
constructor() {
|
|
19265
|
+
__publicField(this, "status", "ready");
|
|
19266
|
+
__publicField(this, "message", "准备中..");
|
|
19267
|
+
__publicField(this, "uid", (/* @__PURE__ */ new Date()).getTime().toString());
|
|
19268
|
+
__publicField(this, "name");
|
|
19269
|
+
__publicField(this, "url");
|
|
19270
|
+
__publicField(this, "type");
|
|
19271
|
+
__publicField(this, "path");
|
|
19272
|
+
__publicField(this, "percentage", 0);
|
|
19273
|
+
__publicField(this, "formData", {});
|
|
19274
|
+
__publicField(this, "responseText");
|
|
19275
|
+
__publicField(this, "loadingIcon");
|
|
19276
|
+
__publicField(this, "failIcon");
|
|
19277
|
+
}
|
|
19278
|
+
}
|
|
19199
19279
|
const defaultProps$F = {
|
|
19200
19280
|
...ComponentDefaults,
|
|
19201
19281
|
url: "",
|
|
@@ -19218,24 +19298,11 @@ const defaultProps$F = {
|
|
|
19218
19298
|
preview: true,
|
|
19219
19299
|
deletable: true,
|
|
19220
19300
|
capture: false,
|
|
19301
|
+
uploadIcon: /* @__PURE__ */ React__default.createElement(x$3, { width: "20px", height: "20px", color: "#808080" }),
|
|
19221
19302
|
beforeDelete: (file, files) => {
|
|
19222
19303
|
return true;
|
|
19223
19304
|
}
|
|
19224
19305
|
};
|
|
19225
|
-
class FileItem {
|
|
19226
|
-
constructor() {
|
|
19227
|
-
__publicField(this, "status", "ready");
|
|
19228
|
-
__publicField(this, "message", "准备中..");
|
|
19229
|
-
__publicField(this, "uid", (/* @__PURE__ */ new Date()).getTime().toString());
|
|
19230
|
-
__publicField(this, "name");
|
|
19231
|
-
__publicField(this, "url");
|
|
19232
|
-
__publicField(this, "type");
|
|
19233
|
-
__publicField(this, "path");
|
|
19234
|
-
__publicField(this, "percentage", 0);
|
|
19235
|
-
__publicField(this, "formData", new FormData());
|
|
19236
|
-
__publicField(this, "responseText");
|
|
19237
|
-
}
|
|
19238
|
-
}
|
|
19239
19306
|
const InternalUploader = (props, ref) => {
|
|
19240
19307
|
const { locale } = useConfig();
|
|
19241
19308
|
const {
|
|
@@ -19280,13 +19347,15 @@ const InternalUploader = (props, ref) => {
|
|
|
19280
19347
|
beforeDelete,
|
|
19281
19348
|
...restProps
|
|
19282
19349
|
} = { ...defaultProps$F, ...props };
|
|
19283
|
-
const [fileList, setFileList] =
|
|
19284
|
-
|
|
19285
|
-
|
|
19286
|
-
|
|
19287
|
-
|
|
19350
|
+
const [fileList, setFileList] = usePropsValue({
|
|
19351
|
+
value,
|
|
19352
|
+
defaultValue,
|
|
19353
|
+
finalValue: [],
|
|
19354
|
+
onChange: (v) => {
|
|
19355
|
+
onChange == null ? void 0 : onChange(v);
|
|
19288
19356
|
}
|
|
19289
|
-
}
|
|
19357
|
+
});
|
|
19358
|
+
const [uploadQueue, setUploadQueue] = useState([]);
|
|
19290
19359
|
const classes = classNames(className, "nut-uploader");
|
|
19291
19360
|
useImperativeHandle(ref, () => ({
|
|
19292
19361
|
submit: () => {
|
|
@@ -19312,10 +19381,11 @@ const InternalUploader = (props, ref) => {
|
|
|
19312
19381
|
el.value = "";
|
|
19313
19382
|
};
|
|
19314
19383
|
const executeUpload = (fileItem, index) => {
|
|
19384
|
+
var _a2, _b;
|
|
19315
19385
|
const uploadOption = new UploadOptions();
|
|
19316
19386
|
uploadOption.url = url2;
|
|
19317
19387
|
for (const [key, value2] of Object.entries(data)) {
|
|
19318
|
-
fileItem.formData.append(key, value2);
|
|
19388
|
+
(_a2 = fileItem.formData) == null ? void 0 : _a2.append(key, value2);
|
|
19319
19389
|
}
|
|
19320
19390
|
uploadOption.formData = fileItem.formData;
|
|
19321
19391
|
uploadOption.timeout = timeout2 * 1;
|
|
@@ -19325,73 +19395,67 @@ const InternalUploader = (props, ref) => {
|
|
|
19325
19395
|
uploadOption.withCredentials = withCredentials;
|
|
19326
19396
|
uploadOption.beforeXhrUpload = beforeXhrUpload;
|
|
19327
19397
|
try {
|
|
19328
|
-
uploadOption.sourceFile = fileItem.formData.get(name);
|
|
19398
|
+
uploadOption.sourceFile = (_b = fileItem.formData) == null ? void 0 : _b.get(name);
|
|
19329
19399
|
} catch (error) {
|
|
19330
19400
|
console.warn(error);
|
|
19331
19401
|
}
|
|
19332
19402
|
uploadOption.onStart = (option) => {
|
|
19333
19403
|
clearUploadQueue(index);
|
|
19334
|
-
setFileList(
|
|
19335
|
-
|
|
19404
|
+
setFileList(
|
|
19405
|
+
fileList.map((item) => {
|
|
19336
19406
|
if (item.uid === fileItem.uid) {
|
|
19337
19407
|
item.status = "ready";
|
|
19338
19408
|
item.message = locale.uploader.readyUpload;
|
|
19339
19409
|
}
|
|
19340
19410
|
return item;
|
|
19341
|
-
})
|
|
19342
|
-
|
|
19343
|
-
});
|
|
19411
|
+
})
|
|
19412
|
+
);
|
|
19344
19413
|
onStart && onStart(option);
|
|
19345
19414
|
};
|
|
19346
19415
|
uploadOption.onProgress = (e, option) => {
|
|
19347
|
-
setFileList(
|
|
19348
|
-
|
|
19416
|
+
setFileList(
|
|
19417
|
+
fileList.map((item) => {
|
|
19349
19418
|
if (item.uid === fileItem.uid) {
|
|
19350
|
-
item.status =
|
|
19419
|
+
item.status = UPLOADING;
|
|
19351
19420
|
item.message = locale.uploader.uploading;
|
|
19352
19421
|
item.percentage = (e.loaded / e.total * 100).toFixed(0);
|
|
19353
19422
|
onProgress && onProgress({ e, option, percentage: item.percentage });
|
|
19354
19423
|
}
|
|
19355
19424
|
return item;
|
|
19356
|
-
})
|
|
19357
|
-
|
|
19358
|
-
});
|
|
19425
|
+
})
|
|
19426
|
+
);
|
|
19359
19427
|
};
|
|
19360
19428
|
uploadOption.onSuccess = (responseText, option) => {
|
|
19361
|
-
|
|
19362
|
-
|
|
19363
|
-
|
|
19364
|
-
|
|
19365
|
-
|
|
19366
|
-
|
|
19367
|
-
|
|
19368
|
-
}
|
|
19369
|
-
return item;
|
|
19370
|
-
});
|
|
19371
|
-
return [...fileList2];
|
|
19429
|
+
const list = fileList.map((item) => {
|
|
19430
|
+
if (item.uid === fileItem.uid) {
|
|
19431
|
+
item.status = SUCCESS;
|
|
19432
|
+
item.message = locale.uploader.success;
|
|
19433
|
+
item.responseText = responseText;
|
|
19434
|
+
}
|
|
19435
|
+
return item;
|
|
19372
19436
|
});
|
|
19373
|
-
|
|
19437
|
+
setFileList(list);
|
|
19438
|
+
onUpdate == null ? void 0 : onUpdate(list);
|
|
19439
|
+
onSuccess == null ? void 0 : onSuccess({
|
|
19374
19440
|
responseText,
|
|
19375
19441
|
option,
|
|
19376
|
-
fileList
|
|
19442
|
+
fileList: list
|
|
19377
19443
|
});
|
|
19378
19444
|
};
|
|
19379
19445
|
uploadOption.onFailure = (responseText, option) => {
|
|
19380
|
-
|
|
19381
|
-
|
|
19382
|
-
|
|
19383
|
-
|
|
19384
|
-
|
|
19385
|
-
|
|
19386
|
-
|
|
19387
|
-
return item;
|
|
19388
|
-
});
|
|
19389
|
-
return [...fileList2];
|
|
19446
|
+
const list = fileList.map((item) => {
|
|
19447
|
+
if (item.uid === fileItem.uid) {
|
|
19448
|
+
item.status = ERROR;
|
|
19449
|
+
item.message = locale.uploader.error;
|
|
19450
|
+
item.responseText = responseText;
|
|
19451
|
+
}
|
|
19452
|
+
return item;
|
|
19390
19453
|
});
|
|
19391
|
-
|
|
19454
|
+
setFileList(list);
|
|
19455
|
+
onFailure == null ? void 0 : onFailure({
|
|
19392
19456
|
responseText,
|
|
19393
19457
|
option,
|
|
19394
|
-
fileList
|
|
19458
|
+
fileList: list
|
|
19395
19459
|
});
|
|
19396
19460
|
};
|
|
19397
19461
|
const task = new Upload(uploadOption);
|
|
@@ -19416,11 +19480,7 @@ const InternalUploader = (props, ref) => {
|
|
|
19416
19480
|
fileItem.type = file.type;
|
|
19417
19481
|
fileItem.formData = formData;
|
|
19418
19482
|
fileItem.uid = file.lastModified + fileItem.uid;
|
|
19419
|
-
|
|
19420
|
-
fileItem.message = locale.uploader.readyUpload;
|
|
19421
|
-
} else {
|
|
19422
|
-
fileItem.message = locale.uploader.waitingUpload;
|
|
19423
|
-
}
|
|
19483
|
+
fileItem.message = autoUpload ? locale.uploader.readyUpload : locale.uploader.waitingUpload;
|
|
19424
19484
|
executeUpload(fileItem, index);
|
|
19425
19485
|
if (preview && file.type.includes("image")) {
|
|
19426
19486
|
const reader = new FileReader();
|
|
@@ -19431,8 +19491,7 @@ const InternalUploader = (props, ref) => {
|
|
|
19431
19491
|
};
|
|
19432
19492
|
reader.readAsDataURL(file);
|
|
19433
19493
|
} else {
|
|
19434
|
-
fileList
|
|
19435
|
-
setFileList([...fileList]);
|
|
19494
|
+
setFileList([...fileList, fileItem]);
|
|
19436
19495
|
}
|
|
19437
19496
|
});
|
|
19438
19497
|
};
|
|
@@ -19459,9 +19518,9 @@ const InternalUploader = (props, ref) => {
|
|
|
19459
19518
|
return filterFile;
|
|
19460
19519
|
};
|
|
19461
19520
|
const deleted = (file, index) => {
|
|
19462
|
-
fileList.
|
|
19463
|
-
onDelete
|
|
19464
|
-
setFileList(
|
|
19521
|
+
const deletedFileList = fileList.filter((file2, idx) => idx !== index);
|
|
19522
|
+
onDelete == null ? void 0 : onDelete(file, deletedFileList);
|
|
19523
|
+
setFileList(deletedFileList);
|
|
19465
19524
|
};
|
|
19466
19525
|
const onDeleteItem = (file, index) => {
|
|
19467
19526
|
clearUploadQueue(index);
|
|
@@ -19487,131 +19546,53 @@ const InternalUploader = (props, ref) => {
|
|
|
19487
19546
|
const _files = filterFiles(new Array().slice.call(files));
|
|
19488
19547
|
readFile(_files);
|
|
19489
19548
|
}
|
|
19490
|
-
|
|
19549
|
+
setFileList(fileList);
|
|
19491
19550
|
if (clearInput) {
|
|
19492
19551
|
clearInputValue($el);
|
|
19493
19552
|
}
|
|
19494
19553
|
};
|
|
19495
19554
|
const handleItemClick = (file) => {
|
|
19496
|
-
onFileItemClick
|
|
19555
|
+
onFileItemClick == null ? void 0 : onFileItemClick(file);
|
|
19497
19556
|
};
|
|
19498
|
-
return /* @__PURE__ */ React__default.createElement("div", { className: classes, ...restProps }, (children || previewType === "list") && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__slot" },
|
|
19557
|
+
return /* @__PURE__ */ React__default.createElement("div", { className: classes, ...restProps }, (children || previewType === "list") && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__slot" }, children || /* @__PURE__ */ React__default.createElement(Button, { size: "small", type: "primary" }, "上传文件"), maxCount > fileList.length && /* @__PURE__ */ React__default.createElement(
|
|
19499
19558
|
"input",
|
|
19500
19559
|
{
|
|
19501
19560
|
className: "nut-uploader__input",
|
|
19502
19561
|
type: "file",
|
|
19503
|
-
capture
|
|
19562
|
+
capture,
|
|
19504
19563
|
name,
|
|
19505
19564
|
accept,
|
|
19506
19565
|
disabled,
|
|
19507
19566
|
multiple,
|
|
19508
19567
|
onChange: fileChange
|
|
19509
19568
|
}
|
|
19510
|
-
)
|
|
19511
|
-
|
|
19569
|
+
)), /* @__PURE__ */ React__default.createElement(
|
|
19570
|
+
Preview,
|
|
19512
19571
|
{
|
|
19513
|
-
|
|
19514
|
-
|
|
19515
|
-
|
|
19516
|
-
|
|
19517
|
-
|
|
19518
|
-
|
|
19519
|
-
|
|
19572
|
+
...{
|
|
19573
|
+
fileList,
|
|
19574
|
+
previewType,
|
|
19575
|
+
deletable,
|
|
19576
|
+
onDeleteItem,
|
|
19577
|
+
handleItemClick,
|
|
19578
|
+
previewUrl,
|
|
19579
|
+
children
|
|
19580
|
+
}
|
|
19520
19581
|
}
|
|
19521
|
-
)
|
|
19522
|
-
return /* @__PURE__ */ React__default.createElement(
|
|
19523
|
-
"div",
|
|
19524
|
-
{
|
|
19525
|
-
className: `nut-uploader__preview ${previewType}`,
|
|
19526
|
-
key: item.uid
|
|
19527
|
-
},
|
|
19528
|
-
previewType === "picture" && deletable && /* @__PURE__ */ React__default.createElement(
|
|
19529
|
-
x$9,
|
|
19530
|
-
{
|
|
19531
|
-
color: "rgba(0,0,0,0.6)",
|
|
19532
|
-
className: "close",
|
|
19533
|
-
onClick: () => onDeleteItem(item, index)
|
|
19534
|
-
}
|
|
19535
|
-
),
|
|
19536
|
-
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(x$9, { color: "#fff" }) : item.loadingIcon || /* @__PURE__ */ React__default.createElement(
|
|
19537
|
-
k$3,
|
|
19538
|
-
{
|
|
19539
|
-
className: "nut-icon-loading",
|
|
19540
|
-
color: "#fff"
|
|
19541
|
-
}
|
|
19542
|
-
)), /* @__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(
|
|
19543
|
-
"img",
|
|
19544
|
-
{
|
|
19545
|
-
className: "nut-uploader__preview-img__c",
|
|
19546
|
-
style: { objectFit: fit },
|
|
19547
|
-
src: item.url,
|
|
19548
|
-
alt: "",
|
|
19549
|
-
onClick: () => handleItemClick(item)
|
|
19550
|
-
}
|
|
19551
|
-
)) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, previewUrl ? /* @__PURE__ */ React__default.createElement(
|
|
19552
|
-
"img",
|
|
19553
|
-
{
|
|
19554
|
-
className: "nut-uploader__preview-img__c",
|
|
19555
|
-
src: previewUrl,
|
|
19556
|
-
alt: "",
|
|
19557
|
-
onClick: () => handleItemClick(item)
|
|
19558
|
-
}
|
|
19559
|
-
) : /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React__default.createElement(
|
|
19560
|
-
"div",
|
|
19561
|
-
{
|
|
19562
|
-
onClick: () => handleItemClick(item),
|
|
19563
|
-
className: "nut-uploader__preview-img__file__name"
|
|
19564
|
-
},
|
|
19565
|
-
/* @__PURE__ */ React__default.createElement(x$6, { color: "#808080" }),
|
|
19566
|
-
/* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
|
|
19567
|
-
))), item.status === "success" ? /* @__PURE__ */ React__default.createElement("div", { className: "tips" }, item.name) : null),
|
|
19568
|
-
previewType === "list" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React__default.createElement(
|
|
19569
|
-
"div",
|
|
19570
|
-
{
|
|
19571
|
-
className: `nut-uploader__preview-img__file__name ${item.status}`,
|
|
19572
|
-
onClick: () => handleItemClick(item)
|
|
19573
|
-
},
|
|
19574
|
-
/* @__PURE__ */ React__default.createElement(x$6, null),
|
|
19575
|
-
/* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
|
|
19576
|
-
), deletable && /* @__PURE__ */ React__default.createElement(
|
|
19577
|
-
y$8,
|
|
19578
|
-
{
|
|
19579
|
-
color: "#808080",
|
|
19580
|
-
className: "nut-uploader__preview-img__file__del",
|
|
19581
|
-
onClick: () => onDeleteItem(item, index)
|
|
19582
|
-
}
|
|
19583
|
-
), item.status === "uploading" && /* @__PURE__ */ React__default.createElement(
|
|
19584
|
-
Progress,
|
|
19585
|
-
{
|
|
19586
|
-
percent: item.percentage,
|
|
19587
|
-
color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
|
|
19588
|
-
showText: false
|
|
19589
|
-
}
|
|
19590
|
-
))
|
|
19591
|
-
);
|
|
19592
|
-
}), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement(
|
|
19582
|
+
), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement(
|
|
19593
19583
|
"div",
|
|
19594
19584
|
{
|
|
19595
|
-
className:
|
|
19585
|
+
className: classNames("nut-uploader__upload", previewType, {
|
|
19586
|
+
"nut-uploader__upload-disabled": disabled
|
|
19587
|
+
})
|
|
19596
19588
|
},
|
|
19597
|
-
/* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon
|
|
19598
|
-
|
|
19599
|
-
"input",
|
|
19600
|
-
{
|
|
19601
|
-
className: "nut-uploader__input",
|
|
19602
|
-
type: "file",
|
|
19603
|
-
capture: "user",
|
|
19604
|
-
name,
|
|
19605
|
-
accept,
|
|
19606
|
-
disabled,
|
|
19607
|
-
multiple,
|
|
19608
|
-
onChange: fileChange
|
|
19609
|
-
}
|
|
19610
|
-
) : /* @__PURE__ */ React__default.createElement(
|
|
19589
|
+
/* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon, /* @__PURE__ */ React__default.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
|
|
19590
|
+
/* @__PURE__ */ React__default.createElement(
|
|
19611
19591
|
"input",
|
|
19612
19592
|
{
|
|
19613
19593
|
className: "nut-uploader__input",
|
|
19614
19594
|
type: "file",
|
|
19595
|
+
capture,
|
|
19615
19596
|
name,
|
|
19616
19597
|
accept,
|
|
19617
19598
|
disabled,
|