zartui 3.1.42 → 3.1.43
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 +1 -1
- package/es/index.mjs +1 -1
- package/es/media-picker/MediaPicker.d.ts +2 -1
- package/es/media-picker/MediaPicker.mjs +41 -2
- package/es/media-picker/index.d.ts +2 -1
- package/es/media-picker/type.d.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/media-picker/MediaPicker.d.ts +2 -1
- package/lib/media-picker/MediaPicker.js +41 -2
- package/lib/media-picker/index.d.ts +2 -1
- package/lib/media-picker/type.d.ts +1 -1
- package/lib/web-types.json +1 -1
- package/lib/zartui.cjs.js +42 -3
- package/lib/zartui.es.js +42 -3
- package/lib/zartui.js +42 -3
- package/lib/zartui.min.js +1 -1
- package/package.json +4 -4
package/es/index.d.ts
CHANGED
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.
|
|
79
|
+
const version = "3.1.43";
|
|
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, {
|
|
@@ -792,6 +823,14 @@ var stdin_default = defineComponent({
|
|
|
792
823
|
"square": true,
|
|
793
824
|
"gutter": "4",
|
|
794
825
|
"class": bem("grid")
|
|
826
|
+
}, {
|
|
827
|
+
default: () => [renderMediaListPlaceholder()]
|
|
828
|
+
}), [[_vShow, mediaListPlaceholder.value.length]]), _withDirectives(_createVNode(ZtGrid, {
|
|
829
|
+
"column-num": "3",
|
|
830
|
+
"border": false,
|
|
831
|
+
"square": true,
|
|
832
|
+
"gutter": "4",
|
|
833
|
+
"class": bem("grid")
|
|
795
834
|
}, {
|
|
796
835
|
default: () => [renderMediaList()]
|
|
797
836
|
}), [[_vShow, props.mediaList.length]])]);
|
|
@@ -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
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.
|
|
183
|
+
const version = "3.1.43";
|
|
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, {
|
|
@@ -824,6 +855,14 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
824
855
|
"square": true,
|
|
825
856
|
"gutter": "4",
|
|
826
857
|
"class": bem("grid")
|
|
858
|
+
}, {
|
|
859
|
+
default: () => [renderMediaListPlaceholder()]
|
|
860
|
+
}), [[import_vue.vShow, mediaListPlaceholder.value.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")
|
|
827
866
|
}, {
|
|
828
867
|
default: () => [renderMediaList()]
|
|
829
868
|
}), [[import_vue.vShow, props.mediaList.length]])]);
|
|
@@ -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 = {
|