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/es/index.d.ts CHANGED
@@ -83,4 +83,4 @@ declare namespace _default {
83
83
  }
84
84
  export default _default;
85
85
  export function install(app: any): void;
86
- export const version: "3.1.42";
86
+ export const version: "3.1.44";
package/es/index.mjs CHANGED
@@ -76,7 +76,7 @@ import { Timeline } from "./timeline/index.mjs";
76
76
  import { Toast } from "./toast/index.mjs";
77
77
  import { Uploader } from "./uploader/index.mjs";
78
78
  import { Video } from "./video/index.mjs";
79
- const version = "3.1.42";
79
+ const version = "3.1.44";
80
80
  function install(app) {
81
81
  const components = [
82
82
  ActionSheet,
@@ -162,7 +162,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
162
162
  default: MediaSizeType;
163
163
  };
164
164
  mediaPlayerProps: PropType<Partial<MediaPlayerProps>>;
165
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "update:mediaList")[], "delete" | "update:mediaList", import("vue").PublicProps, Readonly<ExtractPropTypes<{
165
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<ExtractPropTypes<{
166
166
  disabled: BooleanConstructor;
167
167
  showTitle: BooleanConstructor;
168
168
  useFileNameAsLabel: BooleanConstructor;
@@ -242,6 +242,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
242
242
  mediaPlayerProps: PropType<Partial<MediaPlayerProps>>;
243
243
  }>> & Readonly<{
244
244
  onDelete?: ((...args: any[]) => any) | undefined;
245
+ onProcessing?: ((...args: any[]) => any) | undefined;
245
246
  "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
246
247
  }>, {
247
248
  title: string;
@@ -102,7 +102,7 @@ const mediaPickerProps = {
102
102
  var stdin_default = defineComponent({
103
103
  name,
104
104
  props: mediaPickerProps,
105
- emits: ["update:mediaList", "delete"],
105
+ emits: ["update:mediaList", "delete", "processing"],
106
106
  setup(props, {
107
107
  emit,
108
108
  slots
@@ -120,6 +120,7 @@ var stdin_default = defineComponent({
120
120
  const audioRecorderInputRef = ref();
121
121
  const audioFileInputRef = ref();
122
122
  const fileInputRef = ref();
123
+ const mediaListPlaceholder = ref([]);
123
124
  const checkFileCountBeforeAdd = (mediaType) => {
124
125
  if (props.mediaList.length === props.maxMediaCount) {
125
126
  showFailToast("\u5DF2\u8FBE\u5230\u6587\u4EF6\u6700\u5927\u6570\u91CF\u9650\u5236");
@@ -408,6 +409,25 @@ var stdin_default = defineComponent({
408
409
  });
409
410
  };
410
411
  const readFiles = (files) => {
412
+ emit("processing", true);
413
+ mediaListPlaceholder.value = files.map((file) => {
414
+ let type;
415
+ if (isAudioType(file)) {
416
+ type = "audio";
417
+ } else if (isVideoType(file)) {
418
+ type = "video";
419
+ } else if (isImageType(file)) {
420
+ type = "photo";
421
+ } else {
422
+ type = "file";
423
+ }
424
+ return {
425
+ file,
426
+ message: "\u5904\u7406\u4E2D...",
427
+ status: "processing",
428
+ type
429
+ };
430
+ });
411
431
  const notImages = files.filter((f) => !isImageType(f)).map((f) => transformNotImageFile(f));
412
432
  let newMedias = [];
413
433
  if (notImages.length > 0) {
@@ -430,6 +450,8 @@ var stdin_default = defineComponent({
430
450
  newMedia.label = newMedia.originalName;
431
451
  });
432
452
  }
453
+ mediaListPlaceholder.value = [];
454
+ emit("processing", false);
433
455
  emit("update:mediaList", [...props.mediaList, ...newMedias]);
434
456
  if (props.afterRead) {
435
457
  props.afterRead(newMedias);
@@ -606,7 +628,7 @@ var stdin_default = defineComponent({
606
628
  status,
607
629
  message
608
630
  } = media;
609
- if (status === "uploading" || status === "failed") {
631
+ if (status === "processing" || status === "uploading" || status === "failed") {
610
632
  const MaskIcon = status === "failed" ? _createVNode(ZtIcon, {
611
633
  "name": "close",
612
634
  "class": bem("mask-icon")
@@ -741,6 +763,15 @@ var stdin_default = defineComponent({
741
763
  showFailToast("\u6682\u4E0D\u652F\u6301\u6B64\u7C7B\u6587\u4EF6\u7684\u9884\u89C8");
742
764
  }
743
765
  });
766
+ const renderMediaListPlaceholder = () => {
767
+ return mediaListPlaceholder.value.map((media) => {
768
+ return _createVNode(ZtGridItem, {
769
+ "key": media.uniqueCode
770
+ }, {
771
+ default: () => [renderMediaThumbnail(media), renderMediaLabel(media), genThumbnailMask(media)]
772
+ });
773
+ });
774
+ };
744
775
  const renderMediaList = () => props.mediaList.map((media, index) => {
745
776
  const showDelete = media.deletable && media.status !== "uploading";
746
777
  const deleteIcon = showDelete && _createVNode(DeleteIcon, {
@@ -794,7 +825,15 @@ var stdin_default = defineComponent({
794
825
  "class": bem("grid")
795
826
  }, {
796
827
  default: () => [renderMediaList()]
797
- }), [[_vShow, props.mediaList.length]])]);
828
+ }), [[_vShow, props.mediaList.length]]), _withDirectives(_createVNode(ZtGrid, {
829
+ "column-num": "3",
830
+ "border": false,
831
+ "square": true,
832
+ "gutter": "4",
833
+ "class": bem("grid")
834
+ }, {
835
+ default: () => [renderMediaListPlaceholder()]
836
+ }), [[_vShow, mediaListPlaceholder.value.length]])]);
798
837
  };
799
838
  }
800
839
  });
@@ -66,7 +66,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
66
66
  default: import("./type").MediaSizeType;
67
67
  };
68
68
  mediaPlayerProps: import("vue").PropType<Partial<import("..").MediaPlayerProps>>;
69
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "update:mediaList")[], "delete" | "update:mediaList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
69
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
70
70
  disabled: BooleanConstructor;
71
71
  showTitle: BooleanConstructor;
72
72
  useFileNameAsLabel: BooleanConstructor;
@@ -136,6 +136,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
136
136
  mediaPlayerProps: import("vue").PropType<Partial<import("..").MediaPlayerProps>>;
137
137
  }>> & Readonly<{
138
138
  onDelete?: ((...args: any[]) => any) | undefined;
139
+ onProcessing?: ((...args: any[]) => any) | undefined;
139
140
  "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
140
141
  }>, {
141
142
  title: string;
@@ -1,6 +1,6 @@
1
1
  export type MediaType = 'photo' | 'audio' | 'video' | 'file';
2
2
  export type MediaAddType = 'take' | 'pick' | 'take_and_pick';
3
- export type MediaUploadStatus = 'uploading' | 'done' | 'failed';
3
+ export type MediaUploadStatus = 'processing' | 'uploading' | 'done' | 'failed';
4
4
  export type WxMediaType = 'camera' | 'album';
5
5
  export type MediaSizeType = 'original' | 'compressed';
6
6
  export type Media = {
package/lib/index.d.ts CHANGED
@@ -83,4 +83,4 @@ declare namespace _default {
83
83
  }
84
84
  export default _default;
85
85
  export function install(app: any): void;
86
- export const version: "3.1.42";
86
+ export const version: "3.1.44";
package/lib/index.js CHANGED
@@ -180,7 +180,7 @@ __reExport(stdin_exports, require("./timeline"), module.exports);
180
180
  __reExport(stdin_exports, require("./toast"), module.exports);
181
181
  __reExport(stdin_exports, require("./uploader"), module.exports);
182
182
  __reExport(stdin_exports, require("./video"), module.exports);
183
- const version = "3.1.42";
183
+ const version = "3.1.44";
184
184
  function install(app) {
185
185
  const components = [
186
186
  import_action_sheet.ActionSheet,
@@ -162,7 +162,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
162
162
  default: MediaSizeType;
163
163
  };
164
164
  mediaPlayerProps: PropType<Partial<MediaPlayerProps>>;
165
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "update:mediaList")[], "delete" | "update:mediaList", import("vue").PublicProps, Readonly<ExtractPropTypes<{
165
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<ExtractPropTypes<{
166
166
  disabled: BooleanConstructor;
167
167
  showTitle: BooleanConstructor;
168
168
  useFileNameAsLabel: BooleanConstructor;
@@ -242,6 +242,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
242
242
  mediaPlayerProps: PropType<Partial<MediaPlayerProps>>;
243
243
  }>> & Readonly<{
244
244
  onDelete?: ((...args: any[]) => any) | undefined;
245
+ onProcessing?: ((...args: any[]) => any) | undefined;
245
246
  "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
246
247
  }>, {
247
248
  title: string;
@@ -134,7 +134,7 @@ const mediaPickerProps = {
134
134
  var stdin_default = (0, import_vue2.defineComponent)({
135
135
  name,
136
136
  props: mediaPickerProps,
137
- emits: ["update:mediaList", "delete"],
137
+ emits: ["update:mediaList", "delete", "processing"],
138
138
  setup(props, {
139
139
  emit,
140
140
  slots
@@ -152,6 +152,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
152
152
  const audioRecorderInputRef = (0, import_vue2.ref)();
153
153
  const audioFileInputRef = (0, import_vue2.ref)();
154
154
  const fileInputRef = (0, import_vue2.ref)();
155
+ const mediaListPlaceholder = (0, import_vue2.ref)([]);
155
156
  const checkFileCountBeforeAdd = (mediaType) => {
156
157
  if (props.mediaList.length === props.maxMediaCount) {
157
158
  (0, import_toast.showFailToast)("\u5DF2\u8FBE\u5230\u6587\u4EF6\u6700\u5927\u6570\u91CF\u9650\u5236");
@@ -440,6 +441,25 @@ var stdin_default = (0, import_vue2.defineComponent)({
440
441
  });
441
442
  };
442
443
  const readFiles = (files) => {
444
+ emit("processing", true);
445
+ mediaListPlaceholder.value = files.map((file) => {
446
+ let type;
447
+ if ((0, import_media_util.isAudioType)(file)) {
448
+ type = "audio";
449
+ } else if ((0, import_media_util.isVideoType)(file)) {
450
+ type = "video";
451
+ } else if ((0, import_media_util.isImageType)(file)) {
452
+ type = "photo";
453
+ } else {
454
+ type = "file";
455
+ }
456
+ return {
457
+ file,
458
+ message: "\u5904\u7406\u4E2D...",
459
+ status: "processing",
460
+ type
461
+ };
462
+ });
443
463
  const notImages = files.filter((f) => !(0, import_media_util.isImageType)(f)).map((f) => transformNotImageFile(f));
444
464
  let newMedias = [];
445
465
  if (notImages.length > 0) {
@@ -462,6 +482,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
462
482
  newMedia.label = newMedia.originalName;
463
483
  });
464
484
  }
485
+ mediaListPlaceholder.value = [];
486
+ emit("processing", false);
465
487
  emit("update:mediaList", [...props.mediaList, ...newMedias]);
466
488
  if (props.afterRead) {
467
489
  props.afterRead(newMedias);
@@ -638,7 +660,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
638
660
  status,
639
661
  message
640
662
  } = media;
641
- if (status === "uploading" || status === "failed") {
663
+ if (status === "processing" || status === "uploading" || status === "failed") {
642
664
  const MaskIcon = status === "failed" ? (0, import_vue.createVNode)(import_icon.default, {
643
665
  "name": "close",
644
666
  "class": bem("mask-icon")
@@ -773,6 +795,15 @@ var stdin_default = (0, import_vue2.defineComponent)({
773
795
  (0, import_toast.showFailToast)("\u6682\u4E0D\u652F\u6301\u6B64\u7C7B\u6587\u4EF6\u7684\u9884\u89C8");
774
796
  }
775
797
  });
798
+ const renderMediaListPlaceholder = () => {
799
+ return mediaListPlaceholder.value.map((media) => {
800
+ return (0, import_vue.createVNode)(import_grid_item.default, {
801
+ "key": media.uniqueCode
802
+ }, {
803
+ default: () => [renderMediaThumbnail(media), renderMediaLabel(media), genThumbnailMask(media)]
804
+ });
805
+ });
806
+ };
776
807
  const renderMediaList = () => props.mediaList.map((media, index) => {
777
808
  const showDelete = media.deletable && media.status !== "uploading";
778
809
  const deleteIcon = showDelete && (0, import_vue.createVNode)(import_DeleteIcon.default, {
@@ -826,7 +857,15 @@ var stdin_default = (0, import_vue2.defineComponent)({
826
857
  "class": bem("grid")
827
858
  }, {
828
859
  default: () => [renderMediaList()]
829
- }), [[import_vue.vShow, props.mediaList.length]])]);
860
+ }), [[import_vue.vShow, props.mediaList.length]]), (0, import_vue.withDirectives)((0, import_vue.createVNode)(import_grid.default, {
861
+ "column-num": "3",
862
+ "border": false,
863
+ "square": true,
864
+ "gutter": "4",
865
+ "class": bem("grid")
866
+ }, {
867
+ default: () => [renderMediaListPlaceholder()]
868
+ }), [[import_vue.vShow, mediaListPlaceholder.value.length]])]);
830
869
  };
831
870
  }
832
871
  });
@@ -66,7 +66,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
66
66
  default: import("./type").MediaSizeType;
67
67
  };
68
68
  mediaPlayerProps: import("vue").PropType<Partial<import("..").MediaPlayerProps>>;
69
- }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "update:mediaList")[], "delete" | "update:mediaList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
69
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("delete" | "processing" | "update:mediaList")[], "delete" | "processing" | "update:mediaList", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
70
70
  disabled: BooleanConstructor;
71
71
  showTitle: BooleanConstructor;
72
72
  useFileNameAsLabel: BooleanConstructor;
@@ -136,6 +136,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
136
136
  mediaPlayerProps: import("vue").PropType<Partial<import("..").MediaPlayerProps>>;
137
137
  }>> & Readonly<{
138
138
  onDelete?: ((...args: any[]) => any) | undefined;
139
+ onProcessing?: ((...args: any[]) => any) | undefined;
139
140
  "onUpdate:mediaList"?: ((...args: any[]) => any) | undefined;
140
141
  }>, {
141
142
  title: string;
@@ -1,6 +1,6 @@
1
1
  export type MediaType = 'photo' | 'audio' | 'video' | 'file';
2
2
  export type MediaAddType = 'take' | 'pick' | 'take_and_pick';
3
- export type MediaUploadStatus = 'uploading' | 'done' | 'failed';
3
+ export type MediaUploadStatus = 'processing' | 'uploading' | 'done' | 'failed';
4
4
  export type WxMediaType = 'camera' | 'album';
5
5
  export type MediaSizeType = 'original' | 'compressed';
6
6
  export type Media = {