@newview/file-ui 0.0.0

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,483 @@
1
+ /**
2
+ * 功能名称:上传文件
3
+ * 创 建 人:弋强
4
+ * 日 期:2023/02/14 09:43:04
5
+ */
6
+ import { BaseInstance } from '@newview/base-vue';
7
+ import { defineComponent, ref, reactive, computed, onMounted, onUnmounted, Ref, PropType, nextTick, watch, ExtractPropTypes, SetupContext } from 'vue'
8
+ import { GridOptions, GridInstance, GloablValueType } from '@newview/ui'
9
+ import { QueryWrapper } from '@newview/infrastructure'
10
+ import { UploadApi, FileInfoApi, FileApi } from "@newview/fileservice-api";
11
+ import filePreview from "./FilePreview.vue";
12
+
13
+ // 一、Emits 类型定义
14
+ // type EmitsType = ('clearRadioRow' | 'change' | 'delete' | 'addchild')[];
15
+ // success 文件上传成功 返回值:{token: '', fileId: 0} // token: Token值 fileId: 文件Id
16
+ type EmitsType = ('success' | 'returnFileList')[];
17
+
18
+
19
+ // 二、Props 定义
20
+ const propDefine = {
21
+ linkParam: {
22
+ // 带入的参数
23
+ type: String,
24
+ default: ''
25
+ },
26
+ operates: {
27
+ // 按钮权限码
28
+ type: String,
29
+ default: '-'
30
+ },
31
+ token: {
32
+ // Token
33
+ type: String,
34
+ default: ''
35
+ },
36
+ catalog: {
37
+ // 目录
38
+ type: String,
39
+ default: 'root'
40
+ },
41
+ groups: {
42
+ // 文件分组列表
43
+ type: Array<string>,
44
+ default: () => ['默认']
45
+ },
46
+ extraInfo: {
47
+ // 扩展信息
48
+ type: String,
49
+ default: ''
50
+ },
51
+ isCompress: {
52
+ // 是否压缩
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ format: {
57
+ // 允许上传格式
58
+ type: Array<string>,
59
+ default: () => []
60
+ },
61
+ maxSize: {
62
+ // 文件大小限制,单位 kb
63
+ type: Number,
64
+ default: 0
65
+ },
66
+ multiple: {
67
+ // 是否支持多选文件
68
+ type: Boolean,
69
+ default: false
70
+ },
71
+ readonly: {
72
+ // 是否只读
73
+ type: Boolean,
74
+ default: false
75
+ },
76
+ single: {
77
+ // 单文件
78
+ type: Boolean,
79
+ default: false
80
+ },
81
+ nullMsg:{
82
+ //只读状态且无附件信息下的显示
83
+ type: String,
84
+ default: '暂无附件'
85
+ }
86
+ };
87
+
88
+
89
+ // 三、组件信息定义
90
+ export default defineComponent({
91
+ name: 'UploadFile',
92
+ components: { filePreview },
93
+ emits: ['success', 'returnFileList'], // 例如: ['clearRadioRow', 'change', 'delete', 'addchild']
94
+ props: propDefine,
95
+ setup(props, ctx) {
96
+ return new UploadFileInstance(props, ctx);
97
+ }
98
+ })
99
+
100
+
101
+ // 四、组件实例, 具体业务
102
+ export class UploadFileInstance extends BaseInstance {
103
+ private props: ExtractPropTypes<typeof propDefine>;
104
+ private ctx: SetupContext<EmitsType>;
105
+ // API实例化
106
+ private uploadApi: UploadApi = new UploadApi();
107
+ private fileInfoApi: FileInfoApi = new FileInfoApi();
108
+ private fileApi: FileApi = new FileApi();
109
+
110
+ // 全局属性
111
+
112
+
113
+ constructor(props: ExtractPropTypes<typeof propDefine>, ctx: SetupContext<EmitsType>) {
114
+ super()
115
+ this.props = props;
116
+ this.ctx = ctx;
117
+
118
+ this.useUploadFile(); // 初始化文件上传附件
119
+ }
120
+
121
+ //#region 业务逻辑 - 文件上传
122
+
123
+ // 私有属性 | private
124
+ private currentToken: string = ""; // 当前Token
125
+
126
+
127
+ // 响应属性 | ref、reactive、computed
128
+ fileList = ref<any[]>([]);
129
+
130
+ uploading = ref(false);
131
+ uploadFilePos = reactive<any>({}); // 文件上传参数
132
+ action = ref(''); // 请求 Url
133
+ headers = ref({
134
+ Authorization: ''
135
+ });
136
+
137
+
138
+ // 私有方法 | private 方法名() {}
139
+ /**
140
+ * 初始化文件上传附件
141
+ */
142
+ private async useUploadFile() {
143
+ watch(() => this.props.token, (newToken, oldToken) => {
144
+ this.setCurrentToken();
145
+ this.setUploadFilePos(); // 设置文件上传参数
146
+ })
147
+
148
+ this.setCurrentToken(); // 设置当前Token
149
+ this.setUploadFilePos(); // 设置文件上传参数
150
+ this.headers.value.Authorization = `Bearer ${this.storageInfo.getToken()}`;
151
+ this.action.value = this.uploadApi.getUploadFileUrl();
152
+ }
153
+
154
+ /**
155
+ * 设置当前Token
156
+ */
157
+ private setCurrentToken() {
158
+ this.currentToken = this.utilities.getValueNotNull(this.props.token, this.utilities.getUniqueCode().replaceAll('-', ''));
159
+ this.loadFileList(); // 加载文件列表
160
+ }
161
+
162
+ /**
163
+ * 设置文件上传参数
164
+ */
165
+ private setUploadFilePos() {
166
+ for (const groupName of this.props.groups) {
167
+ const uploadFilePo = this.getUploadFilePo(groupName);
168
+ this.uploadFilePos[groupName] = uploadFilePo;
169
+ }
170
+ }
171
+
172
+ /**
173
+ * 获取文件上传参数
174
+ * @param groupName
175
+ */
176
+ private getUploadFilePo(groupName: string) {
177
+ return this.uploadApi.getBaseFilePo(this.currentToken, this.props.catalog, groupName, this.props.extraInfo, this.props.isCompress);
178
+ }
179
+
180
+ /**
181
+ * 获取文件列表
182
+ * @returns
183
+ */
184
+ private async loadFileList() {
185
+ this.uploading.value = true;
186
+ const apiResult = await this.fileInfoApi.getEntities(QueryWrapper.create().eq("Token", this.currentToken));
187
+ this.fileList.value = this.utilities.parseApiResult(apiResult);
188
+ this.uploading.value = false;
189
+ this.ctx.emit('returnFileList', { token: this.currentToken, list: this.fileList.value })
190
+ // 预览列表
191
+ this.setPreviewList();
192
+ }
193
+
194
+
195
+ // 响应式方法 | xxx = () => {}
196
+ /**
197
+ * 上传成功
198
+ * @param res
199
+ * @param file
200
+ * @param fileList
201
+ * @returns
202
+ */
203
+ doSuccess = (res: any, file: any, fileList: any) => {
204
+ const result = this.utilities.parseApiResult(res);
205
+ this.uploading.value = false;
206
+
207
+ if (result.Code != '0') {
208
+ this.message.error(result.Msg);
209
+ return;
210
+ }
211
+
212
+ this.message.success('上传成功');
213
+ this.ctx.emit('success', { token: result.Token, fileId: result.FileId })
214
+ this.loadFileList();
215
+ }
216
+
217
+ /**
218
+ * 文件格式错误
219
+ */
220
+ doFormatError = () => {
221
+ this.message.warning("当前上传的文件格式不正确,请重新上传")
222
+ this.uploading.value = false;
223
+ }
224
+
225
+ /**
226
+ * 文件超过上传限制
227
+ */
228
+ doMaxSize = () => {
229
+ if (this.props.maxSize / 1024 >= 1) {
230
+ this.message.warning(
231
+ "文件太大超出上传限制,文件大小不得大于" +
232
+ (this.props.maxSize / 1024).toFixed(1) +
233
+ "M"
234
+ );
235
+ } else {
236
+ this.message.warning(
237
+ "文件太大超出上传限制,文件大小不得大于" +
238
+ this.props.maxSize + "KB"
239
+ );
240
+ }
241
+ this.uploading.value = false;
242
+ }
243
+
244
+ /**
245
+ * 上传之前
246
+ */
247
+ doBeforeUpload = () => {
248
+ this.message.info("文件上传中,请稍等");
249
+ this.uploading.value = true;
250
+ }
251
+
252
+ /**
253
+ * 移除
254
+ * @param fileInfo
255
+ */
256
+ doRemove = (fileInfo: any) => {
257
+ this.modal.confirm({
258
+ title: '提示',
259
+ content: `数据删除后不可恢复,<br/>确定要删除 ${fileInfo.FileName} 文件吗?`,
260
+ onOk: async () => {
261
+ this.uploading.value = true;
262
+ const apiResult = await this.fileApi.deleteFile(fileInfo.Token, fileInfo.Id);
263
+ const result = this.utilities.parseApiResult(apiResult);
264
+
265
+ if (result <= 0) {
266
+ this.message.warning('删除失败,请稍后重试!');
267
+ this.uploading.value = false;
268
+ } else {
269
+ this.loadFileList();
270
+ this.message.success('删除成功');
271
+ this.uploading.value = false;
272
+ }
273
+ }
274
+ });
275
+ }
276
+
277
+ /**
278
+ * 下载文件
279
+ * @param fileInfo
280
+ */
281
+ doDwonload = (fileInfo: any) => {
282
+ const downloadUrl = this.fileApi.getFileUrl(fileInfo.Token, fileInfo.Id)
283
+ window.open(downloadUrl);
284
+ }
285
+
286
+ /**
287
+ * 获取当前组文件
288
+ */
289
+ getGroupFiles = (groupName: string) => {
290
+ if (groupName == '默认') {
291
+ return this.fileList.value;
292
+ } else {
293
+ return this.fileList.value.filter(item => item.GroupName == groupName);
294
+ }
295
+ }
296
+
297
+ /**
298
+ * 获取单文件
299
+ * @param groupName
300
+ */
301
+ getSingle = (groupName: string) => {
302
+ const groupFiles = this.getGroupFiles(groupName);
303
+ return this.props.single && groupFiles.length > 0;
304
+ }
305
+
306
+ /**
307
+ * 获取第一个文件
308
+ * @param groupName
309
+ * @returns
310
+ */
311
+ getFirstFile = (groupName: string) => {
312
+ const groupFiles = this.getGroupFiles(groupName);
313
+ if (groupFiles.length == 0) {
314
+ return undefined;
315
+ } else {
316
+ return groupFiles[0];
317
+ }
318
+ }
319
+
320
+ //#endregion 业务逻辑 - 文件上传 END
321
+
322
+
323
+ //#region 业务逻辑 文件预览
324
+
325
+ // 私有属性 | private
326
+
327
+
328
+ // 响应属性 | ref、reactive、computed、watch
329
+ previewVisible = ref(false);
330
+ previewList = ref<string[]>([]);
331
+ previewIndex = ref<number>(0);
332
+ previewFileInfo = ref<any>({});
333
+
334
+ // 私有方法 | private 方法名() {}
335
+ /**
336
+ * 设置预览列表
337
+ */
338
+ private setPreviewList() {
339
+ let index = 0;
340
+ this.previewList.value = []
341
+ for (const fileInfo of this.fileList.value) {
342
+ if (this.isImage(fileInfo)) {
343
+ fileInfo.PreviewIndex = index;
344
+ this.previewList.value.push(this.getImgUrl(fileInfo));
345
+ index++;
346
+ }
347
+ }
348
+ }
349
+
350
+
351
+ // 响应式方法 | xxx = () => {}
352
+
353
+ /**
354
+ * 是否为图片
355
+ * @param fileInfo
356
+ * @returns
357
+ */
358
+ isImage = (fileInfo: any) => {
359
+ const ext = fileInfo.FileExt;
360
+ return ext == 'jpg' || ext == 'png' || ext == 'jpeg' || ext == "gif" || ext == "svg";
361
+ }
362
+
363
+ /**
364
+ * 获取文件预览Url
365
+ * @param fileInfo 文件信息
366
+ */
367
+ getImgUrl = (fileInfo: any) => {
368
+ return this.fileApi.getFileUrl(fileInfo.Token, fileInfo.Id);
369
+ }
370
+
371
+ /**
372
+ * 获取缩略图Url
373
+ * @param fileInfo
374
+ * @returns
375
+ */
376
+ getThumbnailUrl = (fileInfo: any) => {
377
+ return this.isImage(fileInfo) ? this.getImgUrl(fileInfo) : this.getFileIcon(fileInfo.FileExt);
378
+ }
379
+
380
+ /**
381
+ * 获取文件图片
382
+ * @param fileType
383
+ * @returns
384
+ */
385
+ getFileIcon = (fileType: any) => {
386
+ const fileicons = {
387
+ DOCX: {
388
+ 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",
389
+ },
390
+ XLSX: {
391
+ 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",
392
+ },
393
+ PPTX: {
394
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM5MkNCQTUzNzE5RTExRTdBMzlEQzM4NjVBNUE0QTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM5MkNCQTU0NzE5RTExRTdBMzlEQzM4NjVBNUE0QTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzkyQ0JBNTE3MTlFMTFFN0EzOURDMzg2NUE1QTRBNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzkyQ0JBNTI3MTlFMTFFN0EzOURDMzg2NUE1QTRBNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4VZwdsAAAF20lEQVR42uyc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",
395
+ },
396
+ PDF: {
397
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI2NTUyNzkzNzE5RTExRTdBQUJEQjIxM0Q0NDhBMzlFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI2NTUyNzk0NzE5RTExRTdBQUJEQjIxM0Q0NDhBMzlFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjY1NTI3OTE3MTlFMTFFN0FBQkRCMjEzRDQ0OEEzOUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjY1NTI3OTI3MTlFMTFFN0FBQkRCMjEzRDQ0OEEzOUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4PCmoWAAAHzUlEQVR42uyb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",
398
+ },
399
+ PNG: {
400
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ2MEYwMzIxNzE5RTExRTc5Nzk1RTY2REQxNzA5MUM2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ2MEYwMzIyNzE5RTExRTc5Nzk1RTY2REQxNzA5MUM2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDYwRjAzMUY3MTlFMTFFNzk3OTVFNjZERDE3MDkxQzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDYwRjAzMjA3MTlFMTFFNzk3OTVFNjZERDE3MDkxQzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7MA++rAAAG1ElEQVR42uyc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",
401
+ },
402
+ RAR: {
403
+ 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==",
404
+ },
405
+ DWG: {
406
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjMzRDdCMUUxNzE5RTExRTc5RDY3OTkxN0RFOEQyQTUwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjMzRDdCMUUyNzE5RTExRTc5RDY3OTkxN0RFOEQyQTUwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MzNEN0IxREY3MTlFMTFFNzlENjc5OTE3REU4RDJBNTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MzNEN0IxRTA3MTlFMTFFNzlENjc5OTE3REU4RDJBNTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz51XZ5UAAAGNUlEQVR42uyc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",
407
+ },
408
+ MOV: {
409
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCODZGMjg0NzE5RTExRTc4REI0OTBDODFEQkVCQUU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCODZGMjg1NzE5RTExRTc4REI0OTBDODFEQkVCQUU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI4NkYyODI3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI4NkYyODM3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4BPIErAAALQUlEQVR42uxc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",
410
+ },
411
+ MP3: {
412
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE4NUIxMTQyNzE5RTExRTc5MkREQTRGMDA4OTFBOEI4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE4NUIxMTQzNzE5RTExRTc5MkREQTRGMDA4OTFBOEI4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTg1QjExNDA3MTlFMTFFNzkyRERBNEYwMDg5MUE4QjgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTg1QjExNDE3MTlFMTFFNzkyRERBNEYwMDg5MUE4QjgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz69naflAAAK3klEQVR42uyb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",
413
+ },
414
+ MP4: {
415
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCODZGMjg0NzE5RTExRTc4REI0OTBDODFEQkVCQUU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCODZGMjg1NzE5RTExRTc4REI0OTBDODFEQkVCQUU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI4NkYyODI3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI4NkYyODM3MTlFMTFFNzhEQjQ5MEM4MURCRUJBRTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4BPIErAAALQUlEQVR42uxcCVCU5xl+uXaXXVZYWK7VFVQEvG+iRK2p0YiOSUWjSXO1TtVOWk2a1iQePWKtmYnOtJPDGDsd00SNNtWOpq25zFiNWEGNqICKqIjcCHLsArvL0u/59uiy7MXy77qg78w3+/N///U9/3s87/t9P0GdnZ1kkaCgILKV8vLyYPbzJ9bmsianPiJisdjI2ktyufxgT8+1xQMS6ub4j1h7mrVg6kOCFy2VSj9tbm5+0huQbMXpwJn2xLKfx/oaONaBMTGDlO0TgJhMY01JfViEAMkpQK2trdHUD8QGpNmCAqTVakXUT8QM0hfegBTswpsHUT8ShlGINyAF030k3oDUJcyn/GRflGW7qlEnlUQYAnawotBg3noB0mOMAhx1SxlsidHwFfs7+4o2/GjWYPrxI0kO+yQSCUVHu44xRqOxg/nZbiDZE8X7ysS8Mbd+CRDTDsFA6pcA6XQ6MhgMgoDUb02soaGBOjo6eg1SaG8eYuW8EZQ1WU2//jiPLpU2dOv//XOTaXRSNG09kE85RdV+BUiv11NNTQ2JRCJqaWnxBKwQJrsjIiISBQPo4ZHxDAAFZY5IcAgQwEF/pOzekHJEpPb2dr4NsNyBJBaLpUlJScJp0JodOZTJQDpypiygzS0sLIwSExOpsrLSJUjMb4l6ZGJPzRxG6lgZ1w4LCDCrSFkY7TxymZaxfmyjv6y2hSKlIm5W6tgItq++2/XQvzIrnWtck1bHr7nveEk3k4Xgejs/L3Komb4EqcdOGg8NoCAY+NrFYylrkpoa2QAxGPTDjCAfvjLLOkCLedkK+nE8wBtgBtNyPLZx7UhpGP8b+3G8/TWEAIk5ZWEAwtsFEKPMDwlgIEfOljkEEoOBM160+UvebN8+QEY/rrntwAVa80FOl/34xb0Wbf6Kn7uVHQONW7t4nE/MzVOQ3PqgnMJq/jbRLG/Tkc+BqUEcmZZJ+2RWQCwaCYEmQTNNZqXhIPHtuhZrv+B5HItsFnNzRyrdAgRtATiZI+K5Q4aGuPIL7gYEcG01sFGjuzfJrocgudUzDAgOEyBB5U8WOuYzlv0WvwR/Yus/LFoHkCPNIKqVJs0B6LgHjsd50DBcw5m2Cg2SK3PzyBBPsgFgUFD//TZRp4spsmPgX0x+Y2w3boRt+BWLQ357VSaPaFbKwHwSrgFgTJFQxqMYmq81KSEhwSlIHpc7LAC52w9/olbKrMzZ0XkwV4R5R6Zqf7435Q5vBISytra2LSMjI9wrougIHEf7YSpors5zNXj78/0ljEWTQqEw3DfJqjdiP7P8ACAhmPQDgB6I50SxraX+WieZ5sPk4WJ58sD4uEB98OgIkf8Bqik9/zsyregINsjDbx/dnPXAxGz/0J3auYf9PM+a8YFxOeFBAEk0bSVC3hZ/PIDR2EnFVRoqrmyh23daqanVQB1sHyYFFSwBVivDaeQgOQ2MDg8MgCwg/fTdvaPZ5uu+uvHFW030r3NVdLzoDmna3M9AxEeJac6YOFowMYFU0RL/cSNnS/Dy8/NXKZXKHULfsKi8mXZ8eYPO32zkf8vEITRpqILGDB7AtQXONyQ4iHQGI9U2tdONGi19d+MuBxSaFcz65o6No5WPJlOMXFhHrdVqW1JSUuRepRq9FT0b8Ptf3aCDpysI7yRNFUHLMgfRzBExFOZ0jl1O3xtpyrsatXr6/Hw1/e1UOf89XlRHP583lGuU301MaLmr0dOruy/RlYoW/tZXs4E9Mjq2R9dAKRaAZmeoaO+3t+njE2X01qFiKihrpl8tTOGa1ScBqmvS0epd+VRR30aThynoN0vSrHVnbwTa9gLTqIfTY2jjvkLuxxo0Otr81Ehumn2KSWvbO2gt0xyAM3dcHL317KhegWMrKQkyen/FeBoaL6OcK/W09XBx30s18NDXqzXMzyhp3Q9SBX/DoAF/fGEMj2pHvqumQ3mVfQegoxdr6ZtLtTRYKaUN2aldfAR8EXzS8++e5SDCATsShP82nes5rCgG0h+YeYE3vffFdapsaAt8gNr1RtrOHhasYePiNJKIQqx91Xfb6aVdF+h0cQOV1mrpn2er6PU9BWS0q2XuYBFv/punKIu1T5hTdiUwsxWzk/l9AVLAAwTHWdeso6wJ8Tyc28rXF2uo1U4rCm83c1O05oSN7VZQwLR3Hr3pVpMWT1XRoJhwOsGI540aTWADBK4D7Xl2hrp7auGk6t1h06HvMHZLRzqMrlcHwr89M11tvn9l4AIE/1LGciqwY0f5E4hhaEhXZw0/NTxBZv0b5yHqWWRp5kCSSdwzktljYknKmDl8nztA7xkPOl1smlmdNdLxVwxJsVJ684ejeLpRzUxplFpOv1jQnehtyE6j52aqKTQ42OPcSxwWTNNSo3mAQEozWj0g8AACs4VMGBLpOHvvNDnxmQxASx6I1MEdi/4+Y95RsjCnZFQ5wJSXTRwSxQFC7haQAJXWafmbtDWvEuaAb7GINWtULEsPrnLO0lPZw1KLD1ZNIKVNggpThiZGMPNbtyjVGtEgt9hzBKSJIXqpFBKynUHZ+EkhVTB+8lu27Q04lut+dqaSTxY2txror/+5Rf/IrSBDRyfNGx9vPS4xSmzVqoADCNEGWbvUhvdAGltN9Z7y+t6RuCrGoQ78t4I+PFbKC2uOJFwcauViAQeQxdEajL5ZsH+iqM6tv+owU4QggbIawcM8CmAtdhVCkTms9zYV07S7XzrXbL53hCQ0MH1QQpSEM1k98w1hZmB+Nm8oXSprouGJET7RLIno/+/ZYsZ4joDUoOQ4KQ/lVyuarfvmjI3jXMebr3Psw73Dt2yzdAVpC2QIe46ABAg8BJJXcldwTQEJfO2JVKd8CHKmpMElD7vnAE1lg4Cv+fpCTbe+3moQzp8/MZ52r55MizJU3dg3ivz5pY08dRFqmkhwgEDkUFoFicu91nWBFNRe1gvniZkPiDw8lF5eMIz+zIijZZ8lSQY5nzdeuBlzn2Tzy1hyCfnLN6Vdsvdwxo82LU23pgWeCpz9k9MGcl9mKyi7vrN8HC2ZqqI7jEgezK3ktacnpiQKNhafFO2hQROYL8J8Ftiv7QOj7++vPMRCtuefe4qZaTmbGgLfSWTM/Y1PL/Oa0XLGtIUK8T7TIAhMAINCZRGTf/aDwiA8bWFufBfSF5Q4UDB7evqgwK8o8nAfK6UX5w6hNkb5X9t9iTtQX8jZ63dp22fF3AzfWDqi14HAbwBBsh9ScfNC3WfNrguMxLUKev1TV+tp3d4CXhxbn53GfZLQ4vMVZi/PH8ZDM+bGVu08Tyev3BEkKf6IZfPrGThIjtc+PpzXi3whPp9ZBVd59fFUSoiU8Cx8/d5CXm1cOSfZK66CRQ/vHCmha1Ua7p82LE6jzFTf/ZsRv8zNwyljunhcciRtO1xMxwrr6PjlO7w+jVoO2DeKbM4E82bfsuP/fa6a53SQjBQF/XJhimA5V48BMhqNgn9lMp4BtOvFiXSIhf79OeV0rKCON0SpVJbIDlaG8zQCYV3LQja4zfVqLd2s1ZBllQ4WUz0zQ03T02P88W6dA1RWVnZRoVDow/CBlYACMJZMHchThTyWNwGgc4wvFTDNKDBrh732DYuX8VmSR8fGciB9JTp8T25/f2cLqKZMmRK5ffv2KyqVKt4fbwplVKQnqCW1m6uSyN7VjNu4Mj+hhOHQeY7JwoULJ3saxTSbNm06UFFRUa3HN9Y+FuRXMB/4lhnMfCYNjeJh2x/gaLXatoKCgpItW7Yc9liDzFq0HP4wPT09irUYZm39buG5RqPRM8WpqaqqQma9Pzc3N6cnAGHHMvhGpETUfwWfFx3Ny8vLsf/vL/8TYABlSdZVq1hITwAAAABJRU5ErkJggg==",
416
+ },
417
+ HTML: {
418
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzMjkzMkRFNzE5RTExRTdBMkJFODdBOUUwQjFGRTUyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAzMjkzMkRGNzE5RTExRTdBMkJFODdBOUUwQjFGRTUyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDMyOTMyREM3MTlFMTFFN0EyQkU4N0E5RTBCMUZFNTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDMyOTMyREQ3MTlFMTFFN0EyQkU4N0E5RTBCMUZFNTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6xFdZcAAAGTElEQVR42uycW0wTWRjHv5m2zvbKpWuXjSKbJsZNuLhoui4kGC8k6oMvIsYYX3azkSxqor7gPmx23xayiXEFCSXrrg+SECEkPvFiooagWQjGJWQNEA2S8KALBdpSaDu0e74pAwV7mZlO6W3+ycnpdE5P5/zmu5wzMy0VDAZBUXRRCiCRgCiK+qjRzMzM16T6iZRCUlRpPSCKoo1GYzMpfWI/G8lY4gIicM6Sqp2UnZlwxmmaBovFEvB4PPViIUkFNEqq8kxxCQRUVFQEASKxkCIBomN9gMD51OfzfZGJsYOAonU6XY/L5TqTUD+xdhI4RkJVnakBVg5IMQGxLEtlehZKFBKdC6k6EUg5AYiHpNfre91u93cJzoMAgzIXmA8f9nze0OD8i2E0TLoNuLTUDyZTIGoWi5GpgiS7fW8wGP6UmObhF1L9nO4W0ds7B1VVXtGAYkESneYzUUKWTmSuR5GY9IcQd8tKQKurq7JBysogTbKV0HVbXEiCJoEFBQC1tQAjIwBv38o/IKsV4OBB+fon8YWzJJK1Ii6+t3LSaDSdDocDI/59SYAQzsOHAC0tADdvxh6olAFeugTQ1BS/fzFaXl7mitPphLm5uXjNVWSB+21BQcH9pLgYAnQ4QgNNN5lMJjCbzXHbLS0tmWSJQehu9fUhl+C38TXWaEG4D4U1guMB8q+37ksXSH6/f4fkGBTuQm/ehGCgGhoA5ucBmps3Bo6lsDDkkhhTcD8Po7MzBJOHi9vYx3ZBQglwN+kWhAPFGMHHCYTx+PHGdk8PwLlzG+0RRPh+dEGExoPlrS3d3E0yIDzjfOHdCwfKB2asERIvhIGBl2+PQli4jW3x87w1piuknFmsSoUkKyB0Qbs9uyDJAgjdig/A2x1Xkg1J8GqejzfRtre+F6k9KlofkfqTspqXIpxMkuXJvzabrVRymt968JEGE/5eou2325J8REqQliAFkAJIAZRUfRSkNZp/JtXqib/xNcPQTF3dN2V5eaa0u3m4ezebGkB+/1ddDNNSTF7+ypJjqKuzevfvp9SKi4XJ7W7C9fmPioPFiEEIadcu/W+5Dijm4y+Tk5NWiqLHtNpPtNkOYnZ29lVFRUWl6CxG05TiYooUQNkN6NkzBgIBBVBEvXjBwIULZqipsYDHQymAtqqtzcDV+/axoNMFFUDhevlyBzx9Gno06cYNV/a72OIiDQMDwp/FunXLyNXHj69AWZl//f1371QwOqrJHkAI5u5dA1RVWQQPbGxMA0+ehGBeu+betG96Wg2nTu2EpqZ8DlbGAgoHg/Xly264eNEjynqOHPHCgQObr4bW1HihpWWBs8bq6s+SCiruUkOlUo0xDKMVC+bBAx0HBcWDycsTlqtfv9ZAbW3olw99fbNw6JAvalv8nvZ2IwcIv6Ox0QUlJauiQURbaqjltphEwPC6cyf0+aoqX0w4KOwfCw8K60RAJcWC5AKDmphQw7FjFsDDknJrR6pFJcWC5ATDq7XVyMHBuCPlvpfcFpVQkF5YoLiMgqDy84McmETgTE2p4dEjrSzzHoSxZw+7Pi3A49z2LIYHgdnk+fP3XGbBbIJZBc+aFN2+bQB8QLWy0gdHj0q7a4qZ7fx5M1dQ3d1zXMHjS1malwPUzIyKZKxQ+ytX3CkHk5R5UCKgMHOh9eBPDE6cWEk5mKROFMNBlZf7OFA4gGjLDLSe7m7d2qzZBZSARTvGFb5fjIFyg9mWmTSCstvnuQNH4WD4jBcuu90A+NO0vXtZOHkyvvXgcgUtE4Hjiejv/092MEmZKEYTHjwWHBCe7XB9+KBad8Hr111ACzxlCEbosiXtAYWD2qr2dgN4vRRYrSycPr0sqJ+KCj9Xsv56kMNBQ1dXyHquXnULtp6cuWB2756eu4xaUsLCmTMeSEel9J57Y6MbtNogFBevgjpN7/6n9LD0+qCkSWHOuFgmSAGkAEoiIJZlV3Lo/4Uo0YDsdvv7FaJcoEOGOS8a0ODgYGBkZGSMWBKbzXCcTqerra2tS3SaHx4eDra2tvYvLi6SxWH1l1qtlsF/eMoWMHjiydjcHR0dA+Pj468i+l28P1iy2Wz4QOcPpJiz1IDwGvE4Kb8PDQ0FRQNag4S/58R/oTKudZhNgXmalCn0FkH/3aFos/4XYACMZiQsu0DAiAAAAABJRU5ErkJggg==",
419
+ },
420
+ NONE: {
421
+ img: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIwQ0VDMEY0NzE5RTExRTc5QkRGRDJEMjlGQjM1MkE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIwQ0VDMEY1NzE5RTExRTc5QkRGRDJEMjlGQjM1MkE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjBDRUMwRjI3MTlFMTFFNzlCREZEMkQyOUZCMzUyQTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjBDRUMwRjM3MTlFMTFFNzlCREZEMkQyOUZCMzUyQTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5KbLK5AAAGIklEQVR42uyc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",
422
+ },
423
+ };
424
+
425
+ let src = "";
426
+ switch (fileType) {
427
+ case "rar":
428
+ case "zip":
429
+ src = fileicons.RAR.img;
430
+ break;
431
+ case "doc":
432
+ case "docx":
433
+ src = fileicons.DOCX.img;
434
+ break;
435
+ case "xls":
436
+ case "xlsx":
437
+ src = fileicons.XLSX.img;
438
+ break;
439
+ case "pdf":
440
+ src = fileicons.PDF.img;
441
+ break;
442
+ case "ppt":
443
+ case "pptx":
444
+ src = fileicons.PPTX.img;
445
+ break;
446
+ case "png":
447
+ case "jpg":
448
+ src = fileicons.PNG.img;
449
+ break;
450
+ case "mov":
451
+ src = fileicons.MOV.img;
452
+ break;
453
+ case "mp3":
454
+ src = fileicons.MP3.img;
455
+ break;
456
+ case "mp4":
457
+ src = fileicons.MP4.img;
458
+ break;
459
+ case "html":
460
+ case "htm":
461
+ src = fileicons.HTML.img;
462
+ break;
463
+ default:
464
+ src = fileicons.NONE.img;
465
+ break;
466
+ }
467
+ return src;
468
+ }
469
+
470
+ /**
471
+ * 预览文件
472
+ * @param fileInfo
473
+ */
474
+ doView = (fileInfo: any) => {
475
+ debugger
476
+ this.previewFileInfo = fileInfo;
477
+ this.previewVisible.value = true;
478
+ this.previewIndex.value = fileInfo.PreviewIndex;
479
+ }
480
+
481
+ //#endregion 业务逻辑 文件预览 END
482
+
483
+ }