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 CHANGED
@@ -84,4 +84,4 @@ declare namespace _default {
84
84
  }
85
85
  export default _default;
86
86
  export function install(app: any): void;
87
- export const version: "3.1.74";
87
+ export const version: "3.1.76";
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.74";
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 uniqueFileName = getUniqueFileName(f, "jpg");
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
@@ -84,4 +84,4 @@ declare namespace _default {
84
84
  }
85
85
  export default _default;
86
86
  export function install(app: any): void;
87
- export const version: "3.1.74";
87
+ export const version: "3.1.76";
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.74";
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 uniqueFileName = (0, import_media_util.getUniqueFileName)(f, "jpg");
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;