giime 0.6.3 → 0.6.4

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.
Files changed (90) hide show
  1. package/dist/index.css +57 -56
  2. package/es/api/materialApi/cross/getAdFileExist.d.ts +1 -0
  3. package/es/api/materialApi/cross/getAdFileExist.mjs.map +1 -1
  4. package/es/components/src/base/chart/Chart.vue.d.ts +2 -2
  5. package/es/components/src/base/chart/index.d.ts +2 -2
  6. package/es/components/src/base/empty/Empty.vue.d.ts +1 -1
  7. package/es/components/src/base/empty/index.d.ts +3 -3
  8. package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +4 -4
  9. package/es/components/src/business/uploadMaterial/index.d.ts +4 -4
  10. package/es/components/src/business/uploadMaterial/uploadMaterial.d.ts +2 -5
  11. package/es/components/src/business/uploadMaterial/uploadMaterial.mjs.map +1 -1
  12. package/es/components/src/composite/fileComponent/FileComponent.vue.d.ts +1 -1
  13. package/es/components/src/composite/fileComponent/index.d.ts +1 -1
  14. package/es/components/src/composite/importDialog/ImportDialog.vue.d.ts +9 -2
  15. package/es/components/src/composite/importDialog/ImportDialog.vue2.mjs +5 -4
  16. package/es/components/src/composite/importDialog/ImportDialog.vue2.mjs.map +1 -1
  17. package/es/components/src/composite/importDialog/index.d.ts +193 -49
  18. package/es/components/src/composite/previewFile/PreviewFile.vue.d.ts +1 -1
  19. package/es/components/src/composite/previewFile/index.d.ts +1 -1
  20. package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +5 -5
  21. package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
  22. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +156 -145
  23. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
  24. package/es/components/src/composite/uploadFile/index.d.ts +12 -12
  25. package/es/giime/index.mjs +2 -1
  26. package/es/giime/index.mjs.map +1 -1
  27. package/es/giime/version.d.ts +1 -1
  28. package/es/giime/version.mjs +1 -1
  29. package/es/giime/version.mjs.map +1 -1
  30. package/es/hooks/base/usePasteFile/index.d.ts +89 -0
  31. package/es/hooks/base/usePasteFile/index.mjs +109 -0
  32. package/es/hooks/base/usePasteFile/index.mjs.map +1 -0
  33. package/es/index.css +57 -56
  34. package/es/utils/index.d.ts +1 -0
  35. package/es/utils/index.mjs +2 -1
  36. package/es/utils/index.mjs.map +1 -1
  37. package/es/utils/src/alioss/aliossPutHook.d.ts +116 -41
  38. package/es/utils/src/alioss/aliossPutHook.mjs +165 -97
  39. package/es/utils/src/alioss/aliossPutHook.mjs.map +1 -1
  40. package/es/utils/src/file.d.ts +7 -0
  41. package/es/utils/src/file.mjs +39 -1
  42. package/es/utils/src/file.mjs.map +1 -1
  43. package/es/utils/src/pasteFile/index.d.ts +33 -0
  44. package/es/utils/src/pasteFile/index.mjs +142 -0
  45. package/es/utils/src/pasteFile/index.mjs.map +1 -0
  46. package/lib/api/materialApi/cross/getAdFileExist.d.ts +1 -0
  47. package/lib/api/materialApi/cross/getAdFileExist.js.map +1 -1
  48. package/lib/components/src/base/chart/Chart.vue.d.ts +2 -2
  49. package/lib/components/src/base/chart/index.d.ts +2 -2
  50. package/lib/components/src/base/empty/Empty.vue.d.ts +1 -1
  51. package/lib/components/src/base/empty/index.d.ts +3 -3
  52. package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +4 -4
  53. package/lib/components/src/business/uploadMaterial/index.d.ts +4 -4
  54. package/lib/components/src/business/uploadMaterial/uploadMaterial.d.ts +2 -5
  55. package/lib/components/src/business/uploadMaterial/uploadMaterial.js.map +1 -1
  56. package/lib/components/src/composite/fileComponent/FileComponent.vue.d.ts +1 -1
  57. package/lib/components/src/composite/fileComponent/index.d.ts +1 -1
  58. package/lib/components/src/composite/importDialog/ImportDialog.vue.d.ts +9 -2
  59. package/lib/components/src/composite/importDialog/ImportDialog.vue2.js +4 -3
  60. package/lib/components/src/composite/importDialog/ImportDialog.vue2.js.map +1 -1
  61. package/lib/components/src/composite/importDialog/index.d.ts +193 -49
  62. package/lib/components/src/composite/previewFile/PreviewFile.vue.d.ts +1 -1
  63. package/lib/components/src/composite/previewFile/index.d.ts +1 -1
  64. package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +5 -5
  65. package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
  66. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +160 -149
  67. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
  68. package/lib/components/src/composite/uploadFile/index.d.ts +12 -12
  69. package/lib/giime/index.js +334 -328
  70. package/lib/giime/index.js.map +1 -1
  71. package/lib/giime/version.d.ts +1 -1
  72. package/lib/giime/version.js +1 -1
  73. package/lib/giime/version.js.map +1 -1
  74. package/lib/hooks/base/usePasteFile/index.d.ts +89 -0
  75. package/lib/hooks/base/usePasteFile/index.js +111 -0
  76. package/lib/hooks/base/usePasteFile/index.js.map +1 -0
  77. package/lib/index.css +57 -56
  78. package/lib/utils/index.d.ts +1 -0
  79. package/lib/utils/index.js +6 -0
  80. package/lib/utils/index.js.map +1 -1
  81. package/lib/utils/src/alioss/aliossPutHook.d.ts +116 -41
  82. package/lib/utils/src/alioss/aliossPutHook.js +165 -97
  83. package/lib/utils/src/alioss/aliossPutHook.js.map +1 -1
  84. package/lib/utils/src/file.d.ts +7 -0
  85. package/lib/utils/src/file.js +40 -0
  86. package/lib/utils/src/file.js.map +1 -1
  87. package/lib/utils/src/pasteFile/index.d.ts +33 -0
  88. package/lib/utils/src/pasteFile/index.js +146 -0
  89. package/lib/utils/src/pasteFile/index.js.map +1 -0
  90. package/package.json +1 -1
@@ -1,17 +1,19 @@
1
1
  import { pushScopeId, popScopeId, createElementVNode, createTextVNode, defineComponent, mergeModels, useModel, ref, resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, mergeProps, createSlots, renderSlot, normalizeStyle, unref, createBlock, createCommentVNode } from 'vue';
2
2
  import { ElMessageBox } from 'element-plus';
3
3
  import { useAliossHookStore } from '../../../../utils/src/alioss/aliossPutHook.mjs';
4
+ import { fileValidType } from '../../../../utils/src/file.mjs';
5
+ import { usePasteFile } from '../../../../hooks/base/usePasteFile/index.mjs';
4
6
  import { UploadFilled, View, Delete } from '@element-plus/icons-vue';
5
7
  import { GmFileComponent } from '../fileComponent/index.mjs';
6
8
  import { GmPreviewFile } from '../previewFile/index.mjs';
7
9
  import { uploadFileProps } from './uploadFile.mjs';
8
10
 
9
- const _withScopeId = (n) => (pushScopeId("data-v-142ef678"), n = n(), popScopeId(), n);
11
+ const _withScopeId = (n) => (pushScopeId("data-v-3bf7f50d"), n = n(), popScopeId(), n);
10
12
  const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode(
11
13
  "div",
12
14
  { class: "el-upload__text gm-text-center !gm-text-xs gm-text-gray-500" },
13
15
  [
14
- /* @__PURE__ */ createTextVNode(" \u5C06\u6587\u4EF6\u62D6\u5230\u6B64\u5904\uFF0C\u6216 "),
16
+ /* @__PURE__ */ createTextVNode(" \u5C06\u6587\u4EF6\u62D6\u5230\u6B64\u5904\uFF0C\u590D\u5236\u7C98\u8D34\uFF0C\u6216 "),
15
17
  /* @__PURE__ */ createElementVNode("em", { class: "gm-text-blue-700" }, "\u70B9\u51FB\u4E0A\u4F20")
16
18
  ],
17
19
  -1
@@ -37,27 +39,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
37
39
  const emit = __emit;
38
40
  const { uploadFile, saveFileResult } = useAliossHookStore();
39
41
  saveFileResult((res) => {
40
- const { url, md5_code, file_size } = res;
41
- emit("handleSaveFileSuccess", { url, md5_code, file_size });
42
+ emit("handleSaveFileSuccess", res);
42
43
  });
43
44
  const fileList = useModel(__props, "fileList");
44
45
  const checkoutFiles = useModel(__props, "checkoutFiles");
45
46
  const httpRequest = async (params) => {
46
47
  const { file } = params;
47
48
  if (props.accept && props.accept !== "*") {
48
- const acceptTypes = props.accept.split(",").map((type) => type.trim());
49
- const fileType = file.type || "";
50
- const fileExtension = file.name.slice(Math.max(0, file.name.lastIndexOf(".")));
51
- const isValidType = acceptTypes.some((type) => {
52
- if (type.startsWith(".")) {
53
- return fileExtension.toLowerCase() === type.toLowerCase();
54
- } else if (type.includes("/*")) {
55
- const [mainType] = type.split("/");
56
- return fileType.startsWith(`${mainType}/`);
57
- } else {
58
- return fileType === type;
59
- }
60
- });
49
+ const isValidType = fileValidType(file, props.accept);
61
50
  if (!isValidType) {
62
51
  throw new Error(`\u6587\u4EF6\u7C7B\u578B\u4E0D\u652F\u6301\uFF0C\u8BF7\u4E0A\u4F20 ${props.accept} \u683C\u5F0F\u7684\u6587\u4EF6`);
63
52
  }
@@ -98,6 +87,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
98
87
  });
99
88
  };
100
89
  const uploadFileRef = ref();
90
+ const pasteFileRef = ref();
101
91
  const submit = () => {
102
92
  uploadFileRef.value.submit();
103
93
  };
@@ -116,6 +106,23 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
116
106
  fileIndex.value = fileList.value.indexOf(file);
117
107
  dialogVisible.value = true;
118
108
  };
109
+ const { onSuccess, onError } = usePasteFile(pasteFileRef, { accept: props.accept, disabled: props.disabled });
110
+ onSuccess((files) => {
111
+ if (Array.isArray(files) && files.length > 0) {
112
+ files.forEach((file) => {
113
+ if (file instanceof File) {
114
+ const rawFile = file;
115
+ handleStart(rawFile);
116
+ }
117
+ });
118
+ }
119
+ });
120
+ onError((error) => {
121
+ console.error("\u7C98\u8D34\u9519\u8BEF:", error);
122
+ ElMessageBox.alert(error.message, "\u63D0\u793A", {
123
+ type: "error"
124
+ });
125
+ });
119
126
  __expose({
120
127
  submit,
121
128
  abort,
@@ -129,143 +136,147 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
129
136
  const _component_el_checkbox = resolveComponent("el-checkbox");
130
137
  const _component_el_upload = resolveComponent("el-upload");
131
138
  const _component_el_checkbox_group = resolveComponent("el-checkbox-group");
132
- return openBlock(), createElementBlock(
133
- "div",
134
- {
135
- class: normalizeClass([{ "gm-upload-file-picture-card": _ctx.listType === "picture-card", "gm-upload-file-disabled": _ctx.disabled }, "gm-upload-file"])
136
- },
137
- [
138
- createVNode(_component_el_checkbox_group, {
139
- modelValue: checkoutFiles.value,
140
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event)
141
- }, {
142
- default: withCtx(() => [
143
- createVNode(_component_el_upload, mergeProps({
144
- ref_key: "uploadFileRef",
145
- ref: uploadFileRef
146
- }, props, {
147
- "file-list": fileList.value,
148
- "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
149
- "before-remove": beforeRemove,
150
- action: "",
151
- "http-request": httpRequest
152
- }), createSlots({
153
- default: withCtx(() => [
154
- !_ctx.disabled ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
155
- _ctx.listType === "picture-card" ? (openBlock(), createElementBlock(
156
- "div",
157
- {
158
- key: 0,
159
- class: "gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1",
160
- style: normalizeStyle([{ "flex-direction": "column" }, { width: _ctx.width + "px", height: _ctx.height + "px" }])
161
- },
162
- [
163
- createVNode(_component_el_icon, {
164
- size: 30,
165
- color: "#999"
166
- }, {
167
- default: withCtx(() => [
168
- createVNode(unref(UploadFilled))
169
- ]),
170
- _: 1
171
- /* STABLE */
172
- }),
173
- _hoisted_1
174
- ],
175
- 4
176
- /* STYLE */
177
- )) : (openBlock(), createBlock(_component_el_button, {
178
- key: 1,
179
- type: "primary",
180
- size: "default"
181
- }, {
182
- default: withCtx(() => [
183
- createTextVNode("\u70B9\u51FB\u4E0A\u4F20")
184
- ]),
185
- _: 1
186
- /* STABLE */
187
- }))
188
- ], true) : createCommentVNode("v-if", true)
189
- ]),
190
- _: 2
191
- /* DYNAMIC */
192
- }, [
193
- _ctx.showFileList && _ctx.listType === "picture-card" ? {
194
- name: "file",
195
- fn: withCtx(({ file }) => [
196
- _ctx.checkbox ? (openBlock(), createBlock(_component_el_checkbox, {
197
- key: 0,
198
- value: file
199
- }, null, 8, ["value"])) : createCommentVNode("v-if", true),
200
- renderSlot(_ctx.$slots, "file", { file }, () => [
201
- createElementVNode(
139
+ return openBlock(), createElementBlock("div", null, [
140
+ createElementVNode(
141
+ "div",
142
+ {
143
+ ref_key: "pasteFileRef",
144
+ ref: pasteFileRef,
145
+ class: normalizeClass([{ "gm-upload-file-picture-card": _ctx.listType === "picture-card", "gm-upload-file-disabled": _ctx.disabled }, "gm-upload-file"])
146
+ },
147
+ [
148
+ createVNode(_component_el_checkbox_group, {
149
+ modelValue: checkoutFiles.value,
150
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => checkoutFiles.value = $event)
151
+ }, {
152
+ default: withCtx(() => [
153
+ createVNode(_component_el_upload, mergeProps({
154
+ ref_key: "uploadFileRef",
155
+ ref: uploadFileRef
156
+ }, props, {
157
+ "file-list": fileList.value,
158
+ "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => fileList.value = $event),
159
+ "before-remove": beforeRemove,
160
+ action: "",
161
+ "http-request": httpRequest
162
+ }), createSlots({
163
+ default: withCtx(() => [
164
+ !_ctx.disabled ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
165
+ _ctx.listType === "picture-card" ? (openBlock(), createElementBlock(
202
166
  "div",
203
167
  {
204
- class: "gm-flex gm-items-center gm-justify-center gm-rounded-md",
205
- style: normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
168
+ key: 0,
169
+ class: "gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1",
170
+ style: normalizeStyle([{ "flex-direction": "column" }, { width: _ctx.width + "px", height: _ctx.height + "px" }])
206
171
  },
207
172
  [
208
- createVNode(unref(GmFileComponent), {
209
- file,
210
- size: _ctx.width - 40,
211
- url: _ctx.url,
212
- controls: false
213
- }, null, 8, ["file", "size", "url"])
214
- ],
215
- 4
216
- /* STYLE */
217
- ),
218
- createElementVNode("div", _hoisted_2, [
219
- createElementVNode("span", {
220
- class: "el-upload-list__item-preview",
221
- onClick: ($event) => handlePreview(file)
222
- }, [
223
- createVNode(_component_el_icon, null, {
173
+ createVNode(_component_el_icon, {
174
+ size: 30,
175
+ color: "#999"
176
+ }, {
224
177
  default: withCtx(() => [
225
- createVNode(unref(View))
178
+ createVNode(unref(UploadFilled))
226
179
  ]),
227
180
  _: 1
228
181
  /* STABLE */
229
- })
230
- ], 8, _hoisted_3),
231
- _ctx.showDelete ? (openBlock(), createElementBlock("span", {
232
- key: 0,
233
- class: "el-upload-list__item-delete",
234
- onClick: ($event) => handleRemove(file, fileList.value)
235
- }, [
236
- createVNode(_component_el_icon, null, {
237
- default: withCtx(() => [
238
- createVNode(unref(Delete))
239
- ]),
240
- _: 1
241
- /* STABLE */
242
- })
243
- ], 8, _hoisted_4)) : createCommentVNode("v-if", true)
244
- ])
245
- ], true)
182
+ }),
183
+ _hoisted_1
184
+ ],
185
+ 4
186
+ /* STYLE */
187
+ )) : (openBlock(), createBlock(_component_el_button, {
188
+ key: 1,
189
+ type: "primary",
190
+ size: "default"
191
+ }, {
192
+ default: withCtx(() => [
193
+ createTextVNode("\u70B9\u51FB\u4E0A\u4F20")
194
+ ]),
195
+ _: 1
196
+ /* STABLE */
197
+ }))
198
+ ], true) : createCommentVNode("v-if", true)
246
199
  ]),
247
- key: "0"
248
- } : void 0
249
- ]), 1040, ["file-list"])
250
- ]),
251
- _: 3
252
- /* FORWARDED */
253
- }, 8, ["modelValue"]),
254
- createVNode(unref(GmPreviewFile), {
255
- dialogVisible: dialogVisible.value,
256
- "onUpdate:dialogVisible": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
257
- "file-index": fileIndex.value,
258
- "onUpdate:fileIndex": _cache[3] || (_cache[3] = ($event) => fileIndex.value = $event),
259
- "file-list": fileList.value,
260
- controls: _ctx.controls,
261
- oncontextmenu: _ctx.oncontextmenu,
262
- controlslist: _ctx.controlslist,
263
- field: _ctx.field
264
- }, null, 8, ["dialogVisible", "file-index", "file-list", "controls", "oncontextmenu", "controlslist", "field"])
265
- ],
266
- 2
267
- /* CLASS */
268
- );
200
+ _: 2
201
+ /* DYNAMIC */
202
+ }, [
203
+ _ctx.showFileList && _ctx.listType === "picture-card" ? {
204
+ name: "file",
205
+ fn: withCtx(({ file }) => [
206
+ _ctx.checkbox ? (openBlock(), createBlock(_component_el_checkbox, {
207
+ key: 0,
208
+ value: file
209
+ }, null, 8, ["value"])) : createCommentVNode("v-if", true),
210
+ renderSlot(_ctx.$slots, "file", { file }, () => [
211
+ createElementVNode(
212
+ "div",
213
+ {
214
+ class: "gm-flex gm-items-center gm-justify-center gm-rounded-md",
215
+ style: normalizeStyle({ width: _ctx.width + "px", height: _ctx.height + "px" })
216
+ },
217
+ [
218
+ createVNode(unref(GmFileComponent), {
219
+ file,
220
+ size: _ctx.width - 40,
221
+ url: _ctx.url,
222
+ controls: false
223
+ }, null, 8, ["file", "size", "url"])
224
+ ],
225
+ 4
226
+ /* STYLE */
227
+ ),
228
+ createElementVNode("div", _hoisted_2, [
229
+ createElementVNode("span", {
230
+ class: "el-upload-list__item-preview",
231
+ onClick: ($event) => handlePreview(file)
232
+ }, [
233
+ createVNode(_component_el_icon, null, {
234
+ default: withCtx(() => [
235
+ createVNode(unref(View))
236
+ ]),
237
+ _: 1
238
+ /* STABLE */
239
+ })
240
+ ], 8, _hoisted_3),
241
+ _ctx.showDelete ? (openBlock(), createElementBlock("span", {
242
+ key: 0,
243
+ class: "el-upload-list__item-delete",
244
+ onClick: ($event) => handleRemove(file, fileList.value)
245
+ }, [
246
+ createVNode(_component_el_icon, null, {
247
+ default: withCtx(() => [
248
+ createVNode(unref(Delete))
249
+ ]),
250
+ _: 1
251
+ /* STABLE */
252
+ })
253
+ ], 8, _hoisted_4)) : createCommentVNode("v-if", true)
254
+ ])
255
+ ], true)
256
+ ]),
257
+ key: "0"
258
+ } : void 0
259
+ ]), 1040, ["file-list"])
260
+ ]),
261
+ _: 3
262
+ /* FORWARDED */
263
+ }, 8, ["modelValue"]),
264
+ createVNode(unref(GmPreviewFile), {
265
+ dialogVisible: dialogVisible.value,
266
+ "onUpdate:dialogVisible": _cache[2] || (_cache[2] = ($event) => dialogVisible.value = $event),
267
+ "file-index": fileIndex.value,
268
+ "onUpdate:fileIndex": _cache[3] || (_cache[3] = ($event) => fileIndex.value = $event),
269
+ "file-list": fileList.value,
270
+ controls: _ctx.controls,
271
+ oncontextmenu: _ctx.oncontextmenu,
272
+ controlslist: _ctx.controlslist,
273
+ field: _ctx.field
274
+ }, null, 8, ["dialogVisible", "file-index", "file-list", "controls", "oncontextmenu", "controlslist", "field"])
275
+ ],
276
+ 2
277
+ /* CLASS */
278
+ )
279
+ ]);
269
280
  };
270
281
  }
271
282
  });
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\r\n <div :class=\"{ 'gm-upload-file-picture-card': listType === 'picture-card', 'gm-upload-file-disabled': disabled }\" class=\"gm-upload-file\">\r\n <el-checkbox-group v-model=\"checkoutFiles\">\r\n <el-upload ref=\"uploadFileRef\" v-bind=\"props\" v-model:file-list=\"fileList\" :before-remove=\"beforeRemove\" action=\"\" :http-request=\"httpRequest\">\r\n <slot v-if=\"!disabled\">\r\n <template v-if=\"listType === 'picture-card'\">\r\n <div\r\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1\"\r\n style=\"flex-direction: column\"\r\n :style=\"{ width: width + 'px', height: height + 'px' }\"\r\n >\r\n <el-icon :size=\"30\" color=\"#999\">\r\n <UploadFilled />\r\n </el-icon>\r\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\r\n 将文件拖到此处,或 <em class=\"gm-text-blue-700\">点击上传</em>\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\r\n </template>\r\n </slot>\r\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\r\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\r\n <slot name=\"file\" :file=\"file\">\r\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\r\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" />\r\n </div>\r\n <div class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\r\n <el-icon><View /></el-icon>\r\n </span>\r\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file, fileList)\">\r\n <el-icon><Delete /></el-icon>\r\n </span>\r\n </div>\r\n </slot>\r\n </template>\r\n </el-upload>\r\n </el-checkbox-group>\r\n\r\n <GmPreviewFile\r\n v-model:dialogVisible=\"dialogVisible\"\r\n v-model:file-index=\"fileIndex\"\r\n :file-list=\"fileList\"\r\n :controls=\"controls\"\r\n :oncontextmenu=\"oncontextmenu\"\r\n :controlslist=\"controlslist\"\r\n :field=\"field\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport { ElMessageBox } from 'element-plus';\r\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\r\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\r\nimport GmFileComponent from '../fileComponent';\r\nimport GmPreviewFile from '../previewFile';\r\nimport { uploadFileProps } from './uploadFile';\r\nimport type { UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\r\nimport type { PostSaveFileResponse } from '@giime/utils/src/alioss/aliossPutHook';\r\n\r\ndefineOptions({\r\n name: 'GmUploadFile',\r\n});\r\n\r\nconst props = defineProps(uploadFileProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\nconst { uploadFile, saveFileResult } = useAliossHookStore();\r\n\r\nsaveFileResult((res: any) => {\r\n const { url, md5_code, file_size } = res;\r\n emit('handleSaveFileSuccess', { url, md5_code, file_size });\r\n});\r\n\r\n/** 上传文件 */\r\nconst fileList = defineModel<UploadFile[]>('fileList', { required: true, default: () => [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\r\n\r\n/* 上传 */\r\nconst httpRequest = async (params: UploadRequestOptions) => {\r\n const { file } = params;\r\n\r\n // 验证文件类型\r\n if (props.accept && props.accept !== '*') {\r\n const acceptTypes = props.accept.split(',').map(type => type.trim());\r\n const fileType = file.type || '';\r\n const fileExtension = file.name.slice(Math.max(0, file.name.lastIndexOf('.')));\r\n\r\n const isValidType = acceptTypes.some(type => {\r\n if (type.startsWith('.')) {\r\n // 检查文件扩展名\r\n return fileExtension.toLowerCase() === type.toLowerCase();\r\n } else if (type.includes('/*')) {\r\n // 检查 MIME 类型组,如 image/*\r\n const [mainType] = type.split('/');\r\n return fileType.startsWith(`${mainType}/`);\r\n } else {\r\n // 检查具体 MIME 类型\r\n return fileType === type;\r\n }\r\n });\r\n\r\n if (!isValidType) {\r\n throw new Error(`文件类型不支持,请上传 ${props.accept} 格式的文件`);\r\n }\r\n }\r\n\r\n const res = await uploadFile({\r\n file,\r\n fileName: props.fileName,\r\n folder: props.folder,\r\n seat: props.seat,\r\n partSize: props.partSize,\r\n parallel: props.parallel,\r\n options: props.options,\r\n bucket: props.bucket,\r\n saveStore: props.saveStore,\r\n cdn: props.cdn,\r\n });\r\n return res;\r\n};\r\n\r\n/* 删除文件前 */\r\nconst beforeRemove = (file: UploadFile, files: UploadFiles) => {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n return props.beforeRemove ? props.beforeRemove(file, files) : true;\r\n};\r\n\r\n/* 删除文件 */\r\nconst handleRemove = (file: UploadFile, uploadFiles: UploadFiles) => {\r\n ElMessageBox.confirm('确定删除该文件吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n const index = fileList.value.indexOf(file);\r\n if (index > -1) {\r\n fileList.value.splice(index, 1);\r\n emit('handleRemove', { file, index });\r\n return props.onRemove?.(file, uploadFiles);\r\n }\r\n })\r\n .catch(() => {});\r\n};\r\n\r\nconst uploadFileRef = ref<UploadInstance>();\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadFileRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadFileRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadFileRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadFileRef.value!.handleStart(rawFile);\r\n};\r\n\r\n/** 预览 */\r\nconst dialogVisible = ref(false);\r\nconst fileIndex = ref(0);\r\nconst handlePreview = (file: UploadFile) => {\r\n fileIndex.value = fileList.value.indexOf(file);\r\n dialogVisible.value = true;\r\n};\r\n\r\ndefineExpose({\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n uploadFileRef,\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.gm-upload-preview-dialog {\r\n :deep(.el-dialog__body) {\r\n padding: 0;\r\n }\r\n}\r\n.gm-upload-file-picture-card {\r\n :deep(.el-upload-list__item),\r\n :deep(.el-upload--picture-card) {\r\n width: 120px;\r\n height: 120px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.gm-upload-file {\r\n line-height: normal;\r\n .el-checkbox {\r\n position: absolute;\r\n left: 10px;\r\n top: 0;\r\n z-index: 9;\r\n }\r\n .el-upload-list__item-file-name {\r\n line-height: normal;\r\n }\r\n .el-upload-dragger {\r\n padding: 0;\r\n border: none;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n }\r\n}\r\n.gm-upload-file-disabled {\r\n .el-upload--picture-card {\r\n display: none;\r\n }\r\n .el-upload-list__item-status-label {\r\n display: none;\r\n }\r\n}\r\n</style>\r\n"],"names":["_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"UploadFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/uploadFile/UploadFile.vue"],"sourcesContent":["<template>\r\n <div>\r\n <div\r\n ref=\"pasteFileRef\"\r\n :class=\"{ 'gm-upload-file-picture-card': listType === 'picture-card', 'gm-upload-file-disabled': disabled }\"\r\n class=\"gm-upload-file\"\r\n >\r\n <el-checkbox-group v-model=\"checkoutFiles\">\r\n <el-upload\r\n ref=\"uploadFileRef\"\r\n v-bind=\"props\"\r\n v-model:file-list=\"fileList\"\r\n :before-remove=\"beforeRemove\"\r\n action=\"\"\r\n :http-request=\"httpRequest\"\r\n >\r\n <slot v-if=\"!disabled\">\r\n <template v-if=\"listType === 'picture-card'\">\r\n <div\r\n class=\"gm-flex gm-flex-col gm-items-center gm-justify-center gm-rounded-md gm-p-1\"\r\n style=\"flex-direction: column\"\r\n :style=\"{ width: width + 'px', height: height + 'px' }\"\r\n >\r\n <el-icon :size=\"30\" color=\"#999\">\r\n <UploadFilled />\r\n </el-icon>\r\n <div class=\"el-upload__text gm-text-center !gm-text-xs gm-text-gray-500\">\r\n 将文件拖到此处,复制粘贴,或 <em class=\"gm-text-blue-700\">点击上传</em>\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <el-button type=\"primary\" size=\"default\">点击上传</el-button>\r\n </template>\r\n </slot>\r\n <template v-if=\"showFileList && listType === 'picture-card'\" #file=\"{ file }\">\r\n <el-checkbox v-if=\"checkbox\" :value=\"file\" />\r\n <slot name=\"file\" :file=\"file\">\r\n <div class=\"gm-flex gm-items-center gm-justify-center gm-rounded-md\" :style=\"{ width: width + 'px', height: height + 'px' }\">\r\n <GmFileComponent :file=\"file\" :size=\"width - 40\" :url=\"url\" :controls=\"false\" />\r\n </div>\r\n <div class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\" @click=\"handlePreview(file)\">\r\n <el-icon><View /></el-icon>\r\n </span>\r\n <span v-if=\"showDelete\" class=\"el-upload-list__item-delete\" @click=\"handleRemove(file, fileList)\">\r\n <el-icon><Delete /></el-icon>\r\n </span>\r\n </div>\r\n </slot>\r\n </template>\r\n </el-upload>\r\n </el-checkbox-group>\r\n\r\n <GmPreviewFile\r\n v-model:dialogVisible=\"dialogVisible\"\r\n v-model:file-index=\"fileIndex\"\r\n :file-list=\"fileList\"\r\n :controls=\"controls\"\r\n :oncontextmenu=\"oncontextmenu\"\r\n :controlslist=\"controlslist\"\r\n :field=\"field\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref } from 'vue';\r\nimport { ElMessageBox } from 'element-plus';\r\nimport { useAliossHookStore } from '@giime/utils/src/alioss/aliossPutHook';\r\nimport { fileValidType } from '@giime/utils/src/file';\r\n// import { pasteFile } from '@giime/utils/src/pasteFile';\r\nimport { usePasteFile } from '@giime/hooks/base/usePasteFile';\r\nimport { Delete, UploadFilled, View } from '@element-plus/icons-vue';\r\nimport GmFileComponent from '../fileComponent';\r\nimport GmPreviewFile from '../previewFile';\r\nimport { uploadFileProps } from './uploadFile';\r\nimport type { UploadFile, UploadFiles, UploadInstance, UploadRawFile, UploadRequestOptions, UploadStatus } from 'element-plus';\r\nimport type { AliOssResponse } from '@giime/utils/src/alioss/aliossPutHook';\r\n\r\ndefineOptions({\r\n name: 'GmUploadFile',\r\n});\r\n\r\nconst props = defineProps(uploadFileProps);\r\nconst emit = defineEmits([\"handleRemove\", \"handleSaveFileSuccess\"]);\r\n\r\nconst { uploadFile, saveFileResult } = useAliossHookStore();\r\n\r\nsaveFileResult((res: AliOssResponse) => {\r\n emit('handleSaveFileSuccess', res);\r\n});\r\n\r\n/** 上传文件 */\r\nconst fileList = defineModel<UploadFile[]>('fileList', { required: true, default: () => [] });\r\n/** 多选数据 */\r\nconst checkoutFiles = defineModel<any[]>('checkoutFiles', { default: () => [] });\r\n\r\n/* 上传 */\r\nconst httpRequest = async (params: UploadRequestOptions) => {\r\n const { file } = params;\r\n\r\n // 验证文件类型\r\n if (props.accept && props.accept !== '*') {\r\n const isValidType = fileValidType(file, props.accept);\r\n if (!isValidType) {\r\n throw new Error(`文件类型不支持,请上传 ${props.accept} 格式的文件`);\r\n }\r\n }\r\n\r\n const res = await uploadFile({\r\n file,\r\n fileName: props.fileName,\r\n folder: props.folder,\r\n seat: props.seat,\r\n partSize: props.partSize,\r\n parallel: props.parallel,\r\n options: props.options,\r\n bucket: props.bucket,\r\n saveStore: props.saveStore,\r\n cdn: props.cdn,\r\n });\r\n return res;\r\n};\r\n\r\n/* 删除文件前 */\r\nconst beforeRemove = (file: UploadFile, files: UploadFiles) => {\r\n if (props.disabled) {\r\n return false;\r\n }\r\n return props.beforeRemove ? props.beforeRemove(file, files) : true;\r\n};\r\n\r\n/* 删除文件 */\r\nconst handleRemove = (file: UploadFile, uploadFiles: UploadFiles) => {\r\n ElMessageBox.confirm('确定删除该文件吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n const index = fileList.value.indexOf(file);\r\n if (index > -1) {\r\n fileList.value.splice(index, 1);\r\n emit('handleRemove', { file, index });\r\n return props.onRemove?.(file, uploadFiles);\r\n }\r\n })\r\n .catch(() => {});\r\n};\r\n\r\nconst uploadFileRef = ref<UploadInstance>();\r\nconst pasteFileRef = ref<HTMLElement>();\r\n/* 手动上传 */\r\nconst submit = () => {\r\n uploadFileRef.value!.submit();\r\n};\r\n\r\n/** 取消上传 */\r\nconst abort = (file: UploadFile) => {\r\n uploadFileRef.value!.abort(file);\r\n};\r\n\r\n/** 清空已上传的文件列表 */\r\nconst clearFiles = (status?: UploadStatus[]) => {\r\n uploadFileRef.value!.clearFiles(status);\r\n};\r\n\r\n/** 手动选择文件 */\r\nconst handleStart = (rawFile: UploadRawFile) => {\r\n uploadFileRef.value!.handleStart(rawFile);\r\n};\r\n\r\n/** 预览 */\r\nconst dialogVisible = ref(false);\r\nconst fileIndex = ref(0);\r\nconst handlePreview = (file: UploadFile) => {\r\n fileIndex.value = fileList.value.indexOf(file);\r\n dialogVisible.value = true;\r\n};\r\n\r\nconst { onSuccess, onError } = usePasteFile(pasteFileRef, { accept: props.accept, disabled: props.disabled });\r\nonSuccess((files: File[]) => {\r\n if (Array.isArray(files) && files.length > 0) {\r\n files.forEach(file => {\r\n if (file instanceof File) {\r\n const rawFile = file as UploadRawFile;\r\n handleStart(rawFile);\r\n }\r\n });\r\n }\r\n});\r\n\r\nonError((error: Error) => {\r\n console.error('粘贴错误:', error);\r\n ElMessageBox.alert(error.message, '提示', {\r\n type: 'error',\r\n });\r\n});\r\n\r\ndefineExpose({\r\n submit,\r\n abort,\r\n clearFiles,\r\n handleStart,\r\n uploadFileRef,\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.gm-upload-preview-dialog {\r\n :deep(.el-dialog__body) {\r\n padding: 0;\r\n }\r\n}\r\n.gm-upload-file-picture-card {\r\n :deep(.el-upload-list__item),\r\n :deep(.el-upload--picture-card) {\r\n width: 120px;\r\n height: 120px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n}\r\n</style>\r\n<style lang=\"scss\">\r\n.gm-upload-file {\r\n line-height: normal;\r\n .el-checkbox {\r\n position: absolute;\r\n left: 10px;\r\n top: 0;\r\n z-index: 9;\r\n }\r\n .el-upload-list__item-file-name {\r\n line-height: normal;\r\n }\r\n .el-upload-dragger {\r\n padding: 0;\r\n border: none;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n }\r\n}\r\n.gm-upload-file-disabled {\r\n .el-upload--picture-card {\r\n display: none;\r\n }\r\n .el-upload-list__item-status-label {\r\n display: none;\r\n }\r\n}\r\n</style>\r\n"],"names":["_useModel"],"mappings":"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"}
@@ -220,7 +220,7 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
220
220
  index: number;
221
221
  }) => any) | undefined;
222
222
  "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
223
- onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => any) | undefined;
223
+ onHandleSaveFileSuccess?: ((file: import("../../../../utils/src/alioss/aliossPutHook.js").AliOssResponse) => any) | undefined;
224
224
  }, {
225
225
  submit: () => void;
226
226
  abort: (file: import("element-plus").UploadFile) => void;
@@ -708,7 +708,7 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
708
708
  file: import("element-plus").UploadFile;
709
709
  index: number;
710
710
  }) => void;
711
- handleSaveFileSuccess: (file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => void;
711
+ handleSaveFileSuccess: (file: import("../../../../utils/src/alioss/aliossPutHook.js").AliOssResponse) => void;
712
712
  }, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
713
713
  fileList: {
714
714
  required: true;
@@ -929,7 +929,7 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
929
929
  index: number;
930
930
  }) => any) | undefined;
931
931
  "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
932
- onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => any) | undefined;
932
+ onHandleSaveFileSuccess?: ((file: import("../../../../utils/src/alioss/aliossPutHook.js").AliOssResponse) => any) | undefined;
933
933
  }, {
934
934
  name: string;
935
935
  checkbox: boolean;
@@ -944,10 +944,10 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
944
944
  url: string;
945
945
  method: string;
946
946
  withCredentials: boolean;
947
+ file: Partial<import("element-plus").UploadFile>;
947
948
  onError: (error: Error, uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
948
949
  onChange: (uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
949
950
  controls: boolean;
950
- file: Partial<import("element-plus").UploadFile>;
951
951
  beforeUpload: (rawFile: import("element-plus").UploadRawFile) => import("element-plus/es/utils/typescript.js").Awaitable<boolean | void | Blob | File | null | undefined>;
952
952
  onRemove: (uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
953
953
  onPreview: (uploadFile: import("element-plus").UploadFile) => void;
@@ -963,10 +963,10 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
963
963
  field: keyof import("element-plus").UploadFile;
964
964
  controlslist: string;
965
965
  oncontextmenu: boolean;
966
+ parallel: number;
966
967
  fileName: string;
967
968
  folder: string;
968
969
  seat: string;
969
- parallel: number;
970
970
  partSize: number;
971
971
  bucket: string;
972
972
  cdn: string;
@@ -1199,7 +1199,7 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
1199
1199
  index: number;
1200
1200
  }) => any) | undefined;
1201
1201
  "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
1202
- onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => any) | undefined;
1202
+ onHandleSaveFileSuccess?: ((file: import("../../../../utils/src/alioss/aliossPutHook.js").AliOssResponse) => any) | undefined;
1203
1203
  }, {
1204
1204
  submit: () => void;
1205
1205
  abort: (file: import("element-plus").UploadFile) => void;
@@ -1694,10 +1694,10 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
1694
1694
  url: string;
1695
1695
  method: string;
1696
1696
  withCredentials: boolean;
1697
+ file: Partial<import("element-plus").UploadFile>;
1697
1698
  onError: (error: Error, uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
1698
1699
  onChange: (uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
1699
1700
  controls: boolean;
1700
- file: Partial<import("element-plus").UploadFile>;
1701
1701
  beforeUpload: (rawFile: import("element-plus").UploadRawFile) => import("element-plus/es/utils/typescript.js").Awaitable<boolean | void | Blob | File | null | undefined>;
1702
1702
  onRemove: (uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
1703
1703
  onPreview: (uploadFile: import("element-plus").UploadFile) => void;
@@ -1713,10 +1713,10 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
1713
1713
  field: keyof import("element-plus").UploadFile;
1714
1714
  controlslist: string;
1715
1715
  oncontextmenu: boolean;
1716
+ parallel: number;
1716
1717
  fileName: string;
1717
1718
  folder: string;
1718
1719
  seat: string;
1719
- parallel: number;
1720
1720
  partSize: number;
1721
1721
  bucket: string;
1722
1722
  cdn: string;
@@ -1946,7 +1946,7 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
1946
1946
  index: number;
1947
1947
  }) => any) | undefined;
1948
1948
  "onUpdate:checkoutFiles"?: ((checkoutFiles: any[]) => any) | undefined;
1949
- onHandleSaveFileSuccess?: ((file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => any) | undefined;
1949
+ onHandleSaveFileSuccess?: ((file: import("../../../../utils/src/alioss/aliossPutHook.js").AliOssResponse) => any) | undefined;
1950
1950
  }, {
1951
1951
  submit: () => void;
1952
1952
  abort: (file: import("element-plus").UploadFile) => void;
@@ -2434,7 +2434,7 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
2434
2434
  file: import("element-plus").UploadFile;
2435
2435
  index: number;
2436
2436
  }) => void;
2437
- handleSaveFileSuccess: (file: import("../../../../api/materialApi/index.js").PostSaveFileResourcesData) => void;
2437
+ handleSaveFileSuccess: (file: import("../../../../utils/src/alioss/aliossPutHook.js").AliOssResponse) => void;
2438
2438
  }, string, {
2439
2439
  name: string;
2440
2440
  checkbox: boolean;
@@ -2449,10 +2449,10 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
2449
2449
  url: string;
2450
2450
  method: string;
2451
2451
  withCredentials: boolean;
2452
+ file: Partial<import("element-plus").UploadFile>;
2452
2453
  onError: (error: Error, uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
2453
2454
  onChange: (uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
2454
2455
  controls: boolean;
2455
- file: Partial<import("element-plus").UploadFile>;
2456
2456
  beforeUpload: (rawFile: import("element-plus").UploadRawFile) => import("element-plus/es/utils/typescript.js").Awaitable<boolean | void | Blob | File | null | undefined>;
2457
2457
  onRemove: (uploadFile: import("element-plus").UploadFile, uploadFiles: import("element-plus").UploadFiles) => void;
2458
2458
  onPreview: (uploadFile: import("element-plus").UploadFile) => void;
@@ -2468,10 +2468,10 @@ export declare const GmUploadFile: import("../../../../utils").SFCWithInstall<{
2468
2468
  field: keyof import("element-plus").UploadFile;
2469
2469
  controlslist: string;
2470
2470
  oncontextmenu: boolean;
2471
+ parallel: number;
2471
2472
  fileName: string;
2472
2473
  folder: string;
2473
2474
  seat: string;
2474
- parallel: number;
2475
2475
  partSize: number;
2476
2476
  bucket: string;
2477
2477
  cdn: string;
@@ -15,13 +15,14 @@ export { giimeDevProxy } from '../utils/src/http/devProxy.mjs';
15
15
  export { getDomain } from '../utils/src/http/url.mjs';
16
16
  export { hasOwn, keysOf, resetObject } from '../utils/src/objects.mjs';
17
17
  export { getDateShortcuts } from '../utils/src/date/dateShortcuts.mjs';
18
- export { base64ToBlob, base64ToFile, blobToBase64, blobToFile, fileToBase64, fileToBlob, fileToUrl, urlToBlob, urlToFile } from '../utils/src/file.mjs';
18
+ export { base64ToBlob, base64ToFile, blobToBase64, blobToFile, fileMd5, fileToBase64, fileToBlob, fileToUrl, fileValidType, urlToBlob, urlToFile } from '../utils/src/file.mjs';
19
19
  export { compareVersions, isVersionGreaterOrEqual, omitOnEvents, remove } from '../utils/src/general.mjs';
20
20
  export { b64_hmac_md5, b64_md5, hex_hmac_md5, hex_md5, str_hmac_md5, str_md5, ts_md5_file } from '../utils/src/crypto/md5.mjs';
21
21
  export { any_hmac_sha1, any_sha1, b64_hmac_sha1, b64_sha1, hex_hmac_sha1, hex_sha1 } from '../utils/src/crypto/sha1.mjs';
22
22
  export { formatNumberWithCommas } from '../utils/src/number.mjs';
23
23
  export { filterTreeByName } from '../utils/src/tree/filterTreeByName.mjs';
24
24
  export { findChildrenItem } from '../utils/src/tree/findChildrenItem.mjs';
25
+ export { PasteFileError, generateFileName, handlePasteEvent } from '../utils/src/pasteFile/index.mjs';
25
26
  export { affixEmits, affixProps } from '../components/src/base/affix/affix.mjs';
26
27
  export { GmAffix } from '../components/src/base/affix/index.mjs';
27
28
  export { alertEffects, alertEmits, alertProps } from '../components/src/base/alert/alert.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../packages/giime/index.ts"],"sourcesContent":["import installer from './defaults';\r\nimport './tailwind.css';\r\nexport * from '@giime/utils';\r\nexport * from '@giime/components';\r\nexport * from '@giime/hooks';\r\n// export * from '@giime/api'; // 用户通过giime/es/api 导入类型\r\nexport const install = installer.install;\r\nexport const version = installer.version;\r\nexport default installer;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,UAAU,SAAU,CAAA,QAAA;AAC1B,MAAM,UAAU,SAAU,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../packages/giime/index.ts"],"sourcesContent":["import installer from './defaults';\r\nimport './tailwind.css';\r\nexport * from '@giime/utils';\r\nexport * from '@giime/components';\r\nexport * from '@giime/hooks';\r\n// export * from '@giime/api'; // 用户通过giime/es/api 导入类型\r\nexport const install = installer.install;\r\nexport const version = installer.version;\r\nexport default installer;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,UAAU,SAAU,CAAA,QAAA;AAC1B,MAAM,UAAU,SAAU,CAAA;;;;"}
@@ -1 +1 @@
1
- export declare const version = "0.6.3";
1
+ export declare const version = "0.6.4";
@@ -1,4 +1,4 @@
1
- const version = "0.6.2";
1
+ const version = "0.6.4";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.6.2';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.6.4';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}