@gsp-svc/formdoc-upload 0.1.29 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/bundles/gsp-svc-formdoc-upload.umd.js +151 -7
  2. package/bundles/gsp-svc-formdoc-upload.umd.js.map +1 -1
  3. package/bundles/gsp-svc-formdoc-upload.umd.min.js +1 -1
  4. package/bundles/gsp-svc-formdoc-upload.umd.min.js.map +1 -1
  5. package/esm2015/gsp-svc-formdoc-upload.js +2 -2
  6. package/esm2015/lib/upload/entity/expropertyrequest.js +15 -0
  7. package/esm2015/lib/upload/entity/fileinfo.js +5 -1
  8. package/esm2015/lib/upload/entity/gspdocsecuritynaseinfo.js +15 -0
  9. package/esm2015/lib/upload/entity/securityentity.js +17 -0
  10. package/esm2015/lib/upload/entity/uploadfileinfo.js +3 -1
  11. package/esm2015/lib/upload/entity/uploadlimit.js +4 -1
  12. package/esm2015/lib/upload/file-upload/file-upload.component.js +78 -8
  13. package/esm2015/lib/upload/upload.service.js +52 -1
  14. package/esm2015/lib/uploaddialog.service.js +2 -1
  15. package/esm2015/public-api.js +4 -1
  16. package/esm5/gsp-svc-formdoc-upload.js +2 -2
  17. package/esm5/lib/upload/entity/expropertyrequest.js +19 -0
  18. package/esm5/lib/upload/entity/fileinfo.js +5 -1
  19. package/esm5/lib/upload/entity/gspdocsecuritynaseinfo.js +19 -0
  20. package/esm5/lib/upload/entity/securityentity.js +21 -0
  21. package/esm5/lib/upload/entity/uploadfileinfo.js +3 -1
  22. package/esm5/lib/upload/entity/uploadlimit.js +4 -1
  23. package/esm5/lib/upload/file-upload/file-upload.component.js +86 -8
  24. package/esm5/lib/upload/upload.service.js +61 -1
  25. package/esm5/lib/uploaddialog.service.js +2 -1
  26. package/esm5/public-api.js +4 -1
  27. package/fesm2015/gsp-svc-formdoc-upload.js +135 -9
  28. package/fesm2015/gsp-svc-formdoc-upload.js.map +1 -1
  29. package/fesm5/gsp-svc-formdoc-upload.js +158 -9
  30. package/fesm5/gsp-svc-formdoc-upload.js.map +1 -1
  31. package/gsp-svc-formdoc-upload.metadata.json +1 -1
  32. package/lib/upload/entity/expropertyrequest.d.ts +5 -0
  33. package/lib/upload/entity/fileinfo.d.ts +3 -0
  34. package/lib/upload/entity/gspdocsecuritynaseinfo.d.ts +5 -0
  35. package/lib/upload/entity/securityentity.d.ts +6 -0
  36. package/lib/upload/entity/uploadfileinfo.d.ts +2 -0
  37. package/lib/upload/entity/uploadlimit.d.ts +2 -0
  38. package/lib/upload/file-upload/file-upload.component.d.ts +11 -0
  39. package/lib/upload/upload.service.d.ts +4 -0
  40. package/package.json +1 -1
  41. package/public-api.d.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/doctype.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/operatingmodes.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformremovelistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocoperateentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/changeinstancerequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadfileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/extensionstoragefileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/filestate.ts","ng://@gsp-svc/formdoc-upload/lib/i18n/language.resource.ts","ng://@gsp-svc/formdoc-upload/lib/local.pipe.ts","ng://@gsp-svc/formdoc-upload/lib/upload/file-upload/file-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/upload/download.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog/uploaddialog/uploaddialog.component.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog.service.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog/uploaddialog.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadlimit.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadlistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocmetaproperty.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/fileinfo.ts"],"names":["FormdocUploadService","Injectable","args","providedIn","FormdocUploadComponent","prototype","ngOnInit","Component","selector","template","ɵ0","localStorage","getItem","FormdocUploadModule","NgModule","declarations","imports","exports","providers","LanguageService","provide","LOCALE_ID","useValue","Word","Excel","Powerpoint","Pdf","Txt","Image","Other","GspFormDocInfo","Formal","Temp","GspFormRemoveListEntity","GspFormDocOperateEntity","ChangeInstanceRequest","UploadService","http","this","uploadList","docListInfo","rootId","post","pipe","tap","res","catchError","error","of","commit","metadataIdList","entity","cancel","put","removeList","idList","idListInfo","mode","OperatingModes","delete","getFile","metadataId","url","get","uploadFile","docInfo","getStorageExtensionInfo","changeStorageInstance","storageInfoList","request","fileInfoList","getUploadedFileInfoList","formId","getRootSetting","HttpService","UploadFileInfo","GspFormUploadEntity","ExStorageFileInfo","New","Update","LANG_RESOURCES","zh-CHS","uploading","selectedCount","limitCount","rechooseFile","save","haveSameName","rename","replace","sizeZero","uploadFailure","uploadSucceed","wait","saveTo","selectAll","selectNull","detail","fileName","state","operation","size","close","loading","en-US","en","zh-CHT","LocalLangPipe","localeId","defaultLang","langCode","lang","transform","name","Pipe","Inject","FileUploadComponent","msgService","uploadService","loadService","injector","files","uploadFileInfoList","errFileList","errTypeList","nullFileList","showType","mouseOn","bufferSize","selectedFileCount","uploadIconAddress","uploadLittleIconAddress","hasSelectedFile","fileAllSelected","uploadProcess","width","fileTotalChunk","requestArray","Array","requestBodyArray","uploadedChunk","uploadedProcess","defaultPropertyName","propertiesNames","queueListStyle","dropListValue","uploadedFileTotal","haveExtensionProperty","uploadedFileInfoList","oldUploadedFileList","sameNameAllowed","fileType","fileCount","oldIdList","exStorageFileList","localeid","localepipe","_this","subscribe","storageExtension","push","id","i_1","extensionPropertyNameList","forEach","element","toString","JSON","parse","stringify","length","fileSelected","$event","show","message","selectedFiles","document","querySelector","selectedNum","warning","i","selectedFile","this_1","uuid","UUID","find","x","msg_1","initialState","buttons","text","cls","handle","newName","oldName","flag","substring","lastIndexOf","FileState","splice","indexOf","filter","name_1","listToString","name_2","slice","target","value","showErrorMessage","file","errorMessage","fileInfo","type","source","getFileSize","fileSize","picListDisplayName","getPicListDisplayName","queueListDisplayName","getQueueDisplayName","hasUploaded","selectd","isUploading","uploadResult","extensionDropListId","extensionName","chunkTotal","Math","ceil","chunkIndex","uploadFileInfo","uploadInfo","this_2","total","nextSize","min","fileData","reader","FileReader","readAsBinaryString","innerIndex","onload","fileContent","btoa","result","index","exPropertyName","info","Message","Number","parseInt","toFixed","concat","includes","addDocInfo","DocType","selectAllFile","checkoutSelectFile","listDeleteFile","listMultipleDeleteFile","getElementById","checked","metadataList","allBox","selectdFile","docType","reader_1","readAsDataURL","_event","imgUrl","sanitizer","DomSanitizer","bypassSecurityTrustResourceUrl","strList","typeChange","data","exStorageFileInfo","findIndex","upload","loading_1","map","getUploadFileInfoList","showByGroup","showByList","mouseOver","mouseOut","MessagerService","LoadingService","Injector","Input","ViewChild","DownloadService","getDownloadUrl","getToken","mergeString","getMultipleDownloadUrl","list","getMultipleDownloadUrlWithName","zipName","endsWith","encodeURIComponent","getHistoryDownloadUrl","version","str","str1","array","floor","str2","str3","randomArray","random","timeStamp","round","Date","getTime","switchStr","ɵ0$1","UploadModule","CommonModule","ButtonsModule","NotifyModule","MessagerModule","forRoot","LoadingModule","ProgressModule","FormsModule","ComboListModule","entryComponents","ɵa","UploadDialogComponent","modalService","showDialog","dlg","title","height","iconCls","fileUpload","showButtons","content","BsModalService","UploadDialogService","componentFactoryResolver","localpipe","Promise","resolve","viewerRef","resolveComponentFactory","create","instance","showMaxButton","beforeClose","uploadFileWithLimit","limit","uploadRef","ComponentFactoryResolver","UploadDialogMoudle","FarrisDialogModule","HttpClientModule","UploadLimit","GspFormUploadListEntity","GspDocMetaProperty","FileInfo"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormdocUploadService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-formdoc-upload',\n template: `\n <p>\n formdoc-upload works!\n </p>\n `,\n styles: []\n})\nexport class FormdocUploadComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { LOCALE_ID, NgModule } from '@angular/core';\nimport { LanguageService } from '@ecp-caf/caf-common';\nimport { FormdocUploadComponent } from './formdoc-upload.component';\nimport { LocalLangPipe } from './local.pipe';\n\n\n@NgModule({\n declarations: [FormdocUploadComponent],\n imports: [\n ],\n \n exports: [FormdocUploadComponent],\n providers:[ LanguageService,\n { provide: LOCALE_ID, useValue: localStorage.getItem('languageCode') || 'zh-CHS' },]\n})\nexport class FormdocUploadModule { }\n","export enum DocType{\r\n Word,\r\n Excel,\r\n Powerpoint,\r\n Pdf,\r\n Txt,\r\n Image,\r\n Other\r\n}","import { GspDocMetaProperty } from './gspdocmetaproperty';\r\n\r\nexport class GspFormDocInfo {\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileContent: string;\r\n public index: number;\r\n public total: number;\r\n public exPropertyName: string;\r\n public extProperty: GspDocMetaProperty;\r\n}","export enum OperatingModes{\r\n Formal,\r\n Temp\r\n}","import { OperatingModes } from \"./operatingmodes\";\r\n\r\nexport class GspFormRemoveListEntity {\r\n public metadataIdList: string[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspFormDocOperateEntity {\r\n public metadataIdList: string[];\r\n public rootId: string;\r\n}","import { ExStorageFileInfo } from './extensionstoragefileinfo';\r\n\r\nexport class ChangeInstanceRequest {\r\n public fileInfoList: ExStorageFileInfo[];\r\n public rootId: string;\r\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GspFormUploadListEntity } from './entity/gspformuploadlistentity';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { catchError, tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { GspFormRemoveListEntity } from './entity/gspformremovelistentity';\nimport { of } from 'rxjs/observable/of';\nimport { GspFormDocOperateEntity } from './entity/gspformdocoperateentity';\n\nimport { GspFormUploadEntity } from './entity/gspformuploadentity';\nimport { ExStorageFileInfo } from './entity/extensionstoragefileinfo';\nimport { ChangeInstanceRequest } from './entity/changeinstancerequest';\nimport { OperatingModes } from './entity/operatingmodes';\n\n\n\n@Injectable()\nexport class UploadService {\n\n constructor(private http: HttpService) { }\n\n uploadList(docListInfo: GspFormUploadListEntity, rootId: string): Observable<any> {\n let url;\n docListInfo.rootId = rootId;\n\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docListInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n commit(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/commit\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/commit\";\n\n return this.http.post(url, entity).pipe();\n }\n\n cancel(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/cancel\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/cancel\";\n //localStorage.setItem(\"SessionId\",\"huoliang\");\n return this.http.put(url, entity).pipe();\n }\n\n removeList(idList: string[], rootId: string) {\n let url;\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/list\";\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n var idListInfo = new GspFormRemoveListEntity;\n idListInfo.metadataIdList = idList;\n idListInfo.mode = OperatingModes.Temp;\n idListInfo.rootId = rootId;\n return this.http.delete(url, idListInfo).pipe();\n }\n\n getFile(metadataId: string, rootId: string) {\n\n let url;\n if (rootId == \"\")\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId;\n else\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId + \"/\" + rootId;\n return this.http.get(url).pipe(tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n\n }\n\n uploadFile(docInfo: GspFormUploadEntity): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getStorageExtensionInfo(): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/extension\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n changeStorageInstance(storageInfoList: ExStorageFileInfo[], rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/changeinstance\";\n let request: ChangeInstanceRequest = new ChangeInstanceRequest;\n request.fileInfoList = storageInfoList;\n request.rootId = rootId;\n return this.http.post(url, request).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getUploadedFileInfoList(formId: string, rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist\" + \"?formid=\" + formId + \"&rootid=\" + rootId;\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n getRootSetting(rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/rootsetting/\" + rootId;\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n}\n","import { FileState } from \"./filestate\";\r\n\r\nexport class UploadFileInfo {\r\n\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileSize:string;\r\n public state: FileState;\r\n\r\n}","import { OperatingModes } from './operatingmodes';\r\nimport { GspFormDocInfo } from './gspformdocinfo';\r\n\r\nexport class GspFormUploadEntity{\r\n public formId: string;\r\n public docInfo: GspFormDocInfo;\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n\r\n}","export class ExStorageFileInfo {\r\n public metadataId: string;\r\n public exPropertyName: string;\r\n}","export enum FileState{\r\n New,\r\n Update\r\n}","export const LANG_RESOURCES = {\r\n 'zh-CHS': {\r\n 'uploadFile': '上传文件',\r\n 'uploading':'正在上传文件……',\r\n 'selectedCount':'已选择文件数量:',\r\n 'limitCount':'超出系统限制数量:',\r\n 'rechooseFile':',重新选择上传文件。',\r\n 'save':'保存',\r\n 'cancel':'取消',\r\n 'haveSameName':'已上传过同名文件: ',\r\n 'rename':'重命名',\r\n\t\t'replace':'替换',\r\n 'sizeZero':'文件大小为0',\r\n 'uploadFailure':'上传失败',\r\n 'uploadSucceed':'上传成功',\r\n 'wait':'等一下,文档正在上传。',\r\n 'saveTo':'正在将文件保存到',\r\n 'delete':'删除',\r\n 'selectAll':'全选',\r\n 'selectNull':'全不选',\r\n 'detail':'详情',\r\n 'fileName':'文件名',\r\n 'state':'状态',\r\n 'operation':'操作',\r\n 'size':'大小',\r\n 'close':'关闭',\r\n 'loading':'拼命加载中'\r\n },\r\n 'en-US': {\r\n 'uploadFile': 'Upload File',\r\n 'uploading':'File Uploading……',\r\n 'selectedCount':'Selected files count:',\r\n 'limitCount':'System limit count:',\r\n 'rechooseFile':',Reselect upload file.',\r\n 'save':'Save',\r\n 'cancel':'Cancel',\r\n 'haveSameName':'A file with the same name has been uploaded: ',\r\n 'rename':'Rename',\r\n\t\t'replace':'Replace',\r\n 'sizeZero':'File size is 0',\r\n 'uploadFailure':'Upload failed',\r\n 'uploadSucceed':'Upload successfully',\r\n 'wait':'Wait a minute, the file is uploading.',\r\n 'saveTo':'Saving file to',\r\n 'delete':'Delete',\r\n 'selectAll':'Select all',\r\n 'selectNull':'Not at all',\r\n 'detail':'Details',\r\n 'fileName':'Filename',\r\n 'state':'State',\r\n 'operation':'Operation',\r\n 'size':'Size',\r\n 'close':'Close',\r\n 'loading':'Loading'\r\n },\r\n 'en': {\r\n 'uploadFile': 'Upload File',\r\n 'uploading':'File Uploading……',\r\n 'selectedCount':'Selected files count:',\r\n 'limitCount':'System limit count:',\r\n 'rechooseFile':',Reselect upload file.',\r\n 'save':'Save',\r\n 'cancel':'Cancel',\r\n 'haveSameName':'A file with the same name has been uploaded: ',\r\n 'rename':'Rename',\r\n\t\t'replace':'Replace',\r\n 'sizeZero':'File size is 0',\r\n 'uploadFailure':'Upload failed',\r\n 'uploadSucceed':'Upload successfully',\r\n 'wait':'Wait a minute, the file is uploading.',\r\n 'saveTo':'Saving file to',\r\n 'delete':'Delete',\r\n 'selectAll':'Select all',\r\n 'selectNull':'Not at all',\r\n 'detail':'Details',\r\n 'fileName':'Filename',\r\n 'state':'State',\r\n 'operation':'Operation',\r\n 'size':'Size',\r\n 'close':'Close',\r\n 'loading':'Loading'\r\n\r\n },\r\n 'zh-CHT': {\r\n 'uploadFile': '上傳文件',\r\n 'uploading':'正在上傳文件……',\r\n 'selectedCount':'已選擇文件數量:',\r\n 'limitCount':'超出系統限制數量:',\r\n 'rechooseFile':',重新選擇上傳文件。',\r\n 'save':'保存',\r\n 'cancel':'取消',\r\n 'haveSameName':'已上傳過同名文件: ',\r\n 'rename':'重命名',\r\n\t\t'replace':'替換',\r\n 'sizeZero':'文件大小為0',\r\n 'uploadFailure':'上傳失敗',\r\n 'uploadSucceed':'上傳成功',\r\n 'wait':'等一下,文件正在上傳。',\r\n 'saveTo':'正在將文件保存到',\r\n 'delete':'删除',\r\n 'selectAll':'全選',\r\n 'selectNull':'全不選',\r\n 'detail':'詳情',\r\n 'fileName':'文件名',\r\n 'state':'狀態',\r\n 'operation':'操作',\r\n 'size':'大小',\r\n 'close':'關閉',\r\n 'loading':'拼命加載中'\r\n },\r\n};","import { Pipe, PipeTransform, Inject, LOCALE_ID } from '@angular/core';\r\nimport { LANG_RESOURCES } from './i18n/language.resource';\r\n\r\n@Pipe({ name: 'locale' })\r\nexport class LocalLangPipe implements PipeTransform {\r\n private readonly defaultLang: string = \"zh-CHS\";\r\n private langCode: string;\r\n private lang: {};\r\n constructor(\r\n @Inject(LOCALE_ID) localeId: string\r\n ) {\r\n this.langCode = localStorage.getItem(\"languageCode\") || localeId || this.defaultLang;\r\n this.lang = LANG_RESOURCES[this.langCode] || LANG_RESOURCES[this.defaultLang];\r\n }\r\n transform(name: string): any {\r\n return this.lang[name] || name;\r\n }\r\n}\r\n\r\n","import { Component, OnInit, Input, ViewChild, TemplateRef, Optional, Injector, LOCALE_ID } from '@angular/core';\nimport { FileInfo } from '../entity/fileinfo';\nimport { DocType } from '../entity/doctype';\nimport { GspFormDocInfo } from '../entity/gspformdocinfo';\nimport { OperatingModes } from '../entity/operatingmodes';\nimport { UploadService } from '../upload.service';\nimport { UploadFileInfo } from '../entity/uploadfileinfo';\nimport { MessagerService } from '@farris/ui-messager';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { GspFormUploadEntity } from '../entity/gspformuploadentity';\nimport { UUID } from 'angular2-uuid';\nimport { StorageExtension } from '../entity/storageextension';\nimport { ExStorageFileInfo } from '../entity/extensionstoragefileinfo';\nimport { DropListEntity } from '../entity/droplistentity';\nimport { LoadingService } from '@farris/ui-loading';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { fillProperties } from '@angular/core/src/util/property';\nimport { FileState } from '../entity/filestate';\nimport { LocalLangPipe } from '../../local.pipe';\n\n\n@Component({\n selector: 'app-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.css'],\n})\nexport class FileUploadComponent implements OnInit {\n\n files: FileInfo[] = [];\n metadataIdList: string[] = [];\n uploadFileInfoList: UploadFileInfo[] = [];\n errFileList: string[] = [];\n errTypeList: string[] = [];\n nullFileList: string[] = [];\n showType: number = 0;\n mouseOn: boolean = false;\n bufferSize = 1024 * 1024;\n selectedFiles: any;\n\n selectedFileCount: number = 0;\n\n uploadIconAddress = '/platform/runtime/dfs/images/upload.svg';\n uploadLittleIconAddress = '/platform/runtime/dfs/images/uploadIcon.svg';\n\n hasSelectedFile: boolean = false;\n\n fileAllSelected: boolean = false;\n\n uploadProcess = { width: '0%' };\n\n fileTotalChunk: { [key: string]: number } = {};\n //fileUploadState: { [key: string]: boolean } = {};\n //flag: number = 0;\n requestArray: Array<Observable<any>> = new Array;\n\n requestBodyArray: Array<GspFormUploadEntity> = new Array;\n\n uploadedChunk: { [key: string]: number } = {};\n uploadedProcess: { [key: string]: number } = {};\n\n //allSelected: boolean = true;\n storageExtension: StorageExtension;\n\n defaultPropertyName: string = \"\";\n propertiesNames: DropListEntity[] = [];\n\n queueListStyle = { width: '480px' };\n\n dropListValue: string = \"\";\n\n uploadedFileTotal: number = 0;\n\n haveExtensionProperty: boolean = false;\n\n uploadedFileInfoList = [];\n oldUploadedFileList = [];\n //uploadedNameList = [];\n\n sameNameAllowed = true;\n\n localeid:string;\n localepipe: LocalLangPipe;\n\n constructor(private msgService: MessagerService, private uploadService: UploadService, private loadService: LoadingService, private injector?: Injector) { \n if(this.injector)\n {\n\n this.localeid = localStorage.getItem(\"languageCode\") || this.injector.get(LOCALE_ID);\n this.localepipe = new LocalLangPipe(this.localeid);\n } \n }\n @Input() formId: string;\n @Input() rootId: string;\n @Input() fileType: string = \"*\";\n @Input() fileCount: number = 0;\n @Input() oldIdList: string[] = [];\n\n //@Output() onCustomEvent: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('opCell') opCell: TemplateRef<any>;\n\n ngOnInit() {\n //if (this.storageService != null) {\n this.uploadService.getStorageExtensionInfo().subscribe(\n res => {\n if (res != null && res.error == null) {\n this.storageExtension = res;\n this.defaultPropertyName = this.storageExtension.defaultPropertyName;\n this.propertiesNames.push({ id: \"0\", name: this.storageExtension.defaultPropertyName });\n let i = 0;\n // this.propertiesNames.push(...(this.storageExtension.extensionPropertyNameList));\n this.storageExtension.extensionPropertyNameList.forEach(element => {\n this.propertiesNames.push({ id: (++i).toString(), name: element });\n });\n this.queueListStyle.width = '380px';\n this.haveExtensionProperty = true;\n\n }\n }\n )\n\n this.uploadService.getRootSetting(this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.sameNameAllowed = res.sameNameAllowed;\n if (!this.sameNameAllowed) {\n this.uploadService.getUploadedFileInfoList(this.formId, this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.uploadedFileInfoList = res;\n this.oldUploadedFileList = JSON.parse(JSON.stringify(res));;\n\n }\n })\n }\n }\n }\n )\n if (this.oldIdList != null && this.oldIdList.length > 0) {\n this.uploadService.cancel(this.oldIdList, this.rootId).subscribe();\n }\n }\n\n\n fileSelected($event) {\n\n const loading = this.loadService.show({\n message: this.localepipe.transform('uploading')\n });\n this.hasSelectedFile = true;\n this.selectedFiles = document.querySelector('#file');\n\n if (this.fileCount > 0) {\n if (this.selectedFiles.files.length + this.files.length > this.fileCount) {\n let selectedNum: number = (this.selectedFiles.files.length as number) + this.files.length;\n this.msgService.warning(this.localepipe.transform('selectedCount') + selectedNum + this.localepipe.transform('limitCount') + this.fileCount + this.localepipe.transform('rechooseFile'));\n return;\n }\n }\n\n //this.flag = 0;\n for (let i = 0; i < this.selectedFiles.files.length; i++) {\n let selectedFile = this.selectedFiles.files[i];\n //selectedFile.slice\n let uuid = UUID.UUID();\n if (!this.sameNameAllowed) {\n if (this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name) != null) {\n // this.uploadedNameList.push(selectedFile.name);\n // this.msgService.question('之前已上传过同名文件: ' + selectedFile.name + ',需要替换么?', () => {\n // uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\n // this.uploadFile(uuid, selectedFile);\n // })\n const msg = this.msgService.show('warning', this.localepipe.transform('haveSameName') + selectedFile.name, {\n initialState: {\n buttons: [\n {\n text: this.localepipe.transform('rename'),\n cls: 'btn btn-secondary',\n handle: () => {\n let oldName: string = selectedFile.name;\n let newName\n let flag = true;\n let i = 1;\n while (flag) {\n newName = oldName.substring(0, oldName.lastIndexOf('.')) + '(' + i + ')' + oldName.substring(oldName.lastIndexOf('.'));\n if (this.uploadedFileInfoList.find(x => x.fileName == newName) != null) {\n i++;\n }\n else\n flag = false;\n }\n\n this.uploadFile(uuid, selectedFile, newName);\n msg.close();\n }\n },\n {\n text: this.localepipe.transform('replace'),\n cls: 'btn btn-secondary',\n handle: () => {\n uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\n this.uploadFile(uuid, selectedFile, selectedFile.name, FileState.Update);\n this.uploadedFileTotal--;\n if (this.oldUploadedFileList.find(x => x.fileName == selectedFile.name)) {\n this.uploadedFileTotal++;\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == selectedFile.name)[0]), 1);\n }\n msg.close();\n }\n },\n {\n text: this.localepipe.transform('cancel'),\n cls: 'btn btn-secondary',\n handle: () => {\n msg.close();\n }\n }\n ]\n }\n })\n continue;\n }\n }\n\n // if (this.files.find(x => x.name == selectedFile.name) != null) {\n // this.errFileList.push(selectedFile.name);\n // continue;\n // }\n\n if (selectedFile.size == 0) {\n this.nullFileList.push(selectedFile.name);\n continue;\n }\n\n //this.flag += Math.ceil(selectedFile.size / this.bufferSize);\n //let reader = new FileReader();\n this.uploadFile(uuid, selectedFile, selectedFile.name);\n\n }\n // if (this.uploadedNameList.length > 0) {\n // let name: string = this.listToString(this.uploadedNameList);\n // this.msgService.warning('之前已上传过同名文件: ' + name + '请重新选择上传文件。');\n // this.uploadedNameList = [];\n // }\n\n if (this.errFileList.length > 0) {\n let name: string = this.listToString(this.errFileList);\n this.msgService.warning(this.localepipe.transform('haveSameName') + name + this.localepipe.transform('rechooseFile'));\n this.errFileList = [];\n }\n\n if (this.nullFileList.length > 0) {\n let name: string = this.listToString(this.nullFileList);\n name = name.substring(0, name.length - 1);\n this.msgService.warning(name + this.localepipe.transform('sizeZero') + this.localepipe.transform('rechooseFile'));\n this.nullFileList = [];\n }\n // if (this.errTypeList.length > 0) {\n // let type: string = this.listToString(this.errTypeList);\n // this.msgService.warning('不支持上传类型为 ' + type + '的文件请重新选择上传文件。');\n // this.errTypeList = [];\n // }\n this.files = this.files.slice();\n this.fileAllSelected = false;\n $event.target.value = '';\n loading.close();\n }\n\n showErrorMessage(file) {\n this.msgService.error(this.localepipe.transform('uploadFailure') + file.errorMessage);\n }\n\n\n uploadFile(uuid: string, selectedFile, fileName: string, state: FileState = FileState.New) {\n let fileInfo: FileInfo;\n // let uuid = UUID.UUID();\n //reader.readAsBinaryString(selectedFile);\n //reader.onload = (e) => {\n fileInfo = {\n id: uuid,\n name: fileName,\n type: selectedFile.type,\n source: \"\",\n size: this.getFileSize(selectedFile.size),\n fileSize: selectedFile.size,\n picListDisplayName: this.getPicListDisplayName(fileName),\n queueListDisplayName: this.getQueueDisplayName(fileName),\n //content: reader.result.toString(),\n hasUploaded: false,\n mouseOn: false,\n selectd: false,\n isUploading: true,\n uploadResult: false,\n uploadProcess: 0,\n errorMessage: \"\",\n extensionDropListId: 0,\n extensionName: \"\"\n }\n\n if (this.storageExtension != null)\n fileInfo.extensionName = this.defaultPropertyName;\n let chunkTotal: number = Math.ceil(selectedFile.size / this.bufferSize);\n let chunkIndex: number = 0;\n\n\n this.fileTotalChunk[uuid] = chunkTotal;\n\n let uploadFileInfo = new UploadFileInfo();\n\n uploadFileInfo.metadataId = uuid;\n uploadFileInfo.fileName = fileInfo.name;\n uploadFileInfo.fileSize = fileInfo.size;\n uploadFileInfo.state = state;\n\n\n while (chunkIndex < chunkTotal) {\n let uploadInfo = new GspFormUploadEntity;\n uploadInfo.formId = this.formId;\n uploadInfo.mode = OperatingModes.Temp;\n uploadInfo.rootId = this.rootId;\n\n let docInfo: GspFormDocInfo = new GspFormDocInfo;\n\n docInfo.fileName = fileName;\n docInfo.metadataId = uuid;\n docInfo.total = chunkTotal;\n\n this.uploadedChunk[docInfo.metadataId] = 0;\n\n let nextSize = Math.min((chunkIndex + 1) * this.bufferSize, selectedFile.size);\n let fileData = selectedFile.slice(chunkIndex * this.bufferSize, nextSize);\n let reader = new FileReader();\n reader.readAsBinaryString(fileData);\n let innerIndex = chunkIndex;\n reader.onload = () => {\n docInfo.fileContent = btoa(reader.result.toString());\n\n docInfo.index = innerIndex;\n //chunkIndex++;\n if (this.haveExtensionProperty)\n docInfo.exPropertyName = this.defaultPropertyName;\n //docInfo.isLast = true;\n uploadInfo.docInfo = docInfo;\n\n let info = uploadInfo;\n\n // this.requestArray.push(this.uploadService.uploadFile(uploadInfo));\n this.requestBodyArray.push(info);\n\n this.uploadService.uploadFile(info).subscribe(res => {\n if (res != null) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\n } else {\n this.uploadedChunk[docInfo.metadataId]++;\n this.files[this.files.indexOf(fileInfo)].uploadProcess = Number.parseInt((this.uploadedChunk[docInfo.metadataId] / this.fileTotalChunk[docInfo.metadataId] * 100).toFixed(0));\n if (this.uploadedChunk[docInfo.metadataId] == this.fileTotalChunk[docInfo.metadataId]) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = true;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.uploadFileInfoList = this.uploadFileInfoList.concat(uploadFileInfo);\n this.uploadedFileInfoList = this.uploadedFileInfoList.concat(uploadFileInfo);\n this.uploadedFileTotal++;\n }\n }\n });\n }\n //console.log(chunkIndex + 1);\n chunkIndex = chunkIndex + 1;\n }\n\n let type: string = selectedFile.type;\n if (type.includes(\"tiff\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n }\n else if (type.includes(\"image\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Image);\n }\n else if (type.includes(\"word\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Word);\n }\n else if (type.includes(\"pdf\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Pdf);\n }\n else if (type.includes(\"plain\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Txt);\n }\n else if (type.includes(\"sheet\") || type.includes(\"excel\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Excel)\n }\n else if (type.includes(\"powerpoint\") || type.includes(\"presentation\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Powerpoint);\n }\n else {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n // let name: string = selectedFile.name;\n // let errType = name.substring(selectedFile.name.lastIndexOf('.'));\n // this.errTypeList.push(errType);\n }\n let index = -1;\n this.files.forEach(x => {\n if (x.name == fileInfo.name) {\n if (index == -1)\n index = this.files.indexOf(x);\n }\n })\n if (index != -1 && index != this.files.length - 1) {\n this.files.splice(index, 1);\n this.uploadFileInfoList.splice(index, 1);\n this.uploadedFileInfoList.splice(index, 1);\n this.uploadedFileTotal--;\n }\n }\n\n\n selectAllFile() {\n\n if (!this.fileAllSelected) {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = true;\n element.selectd = true;\n });\n this.fileAllSelected = true;\n this.selectedFileCount = this.files.length;\n\n } else {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = false;\n element.selectd = false;\n });\n this.fileAllSelected = false;\n this.selectedFileCount = 0;\n }\n }\n\n\n checkoutSelectFile(file: FileInfo) {\n // let obj: any = document.getElementById(fileName);\n file.selectd = !file.selectd;\n if (file.selectd)\n this.selectedFileCount++;\n else\n this.selectedFileCount--;\n if (this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n //this.isFileAllSelected();\n }\n else {\n this.fileAllSelected = false;\n //this.isFileAllSelected();\n }\n\n }\n\n listDeleteFile(fileInfo: FileInfo) {\n if (fileInfo.selectd)\n this.selectedFileCount--;\n //console.log(fileName);\n this.files.splice(this.files.indexOf(fileInfo), 1);\n if (fileInfo.uploadResult) {\n let idList: string[] = [];\n idList.push(fileInfo.id);\n this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n if (this.selectedFileCount == 0)\n this.fileAllSelected = false;\n }\n\n listMultipleDeleteFile() {\n let selectedFile: FileInfo[] = [];\n this.files.forEach(element => {\n let obj: any = document.getElementById(element.name);\n if (obj.checked)\n selectedFile.push(element);\n })\n let metadataList: string[] = [];\n selectedFile.forEach(element => {\n metadataList.push(element.id);\n this.files.splice(this.files.indexOf(element), 1);\n if (element.uploadResult) {\n // let idList: string[] = [];\n // idList.push(fileInfo.id);\n // this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n })\n this.uploadService.cancel(metadataList, this.rootId).subscribe();\n\n let allBox: any = document.getElementById(\"allCheckBox\");\n if (allBox != null)\n allBox.checked = false;\n this.selectedFileCount = 0;\n this.fileAllSelected = false;\n }\n\n\n getPicListDisplayName(fileName: string) {\n if (fileName.length <= 10)\n return fileName;\n else {\n let headContent = fileName.substring(0, 2);\n let tailContent = fileName.substring(fileName.lastIndexOf('.') - 2);\n return headContent + \"…\" + tailContent;\n }\n }\n\n getQueueDisplayName(fileName: string) {\n return fileName;\n }\n\n addDocInfo(selectdFile, fileInfo: FileInfo, docType: DocType) {\n switch (docType) {\n case DocType.Word: {\n fileInfo.source = \"/platform/runtime/dfs/images/word.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Pdf: {\n fileInfo.source = \"/platform/runtime/dfs/images/pdf.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Excel: {\n fileInfo.source = \"/platform/runtime/dfs/images/excel.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Txt: {\n fileInfo.source = \"/platform/runtime/dfs/images/txt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Powerpoint: {\n fileInfo.source = \"/platform/runtime/dfs/images/ppt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Other: {\n fileInfo.source = \"/platform/runtime/dfs/images/file.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Image:\n let reader = new FileReader();\n\n reader.readAsDataURL(selectdFile);\n reader.onload = (_event) => {\n let imgUrl = reader.result;\n if (this.injector != null) {\n let sanitizer = this.injector.get(DomSanitizer);\n fileInfo.source = sanitizer.bypassSecurityTrustResourceUrl(imgUrl);\n } else\n fileInfo.source = imgUrl;\n this.files.push(fileInfo);\n }\n break;\n }\n\n }\n\n listToString(strList: string[]) {\n let name: string = \"\";\n for (let i = 0; i < strList.length; i++) {\n name += strList[i] + \",\";\n }\n return name;\n }\n\n\n exStorageFileList: ExStorageFileInfo[] = [];\n\n typeChange($event: any, file: FileInfo) {\n file.extensionName = $event.data.name;\n let exStorageFileInfo: ExStorageFileInfo = new ExStorageFileInfo;\n if (file.extensionName == this.storageExtension.defaultPropertyName) {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0)\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1)\n } else {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n exStorageFileInfo = this.exStorageFileList.filter(x => x.metadataId == file.id)[0];\n exStorageFileInfo.exPropertyName = file.extensionName;\n } else {\n exStorageFileInfo.metadataId = file.id;\n exStorageFileInfo.exPropertyName = file.extensionName;\n this.exStorageFileList.push(exStorageFileInfo);\n }\n }\n }\n\n upload(): Observable<any> {\n if (this.uploadedFileTotal != this.files.filter(x => x.isUploading || x.uploadResult).length) {\n // this.notifyService.success(<NotifyOptions>{\n // msg: '保存成功!', timeout: 3000\n // });\n this.msgService.warning(this.localepipe.transform('wait'));\n return of(false);\n }\n if (this.storageExtension == null)\n return of(this.uploadFileInfoList);\n else {\n if (this.exStorageFileList.length == 0)\n return of(this.uploadFileInfoList);\n else {\n const loading = this.loadService.show({\n message: this.localepipe.transform('saveTo') + this.storageExtension.extensionName\n });\n return this.uploadService.changeStorageInstance(this.exStorageFileList, this.rootId).pipe(\n map(res => {\n // if (res != null)\n // this.msgService.error('保存到' + this.storageExtension.extensionName + \"失败,上传文件自动保存到\" + this.storageExtension.defaultPropertyName + \"存储。\" + res.error.Message);\n loading.close();\n return this.uploadFileInfoList;\n }))\n }\n }\n }\n\n cancel() {\n if (this.uploadFileInfoList.length == 0)\n return;\n this.uploadFileInfoList.forEach(element => {\n this.metadataIdList.push(element.metadataId);\n })\n this.uploadService.cancel(this.metadataIdList, this.rootId).subscribe();\n\n }\n\n getUploadFileInfoList() {\n return this.uploadFileInfoList;\n }\n\n delete(file) {\n this.files.splice(this.files.indexOf(file), 1);\n if (file.uploadResult)\n this.uploadedFileTotal--;\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1);\n }\n // var obj:any = document.querySelector('#file');\n // obj.files.remove();\n //obj.value='';\n }\n\n getFileSize(size: number) {\n if (size < 102400)\n return (size / 1024).toFixed(1) + \"K\";\n else if (size < 1024 * 1024)\n return (size / 1024).toFixed(0) + \"K\";\n else if (size < 100 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(1) + \"M\";\n else if (size < 1024 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(0) + \"M\";\n else\n return (size / 1024 / 1024 / 1024).toFixed(1) + \"G\";\n }\n showByGroup() {\n this.showType = 0;\n // this.selectedFileCount = 0;\n }\n\n showByList() {\n this.showType = 1;\n // this.selectedFileCount = 0;\n if (this.selectedFileCount != 0 && this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n }\n }\n\n mouseOver(file) {\n file.mouseOn = true;\n }\n mouseOut(file) {\n file.mouseOn = false;\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class DownloadService {\n\n constructor() { }\n\n getDownloadUrl(metadataId: string, rootId: string) {\n return \"/api/runtime/dfs/v1.0/doc/filecontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n getMultipleDownloadUrl(metadataIdList: string, rootId: string) {\n let list: string[] = JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId));\n }\n\n getMultipleDownloadUrlWithName(metadataIdList: string, rootId: string, zipName: string) {\n let list: string[] = JSON.parse(metadataIdList);\n if (zipName == null || zipName == \"\")\n zipName = 'unifile.zip';\n if (!zipName.endsWith(\".zip\"))\n zipName += '.zip';\n\n\n\n return \"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId)) + \"&zipName=\" + encodeURIComponent(zipName);\n }\n\n getHistoryDownloadUrl(metadataId: string, rootId: string, version: string) {\n //let list:string[]=JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/historycontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&version=\" + version + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n\n\n private mergeString(str: string, str1: string): string {\n let min = str.length < str1.length ? str.length : str1.length;\n let res: string = \"\";\n let i = 0;\n for (i = 0; i < min; i++) {\n res += str.substring(i, i + 1);\n res += str1.substring(i, i + 1);\n }\n res += str.length < str1.length ? str1.substring(i) : str.substring(i);\n return res;\n }\n\n private getToken(str: string): string {\n let array = [1, 2, 3];\n if (str.length > 24)\n str = str.substring(0, 24);\n let length = Math.floor(str.length / 3);\n let str1 = str.substring(0, length);\n let str2 = str.substring(length, 2 * length);\n let str3 = str.substring(2 * length, 3 * length);\n let randomArray = [];\n var random = Math.ceil(Math.random() * 3);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n random = Math.ceil(Math.random() * 2);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n randomArray.push(array[0]);\n let timeStamp: string = Math.round(new Date().getTime() / 1000) + \"\";\n\n return timeStamp.substring(0, 5) + \"times\" + randomArray[0] + \"\" + randomArray[1] + \"\" + randomArray[2] + this.switchStr(str1, str2, str3, randomArray[0]) + this.switchStr(str1, str2, str3, randomArray[1]) + this.switchStr(str1, str2, str3, randomArray[2]) + \"times\" + timeStamp.substring(5);\n }\n\n private switchStr(str1: string, str2: string, str3: string, i: number): string {\n switch (i) {\n case 1: return str1;\n case 2: return str2;\n case 3: return str3;\n }\n }\n\n\n}\n","import { LOCALE_ID, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploadComponent } from './file-upload/file-upload.component';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { UploadService } from './upload.service';\nimport { LoadingModule } from '@farris/ui-loading';\nimport { ProgressModule } from '@farris/ui-progress'\nimport { FormsModule } from '@angular/forms';\nimport { ComboListModule } from '@farris/ui-combo-list';\nimport { DownloadService } from './download.service';\nimport { LocalLangPipe } from '../local.pipe';\nimport { LanguageService } from '@ecp-caf/caf-common';\n\n\n\n@NgModule({\n declarations: [FileUploadComponent,LocalLangPipe],\n imports: [\n CommonModule,\n ButtonsModule,\n NotifyModule,\n MessagerModule.forRoot(),\n LoadingModule.forRoot(),\n ProgressModule,\n FormsModule,\n ComboListModule\n\n ],\n exports: [FileUploadComponent],\n entryComponents: [FileUploadComponent],\n providers: [UploadService, DownloadService, LanguageService,\n { provide: LOCALE_ID, useValue: localStorage.getItem('languageCode') || 'zh-CHS' },]\n\n})\nexport class UploadModule { }\n\nexport const ɵa = UploadModule;\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\nimport { BsModalRef, BsModalService } from '@farris/ui-modal';\nimport { FileUploadComponent } from '../../upload/file-upload/file-upload.component';\n\n@Component({\n selector: 'app-uploaddialog',\n templateUrl: './uploaddialog.component.html',\n styleUrls: ['./uploaddialog.component.css']\n})\nexport class UploadDialogComponent implements OnInit {\n\n dlg: BsModalRef;\n\n metadataIdList:string[]=[];\n\n @Input() formId:string;\n\n constructor(private modalService: BsModalService) { }\n\n @ViewChild(FileUploadComponent) fileUpload: FileUploadComponent;\n\n ngOnInit() {\n }\n\n showDialog() {\n this.dlg = this.modalService.show(FileUploadComponent, {\n title: '选择文件',\n width: 800, height: 500,\n buttons: [\n {\n text: '上传', cls: 'k-button k-button-icontext k-primary', iconCls: \"k-icon k-i-check\", handle: () => {\n this.fileUpload.upload();\n this.dlg.close();\n }\n },\n {\n text: '关闭', cls: 'k-button k-button-icontext', iconCls: \"k-icon k-i-close\", handle: () => {\n this.fileUpload.cancel();\n this.dlg.close();\n }\n }\n ],\n\n showButtons: true,\n\n });\n this.dlg.content.formId=this.formId;\n\n }\n\n}\n","import { Injectable, Injector, ComponentFactoryResolver, LOCALE_ID } from '@angular/core';\r\nimport { FileUploadComponent } from './upload/file-upload/file-upload.component';\r\nimport { BsModalService, BsModalRef } from '@farris/ui-modal';\r\nimport { UploadFileInfo } from './upload/entity/uploadfileinfo';\r\nimport { Observable, of } from 'rxjs';\r\nimport { UploadLimit } from './upload/entity/uploadlimit';\r\nimport { LocalLangPipe } from './local.pipe';\r\n\r\n\r\n@Injectable()\r\nexport class UploadDialogService {\r\n\r\n localeid:string;\r\n localpipe: LocalLangPipe;\r\n constructor(private modalService: BsModalService, private componentFactoryResolver: ComponentFactoryResolver, private injector: Injector) {\r\n if(this.injector)\r\n {\r\n this.modalService = this.injector.get(BsModalService);\r\n this.localeid = localStorage.getItem(\"languageCode\") || this.injector.get(LOCALE_ID);\r\n this.localpipe = new LocalLangPipe(this.localeid);\r\n } \r\n }\r\n\r\n dlg: BsModalRef;\r\n\r\n fileInfoList: UploadFileInfo[] = [];\r\n\r\n showDialog(formId: string, rootId: string) {\r\n let flag = 0;\r\n return new Promise(resolve => {\r\n var viewerFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\r\n var viewerRef = viewerFactory.create(this.injector);\r\n\r\n viewerRef.instance.rootId = rootId;\r\n viewerRef.instance.formId = formId;\r\n\r\n this.dlg = this.modalService.show(viewerRef, {\r\n title: this.localpipe.transform('uploadFile'),\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n text: this.localpipe.transform('save'), cls: 'k-button k-button-icontext k-primary', handle: () => {\r\n this.dlg.content.upload().subscribe(\r\n res => {\r\n if (res) {\r\n resolve(res);\r\n flag = 1;\r\n this.dlg.close();\r\n }\r\n }\r\n );\r\n }\r\n },\r\n {\r\n text: this.localpipe.transform('close'), cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n\r\n uploadFile(formId: string, rootId: string,oldIdList: string[]=[]) { \r\n return this.uploadFileWithLimit(formId, rootId, null, oldIdList);\r\n }\r\n\r\n\r\n uploadFileWithLimit(formId: string, rootId: string, limit: UploadLimit, oldIdList: string[]=[]) {\r\n let flag = 0;\r\n return new Promise(resolve => {\r\n var uploadFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\r\n var uploadRef = uploadFactory.create(this.injector);\r\n if (limit != null) {\r\n uploadRef.instance.fileCount = limit.fileCount;\r\n if (limit.fileType != null && limit.fileType != \"\")\r\n uploadRef.instance.fileType = limit.fileType\r\n }\r\n\r\n uploadRef.instance.rootId = rootId;\r\n uploadRef.instance.formId = formId;\r\n uploadRef.instance.oldIdList=oldIdList;\r\n\r\n this.dlg = this.modalService.show(uploadRef, {\r\n title: this.localpipe.transform('uploadFile'),\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n\r\n text: this.localpipe.transform('save'), cls: 'k-button k-button-icontext k-primary', handle: () => {\r\n this.dlg.content.upload().subscribe(\r\n res => {\r\n if (res) {\r\n resolve(res);\r\n flag = 1;\r\n this.dlg.close();\r\n }\r\n }\r\n );\r\n }\r\n },\r\n {\r\n text: this.localpipe.transform('close'), cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FarrisDialogModule } from '@farris/ui-dialog';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { BsModalService } from '@farris/ui-modal';\n\nimport { UploadModule } from '../upload/upload.module';\nimport { UploadDialogComponent } from './uploaddialog/uploaddialog.component';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { UploadService } from '../upload/upload.service';\nimport { UploadDialogService } from '../uploaddialog.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { FileUploadComponent } from '../upload/file-upload/file-upload.component';\n\n\n@NgModule({\n declarations: [UploadDialogComponent],\n imports: [\n CommonModule,\n FarrisDialogModule,\n MessagerModule.forRoot(),\n UploadModule,\n ButtonsModule,\n NotifyModule.forRoot(),\n HttpClientModule\n ],\n exports: [UploadDialogComponent,FileUploadComponent],\n entryComponents: [UploadDialogComponent,FileUploadComponent],\n providers: [BsModalService, HttpService, UploadDialogService, UploadService]\n})\nexport class UploadDialogMoudle { }\n","export class UploadLimit {\r\n public fileType: string = \"*\";\r\n public fileCount: number = 0;\r\n}","import { GspFormDocInfo } from './gspformdocinfo';\r\nimport { OperatingModes } from './operatingmodes';\r\n\r\nexport class GspFormUploadListEntity {\r\n public formId: string;\r\n public docInfoList: GspFormDocInfo[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspDocMetaProperty{\r\n public extProperties1:string;\r\n public extProperties2:string;\r\n public extProperties3:string;\r\n public extProperties4:string;\r\n public extProperties5:string;\r\n}","export class FileInfo {\r\n public id: string;\r\n public name: string;\r\n public type: string;\r\n public source: string | ArrayBuffer;\r\n public picListDisplayName: string;\r\n public queueListDisplayName: string;\r\n //public content: string;\r\n public size: string;\r\n public fileSize: number;\r\n public hasUploaded: boolean;\r\n public mouseOn: boolean;\r\n public selectd: boolean;\r\n public isUploading: boolean;\r\n public uploadResult: boolean;\r\n public uploadProcess: number;\r\n public errorMessage: string;\r\n public extensionDropListId:number;\r\n public extensionName: string;\r\n}"]}
1
+ {"version":3,"sources":["ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/doctype.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/operatingmodes.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformremovelistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocoperateentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/changeinstancerequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadfileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/extensionstoragefileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/filestate.ts","ng://@gsp-svc/formdoc-upload/lib/i18n/language.resource.ts","ng://@gsp-svc/formdoc-upload/lib/local.pipe.ts","ng://@gsp-svc/formdoc-upload/lib/upload/file-upload/file-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/upload/download.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog/uploaddialog/uploaddialog.component.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog.service.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog/uploaddialog.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadlimit.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadlistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocmetaproperty.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/fileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocsecuritynaseinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/securityentity.ts"],"names":["FormdocUploadService","Injectable","args","providedIn","FormdocUploadComponent","prototype","ngOnInit","Component","selector","template","ɵ0","localStorage","getItem","FormdocUploadModule","NgModule","declarations","imports","exports","providers","LanguageService","provide","LOCALE_ID","useValue","Word","Excel","Powerpoint","Pdf","Txt","Image","Other","GspFormDocInfo","Formal","Temp","GspFormRemoveListEntity","GspFormDocOperateEntity","ChangeInstanceRequest","UploadService","http","this","uploadList","docListInfo","rootId","post","pipe","tap","res","catchError","error","of","commit","metadataIdList","entity","cancel","put","removeList","idList","idListInfo","mode","OperatingModes","delete","getFile","metadataId","url","get","uploadFile","docInfo","getStorageExtensionInfo","getSecurityInfoList","baseInfo","securityId","securityLevel","changeStorageInstance","storageInfoList","request","fileInfoList","saveSecurityInfo","uploadFileInfoList","reqList","forEach","element","id","exProperty","JSON","stringify","securityInfo","push","getUploadedFileInfoList","formId","getRootSetting","HttpService","UploadFileInfo","GspFormUploadEntity","ExStorageFileInfo","New","Update","LANG_RESOURCES","zh-CHS","uploading","selectedCount","limitCount","rechooseFile","save","haveSameName","rename","replace","sizeZero","uploadFailure","uploadSucceed","wait","saveTo","selectAll","selectNull","detail","fileName","state","operation","size","close","loading","en-US","en","zh-CHT","LocalLangPipe","localeId","defaultLang","langCode","lang","transform","name","Pipe","Inject","FileUploadComponent","msgService","uploadService","loadService","injector","files","errFileList","errTypeList","nullFileList","showType","mouseOn","bufferSize","selectedFileCount","uploadIconAddress","uploadLittleIconAddress","hasSelectedFile","fileAllSelected","uploadProcess","width","fileTotalChunk","requestArray","Array","requestBodyArray","uploadedChunk","uploadedProcess","defaultPropertyName","propertiesNames","securityInfoList","queueListStyle","dropListValue","uploadedFileTotal","haveExtensionProperty","haveSecurityInfo","uploadedFileInfoList","oldUploadedFileList","sameNameAllowed","checkboxPos","top","fileType","fileCount","oldIdList","totalLoad","exStorageFileList","localeid","localepipe","_this","navigator","userAgent","indexOf","subscribe","i","toString","storageExtension","i_1","extensionPropertyNameList","parse","length","showLoading","fileSelected","$event","selectedFiles","document","querySelector","selectedNum","warning","selectedFile","this_1","uuid","UUID","find","x","msg_1","show","initialState","buttons","text","cls","handle","newName","oldName","flag","substring","lastIndexOf","FileState","splice","filter","name_1","listToString","name_2","slice","target","value","showErrorMessage","file","errorMessage","fileInfo","type","source","getFileSize","fileSize","picListDisplayName","getPicListDisplayName","queueListDisplayName","getQueueDisplayName","hasUploaded","selectd","isUploading","uploadResult","extensionDropListId","extensionName","securityDropListId","chunkTotal","Math","ceil","chunkIndex","uploadFileInfo","uploadInfo","this_2","total","nextSize","min","fileData","reader","FileReader","readAsBinaryString","innerIndex","onload","fileContent","btoa","result","index","exPropertyName","info","Message","Number","parseInt","toFixed","concat","includes","addDocInfo","DocType","selectAllFile","checkoutSelectFile","listDeleteFile","listMultipleDeleteFile","getElementById","checked","metadataList","allBox","selectdFile","docType","reader_1","readAsDataURL","_event","imgUrl","sanitizer","DomSanitizer","bypassSecurityTrustResourceUrl","strList","securityChange","data","typeChange","exStorageFileInfo","findIndex","upload","loading_1","message","map","getUploadFileInfoList","showByGroup","showByList","mouseOver","mouseOut","MessagerService","LoadingService","Injector","Input","ViewChild","DownloadService","getDownloadUrl","getToken","mergeString","getMultipleDownloadUrl","list","getMultipleDownloadUrlWithName","zipName","endsWith","encodeURIComponent","getHistoryDownloadUrl","version","str","str1","array","floor","str2","str3","randomArray","random","timeStamp","round","Date","getTime","switchStr","ɵ0$1","UploadModule","CommonModule","ButtonsModule","NotifyModule","MessagerModule","forRoot","LoadingModule","ProgressModule","FormsModule","ComboListModule","entryComponents","ɵa","UploadDialogComponent","modalService","showDialog","dlg","title","height","iconCls","fileUpload","showButtons","content","BsModalService","UploadDialogService","componentFactoryResolver","localpipe","Promise","resolve","viewerRef","resolveComponentFactory","create","instance","showMaxButton","beforeClose","uploadFileWithLimit","limit","uploadRef","ComponentFactoryResolver","UploadDialogMoudle","FarrisDialogModule","HttpClientModule","UploadLimit","GspFormUploadListEntity","GspDocMetaProperty","FileInfo","GspDocSecurityBaseInfo","SecurityEntity"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormdocUploadService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-formdoc-upload',\n template: `\n <p>\n formdoc-upload works!\n </p>\n `,\n styles: []\n})\nexport class FormdocUploadComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { LOCALE_ID, NgModule } from '@angular/core';\nimport { LanguageService } from '@ecp-caf/caf-common';\nimport { FormdocUploadComponent } from './formdoc-upload.component';\nimport { LocalLangPipe } from './local.pipe';\n\n\n@NgModule({\n declarations: [FormdocUploadComponent],\n imports: [\n ],\n \n exports: [FormdocUploadComponent],\n providers:[ LanguageService,\n { provide: LOCALE_ID, useValue: localStorage.getItem('languageCode') || 'zh-CHS' },]\n})\nexport class FormdocUploadModule { }\n","export enum DocType{\r\n Word,\r\n Excel,\r\n Powerpoint,\r\n Pdf,\r\n Txt,\r\n Image,\r\n Other\r\n}","import { GspDocMetaProperty } from './gspdocmetaproperty';\r\n\r\nexport class GspFormDocInfo {\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileContent: string;\r\n public index: number;\r\n public total: number;\r\n public exPropertyName: string;\r\n public extProperty: GspDocMetaProperty;\r\n}","export enum OperatingModes{\r\n Formal,\r\n Temp\r\n}","import { OperatingModes } from \"./operatingmodes\";\r\n\r\nexport class GspFormRemoveListEntity {\r\n public metadataIdList: string[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspFormDocOperateEntity {\r\n public metadataIdList: string[];\r\n public rootId: string;\r\n}","import { ExStorageFileInfo } from './extensionstoragefileinfo';\r\n\r\nexport class ChangeInstanceRequest {\r\n public fileInfoList: ExStorageFileInfo[];\r\n public rootId: string;\r\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GspFormUploadListEntity } from './entity/gspformuploadlistentity';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { catchError, tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { GspFormRemoveListEntity } from './entity/gspformremovelistentity';\nimport { of } from 'rxjs/observable/of';\nimport { GspFormDocOperateEntity } from './entity/gspformdocoperateentity';\n\nimport { GspFormUploadEntity } from './entity/gspformuploadentity';\nimport { ExStorageFileInfo } from './entity/extensionstoragefileinfo';\nimport { ChangeInstanceRequest } from './entity/changeinstancerequest';\nimport { OperatingModes } from './entity/operatingmodes';\nimport { GspDocSecurityBaseInfo } from './entity/gspdocsecuritynaseinfo';\nimport { UploadFileInfo } from './entity/uploadfileinfo';\nimport { ExPropertyRequest } from './entity/expropertyrequest';\n\n\n\n@Injectable()\nexport class UploadService {\n\n constructor(private http: HttpService) { }\n\n uploadList(docListInfo: GspFormUploadListEntity, rootId: string): Observable<any> {\n let url;\n docListInfo.rootId = rootId;\n\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docListInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n commit(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/commit\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/commit\";\n\n return this.http.post(url, entity).pipe();\n }\n\n cancel(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/cancel\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/cancel\";\n //localStorage.setItem(\"SessionId\",\"huoliang\");\n return this.http.put(url, entity).pipe();\n }\n\n removeList(idList: string[], rootId: string) {\n let url;\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/list\";\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n var idListInfo = new GspFormRemoveListEntity;\n idListInfo.metadataIdList = idList;\n idListInfo.mode = OperatingModes.Temp;\n idListInfo.rootId = rootId;\n return this.http.delete(url, idListInfo).pipe();\n }\n\n getFile(metadataId: string, rootId: string) {\n\n let url;\n if (rootId == \"\")\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId;\n else\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId + \"/\" + rootId;\n return this.http.get(url).pipe(tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n\n }\n\n uploadFile(docInfo: GspFormUploadEntity): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getStorageExtensionInfo(): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/extension\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n getSecurityInfoList(baseInfo: GspDocSecurityBaseInfo): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/security\";\n url=url+\"?id=\"+baseInfo.securityId+\"&level=\"+baseInfo.securityLevel;\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n changeStorageInstance(storageInfoList: ExStorageFileInfo[], rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/changeinstance\";\n let request: ChangeInstanceRequest = new ChangeInstanceRequest;\n request.fileInfoList = storageInfoList;\n request.rootId = rootId;\n return this.http.post(url, request).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n saveSecurityInfo(uploadFileInfoList: UploadFileInfo[],rootId:string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/doc/exproperty\";\n let reqList:ExPropertyRequest[]=[];\n uploadFileInfoList.forEach(element=>{\n let request:ExPropertyRequest={id:element.metadataId,rootId:rootId,exProperty:JSON.stringify(element.securityInfo)};\n reqList.push(request);\n })\n return this.http.post(url, reqList).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }))\n }\n\n\n getUploadedFileInfoList(formId: string, rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist\" + \"?formid=\" + formId + \"&rootid=\" + rootId;\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n getRootSetting(rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/rootsetting/\" + rootId;\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n}\n","import { FileState } from \"./filestate\";\r\nimport { SecurityEntity } from \"./securityentity\";\r\n\r\nexport class UploadFileInfo {\r\n\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileSize: string;\r\n public state: FileState;\r\n public securityInfo: SecurityEntity;\r\n\r\n}","import { OperatingModes } from './operatingmodes';\r\nimport { GspFormDocInfo } from './gspformdocinfo';\r\n\r\nexport class GspFormUploadEntity{\r\n public formId: string;\r\n public docInfo: GspFormDocInfo;\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n\r\n}","export class ExStorageFileInfo {\r\n public metadataId: string;\r\n public exPropertyName: string;\r\n}","export enum FileState{\r\n New,\r\n Update\r\n}","export const LANG_RESOURCES = {\r\n 'zh-CHS': {\r\n 'uploadFile': '上传文件',\r\n 'uploading':'正在上传文件……',\r\n 'selectedCount':'已选择文件数量:',\r\n 'limitCount':'超出系统限制数量:',\r\n 'rechooseFile':',重新选择上传文件。',\r\n 'save':'保存',\r\n 'cancel':'取消',\r\n 'haveSameName':'已上传过同名文件: ',\r\n 'rename':'重命名',\r\n\t\t'replace':'替换',\r\n 'sizeZero':'文件大小为0',\r\n 'uploadFailure':'上传失败',\r\n 'uploadSucceed':'上传成功',\r\n 'wait':'等一下,文档正在上传。',\r\n 'saveTo':'正在将文件保存到',\r\n 'delete':'删除',\r\n 'selectAll':'全选',\r\n 'selectNull':'全不选',\r\n 'detail':'详情',\r\n 'fileName':'文件名',\r\n 'state':'状态',\r\n 'operation':'操作',\r\n 'size':'大小',\r\n 'close':'关闭',\r\n 'loading':'拼命加载中'\r\n },\r\n 'en-US': {\r\n 'uploadFile': 'Upload File',\r\n 'uploading':'File Uploading……',\r\n 'selectedCount':'Selected files count:',\r\n 'limitCount':'System limit count:',\r\n 'rechooseFile':',Reselect upload file.',\r\n 'save':'Save',\r\n 'cancel':'Cancel',\r\n 'haveSameName':'A file with the same name has been uploaded: ',\r\n 'rename':'Rename',\r\n\t\t'replace':'Replace',\r\n 'sizeZero':'File size is 0',\r\n 'uploadFailure':'Upload failed',\r\n 'uploadSucceed':'Upload successfully',\r\n 'wait':'Wait a minute, the file is uploading.',\r\n 'saveTo':'Saving file to',\r\n 'delete':'Delete',\r\n 'selectAll':'Select all',\r\n 'selectNull':'Not at all',\r\n 'detail':'Details',\r\n 'fileName':'Filename',\r\n 'state':'State',\r\n 'operation':'Operation',\r\n 'size':'Size',\r\n 'close':'Close',\r\n 'loading':'Loading'\r\n },\r\n 'en': {\r\n 'uploadFile': 'Upload File',\r\n 'uploading':'File Uploading……',\r\n 'selectedCount':'Selected files count:',\r\n 'limitCount':'System limit count:',\r\n 'rechooseFile':',Reselect upload file.',\r\n 'save':'Save',\r\n 'cancel':'Cancel',\r\n 'haveSameName':'A file with the same name has been uploaded: ',\r\n 'rename':'Rename',\r\n\t\t'replace':'Replace',\r\n 'sizeZero':'File size is 0',\r\n 'uploadFailure':'Upload failed',\r\n 'uploadSucceed':'Upload successfully',\r\n 'wait':'Wait a minute, the file is uploading.',\r\n 'saveTo':'Saving file to',\r\n 'delete':'Delete',\r\n 'selectAll':'Select all',\r\n 'selectNull':'Not at all',\r\n 'detail':'Details',\r\n 'fileName':'Filename',\r\n 'state':'State',\r\n 'operation':'Operation',\r\n 'size':'Size',\r\n 'close':'Close',\r\n 'loading':'Loading'\r\n\r\n },\r\n 'zh-CHT': {\r\n 'uploadFile': '上傳文件',\r\n 'uploading':'正在上傳文件……',\r\n 'selectedCount':'已選擇文件數量:',\r\n 'limitCount':'超出系統限制數量:',\r\n 'rechooseFile':',重新選擇上傳文件。',\r\n 'save':'保存',\r\n 'cancel':'取消',\r\n 'haveSameName':'已上傳過同名文件: ',\r\n 'rename':'重命名',\r\n\t\t'replace':'替換',\r\n 'sizeZero':'文件大小為0',\r\n 'uploadFailure':'上傳失敗',\r\n 'uploadSucceed':'上傳成功',\r\n 'wait':'等一下,文件正在上傳。',\r\n 'saveTo':'正在將文件保存到',\r\n 'delete':'删除',\r\n 'selectAll':'全選',\r\n 'selectNull':'全不選',\r\n 'detail':'詳情',\r\n 'fileName':'文件名',\r\n 'state':'狀態',\r\n 'operation':'操作',\r\n 'size':'大小',\r\n 'close':'關閉',\r\n 'loading':'拼命加載中'\r\n },\r\n};","import { Pipe, PipeTransform, Inject, LOCALE_ID } from '@angular/core';\r\nimport { LANG_RESOURCES } from './i18n/language.resource';\r\n\r\n@Pipe({ name: 'locale' })\r\nexport class LocalLangPipe implements PipeTransform {\r\n private readonly defaultLang: string = \"zh-CHS\";\r\n private langCode: string;\r\n private lang: {};\r\n constructor(\r\n @Inject(LOCALE_ID) localeId: string\r\n ) {\r\n this.langCode = localStorage.getItem(\"languageCode\") || localeId || this.defaultLang;\r\n this.lang = LANG_RESOURCES[this.langCode] || LANG_RESOURCES[this.defaultLang];\r\n }\r\n transform(name: string): any {\r\n return this.lang[name] || name;\r\n }\r\n}\r\n\r\n","import { Component, OnInit, Input, ViewChild, TemplateRef, Optional, Injector, LOCALE_ID } from '@angular/core';\nimport { FileInfo } from '../entity/fileinfo';\nimport { DocType } from '../entity/doctype';\nimport { GspFormDocInfo } from '../entity/gspformdocinfo';\nimport { OperatingModes } from '../entity/operatingmodes';\nimport { UploadService } from '../upload.service';\nimport { UploadFileInfo } from '../entity/uploadfileinfo';\nimport { MessagerService } from '@farris/ui-messager';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { GspFormUploadEntity } from '../entity/gspformuploadentity';\nimport { UUID } from 'angular2-uuid';\nimport { StorageExtension } from '../entity/storageextension';\nimport { ExStorageFileInfo } from '../entity/extensionstoragefileinfo';\nimport { DropListEntity } from '../entity/droplistentity';\nimport { LoadingService } from '@farris/ui-loading';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { fillProperties } from '@angular/core/src/util/property';\nimport { FileState } from '../entity/filestate';\nimport { LocalLangPipe } from '../../local.pipe';\nimport { GspDocSecurityBaseInfo } from '../entity/gspdocsecuritynaseinfo';\nimport { state } from '@angular/animations';\nimport { SecurityEntity } from '../entity/securityentity';\n\n\n@Component({\n selector: 'app-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.css'],\n})\nexport class FileUploadComponent implements OnInit {\n\n files: FileInfo[] = [];\n metadataIdList: string[] = [];\n uploadFileInfoList: UploadFileInfo[] = [];\n errFileList: string[] = [];\n errTypeList: string[] = [];\n nullFileList: string[] = [];\n showType: number = 0;\n mouseOn: boolean = false;\n bufferSize = 1024 * 1024;\n selectedFiles: any;\n\n selectedFileCount: number = 0;\n\n uploadIconAddress = '/platform/runtime/dfs/images/upload.svg';\n uploadLittleIconAddress = '/platform/runtime/dfs/images/uploadIcon.svg';\n\n hasSelectedFile: boolean = false;\n\n fileAllSelected: boolean = false;\n\n uploadProcess = { width: '0%' };\n\n fileTotalChunk: { [key: string]: number } = {};\n //fileUploadState: { [key: string]: boolean } = {};\n //flag: number = 0;\n requestArray: Array<Observable<any>> = new Array;\n\n requestBodyArray: Array<GspFormUploadEntity> = new Array;\n\n uploadedChunk: { [key: string]: number } = {};\n uploadedProcess: { [key: string]: number } = {};\n\n //allSelected: boolean = true;\n storageExtension: StorageExtension;\n\n defaultPropertyName: string = \"\";\n propertiesNames: DropListEntity[] = [];\n\n securityInfoList: SecurityEntity[] = [];\n\n queueListStyle = { width: '480px' };\n\n dropListValue: string = \"\";\n\n uploadedFileTotal: number = 0;\n\n haveExtensionProperty: boolean = false;\n\n haveSecurityInfo: boolean = false;\n\n uploadedFileInfoList = [];\n oldUploadedFileList = [];\n //uploadedNameList = [];\n\n sameNameAllowed = true;\n\n localeid: string;\n localepipe: LocalLangPipe;\n\n checkboxPos = { top: '0px' }\n\n constructor(private msgService: MessagerService, private uploadService: UploadService, private loadService: LoadingService, private injector?: Injector) {\n if (this.injector) {\n\n this.localeid = localStorage.getItem(\"languageCode\") || this.injector.get(LOCALE_ID);\n this.localepipe = new LocalLangPipe(this.localeid);\n }\n }\n @Input() formId: string;\n @Input() rootId: string;\n @Input() fileType: string = \"*\";\n @Input() fileCount: number = 0;\n @Input() oldIdList: string[] = [];\n @Input() securityInfo: GspDocSecurityBaseInfo = null;\n\n //@Output() onCustomEvent: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('opCell') opCell: TemplateRef<any>;\n\n ngOnInit() {\n if (navigator.userAgent.indexOf('Firefox') >= 0)\n this.checkboxPos.top = '14px';\n //if (this.storageService != null) {\n if (this.securityInfo != null) {\n this.uploadService.getSecurityInfoList(this.securityInfo).subscribe(\n res => {\n this.haveSecurityInfo = true;\n let i = 0;\n res.forEach(element => {\n this.securityInfoList.push({ id: i.toString(), securityId: element.securityId, securityLevel: element.securityLevel, name: element.name });\n i++;\n });\n }\n )\n }\n this.uploadService.getStorageExtensionInfo().subscribe(\n res => {\n if (res != null && res.error == null) {\n this.storageExtension = res;\n this.defaultPropertyName = this.storageExtension.defaultPropertyName;\n this.propertiesNames.push({ id: \"0\", name: this.storageExtension.defaultPropertyName });\n let i = 0;\n // this.propertiesNames.push(...(this.storageExtension.extensionPropertyNameList));\n this.storageExtension.extensionPropertyNameList.forEach(element => {\n this.propertiesNames.push({ id: (++i).toString(), name: element });\n });\n this.queueListStyle.width = '380px';\n this.haveExtensionProperty = true;\n }\n }\n )\n\n this.uploadService.getRootSetting(this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.sameNameAllowed = res.sameNameAllowed;\n if (!this.sameNameAllowed) {\n this.uploadService.getUploadedFileInfoList(this.formId, this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.uploadedFileInfoList = res;\n this.oldUploadedFileList = JSON.parse(JSON.stringify(res));;\n\n }\n })\n }\n }\n }\n )\n if (this.oldIdList != null && this.oldIdList.length > 0) {\n this.uploadService.cancel(this.oldIdList, this.rootId).subscribe();\n }\n }\n\n totalLoad: any = null;\n\n showLoading() {\n this.hasSelectedFile = true;\n // if (this.totalLoad == null)\n // this.totalLoad = this.loadService.show({\n // message: this.localepipe.transform('uploading')\n // });\n }\n\n\n fileSelected($event) {\n\n // const loading = this.loadService.show({\n // message: this.localepipe.transform('uploading')\n // });\n\n // this.totalLoad.close();\n // this.totalLoad = null;\n this.hasSelectedFile = true;\n this.selectedFiles = document.querySelector('#file');\n\n if (this.fileCount > 0) {\n if (this.selectedFiles.files.length + this.files.length > this.fileCount) {\n let selectedNum: number = (this.selectedFiles.files.length as number) + this.files.length;\n this.msgService.warning(this.localepipe.transform('selectedCount') + selectedNum + this.localepipe.transform('limitCount') + this.fileCount + this.localepipe.transform('rechooseFile'));\n return;\n }\n }\n\n //this.flag = 0;\n for (let i = 0; i < this.selectedFiles.files.length; i++) {\n let selectedFile = this.selectedFiles.files[i];\n //selectedFile.slice\n let uuid = UUID.UUID();\n if (!this.sameNameAllowed) {\n if (this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name) != null) {\n // this.uploadedNameList.push(selectedFile.name);\n // this.msgService.question('之前已上传过同名文件: ' + selectedFile.name + ',需要替换么?', () => {\n // uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\n // this.uploadFile(uuid, selectedFile);\n // })\n const msg = this.msgService.show('warning', this.localepipe.transform('haveSameName') + selectedFile.name, {\n initialState: {\n buttons: [\n {\n text: this.localepipe.transform('rename'),\n cls: 'btn btn-secondary',\n handle: () => {\n let oldName: string = selectedFile.name;\n let newName\n let flag = true;\n let i = 1;\n while (flag) {\n newName = oldName.substring(0, oldName.lastIndexOf('.')) + '(' + i + ')' + oldName.substring(oldName.lastIndexOf('.'));\n if (this.uploadedFileInfoList.find(x => x.fileName == newName) != null) {\n i++;\n }\n else\n flag = false;\n }\n\n this.uploadFile(uuid, selectedFile, newName);\n msg.close();\n }\n },\n {\n text: this.localepipe.transform('replace'),\n cls: 'btn btn-secondary',\n handle: () => {\n uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\n this.uploadFile(uuid, selectedFile, selectedFile.name, FileState.Update);\n this.uploadedFileTotal--;\n if (this.oldUploadedFileList.find(x => x.fileName == selectedFile.name)) {\n this.uploadedFileTotal++;\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == selectedFile.name)[0]), 1);\n }\n msg.close();\n }\n },\n {\n text: this.localepipe.transform('cancel'),\n cls: 'btn btn-secondary',\n handle: () => {\n msg.close();\n }\n }\n ]\n }\n })\n continue;\n }\n }\n\n // if (this.files.find(x => x.name == selectedFile.name) != null) {\n // this.errFileList.push(selectedFile.name);\n // continue;\n // }\n\n if (selectedFile.size == 0) {\n this.nullFileList.push(selectedFile.name);\n continue;\n }\n\n //this.flag += Math.ceil(selectedFile.size / this.bufferSize);\n //let reader = new FileReader();\n this.uploadFile(uuid, selectedFile, selectedFile.name);\n\n }\n // if (this.uploadedNameList.length > 0) {\n // let name: string = this.listToString(this.uploadedNameList);\n // this.msgService.warning('之前已上传过同名文件: ' + name + '请重新选择上传文件。');\n // this.uploadedNameList = [];\n // }\n\n if (this.errFileList.length > 0) {\n let name: string = this.listToString(this.errFileList);\n this.msgService.warning(this.localepipe.transform('haveSameName') + name + this.localepipe.transform('rechooseFile'));\n this.errFileList = [];\n }\n\n if (this.nullFileList.length > 0) {\n let name: string = this.listToString(this.nullFileList);\n name = name.substring(0, name.length - 1);\n this.msgService.warning(name + this.localepipe.transform('sizeZero') + this.localepipe.transform('rechooseFile'));\n this.nullFileList = [];\n }\n // if (this.errTypeList.length > 0) {\n // let type: string = this.listToString(this.errTypeList);\n // this.msgService.warning('不支持上传类型为 ' + type + '的文件请重新选择上传文件。');\n // this.errTypeList = [];\n // }\n this.files = this.files.slice();\n this.fileAllSelected = false;\n $event.target.value = '';\n // loading.close();\n }\n\n showErrorMessage(file) {\n this.msgService.error(this.localepipe.transform('uploadFailure') + file.errorMessage);\n }\n\n\n uploadFile(uuid: string, selectedFile, fileName: string, state: FileState = FileState.New) {\n let fileInfo: FileInfo;\n // let uuid = UUID.UUID();\n //reader.readAsBinaryString(selectedFile);\n //reader.onload = (e) => {\n fileInfo = {\n id: uuid,\n name: fileName,\n type: selectedFile.type,\n source: \"\",\n size: this.getFileSize(selectedFile.size),\n fileSize: selectedFile.size,\n picListDisplayName: this.getPicListDisplayName(fileName),\n queueListDisplayName: this.getQueueDisplayName(fileName),\n //content: reader.result.toString(),\n hasUploaded: false,\n mouseOn: false,\n selectd: false,\n isUploading: true,\n uploadResult: false,\n uploadProcess: 0,\n errorMessage: \"\",\n extensionDropListId: 0,\n extensionName: \"\",\n securityDropListId: 0,\n securityInfo: this.securityInfoList[0]\n }\n\n if (this.storageExtension != null)\n fileInfo.extensionName = this.defaultPropertyName;\n let chunkTotal: number = Math.ceil(selectedFile.size / this.bufferSize);\n let chunkIndex: number = 0;\n\n\n this.fileTotalChunk[uuid] = chunkTotal;\n\n let uploadFileInfo = new UploadFileInfo();\n\n uploadFileInfo.metadataId = uuid;\n uploadFileInfo.fileName = fileInfo.name;\n uploadFileInfo.fileSize = fileInfo.size;\n uploadFileInfo.state = state;\n uploadFileInfo.securityInfo = this.securityInfoList[0];\n\n\n while (chunkIndex < chunkTotal) {\n let uploadInfo = new GspFormUploadEntity;\n uploadInfo.formId = this.formId;\n uploadInfo.mode = OperatingModes.Temp;\n uploadInfo.rootId = this.rootId;\n\n let docInfo: GspFormDocInfo = new GspFormDocInfo;\n\n docInfo.fileName = fileName;\n docInfo.metadataId = uuid;\n docInfo.total = chunkTotal;\n\n this.uploadedChunk[docInfo.metadataId] = 0;\n\n let nextSize = Math.min((chunkIndex + 1) * this.bufferSize, selectedFile.size);\n let fileData = selectedFile.slice(chunkIndex * this.bufferSize, nextSize);\n let reader = new FileReader();\n reader.readAsBinaryString(fileData);\n let innerIndex = chunkIndex;\n reader.onload = () => {\n docInfo.fileContent = btoa(reader.result.toString());\n\n docInfo.index = innerIndex;\n //chunkIndex++;\n if (this.haveExtensionProperty)\n docInfo.exPropertyName = this.defaultPropertyName;\n //docInfo.isLast = true;\n uploadInfo.docInfo = docInfo;\n\n let info = uploadInfo;\n\n // this.requestArray.push(this.uploadService.uploadFile(uploadInfo));\n this.requestBodyArray.push(info);\n\n this.uploadService.uploadFile(info).subscribe(res => {\n if (res != null) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\n } else {\n this.uploadedChunk[docInfo.metadataId]++;\n this.files[this.files.indexOf(fileInfo)].uploadProcess = Number.parseInt((this.uploadedChunk[docInfo.metadataId] / this.fileTotalChunk[docInfo.metadataId] * 100).toFixed(0));\n if (this.uploadedChunk[docInfo.metadataId] == this.fileTotalChunk[docInfo.metadataId]) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = true;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.uploadFileInfoList = this.uploadFileInfoList.concat(uploadFileInfo);\n this.uploadedFileInfoList = this.uploadedFileInfoList.concat(uploadFileInfo);\n this.uploadedFileTotal++;\n }\n }\n });\n }\n //console.log(chunkIndex + 1);\n chunkIndex = chunkIndex + 1;\n }\n\n let type: string = selectedFile.type;\n if (type.includes(\"tiff\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n }\n else if (type.includes(\"image\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Image);\n }\n else if (type.includes(\"word\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Word);\n }\n else if (type.includes(\"pdf\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Pdf);\n }\n else if (type.includes(\"plain\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Txt);\n }\n else if (type.includes(\"sheet\") || type.includes(\"excel\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Excel)\n }\n else if (type.includes(\"powerpoint\") || type.includes(\"presentation\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Powerpoint);\n }\n else {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n // let name: string = selectedFile.name;\n // let errType = name.substring(selectedFile.name.lastIndexOf('.'));\n // this.errTypeList.push(errType);\n }\n let index = -1;\n this.files.forEach(x => {\n if (x.name == fileInfo.name) {\n if (index == -1)\n index = this.files.indexOf(x);\n }\n })\n if (index != -1 && index != this.files.length - 1) {\n this.files.splice(index, 1);\n this.uploadFileInfoList.splice(index, 1);\n this.uploadedFileInfoList.splice(index, 1);\n this.uploadedFileTotal--;\n }\n }\n\n\n selectAllFile() {\n\n if (!this.fileAllSelected) {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = true;\n element.selectd = true;\n });\n this.fileAllSelected = true;\n this.selectedFileCount = this.files.length;\n\n } else {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = false;\n element.selectd = false;\n });\n this.fileAllSelected = false;\n this.selectedFileCount = 0;\n }\n }\n\n\n checkoutSelectFile(file: FileInfo) {\n // let obj: any = document.getElementById(fileName);\n file.selectd = !file.selectd;\n if (file.selectd)\n this.selectedFileCount++;\n else\n this.selectedFileCount--;\n if (this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n //this.isFileAllSelected();\n }\n else {\n this.fileAllSelected = false;\n //this.isFileAllSelected();\n }\n\n }\n\n listDeleteFile(fileInfo: FileInfo) {\n if (fileInfo.selectd)\n this.selectedFileCount--;\n //console.log(fileName);\n this.files.splice(this.files.indexOf(fileInfo), 1);\n if (fileInfo.uploadResult) {\n let idList: string[] = [];\n idList.push(fileInfo.id);\n this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n if (this.selectedFileCount == 0)\n this.fileAllSelected = false;\n }\n\n listMultipleDeleteFile() {\n let selectedFile: FileInfo[] = [];\n this.files.forEach(element => {\n let obj: any = document.getElementById(element.name);\n if (obj.checked)\n selectedFile.push(element);\n })\n let metadataList: string[] = [];\n selectedFile.forEach(element => {\n metadataList.push(element.id);\n this.files.splice(this.files.indexOf(element), 1);\n if (element.uploadResult) {\n // let idList: string[] = [];\n // idList.push(fileInfo.id);\n // this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n })\n this.uploadService.cancel(metadataList, this.rootId).subscribe();\n\n let allBox: any = document.getElementById(\"allCheckBox\");\n if (allBox != null)\n allBox.checked = false;\n this.selectedFileCount = 0;\n this.fileAllSelected = false;\n }\n\n\n getPicListDisplayName(fileName: string) {\n if (fileName.length <= 10)\n return fileName;\n else {\n let headContent = fileName.substring(0, 2);\n let tailContent = fileName.substring(fileName.lastIndexOf('.') - 2);\n return headContent + \"…\" + tailContent;\n }\n }\n\n getQueueDisplayName(fileName: string) {\n return fileName;\n }\n\n addDocInfo(selectdFile, fileInfo: FileInfo, docType: DocType) {\n switch (docType) {\n case DocType.Word: {\n fileInfo.source = \"/platform/runtime/dfs/images/word.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Pdf: {\n fileInfo.source = \"/platform/runtime/dfs/images/pdf.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Excel: {\n fileInfo.source = \"/platform/runtime/dfs/images/excel.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Txt: {\n fileInfo.source = \"/platform/runtime/dfs/images/txt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Powerpoint: {\n fileInfo.source = \"/platform/runtime/dfs/images/ppt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Other: {\n fileInfo.source = \"/platform/runtime/dfs/images/file.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Image:\n let reader = new FileReader();\n\n reader.readAsDataURL(selectdFile);\n reader.onload = (_event) => {\n let imgUrl = reader.result;\n if (this.injector != null) {\n let sanitizer = this.injector.get(DomSanitizer);\n fileInfo.source = sanitizer.bypassSecurityTrustResourceUrl(imgUrl);\n } else\n fileInfo.source = imgUrl;\n this.files.push(fileInfo);\n }\n break;\n }\n\n }\n\n listToString(strList: string[]) {\n let name: string = \"\";\n for (let i = 0; i < strList.length; i++) {\n name += strList[i] + \",\";\n }\n return name;\n }\n\n securityChange($event: any, file: FileInfo) {\n file.securityInfo = $event.data;\n let uploadFile=this.uploadFileInfoList.filter(x=>x.metadataId=file.id)[0];\n uploadFile.securityInfo= $event.data;\n }\n\n\n exStorageFileList: ExStorageFileInfo[] = [];\n\n typeChange($event: any, file: FileInfo) {\n file.extensionName = $event.data.name;\n let exStorageFileInfo: ExStorageFileInfo = new ExStorageFileInfo;\n if (file.extensionName == this.storageExtension.defaultPropertyName) {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0)\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1)\n } else {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n exStorageFileInfo = this.exStorageFileList.filter(x => x.metadataId == file.id)[0];\n exStorageFileInfo.exPropertyName = file.extensionName;\n } else {\n exStorageFileInfo.metadataId = file.id;\n exStorageFileInfo.exPropertyName = file.extensionName;\n this.exStorageFileList.push(exStorageFileInfo);\n }\n }\n }\n\n upload(): Observable<any> {\n if (this.uploadedFileTotal != this.files.filter(x => x.isUploading || x.uploadResult).length) {\n // this.notifyService.success(<NotifyOptions>{\n // msg: '保存成功!', timeout: 3000\n // });\n this.msgService.warning(this.localepipe.transform('wait'));\n return of(false);\n }\n if(this.haveSecurityInfo){\n this.uploadService.saveSecurityInfo(this.uploadFileInfoList,this.rootId).subscribe();\n }\n if (this.storageExtension == null)\n return of(this.uploadFileInfoList);\n else {\n if (this.exStorageFileList.length == 0)\n return of(this.uploadFileInfoList);\n else {\n const loading = this.loadService.show({\n message: this.localepipe.transform('saveTo') + this.storageExtension.extensionName\n });\n return this.uploadService.changeStorageInstance(this.exStorageFileList, this.rootId).pipe(\n map(res => {\n // if (res != null)\n // this.msgService.error('保存到' + this.storageExtension.extensionName + \"失败,上传文件自动保存到\" + this.storageExtension.defaultPropertyName + \"存储。\" + res.error.Message);\n loading.close();\n return this.uploadFileInfoList;\n }))\n }\n }\n }\n\n cancel() {\n if (this.uploadFileInfoList.length == 0)\n return;\n this.uploadFileInfoList.forEach(element => {\n this.metadataIdList.push(element.metadataId);\n })\n this.uploadService.cancel(this.metadataIdList, this.rootId).subscribe();\n\n }\n\n getUploadFileInfoList() {\n return this.uploadFileInfoList;\n }\n\n delete(file) {\n this.files.splice(this.files.indexOf(file), 1);\n if (file.uploadResult)\n this.uploadedFileTotal--;\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1);\n }\n // var obj:any = document.querySelector('#file');\n // obj.files.remove();\n //obj.value='';\n }\n\n getFileSize(size: number) {\n if (size < 102400)\n return (size / 1024).toFixed(1) + \"K\";\n else if (size < 1024 * 1024)\n return (size / 1024).toFixed(0) + \"K\";\n else if (size < 100 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(1) + \"M\";\n else if (size < 1024 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(0) + \"M\";\n else\n return (size / 1024 / 1024 / 1024).toFixed(1) + \"G\";\n }\n showByGroup() {\n this.showType = 0;\n // this.selectedFileCount = 0;\n }\n\n showByList() {\n this.showType = 1;\n // this.selectedFileCount = 0;\n if (this.selectedFileCount != 0 && this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n }\n }\n\n mouseOver(file) {\n file.mouseOn = true;\n }\n mouseOut(file) {\n file.mouseOn = false;\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class DownloadService {\n\n constructor() { }\n\n getDownloadUrl(metadataId: string, rootId: string) {\n return \"/api/runtime/dfs/v1.0/doc/filecontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n getMultipleDownloadUrl(metadataIdList: string, rootId: string) {\n let list: string[] = JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId));\n }\n\n getMultipleDownloadUrlWithName(metadataIdList: string, rootId: string, zipName: string) {\n let list: string[] = JSON.parse(metadataIdList);\n if (zipName == null || zipName == \"\")\n zipName = 'unifile.zip';\n if (!zipName.endsWith(\".zip\"))\n zipName += '.zip';\n\n\n\n return \"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId)) + \"&zipName=\" + encodeURIComponent(zipName);\n }\n\n getHistoryDownloadUrl(metadataId: string, rootId: string, version: string) {\n //let list:string[]=JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/historycontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&version=\" + version + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n\n\n private mergeString(str: string, str1: string): string {\n let min = str.length < str1.length ? str.length : str1.length;\n let res: string = \"\";\n let i = 0;\n for (i = 0; i < min; i++) {\n res += str.substring(i, i + 1);\n res += str1.substring(i, i + 1);\n }\n res += str.length < str1.length ? str1.substring(i) : str.substring(i);\n return res;\n }\n\n private getToken(str: string): string {\n let array = [1, 2, 3];\n if (str.length > 24)\n str = str.substring(0, 24);\n let length = Math.floor(str.length / 3);\n let str1 = str.substring(0, length);\n let str2 = str.substring(length, 2 * length);\n let str3 = str.substring(2 * length, 3 * length);\n let randomArray = [];\n var random = Math.ceil(Math.random() * 3);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n random = Math.ceil(Math.random() * 2);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n randomArray.push(array[0]);\n let timeStamp: string = Math.round(new Date().getTime() / 1000) + \"\";\n\n return timeStamp.substring(0, 5) + \"times\" + randomArray[0] + \"\" + randomArray[1] + \"\" + randomArray[2] + this.switchStr(str1, str2, str3, randomArray[0]) + this.switchStr(str1, str2, str3, randomArray[1]) + this.switchStr(str1, str2, str3, randomArray[2]) + \"times\" + timeStamp.substring(5);\n }\n\n private switchStr(str1: string, str2: string, str3: string, i: number): string {\n switch (i) {\n case 1: return str1;\n case 2: return str2;\n case 3: return str3;\n }\n }\n\n\n}\n","import { LOCALE_ID, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploadComponent } from './file-upload/file-upload.component';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { UploadService } from './upload.service';\nimport { LoadingModule } from '@farris/ui-loading';\nimport { ProgressModule } from '@farris/ui-progress'\nimport { FormsModule } from '@angular/forms';\nimport { ComboListModule } from '@farris/ui-combo-list';\nimport { DownloadService } from './download.service';\nimport { LocalLangPipe } from '../local.pipe';\nimport { LanguageService } from '@ecp-caf/caf-common';\n\n\n\n@NgModule({\n declarations: [FileUploadComponent,LocalLangPipe],\n imports: [\n CommonModule,\n ButtonsModule,\n NotifyModule,\n MessagerModule.forRoot(),\n LoadingModule.forRoot(),\n ProgressModule,\n FormsModule,\n ComboListModule\n\n ],\n exports: [FileUploadComponent],\n entryComponents: [FileUploadComponent],\n providers: [UploadService, DownloadService, LanguageService,\n { provide: LOCALE_ID, useValue: localStorage.getItem('languageCode') || 'zh-CHS' },]\n\n})\nexport class UploadModule { }\n\nexport const ɵa = UploadModule;\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\nimport { BsModalRef, BsModalService } from '@farris/ui-modal';\nimport { FileUploadComponent } from '../../upload/file-upload/file-upload.component';\n\n@Component({\n selector: 'app-uploaddialog',\n templateUrl: './uploaddialog.component.html',\n styleUrls: ['./uploaddialog.component.css']\n})\nexport class UploadDialogComponent implements OnInit {\n\n dlg: BsModalRef;\n\n metadataIdList:string[]=[];\n\n @Input() formId:string;\n\n constructor(private modalService: BsModalService) { }\n\n @ViewChild(FileUploadComponent) fileUpload: FileUploadComponent;\n\n ngOnInit() {\n }\n\n showDialog() {\n this.dlg = this.modalService.show(FileUploadComponent, {\n title: '选择文件',\n width: 800, height: 500,\n buttons: [\n {\n text: '上传', cls: 'k-button k-button-icontext k-primary', iconCls: \"k-icon k-i-check\", handle: () => {\n this.fileUpload.upload();\n this.dlg.close();\n }\n },\n {\n text: '关闭', cls: 'k-button k-button-icontext', iconCls: \"k-icon k-i-close\", handle: () => {\n this.fileUpload.cancel();\n this.dlg.close();\n }\n }\n ],\n\n showButtons: true,\n\n });\n this.dlg.content.formId=this.formId;\n\n }\n\n}\n","import { Injectable, Injector, ComponentFactoryResolver, LOCALE_ID } from '@angular/core';\r\nimport { FileUploadComponent } from './upload/file-upload/file-upload.component';\r\nimport { BsModalService, BsModalRef } from '@farris/ui-modal';\r\nimport { UploadFileInfo } from './upload/entity/uploadfileinfo';\r\nimport { Observable, of } from 'rxjs';\r\nimport { UploadLimit } from './upload/entity/uploadlimit';\r\nimport { LocalLangPipe } from './local.pipe';\r\n\r\n\r\n@Injectable()\r\nexport class UploadDialogService {\r\n\r\n localeid: string;\r\n localpipe: LocalLangPipe;\r\n constructor(private modalService: BsModalService, private componentFactoryResolver: ComponentFactoryResolver, private injector: Injector) {\r\n if (this.injector) {\r\n this.modalService = this.injector.get(BsModalService);\r\n this.localeid = localStorage.getItem(\"languageCode\") || this.injector.get(LOCALE_ID);\r\n this.localpipe = new LocalLangPipe(this.localeid);\r\n }\r\n }\r\n\r\n dlg: BsModalRef;\r\n\r\n fileInfoList: UploadFileInfo[] = [];\r\n\r\n showDialog(formId: string, rootId: string) {\r\n let flag = 0;\r\n return new Promise(resolve => {\r\n var viewerFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\r\n var viewerRef = viewerFactory.create(this.injector);\r\n\r\n viewerRef.instance.rootId = rootId;\r\n viewerRef.instance.formId = formId;\r\n\r\n this.dlg = this.modalService.show(viewerRef, {\r\n title: this.localpipe.transform('uploadFile'),\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n text: this.localpipe.transform('save'), cls: 'k-button k-button-icontext k-primary', handle: () => {\r\n this.dlg.content.upload().subscribe(\r\n res => {\r\n if (res) {\r\n resolve(res);\r\n flag = 1;\r\n this.dlg.close();\r\n }\r\n }\r\n );\r\n }\r\n },\r\n {\r\n text: this.localpipe.transform('close'), cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n\r\n uploadFile(formId: string, rootId: string, oldIdList: string[] = []) {\r\n return this.uploadFileWithLimit(formId, rootId, null, oldIdList);\r\n }\r\n\r\n\r\n uploadFileWithLimit(formId: string, rootId: string, limit: UploadLimit, oldIdList: string[] = []) {\r\n let flag = 0;\r\n return new Promise(resolve => {\r\n var uploadFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\r\n var uploadRef = uploadFactory.create(this.injector);\r\n if (limit != null) {\r\n uploadRef.instance.fileCount = limit.fileCount;\r\n uploadRef.instance.securityInfo=limit.securityInfo;\r\n if (limit.fileType != null && limit.fileType != \"\")\r\n uploadRef.instance.fileType = limit.fileType\r\n }\r\n\r\n uploadRef.instance.rootId = rootId;\r\n uploadRef.instance.formId = formId;\r\n uploadRef.instance.oldIdList = oldIdList;\r\n\r\n this.dlg = this.modalService.show(uploadRef, {\r\n title: this.localpipe.transform('uploadFile'),\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n\r\n text: this.localpipe.transform('save'), cls: 'k-button k-button-icontext k-primary', handle: () => {\r\n this.dlg.content.upload().subscribe(\r\n res => {\r\n if (res) {\r\n resolve(res);\r\n flag = 1;\r\n this.dlg.close();\r\n }\r\n }\r\n );\r\n }\r\n },\r\n {\r\n text: this.localpipe.transform('close'), cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FarrisDialogModule } from '@farris/ui-dialog';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { BsModalService } from '@farris/ui-modal';\n\nimport { UploadModule } from '../upload/upload.module';\nimport { UploadDialogComponent } from './uploaddialog/uploaddialog.component';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { UploadService } from '../upload/upload.service';\nimport { UploadDialogService } from '../uploaddialog.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { FileUploadComponent } from '../upload/file-upload/file-upload.component';\n\n\n@NgModule({\n declarations: [UploadDialogComponent],\n imports: [\n CommonModule,\n FarrisDialogModule,\n MessagerModule.forRoot(),\n UploadModule,\n ButtonsModule,\n NotifyModule.forRoot(),\n HttpClientModule\n ],\n exports: [UploadDialogComponent,FileUploadComponent],\n entryComponents: [UploadDialogComponent,FileUploadComponent],\n providers: [BsModalService, HttpService, UploadDialogService, UploadService]\n})\nexport class UploadDialogMoudle { }\n","import { GspDocSecurityBaseInfo } from \"./gspdocsecuritynaseinfo\";\r\n\r\nexport class UploadLimit {\r\n public fileType: string = \"*\";\r\n public fileCount: number = 0;\r\n public securityInfo: GspDocSecurityBaseInfo = null;\r\n}","import { GspFormDocInfo } from './gspformdocinfo';\r\nimport { OperatingModes } from './operatingmodes';\r\n\r\nexport class GspFormUploadListEntity {\r\n public formId: string;\r\n public docInfoList: GspFormDocInfo[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspDocMetaProperty{\r\n public extProperties1:string;\r\n public extProperties2:string;\r\n public extProperties3:string;\r\n public extProperties4:string;\r\n public extProperties5:string;\r\n}","import { SecurityEntity } from \"./securityentity\";\r\n\r\nexport class FileInfo {\r\n public id: string;\r\n public name: string;\r\n public type: string;\r\n public source: string | ArrayBuffer;\r\n public picListDisplayName: string;\r\n public queueListDisplayName: string;\r\n //public content: string;\r\n public size: string;\r\n public fileSize: number;\r\n public hasUploaded: boolean;\r\n public mouseOn: boolean;\r\n public selectd: boolean;\r\n public isUploading: boolean;\r\n public uploadResult: boolean;\r\n public uploadProcess: number;\r\n public errorMessage: string;\r\n public extensionDropListId:number;\r\n public extensionName: string;\r\n public securityDropListId:number;\r\n public securityInfo:SecurityEntity;\r\n}","export class GspDocSecurityBaseInfo {\r\n public securityId: string;\r\n public securityLevel: number;\r\n public name: string;\r\n}","export class SecurityEntity {\r\n public id: string;\r\n public securityId: string;\r\n public securityLevel: number;\r\n public name: string;\r\n}"]}
@@ -5,6 +5,6 @@
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
7
7
  */
8
- export { FormdocUploadService, FormdocUploadComponent, FormdocUploadModule, UploadDialogMoudle, UploadDialogComponent, UploadDialogService, UploadService, DownloadService, FileUploadComponent, UploadFileInfo, UploadModule, ɵa, UploadLimit, GspFormDocOperateEntity, GspFormRemoveListEntity, GspFormUploadListEntity, GspFormDocInfo, GspDocMetaProperty, GspFormUploadEntity, FileInfo, OperatingModes, FileState } from './public-api';
8
+ export { FormdocUploadService, FormdocUploadComponent, FormdocUploadModule, UploadDialogMoudle, UploadDialogComponent, UploadDialogService, UploadService, DownloadService, FileUploadComponent, UploadFileInfo, UploadModule, ɵa, UploadLimit, GspFormDocOperateEntity, GspFormRemoveListEntity, GspFormUploadListEntity, GspFormDocInfo, GspDocMetaProperty, GspFormUploadEntity, FileInfo, OperatingModes, FileState, GspDocSecurityBaseInfo, SecurityEntity, ExStorageFileInfo } from './public-api';
9
9
  export { LocalLangPipe as ɵb } from './lib/local.pipe';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3NwLXN2Yy1mb3JtZG9jLXVwbG9hZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bnc3Atc3ZjL2Zvcm1kb2MtdXBsb2FkLyIsInNvdXJjZXMiOlsiZ3NwLXN2Yy1mb3JtZG9jLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsK1pBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TG9jYWxMYW5nUGlwZSBhcyDJtWJ9IGZyb20gJy4vbGliL2xvY2FsLnBpcGUnOyJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3NwLXN2Yy1mb3JtZG9jLXVwbG9hZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bnc3Atc3ZjL2Zvcm1kb2MtdXBsb2FkLyIsInNvdXJjZXMiOlsiZ3NwLXN2Yy1mb3JtZG9jLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsMGRBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7TG9jYWxMYW5nUGlwZSBhcyDJtWJ9IGZyb20gJy4vbGliL2xvY2FsLnBpcGUnOyJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export class ExPropertyRequest {
6
+ }
7
+ if (false) {
8
+ /** @type {?} */
9
+ ExPropertyRequest.prototype.id;
10
+ /** @type {?} */
11
+ ExPropertyRequest.prototype.rootId;
12
+ /** @type {?} */
13
+ ExPropertyRequest.prototype.exProperty;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcm9wZXJ0eXJlcXVlc3QuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L2V4cHJvcGVydHlyZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8saUJBQWlCO0NBSTdCOzs7SUFIRywrQkFBaUI7O0lBQ2pCLG1DQUFxQjs7SUFDckIsdUNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEV4UHJvcGVydHlSZXF1ZXN0e1xyXG4gICAgcHVibGljIGlkOnN0cmluZztcclxuICAgIHB1YmxpYyByb290SWQ6c3RyaW5nO1xyXG4gICAgcHVibGljIGV4UHJvcGVydHk6c3RyaW5nO1xyXG59Il19
@@ -39,5 +39,9 @@ if (false) {
39
39
  FileInfo.prototype.extensionDropListId;
40
40
  /** @type {?} */
41
41
  FileInfo.prototype.extensionName;
42
+ /** @type {?} */
43
+ FileInfo.prototype.securityDropListId;
44
+ /** @type {?} */
45
+ FileInfo.prototype.securityInfo;
42
46
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZWluZm8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L2ZpbGVpbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sUUFBUTtDQW1CcEI7OztJQWxCRyxzQkFBa0I7O0lBQ2xCLHdCQUFvQjs7SUFDcEIsd0JBQW9COztJQUNwQiwwQkFBb0M7O0lBQ3BDLHNDQUFrQzs7SUFDbEMsd0NBQW9DOztJQUVwQyx3QkFBb0I7O0lBQ3BCLDRCQUF3Qjs7SUFDeEIsK0JBQTRCOztJQUM1QiwyQkFBd0I7O0lBQ3hCLDJCQUF3Qjs7SUFDeEIsK0JBQTRCOztJQUM1QixnQ0FBNkI7O0lBQzdCLGlDQUE2Qjs7SUFDN0IsZ0NBQTRCOztJQUM1Qix1Q0FBa0M7O0lBQ2xDLGlDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaWxlSW5mbyB7XHJcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHNvdXJjZTogc3RyaW5nIHwgQXJyYXlCdWZmZXI7XHJcbiAgICBwdWJsaWMgcGljTGlzdERpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcXVldWVMaXN0RGlzcGxheU5hbWU6IHN0cmluZztcclxuICAgIC8vcHVibGljIGNvbnRlbnQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBzaXplOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZmlsZVNpemU6IG51bWJlcjtcclxuICAgIHB1YmxpYyBoYXNVcGxvYWRlZDogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBtb3VzZU9uOiBib29sZWFuO1xyXG4gICAgcHVibGljIHNlbGVjdGQ6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaXNVcGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgdXBsb2FkUmVzdWx0OiBib29sZWFuO1xyXG4gICAgcHVibGljIHVwbG9hZFByb2Nlc3M6IG51bWJlcjtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBleHRlbnNpb25Ecm9wTGlzdElkOm51bWJlcjtcclxuICAgIHB1YmxpYyBleHRlbnNpb25OYW1lOiBzdHJpbmc7XHJcbn0iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZWluZm8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L2ZpbGVpbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sUUFBUTtDQXFCcEI7OztJQXBCRyxzQkFBa0I7O0lBQ2xCLHdCQUFvQjs7SUFDcEIsd0JBQW9COztJQUNwQiwwQkFBb0M7O0lBQ3BDLHNDQUFrQzs7SUFDbEMsd0NBQW9DOztJQUVwQyx3QkFBb0I7O0lBQ3BCLDRCQUF3Qjs7SUFDeEIsK0JBQTRCOztJQUM1QiwyQkFBd0I7O0lBQ3hCLDJCQUF3Qjs7SUFDeEIsK0JBQTRCOztJQUM1QixnQ0FBNkI7O0lBQzdCLGlDQUE2Qjs7SUFDN0IsZ0NBQTRCOztJQUM1Qix1Q0FBa0M7O0lBQ2xDLGlDQUE2Qjs7SUFDN0Isc0NBQWlDOztJQUNqQyxnQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWN1cml0eUVudGl0eSB9IGZyb20gXCIuL3NlY3VyaXR5ZW50aXR5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZUluZm8ge1xyXG4gICAgcHVibGljIGlkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHR5cGU6IHN0cmluZztcclxuICAgIHB1YmxpYyBzb3VyY2U6IHN0cmluZyB8IEFycmF5QnVmZmVyO1xyXG4gICAgcHVibGljIHBpY0xpc3REaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHF1ZXVlTGlzdERpc3BsYXlOYW1lOiBzdHJpbmc7XHJcbiAgICAvL3B1YmxpYyBjb250ZW50OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2l6ZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGZpbGVTaXplOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaGFzVXBsb2FkZWQ6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgbW91c2VPbjogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzZWxlY3RkOiBib29sZWFuO1xyXG4gICAgcHVibGljIGlzVXBsb2FkaW5nOiBib29sZWFuO1xyXG4gICAgcHVibGljIHVwbG9hZFJlc3VsdDogYm9vbGVhbjtcclxuICAgIHB1YmxpYyB1cGxvYWRQcm9jZXNzOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZXh0ZW5zaW9uRHJvcExpc3RJZDpudW1iZXI7XHJcbiAgICBwdWJsaWMgZXh0ZW5zaW9uTmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHNlY3VyaXR5RHJvcExpc3RJZDpudW1iZXI7XHJcbiAgICBwdWJsaWMgc2VjdXJpdHlJbmZvOlNlY3VyaXR5RW50aXR5O1xyXG59Il19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export class GspDocSecurityBaseInfo {
6
+ }
7
+ if (false) {
8
+ /** @type {?} */
9
+ GspDocSecurityBaseInfo.prototype.securityId;
10
+ /** @type {?} */
11
+ GspDocSecurityBaseInfo.prototype.securityLevel;
12
+ /** @type {?} */
13
+ GspDocSecurityBaseInfo.prototype.name;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3NwZG9jc2VjdXJpdHluYXNlaW5mby5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bnc3Atc3ZjL2Zvcm1kb2MtdXBsb2FkLyIsInNvdXJjZXMiOlsibGliL3VwbG9hZC9lbnRpdHkvZ3NwZG9jc2VjdXJpdHluYXNlaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxPQUFPLHNCQUFzQjtDQUlsQzs7O0lBSEcsNENBQTBCOztJQUMxQiwrQ0FBNkI7O0lBQzdCLHNDQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBHc3BEb2NTZWN1cml0eUJhc2VJbmZvIHtcclxuICAgIHB1YmxpYyBzZWN1cml0eUlkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2VjdXJpdHlMZXZlbDogbnVtYmVyO1xyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcclxufSJdfQ==
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export class SecurityEntity {
6
+ }
7
+ if (false) {
8
+ /** @type {?} */
9
+ SecurityEntity.prototype.id;
10
+ /** @type {?} */
11
+ SecurityEntity.prototype.securityId;
12
+ /** @type {?} */
13
+ SecurityEntity.prototype.securityLevel;
14
+ /** @type {?} */
15
+ SecurityEntity.prototype.name;
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHllbnRpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L3NlY3VyaXR5ZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sY0FBYztDQUsxQjs7O0lBSkcsNEJBQWtCOztJQUNsQixvQ0FBMEI7O0lBQzFCLHVDQUE2Qjs7SUFDN0IsOEJBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNlY3VyaXR5RW50aXR5IHtcclxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gICAgcHVibGljIHNlY3VyaXR5SWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBzZWN1cml0eUxldmVsOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG59Il19
@@ -13,5 +13,7 @@ if (false) {
13
13
  UploadFileInfo.prototype.fileSize;
14
14
  /** @type {?} */
15
15
  UploadFileInfo.prototype.state;
16
+ /** @type {?} */
17
+ UploadFileInfo.prototype.securityInfo;
16
18
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZmlsZWluZm8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L3VwbG9hZGZpbGVpbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sY0FBYztDQU8xQjs7O0lBTEcsb0NBQTBCOztJQUMxQixrQ0FBd0I7O0lBQ3hCLGtDQUF1Qjs7SUFDdkIsK0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsZVN0YXRlIH0gZnJvbSBcIi4vZmlsZXN0YXRlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZUluZm8ge1xyXG5cclxuICAgIHB1YmxpYyBtZXRhZGF0YUlkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBmaWxlU2l6ZTpzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3RhdGU6IEZpbGVTdGF0ZTtcclxuXHJcbn0iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZmlsZWluZm8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L3VwbG9hZGZpbGVpbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxNQUFNLE9BQU8sY0FBYztDQVExQjs7O0lBTkcsb0NBQTBCOztJQUMxQixrQ0FBd0I7O0lBQ3hCLGtDQUF3Qjs7SUFDeEIsK0JBQXdCOztJQUN4QixzQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlU3RhdGUgfSBmcm9tIFwiLi9maWxlc3RhdGVcIjtcclxuaW1wb3J0IHsgU2VjdXJpdHlFbnRpdHkgfSBmcm9tIFwiLi9zZWN1cml0eWVudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFVwbG9hZEZpbGVJbmZvIHtcclxuXHJcbiAgICBwdWJsaWMgbWV0YWRhdGFJZDogc3RyaW5nO1xyXG4gICAgcHVibGljIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZmlsZVNpemU6IHN0cmluZztcclxuICAgIHB1YmxpYyBzdGF0ZTogRmlsZVN0YXRlO1xyXG4gICAgcHVibGljIHNlY3VyaXR5SW5mbzogU2VjdXJpdHlFbnRpdHk7XHJcblxyXG59Il19
@@ -6,6 +6,7 @@ export class UploadLimit {
6
6
  constructor() {
7
7
  this.fileType = "*";
8
8
  this.fileCount = 0;
9
+ this.securityInfo = null;
9
10
  }
10
11
  }
11
12
  if (false) {
@@ -13,5 +14,7 @@ if (false) {
13
14
  UploadLimit.prototype.fileType;
14
15
  /** @type {?} */
15
16
  UploadLimit.prototype.fileCount;
17
+ /** @type {?} */
18
+ UploadLimit.prototype.securityInfo;
16
19
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbGltaXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L3VwbG9hZGxpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNXLGFBQVEsR0FBVyxHQUFHLENBQUM7UUFDdkIsY0FBUyxHQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQUE7OztJQUZHLCtCQUE4Qjs7SUFDOUIsZ0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFVwbG9hZExpbWl0IHtcclxuICAgIHB1YmxpYyBmaWxlVHlwZTogc3RyaW5nID0gXCIqXCI7XHJcbiAgICBwdWJsaWMgZmlsZUNvdW50OiBudW1iZXIgPSAwO1xyXG59Il19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbGltaXQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLXN2Yy9mb3JtZG9jLXVwbG9hZC8iLCJzb3VyY2VzIjpbImxpYi91cGxvYWQvZW50aXR5L3VwbG9hZGxpbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNXLGFBQVEsR0FBVyxHQUFHLENBQUM7UUFDdkIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUEyQixJQUFJLENBQUM7SUFDdkQsQ0FBQztDQUFBOzs7SUFIRywrQkFBOEI7O0lBQzlCLGdDQUE2Qjs7SUFDN0IsbUNBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3NwRG9jU2VjdXJpdHlCYXNlSW5mbyB9IGZyb20gXCIuL2dzcGRvY3NlY3VyaXR5bmFzZWluZm9cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRMaW1pdCB7XHJcbiAgICBwdWJsaWMgZmlsZVR5cGU6IHN0cmluZyA9IFwiKlwiO1xyXG4gICAgcHVibGljIGZpbGVDb3VudDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzZWN1cml0eUluZm86IEdzcERvY1NlY3VyaXR5QmFzZUluZm8gPSBudWxsO1xyXG59Il19