@nutui/nutui-react 2.0.19-beta.1 → 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.
@@ -6,7 +6,7 @@ var __publicField = (obj, key, value) => {
6
6
  };
7
7
  var _a;
8
8
  /*!
9
- * @nutui/nutui-react v2.0.19-beta.1 Tue Sep 26 2023 19:08:13 GMT+0800 (China Standard Time)
9
+ * @nutui/nutui-react v2.0.19 Wed Sep 27 2023 18:11:25 GMT+0800 (China Standard Time)
10
10
  * (c) 2023 @jdf2e.
11
11
  * Released under the MIT License.
12
12
  */
@@ -18986,6 +18986,99 @@ const TextArea = (props) => {
18986
18986
  };
18987
18987
  TextArea.defaultProps = defaultProps$H;
18988
18988
  TextArea.displayName = "NutTextArea";
18989
+ class UploadOptions {
18990
+ constructor() {
18991
+ __publicField(this, "url", "");
18992
+ __publicField(this, "name", "file");
18993
+ __publicField(this, "fileType", "image");
18994
+ __publicField(this, "formData");
18995
+ __publicField(this, "sourceFile");
18996
+ __publicField(this, "method", "post");
18997
+ __publicField(this, "xhrState", 200);
18998
+ __publicField(this, "timeout", 30 * 1e3);
18999
+ __publicField(this, "headers", {});
19000
+ __publicField(this, "withCredentials", false);
19001
+ __publicField(this, "onStart");
19002
+ __publicField(this, "taroFilePath");
19003
+ __publicField(this, "onProgress");
19004
+ __publicField(this, "onSuccess");
19005
+ __publicField(this, "onFailure");
19006
+ __publicField(this, "beforeXhrUpload");
19007
+ }
19008
+ }
19009
+ const UPLOADING = "uploading";
19010
+ const SUCCESS = "success";
19011
+ const ERROR = "error";
19012
+ class Upload {
19013
+ constructor(options2) {
19014
+ __publicField(this, "options");
19015
+ this.options = options2;
19016
+ }
19017
+ upload() {
19018
+ var _a2;
19019
+ const { options: options2 } = this;
19020
+ const xhr = new XMLHttpRequest();
19021
+ xhr.timeout = options2.timeout;
19022
+ if (xhr.upload) {
19023
+ xhr.upload.addEventListener(
19024
+ "progress",
19025
+ (e) => {
19026
+ var _a3;
19027
+ (_a3 = options2.onProgress) == null ? void 0 : _a3.call(options2, e, options2);
19028
+ },
19029
+ false
19030
+ );
19031
+ xhr.onreadystatechange = () => {
19032
+ var _a3, _b;
19033
+ if (xhr.readyState === 4) {
19034
+ if (xhr.status === options2.xhrState) {
19035
+ (_a3 = options2.onSuccess) == null ? void 0 : _a3.call(options2, xhr.responseText, options2);
19036
+ } else {
19037
+ (_b = options2.onFailure) == null ? void 0 : _b.call(options2, xhr.responseText, options2);
19038
+ }
19039
+ }
19040
+ };
19041
+ xhr.withCredentials = options2.withCredentials;
19042
+ xhr.open(options2.method, options2.url, true);
19043
+ for (const [key, value] of Object.entries(options2.headers)) {
19044
+ xhr.setRequestHeader(key, value);
19045
+ }
19046
+ (_a2 = options2.onStart) == null ? void 0 : _a2.call(options2, options2);
19047
+ if (options2.beforeXhrUpload) {
19048
+ options2.beforeXhrUpload(xhr, options2);
19049
+ } else {
19050
+ xhr.send(options2.formData);
19051
+ }
19052
+ } else {
19053
+ console.warn("浏览器不支持 XMLHttpRequest");
19054
+ }
19055
+ }
19056
+ }
19057
+ const funcInterceptor = (interceptor, {
19058
+ args = [],
19059
+ done,
19060
+ canceled
19061
+ }) => {
19062
+ if (interceptor) {
19063
+ const returnVal = interceptor.apply(null, args);
19064
+ if (isPromise(returnVal)) {
19065
+ returnVal.then((value) => {
19066
+ if (value) {
19067
+ done(value);
19068
+ } else if (canceled) {
19069
+ canceled();
19070
+ }
19071
+ }).catch(() => {
19072
+ });
19073
+ } else if (returnVal) {
19074
+ done();
19075
+ } else if (canceled) {
19076
+ canceled();
19077
+ }
19078
+ } else {
19079
+ done();
19080
+ }
19081
+ };
18989
19082
  const defaultProps$G = {
18990
19083
  ...ComponentDefaults,
18991
19084
  percent: 0,
@@ -19106,96 +19199,105 @@ const Progress = (props) => {
19106
19199
  };
19107
19200
  Progress.defaultProps = defaultProps$G;
19108
19201
  Progress.displayName = "NutProgress";
19109
- class UploadOptions {
19110
- constructor() {
19111
- __publicField(this, "url", "");
19112
- __publicField(this, "name", "file");
19113
- __publicField(this, "fileType", "image");
19114
- __publicField(this, "formData");
19115
- __publicField(this, "sourceFile");
19116
- __publicField(this, "method", "post");
19117
- __publicField(this, "xhrState", 200);
19118
- __publicField(this, "timeout", 30 * 1e3);
19119
- __publicField(this, "headers", {});
19120
- __publicField(this, "withCredentials", false);
19121
- __publicField(this, "onStart");
19122
- __publicField(this, "taroFilePath");
19123
- __publicField(this, "onProgress");
19124
- __publicField(this, "onSuccess");
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() {
19202
+ const Preview = ({
19203
+ fileList,
19204
+ previewType,
19205
+ deletable,
19206
+ onDeleteItem,
19207
+ handleItemClick,
19208
+ previewUrl,
19209
+ children
19210
+ }) => {
19211
+ const renderIcon = (item) => {
19212
+ if (item.status === ERROR) {
19213
+ return item.failIcon || /* @__PURE__ */ React__default.createElement(x$9, { color: "#fff" });
19214
+ }
19215
+ return item.loadingIcon || /* @__PURE__ */ React__default.createElement(k$3, { className: "nut-icon-loading", color: "#fff" });
19216
+ };
19217
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, fileList.length !== 0 && fileList.map((item, index) => {
19135
19218
  var _a2;
19136
- const { options: options2 } = this;
19137
- const xhr = new XMLHttpRequest();
19138
- xhr.timeout = options2.timeout;
19139
- if (xhr.upload) {
19140
- xhr.upload.addEventListener(
19141
- "progress",
19142
- (e) => {
19143
- var _a3;
19144
- (_a3 = options2.onProgress) == null ? void 0 : _a3.call(options2, e, options2);
19219
+ return /* @__PURE__ */ React__default.createElement(
19220
+ "div",
19221
+ {
19222
+ className: `nut-uploader__preview ${previewType}`,
19223
+ key: item.uid
19224
+ },
19225
+ previewType === "picture" && deletable && /* @__PURE__ */ React__default.createElement(
19226
+ x$9,
19227
+ {
19228
+ color: "rgba(0,0,0,0.6)",
19229
+ className: "close",
19230
+ onClick: () => onDeleteItem(item, index)
19231
+ }
19232
+ ),
19233
+ 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(
19234
+ "img",
19235
+ {
19236
+ className: "nut-uploader__preview-img__c",
19237
+ style: { objectFit: "fill" },
19238
+ src: item.url,
19239
+ alt: "",
19240
+ onClick: () => handleItemClick(item)
19241
+ }
19242
+ )) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, previewUrl ? /* @__PURE__ */ React__default.createElement(
19243
+ "img",
19244
+ {
19245
+ className: "nut-uploader__preview-img__c",
19246
+ src: previewUrl,
19247
+ alt: "",
19248
+ onClick: () => handleItemClick(item)
19249
+ }
19250
+ ) : /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-img__file" }, /* @__PURE__ */ React__default.createElement(
19251
+ "div",
19252
+ {
19253
+ onClick: () => handleItemClick(item),
19254
+ className: "nut-uploader__preview-img__file__name"
19145
19255
  },
19146
- false
19147
- );
19148
- xhr.onreadystatechange = () => {
19149
- var _a3, _b;
19150
- if (xhr.readyState === 4) {
19151
- if (xhr.status === options2.xhrState) {
19152
- (_a3 = options2.onSuccess) == null ? void 0 : _a3.call(options2, xhr.responseText, options2);
19153
- } else {
19154
- (_b = options2.onFailure) == null ? void 0 : _b.call(options2, xhr.responseText, options2);
19155
- }
19256
+ /* @__PURE__ */ React__default.createElement(x$6, { color: "#808080" }),
19257
+ /* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
19258
+ ))), item.status === "success" ? /* @__PURE__ */ React__default.createElement("div", { className: "tips" }, item.name) : null),
19259
+ previewType === "list" && /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__preview-list" }, /* @__PURE__ */ React__default.createElement(
19260
+ "div",
19261
+ {
19262
+ className: `nut-uploader__preview-img__file__name ${item.status}`,
19263
+ onClick: () => handleItemClick(item)
19264
+ },
19265
+ /* @__PURE__ */ React__default.createElement(x$6, null),
19266
+ /* @__PURE__ */ React__default.createElement("span", null, " ", item.name)
19267
+ ), deletable && /* @__PURE__ */ React__default.createElement(
19268
+ y$8,
19269
+ {
19270
+ color: "#808080",
19271
+ className: "nut-uploader__preview-img__file__del",
19272
+ onClick: () => onDeleteItem(item, index)
19156
19273
  }
19157
- };
19158
- xhr.withCredentials = options2.withCredentials;
19159
- xhr.open(options2.method, options2.url, true);
19160
- for (const [key, value] of Object.entries(options2.headers)) {
19161
- xhr.setRequestHeader(key, value);
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();
19274
+ ), item.status === "uploading" && /* @__PURE__ */ React__default.createElement(
19275
+ Progress,
19276
+ {
19277
+ percent: item.percentage,
19278
+ color: "linear-gradient(270deg, rgba(18,126,255,1) 0%,rgba(32,147,255,1) 32.815625%,rgba(13,242,204,1) 100%)",
19279
+ showText: false
19187
19280
  }
19188
- }).catch(() => {
19189
- });
19190
- } else if (returnVal) {
19191
- done();
19192
- } else if (canceled) {
19193
- canceled();
19194
- }
19195
- } else {
19196
- done();
19197
- }
19281
+ ))
19282
+ );
19283
+ }));
19198
19284
  };
19285
+ class FileItem {
19286
+ constructor() {
19287
+ __publicField(this, "status", "ready");
19288
+ __publicField(this, "message", "准备中..");
19289
+ __publicField(this, "uid", (/* @__PURE__ */ new Date()).getTime().toString());
19290
+ __publicField(this, "name");
19291
+ __publicField(this, "url");
19292
+ __publicField(this, "type");
19293
+ __publicField(this, "path");
19294
+ __publicField(this, "percentage", 0);
19295
+ __publicField(this, "formData", {});
19296
+ __publicField(this, "responseText");
19297
+ __publicField(this, "loadingIcon");
19298
+ __publicField(this, "failIcon");
19299
+ }
19300
+ }
19199
19301
  const defaultProps$F = {
19200
19302
  ...ComponentDefaults,
19201
19303
  url: "",
@@ -19218,24 +19320,11 @@ const defaultProps$F = {
19218
19320
  preview: true,
19219
19321
  deletable: true,
19220
19322
  capture: false,
19323
+ uploadIcon: /* @__PURE__ */ React__default.createElement(x$3, { width: "20px", height: "20px", color: "#808080" }),
19221
19324
  beforeDelete: (file, files) => {
19222
19325
  return true;
19223
19326
  }
19224
19327
  };
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
19328
  const InternalUploader = (props, ref) => {
19240
19329
  const { locale } = useConfig();
19241
19330
  const {
@@ -19280,13 +19369,15 @@ const InternalUploader = (props, ref) => {
19280
19369
  beforeDelete,
19281
19370
  ...restProps
19282
19371
  } = { ...defaultProps$F, ...props };
19283
- const [fileList, setFileList] = useState(defaultValue || []);
19284
- const [uploadQueue, setUploadQueue] = useState([]);
19285
- useEffect(() => {
19286
- if (value) {
19287
- setFileList(value);
19372
+ const [fileList, setFileList] = usePropsValue({
19373
+ value,
19374
+ defaultValue,
19375
+ finalValue: [],
19376
+ onChange: (v) => {
19377
+ onChange == null ? void 0 : onChange(v);
19288
19378
  }
19289
- }, [value]);
19379
+ });
19380
+ const [uploadQueue, setUploadQueue] = useState([]);
19290
19381
  const classes = classNames(className, "nut-uploader");
19291
19382
  useImperativeHandle(ref, () => ({
19292
19383
  submit: () => {
@@ -19312,10 +19403,11 @@ const InternalUploader = (props, ref) => {
19312
19403
  el.value = "";
19313
19404
  };
19314
19405
  const executeUpload = (fileItem, index) => {
19406
+ var _a2, _b;
19315
19407
  const uploadOption = new UploadOptions();
19316
19408
  uploadOption.url = url2;
19317
19409
  for (const [key, value2] of Object.entries(data)) {
19318
- fileItem.formData.append(key, value2);
19410
+ (_a2 = fileItem.formData) == null ? void 0 : _a2.append(key, value2);
19319
19411
  }
19320
19412
  uploadOption.formData = fileItem.formData;
19321
19413
  uploadOption.timeout = timeout2 * 1;
@@ -19325,73 +19417,67 @@ const InternalUploader = (props, ref) => {
19325
19417
  uploadOption.withCredentials = withCredentials;
19326
19418
  uploadOption.beforeXhrUpload = beforeXhrUpload;
19327
19419
  try {
19328
- uploadOption.sourceFile = fileItem.formData.get(name);
19420
+ uploadOption.sourceFile = (_b = fileItem.formData) == null ? void 0 : _b.get(name);
19329
19421
  } catch (error) {
19330
19422
  console.warn(error);
19331
19423
  }
19332
19424
  uploadOption.onStart = (option) => {
19333
19425
  clearUploadQueue(index);
19334
- setFileList((fileList2) => {
19335
- fileList2.map((item) => {
19426
+ setFileList(
19427
+ fileList.map((item) => {
19336
19428
  if (item.uid === fileItem.uid) {
19337
19429
  item.status = "ready";
19338
19430
  item.message = locale.uploader.readyUpload;
19339
19431
  }
19340
19432
  return item;
19341
- });
19342
- return [...fileList2];
19343
- });
19433
+ })
19434
+ );
19344
19435
  onStart && onStart(option);
19345
19436
  };
19346
19437
  uploadOption.onProgress = (e, option) => {
19347
- setFileList((fileList2) => {
19348
- fileList2.map((item) => {
19438
+ setFileList(
19439
+ fileList.map((item) => {
19349
19440
  if (item.uid === fileItem.uid) {
19350
- item.status = "uploading";
19441
+ item.status = UPLOADING;
19351
19442
  item.message = locale.uploader.uploading;
19352
19443
  item.percentage = (e.loaded / e.total * 100).toFixed(0);
19353
19444
  onProgress && onProgress({ e, option, percentage: item.percentage });
19354
19445
  }
19355
19446
  return item;
19356
- });
19357
- return [...fileList2];
19358
- });
19447
+ })
19448
+ );
19359
19449
  };
19360
19450
  uploadOption.onSuccess = (responseText, option) => {
19361
- setFileList((fileList2) => {
19362
- onUpdate && onUpdate(fileList2);
19363
- fileList2.map((item) => {
19364
- if (item.uid === fileItem.uid) {
19365
- item.status = "success";
19366
- item.message = locale.uploader.success;
19367
- item.responseText = responseText;
19368
- }
19369
- return item;
19370
- });
19371
- return [...fileList2];
19451
+ const list = fileList.map((item) => {
19452
+ if (item.uid === fileItem.uid) {
19453
+ item.status = SUCCESS;
19454
+ item.message = locale.uploader.success;
19455
+ item.responseText = responseText;
19456
+ }
19457
+ return item;
19372
19458
  });
19373
- onSuccess && onSuccess({
19459
+ setFileList(list);
19460
+ onUpdate == null ? void 0 : onUpdate(list);
19461
+ onSuccess == null ? void 0 : onSuccess({
19374
19462
  responseText,
19375
19463
  option,
19376
- fileList
19464
+ fileList: list
19377
19465
  });
19378
19466
  };
19379
19467
  uploadOption.onFailure = (responseText, option) => {
19380
- setFileList((fileList2) => {
19381
- fileList2.map((item) => {
19382
- if (item.uid === fileItem.uid) {
19383
- item.status = "error";
19384
- item.message = locale.uploader.error;
19385
- item.responseText = responseText;
19386
- }
19387
- return item;
19388
- });
19389
- return [...fileList2];
19468
+ const list = fileList.map((item) => {
19469
+ if (item.uid === fileItem.uid) {
19470
+ item.status = ERROR;
19471
+ item.message = locale.uploader.error;
19472
+ item.responseText = responseText;
19473
+ }
19474
+ return item;
19390
19475
  });
19391
- onFailure && onFailure({
19476
+ setFileList(list);
19477
+ onFailure == null ? void 0 : onFailure({
19392
19478
  responseText,
19393
19479
  option,
19394
- fileList
19480
+ fileList: list
19395
19481
  });
19396
19482
  };
19397
19483
  const task = new Upload(uploadOption);
@@ -19416,11 +19502,7 @@ const InternalUploader = (props, ref) => {
19416
19502
  fileItem.type = file.type;
19417
19503
  fileItem.formData = formData;
19418
19504
  fileItem.uid = file.lastModified + fileItem.uid;
19419
- if (autoUpload) {
19420
- fileItem.message = locale.uploader.readyUpload;
19421
- } else {
19422
- fileItem.message = locale.uploader.waitingUpload;
19423
- }
19505
+ fileItem.message = autoUpload ? locale.uploader.readyUpload : locale.uploader.waitingUpload;
19424
19506
  executeUpload(fileItem, index);
19425
19507
  if (preview && file.type.includes("image")) {
19426
19508
  const reader = new FileReader();
@@ -19431,8 +19513,7 @@ const InternalUploader = (props, ref) => {
19431
19513
  };
19432
19514
  reader.readAsDataURL(file);
19433
19515
  } else {
19434
- fileList.push(fileItem);
19435
- setFileList([...fileList]);
19516
+ setFileList([...fileList, fileItem]);
19436
19517
  }
19437
19518
  });
19438
19519
  };
@@ -19459,9 +19540,9 @@ const InternalUploader = (props, ref) => {
19459
19540
  return filterFile;
19460
19541
  };
19461
19542
  const deleted = (file, index) => {
19462
- fileList.splice(index, 1);
19463
- onDelete && onDelete(file, fileList);
19464
- setFileList([...fileList]);
19543
+ const deletedFileList = fileList.filter((file2, idx) => idx !== index);
19544
+ onDelete == null ? void 0 : onDelete(file, deletedFileList);
19545
+ setFileList(deletedFileList);
19465
19546
  };
19466
19547
  const onDeleteItem = (file, index) => {
19467
19548
  clearUploadQueue(index);
@@ -19487,131 +19568,53 @@ const InternalUploader = (props, ref) => {
19487
19568
  const _files = filterFiles(new Array().slice.call(files));
19488
19569
  readFile(_files);
19489
19570
  }
19490
- onChange && onChange({ fileList, event });
19571
+ setFileList(fileList);
19491
19572
  if (clearInput) {
19492
19573
  clearInputValue($el);
19493
19574
  }
19494
19575
  };
19495
19576
  const handleItemClick = (file) => {
19496
- onFileItemClick && onFileItemClick(file);
19577
+ onFileItemClick == null ? void 0 : onFileItemClick(file);
19497
19578
  };
19498
- 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(React__default.Fragment, null, capture ? /* @__PURE__ */ React__default.createElement(
19579
+ 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
19580
  "input",
19500
19581
  {
19501
19582
  className: "nut-uploader__input",
19502
19583
  type: "file",
19503
- capture: "user",
19584
+ capture,
19504
19585
  name,
19505
19586
  accept,
19506
19587
  disabled,
19507
19588
  multiple,
19508
19589
  onChange: fileChange
19509
19590
  }
19510
- ) : /* @__PURE__ */ React__default.createElement(
19511
- "input",
19591
+ )), /* @__PURE__ */ React__default.createElement(
19592
+ Preview,
19512
19593
  {
19513
- className: "nut-uploader__input",
19514
- type: "file",
19515
- name,
19516
- accept,
19517
- disabled,
19518
- multiple,
19519
- onChange: fileChange
19594
+ ...{
19595
+ fileList,
19596
+ previewType,
19597
+ deletable,
19598
+ onDeleteItem,
19599
+ handleItemClick,
19600
+ previewUrl,
19601
+ children
19602
+ }
19520
19603
  }
19521
- )))), fileList.length !== 0 && Array.isArray(fileList) && fileList.map((item, index) => {
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(
19604
+ ), maxCount > fileList.length && previewType === "picture" && !children && /* @__PURE__ */ React__default.createElement(
19593
19605
  "div",
19594
19606
  {
19595
- className: `nut-uploader__upload ${previewType} ${disabled ? "nut-uploader__upload-disabled" : ""}`
19607
+ className: classNames("nut-uploader__upload", previewType, {
19608
+ "nut-uploader__upload-disabled": disabled
19609
+ })
19596
19610
  },
19597
- /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon || /* @__PURE__ */ React__default.createElement(x$3, { width: "20px", height: "20px", color: "#808080" }), /* @__PURE__ */ React__default.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
19598
- capture ? /* @__PURE__ */ React__default.createElement(
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(
19611
+ /* @__PURE__ */ React__default.createElement("div", { className: "nut-uploader__icon" }, uploadIcon, /* @__PURE__ */ React__default.createElement("span", { className: "nut-uploader__icon-tip" }, uploadLabel)),
19612
+ /* @__PURE__ */ React__default.createElement(
19611
19613
  "input",
19612
19614
  {
19613
19615
  className: "nut-uploader__input",
19614
19616
  type: "file",
19617
+ capture,
19615
19618
  name,
19616
19619
  accept,
19617
19620
  disabled,