zartui 3.1.42 → 3.1.44

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/lib/zartui.cjs.js CHANGED
@@ -13816,7 +13816,7 @@ const mediaPickerProps = {
13816
13816
  var stdin_default$B = vue.defineComponent({
13817
13817
  name: name$u,
13818
13818
  props: mediaPickerProps,
13819
- emits: ["update:mediaList", "delete"],
13819
+ emits: ["update:mediaList", "delete", "processing"],
13820
13820
  setup(props, {
13821
13821
  emit,
13822
13822
  slots
@@ -13834,6 +13834,7 @@ var stdin_default$B = vue.defineComponent({
13834
13834
  const audioRecorderInputRef = vue.ref();
13835
13835
  const audioFileInputRef = vue.ref();
13836
13836
  const fileInputRef = vue.ref();
13837
+ const mediaListPlaceholder = vue.ref([]);
13837
13838
  const checkFileCountBeforeAdd = (mediaType) => {
13838
13839
  if (props.mediaList.length === props.maxMediaCount) {
13839
13840
  showFailToast("已达到文件最大数量限制");
@@ -14122,6 +14123,25 @@ var stdin_default$B = vue.defineComponent({
14122
14123
  });
14123
14124
  };
14124
14125
  const readFiles = (files) => {
14126
+ emit("processing", true);
14127
+ mediaListPlaceholder.value = files.map((file) => {
14128
+ let type;
14129
+ if (isAudioType(file)) {
14130
+ type = "audio";
14131
+ } else if (isVideoType(file)) {
14132
+ type = "video";
14133
+ } else if (isImageType(file)) {
14134
+ type = "photo";
14135
+ } else {
14136
+ type = "file";
14137
+ }
14138
+ return {
14139
+ file,
14140
+ message: "处理中...",
14141
+ status: "processing",
14142
+ type
14143
+ };
14144
+ });
14125
14145
  const notImages = files.filter((f) => !isImageType(f)).map((f) => transformNotImageFile(f));
14126
14146
  let newMedias = [];
14127
14147
  if (notImages.length > 0) {
@@ -14144,6 +14164,8 @@ var stdin_default$B = vue.defineComponent({
14144
14164
  newMedia.label = newMedia.originalName;
14145
14165
  });
14146
14166
  }
14167
+ mediaListPlaceholder.value = [];
14168
+ emit("processing", false);
14147
14169
  emit("update:mediaList", [...props.mediaList, ...newMedias]);
14148
14170
  if (props.afterRead) {
14149
14171
  props.afterRead(newMedias);
@@ -14320,7 +14342,7 @@ var stdin_default$B = vue.defineComponent({
14320
14342
  status,
14321
14343
  message
14322
14344
  } = media;
14323
- if (status === "uploading" || status === "failed") {
14345
+ if (status === "processing" || status === "uploading" || status === "failed") {
14324
14346
  const MaskIcon = status === "failed" ? vue.createVNode(stdin_default$1V, {
14325
14347
  "name": "close",
14326
14348
  "class": bem$t("mask-icon")
@@ -14455,6 +14477,15 @@ var stdin_default$B = vue.defineComponent({
14455
14477
  showFailToast("暂不支持此类文件的预览");
14456
14478
  }
14457
14479
  });
14480
+ const renderMediaListPlaceholder = () => {
14481
+ return mediaListPlaceholder.value.map((media) => {
14482
+ return vue.createVNode(stdin_default$U, {
14483
+ "key": media.uniqueCode
14484
+ }, {
14485
+ default: () => [renderMediaThumbnail(media), renderMediaLabel(media), genThumbnailMask(media)]
14486
+ });
14487
+ });
14488
+ };
14458
14489
  const renderMediaList = () => props.mediaList.map((media, index) => {
14459
14490
  const showDelete = media.deletable && media.status !== "uploading";
14460
14491
  const deleteIcon = showDelete && vue.createVNode(stdin_default$M, {
@@ -14508,7 +14539,15 @@ var stdin_default$B = vue.defineComponent({
14508
14539
  "class": bem$t("grid")
14509
14540
  }, {
14510
14541
  default: () => [renderMediaList()]
14511
- }), [[vue.vShow, props.mediaList.length]])]);
14542
+ }), [[vue.vShow, props.mediaList.length]]), vue.withDirectives(vue.createVNode(stdin_default$W, {
14543
+ "column-num": "3",
14544
+ "border": false,
14545
+ "square": true,
14546
+ "gutter": "4",
14547
+ "class": bem$t("grid")
14548
+ }, {
14549
+ default: () => [renderMediaListPlaceholder()]
14550
+ }), [[vue.vShow, mediaListPlaceholder.value.length]])]);
14512
14551
  };
14513
14552
  }
14514
14553
  });
@@ -20619,7 +20658,7 @@ const Lazyload = {
20619
20658
  });
20620
20659
  }
20621
20660
  };
20622
- const version = "3.1.42";
20661
+ const version = "3.1.44";
20623
20662
  function install(app) {
20624
20663
  const components = [
20625
20664
  ActionSheet,
package/lib/zartui.es.js CHANGED
@@ -13814,7 +13814,7 @@ const mediaPickerProps = {
13814
13814
  var stdin_default$B = defineComponent({
13815
13815
  name: name$u,
13816
13816
  props: mediaPickerProps,
13817
- emits: ["update:mediaList", "delete"],
13817
+ emits: ["update:mediaList", "delete", "processing"],
13818
13818
  setup(props, {
13819
13819
  emit,
13820
13820
  slots
@@ -13832,6 +13832,7 @@ var stdin_default$B = defineComponent({
13832
13832
  const audioRecorderInputRef = ref();
13833
13833
  const audioFileInputRef = ref();
13834
13834
  const fileInputRef = ref();
13835
+ const mediaListPlaceholder = ref([]);
13835
13836
  const checkFileCountBeforeAdd = (mediaType) => {
13836
13837
  if (props.mediaList.length === props.maxMediaCount) {
13837
13838
  showFailToast("已达到文件最大数量限制");
@@ -14120,6 +14121,25 @@ var stdin_default$B = defineComponent({
14120
14121
  });
14121
14122
  };
14122
14123
  const readFiles = (files) => {
14124
+ emit("processing", true);
14125
+ mediaListPlaceholder.value = files.map((file) => {
14126
+ let type;
14127
+ if (isAudioType(file)) {
14128
+ type = "audio";
14129
+ } else if (isVideoType(file)) {
14130
+ type = "video";
14131
+ } else if (isImageType(file)) {
14132
+ type = "photo";
14133
+ } else {
14134
+ type = "file";
14135
+ }
14136
+ return {
14137
+ file,
14138
+ message: "处理中...",
14139
+ status: "processing",
14140
+ type
14141
+ };
14142
+ });
14123
14143
  const notImages = files.filter((f) => !isImageType(f)).map((f) => transformNotImageFile(f));
14124
14144
  let newMedias = [];
14125
14145
  if (notImages.length > 0) {
@@ -14142,6 +14162,8 @@ var stdin_default$B = defineComponent({
14142
14162
  newMedia.label = newMedia.originalName;
14143
14163
  });
14144
14164
  }
14165
+ mediaListPlaceholder.value = [];
14166
+ emit("processing", false);
14145
14167
  emit("update:mediaList", [...props.mediaList, ...newMedias]);
14146
14168
  if (props.afterRead) {
14147
14169
  props.afterRead(newMedias);
@@ -14318,7 +14340,7 @@ var stdin_default$B = defineComponent({
14318
14340
  status,
14319
14341
  message
14320
14342
  } = media;
14321
- if (status === "uploading" || status === "failed") {
14343
+ if (status === "processing" || status === "uploading" || status === "failed") {
14322
14344
  const MaskIcon = status === "failed" ? createVNode(stdin_default$1V, {
14323
14345
  "name": "close",
14324
14346
  "class": bem$t("mask-icon")
@@ -14453,6 +14475,15 @@ var stdin_default$B = defineComponent({
14453
14475
  showFailToast("暂不支持此类文件的预览");
14454
14476
  }
14455
14477
  });
14478
+ const renderMediaListPlaceholder = () => {
14479
+ return mediaListPlaceholder.value.map((media) => {
14480
+ return createVNode(stdin_default$U, {
14481
+ "key": media.uniqueCode
14482
+ }, {
14483
+ default: () => [renderMediaThumbnail(media), renderMediaLabel(media), genThumbnailMask(media)]
14484
+ });
14485
+ });
14486
+ };
14456
14487
  const renderMediaList = () => props.mediaList.map((media, index) => {
14457
14488
  const showDelete = media.deletable && media.status !== "uploading";
14458
14489
  const deleteIcon = showDelete && createVNode(stdin_default$M, {
@@ -14506,7 +14537,15 @@ var stdin_default$B = defineComponent({
14506
14537
  "class": bem$t("grid")
14507
14538
  }, {
14508
14539
  default: () => [renderMediaList()]
14509
- }), [[vShow, props.mediaList.length]])]);
14540
+ }), [[vShow, props.mediaList.length]]), withDirectives(createVNode(stdin_default$W, {
14541
+ "column-num": "3",
14542
+ "border": false,
14543
+ "square": true,
14544
+ "gutter": "4",
14545
+ "class": bem$t("grid")
14546
+ }, {
14547
+ default: () => [renderMediaListPlaceholder()]
14548
+ }), [[vShow, mediaListPlaceholder.value.length]])]);
14510
14549
  };
14511
14550
  }
14512
14551
  });
@@ -20617,7 +20656,7 @@ const Lazyload = {
20617
20656
  });
20618
20657
  }
20619
20658
  };
20620
- const version = "3.1.42";
20659
+ const version = "3.1.44";
20621
20660
  function install(app) {
20622
20661
  const components = [
20623
20662
  ActionSheet,
package/lib/zartui.js CHANGED
@@ -15592,7 +15592,7 @@
15592
15592
  var stdin_default$B = vue.defineComponent({
15593
15593
  name: name$u,
15594
15594
  props: mediaPickerProps,
15595
- emits: ["update:mediaList", "delete"],
15595
+ emits: ["update:mediaList", "delete", "processing"],
15596
15596
  setup(props, {
15597
15597
  emit,
15598
15598
  slots
@@ -15610,6 +15610,7 @@
15610
15610
  const audioRecorderInputRef = vue.ref();
15611
15611
  const audioFileInputRef = vue.ref();
15612
15612
  const fileInputRef = vue.ref();
15613
+ const mediaListPlaceholder = vue.ref([]);
15613
15614
  const checkFileCountBeforeAdd = (mediaType) => {
15614
15615
  if (props.mediaList.length === props.maxMediaCount) {
15615
15616
  showFailToast("已达到文件最大数量限制");
@@ -15898,6 +15899,25 @@
15898
15899
  });
15899
15900
  };
15900
15901
  const readFiles = (files) => {
15902
+ emit("processing", true);
15903
+ mediaListPlaceholder.value = files.map((file) => {
15904
+ let type;
15905
+ if (isAudioType(file)) {
15906
+ type = "audio";
15907
+ } else if (isVideoType(file)) {
15908
+ type = "video";
15909
+ } else if (isImageType(file)) {
15910
+ type = "photo";
15911
+ } else {
15912
+ type = "file";
15913
+ }
15914
+ return {
15915
+ file,
15916
+ message: "处理中...",
15917
+ status: "processing",
15918
+ type
15919
+ };
15920
+ });
15901
15921
  const notImages = files.filter((f) => !isImageType(f)).map((f) => transformNotImageFile(f));
15902
15922
  let newMedias = [];
15903
15923
  if (notImages.length > 0) {
@@ -15920,6 +15940,8 @@
15920
15940
  newMedia.label = newMedia.originalName;
15921
15941
  });
15922
15942
  }
15943
+ mediaListPlaceholder.value = [];
15944
+ emit("processing", false);
15923
15945
  emit("update:mediaList", [...props.mediaList, ...newMedias]);
15924
15946
  if (props.afterRead) {
15925
15947
  props.afterRead(newMedias);
@@ -16096,7 +16118,7 @@
16096
16118
  status,
16097
16119
  message
16098
16120
  } = media;
16099
- if (status === "uploading" || status === "failed") {
16121
+ if (status === "processing" || status === "uploading" || status === "failed") {
16100
16122
  const MaskIcon = status === "failed" ? vue.createVNode(stdin_default$1V, {
16101
16123
  "name": "close",
16102
16124
  "class": bem$t("mask-icon")
@@ -16231,6 +16253,15 @@
16231
16253
  showFailToast("暂不支持此类文件的预览");
16232
16254
  }
16233
16255
  });
16256
+ const renderMediaListPlaceholder = () => {
16257
+ return mediaListPlaceholder.value.map((media) => {
16258
+ return vue.createVNode(stdin_default$U, {
16259
+ "key": media.uniqueCode
16260
+ }, {
16261
+ default: () => [renderMediaThumbnail(media), renderMediaLabel(media), genThumbnailMask(media)]
16262
+ });
16263
+ });
16264
+ };
16234
16265
  const renderMediaList = () => props.mediaList.map((media, index2) => {
16235
16266
  const showDelete = media.deletable && media.status !== "uploading";
16236
16267
  const deleteIcon = showDelete && vue.createVNode(stdin_default$M, {
@@ -16284,7 +16315,15 @@
16284
16315
  "class": bem$t("grid")
16285
16316
  }, {
16286
16317
  default: () => [renderMediaList()]
16287
- }), [[vue.vShow, props.mediaList.length]])]);
16318
+ }), [[vue.vShow, props.mediaList.length]]), vue.withDirectives(vue.createVNode(stdin_default$W, {
16319
+ "column-num": "3",
16320
+ "border": false,
16321
+ "square": true,
16322
+ "gutter": "4",
16323
+ "class": bem$t("grid")
16324
+ }, {
16325
+ default: () => [renderMediaListPlaceholder()]
16326
+ }), [[vue.vShow, mediaListPlaceholder.value.length]])]);
16288
16327
  };
16289
16328
  }
16290
16329
  });
@@ -24679,7 +24718,7 @@
24679
24718
  });
24680
24719
  }
24681
24720
  };
24682
- const version = "3.1.42";
24721
+ const version = "3.1.44";
24683
24722
  function install(app) {
24684
24723
  const components = [
24685
24724
  ActionSheet,