giime 0.9.10 → 0.9.12

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 (190) hide show
  1. package/dist/index.css +97 -97
  2. package/es/api/resource/interface/apiTypes/Address.d.ts +9 -0
  3. package/es/api/resource/interface/apiTypes/Address.mjs +2 -0
  4. package/es/api/resource/interface/apiTypes/Address.mjs.map +1 -0
  5. package/es/api/resource/interface/apiTypes/AudioStream.d.ts +19 -0
  6. package/es/api/resource/interface/apiTypes/AudioStream.mjs +2 -0
  7. package/es/api/resource/interface/apiTypes/AudioStream.mjs.map +1 -0
  8. package/es/api/resource/interface/apiTypes/GenerateUploadUrlRequest.d.ts +3 -1
  9. package/es/api/resource/interface/apiTypes/ImageMetadata.d.ts +24 -0
  10. package/es/api/resource/interface/apiTypes/ImageMetadata.mjs +2 -0
  11. package/es/api/resource/interface/apiTypes/ImageMetadata.mjs.map +1 -0
  12. package/es/api/resource/interface/apiTypes/MediaInfo.d.ts +27 -0
  13. package/es/api/resource/interface/apiTypes/MediaInfo.mjs +2 -0
  14. package/es/api/resource/interface/apiTypes/MediaInfo.mjs.map +1 -0
  15. package/es/api/resource/interface/apiTypes/RResourceAttrDto.d.ts +10 -0
  16. package/es/api/resource/interface/apiTypes/RResourceAttrDto.mjs +2 -0
  17. package/es/api/resource/interface/apiTypes/RResourceAttrDto.mjs.map +1 -0
  18. package/es/api/resource/interface/apiTypes/RResourceAttrUrlResponse.d.ts +10 -0
  19. package/es/api/resource/interface/apiTypes/RResourceAttrUrlResponse.mjs +2 -0
  20. package/es/api/resource/interface/apiTypes/RResourceAttrUrlResponse.mjs.map +1 -0
  21. package/es/api/resource/interface/apiTypes/ResourceAttrDto.d.ts +5 -0
  22. package/es/api/resource/interface/apiTypes/ResourceAttrDto.mjs +2 -0
  23. package/es/api/resource/interface/apiTypes/ResourceAttrDto.mjs.map +1 -0
  24. package/es/api/resource/interface/apiTypes/ResourceAttrUrlResponse.d.ts +4 -0
  25. package/es/api/resource/interface/apiTypes/ResourceAttrUrlResponse.mjs +2 -0
  26. package/es/api/resource/interface/apiTypes/ResourceAttrUrlResponse.mjs.map +1 -0
  27. package/es/api/resource/interface/apiTypes/ResourceUploadNoticeRequest.d.ts +4 -0
  28. package/es/api/resource/interface/apiTypes/ResourceUploadNoticeRequest.mjs +2 -0
  29. package/es/api/resource/interface/apiTypes/ResourceUploadNoticeRequest.mjs.map +1 -0
  30. package/es/api/resource/interface/apiTypes/Subtitle.d.ts +14 -0
  31. package/es/api/resource/interface/apiTypes/Subtitle.mjs +2 -0
  32. package/es/api/resource/interface/apiTypes/Subtitle.mjs.map +1 -0
  33. package/es/api/resource/interface/apiTypes/VideoStream.d.ts +30 -0
  34. package/es/api/resource/interface/apiTypes/VideoStream.mjs +2 -0
  35. package/es/api/resource/interface/apiTypes/VideoStream.mjs.map +1 -0
  36. package/es/api/resource/interface/index.d.ts +25 -14
  37. package/es/api/resource/interface/index.mjs +25 -14
  38. package/es/api/resource/interface/index.mjs.map +1 -1
  39. package/es/components/src/base/image/Image.vue.d.ts +32 -5
  40. package/es/components/src/base/image/Image.vue2.mjs +108 -4
  41. package/es/components/src/base/image/Image.vue2.mjs.map +1 -1
  42. package/es/components/src/base/image/image.d.ts +26 -15
  43. package/es/components/src/base/image/image.mjs +11 -1
  44. package/es/components/src/base/image/image.mjs.map +1 -1
  45. package/es/components/src/base/image/index.d.ts +57 -10
  46. package/es/components/src/base/imageViewer/ImageViewer.vue.d.ts +36 -5
  47. package/es/components/src/base/imageViewer/ImageViewer.vue2.mjs +111 -5
  48. package/es/components/src/base/imageViewer/ImageViewer.vue2.mjs.map +1 -1
  49. package/es/components/src/base/imageViewer/imageViewer.d.ts +22 -11
  50. package/es/components/src/base/imageViewer/imageViewer.mjs +11 -1
  51. package/es/components/src/base/imageViewer/imageViewer.mjs.map +1 -1
  52. package/es/components/src/base/imageViewer/index.d.ts +355 -89
  53. package/es/components/src/base/input/Input.vue.d.ts +4 -4
  54. package/es/components/src/base/input/index.d.ts +8 -8
  55. package/es/components/src/base/popconfirm/Popconfirm.vue.d.ts +2 -2
  56. package/es/components/src/base/popconfirm/index.d.ts +6 -6
  57. package/es/components/src/base/upload/Upload.vue.d.ts +1 -1
  58. package/es/components/src/base/upload/index.d.ts +3 -3
  59. package/es/components/src/business/uploadItem/UploadItem.vue.d.ts +11 -2
  60. package/es/components/src/business/uploadItem/index.d.ts +25 -6
  61. package/es/components/src/business/uploadItem/uploadItem.d.ts +4 -0
  62. package/es/components/src/business/uploadPro/UploadPro.vue.d.ts +11 -2
  63. package/es/components/src/business/uploadPro/UploadPro.vue.mjs +1 -1
  64. package/es/components/src/business/uploadPro/UploadPro.vue2.mjs +2 -1
  65. package/es/components/src/business/uploadPro/UploadPro.vue2.mjs.map +1 -1
  66. package/es/components/src/business/uploadPro/index.d.ts +25 -6
  67. package/es/components/src/business/uploadPro/uploadPro.d.ts +5 -0
  68. package/es/components/src/business/uploadPro/uploadPro.mjs +5 -0
  69. package/es/components/src/business/uploadPro/uploadPro.mjs.map +1 -1
  70. package/es/components/src/composite/fileComponent/FileComponent.vue.d.ts +1 -1
  71. package/es/components/src/composite/fileComponent/index.d.ts +3 -3
  72. package/es/components/src/composite/fileList2/FileList.vue.d.ts +1 -1
  73. package/es/components/src/composite/fileList2/index.d.ts +3 -3
  74. package/es/components/src/composite/importDialog/ImportDialog.vue.d.ts +1 -1
  75. package/es/components/src/composite/importDialog/index.d.ts +3 -3
  76. package/es/components/src/composite/previewFile/PreviewFile.vue.d.ts +1 -1
  77. package/es/components/src/composite/previewFile/index.d.ts +1 -1
  78. package/es/components/src/composite/searchForm/searchFormItems/input/SearchFormInput.vue.d.ts +4 -4
  79. package/es/components/src/composite/searchForm/searchFormItems/input/index.d.ts +4 -4
  80. package/es/components/src/composite/tableCustom/TableCustom.vue.d.ts +1 -1
  81. package/es/components/src/composite/tableCustom/index.d.ts +3 -3
  82. package/es/components/src/composite/tablePro/TablePro.vue.d.ts +1 -1
  83. package/es/components/src/composite/tablePro/index.d.ts +3 -3
  84. package/es/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue.d.ts +1 -1
  85. package/es/components/src/composite/tablePro/tableColumnPro/index.d.ts +3 -3
  86. package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +12 -3
  87. package/es/components/src/composite/uploadFile/index.d.ts +28 -9
  88. package/es/components/src/composite/uploadFile/uploadFile.d.ts +4 -0
  89. package/es/giime/version.d.ts +1 -1
  90. package/es/giime/version.mjs +1 -1
  91. package/es/giime/version.mjs.map +1 -1
  92. package/es/hooks/base/useUploadFile/index.d.ts +2 -0
  93. package/es/hooks/base/useUploadFile/index.mjs +2 -1
  94. package/es/hooks/base/useUploadFile/index.mjs.map +1 -1
  95. package/es/index.css +97 -97
  96. package/lib/api/resource/interface/apiTypes/Address.d.ts +9 -0
  97. package/lib/api/resource/interface/apiTypes/Address.js +3 -0
  98. package/lib/api/resource/interface/apiTypes/Address.js.map +1 -0
  99. package/lib/api/resource/interface/apiTypes/AudioStream.d.ts +19 -0
  100. package/lib/api/resource/interface/apiTypes/AudioStream.js +3 -0
  101. package/lib/api/resource/interface/apiTypes/AudioStream.js.map +1 -0
  102. package/lib/api/resource/interface/apiTypes/GenerateUploadUrlRequest.d.ts +3 -1
  103. package/lib/api/resource/interface/apiTypes/ImageMetadata.d.ts +24 -0
  104. package/lib/api/resource/interface/apiTypes/ImageMetadata.js +3 -0
  105. package/lib/api/resource/interface/apiTypes/ImageMetadata.js.map +1 -0
  106. package/lib/api/resource/interface/apiTypes/MediaInfo.d.ts +27 -0
  107. package/lib/api/resource/interface/apiTypes/MediaInfo.js +3 -0
  108. package/lib/api/resource/interface/apiTypes/MediaInfo.js.map +1 -0
  109. package/lib/api/resource/interface/apiTypes/RResourceAttrDto.d.ts +10 -0
  110. package/lib/api/resource/interface/apiTypes/RResourceAttrDto.js +3 -0
  111. package/lib/api/resource/interface/apiTypes/RResourceAttrDto.js.map +1 -0
  112. package/lib/api/resource/interface/apiTypes/RResourceAttrUrlResponse.d.ts +10 -0
  113. package/lib/api/resource/interface/apiTypes/RResourceAttrUrlResponse.js +3 -0
  114. package/lib/api/resource/interface/apiTypes/RResourceAttrUrlResponse.js.map +1 -0
  115. package/lib/api/resource/interface/apiTypes/ResourceAttrDto.d.ts +5 -0
  116. package/lib/api/resource/interface/apiTypes/ResourceAttrDto.js +3 -0
  117. package/lib/api/resource/interface/apiTypes/ResourceAttrDto.js.map +1 -0
  118. package/lib/api/resource/interface/apiTypes/ResourceAttrUrlResponse.d.ts +4 -0
  119. package/lib/api/resource/interface/apiTypes/ResourceAttrUrlResponse.js +3 -0
  120. package/lib/api/resource/interface/apiTypes/ResourceAttrUrlResponse.js.map +1 -0
  121. package/lib/api/resource/interface/apiTypes/ResourceUploadNoticeRequest.d.ts +4 -0
  122. package/lib/api/resource/interface/apiTypes/ResourceUploadNoticeRequest.js +3 -0
  123. package/lib/api/resource/interface/apiTypes/ResourceUploadNoticeRequest.js.map +1 -0
  124. package/lib/api/resource/interface/apiTypes/Subtitle.d.ts +14 -0
  125. package/lib/api/resource/interface/apiTypes/Subtitle.js +3 -0
  126. package/lib/api/resource/interface/apiTypes/Subtitle.js.map +1 -0
  127. package/lib/api/resource/interface/apiTypes/VideoStream.d.ts +30 -0
  128. package/lib/api/resource/interface/apiTypes/VideoStream.js +3 -0
  129. package/lib/api/resource/interface/apiTypes/VideoStream.js.map +1 -0
  130. package/lib/api/resource/interface/index.d.ts +25 -14
  131. package/lib/api/resource/interface/index.js +25 -14
  132. package/lib/api/resource/interface/index.js.map +1 -1
  133. package/lib/components/src/base/image/Image.vue.d.ts +32 -5
  134. package/lib/components/src/base/image/Image.vue2.js +107 -3
  135. package/lib/components/src/base/image/Image.vue2.js.map +1 -1
  136. package/lib/components/src/base/image/image.d.ts +26 -15
  137. package/lib/components/src/base/image/image.js +11 -1
  138. package/lib/components/src/base/image/image.js.map +1 -1
  139. package/lib/components/src/base/image/index.d.ts +57 -10
  140. package/lib/components/src/base/imageViewer/ImageViewer.vue.d.ts +36 -5
  141. package/lib/components/src/base/imageViewer/ImageViewer.vue2.js +110 -4
  142. package/lib/components/src/base/imageViewer/ImageViewer.vue2.js.map +1 -1
  143. package/lib/components/src/base/imageViewer/imageViewer.d.ts +22 -11
  144. package/lib/components/src/base/imageViewer/imageViewer.js +11 -1
  145. package/lib/components/src/base/imageViewer/imageViewer.js.map +1 -1
  146. package/lib/components/src/base/imageViewer/index.d.ts +355 -89
  147. package/lib/components/src/base/input/Input.vue.d.ts +4 -4
  148. package/lib/components/src/base/input/index.d.ts +8 -8
  149. package/lib/components/src/base/popconfirm/Popconfirm.vue.d.ts +2 -2
  150. package/lib/components/src/base/popconfirm/index.d.ts +6 -6
  151. package/lib/components/src/base/upload/Upload.vue.d.ts +1 -1
  152. package/lib/components/src/base/upload/index.d.ts +3 -3
  153. package/lib/components/src/business/uploadItem/UploadItem.vue.d.ts +11 -2
  154. package/lib/components/src/business/uploadItem/index.d.ts +25 -6
  155. package/lib/components/src/business/uploadItem/uploadItem.d.ts +4 -0
  156. package/lib/components/src/business/uploadPro/UploadPro.vue.d.ts +11 -2
  157. package/lib/components/src/business/uploadPro/UploadPro.vue.js +1 -1
  158. package/lib/components/src/business/uploadPro/UploadPro.vue2.js +2 -1
  159. package/lib/components/src/business/uploadPro/UploadPro.vue2.js.map +1 -1
  160. package/lib/components/src/business/uploadPro/index.d.ts +25 -6
  161. package/lib/components/src/business/uploadPro/uploadPro.d.ts +5 -0
  162. package/lib/components/src/business/uploadPro/uploadPro.js +5 -0
  163. package/lib/components/src/business/uploadPro/uploadPro.js.map +1 -1
  164. package/lib/components/src/composite/fileComponent/FileComponent.vue.d.ts +1 -1
  165. package/lib/components/src/composite/fileComponent/index.d.ts +3 -3
  166. package/lib/components/src/composite/fileList2/FileList.vue.d.ts +1 -1
  167. package/lib/components/src/composite/fileList2/index.d.ts +3 -3
  168. package/lib/components/src/composite/importDialog/ImportDialog.vue.d.ts +1 -1
  169. package/lib/components/src/composite/importDialog/index.d.ts +3 -3
  170. package/lib/components/src/composite/previewFile/PreviewFile.vue.d.ts +1 -1
  171. package/lib/components/src/composite/previewFile/index.d.ts +1 -1
  172. package/lib/components/src/composite/searchForm/searchFormItems/input/SearchFormInput.vue.d.ts +4 -4
  173. package/lib/components/src/composite/searchForm/searchFormItems/input/index.d.ts +4 -4
  174. package/lib/components/src/composite/tableCustom/TableCustom.vue.d.ts +1 -1
  175. package/lib/components/src/composite/tableCustom/index.d.ts +3 -3
  176. package/lib/components/src/composite/tablePro/TablePro.vue.d.ts +1 -1
  177. package/lib/components/src/composite/tablePro/index.d.ts +3 -3
  178. package/lib/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue.d.ts +1 -1
  179. package/lib/components/src/composite/tablePro/tableColumnPro/index.d.ts +3 -3
  180. package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +12 -3
  181. package/lib/components/src/composite/uploadFile/index.d.ts +28 -9
  182. package/lib/components/src/composite/uploadFile/uploadFile.d.ts +4 -0
  183. package/lib/giime/version.d.ts +1 -1
  184. package/lib/giime/version.js +1 -1
  185. package/lib/giime/version.js.map +1 -1
  186. package/lib/hooks/base/useUploadFile/index.d.ts +2 -0
  187. package/lib/hooks/base/useUploadFile/index.js +2 -1
  188. package/lib/hooks/base/useUploadFile/index.js.map +1 -1
  189. package/lib/index.css +97 -97
  190. package/package.json +1 -1
@@ -1,8 +1,11 @@
1
- import { defineComponent, ref, resolveComponent, createBlock, openBlock, mergeProps, toHandlers, unref } from 'vue';
1
+ import { defineComponent, useSlots, computed, ref, resolveComponent, createBlock, openBlock, mergeProps, toHandlers, unref, withCtx, renderSlot, createElementBlock, normalizeProps, Fragment, createCommentVNode, createVNode } from 'vue';
2
+ import { imageViewerEmits, ElIcon } from 'element-plus';
2
3
  import '../../../../utils/index.mjs';
3
- import { imageViewerEmits } from 'element-plus';
4
+ import '../../../../hooks/index.mjs';
4
5
  import { imageViewerEmits as imageViewerEmits$1, imageViewerProps } from './imageViewer.mjs';
6
+ import { ArrowLeftBold, ArrowRightBold, ZoomOut, ZoomIn, RefreshLeft, RefreshRight, Download } from '@element-plus/icons-vue';
5
7
  import { getGmEvent } from '../../../../utils/src/elementPlus/event.mjs';
8
+ import { useDownload, getUrlFilename } from '../../../../hooks/base/useDownload/index.mjs';
6
9
  import { getGmExports } from '../../../../utils/src/elementPlus/exports.mjs';
7
10
 
8
11
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -13,14 +16,40 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
13
16
  props: imageViewerProps,
14
17
  emits: imageViewerEmits$1,
15
18
  setup(__props, { expose: __expose, emit: __emit }) {
19
+ const slots = useSlots();
16
20
  const props = __props;
17
21
  const emit = __emit;
18
22
  const elEvents = getGmEvent(imageViewerEmits, emit);
23
+ const { downloadByUrl } = useDownload();
24
+ const bindProps = computed(() => {
25
+ const { downloadMode, ...rest } = props;
26
+ return rest;
27
+ });
28
+ const download = async (urlOrIndex, filename) => {
29
+ let url;
30
+ if (typeof urlOrIndex === "number") {
31
+ const list = props.urlList;
32
+ url = list?.[urlOrIndex] || "";
33
+ } else {
34
+ url = urlOrIndex;
35
+ }
36
+ if (!url) {
37
+ console.warn("[GmImageViewer] download: \u65E0\u6548\u7684 URL");
38
+ return;
39
+ }
40
+ const finalFilename = filename || getUrlFilename(url);
41
+ if (props.downloadMode === "link") {
42
+ window.open(url, "_blank");
43
+ } else {
44
+ await downloadByUrl(url, { filename: finalFilename });
45
+ }
46
+ };
19
47
  const elRef = ref();
20
48
  const exposeNames = ["setActiveItem"];
21
49
  const { exposeFns } = getGmExports(elRef, exposeNames);
22
50
  __expose({
23
- ...exposeFns
51
+ ...exposeFns,
52
+ download
24
53
  });
25
54
  return (_ctx, _cache) => {
26
55
  const _component_el_image_viewer = resolveComponent("el-image-viewer");
@@ -29,8 +58,85 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
29
58
  mergeProps({
30
59
  ref_key: "elRef",
31
60
  ref: elRef
32
- }, props, toHandlers(unref(elEvents))),
33
- null,
61
+ }, bindProps.value, toHandlers(unref(elEvents))),
62
+ {
63
+ toolbar: withCtx((toolbarProps) => [
64
+ unref(slots).toolbar ? renderSlot(_ctx.$slots, "toolbar", normalizeProps(mergeProps({ key: 0 }, { ...toolbarProps, download }))) : (openBlock(), createElementBlock(
65
+ Fragment,
66
+ { key: 1 },
67
+ [
68
+ createCommentVNode(" \u9ED8\u8BA4\u5DE5\u5177\u680F\uFF1A\u5F53\u7528\u6237\u672A\u4F20 toolbar slot \u65F6\u663E\u793A "),
69
+ createVNode(unref(ElIcon), {
70
+ onClick: toolbarProps.prev
71
+ }, {
72
+ default: withCtx(() => [
73
+ createVNode(unref(ArrowLeftBold))
74
+ ]),
75
+ _: 2
76
+ /* DYNAMIC */
77
+ }, 1032, ["onClick"]),
78
+ createVNode(unref(ElIcon), {
79
+ onClick: toolbarProps.next
80
+ }, {
81
+ default: withCtx(() => [
82
+ createVNode(unref(ArrowRightBold))
83
+ ]),
84
+ _: 2
85
+ /* DYNAMIC */
86
+ }, 1032, ["onClick"]),
87
+ createVNode(unref(ElIcon), {
88
+ onClick: ($event) => toolbarProps.actions("zoomOut")
89
+ }, {
90
+ default: withCtx(() => [
91
+ createVNode(unref(ZoomOut))
92
+ ]),
93
+ _: 2
94
+ /* DYNAMIC */
95
+ }, 1032, ["onClick"]),
96
+ createVNode(unref(ElIcon), {
97
+ onClick: ($event) => toolbarProps.actions("zoomIn")
98
+ }, {
99
+ default: withCtx(() => [
100
+ createVNode(unref(ZoomIn))
101
+ ]),
102
+ _: 2
103
+ /* DYNAMIC */
104
+ }, 1032, ["onClick"]),
105
+ createVNode(unref(ElIcon), {
106
+ onClick: ($event) => toolbarProps.actions("anticlockwise")
107
+ }, {
108
+ default: withCtx(() => [
109
+ createVNode(unref(RefreshLeft))
110
+ ]),
111
+ _: 2
112
+ /* DYNAMIC */
113
+ }, 1032, ["onClick"]),
114
+ createVNode(unref(ElIcon), {
115
+ onClick: ($event) => toolbarProps.actions("clockwise")
116
+ }, {
117
+ default: withCtx(() => [
118
+ createVNode(unref(RefreshRight))
119
+ ]),
120
+ _: 2
121
+ /* DYNAMIC */
122
+ }, 1032, ["onClick"]),
123
+ createVNode(unref(ElIcon), {
124
+ onClick: ($event) => download(toolbarProps.activeIndex)
125
+ }, {
126
+ default: withCtx(() => [
127
+ createVNode(unref(Download))
128
+ ]),
129
+ _: 2
130
+ /* DYNAMIC */
131
+ }, 1032, ["onClick"])
132
+ ],
133
+ 64
134
+ /* STABLE_FRAGMENT */
135
+ ))
136
+ ]),
137
+ _: 3
138
+ /* FORWARDED */
139
+ },
34
140
  16
35
141
  /* FULL_PROPS */
36
142
  );
@@ -1 +1 @@
1
- {"version":3,"file":"ImageViewer.vue2.mjs","sources":["../../../../../../../packages/components/src/base/imageViewer/ImageViewer.vue"],"sourcesContent":["<template>\n <el-image-viewer ref=\"elRef\" v-bind=\"props\" v-on=\"elEvents\" />\n</template>\n<script lang=\"ts\" setup>\nimport { ref } from 'vue';\nimport { getGmEvent, getGmExports } from '@giime/utils';\nimport { imageViewerEmits as elImageViewerEmits } from 'element-plus';\nimport { imageViewerEmits, imageViewerProps } from './imageViewer';\nimport type { ImageViewerInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmImageViewer',\n});\nconst props = defineProps(imageViewerProps);\nconst emit = defineEmits(imageViewerEmits);\n// 重发el的事件\nconst elEvents = getGmEvent(elImageViewerEmits, emit);\n\nconst elRef = ref<ImageViewerInstance>();\nconst exposeNames = ['setActiveItem'] as const;\nconst { exposeFns } = getGmExports(elRef, exposeNames);\n\ndefineExpose({\n ...exposeFns,\n});\n</script>\n"],"names":["elImageViewerEmits"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,IAAA,GAAO,MAAA;AAEb,IAAA,MAAM,QAAA,GAAW,UAAA,CAAWA,gBAAA,EAAoB,IAAI,CAAA;AAEpD,IAAA,MAAM,QAAQ,GAAA,EAAyB;AACvC,IAAA,MAAM,WAAA,GAAc,CAAC,eAAe,CAAA;AACpC,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,YAAA,CAAa,OAAO,WAAW,CAAA;AAErD,IAAA,QAAA,CAAa;AAAA,MACX,GAAG;AAAA,KACJ,CAAA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ImageViewer.vue2.mjs","sources":["../../../../../../../packages/components/src/base/imageViewer/ImageViewer.vue"],"sourcesContent":["<template>\n <el-image-viewer ref=\"elRef\" v-bind=\"bindProps\" v-on=\"elEvents\">\n <template #toolbar=\"toolbarProps\">\n <slot v-if=\"slots.toolbar\" name=\"toolbar\" v-bind=\"{ ...toolbarProps, download }\" />\n <!-- 默认工具栏:当用户未传 toolbar slot 时显示 -->\n <template v-else>\n <el-icon @click=\"toolbarProps.prev\"><ArrowLeftBold /></el-icon>\n <el-icon @click=\"toolbarProps.next\"><ArrowRightBold /></el-icon>\n <el-icon @click=\"toolbarProps.actions('zoomOut')\"><ZoomOut /></el-icon>\n <el-icon @click=\"toolbarProps.actions('zoomIn')\"><ZoomIn /></el-icon>\n <el-icon @click=\"toolbarProps.actions('anticlockwise')\"><RefreshLeft /></el-icon>\n <el-icon @click=\"toolbarProps.actions('clockwise')\"><RefreshRight /></el-icon>\n <el-icon @click=\"download(toolbarProps.activeIndex)\"><Download /></el-icon>\n </template>\n </template>\n </el-image-viewer>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, useSlots } from 'vue';\nimport { ElIcon } from 'element-plus';\nimport { getGmEvent, getGmExports } from '@giime/utils';\nimport { imageViewerEmits as elImageViewerEmits } from 'element-plus';\nimport { useDownload, getUrlFilename } from '@giime/hooks';\nimport { imageViewerEmits, imageViewerProps } from './imageViewer';\nimport type { ImageViewerInstance } from 'element-plus';\nimport { ArrowLeftBold, ArrowRightBold, ZoomOut, ZoomIn, RefreshLeft, RefreshRight, Download } from '@element-plus/icons-vue';\n\ndefineOptions({\n name: 'GmImageViewer',\n});\nconst slots = useSlots();\nconst props = defineProps(imageViewerProps);\nconst emit = defineEmits(imageViewerEmits);\n// 重发el的事件\nconst elEvents = getGmEvent(elImageViewerEmits, emit);\n\nconst { downloadByUrl } = useDownload();\n\n// 绑定 props,排除自定义的 downloadMode\nconst bindProps = computed(() => {\n const { downloadMode, ...rest } = props;\n return rest;\n});\n\n/**\n * 下载图片\n * @param urlOrIndex 图片 URL 或在 urlList 中的索引\n * @param filename 自定义文件名(可选)\n */\nconst download = async (urlOrIndex: string | number, filename?: string) => {\n let url: string;\n\n if (typeof urlOrIndex === 'number') {\n // 通过索引获取 URL\n const list = props.urlList as string[];\n url = list?.[urlOrIndex] || '';\n } else {\n url = urlOrIndex;\n }\n\n if (!url) {\n console.warn('[GmImageViewer] download: 无效的 URL');\n return;\n }\n\n const finalFilename = filename || getUrlFilename(url);\n\n if (props.downloadMode === 'link') {\n // 使用 window.open 直接打开下载(无需 fetch 权限)\n window.open(url, '_blank');\n } else {\n // 使用 downloadByUrl(blob 模式,带进度提示)\n await downloadByUrl(url, { filename: finalFilename });\n }\n};\n\nconst elRef = ref<ImageViewerInstance>();\nconst exposeNames = ['setActiveItem'] as const;\nconst { exposeFns } = getGmExports(elRef, exposeNames);\n\ndefineExpose({\n ...exposeFns,\n download,\n});\n</script>\n"],"names":["elImageViewerEmits"],"mappings":";;;;;;;;;;;;;;;;;;AA8BA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,IAAA,GAAO,MAAA;AAEb,IAAA,MAAM,QAAA,GAAW,UAAA,CAAWA,gBAAA,EAAoB,IAAI,CAAA;AAEpD,IAAA,MAAM,EAAE,aAAA,EAAc,GAAI,WAAA,EAAY;AAGtC,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,EAAE,YAAA,EAAc,GAAG,IAAA,EAAK,GAAI,KAAA;AAClC,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAOD,IAAA,MAAM,QAAA,GAAW,OAAO,UAAA,EAA6B,QAAA,KAAsB;AACzE,MAAA,IAAI,GAAA;AAEJ,MAAA,IAAI,OAAO,eAAe,QAAA,EAAU;AAElC,QAAA,MAAM,OAAO,KAAA,CAAM,OAAA;AACnB,QAAA,GAAA,GAAM,IAAA,GAAO,UAAU,CAAA,IAAK,EAAA;AAAA,MAC9B,CAAA,MAAO;AACL,QAAA,GAAA,GAAM,UAAA;AAAA,MACR;AAEA,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA,OAAA,CAAQ,KAAK,kDAAmC,CAAA;AAChD,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,QAAA,IAAY,cAAA,CAAe,GAAG,CAAA;AAEpD,MAAA,IAAI,KAAA,CAAM,iBAAiB,MAAA,EAAQ;AAEjC,QAAA,MAAA,CAAO,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA,MAC3B,CAAA,MAAO;AAEL,QAAA,MAAM,aAAA,CAAc,GAAA,EAAK,EAAE,QAAA,EAAU,eAAe,CAAA;AAAA,MACtD;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,QAAQ,GAAA,EAAyB;AACvC,IAAA,MAAM,WAAA,GAAc,CAAC,eAAe,CAAA;AACpC,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,YAAA,CAAa,OAAO,WAAW,CAAA;AAErD,IAAA,QAAA,CAAa;AAAA,MACX,GAAG,SAAA;AAAA,MACH;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,18 @@
1
+ import type { PropType } from 'vue';
2
+ export type GmImageViewerDownloadMode = 'blob' | 'link';
1
3
  export declare const imageViewerProps: {
4
+ /** 是否显示加载进度,默认 true */
5
+ showProgress: {
6
+ type: BooleanConstructor;
7
+ default: boolean;
8
+ };
9
+ /** 下载模式:blob 使用 downloadByUrl(带进度),link 使用 window.open(无需权限) */
10
+ downloadMode: {
11
+ type: PropType<GmImageViewerDownloadMode>;
12
+ default: string;
13
+ };
2
14
  urlList: {
3
- readonly type: import("vue").PropType<string[]>;
15
+ readonly type: PropType<string[]>;
4
16
  readonly required: false;
5
17
  readonly validator: ((val: unknown) => boolean) | undefined;
6
18
  __epPropKey: true;
@@ -8,13 +20,13 @@ export declare const imageViewerProps: {
8
20
  readonly default: () => [];
9
21
  };
10
22
  zIndex: {
11
- readonly type: import("vue").PropType<number>;
23
+ readonly type: PropType<number>;
12
24
  readonly required: false;
13
25
  readonly validator: ((val: unknown) => boolean) | undefined;
14
26
  __epPropKey: true;
15
27
  };
16
28
  initialIndex: {
17
- readonly type: import("vue").PropType<number>;
29
+ readonly type: PropType<number>;
18
30
  readonly required: false;
19
31
  readonly validator: ((val: unknown) => boolean) | undefined;
20
32
  __epPropKey: true;
@@ -22,7 +34,7 @@ export declare const imageViewerProps: {
22
34
  readonly default: 0;
23
35
  };
24
36
  infinite: {
25
- readonly type: import("vue").PropType<boolean>;
37
+ readonly type: PropType<boolean>;
26
38
  readonly required: false;
27
39
  readonly validator: ((val: unknown) => boolean) | undefined;
28
40
  __epPropKey: true;
@@ -32,7 +44,7 @@ export declare const imageViewerProps: {
32
44
  hideOnClickModal: BooleanConstructor;
33
45
  teleported: BooleanConstructor;
34
46
  closeOnPressEscape: {
35
- readonly type: import("vue").PropType<boolean>;
47
+ readonly type: PropType<boolean>;
36
48
  readonly required: false;
37
49
  readonly validator: ((val: unknown) => boolean) | undefined;
38
50
  __epPropKey: true;
@@ -40,7 +52,7 @@ export declare const imageViewerProps: {
40
52
  readonly default: true;
41
53
  };
42
54
  zoomRate: {
43
- readonly type: import("vue").PropType<number>;
55
+ readonly type: PropType<number>;
44
56
  readonly required: false;
45
57
  readonly validator: ((val: unknown) => boolean) | undefined;
46
58
  __epPropKey: true;
@@ -48,7 +60,7 @@ export declare const imageViewerProps: {
48
60
  readonly default: 1.2;
49
61
  };
50
62
  scale: {
51
- readonly type: import("vue").PropType<number>;
63
+ readonly type: PropType<number>;
52
64
  readonly required: false;
53
65
  readonly validator: ((val: unknown) => boolean) | undefined;
54
66
  __epPropKey: true;
@@ -56,7 +68,7 @@ export declare const imageViewerProps: {
56
68
  readonly default: 1;
57
69
  };
58
70
  minScale: {
59
- readonly type: import("vue").PropType<number>;
71
+ readonly type: PropType<number>;
60
72
  readonly required: false;
61
73
  readonly validator: ((val: unknown) => boolean) | undefined;
62
74
  __epPropKey: true;
@@ -64,16 +76,15 @@ export declare const imageViewerProps: {
64
76
  readonly default: 0.2;
65
77
  };
66
78
  maxScale: {
67
- readonly type: import("vue").PropType<number>;
79
+ readonly type: PropType<number>;
68
80
  readonly required: false;
69
81
  readonly validator: ((val: unknown) => boolean) | undefined;
70
82
  __epPropKey: true;
71
83
  } & {
72
84
  readonly default: 7;
73
85
  };
74
- showProgress: BooleanConstructor;
75
86
  crossorigin: {
76
- readonly type: import("vue").PropType<"" | "anonymous" | "use-credentials">;
87
+ readonly type: PropType<"" | "anonymous" | "use-credentials">;
77
88
  readonly required: false;
78
89
  readonly validator: ((val: unknown) => boolean) | undefined;
79
90
  __epPropKey: true;
@@ -1,7 +1,17 @@
1
1
  import { imageViewerProps as imageViewerProps$1, imageViewerEmits as imageViewerEmits$1 } from 'element-plus';
2
2
 
3
3
  const imageViewerProps = {
4
- ...imageViewerProps$1
4
+ ...imageViewerProps$1,
5
+ /** 是否显示加载进度,默认 true */
6
+ showProgress: {
7
+ type: Boolean,
8
+ default: true
9
+ },
10
+ /** 下载模式:blob 使用 downloadByUrl(带进度),link 使用 window.open(无需权限) */
11
+ downloadMode: {
12
+ type: String,
13
+ default: "blob"
14
+ }
5
15
  };
6
16
  const imageViewerEmits = {
7
17
  ...imageViewerEmits$1
@@ -1 +1 @@
1
- {"version":3,"file":"imageViewer.mjs","sources":["../../../../../../../packages/components/src/base/imageViewer/imageViewer.ts"],"sourcesContent":["import { imageViewerEmits as elImageViewerEmits, imageViewerProps as elImageViewerProps } from 'element-plus';\n// import type { ExtractPropTypes } from 'vue';\n\nexport const imageViewerProps = {\n ...elImageViewerProps,\n};\n\nexport const imageViewerEmits = {\n ...elImageViewerEmits,\n // 自定义事件\n // submit: (value: any) => !!value,\n};\n"],"names":["elImageViewerProps","elImageViewerEmits"],"mappings":";;AAGO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,GAAGA;AACL;AAEO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,GAAGC;AAAA;AAAA;AAGL;;;;"}
1
+ {"version":3,"file":"imageViewer.mjs","sources":["../../../../../../../packages/components/src/base/imageViewer/imageViewer.ts"],"sourcesContent":["import { imageViewerEmits as elImageViewerEmits, imageViewerProps as elImageViewerProps } from 'element-plus';\nimport type { PropType } from 'vue';\n\nexport type GmImageViewerDownloadMode = 'blob' | 'link';\n\nexport const imageViewerProps = {\n ...elImageViewerProps,\n /** 是否显示加载进度,默认 true */\n showProgress: {\n type: Boolean,\n default: true,\n },\n /** 下载模式:blob 使用 downloadByUrl(带进度),link 使用 window.open(无需权限) */\n downloadMode: {\n type: String as PropType<GmImageViewerDownloadMode>,\n default: 'blob',\n },\n};\n\nexport const imageViewerEmits = {\n ...elImageViewerEmits,\n // 自定义事件\n // submit: (value: any) => !!value,\n};\n"],"names":["elImageViewerProps","elImageViewerEmits"],"mappings":";;AAKO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,GAAGA,kBAAA;AAAA;AAAA,EAEH,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA,EAEA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb;AAEO,MAAM,gBAAA,GAAmB;AAAA,EAC9B,GAAGC;AAAA;AAAA;AAGL;;;;"}