zartui 3.1.74 → 3.1.76
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 +17 -0
- package/es/media-picker/MediaPicker.mjs +22 -2
- package/es/media-picker/index.d.ts +11 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/media-picker/MediaPicker.d.ts +17 -0
- package/lib/media-picker/MediaPicker.js +22 -2
- package/lib/media-picker/index.d.ts +11 -0
- package/lib/web-types.json +1 -1
- package/lib/zartui.cjs.js +23 -3
- package/lib/zartui.es.js +23 -3
- package/lib/zartui.js +60 -14
- package/lib/zartui.min.js +2 -2
- package/package.json +7 -7
package/es/index.d.ts
CHANGED
package/es/index.mjs
CHANGED
|
@@ -77,7 +77,7 @@ import { Timeline } from "./timeline/index.mjs";
|
|
|
77
77
|
import { Toast } from "./toast/index.mjs";
|
|
78
78
|
import { Uploader } from "./uploader/index.mjs";
|
|
79
79
|
import { Video } from "./video/index.mjs";
|
|
80
|
-
const version = "3.1.
|
|
80
|
+
const version = "3.1.76";
|
|
81
81
|
function install(app) {
|
|
82
82
|
const components = [
|
|
83
83
|
ActionSheet,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue';
|
|
2
2
|
import type { Media, MediaAddType, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview, MediaSizeType, MediaType } from './type';
|
|
3
3
|
import { MediaPlayerProps } from '../media-player';
|
|
4
|
+
import { DownloadActionParams } from '../image-preview/ImagePreview';
|
|
4
5
|
declare const mediaPickerProps: {
|
|
5
6
|
sortable: {
|
|
6
7
|
type: BooleanConstructor;
|
|
@@ -9,6 +10,7 @@ declare const mediaPickerProps: {
|
|
|
9
10
|
disabled: BooleanConstructor;
|
|
10
11
|
showTitle: BooleanConstructor;
|
|
11
12
|
showDownload: BooleanConstructor;
|
|
13
|
+
downloadAction: PropType<(params: DownloadActionParams) => boolean>;
|
|
12
14
|
useFileNameAsLabel: BooleanConstructor;
|
|
13
15
|
title: {
|
|
14
16
|
type: PropType<string>;
|
|
@@ -30,6 +32,10 @@ declare const mediaPickerProps: {
|
|
|
30
32
|
type: NumberConstructor;
|
|
31
33
|
default: number;
|
|
32
34
|
};
|
|
35
|
+
keepFileType: {
|
|
36
|
+
type: BooleanConstructor;
|
|
37
|
+
default: boolean;
|
|
38
|
+
};
|
|
33
39
|
/**
|
|
34
40
|
* {
|
|
35
41
|
* maxImageSideLength,
|
|
@@ -97,6 +103,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
97
103
|
disabled: BooleanConstructor;
|
|
98
104
|
showTitle: BooleanConstructor;
|
|
99
105
|
showDownload: BooleanConstructor;
|
|
106
|
+
downloadAction: PropType<(params: DownloadActionParams) => boolean>;
|
|
100
107
|
useFileNameAsLabel: BooleanConstructor;
|
|
101
108
|
title: {
|
|
102
109
|
type: PropType<string>;
|
|
@@ -118,6 +125,10 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
118
125
|
type: NumberConstructor;
|
|
119
126
|
default: number;
|
|
120
127
|
};
|
|
128
|
+
keepFileType: {
|
|
129
|
+
type: BooleanConstructor;
|
|
130
|
+
default: boolean;
|
|
131
|
+
};
|
|
121
132
|
/**
|
|
122
133
|
* {
|
|
123
134
|
* maxImageSideLength,
|
|
@@ -180,6 +191,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
180
191
|
disabled: BooleanConstructor;
|
|
181
192
|
showTitle: BooleanConstructor;
|
|
182
193
|
showDownload: BooleanConstructor;
|
|
194
|
+
downloadAction: PropType<(params: DownloadActionParams) => boolean>;
|
|
183
195
|
useFileNameAsLabel: BooleanConstructor;
|
|
184
196
|
title: {
|
|
185
197
|
type: PropType<string>;
|
|
@@ -201,6 +213,10 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
201
213
|
type: NumberConstructor;
|
|
202
214
|
default: number;
|
|
203
215
|
};
|
|
216
|
+
keepFileType: {
|
|
217
|
+
type: BooleanConstructor;
|
|
218
|
+
default: boolean;
|
|
219
|
+
};
|
|
204
220
|
/**
|
|
205
221
|
* {
|
|
206
222
|
* maxImageSideLength,
|
|
@@ -270,6 +286,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
270
286
|
maxImageSideLength: number;
|
|
271
287
|
maxImageFileSize: number;
|
|
272
288
|
maxFileSize: number;
|
|
289
|
+
keepFileType: boolean;
|
|
273
290
|
watermarkOptions: Record<string, any>;
|
|
274
291
|
maxMediaCount: number;
|
|
275
292
|
maxImageCount: number;
|
|
@@ -55,6 +55,7 @@ const mediaPickerProps = {
|
|
|
55
55
|
disabled: Boolean,
|
|
56
56
|
showTitle: Boolean,
|
|
57
57
|
showDownload: Boolean,
|
|
58
|
+
downloadAction: Function,
|
|
58
59
|
useFileNameAsLabel: Boolean,
|
|
59
60
|
title: makeStringProp("\u6DFB\u52A0\u9644\u4EF6"),
|
|
60
61
|
mediaList: makeArrayProp(),
|
|
@@ -64,6 +65,11 @@ const mediaPickerProps = {
|
|
|
64
65
|
maxImageFileSize: makeNumberProp(1024),
|
|
65
66
|
// 单个文件大小限制(本单位为KB,默认最大1M)
|
|
66
67
|
maxFileSize: makeNumberProp(FILE_SIZE_LIMIT * 1024),
|
|
68
|
+
// 是否保持原始文件类型(不转换为jpg)
|
|
69
|
+
keepFileType: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: false
|
|
72
|
+
},
|
|
67
73
|
/**
|
|
68
74
|
* {
|
|
69
75
|
* maxImageSideLength,
|
|
@@ -371,10 +377,22 @@ var stdin_default = defineComponent({
|
|
|
371
377
|
}).finally(() => {
|
|
372
378
|
});
|
|
373
379
|
};
|
|
380
|
+
const getExtensionFromMimeType = (mimeType) => {
|
|
381
|
+
const mimeToExt = {
|
|
382
|
+
"image/jpeg": "jpg",
|
|
383
|
+
"image/jpg": "jpg",
|
|
384
|
+
"image/png": "png",
|
|
385
|
+
"image/gif": "gif",
|
|
386
|
+
"image/webp": "webp",
|
|
387
|
+
"image/bmp": "bmp",
|
|
388
|
+
"image/svg+xml": "svg"
|
|
389
|
+
};
|
|
390
|
+
return mimeToExt[mimeType] || "jpg";
|
|
391
|
+
};
|
|
374
392
|
const transformImageFiles = (files) => {
|
|
375
393
|
const promisesTodo = [];
|
|
376
394
|
const resizeOptions = new ResizeOptions(props.maxImageSideLength);
|
|
377
|
-
const compressOptions = new CompressOptions(props.maxImageFileSize);
|
|
395
|
+
const compressOptions = new CompressOptions(props.maxImageFileSize, props.keepFileType);
|
|
378
396
|
for (let i = 0; i < files.length; i++) {
|
|
379
397
|
const file = files[i];
|
|
380
398
|
const watermarkEnabled = props.watermarkOptions && props.watermarkOptions.watermarkConfigString && checkWatermarkConfigSupported(props.watermarkOptions.watermarkConfigString);
|
|
@@ -400,7 +418,8 @@ var stdin_default = defineComponent({
|
|
|
400
418
|
return Promise.resolve(null);
|
|
401
419
|
}
|
|
402
420
|
return file2DataURL(f).then((base64) => {
|
|
403
|
-
const
|
|
421
|
+
const ext = props.keepFileType ? getExtensionFromMimeType(f.type) : "jpg";
|
|
422
|
+
const uniqueFileName = getUniqueFileName(f, ext);
|
|
404
423
|
const media = {
|
|
405
424
|
showSrc: base64,
|
|
406
425
|
type: "photo",
|
|
@@ -746,6 +765,7 @@ var stdin_default = defineComponent({
|
|
|
746
765
|
url: image.url || image.showSrc || ""
|
|
747
766
|
})),
|
|
748
767
|
showDownload: props.showDownload,
|
|
768
|
+
downloadAction: props.downloadAction,
|
|
749
769
|
startPosition: imageIndex,
|
|
750
770
|
closeable: true
|
|
751
771
|
});
|
|
@@ -6,6 +6,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
6
6
|
disabled: BooleanConstructor;
|
|
7
7
|
showTitle: BooleanConstructor;
|
|
8
8
|
showDownload: BooleanConstructor;
|
|
9
|
+
downloadAction: import("vue").PropType<(params: import("../image-preview/ImagePreview").DownloadActionParams) => boolean>;
|
|
9
10
|
useFileNameAsLabel: BooleanConstructor;
|
|
10
11
|
title: {
|
|
11
12
|
type: import("vue").PropType<string>;
|
|
@@ -27,6 +28,10 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
27
28
|
type: NumberConstructor;
|
|
28
29
|
default: number;
|
|
29
30
|
};
|
|
31
|
+
keepFileType: {
|
|
32
|
+
type: BooleanConstructor;
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
30
35
|
watermarkOptions: {
|
|
31
36
|
type: ObjectConstructor;
|
|
32
37
|
default: () => null;
|
|
@@ -79,6 +84,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
79
84
|
disabled: BooleanConstructor;
|
|
80
85
|
showTitle: BooleanConstructor;
|
|
81
86
|
showDownload: BooleanConstructor;
|
|
87
|
+
downloadAction: import("vue").PropType<(params: import("../image-preview/ImagePreview").DownloadActionParams) => boolean>;
|
|
82
88
|
useFileNameAsLabel: BooleanConstructor;
|
|
83
89
|
title: {
|
|
84
90
|
type: import("vue").PropType<string>;
|
|
@@ -100,6 +106,10 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
100
106
|
type: NumberConstructor;
|
|
101
107
|
default: number;
|
|
102
108
|
};
|
|
109
|
+
keepFileType: {
|
|
110
|
+
type: BooleanConstructor;
|
|
111
|
+
default: boolean;
|
|
112
|
+
};
|
|
103
113
|
watermarkOptions: {
|
|
104
114
|
type: ObjectConstructor;
|
|
105
115
|
default: () => null;
|
|
@@ -159,6 +169,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
159
169
|
maxImageSideLength: number;
|
|
160
170
|
maxImageFileSize: number;
|
|
161
171
|
maxFileSize: number;
|
|
172
|
+
keepFileType: boolean;
|
|
162
173
|
watermarkOptions: Record<string, any>;
|
|
163
174
|
maxMediaCount: number;
|
|
164
175
|
maxImageCount: number;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -182,7 +182,7 @@ __reExport(stdin_exports, require("./timeline"), module.exports);
|
|
|
182
182
|
__reExport(stdin_exports, require("./toast"), module.exports);
|
|
183
183
|
__reExport(stdin_exports, require("./uploader"), module.exports);
|
|
184
184
|
__reExport(stdin_exports, require("./video"), module.exports);
|
|
185
|
-
const version = "3.1.
|
|
185
|
+
const version = "3.1.76";
|
|
186
186
|
function install(app) {
|
|
187
187
|
const components = [
|
|
188
188
|
import_action_sheet.ActionSheet,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue';
|
|
2
2
|
import type { Media, MediaAddType, MediaAfterRead, MediaBeforeDelete, MediaBeforeRead, MediaPick, MediaPreview, MediaSizeType, MediaType } from './type';
|
|
3
3
|
import { MediaPlayerProps } from '../media-player';
|
|
4
|
+
import { DownloadActionParams } from '../image-preview/ImagePreview';
|
|
4
5
|
declare const mediaPickerProps: {
|
|
5
6
|
sortable: {
|
|
6
7
|
type: BooleanConstructor;
|
|
@@ -9,6 +10,7 @@ declare const mediaPickerProps: {
|
|
|
9
10
|
disabled: BooleanConstructor;
|
|
10
11
|
showTitle: BooleanConstructor;
|
|
11
12
|
showDownload: BooleanConstructor;
|
|
13
|
+
downloadAction: PropType<(params: DownloadActionParams) => boolean>;
|
|
12
14
|
useFileNameAsLabel: BooleanConstructor;
|
|
13
15
|
title: {
|
|
14
16
|
type: PropType<string>;
|
|
@@ -30,6 +32,10 @@ declare const mediaPickerProps: {
|
|
|
30
32
|
type: NumberConstructor;
|
|
31
33
|
default: number;
|
|
32
34
|
};
|
|
35
|
+
keepFileType: {
|
|
36
|
+
type: BooleanConstructor;
|
|
37
|
+
default: boolean;
|
|
38
|
+
};
|
|
33
39
|
/**
|
|
34
40
|
* {
|
|
35
41
|
* maxImageSideLength,
|
|
@@ -97,6 +103,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
97
103
|
disabled: BooleanConstructor;
|
|
98
104
|
showTitle: BooleanConstructor;
|
|
99
105
|
showDownload: BooleanConstructor;
|
|
106
|
+
downloadAction: PropType<(params: DownloadActionParams) => boolean>;
|
|
100
107
|
useFileNameAsLabel: BooleanConstructor;
|
|
101
108
|
title: {
|
|
102
109
|
type: PropType<string>;
|
|
@@ -118,6 +125,10 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
118
125
|
type: NumberConstructor;
|
|
119
126
|
default: number;
|
|
120
127
|
};
|
|
128
|
+
keepFileType: {
|
|
129
|
+
type: BooleanConstructor;
|
|
130
|
+
default: boolean;
|
|
131
|
+
};
|
|
121
132
|
/**
|
|
122
133
|
* {
|
|
123
134
|
* maxImageSideLength,
|
|
@@ -180,6 +191,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
180
191
|
disabled: BooleanConstructor;
|
|
181
192
|
showTitle: BooleanConstructor;
|
|
182
193
|
showDownload: BooleanConstructor;
|
|
194
|
+
downloadAction: PropType<(params: DownloadActionParams) => boolean>;
|
|
183
195
|
useFileNameAsLabel: BooleanConstructor;
|
|
184
196
|
title: {
|
|
185
197
|
type: PropType<string>;
|
|
@@ -201,6 +213,10 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
201
213
|
type: NumberConstructor;
|
|
202
214
|
default: number;
|
|
203
215
|
};
|
|
216
|
+
keepFileType: {
|
|
217
|
+
type: BooleanConstructor;
|
|
218
|
+
default: boolean;
|
|
219
|
+
};
|
|
204
220
|
/**
|
|
205
221
|
* {
|
|
206
222
|
* maxImageSideLength,
|
|
@@ -270,6 +286,7 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
|
|
|
270
286
|
maxImageSideLength: number;
|
|
271
287
|
maxImageFileSize: number;
|
|
272
288
|
maxFileSize: number;
|
|
289
|
+
keepFileType: boolean;
|
|
273
290
|
watermarkOptions: Record<string, any>;
|
|
274
291
|
maxMediaCount: number;
|
|
275
292
|
maxImageCount: number;
|
|
@@ -87,6 +87,7 @@ const mediaPickerProps = {
|
|
|
87
87
|
disabled: Boolean,
|
|
88
88
|
showTitle: Boolean,
|
|
89
89
|
showDownload: Boolean,
|
|
90
|
+
downloadAction: Function,
|
|
90
91
|
useFileNameAsLabel: Boolean,
|
|
91
92
|
title: (0, import_utils.makeStringProp)("\u6DFB\u52A0\u9644\u4EF6"),
|
|
92
93
|
mediaList: (0, import_utils.makeArrayProp)(),
|
|
@@ -96,6 +97,11 @@ const mediaPickerProps = {
|
|
|
96
97
|
maxImageFileSize: (0, import_utils.makeNumberProp)(1024),
|
|
97
98
|
// 单个文件大小限制(本单位为KB,默认最大1M)
|
|
98
99
|
maxFileSize: (0, import_utils.makeNumberProp)(FILE_SIZE_LIMIT * 1024),
|
|
100
|
+
// 是否保持原始文件类型(不转换为jpg)
|
|
101
|
+
keepFileType: {
|
|
102
|
+
type: Boolean,
|
|
103
|
+
default: false
|
|
104
|
+
},
|
|
99
105
|
/**
|
|
100
106
|
* {
|
|
101
107
|
* maxImageSideLength,
|
|
@@ -403,10 +409,22 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
403
409
|
}).finally(() => {
|
|
404
410
|
});
|
|
405
411
|
};
|
|
412
|
+
const getExtensionFromMimeType = (mimeType) => {
|
|
413
|
+
const mimeToExt = {
|
|
414
|
+
"image/jpeg": "jpg",
|
|
415
|
+
"image/jpg": "jpg",
|
|
416
|
+
"image/png": "png",
|
|
417
|
+
"image/gif": "gif",
|
|
418
|
+
"image/webp": "webp",
|
|
419
|
+
"image/bmp": "bmp",
|
|
420
|
+
"image/svg+xml": "svg"
|
|
421
|
+
};
|
|
422
|
+
return mimeToExt[mimeType] || "jpg";
|
|
423
|
+
};
|
|
406
424
|
const transformImageFiles = (files) => {
|
|
407
425
|
const promisesTodo = [];
|
|
408
426
|
const resizeOptions = new import_app_media_utils.ResizeOptions(props.maxImageSideLength);
|
|
409
|
-
const compressOptions = new import_app_media_utils.CompressOptions(props.maxImageFileSize);
|
|
427
|
+
const compressOptions = new import_app_media_utils.CompressOptions(props.maxImageFileSize, props.keepFileType);
|
|
410
428
|
for (let i = 0; i < files.length; i++) {
|
|
411
429
|
const file = files[i];
|
|
412
430
|
const watermarkEnabled = props.watermarkOptions && props.watermarkOptions.watermarkConfigString && (0, import_app_media_utils.checkWatermarkConfigSupported)(props.watermarkOptions.watermarkConfigString);
|
|
@@ -432,7 +450,8 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
432
450
|
return Promise.resolve(null);
|
|
433
451
|
}
|
|
434
452
|
return (0, import_media_util.file2DataURL)(f).then((base64) => {
|
|
435
|
-
const
|
|
453
|
+
const ext = props.keepFileType ? getExtensionFromMimeType(f.type) : "jpg";
|
|
454
|
+
const uniqueFileName = (0, import_media_util.getUniqueFileName)(f, ext);
|
|
436
455
|
const media = {
|
|
437
456
|
showSrc: base64,
|
|
438
457
|
type: "photo",
|
|
@@ -778,6 +797,7 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
778
797
|
url: image.url || image.showSrc || ""
|
|
779
798
|
})),
|
|
780
799
|
showDownload: props.showDownload,
|
|
800
|
+
downloadAction: props.downloadAction,
|
|
781
801
|
startPosition: imageIndex,
|
|
782
802
|
closeable: true
|
|
783
803
|
});
|
|
@@ -6,6 +6,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
6
6
|
disabled: BooleanConstructor;
|
|
7
7
|
showTitle: BooleanConstructor;
|
|
8
8
|
showDownload: BooleanConstructor;
|
|
9
|
+
downloadAction: import("vue").PropType<(params: import("../image-preview/ImagePreview").DownloadActionParams) => boolean>;
|
|
9
10
|
useFileNameAsLabel: BooleanConstructor;
|
|
10
11
|
title: {
|
|
11
12
|
type: import("vue").PropType<string>;
|
|
@@ -27,6 +28,10 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
27
28
|
type: NumberConstructor;
|
|
28
29
|
default: number;
|
|
29
30
|
};
|
|
31
|
+
keepFileType: {
|
|
32
|
+
type: BooleanConstructor;
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
30
35
|
watermarkOptions: {
|
|
31
36
|
type: ObjectConstructor;
|
|
32
37
|
default: () => null;
|
|
@@ -79,6 +84,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
79
84
|
disabled: BooleanConstructor;
|
|
80
85
|
showTitle: BooleanConstructor;
|
|
81
86
|
showDownload: BooleanConstructor;
|
|
87
|
+
downloadAction: import("vue").PropType<(params: import("../image-preview/ImagePreview").DownloadActionParams) => boolean>;
|
|
82
88
|
useFileNameAsLabel: BooleanConstructor;
|
|
83
89
|
title: {
|
|
84
90
|
type: import("vue").PropType<string>;
|
|
@@ -100,6 +106,10 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
100
106
|
type: NumberConstructor;
|
|
101
107
|
default: number;
|
|
102
108
|
};
|
|
109
|
+
keepFileType: {
|
|
110
|
+
type: BooleanConstructor;
|
|
111
|
+
default: boolean;
|
|
112
|
+
};
|
|
103
113
|
watermarkOptions: {
|
|
104
114
|
type: ObjectConstructor;
|
|
105
115
|
default: () => null;
|
|
@@ -159,6 +169,7 @@ export declare const MediaPicker: import("../utils").WithInstall<import("vue").D
|
|
|
159
169
|
maxImageSideLength: number;
|
|
160
170
|
maxImageFileSize: number;
|
|
161
171
|
maxFileSize: number;
|
|
172
|
+
keepFileType: boolean;
|
|
162
173
|
watermarkOptions: Record<string, any>;
|
|
163
174
|
maxMediaCount: number;
|
|
164
175
|
maxImageCount: number;
|