@newview/file-ui 0.0.1

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.
@@ -0,0 +1,780 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => {
4
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ return value;
6
+ };
7
+ import { BaseInstance } from "@newview/base-vue";
8
+ import { defineComponent, ref, watch, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, withCtx, createElementVNode, reactive, normalizeStyle, renderList, createBlock, createSlots, normalizeClass, withModifiers, createCommentVNode, createTextVNode, toDisplayString } from "vue";
9
+ import { QueryWrapper } from "@newview/infrastructure";
10
+ import { OSSFileApi, FileApi, UploadApi, FileInfoApi } from "@newview/fileservice-api";
11
+ const propDefine$1 = {
12
+ modelValue: {
13
+ // 是否显示
14
+ type: Boolean,
15
+ default: false
16
+ },
17
+ fileInfo: {
18
+ // 带入的参数
19
+ type: Object,
20
+ default: () => {
21
+ }
22
+ },
23
+ previewList: {
24
+ // 按钮权限码
25
+ type: Array,
26
+ default: () => []
27
+ },
28
+ previewIndex: {
29
+ // 预览Index
30
+ type: Number,
31
+ default: 0
32
+ }
33
+ };
34
+ const _sfc_main$1 = defineComponent({
35
+ name: "FilePreview",
36
+ components: {},
37
+ emits: ["update:modelValue"],
38
+ // 例如: ['clearRadioRow', 'change', 'delete', 'addchild']
39
+ props: propDefine$1,
40
+ setup(props, ctx) {
41
+ return new FilePreviewInstance(props, ctx);
42
+ }
43
+ });
44
+ class FilePreviewInstance extends BaseInstance {
45
+ // 全局属性
46
+ constructor(props, ctx) {
47
+ super();
48
+ __publicField(this, "props");
49
+ __publicField(this, "ctx");
50
+ // API实例化
51
+ __publicField(this, "ossFileApi", new OSSFileApi());
52
+ __publicField(this, "fileApi", new FileApi());
53
+ //#region 业务逻辑 - 文件预览
54
+ // 私有属性 | private
55
+ // 响应属性 | ref、reactive、computed
56
+ __publicField(this, "previewImage", ref(false));
57
+ __publicField(this, "previewIfr", ref(false));
58
+ __publicField(this, "ifrUrl", ref(""));
59
+ // 响应式方法 | xxx = () => {}
60
+ /**
61
+ * 关闭预览
62
+ */
63
+ __publicField(this, "doClose", (value) => {
64
+ if (value) {
65
+ return;
66
+ }
67
+ this.ctx.emit("update:modelValue", false);
68
+ });
69
+ this.props = props;
70
+ this.ctx = ctx;
71
+ this.useFilePreview();
72
+ }
73
+ // 私有方法 | private 方法名() {}
74
+ /**
75
+ * 初始化
76
+ */
77
+ useFilePreview() {
78
+ watch(() => this.props["modelValue"], () => {
79
+ if (this.props["modelValue"]) {
80
+ this.doView(this.props.fileInfo);
81
+ }
82
+ });
83
+ if (this.props["modelValue"]) {
84
+ this.doView(this.props.fileInfo);
85
+ }
86
+ }
87
+ /**
88
+ * 预览文件
89
+ */
90
+ async doView(fileInfo) {
91
+ const fileUrl = await this.ossFileApi.getSignatureUrlByFileInfo(fileInfo);
92
+ if (this.isImage(fileInfo)) {
93
+ this.previewImage.value = true;
94
+ } else if (this.isOffice(fileInfo)) {
95
+ this.ifrUrl.value = `https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(fileUrl)}`;
96
+ this.previewIfr.value = true;
97
+ } else if (this.isVedio(fileInfo)) {
98
+ this.ifrUrl.value = `${fileUrl}`;
99
+ this.previewIfr.value = true;
100
+ } else if (this.isPDF(fileInfo)) {
101
+ this.ifrUrl.value = `/static/pdfjs-dist/web/viewer.html?file=${encodeURIComponent(fileUrl)}`;
102
+ this.previewIfr.value = true;
103
+ } else {
104
+ const downloadUrl = this.fileApi.getFileUrl(fileInfo.Token, fileInfo.Id);
105
+ console.log("downloadUrl", downloadUrl);
106
+ window.open(downloadUrl);
107
+ }
108
+ }
109
+ /**
110
+ * 是否为Office
111
+ * @param fileInfo
112
+ */
113
+ isOffice(fileInfo) {
114
+ const ext = fileInfo.FileExt;
115
+ return ext == "doc" || ext == "docx" || ext == "ppt" || ext == "pptx" || ext == "xls" || ext == "xlsx";
116
+ }
117
+ /**
118
+ * 是否为Vedio
119
+ * @param fileInfo
120
+ */
121
+ isVedio(fileInfo) {
122
+ const ext = fileInfo.FileExt;
123
+ return ext == "mov" || ext == "mp3" || ext == "mp4";
124
+ }
125
+ /**
126
+ * 是否为PDF
127
+ * @param fileInfo
128
+ */
129
+ isPDF(fileInfo) {
130
+ const ext = fileInfo.FileExt;
131
+ return ext == "pdf";
132
+ }
133
+ /**
134
+ * 是否为图片
135
+ * @param fileInfo
136
+ * @returns
137
+ */
138
+ isImage(fileInfo) {
139
+ const ext = fileInfo.FileExt;
140
+ return ext == "jpg" || ext == "png" || ext == "jpeg" || ext == "gif" || ext == "svg";
141
+ }
142
+ //#endregion 业务逻辑 - 文件预览 END
143
+ }
144
+ const FilePreview_vue_vue_type_style_index_0_scoped_071f536d_lang = "";
145
+ const _export_sfc = (sfc, props) => {
146
+ const target = sfc.__vccOpts || sfc;
147
+ for (const [key, val] of props) {
148
+ target[key] = val;
149
+ }
150
+ return target;
151
+ };
152
+ const _hoisted_1$1 = { class: "ifr-container" };
153
+ const _hoisted_2$1 = ["src", "title"];
154
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
155
+ const _component_ImagePreview = resolveComponent("ImagePreview");
156
+ const _component_Modal = resolveComponent("Modal");
157
+ return openBlock(), createElementBlock(Fragment, null, [
158
+ createVNode(_component_ImagePreview, {
159
+ modelValue: _ctx.previewImage,
160
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.previewImage = $event),
161
+ "preview-list": _ctx.previewList,
162
+ "initial-index": _ctx.previewIndex,
163
+ onOnClose: _ctx.doClose
164
+ }, null, 8, ["modelValue", "preview-list", "initial-index", "onOnClose"]),
165
+ createVNode(_component_Modal, {
166
+ modelValue: _ctx.previewIfr,
167
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.previewIfr = $event),
168
+ fullscreen: "",
169
+ mask: true,
170
+ "mask-closable": false,
171
+ width: 1e3,
172
+ "footer-hide": "",
173
+ title: "文件预览 - " + _ctx.fileInfo.FileName,
174
+ onOnVisibleChange: _ctx.doClose
175
+ }, {
176
+ default: withCtx(() => [
177
+ createElementVNode("div", _hoisted_1$1, [
178
+ createElementVNode("iframe", {
179
+ src: _ctx.ifrUrl,
180
+ class: "ifr-content",
181
+ title: _ctx.fileInfo.fileInfo
182
+ }, " ", 8, _hoisted_2$1)
183
+ ])
184
+ ]),
185
+ _: 1
186
+ }, 8, ["modelValue", "title", "onOnVisibleChange"])
187
+ ], 64);
188
+ }
189
+ const filePreview = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-071f536d"]]);
190
+ const propDefine = {
191
+ linkParam: {
192
+ // 带入的参数
193
+ type: String,
194
+ default: ""
195
+ },
196
+ operates: {
197
+ // 按钮权限码
198
+ type: String,
199
+ default: "-"
200
+ },
201
+ token: {
202
+ // Token
203
+ type: String,
204
+ default: ""
205
+ },
206
+ catalog: {
207
+ // 目录
208
+ type: String,
209
+ default: "root"
210
+ },
211
+ groups: {
212
+ // 文件分组列表
213
+ type: Array,
214
+ default: () => ["默认"]
215
+ },
216
+ extraInfo: {
217
+ // 扩展信息
218
+ type: String,
219
+ default: ""
220
+ },
221
+ isCompress: {
222
+ // 是否压缩
223
+ type: Boolean,
224
+ default: false
225
+ },
226
+ format: {
227
+ // 允许上传格式
228
+ type: Array,
229
+ default: () => []
230
+ },
231
+ maxSize: {
232
+ // 文件大小限制,单位 kb
233
+ type: Number,
234
+ default: 0
235
+ },
236
+ multiple: {
237
+ // 是否支持多选文件
238
+ type: Boolean,
239
+ default: false
240
+ },
241
+ readonly: {
242
+ // 是否只读
243
+ type: Boolean,
244
+ default: false
245
+ },
246
+ single: {
247
+ // 单文件
248
+ type: Boolean,
249
+ default: false
250
+ }
251
+ };
252
+ const _sfc_main = defineComponent({
253
+ name: "UploadFile",
254
+ components: { filePreview },
255
+ emits: ["success"],
256
+ // 例如: ['clearRadioRow', 'change', 'delete', 'addchild']
257
+ props: propDefine,
258
+ setup(props, ctx) {
259
+ return new UploadFileInstance(props, ctx);
260
+ }
261
+ });
262
+ class UploadFileInstance extends BaseInstance {
263
+ // 全局属性
264
+ constructor(props, ctx) {
265
+ super();
266
+ __publicField(this, "props");
267
+ __publicField(this, "ctx");
268
+ // API实例化
269
+ __publicField(this, "uploadApi", new UploadApi());
270
+ __publicField(this, "fileInfoApi", new FileInfoApi());
271
+ __publicField(this, "fileApi", new FileApi());
272
+ //#region 业务逻辑 - 文件上传
273
+ // 私有属性 | private
274
+ __publicField(this, "currentToken", "");
275
+ // 当前Token
276
+ // 响应属性 | ref、reactive、computed
277
+ __publicField(this, "fileList", ref([]));
278
+ __publicField(this, "uploading", ref(false));
279
+ __publicField(this, "uploadFilePos", reactive({}));
280
+ // 文件上传参数
281
+ __publicField(this, "action", ref(""));
282
+ // 请求 Url
283
+ __publicField(this, "headers", ref({
284
+ Authorization: ""
285
+ }));
286
+ // 响应式方法 | xxx = () => {}
287
+ /**
288
+ * 上传成功
289
+ * @param res
290
+ * @param file
291
+ * @param fileList
292
+ * @returns
293
+ */
294
+ __publicField(this, "doSuccess", (res, file, fileList) => {
295
+ const result = this.utilities.parseApiResult(res);
296
+ this.uploading.value = false;
297
+ if (result.Code != "0") {
298
+ this.message.error(result.Msg);
299
+ return;
300
+ }
301
+ this.message.success("上传成功");
302
+ this.ctx.emit("success", { token: result.Token, fileId: result.FileId });
303
+ this.loadFileList();
304
+ });
305
+ /**
306
+ * 文件格式错误
307
+ */
308
+ __publicField(this, "doFormatError", () => {
309
+ this.message.warning("当前上传的文件格式不正确,请重新上传");
310
+ this.uploading.value = false;
311
+ });
312
+ /**
313
+ * 文件超过上传限制
314
+ */
315
+ __publicField(this, "doMaxSize", () => {
316
+ if (this.props.maxSize / 1024 >= 1) {
317
+ this.message.warning(
318
+ "文件太大超出上传限制,文件大小不得大于" + (this.props.maxSize / 1024).toFixed(1) + "M"
319
+ );
320
+ } else {
321
+ this.message.warning(
322
+ "文件太大超出上传限制,文件大小不得大于" + this.props.maxSize + "KB"
323
+ );
324
+ }
325
+ this.uploading.value = false;
326
+ });
327
+ /**
328
+ * 上传之前
329
+ */
330
+ __publicField(this, "doBeforeUpload", () => {
331
+ this.message.info("文件上传中,请稍等");
332
+ this.uploading.value = true;
333
+ });
334
+ /**
335
+ * 移除
336
+ * @param fileInfo
337
+ */
338
+ __publicField(this, "doRemove", (fileInfo) => {
339
+ this.modal.confirm({
340
+ title: "提示",
341
+ content: `数据删除后不可恢复,<br/>确定要删除 ${fileInfo.FileName} 文件吗?`,
342
+ onOk: async () => {
343
+ this.uploading.value = true;
344
+ const apiResult = await this.fileApi.deleteFile(fileInfo.Token, fileInfo.Id);
345
+ const result = this.utilities.parseApiResult(apiResult);
346
+ if (result <= 0) {
347
+ this.message.warning("删除失败,请稍后重试!");
348
+ this.uploading.value = false;
349
+ } else {
350
+ this.loadFileList();
351
+ this.message.success("删除成功");
352
+ this.uploading.value = false;
353
+ }
354
+ }
355
+ });
356
+ });
357
+ /**
358
+ * 下载文件
359
+ * @param fileInfo
360
+ */
361
+ __publicField(this, "doDwonload", (fileInfo) => {
362
+ const downloadUrl = this.fileApi.getFileUrl(fileInfo.Token, fileInfo.Id);
363
+ window.open(downloadUrl);
364
+ });
365
+ /**
366
+ * 获取当前组文件
367
+ */
368
+ __publicField(this, "getGroupFiles", (groupName) => {
369
+ if (groupName == "默认") {
370
+ return this.fileList.value;
371
+ } else {
372
+ return this.fileList.value.filter((item) => item.GroupName == groupName);
373
+ }
374
+ });
375
+ /**
376
+ * 获取单文件
377
+ * @param groupName
378
+ */
379
+ __publicField(this, "getSingle", (groupName) => {
380
+ const groupFiles = this.getGroupFiles(groupName);
381
+ return this.props.single && groupFiles.length > 0;
382
+ });
383
+ /**
384
+ * 获取第一个文件
385
+ * @param groupName
386
+ * @returns
387
+ */
388
+ __publicField(this, "getFirstFile", (groupName) => {
389
+ const groupFiles = this.getGroupFiles(groupName);
390
+ if (groupFiles.length == 0) {
391
+ return void 0;
392
+ } else {
393
+ return groupFiles[0];
394
+ }
395
+ });
396
+ //#endregion 业务逻辑 - 文件上传 END
397
+ //#region 业务逻辑 文件预览
398
+ // 私有属性 | private
399
+ // 响应属性 | ref、reactive、computed、watch
400
+ __publicField(this, "previewVisible", ref(false));
401
+ __publicField(this, "previewList", ref([]));
402
+ __publicField(this, "previewIndex", ref(0));
403
+ __publicField(this, "previewFileInfo", ref({}));
404
+ // 响应式方法 | xxx = () => {}
405
+ /**
406
+ * 是否为图片
407
+ * @param fileInfo
408
+ * @returns
409
+ */
410
+ __publicField(this, "isImage", (fileInfo) => {
411
+ const ext = fileInfo.FileExt;
412
+ return ext == "jpg" || ext == "png" || ext == "jpeg" || ext == "gif" || ext == "svg";
413
+ });
414
+ /**
415
+ * 获取文件预览Url
416
+ * @param fileInfo 文件信息
417
+ */
418
+ __publicField(this, "getImgUrl", (fileInfo) => {
419
+ return this.fileApi.getFileUrl(fileInfo.Token, fileInfo.Id);
420
+ });
421
+ /**
422
+ * 获取缩略图Url
423
+ * @param fileInfo
424
+ * @returns
425
+ */
426
+ __publicField(this, "getThumbnailUrl", (fileInfo) => {
427
+ return this.isImage(fileInfo) ? this.getImgUrl(fileInfo) : this.getFileIcon(fileInfo.FileExt);
428
+ });
429
+ /**
430
+ * 获取文件图片
431
+ * @param fileType
432
+ * @returns
433
+ */
434
+ __publicField(this, "getFileIcon", (fileType) => {
435
+ const fileicons = {
436
+ DOCX: {
437
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRCOTIzMDEwNzE5RTExRTdBOEQ5Q0NFM0IyNDAxOEEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRCOTIzMDExNzE5RTExRTdBOEQ5Q0NFM0IyNDAxOEEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEI5MjMwMEU3MTlFMTFFN0E4RDlDQ0UzQjI0MDE4QTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEI5MjMwMEY3MTlFMTFFN0E4RDlDQ0UzQjI0MDE4QTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz60rcnLAAAEVklEQVR42uzcS2gbRxgA4H9XlmTLr0W2W6mJUeIaG7sxdWkdGkOoqQOJk4ZACPhQkxSVJIccTEvdUw+l7aVQeumxPZRQmxhCDkkpDcSUQOI4+BKDrYvTJCj4iSw/JD8k7Wozs1RivGhXK2ur7I7nh0G70qwtffz/r1m9OFmWIRMcxwEZc3NzlejidzTeQ6MCbBIul0ssLy8PVldXjxV6LOmhmGgBIRy8M47Gh2CzQDggCIK0tbV1slAkNRCvM/cMmvw+2DR4nnd4PJ67sVist6i/o3VDOp0+gzLKCTYOM5A0gdbX1xuAgigWSRMokUi4gZIoBkmvxDigKPaKxMM+ir0glZE7LZ8OC5ntjS3JWbMtmnCnOPC4HVZEMrQE2LUOah0Ykc2+Q2/7q+C3Lz4o+TrI6/XqzkEtJOc6qZB1ECs3WoHUWVAMEpVAyWQSJEkyBYnaDIpGo6YglWkd9FV/J1w+265sD/7yAP5+HIZ3Dnvh1vensnN+vROCn0afKNv4enw7jq6rN2FjM/lakVKpFCwvL+Mze4jH40awHCj+qKqq8hsCmn4RzW4fOeRVgLqP+HbNUfZHAWoqXVmcmefR145DZhI6I1C2MVY+JITpCQQCxkpsfHpxN8R/UGRgFIxDwpHHWSWcTif4/X5cSvmyzmW4B+EswNmgBUHikXBk5tkRqaAm/XI5nt3u/7hZQVIHxrF6BhElVDCS7kwyG6580p4TAcNZsf+YhaQ7i4Qgs2f0n6dZCPJ6K2fPXpF0Z2hlBIaYfh7VzThakPISqrMigzaTA8guGUQi+Xw+XaS8QGSjJhHU2WKH/pMr3G63LlJeIDVEZl+dLXbLHqNIZfkOxivo1scjOddJrQMj1Jy/YSRBEMR9cbK611C/s8yAil0HsWBAeWNXk97e2X4KICuFWF/j9vnqaiuL/QeNb3joAVqKLH6LLq7jzCqTPRt//tDLSozcSd7/ZhhdXEQjzYpLowdlkHgOZMaj0aQx0pfn26cZj86z2NGWujXGw57mGRADKuU6qBQxHlqBvyYXLPHgT3f5obu9zlpA8yvb8HAmYgmgziaBlRjrQbT1oAbBDe8aSO1S3RfLAX3U0aAMVmKsBzEgFoX2oM9/noSltQQ1D/5yXxOcO/aWeUCbCQk2d0RqgFJimpUY60FW6kGXTgRQiUnUPHgjC9aCgPq6/KzEWDCg/68HhcIbkEzR85bZgfoKaKh1mwf03XAIllZ3qAG6drYZLhw/yEqM9SAGZJMm/WOwA1ISPW/Z19ea/Ipi4M1KVmIsGBADKgmQLMsi49EBmp+fD+03jEQikTQMNDQ0dDsSiazvF5x0Oi1PTU09Mww0Ozv7YnBw8O7CwsKqKIoSzTjxeHxnYmLi32AweEd9G6fzK3h452ue55t6enrq29raah0OB0cbTiwWS42NjS2Fw2H8kcMbyOORUSAceKn5GRqNaODvXtL6yVf8pbh7aDxS/+7HKwEGAHtEw4kCzabCAAAAAElFTkSuQmCC"
438
+ },
439
+ XLSX: {
440
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGRUQ5RDNFNzE5RTExRTdBRDQ5QkIzRUIxN0U2M0RGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGRUQ5RDNGNzE5RTExRTdBRDQ5QkIzRUIxN0U2M0RGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0ZFRDlEM0M3MTlFMTFFN0FENDlCQjNFQjE3RTYzREYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0ZFRDlEM0Q3MTlFMTFFN0FENDlCQjNFQjE3RTYzREYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ifpPZAAAFr0lEQVR42uyce0xbVRzHf32Xlo6utKVlPGoAwSjZkKDEKIkQZzKWLLroNItjU2JEF6NO98j8Q+eGSzQRZnD6h7rh9oe6RKNosrjtD/ERQ4AQBI08xkjrBFtefUDfnt91ZYXQcm5plvZyvsnN7Snn13v45Hd+v985vbeicDgMEYlEIoiWzWZTk9MZclSQIwPSRHK5PKBUKp/WaDSX+dpG8+CYxAJE4GDjF3JUQ5qJwAGtVhv0eDwP84W0HJA4Tt960rkS0lRisViiUqkuOp3OujV9ThyS9cSjZJDGSgakmIBcLpcBBKC1QooJyOfzKUAgWgukeFNMBAJSopDEsI6UCCRpdKPg5Ye0kdezCy6Z0qta+6BEYlDJlakIiaoEWFIHFb6yNZzsAZUY8qG94a1bXgfpdLq4fUKh0Ip1Ep86iE03oQJa7gVrgSRIQKREgWAwmBRIgvWgqamppECSxjO8//a74fxzJxfbz589Dt/1/Xhzsba5Bj5oeH2xvfvDw/DTXz0pAcnv98Pk5CSu7HFVQANLQnQuMzPTTA0I/9mTHR/D4e3PcO23H38J+q1DMO64DgXZZq4dEfZLFTjRnuT1ernXCGs1SAqFQlVYWMhvip2+8vmi12RlZHIehXDQc7AdAYn9UlUymQzMZjNOpbj9AoGAPKEYdOSLFs5ruGKSwOk8ehbK80r+LyjnXXDky9aUj0u0kBIChBAw/qwGL9WF8YgvJOqeGHuWxxh8LzpoCxESNaCm2l1cVosWTjN8P93EBxIVIAQRyWSo6CmF70fikRAhrQoIM1V0rYPT6oETDdw5ouiMlm6QTCZTXEirAsJaBzNXxHN2nz60WDRi8I5ktqa69JtqN2qfuJDEq8UdrJajK+kIFISFGSxWX6FAEuR+UKJyu92ukpISDdsPiqHl3ywzQMmsgxggphW1ZLvD6/QMw43vw4wbdCajwahe6wUKdGbhAJoetb1BTu3oWWp9aK791Y/YFItu+K6MnSenPeQIsckVIwZFIIlE4jDDEyNII6SDO5/9neGJk8WqSytmGB6W5hkgBuhW1kHxNOdxwax7Di73/kz94feUbgajVg8dv9HfaFqWXwR3WUrhQuf31DaGrGyo3XIfuc4lcC/MU9molRnwWM325AHyB/zwt2MC3vyshXrg779wjKyQxbxsXnxkHxTnWnjZVN9RAVsra+DUV2fAaqf7hiVPb6YCxKYYA8QAMUBpkcVABKCQybngRqsMhRJkUikvmw0qDbd5zscGsxjulpp0Rmob2r4xH2bp6+vr0Ov19TfTvBOkEilcm7BRD2KT3sRBHb0+Tm2jz9LBxswsGLJdpbZRkZRdYMiFEXIdzLY0kkllJFsuvdXF4/G4iouLNQmm+QD8MT4MT5zYzyvNF5FBbDvawCvNP1X3KC8bTPPtB1tg3zsHeKX5zvcusBjEgjQDxAAxQOks6jQ/63aCmPx9cHyI+sOLN1kgQ66E/qt/8ioNcrQG6Bnu51E7ZUJZfjH0jQ6C1++jssHyY0vRnclL88FQEMbt/8Cxc/Q3bB7a1QT5BjMvmycf3AH199bysim/rQyO730NTn39KUxM26lscjbq4ZMD7yavkkZP83jnYfAavQfNuV2wkOXjZfPvrIO7n5mPDXoQjm/IOkZdB+HYWAxiQZoBYoAEs90hJ2kxNzsH9u+gX0RaTHlg1GbzsqksKQe1UsXLJp+s5MPhEOzZupMEXyddYFdrklsHrQetVAexKcZiEAPEAKUkIBK8AwxPHEB2u31wvcHw4fPktIDa2tq+mZmZmV0vcMiMCY2MjIxSA7JarWOtra0XHQ7HdJD2AfT0rX8WBgYGRpubm7/lU0lP9Pb29jQ2Ns5UVFToLRZLlkQiEQkNjtvt9nd3d08Q4S2HP1BX0qiqqir8Faq9WM3jagM9UaBOhJtDl7q6un5d/rsf/wkwAFAlV79aj4H7AAAAAElFTkSuQmCC"
441
+ },
442
+ PPTX: {
443
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM5MkNCQTUzNzE5RTExRTdBMzlEQzM4NjVBNUE0QTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM5MkNCQTU0NzE5RTExRTdBMzlEQzM4NjVBNUE0QTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzkyQ0JBNTE3MTlFMTFFN0EzOURDMzg2NUE1QTRBNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzkyQ0JBNTI3MTlFMTFFN0EzOURDMzg2NUE1QTRBNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4VZwdsAAAF20lEQVR42uyc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"
444
+ },
445
+ PDF: {
446
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI2NTUyNzkzNzE5RTExRTdBQUJEQjIxM0Q0NDhBMzlFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI2NTUyNzk0NzE5RTExRTdBQUJEQjIxM0Q0NDhBMzlFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjY1NTI3OTE3MTlFMTFFN0FBQkRCMjEzRDQ0OEEzOUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjY1NTI3OTI3MTlFMTFFN0FBQkRCMjEzRDQ0OEEzOUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4PCmoWAAAHzUlEQVR42uyb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"
447
+ },
448
+ PNG: {
449
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MEYwMzIxNzE5RTExRTc5Nzk1RTY2REQxNzA5MUM2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MEYwMzIyNzE5RTExRTc5Nzk1RTY2REQxNzA5MUM2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYwRjAzMUY3MTlFMTFFNzk3OTVFNjZERDE3MDkxQzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYwRjAzMjA3MTlFMTFFNzk3OTVFNjZERDE3MDkxQzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7MA++rAAAG1ElEQVR42uyc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"
450
+ },
451
+ RAR: {
452
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJFNDM2NDhBNzE5RTExRTc4MTQ0QTI5QjhEN0YwRTg3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJFNDM2NDhCNzE5RTExRTc4MTQ0QTI5QjhEN0YwRTg3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkU0MzY0ODg3MTlFMTFFNzgxNDRBMjlCOEQ3RjBFODciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkU0MzY0ODk3MTlFMTFFNzgxNDRBMjlCOEQ3RjBFODciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7A+Lq9AAAFaElEQVR42uycb0wbZRzHf9e/x9FCLXTQUVamITNzC6vahJhlm/+ji4sajcYYsxlezRfOmJj4xj+J4a3jBS4xMVuMvjNkiomZSra9mBg77GZW3gjIsFBGS9dC29E/1/P5XSgplZZeexx3x33J5bknPA+555Pfv+eOO4rjOCiIoigo1uzsbCNpLpDDQ44GUIhMJlOOpum3rVbriNC5xTx4JuUAETjY+Y0cvaAwEThgs9nYVCr1rFBIpYB0FcYeJ4MfAYVKp9PpGYa5tLy8/GRdf6cCyePEooygYIkBqSygRCLhABWoXkhlAWUyGTOoRPVAquRiFKhItULSwQ5SLZAMxR3bFzdthfO7WTCas5y86x09gFlH1QqpqhJgXR1037m/OCVZxOl9DLzzILNhHWS32yvOzefzG9ZJQuogzd3UCqjUCuqBpEpApEQBlmVFgaRaC4pGo6JAMqg1xmSzWVhYWMCdPe4KqoGlJ/rGYrE4RQF0zGUBm1m/4e9uhO9BLM3yY7C9EkzwY7FfOm56KbOllpROp/lzhLUZJLPZzLjdbnEs6ONeJxxybHyL6NPfQ/zCzz/j5iFc+e5vHg72S3VhPArvXQ1uqTUZjUZwOp0wNzeH6b3suFwuZxLNxRBCsQUddVnh5H47DwYXXWotxVYz4F+AriYTvOvZxc+5GU7xc6SAFAqFKkISDRC6zVoFTkB9ftTFn6M1oFtV0sXJON/2OBh48YFmcDdJsy/GeCQUkihZDF0HIZ31h9eB20xoRah4Oifd9mQVEslcW2tBxbEI3QnBoNtVA+XyK908UDxHl0Owku7hBFhSXRaE7nHG4+Bd6tTPtwXNxTkI9KXhqe3Z6FZpSTVbUHHcwYVuFncKwiD+OMlqsrgbQCC1t7fD/Px8WUuqGRDCQUi4YAyy6GoFYVZSikjtswZJNEAIBt2rEFPQzYqFMUWJkMLhsHj3g8pV0YX4UhhT7Hql/a26H1Srkslkoru72yqKi1Wz0NIxYsLZCpU+WVbtbl5MaYA0QPVpXQxi52YmYPV5mKOJbne4OhrlfPGttE5aQOmR4U9I8zVvWY7mpaFzZzQXK+5kRr/8ljRvkSOvOVeZGFSARFIep+EpE6QR0gevH7ml4amQxXr3d8Y0PCI+1chks3A7Eoc8J0/PNOko2Nveuj2AJhYT8Jk/Br4kjQW7bK3hZfu/8L6nBWwWpn4XE6KvAtFVOPLWULQBLk4KixyiAPonwSompkwLvNYdt9UQGiK1vZgGSAaAGINyODMGSnpATzlNioBj0bHwhMAbFKLUQW8cdEJHYgzuzUyAjpVnRmNNNLQdOAQPd7ZJDyhy/Rp4h86CIZ2UtQWtjLsgfupDaO7cK62L5Ud/kj0cFB0JQsZ3WfoYxCXiyqmDBF6rluY1QBog+QOirHbFLJhqsksPyHTsBOQYq+zhrDjvh8bHnpa+DmL2HYSrb74KM8vjZLcsz0LRoDfDgZbD8Oiu3dIDGpn+Hn7MnZf9i+PXE9fAGGyAHpdXWhe7tfSHMmog8hNY8kkfgzLcimKCdIZLa2leq4MUVwcpiLPQaxVlZU7arRhATnqP9ICe3/MaPETJ+xsopjwNh80vwJHO56Svg9qaOuB0z0cQCs/xyVSWgIxmaLFt06PnNfN17Aa1SctitQLiOC6n4akAKBKJjO80GBl8n7xaQIODgz/EYrH4ToFDPCY/OTk5VTWgYDA4PTAwcGlxcfEuy7KsmuGkUqmVQCAw1d/fPywki93x+/1/9vX1xTweT2tXV1ezXq+n1AYnmUxmx8bG7hDhPw798r/Ku9JnAr1eL75te5IcnVhKyLbIqV/4ou2vPp9vtPS7H/8JMACCejtl/KmtzgAAAABJRU5ErkJggg=="
453
+ },
454
+ DWG: {
455
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMzRDdCMUUxNzE5RTExRTc5RDY3OTkxN0RFOEQyQTUwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjMzRDdCMUUyNzE5RTExRTc5RDY3OTkxN0RFOEQyQTUwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzNEN0IxREY3MTlFMTFFNzlENjc5OTE3REU4RDJBNTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzNEN0IxRTA3MTlFMTFFNzlENjc5OTE3REU4RDJBNTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz51XZ5UAAAGNUlEQVR42uycTUxbRxCAx//Y2JEdcAwiKgQRiVYiElRUlAtSQM251E2bHnKocmgrIXJID1UuFSi+cKl66Kmnqg1S21SilxhUoCcksFzJIMQh0CDxjwG7MbbBv9159j7e8/8vMvaONNp9631r5vPM7O7zGkk0GgUqEokEhLKzsyMlxXdEPyCqgwoWh8NRZ7Vaub/RbDa7u7u7v9DpdH/kO46QB4o8S/+fiD4gKoUKl/Pzc9jf3+fqoVDIqNFofvN4PB8XAkkoaQ0n3mMkxb2rACelYUTikIbLAojI+0Qb4QpLKSClBeT3+69DFYgA0mBJAfl8PiVUicQhTRcCSZohm0ugioQwkhUCSQo1JIVAEk3zOzMKPa27wlsaCFdwlElVZOGmKgbSPbIEmM0LEHKhFcPRhwBHFewOxscANx4X60lZIdVUiBUSblUJKBKJlAxSVQIiWw1OSwGpakPM5XJBOBwuGpI81zdUXR8E6cUkF9sgnsxBJOhK6iNslyoMpP0uuXaT9ot8qDZ9FFuxH7zg22TqW6BqGAQ5KbF/8M0/onvykWAwCIeHh6BUKuH09DQXWDIiP2u12uaCAF27/QwU13qStyTEwP/WvuKAaG894SC9efUUTjcnuNe1bU+Ifs3V9/82cf1wHMOdSQj7X/OA9G//AJqbj5I9YfmBCGK+jy5wl4+CsLJBUqlUmtbW1uJCDI13EyC+7R85Y9ETDHeexzzqeC72Rg13RV51UY+1U9AB4iFCODgejo9QUGPv4S463BQKBTQ3N6OLZMtdyoJDjErY/y/3ifrQYFI2vPuSg4AaC4dnJETa+ZBBGBgqWKLivRhCsRCd5dqo57iWPxOFVKGekwnS3t5ezrmp6CSNxgTjXkBBYNhQMJhPhIZSb6Ll+fHsRZ2MhYo5C72SqiwOs5SQSFK+vL1YiACJJWO9KGwQkFLXEwf0O+9FQq9CmPQ+ChrDEPMT1foUeekyIRUNiIYLBUUNRTjoQRQEDR1qMO1HcwzNSzgDYv7BXFQuwZktV0hFAcLZCQ3D5HoWDyP0lliiHuS8hYKgpdpk5kNKWNI8hmNhSGKuK6fkCinvJF1HDERDaNLlZrb1p/y6B72FhpMYxByfuIXX2BdnK0zUOBtiO8JJtaQoFyRM3Om2J3kDogs8+kmjcYmLOTGgOb4/bcdSuMDEZUMk5AJNyyN+fCHsckNqamrivxEpGJBzsY+bYfgNocDAREGD0asS+9ExUt2LOQcVAWJeS1yll1PIApGD5HQ6i/OgfP7gdH2zjYEeU26vSQfJYDCE2POgDJL4zTIDdBnrIAaoxkWUpHedsB6NAheIcpVOZzLdvFG5f7nx8gH9tRj9FmInOqTKOtn2p6MvWYgJL775PvQLKR7ibMyCK00OopDIlMcgpUvSCOl2z5fPGZ4Ms9hbncObDA+b5hkgBogBYoAYIAaIAWK7+SsnU1NT4PV6+Ws8wdHYGDv3vri4CCsrK6L+fX190N7eXjuAHA4HdwYolRwdJR+u7OjoqC1AKPigfWRkJGMfu90O8/PztRdiKPiQvaWlJWOf9fV1lqSprK2tgc1mg0AgUP4kTRKgcmZmpmJhJB7StFqtMD09zdUXFhZgdHRU9Dom7WzeVF9fr8RclRMg8inI8dOoVCHGiK6Xl5f5+ubmJjerabVavm17exvc7syn1Uwmk7xqQ6ytrY2v43SfCLDkIabX6/0Wi6VigUxMTOBv2vjr4eFh9AD8GRf09/cnfUs6NDQEPT2ZT4ycnZ35cwZE3iCqVquvzopXLoeBgYG0r+PJsmz2RBN/0XvVp3m05+TkJGMf9Kia3Gqg4Bno8fFxthdLJZ2dneDxeITLEjg+PubqRqMxKZwMBkNtAbp//77oemlpCSYnJ7m62WyGrq4u9rjjMoQBYoAYIAaIAWKAGKDaAxSJRAIMTwZAW1tbK0H8ZWwNSSDFs9q0gMgm8JXT6TypFTj4qGNjY+N1PjnIOzY29mJ3d/eg2j3J5/Odra6ublgslj8TX5Nk+i94vb29n5PiPbJz1hNtUCgUFZvUSc6UomJdJpOF8YFfLvd5vd6g3W4/IILfQv5KNr0L+QDChk+IvkNUVcVOdEp01mazLSQ+VPxfgAEAh1L9A+W91VgAAAAASUVORK5CYII="
456
+ },
457
+ MOV: {
458
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCODZGMjg0NzE5RTExRTc4REI0OTBDODFEQkVCQUU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCODZGMjg1NzE5RTExRTc4REI0OTBDODFEQkVCQUU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI4NkYyODI3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI4NkYyODM3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4BPIErAAALQUlEQVR42uxc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"
459
+ },
460
+ MP3: {
461
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE4NUIxMTQyNzE5RTExRTc5MkREQTRGMDA4OTFBOEI4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE4NUIxMTQzNzE5RTExRTc5MkREQTRGMDA4OTFBOEI4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTg1QjExNDA3MTlFMTFFNzkyRERBNEYwMDg5MUE4QjgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTg1QjExNDE3MTlFMTFFNzkyRERBNEYwMDg5MUE4QjgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz69naflAAAK3klEQVR42uyb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"
462
+ },
463
+ MP4: {
464
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCODZGMjg0NzE5RTExRTc4REI0OTBDODFEQkVCQUU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCODZGMjg1NzE5RTExRTc4REI0OTBDODFEQkVCQUU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI4NkYyODI3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI4NkYyODM3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4BPIErAAALQUlEQVR42uxc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"
465
+ },
466
+ HTML: {
467
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzMjkzMkRFNzE5RTExRTdBMkJFODdBOUUwQjFGRTUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAzMjkzMkRGNzE5RTExRTdBMkJFODdBOUUwQjFGRTUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDMyOTMyREM3MTlFMTFFN0EyQkU4N0E5RTBCMUZFNTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDMyOTMyREQ3MTlFMTFFN0EyQkU4N0E5RTBCMUZFNTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6xFdZcAAAGTElEQVR42uyc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"
468
+ },
469
+ NONE: {
470
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIwQ0VDMEY0NzE5RTExRTc5QkRGRDJEMjlGQjM1MkE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIwQ0VDMEY1NzE5RTExRTc5QkRGRDJEMjlGQjM1MkE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjBDRUMwRjI3MTlFMTFFNzlCREZEMkQyOUZCMzUyQTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjBDRUMwRjM3MTlFMTFFNzlCREZEMkQyOUZCMzUyQTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5KbLK5AAAGIklEQVR42uyc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"
471
+ }
472
+ };
473
+ let src = "";
474
+ switch (fileType) {
475
+ case "rar":
476
+ case "zip":
477
+ src = fileicons.RAR.img;
478
+ break;
479
+ case "doc":
480
+ case "docx":
481
+ src = fileicons.DOCX.img;
482
+ break;
483
+ case "xls":
484
+ case "xlsx":
485
+ src = fileicons.XLSX.img;
486
+ break;
487
+ case "pdf":
488
+ src = fileicons.PDF.img;
489
+ break;
490
+ case "ppt":
491
+ case "pptx":
492
+ src = fileicons.PPTX.img;
493
+ break;
494
+ case "png":
495
+ case "jpg":
496
+ src = fileicons.PNG.img;
497
+ break;
498
+ case "mov":
499
+ src = fileicons.MOV.img;
500
+ break;
501
+ case "mp3":
502
+ src = fileicons.MP3.img;
503
+ break;
504
+ case "mp4":
505
+ src = fileicons.MP4.img;
506
+ break;
507
+ case "html":
508
+ case "htm":
509
+ src = fileicons.HTML.img;
510
+ break;
511
+ default:
512
+ src = fileicons.NONE.img;
513
+ break;
514
+ }
515
+ return src;
516
+ });
517
+ /**
518
+ * 预览文件
519
+ * @param fileInfo
520
+ */
521
+ __publicField(this, "doView", (fileInfo) => {
522
+ this.previewFileInfo = fileInfo;
523
+ this.previewVisible.value = true;
524
+ this.previewIndex.value = fileInfo.PreviewIndex;
525
+ });
526
+ this.props = props;
527
+ this.ctx = ctx;
528
+ this.useUploadFile();
529
+ }
530
+ // 私有方法 | private 方法名() {}
531
+ /**
532
+ * 初始化文件上传附件
533
+ */
534
+ async useUploadFile() {
535
+ watch(() => this.props.token, (newToken, oldToken) => {
536
+ this.setCurrentToken();
537
+ this.setUploadFilePos();
538
+ });
539
+ this.setCurrentToken();
540
+ this.setUploadFilePos();
541
+ this.headers.value.Authorization = `Bearer ${this.storageInfo.getToken()}`;
542
+ this.action.value = this.uploadApi.getUploadFileUrl();
543
+ }
544
+ /**
545
+ * 设置当前Token
546
+ */
547
+ setCurrentToken() {
548
+ this.currentToken = this.utilities.getValueNotNull(this.props.token, this.utilities.getUniqueCode().replaceAll("-", ""));
549
+ this.loadFileList();
550
+ }
551
+ /**
552
+ * 设置文件上传参数
553
+ */
554
+ setUploadFilePos() {
555
+ for (const groupName of this.props.groups) {
556
+ const uploadFilePo = this.getUploadFilePo(groupName);
557
+ this.uploadFilePos[groupName] = uploadFilePo;
558
+ }
559
+ }
560
+ /**
561
+ * 获取文件上传参数
562
+ * @param groupName
563
+ */
564
+ getUploadFilePo(groupName) {
565
+ return this.uploadApi.getBaseFilePo(this.currentToken, this.props.catalog, groupName, this.props.extraInfo, this.props.isCompress);
566
+ }
567
+ /**
568
+ * 获取文件列表
569
+ * @returns
570
+ */
571
+ async loadFileList() {
572
+ this.uploading.value = true;
573
+ const apiResult = await this.fileInfoApi.getEntities(QueryWrapper.create().eq("Token", this.currentToken));
574
+ this.fileList.value = this.utilities.parseApiResult(apiResult);
575
+ this.uploading.value = false;
576
+ this.setPreviewList();
577
+ }
578
+ // 私有方法 | private 方法名() {}
579
+ /**
580
+ * 设置预览列表
581
+ */
582
+ setPreviewList() {
583
+ let index = 0;
584
+ for (const fileInfo of this.fileList.value) {
585
+ if (this.isImage(fileInfo)) {
586
+ fileInfo.PreviewIndex = index;
587
+ this.previewList.value.push(this.getImgUrl(fileInfo));
588
+ index++;
589
+ }
590
+ }
591
+ }
592
+ //#endregion 业务逻辑 文件预览 END
593
+ }
594
+ const UploadFile_vue_vue_type_style_index_0_scoped_8a539c5e_lang = "";
595
+ const _hoisted_1 = ["onClick", "title"];
596
+ const _hoisted_2 = { class: "file-upload-list-cover" };
597
+ const _hoisted_3 = { class: "file-upload-btn" };
598
+ const _hoisted_4 = { class: "file-upload-list-cover" };
599
+ const _hoisted_5 = { class: "file-upload-btn" };
600
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
601
+ const _component_Image = resolveComponent("Image");
602
+ const _component_Icon = resolveComponent("Icon");
603
+ const _component_Space = resolveComponent("Space");
604
+ const _component_Upload = resolveComponent("Upload");
605
+ const _component_Card = resolveComponent("Card");
606
+ const _component_Spin = resolveComponent("Spin");
607
+ const _component_filePreview = resolveComponent("filePreview");
608
+ return openBlock(), createElementBlock("div", {
609
+ class: "uploadFile",
610
+ style: normalizeStyle(_ctx.single ? { padding: "0px" } : { padding: "8px" })
611
+ }, [
612
+ !_ctx.single ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(_ctx.groups, (groupName) => {
613
+ return openBlock(), createBlock(_component_Card, {
614
+ "dis-hover": "",
615
+ style: { "margin-bottom": "8px" }
616
+ }, createSlots({
617
+ default: withCtx(() => [
618
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.getGroupFiles(groupName), (item, index) => {
619
+ return openBlock(), createElementBlock("div", {
620
+ class: normalizeClass(_ctx.isImage(item) ? "file-upload-list file-upload-list-bs" : "file-upload-list")
621
+ }, [
622
+ createElementVNode("div", {
623
+ class: "file-upload-list-content",
624
+ onClick: ($event) => _ctx.doView(item),
625
+ title: item.FileName
626
+ }, [
627
+ createVNode(_component_Image, {
628
+ src: _ctx.getThumbnailUrl(item),
629
+ fit: "cover",
630
+ width: "100%",
631
+ height: "100%"
632
+ }, null, 8, ["src"]),
633
+ createElementVNode("div", _hoisted_2, [
634
+ createVNode(_component_Space, null, {
635
+ default: withCtx(() => [
636
+ createVNode(_component_Icon, {
637
+ type: "md-download",
638
+ onClick: withModifiers(($event) => _ctx.doDwonload(item), ["stop"]),
639
+ title: "下载"
640
+ }, null, 8, ["onClick"]),
641
+ !_ctx.readonly ? (openBlock(), createBlock(_component_Icon, {
642
+ key: 0,
643
+ type: "md-trash",
644
+ onClick: withModifiers(($event) => _ctx.doRemove(item), ["stop"]),
645
+ title: "删除"
646
+ }, null, 8, ["onClick"])) : createCommentVNode("", true)
647
+ ]),
648
+ _: 2
649
+ }, 1024)
650
+ ])
651
+ ], 8, _hoisted_1)
652
+ ], 2);
653
+ }), 256)),
654
+ !_ctx.readonly ? (openBlock(), createBlock(_component_Upload, {
655
+ key: 0,
656
+ ref_for: true,
657
+ ref: "uploadRef",
658
+ type: "drag",
659
+ name: "FormFile",
660
+ multiple: _ctx.multiple,
661
+ "show-upload-list": false,
662
+ format: _ctx.format,
663
+ "max-size": _ctx.maxSize,
664
+ action: _ctx.action,
665
+ headers: _ctx.headers,
666
+ data: _ctx.uploadFilePos[groupName],
667
+ "on-success": _ctx.doSuccess,
668
+ "on-format-error": _ctx.doFormatError,
669
+ "on-exceeded-size": _ctx.doMaxSize,
670
+ "before-upload": _ctx.doBeforeUpload,
671
+ style: { "display": "inline-block", "width": "78px" }
672
+ }, {
673
+ default: withCtx(() => [
674
+ createElementVNode("div", _hoisted_3, [
675
+ createVNode(_component_Icon, {
676
+ type: "ios-camera",
677
+ size: "20"
678
+ })
679
+ ])
680
+ ]),
681
+ _: 2
682
+ }, 1032, ["multiple", "format", "max-size", "action", "headers", "data", "on-success", "on-format-error", "on-exceeded-size", "before-upload"])) : createCommentVNode("", true)
683
+ ]),
684
+ _: 2
685
+ }, [
686
+ groupName != "默认" ? {
687
+ name: "title",
688
+ fn: withCtx(() => [
689
+ createTextVNode(toDisplayString(groupName), 1)
690
+ ]),
691
+ key: "0"
692
+ } : void 0
693
+ ]), 1024);
694
+ }), 256)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
695
+ _ctx.getFirstFile(_ctx.groups[0]) ? (openBlock(), createElementBlock("div", {
696
+ key: 0,
697
+ class: "file-upload-list-content",
698
+ onClick: _cache[2] || (_cache[2] = ($event) => _ctx.doView(_ctx.getFirstFile(_ctx.groups[0]))),
699
+ style: { "width": "100%", "height": "100%" }
700
+ }, [
701
+ createVNode(_component_Image, {
702
+ src: _ctx.getThumbnailUrl(_ctx.getFirstFile(_ctx.groups[0])),
703
+ fit: "fill",
704
+ width: "100%",
705
+ height: "100%"
706
+ }, null, 8, ["src"]),
707
+ createElementVNode("div", _hoisted_4, [
708
+ createVNode(_component_Space, null, {
709
+ default: withCtx(() => [
710
+ createVNode(_component_Icon, {
711
+ type: "md-download",
712
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.doDwonload(_ctx.getFirstFile(_ctx.groups[0])), ["stop"])),
713
+ title: "下载"
714
+ }),
715
+ !_ctx.readonly ? (openBlock(), createBlock(_component_Icon, {
716
+ key: 0,
717
+ type: "md-trash",
718
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => _ctx.doRemove(_ctx.getFirstFile(_ctx.groups[0])), ["stop"])),
719
+ title: "删除"
720
+ })) : createCommentVNode("", true)
721
+ ]),
722
+ _: 1
723
+ })
724
+ ])
725
+ ])) : createCommentVNode("", true),
726
+ !_ctx.readonly && !_ctx.getSingle(_ctx.groups[0]) ? (openBlock(), createBlock(_component_Card, {
727
+ key: 1,
728
+ "dis-hover": "",
729
+ style: { "margin-bottom": "8px" }
730
+ }, {
731
+ default: withCtx(() => [
732
+ createVNode(_component_Upload, {
733
+ ref: "uploadRef",
734
+ type: "drag",
735
+ name: "FormFile",
736
+ multiple: _ctx.multiple,
737
+ "show-upload-list": false,
738
+ format: _ctx.format,
739
+ "max-size": _ctx.maxSize,
740
+ action: _ctx.action,
741
+ headers: _ctx.headers,
742
+ data: _ctx.uploadFilePos[_ctx.groups[0]],
743
+ "on-success": _ctx.doSuccess,
744
+ "on-format-error": _ctx.doFormatError,
745
+ "on-exceeded-size": _ctx.doMaxSize,
746
+ "before-upload": _ctx.doBeforeUpload,
747
+ style: { "display": "inline-block", "width": "78px" }
748
+ }, {
749
+ default: withCtx(() => [
750
+ createElementVNode("div", _hoisted_5, [
751
+ createVNode(_component_Icon, {
752
+ type: "ios-camera",
753
+ size: "20"
754
+ })
755
+ ])
756
+ ]),
757
+ _: 1
758
+ }, 8, ["multiple", "format", "max-size", "action", "headers", "data", "on-success", "on-format-error", "on-exceeded-size", "before-upload"])
759
+ ]),
760
+ _: 1
761
+ })) : createCommentVNode("", true)
762
+ ], 64)),
763
+ _ctx.uploading ? (openBlock(), createBlock(_component_Spin, {
764
+ key: 2,
765
+ fix: ""
766
+ })) : createCommentVNode("", true),
767
+ createVNode(_component_filePreview, {
768
+ modelValue: _ctx.previewVisible,
769
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.previewVisible = $event),
770
+ "preview-list": _ctx.previewList,
771
+ "preview-index": _ctx.previewIndex,
772
+ "file-info": _ctx.previewFileInfo
773
+ }, null, 8, ["modelValue", "preview-list", "preview-index", "file-info"])
774
+ ], 4);
775
+ }
776
+ const UploadFile = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8a539c5e"]]);
777
+ export {
778
+ filePreview as FilePreview,
779
+ UploadFile
780
+ };
@@ -0,0 +1 @@
1
+ !function(e,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports,require("@newview/base-vue"),require("vue"),require("@newview/infrastructure"),require("@newview/fileservice-api")):"function"==typeof define&&define.amd?define(["exports","@newview/base-vue","vue","@newview/infrastructure","@newview/fileservice-api"],i):i((e="undefined"!=typeof globalThis?globalThis:e||self).fileui={},e.baseVue,e.Vue,e.infrastructure,e.fileserviceApi)}(this,(function(e,i,l,t,A){"use strict";var o=Object.defineProperty,s=(e,i,l)=>(((e,i,l)=>{i in e?o(e,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[i]=l})(e,"symbol"!=typeof i?i+"":i,l),l);const a={modelValue:{type:Boolean,default:!1},fileInfo:{type:Object,default:()=>{}},previewList:{type:Array,default:()=>[]},previewIndex:{type:Number,default:0}},I=l.defineComponent({name:"FilePreview",components:{},emits:["update:modelValue"],props:a,setup:(e,i)=>new d(e,i)});class d extends i.BaseInstance{constructor(e,i){super(),s(this,"props"),s(this,"ctx"),s(this,"ossFileApi",new A.OSSFileApi),s(this,"fileApi",new A.FileApi),s(this,"previewImage",l.ref(!1)),s(this,"previewIfr",l.ref(!1)),s(this,"ifrUrl",l.ref("")),s(this,"doClose",(e=>{e||this.ctx.emit("update:modelValue",!1)})),this.props=e,this.ctx=i,this.useFilePreview()}useFilePreview(){l.watch((()=>this.props.modelValue),(()=>{this.props.modelValue&&this.doView(this.props.fileInfo)})),this.props.modelValue&&this.doView(this.props.fileInfo)}async doView(e){const i=await this.ossFileApi.getSignatureUrlByFileInfo(e);if(this.isImage(e))this.previewImage.value=!0;else if(this.isOffice(e))this.ifrUrl.value=`https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(i)}`,this.previewIfr.value=!0;else if(this.isVedio(e))this.ifrUrl.value=`${i}`,this.previewIfr.value=!0;else if(this.isPDF(e))this.ifrUrl.value=`/static/pdfjs-dist/web/viewer.html?file=${encodeURIComponent(i)}`,this.previewIfr.value=!0;else{const i=this.fileApi.getFileUrl(e.Token,e.Id);window.open(i)}}isOffice(e){const i=e.FileExt;return"doc"==i||"docx"==i||"ppt"==i||"pptx"==i||"xls"==i||"xlsx"==i}isVedio(e){const i=e.FileExt;return"mov"==i||"mp3"==i||"mp4"==i}isPDF(e){return"pdf"==e.FileExt}isImage(e){const i=e.FileExt;return"jpg"==i||"png"==i||"jpeg"==i||"gif"==i||"svg"==i}}const g=(e,i)=>{const l=e.__vccOpts||e;for(const[t,A]of i)l[t]=A;return l},n={class:"ifr-container"},c=["src","title"];const p=g(I,[["render",function(e,i,t,A,o,s){const a=l.resolveComponent("ImagePreview"),I=l.resolveComponent("Modal");return l.openBlock(),l.createElementBlock(l.Fragment,null,[l.createVNode(a,{modelValue:e.previewImage,"onUpdate:modelValue":i[0]||(i[0]=i=>e.previewImage=i),"preview-list":e.previewList,"initial-index":e.previewIndex,onOnClose:e.doClose},null,8,["modelValue","preview-list","initial-index","onOnClose"]),l.createVNode(I,{modelValue:e.previewIfr,"onUpdate:modelValue":i[1]||(i[1]=i=>e.previewIfr=i),fullscreen:"",mask:!0,"mask-closable":!1,width:1e3,"footer-hide":"",title:"文件预览 - "+e.fileInfo.FileName,onOnVisibleChange:e.doClose},{default:l.withCtx((()=>[l.createElementVNode("div",n,[l.createElementVNode("iframe",{src:e.ifrUrl,class:"ifr-content",title:e.fileInfo.fileInfo}," ",8,c)])])),_:1},8,["modelValue","title","onOnVisibleChange"])],64)}],["__scopeId","data-v-071f536d"]]),m={linkParam:{type:String,default:""},operates:{type:String,default:"-"},token:{type:String,default:""},catalog:{type:String,default:"root"},groups:{type:Array,default:()=>["默认"]},extraInfo:{type:String,default:""},isCompress:{type:Boolean,default:!1},format:{type:Array,default:()=>[]},maxSize:{type:Number,default:0},multiple:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},single:{type:Boolean,default:!1}},E=l.defineComponent({name:"UploadFile",components:{filePreview:p},emits:["success"],props:m,setup:(e,i)=>new R(e,i)});class R extends i.BaseInstance{constructor(e,i){super(),s(this,"props"),s(this,"ctx"),s(this,"uploadApi",new A.UploadApi),s(this,"fileInfoApi",new A.FileInfoApi),s(this,"fileApi",new A.FileApi),s(this,"currentToken",""),s(this,"fileList",l.ref([])),s(this,"uploading",l.ref(!1)),s(this,"uploadFilePos",l.reactive({})),s(this,"action",l.ref("")),s(this,"headers",l.ref({Authorization:""})),s(this,"doSuccess",((e,i,l)=>{const t=this.utilities.parseApiResult(e);this.uploading.value=!1,"0"==t.Code?(this.message.success("上传成功"),this.ctx.emit("success",{token:t.Token,fileId:t.FileId}),this.loadFileList()):this.message.error(t.Msg)})),s(this,"doFormatError",(()=>{this.message.warning("当前上传的文件格式不正确,请重新上传"),this.uploading.value=!1})),s(this,"doMaxSize",(()=>{this.props.maxSize/1024>=1?this.message.warning("文件太大超出上传限制,文件大小不得大于"+(this.props.maxSize/1024).toFixed(1)+"M"):this.message.warning("文件太大超出上传限制,文件大小不得大于"+this.props.maxSize+"KB"),this.uploading.value=!1})),s(this,"doBeforeUpload",(()=>{this.message.info("文件上传中,请稍等"),this.uploading.value=!0})),s(this,"doRemove",(e=>{this.modal.confirm({title:"提示",content:`数据删除后不可恢复,<br/>确定要删除 ${e.FileName} 文件吗?`,onOk:async()=>{this.uploading.value=!0;const i=await this.fileApi.deleteFile(e.Token,e.Id);this.utilities.parseApiResult(i)<=0?(this.message.warning("删除失败,请稍后重试!"),this.uploading.value=!1):(this.loadFileList(),this.message.success("删除成功"),this.uploading.value=!1)}})})),s(this,"doDwonload",(e=>{const i=this.fileApi.getFileUrl(e.Token,e.Id);window.open(i)})),s(this,"getGroupFiles",(e=>"默认"==e?this.fileList.value:this.fileList.value.filter((i=>i.GroupName==e)))),s(this,"getSingle",(e=>{const i=this.getGroupFiles(e);return this.props.single&&i.length>0})),s(this,"getFirstFile",(e=>{const i=this.getGroupFiles(e);return 0==i.length?void 0:i[0]})),s(this,"previewVisible",l.ref(!1)),s(this,"previewList",l.ref([])),s(this,"previewIndex",l.ref(0)),s(this,"previewFileInfo",l.ref({})),s(this,"isImage",(e=>{const i=e.FileExt;return"jpg"==i||"png"==i||"jpeg"==i||"gif"==i||"svg"==i})),s(this,"getImgUrl",(e=>this.fileApi.getFileUrl(e.Token,e.Id))),s(this,"getThumbnailUrl",(e=>this.isImage(e)?this.getImgUrl(e):this.getFileIcon(e.FileExt))),s(this,"getFileIcon",(e=>{const i={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRCOTIzMDEwNzE5RTExRTdBOEQ5Q0NFM0IyNDAxOEEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRCOTIzMDExNzE5RTExRTdBOEQ5Q0NFM0IyNDAxOEEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEI5MjMwMEU3MTlFMTFFN0E4RDlDQ0UzQjI0MDE4QTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEI5MjMwMEY3MTlFMTFFN0E4RDlDQ0UzQjI0MDE4QTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz60rcnLAAAEVklEQVR42uzcS2gbRxgA4H9XlmTLr0W2W6mJUeIaG7sxdWkdGkOoqQOJk4ZACPhQkxSVJIccTEvdUw+l7aVQeumxPZRQmxhCDkkpDcSUQOI4+BKDrYvTJCj4iSw/JD8k7Wozs1RivGhXK2ur7I7nh0G70qwtffz/r1m9OFmWIRMcxwEZc3NzlejidzTeQ6MCbBIul0ssLy8PVldXjxV6LOmhmGgBIRy8M47Gh2CzQDggCIK0tbV1slAkNRCvM/cMmvw+2DR4nnd4PJ67sVist6i/o3VDOp0+gzLKCTYOM5A0gdbX1xuAgigWSRMokUi4gZIoBkmvxDigKPaKxMM+ir0glZE7LZ8OC5ntjS3JWbMtmnCnOPC4HVZEMrQE2LUOah0Ykc2+Q2/7q+C3Lz4o+TrI6/XqzkEtJOc6qZB1ECs3WoHUWVAMEpVAyWQSJEkyBYnaDIpGo6YglWkd9FV/J1w+265sD/7yAP5+HIZ3Dnvh1vensnN+vROCn0afKNv4enw7jq6rN2FjM/lakVKpFCwvL+Mze4jH40awHCj+qKqq8hsCmn4RzW4fOeRVgLqP+HbNUfZHAWoqXVmcmefR145DZhI6I1C2MVY+JITpCQQCxkpsfHpxN8R/UGRgFIxDwpHHWSWcTif4/X5cSvmyzmW4B+EswNmgBUHikXBk5tkRqaAm/XI5nt3u/7hZQVIHxrF6BhElVDCS7kwyG6580p4TAcNZsf+YhaQ7i4Qgs2f0n6dZCPJ6K2fPXpF0Z2hlBIaYfh7VzThakPISqrMigzaTA8guGUQi+Xw+XaS8QGSjJhHU2WKH/pMr3G63LlJeIDVEZl+dLXbLHqNIZfkOxivo1scjOddJrQMj1Jy/YSRBEMR9cbK611C/s8yAil0HsWBAeWNXk97e2X4KICuFWF/j9vnqaiuL/QeNb3joAVqKLH6LLq7jzCqTPRt//tDLSozcSd7/ZhhdXEQjzYpLowdlkHgOZMaj0aQx0pfn26cZj86z2NGWujXGw57mGRADKuU6qBQxHlqBvyYXLPHgT3f5obu9zlpA8yvb8HAmYgmgziaBlRjrQbT1oAbBDe8aSO1S3RfLAX3U0aAMVmKsBzEgFoX2oM9/noSltQQ1D/5yXxOcO/aWeUCbCQk2d0RqgFJimpUY60FW6kGXTgRQiUnUPHgjC9aCgPq6/KzEWDCg/68HhcIbkEzR85bZgfoKaKh1mwf03XAIllZ3qAG6drYZLhw/yEqM9SAGZJMm/WOwA1ISPW/Z19ea/Ipi4M1KVmIsGBADKgmQLMsi49EBmp+fD+03jEQikTQMNDQ0dDsSiazvF5x0Oi1PTU09Mww0Ozv7YnBw8O7CwsKqKIoSzTjxeHxnYmLi32AweEd9G6fzK3h452ue55t6enrq29raah0OB0cbTiwWS42NjS2Fw2H8kcMbyOORUSAceKn5GRqNaODvXtL6yVf8pbh7aDxS/+7HKwEGAHtEw4kCzabCAAAAAElFTkSuQmCC"},l={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGRUQ5RDNFNzE5RTExRTdBRDQ5QkIzRUIxN0U2M0RGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGRUQ5RDNGNzE5RTExRTdBRDQ5QkIzRUIxN0U2M0RGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0ZFRDlEM0M3MTlFMTFFN0FENDlCQjNFQjE3RTYzREYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0ZFRDlEM0Q3MTlFMTFFN0FENDlCQjNFQjE3RTYzREYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ifpPZAAAFr0lEQVR42uyce0xbVRzHf32Xlo6utKVlPGoAwSjZkKDEKIkQZzKWLLroNItjU2JEF6NO98j8Q+eGSzQRZnD6h7rh9oe6RKNosrjtD/ERQ4AQBI08xkjrBFtefUDfnt91ZYXQcm5plvZyvsnN7Snn13v45Hd+v985vbeicDgMEYlEIoiWzWZTk9MZclSQIwPSRHK5PKBUKp/WaDSX+dpG8+CYxAJE4GDjF3JUQ5qJwAGtVhv0eDwP84W0HJA4Tt960rkS0lRisViiUqkuOp3OujV9ThyS9cSjZJDGSgakmIBcLpcBBKC1QooJyOfzKUAgWgukeFNMBAJSopDEsI6UCCRpdKPg5Ye0kdezCy6Z0qta+6BEYlDJlakIiaoEWFIHFb6yNZzsAZUY8qG94a1bXgfpdLq4fUKh0Ip1Ep86iE03oQJa7gVrgSRIQKREgWAwmBRIgvWgqamppECSxjO8//a74fxzJxfbz589Dt/1/Xhzsba5Bj5oeH2xvfvDw/DTXz0pAcnv98Pk5CSu7HFVQANLQnQuMzPTTA0I/9mTHR/D4e3PcO23H38J+q1DMO64DgXZZq4dEfZLFTjRnuT1ernXCGs1SAqFQlVYWMhvip2+8vmi12RlZHIehXDQc7AdAYn9UlUymQzMZjNOpbj9AoGAPKEYdOSLFs5ruGKSwOk8ehbK80r+LyjnXXDky9aUj0u0kBIChBAw/qwGL9WF8YgvJOqeGHuWxxh8LzpoCxESNaCm2l1cVosWTjN8P93EBxIVIAQRyWSo6CmF70fikRAhrQoIM1V0rYPT6oETDdw5ouiMlm6QTCZTXEirAsJaBzNXxHN2nz60WDRi8I5ktqa69JtqN2qfuJDEq8UdrJajK+kIFISFGSxWX6FAEuR+UKJyu92ukpISDdsPiqHl3ywzQMmsgxggphW1ZLvD6/QMw43vw4wbdCajwahe6wUKdGbhAJoetb1BTu3oWWp9aK791Y/YFItu+K6MnSenPeQIsckVIwZFIIlE4jDDEyNII6SDO5/9neGJk8WqSytmGB6W5hkgBuhW1kHxNOdxwax7Di73/kz94feUbgajVg8dv9HfaFqWXwR3WUrhQuf31DaGrGyo3XIfuc4lcC/MU9molRnwWM325AHyB/zwt2MC3vyshXrg779wjKyQxbxsXnxkHxTnWnjZVN9RAVsra+DUV2fAaqf7hiVPb6YCxKYYA8QAMUBpkcVABKCQybngRqsMhRJkUikvmw0qDbd5zscGsxjulpp0Rmob2r4xH2bp6+vr0Ov19TfTvBOkEilcm7BRD2KT3sRBHb0+Tm2jz9LBxswsGLJdpbZRkZRdYMiFEXIdzLY0kkllJFsuvdXF4/G4iouLNQmm+QD8MT4MT5zYzyvNF5FBbDvawCvNP1X3KC8bTPPtB1tg3zsHeKX5zvcusBjEgjQDxAAxQOks6jQ/63aCmPx9cHyI+sOLN1kgQ66E/qt/8ioNcrQG6Bnu51E7ZUJZfjH0jQ6C1++jssHyY0vRnclL88FQEMbt/8Cxc/Q3bB7a1QT5BjMvmycf3AH199bysim/rQyO730NTn39KUxM26lscjbq4ZMD7yavkkZP83jnYfAavQfNuV2wkOXjZfPvrIO7n5mPDXoQjm/IOkZdB+HYWAxiQZoBYoAEs90hJ2kxNzsH9u+gX0RaTHlg1GbzsqksKQe1UsXLJp+s5MPhEOzZupMEXyddYFdrklsHrQetVAexKcZiEAPEAKUkIBK8AwxPHEB2u31wvcHw4fPktIDa2tq+mZmZmV0vcMiMCY2MjIxSA7JarWOtra0XHQ7HdJD2AfT0rX8WBgYGRpubm7/lU0lP9Pb29jQ2Ns5UVFToLRZLlkQiEQkNjtvt9nd3d08Q4S2HP1BX0qiqqir8Faq9WM3jagM9UaBOhJtDl7q6un5d/rsf/wkwAFAlV79aj4H7AAAAAElFTkSuQmCC"},t={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM5MkNCQTUzNzE5RTExRTdBMzlEQzM4NjVBNUE0QTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM5MkNCQTU0NzE5RTExRTdBMzlEQzM4NjVBNUE0QTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzkyQ0JBNTE3MTlFMTFFN0EzOURDMzg2NUE1QTRBNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzkyQ0JBNTI3MTlFMTFFN0EzOURDMzg2NUE1QTRBNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4VZwdsAAAF20lEQVR42uyc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"},A={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI2NTUyNzkzNzE5RTExRTdBQUJEQjIxM0Q0NDhBMzlFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI2NTUyNzk0NzE5RTExRTdBQUJEQjIxM0Q0NDhBMzlFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjY1NTI3OTE3MTlFMTFFN0FBQkRCMjEzRDQ0OEEzOUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjY1NTI3OTI3MTlFMTFFN0FBQkRCMjEzRDQ0OEEzOUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4PCmoWAAAHzUlEQVR42uyb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"},o={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MEYwMzIxNzE5RTExRTc5Nzk1RTY2REQxNzA5MUM2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MEYwMzIyNzE5RTExRTc5Nzk1RTY2REQxNzA5MUM2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYwRjAzMUY3MTlFMTFFNzk3OTVFNjZERDE3MDkxQzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYwRjAzMjA3MTlFMTFFNzk3OTVFNjZERDE3MDkxQzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7MA++rAAAG1ElEQVR42uyc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"},s={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJFNDM2NDhBNzE5RTExRTc4MTQ0QTI5QjhEN0YwRTg3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJFNDM2NDhCNzE5RTExRTc4MTQ0QTI5QjhEN0YwRTg3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkU0MzY0ODg3MTlFMTFFNzgxNDRBMjlCOEQ3RjBFODciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkU0MzY0ODk3MTlFMTFFNzgxNDRBMjlCOEQ3RjBFODciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7A+Lq9AAAFaElEQVR42uycb0wbZRzHf9e/x9FCLXTQUVamITNzC6vahJhlm/+ji4sajcYYsxlezRfOmJj4xj+J4a3jBS4xMVuMvjNkiomZSra9mBg77GZW3gjIsFBGS9dC29E/1/P5XSgplZZeexx3x33J5bknPA+555Pfv+eOO4rjOCiIoigo1uzsbCNpLpDDQ44GUIhMJlOOpum3rVbriNC5xTx4JuUAETjY+Y0cvaAwEThgs9nYVCr1rFBIpYB0FcYeJ4MfAYVKp9PpGYa5tLy8/GRdf6cCyePEooygYIkBqSygRCLhABWoXkhlAWUyGTOoRPVAquRiFKhItULSwQ5SLZAMxR3bFzdthfO7WTCas5y86x09gFlH1QqpqhJgXR1037m/OCVZxOl9DLzzILNhHWS32yvOzefzG9ZJQuogzd3UCqjUCuqBpEpApEQBlmVFgaRaC4pGo6JAMqg1xmSzWVhYWMCdPe4KqoGlJ/rGYrE4RQF0zGUBm1m/4e9uhO9BLM3yY7C9EkzwY7FfOm56KbOllpROp/lzhLUZJLPZzLjdbnEs6ONeJxxybHyL6NPfQ/zCzz/j5iFc+e5vHg72S3VhPArvXQ1uqTUZjUZwOp0wNzeH6b3suFwuZxLNxRBCsQUddVnh5H47DwYXXWotxVYz4F+AriYTvOvZxc+5GU7xc6SAFAqFKkISDRC6zVoFTkB9ftTFn6M1oFtV0sXJON/2OBh48YFmcDdJsy/GeCQUkihZDF0HIZ31h9eB20xoRah4Oifd9mQVEslcW2tBxbEI3QnBoNtVA+XyK908UDxHl0Owku7hBFhSXRaE7nHG4+Bd6tTPtwXNxTkI9KXhqe3Z6FZpSTVbUHHcwYVuFncKwiD+OMlqsrgbQCC1t7fD/Px8WUuqGRDCQUi4YAyy6GoFYVZSikjtswZJNEAIBt2rEFPQzYqFMUWJkMLhsHj3g8pV0YX4UhhT7Hql/a26H1Srkslkoru72yqKi1Wz0NIxYsLZCpU+WVbtbl5MaYA0QPVpXQxi52YmYPV5mKOJbne4OhrlfPGttE5aQOmR4U9I8zVvWY7mpaFzZzQXK+5kRr/8ljRvkSOvOVeZGFSARFIep+EpE6QR0gevH7ml4amQxXr3d8Y0PCI+1chks3A7Eoc8J0/PNOko2Nveuj2AJhYT8Jk/Br4kjQW7bK3hZfu/8L6nBWwWpn4XE6KvAtFVOPLWULQBLk4KixyiAPonwSompkwLvNYdt9UQGiK1vZgGSAaAGINyODMGSnpATzlNioBj0bHwhMAbFKLUQW8cdEJHYgzuzUyAjpVnRmNNNLQdOAQPd7ZJDyhy/Rp4h86CIZ2UtQWtjLsgfupDaO7cK62L5Ud/kj0cFB0JQsZ3WfoYxCXiyqmDBF6rluY1QBog+QOirHbFLJhqsksPyHTsBOQYq+zhrDjvh8bHnpa+DmL2HYSrb74KM8vjZLcsz0LRoDfDgZbD8Oiu3dIDGpn+Hn7MnZf9i+PXE9fAGGyAHpdXWhe7tfSHMmog8hNY8kkfgzLcimKCdIZLa2leq4MUVwcpiLPQaxVlZU7arRhATnqP9ICe3/MaPETJ+xsopjwNh80vwJHO56Svg9qaOuB0z0cQCs/xyVSWgIxmaLFt06PnNfN17Aa1SctitQLiOC6n4akAKBKJjO80GBl8n7xaQIODgz/EYrH4ToFDPCY/OTk5VTWgYDA4PTAwcGlxcfEuy7KsmuGkUqmVQCAw1d/fPywki93x+/1/9vX1xTweT2tXV1ezXq+n1AYnmUxmx8bG7hDhPw798r/Ku9JnAr1eL75te5IcnVhKyLbIqV/4ou2vPp9vtPS7H/8JMACCejtl/KmtzgAAAABJRU5ErkJggg=="},a={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCODZGMjg0NzE5RTExRTc4REI0OTBDODFEQkVCQUU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCODZGMjg1NzE5RTExRTc4REI0OTBDODFEQkVCQUU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI4NkYyODI3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI4NkYyODM3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4BPIErAAALQUlEQVR42uxc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"},I={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE4NUIxMTQyNzE5RTExRTc5MkREQTRGMDA4OTFBOEI4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE4NUIxMTQzNzE5RTExRTc5MkREQTRGMDA4OTFBOEI4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTg1QjExNDA3MTlFMTFFNzkyRERBNEYwMDg5MUE4QjgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTg1QjExNDE3MTlFMTFFNzkyRERBNEYwMDg5MUE4QjgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz69naflAAAK3klEQVR42uyb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"},d={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCODZGMjg0NzE5RTExRTc4REI0OTBDODFEQkVCQUU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCODZGMjg1NzE5RTExRTc4REI0OTBDODFEQkVCQUU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI4NkYyODI3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI4NkYyODM3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4BPIErAAALQUlEQVR42uxc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"},g={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzMjkzMkRFNzE5RTExRTdBMkJFODdBOUUwQjFGRTUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAzMjkzMkRGNzE5RTExRTdBMkJFODdBOUUwQjFGRTUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDMyOTMyREM3MTlFMTFFN0EyQkU4N0E5RTBCMUZFNTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDMyOTMyREQ3MTlFMTFFN0EyQkU4N0E5RTBCMUZFNTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6xFdZcAAAGTElEQVR42uyc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"},n={img:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIwQ0VDMEY0NzE5RTExRTc5QkRGRDJEMjlGQjM1MkE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIwQ0VDMEY1NzE5RTExRTc5QkRGRDJEMjlGQjM1MkE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjBDRUMwRjI3MTlFMTFFNzlCREZEMkQyOUZCMzUyQTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjBDRUMwRjM3MTlFMTFFNzlCREZEMkQyOUZCMzUyQTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5KbLK5AAAGIklEQVR42uyc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"};let c="";switch(e){case"rar":case"zip":c=s.img;break;case"doc":case"docx":c=i.img;break;case"xls":case"xlsx":c=l.img;break;case"pdf":c=A.img;break;case"ppt":case"pptx":c=t.img;break;case"png":case"jpg":c=o.img;break;case"mov":c=a.img;break;case"mp3":c=I.img;break;case"mp4":c=d.img;break;case"html":case"htm":c=g.img;break;default:c=n.img}return c})),s(this,"doView",(e=>{this.previewFileInfo=e,this.previewVisible.value=!0,this.previewIndex.value=e.PreviewIndex})),this.props=e,this.ctx=i,this.useUploadFile()}async useUploadFile(){l.watch((()=>this.props.token),((e,i)=>{this.setCurrentToken(),this.setUploadFilePos()})),this.setCurrentToken(),this.setUploadFilePos(),this.headers.value.Authorization=`Bearer ${this.storageInfo.getToken()}`,this.action.value=this.uploadApi.getUploadFileUrl()}setCurrentToken(){this.currentToken=this.utilities.getValueNotNull(this.props.token,this.utilities.getUniqueCode().replaceAll("-","")),this.loadFileList()}setUploadFilePos(){for(const e of this.props.groups){const i=this.getUploadFilePo(e);this.uploadFilePos[e]=i}}getUploadFilePo(e){return this.uploadApi.getBaseFilePo(this.currentToken,this.props.catalog,e,this.props.extraInfo,this.props.isCompress)}async loadFileList(){this.uploading.value=!0;const e=await this.fileInfoApi.getEntities(t.QueryWrapper.create().eq("Token",this.currentToken));this.fileList.value=this.utilities.parseApiResult(e),this.uploading.value=!1,this.setPreviewList()}setPreviewList(){let e=0;for(const i of this.fileList.value)this.isImage(i)&&(i.PreviewIndex=e,this.previewList.value.push(this.getImgUrl(i)),e++)}}const h=["onClick","title"],r={class:"file-upload-list-cover"},N={class:"file-upload-btn"},M={class:"file-upload-list-cover"},B={class:"file-upload-btn"};const b=g(E,[["render",function(e,i,t,A,o,s){const a=l.resolveComponent("Image"),I=l.resolveComponent("Icon"),d=l.resolveComponent("Space"),g=l.resolveComponent("Upload"),n=l.resolveComponent("Card"),c=l.resolveComponent("Spin"),p=l.resolveComponent("filePreview");return l.openBlock(),l.createElementBlock("div",{class:"uploadFile",style:l.normalizeStyle(e.single?{padding:"0px"}:{padding:"8px"})},[e.single?(l.openBlock(),l.createElementBlock(l.Fragment,{key:1},[e.getFirstFile(e.groups[0])?(l.openBlock(),l.createElementBlock("div",{key:0,class:"file-upload-list-content",onClick:i[2]||(i[2]=i=>e.doView(e.getFirstFile(e.groups[0]))),style:{width:"100%",height:"100%"}},[l.createVNode(a,{src:e.getThumbnailUrl(e.getFirstFile(e.groups[0])),fit:"fill",width:"100%",height:"100%"},null,8,["src"]),l.createElementVNode("div",M,[l.createVNode(d,null,{default:l.withCtx((()=>[l.createVNode(I,{type:"md-download",onClick:i[0]||(i[0]=l.withModifiers((i=>e.doDwonload(e.getFirstFile(e.groups[0]))),["stop"])),title:"下载"}),e.readonly?l.createCommentVNode("",!0):(l.openBlock(),l.createBlock(I,{key:0,type:"md-trash",onClick:i[1]||(i[1]=l.withModifiers((i=>e.doRemove(e.getFirstFile(e.groups[0]))),["stop"])),title:"删除"}))])),_:1})])])):l.createCommentVNode("",!0),e.readonly||e.getSingle(e.groups[0])?l.createCommentVNode("",!0):(l.openBlock(),l.createBlock(n,{key:1,"dis-hover":"",style:{"margin-bottom":"8px"}},{default:l.withCtx((()=>[l.createVNode(g,{ref:"uploadRef",type:"drag",name:"FormFile",multiple:e.multiple,"show-upload-list":!1,format:e.format,"max-size":e.maxSize,action:e.action,headers:e.headers,data:e.uploadFilePos[e.groups[0]],"on-success":e.doSuccess,"on-format-error":e.doFormatError,"on-exceeded-size":e.doMaxSize,"before-upload":e.doBeforeUpload,style:{display:"inline-block",width:"78px"}},{default:l.withCtx((()=>[l.createElementVNode("div",B,[l.createVNode(I,{type:"ios-camera",size:"20"})])])),_:1},8,["multiple","format","max-size","action","headers","data","on-success","on-format-error","on-exceeded-size","before-upload"])])),_:1}))],64)):(l.openBlock(!0),l.createElementBlock(l.Fragment,{key:0},l.renderList(e.groups,(i=>(l.openBlock(),l.createBlock(n,{"dis-hover":"",style:{"margin-bottom":"8px"}},l.createSlots({default:l.withCtx((()=>[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.getGroupFiles(i),((i,t)=>(l.openBlock(),l.createElementBlock("div",{class:l.normalizeClass(e.isImage(i)?"file-upload-list file-upload-list-bs":"file-upload-list")},[l.createElementVNode("div",{class:"file-upload-list-content",onClick:l=>e.doView(i),title:i.FileName},[l.createVNode(a,{src:e.getThumbnailUrl(i),fit:"cover",width:"100%",height:"100%"},null,8,["src"]),l.createElementVNode("div",r,[l.createVNode(d,null,{default:l.withCtx((()=>[l.createVNode(I,{type:"md-download",onClick:l.withModifiers((l=>e.doDwonload(i)),["stop"]),title:"下载"},null,8,["onClick"]),e.readonly?l.createCommentVNode("",!0):(l.openBlock(),l.createBlock(I,{key:0,type:"md-trash",onClick:l.withModifiers((l=>e.doRemove(i)),["stop"]),title:"删除"},null,8,["onClick"]))])),_:2},1024)])],8,h)],2)))),256)),e.readonly?l.createCommentVNode("",!0):(l.openBlock(),l.createBlock(g,{key:0,ref_for:!0,ref:"uploadRef",type:"drag",name:"FormFile",multiple:e.multiple,"show-upload-list":!1,format:e.format,"max-size":e.maxSize,action:e.action,headers:e.headers,data:e.uploadFilePos[i],"on-success":e.doSuccess,"on-format-error":e.doFormatError,"on-exceeded-size":e.doMaxSize,"before-upload":e.doBeforeUpload,style:{display:"inline-block",width:"78px"}},{default:l.withCtx((()=>[l.createElementVNode("div",N,[l.createVNode(I,{type:"ios-camera",size:"20"})])])),_:2},1032,["multiple","format","max-size","action","headers","data","on-success","on-format-error","on-exceeded-size","before-upload"]))])),_:2},["默认"!=i?{name:"title",fn:l.withCtx((()=>[l.createTextVNode(l.toDisplayString(i),1)])),key:"0"}:void 0]),1024)))),256)),e.uploading?(l.openBlock(),l.createBlock(c,{key:2,fix:""})):l.createCommentVNode("",!0),l.createVNode(p,{modelValue:e.previewVisible,"onUpdate:modelValue":i[3]||(i[3]=i=>e.previewVisible=i),"preview-list":e.previewList,"preview-index":e.previewIndex,"file-info":e.previewFileInfo},null,8,["modelValue","preview-list","preview-index","file-info"])],4)}],["__scopeId","data-v-8a539c5e"]]);e.FilePreview=p,e.UploadFile=b,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .ifr-container[data-v-071f536d]{height:calc(100% + 32px);margin:-16px}.ifr-content[data-v-071f536d]{height:100%;width:100%;border:0px;padding:0;margin:0}.uploadFile[data-v-8a539c5e]{display:inline-block;width:auto}.uploadFile[data-v-8a539c5e] .ivu-upload-drag{border:1px dashed #dcdee2;border-radius:2px}.uploadFile[data-v-8a539c5e] .ivu-upload-drag:hover{border:1px dashed #2d8cf0;border-radius:2px;color:#2d8cf0}.uploadFile .file-upload-btn[data-v-8a539c5e]{width:78px;height:78px;line-height:78px;text-align:center}.uploadFile .file-upload-list-bs[data-v-8a539c5e]{box-shadow:0 1px 1px #0003}.uploadFile .file-upload-list[data-v-8a539c5e]{display:inline-block;width:80px;height:80px;text-align:center;line-height:80px;overflow:hidden;background:#fff;margin-right:12px;border-radius:4px}.uploadFile .file-upload-list-content[data-v-8a539c5e]{position:relative;width:100%;height:100%;cursor:pointer}.uploadFile img[data-v-8a539c5e]{width:100%;height:100%}.uploadFile .file-upload-list-cover[data-v-8a539c5e]{display:none;background:rgba(0,0,0,.7);position:absolute;top:0;left:0;right:0;line-height:18px}.uploadFile .file-upload-list-content:hover .file-upload-list-cover[data-v-8a539c5e]{display:block}.uploadFile .file-upload-list-cover i[data-v-8a539c5e]{color:#ccc;font-size:18px;cursor:pointer}.uploadFile .file-upload-list-cover i[data-v-8a539c5e]:hover{color:#fff}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@newview/file-ui",
3
+ "version": "0.0.1",
4
+ "author": "newview",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/file-ui.umd.cjs",
8
+ "module": "./dist/file-ui.js",
9
+ "typings": "types/index.d.ts",
10
+ "files": [
11
+ "dist",
12
+ "types",
13
+ "package.json",
14
+ "tsconfig.json",
15
+ "tsconfig.node.json",
16
+ "vite.config.ts"
17
+ ],
18
+ "exports": {
19
+ "./dist/style.css": "./dist/style.css",
20
+ "./css": "./dist/style.css",
21
+ ".": {
22
+ "import": "./dist/file-ui.js",
23
+ "require": "./dist/file-ui.umd.cjs"
24
+ }
25
+ },
26
+ "scripts": {
27
+ "dev": "vite",
28
+ "build": "run-p type-check build-only",
29
+ "preview": "vite preview",
30
+ "build-only": "vite build --watch",
31
+ "type-check": "vue-tsc --noEmit",
32
+ "p": "npm publish --access public"
33
+ },
34
+ "keywords": [],
35
+ "dependencies": {
36
+ "@newview/base-vue": "^0.0.3",
37
+ "@newview/fileservice-api": "^0.0.1",
38
+ "@newview/infrastructure": "^0.0.4",
39
+ "@newview/tools": "^0.0.1",
40
+ "@newview/ui": "^0.0.3",
41
+ "sass": "^1.65.1",
42
+ "view-ui-plus": "^1.3.14",
43
+ "vue": "^3.3.4",
44
+ "vue-router": "^4.2.4"
45
+ },
46
+ "devDependencies": {
47
+ "@types/file-saver": "^2.0.5",
48
+ "@types/node": "^20.5.0",
49
+ "@vitejs/plugin-vue": "^4.2.3",
50
+ "file-saver": "^2.0.5",
51
+ "npm-run-all": "^4.1.5",
52
+ "terser": "^5.19.2",
53
+ "typescript": "^4.9.5",
54
+ "vite": "^4.4.9",
55
+ "vue-tsc": "1.0.11"
56
+ }
57
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "Node",
7
+ "strict": true,
8
+ "jsx": "preserve",
9
+ "resolveJsonModule": true,
10
+ "isolatedModules": true,
11
+ "esModuleInterop": true,
12
+ "lib": ["ESNext", "DOM"],
13
+ "skipLibCheck": true,
14
+ "noEmit": true,
15
+ "noImplicitAny": false
16
+ },
17
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
18
+ "references": [{ "path": "./tsconfig.node.json" }]
19
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "Node",
6
+ "allowSyntheticDefaultImports": true
7
+ },
8
+ "include": ["vite.config.ts"]
9
+ }
@@ -0,0 +1,5 @@
1
+ import type { DefineComponent } from 'vue';
2
+
3
+ export declare const FilePreview: DefineComponent<{
4
+
5
+ }>
@@ -0,0 +1,9 @@
1
+ import { BaseInstance } from "@newview/base-vue";
2
+
3
+ export declare class FilePreviewInstance extends BaseInstance {
4
+ /**
5
+ * 关闭预览
6
+ * @param value
7
+ */
8
+ doClose(value: boolean): void;
9
+ }
@@ -0,0 +1,5 @@
1
+ import type { DefineComponent } from 'vue';
2
+
3
+ export declare const UploadFile: DefineComponent<{
4
+
5
+ }>
@@ -0,0 +1,5 @@
1
+ import { BaseInstance } from "@newview/base-vue";
2
+
3
+ export declare class UploadFileInstance extends BaseInstance {
4
+
5
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./FilePreviewInstance"
2
+ export * from "./UploadFileInstance"
3
+
4
+ export * from "./FilePreview"
5
+ export * from "./UploadFile"
package/vite.config.ts ADDED
@@ -0,0 +1,50 @@
1
+ import { defineConfig } from 'vite'
2
+ import vue from '@vitejs/plugin-vue'
3
+ import path from 'path';
4
+
5
+ // https://vitejs.dev/config/
6
+ export default defineConfig({
7
+ plugins: [vue()],
8
+ build: {
9
+ lib: {
10
+ entry: path.resolve(__dirname, './src/index.ts'),
11
+ name: 'fileui',
12
+ fileName: 'file-ui'
13
+ },
14
+ rollupOptions: {
15
+ // 确保外部化处理那些你不想打包进库的依赖
16
+ external: [
17
+ "@newview/base-vue",
18
+ "@newview/fileservice-api",
19
+ "@newview/infrastructure",
20
+ "@newview/tools",
21
+ "@newview/ui",
22
+ "sass",
23
+ "view-ui-plus",
24
+ "vue",
25
+ "vue-router"
26
+ ],
27
+ output: {
28
+ globals: {
29
+ vue: "Vue",
30
+ 'vue-router': 'VueRouter',
31
+ }
32
+ }
33
+ },
34
+ minify: 'terser',
35
+ terserOptions: { // 在打包代码时移除 console、debugger 和 注释
36
+ compress: {
37
+ /* (default: false) -- Pass true to discard calls to console.* functions.
38
+ If you wish to drop a specific function call such as console.info and/or
39
+ retain side effects from function arguments after dropping the function
40
+ call then use pure_funcs instead
41
+ */
42
+ drop_console: true, // 生产环境时移除console
43
+ drop_debugger: true
44
+ },
45
+ format: {
46
+ comments: false // 删除注释comments
47
+ }
48
+ }
49
+ }
50
+ });