@gsp-svc/formdoc-upload 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/gsp-svc-formdoc-upload.umd.js +2743 -2721
- package/bundles/gsp-svc-formdoc-upload.umd.js.map +1 -1
- package/bundles/gsp-svc-formdoc-upload.umd.min.js +1 -1
- package/bundles/gsp-svc-formdoc-upload.umd.min.js.map +1 -1
- package/esm2015/gsp-svc-formdoc-upload.js +9 -9
- package/esm2015/lib/formdoc-upload.component.js +21 -21
- package/esm2015/lib/formdoc-upload.module.js +23 -23
- package/esm2015/lib/formdoc-upload.service.js +17 -17
- package/esm2015/lib/i18n/language.resource.js +156 -148
- package/esm2015/lib/local.pipe.js +48 -48
- package/esm2015/lib/upload/download.service.js +153 -153
- package/esm2015/lib/upload/entity/changeinstancerequest.js +13 -13
- package/esm2015/lib/upload/entity/completemultiuploadrequest.js +21 -21
- package/esm2015/lib/upload/entity/copyfilerequest.js +15 -15
- package/esm2015/lib/upload/entity/doctype.js +25 -25
- package/esm2015/lib/upload/entity/droplistentity.js +13 -13
- package/esm2015/lib/upload/entity/expropertyrequest.js +15 -15
- package/esm2015/lib/upload/entity/extensionstoragefileinfo.js +13 -13
- package/esm2015/lib/upload/entity/fileinfo.js +49 -49
- package/esm2015/lib/upload/entity/filestate.js +13 -13
- package/esm2015/lib/upload/entity/gspdocmetaproperty.js +19 -19
- package/esm2015/lib/upload/entity/gspdocsecuritybaseinfo.js +15 -15
- package/esm2015/lib/upload/entity/gspformdocinfo.js +25 -25
- package/esm2015/lib/upload/entity/gspformdocoperateentity.js +13 -13
- package/esm2015/lib/upload/entity/gspformremovelistentity.js +15 -15
- package/esm2015/lib/upload/entity/gspformstreamentity.js +25 -25
- package/esm2015/lib/upload/entity/gspformuploadentity.js +17 -17
- package/esm2015/lib/upload/entity/gspformuploadlistentity.js +17 -17
- package/esm2015/lib/upload/entity/initmultiuploadrequest.js +19 -19
- package/esm2015/lib/upload/entity/multiuploadrequest.js +21 -21
- package/esm2015/lib/upload/entity/multiuploadresult.js +13 -13
- package/esm2015/lib/upload/entity/operatingmodes.js +13 -13
- package/esm2015/lib/upload/entity/securityentity.js +17 -17
- package/esm2015/lib/upload/entity/storageextension.js +17 -17
- package/esm2015/lib/upload/entity/uploadfileinfo.js +21 -21
- package/esm2015/lib/upload/entity/uploadlimit.js +23 -23
- package/esm2015/lib/upload/file-upload/file-upload.component.js +1508 -1491
- package/esm2015/lib/upload/upload.module.js +50 -48
- package/esm2015/lib/upload/upload.service.js +341 -341
- package/esm2015/lib/uploaddialog/uploaddialog/uploaddialog.component.js +82 -82
- package/esm2015/lib/uploaddialog/uploaddialog.module.js +35 -35
- package/esm2015/lib/uploaddialog.service.js +207 -207
- package/esm2015/public-api.js +32 -32
- package/esm5/gsp-svc-formdoc-upload.js +9 -9
- package/esm5/lib/formdoc-upload.component.js +27 -27
- package/esm5/lib/formdoc-upload.module.js +27 -27
- package/esm5/lib/formdoc-upload.service.js +20 -20
- package/esm5/lib/i18n/language.resource.js +156 -148
- package/esm5/lib/local.pipe.js +51 -51
- package/esm5/lib/upload/download.service.js +202 -202
- package/esm5/lib/upload/entity/changeinstancerequest.js +17 -17
- package/esm5/lib/upload/entity/completemultiuploadrequest.js +25 -25
- package/esm5/lib/upload/entity/copyfilerequest.js +19 -19
- package/esm5/lib/upload/entity/doctype.js +25 -25
- package/esm5/lib/upload/entity/droplistentity.js +17 -17
- package/esm5/lib/upload/entity/expropertyrequest.js +19 -19
- package/esm5/lib/upload/entity/extensionstoragefileinfo.js +17 -17
- package/esm5/lib/upload/entity/fileinfo.js +53 -53
- package/esm5/lib/upload/entity/filestate.js +13 -13
- package/esm5/lib/upload/entity/gspdocmetaproperty.js +23 -23
- package/esm5/lib/upload/entity/gspdocsecuritybaseinfo.js +19 -19
- package/esm5/lib/upload/entity/gspformdocinfo.js +29 -29
- package/esm5/lib/upload/entity/gspformdocoperateentity.js +17 -17
- package/esm5/lib/upload/entity/gspformremovelistentity.js +19 -19
- package/esm5/lib/upload/entity/gspformstreamentity.js +29 -29
- package/esm5/lib/upload/entity/gspformuploadentity.js +21 -21
- package/esm5/lib/upload/entity/gspformuploadlistentity.js +21 -21
- package/esm5/lib/upload/entity/initmultiuploadrequest.js +23 -23
- package/esm5/lib/upload/entity/multiuploadrequest.js +25 -25
- package/esm5/lib/upload/entity/multiuploadresult.js +17 -17
- package/esm5/lib/upload/entity/operatingmodes.js +13 -13
- package/esm5/lib/upload/entity/securityentity.js +21 -21
- package/esm5/lib/upload/entity/storageextension.js +21 -21
- package/esm5/lib/upload/entity/uploadfileinfo.js +25 -25
- package/esm5/lib/upload/entity/uploadlimit.js +25 -25
- package/esm5/lib/upload/file-upload/file-upload.component.js +1657 -1640
- package/esm5/lib/upload/upload.module.js +54 -52
- package/esm5/lib/upload/upload.service.js +404 -404
- package/esm5/lib/uploaddialog/uploaddialog/uploaddialog.component.js +88 -88
- package/esm5/lib/uploaddialog/uploaddialog.module.js +39 -39
- package/esm5/lib/uploaddialog.service.js +226 -226
- package/esm5/public-api.js +32 -32
- package/fesm2015/gsp-svc-formdoc-upload.js +2470 -2443
- package/fesm2015/gsp-svc-formdoc-upload.js.map +1 -1
- package/fesm5/gsp-svc-formdoc-upload.js +2820 -2793
- package/fesm5/gsp-svc-formdoc-upload.js.map +1 -1
- package/gsp-svc-formdoc-upload.d.ts +5 -5
- package/gsp-svc-formdoc-upload.metadata.json +1 -1
- package/lib/formdoc-upload.component.d.ts +5 -5
- package/lib/formdoc-upload.module.d.ts +2 -2
- package/lib/formdoc-upload.service.d.ts +3 -3
- package/lib/i18n/language.resource.d.ts +150 -142
- package/lib/local.pipe.d.ts +8 -8
- package/lib/upload/download.service.d.ts +11 -11
- package/lib/upload/entity/changeinstancerequest.d.ts +5 -5
- package/lib/upload/entity/completemultiuploadrequest.d.ts +9 -9
- package/lib/upload/entity/copyfilerequest.d.ts +5 -5
- package/lib/upload/entity/doctype.d.ts +10 -10
- package/lib/upload/entity/droplistentity.d.ts +4 -4
- package/lib/upload/entity/expropertyrequest.d.ts +5 -5
- package/lib/upload/entity/extensionstoragefileinfo.d.ts +4 -4
- package/lib/upload/entity/fileinfo.d.ts +23 -23
- package/lib/upload/entity/filestate.d.ts +4 -4
- package/lib/upload/entity/gspdocmetaproperty.d.ts +7 -7
- package/lib/upload/entity/gspdocsecuritybaseinfo.d.ts +5 -5
- package/lib/upload/entity/gspformdocinfo.d.ts +11 -11
- package/lib/upload/entity/gspformdocoperateentity.d.ts +4 -4
- package/lib/upload/entity/gspformremovelistentity.d.ts +6 -6
- package/lib/upload/entity/gspformstreamentity.d.ts +12 -12
- package/lib/upload/entity/gspformuploadentity.d.ts +8 -8
- package/lib/upload/entity/gspformuploadlistentity.d.ts +8 -8
- package/lib/upload/entity/initmultiuploadrequest.d.ts +7 -7
- package/lib/upload/entity/multiuploadrequest.d.ts +8 -8
- package/lib/upload/entity/multiuploadresult.d.ts +4 -4
- package/lib/upload/entity/operatingmodes.d.ts +4 -4
- package/lib/upload/entity/securityentity.d.ts +6 -6
- package/lib/upload/entity/storageextension.d.ts +6 -6
- package/lib/upload/entity/uploadfileinfo.d.ts +10 -10
- package/lib/upload/entity/uploadlimit.d.ts +7 -7
- package/lib/upload/file-upload/file-upload.component.d.ts +133 -133
- package/lib/upload/upload.module.d.ts +3 -3
- package/lib/upload/upload.service.d.ts +27 -27
- package/lib/uploaddialog/uploaddialog/uploaddialog.component.d.ts +13 -13
- package/lib/uploaddialog/uploaddialog.module.d.ts +2 -2
- package/lib/uploaddialog.service.d.ts +18 -18
- package/package.json +1 -1
- package/public-api.d.ts +25 -25
|
@@ -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/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/entity/copyfilerequest.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/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/entity/initmultiuploadrequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/completemultiuploadrequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformstreamentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/multiuploadrequest.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/gspformdocinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocmetaproperty.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/fileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocsecuritybaseinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/securityentity.ts"],"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 { HttpClientModule } from '@angular/common/http';\nimport { LOCALE_ID, NgModule } from '@angular/core';\nimport { CacheService, HttpService, LanguageService, SessionService } 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 HttpClientModule\n ],\n \n exports: [FormdocUploadComponent],\n providers:[ LanguageService,HttpService,CacheService,SessionService,\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 Zip\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}","export class CopyFileRequest{\r\n public metadataId:string;\r\n public rootId:string;\r\n public path:string;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { GspFormUploadListEntity } from './entity/gspformuploadlistentity';\r\nimport { HttpService } from '@ecp-caf/caf-common';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { GspFormRemoveListEntity } from './entity/gspformremovelistentity';\r\nimport { of } from 'rxjs/observable/of';\r\nimport { GspFormDocOperateEntity } from './entity/gspformdocoperateentity';\r\n\r\nimport { GspFormUploadEntity } from './entity/gspformuploadentity';\r\nimport { ExStorageFileInfo } from './entity/extensionstoragefileinfo';\r\nimport { ChangeInstanceRequest } from './entity/changeinstancerequest';\r\nimport { OperatingModes } from './entity/operatingmodes';\r\nimport { GspDocSecurityBaseInfo } from './entity/gspdocsecuritybaseinfo';\r\nimport { UploadFileInfo } from './entity/uploadfileinfo';\r\nimport { ExPropertyRequest } from './entity/expropertyrequest';\r\nimport { CopyFileRequest } from './entity/copyfilerequest';\r\nimport { BasePathService } from '@farris/rtf';\r\n\r\n\r\n@Injectable()\r\nexport class UploadService {\r\n\r\n constructor(private http: HttpService, private httpclient: HttpClient) { }\r\n\r\n uploadList(docListInfo: GspFormUploadListEntity, rootId: string): Observable<any> {\r\n let url;\r\n docListInfo.rootId = rootId;\r\n\r\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n\r\n return this.http.post(url, docListInfo).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n\r\n commit(metadataIdList: string[], rootId: string): Observable<any> {\r\n let url;\r\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\r\n entity.metadataIdList = metadataIdList;\r\n entity.rootId = rootId;\r\n url = \"/api/runtime/dfs/v1.0/formdoc/commit\";\r\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/commit\";\r\n\r\n return this.http.post(url, entity).pipe();\r\n }\r\n\r\n cancel(metadataIdList: string[], rootId: string): Observable<any> {\r\n let url;\r\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\r\n entity.metadataIdList = metadataIdList;\r\n entity.rootId = rootId;\r\n url = \"/api/runtime/dfs/v1.0/formdoc/cancel\";\r\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/cancel\";\r\n //localStorage.setItem(\"SessionId\",\"huoliang\");\r\n return this.http.put(url, entity).pipe();\r\n }\r\n\r\n removeList(idList: string[], rootId: string) {\r\n let url;\r\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/list\";\r\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n var idListInfo = new GspFormRemoveListEntity;\r\n idListInfo.metadataIdList = idList;\r\n idListInfo.mode = OperatingModes.Temp;\r\n idListInfo.rootId = rootId;\r\n return this.http.delete(url, idListInfo).pipe();\r\n }\r\n\r\n getFile(metadataId: string, rootId: string) {\r\n\r\n let url;\r\n if (rootId == \"\")\r\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId;\r\n else\r\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId + \"/\" + rootId;\r\n return this.http.get(url).pipe(tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n\r\n }\r\n\r\n uploadFile(docInfo: GspFormUploadEntity): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc\";\r\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n\r\n return this.http.post(url, docInfo).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n uploadSliceFile(formdata: FormData): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/slice\";\r\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n return this.httpclient.post(baseUrl, formdata).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n\r\n getStorageExtensionInfo(): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/extension\";\r\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n\r\n return this.http.get(url).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n getSecurityInfoList(baseInfo: GspDocSecurityBaseInfo): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/security\";\r\n url = url + \"?id=\" + baseInfo.securityId + \"&level=\" + baseInfo.securityLevel;\r\n\r\n return this.http.get(url).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n changeStorageInstance(storageInfoList: ExStorageFileInfo[], rootId: string): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/changeinstance\";\r\n let request: ChangeInstanceRequest = new ChangeInstanceRequest;\r\n request.fileInfoList = storageInfoList;\r\n request.rootId = rootId;\r\n return this.http.post(url, request).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n copyFile(metadataId: string, rootId: string, path: string): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/copy\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n let request: CopyFileRequest = new CopyFileRequest;\r\n request.metadataId = metadataId;\r\n request.rootId = rootId;\r\n request.path = path;\r\n return this.httpclient.post(baseUrl, request, { responseType: 'text' }).pipe(\r\n tap(res => { }),\r\n // catchError((error: HttpErrorResponse) => {\r\n // return of(error);\r\n // })\r\n );\r\n }\r\n\r\n saveSecurityInfo(uploadFileInfoList: UploadFileInfo[], rootId: string): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/doc/exproperty\";\r\n let reqList: ExPropertyRequest[] = [];\r\n uploadFileInfoList.forEach(element => {\r\n let request: ExPropertyRequest = { id: element.metadataId, rootId: rootId, exProperty: JSON.stringify(element.securityInfo) };\r\n reqList.push(request);\r\n })\r\n return this.http.post(url, reqList).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }))\r\n }\r\n\r\n\r\n getUploadedFileInfoList(formId: string, rootId: string): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist\" + \"?formid=\" + formId + \"&rootid=\" + rootId;\r\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\r\n\r\n return this.http.get(url).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n getUploadInfo(rootId: string): Observable<any> {\r\n let url = \"/api/runtime/dfs/v1.0/rootsetting/info?id=\" + rootId;\r\n\r\n return this.http.get(url).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n // getRootSetting(rootId: string): Observable<any> {\r\n // let url = \"/api/runtime/dfs/v1.0/rootsetting/\" + rootId;\r\n\r\n // return this.http.get(url).pipe(\r\n // tap(res => { }),\r\n // catchError((error: HttpErrorResponse) => {\r\n // return of(error);\r\n // }));\r\n // }\r\n\r\n // getValidation(id: string): Observable<any> {\r\n // let url = \"/api/runtime/dfs/v1.0/validation/\" + id;\r\n\r\n // return this.http.get(url).pipe(\r\n // tap(res => { }),\r\n // catchError((error: HttpErrorResponse) => {\r\n // return of(error);\r\n // }));\r\n // }\r\n\r\n}\r\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 originalSize: number;\r\n public state: FileState;\r\n public securityInfo: SecurityEntity;\r\n\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 'sizeMax':'文件大小超出限制',\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 'mismatchChunkSize':'文档分片上传部分丢失,请重新上传,如果多次上传失败,请联系管理员。',\r\n 'invalidCharacters': '文件名包含特殊字符',\r\n 'invalidExtNames': '文档类型不允许上传',\r\n 'whiteExtNames': '。允许上传的文件类型为:',\r\n 'blackExtNames': '。不允许上传的文件类型为:',\r\n 'UnrecognizedFileType':'无法确定文件类型',\r\n 'fileNameOverSize':'文件名超出长度限制,最长允许'\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 'sizeMax':'File size beyond limit',\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 'mismatchChunkSize':'The partial upload of document shards is missing. Please upload again. If multiple uploads fail, please contact the administrator.',\r\n 'invalidCharacters': 'The file name contains special characters',\r\n 'invalidExtNames': 'Document type does not allow uploading',\r\n 'whiteExtNames': '.The file types allowed for uploading are:',\r\n 'blackExtNames': '.The file types that are not allowed to be uploaded are:',\r\n 'UnrecognizedFileType': 'Unrecognized file type',\r\n 'fileNameOverSize':'fileName oversize,the lengthest is'\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 'sizeMax':'File size beyond limit',\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 'mismatchChunkSize':'The partial upload of document shards is missing. Please upload again. If multiple uploads fail, please contact the administrator.',\r\n 'invalidCharacters': 'The file name contains special characters',\r\n 'invalidExtNames': 'Document type does not allow uploading',\r\n 'whiteExtNames': '.The file types allowed for uploading are:',\r\n 'blackExtNames': '.The file types that are not allowed to be uploaded are:',\r\n 'UnrecognizedFileType': 'Unrecognized file type',\r\n 'fileNameOverSize':'fileName oversize,the lengthest is'\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 'sizeMax':'文件大小超出限制',\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 'mismatchChunkSize':'文檔分片上傳部分遺失,請重新上傳,如果多次上傳失敗,請聯系管理員。',\r\n 'invalidCharacters': '文件名包含特殊字符',\r\n 'invalidExtNames': '文檔類型不允許上傳',\r\n 'whiteExtNames': '。允許上傳的文件類型為:',\r\n 'blackExtNames': '。不允許上傳的文件類型為:',\r\n 'UnrecognizedFileType': '無法確定文件類型',\r\n 'fileNameOverSize':'文件名超出长度限制,最长允许'\r\n },\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","export class InitMultiUploadRequest {\r\n public path: string;\r\n public metadataId: string;\r\n public rootId: string;\r\n public fileName: string;\r\n public size: number;\r\n}","import { MultiUploadResult } from \"./multiuploadresult\";\r\n\r\nexport class CompleteMultiUploadRequest {\r\n public metadataId: string;\r\n public rootId: string;\r\n public uploadId: string;\r\n public size: number;\r\n public partList: MultiUploadResult[];\r\n public exPropertyName: string;\r\n}","import { GspDocMetaProperty } from \"./gspdocmetaproperty\";\r\nimport { OperatingModes } from \"./operatingmodes\";\r\n\r\nexport class GspFormStreamEntity {\r\n public formId: string;\r\n public metadataId: string;\r\n public rootId: string;\r\n public fileName: string;\r\n public size: number;\r\n public mode: OperatingModes;\r\n public exPropertyName: string;\r\n public extProperty: GspDocMetaProperty;\r\n}","export class MultiUploadRequest {\r\n public metadataId: string;\r\n\r\n public total: number;\r\n\r\n public size: number;\r\n\r\n public index: number;\r\n\r\n public rootId: string;\r\n\r\n public uploadId: string;\r\n}","import { Component, OnInit, Input, ViewChild, TemplateRef, Injector, LOCALE_ID } from '@angular/core';\r\nimport { FileInfo } from '../entity/fileinfo';\r\nimport { DocType } from '../entity/doctype';\r\nimport { GspFormDocInfo } from '../entity/gspformdocinfo';\r\nimport { OperatingModes } from '../entity/operatingmodes';\r\nimport { UploadService } from '../upload.service';\r\nimport { UploadFileInfo } from '../entity/uploadfileinfo';\r\nimport { MessagerService } from '@farris/ui-messager';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Observable, of } from 'rxjs';\r\nimport { GspFormUploadEntity } from '../entity/gspformuploadentity';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { StorageExtension } from '../entity/storageextension';\r\nimport { ExStorageFileInfo } from '../entity/extensionstoragefileinfo';\r\nimport { DropListEntity } from '../entity/droplistentity';\r\nimport { LoadingService } from '@farris/ui-loading';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FileState } from '../entity/filestate';\r\nimport { LocalLangPipe } from '../../local.pipe';\r\nimport { GspDocSecurityBaseInfo } from '../entity/gspdocsecuritybaseinfo';\r\nimport { SecurityEntity } from '../entity/securityentity';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { InitMultiUploadRequest } from '../entity/initmultiuploadrequest';\r\nimport { CompleteMultiUploadRequest } from '../entity/completemultiuploadrequest';\r\nimport { GspFormStreamEntity } from '../entity/gspformstreamentity';\r\nimport { MultiUploadRequest } from '../entity/multiuploadrequest';\r\nimport { MultiUploadResult } from '../entity/multiuploadresult';\r\nimport { BasePathService } from '@farris/rtf';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.css'],\r\n})\r\nexport class FileUploadComponent implements OnInit {\r\n\r\n files: FileInfo[] = [];\r\n metadataIdList: string[] = [];\r\n uploadFileInfoList: UploadFileInfo[] = [];\r\n errFileList: string[] = [];\r\n errTypeList: string[] = [];\r\n nullFileList: string[] = [];\r\n beyondFileList: string[] = [];\r\n fileNameOversizeList: string[] = [];\r\n invalidCharactersFileList: string[] = [];\r\n invalidExtNamesFileList: string[] = [];\r\n unrecognizedTypeFileList: string[] = [];\r\n invalidCharacters: string = '';\r\n invalidExtNames: string = '';\r\n showType: number = 0;\r\n mouseOn: boolean = false;\r\n isWhiteList: boolean = false;\r\n bufferSize = 5 * 1024 * 1024;\r\n selectedFiles: any;\r\n radioButtonGroupValue;\r\n selectedFileCount: number = 0;\r\n uploadBtnDisabled: boolean = false;\r\n\r\n uploadIconAddress = this.createBaseUrl('/platform/runtime/dfs/images/upload.svg');\r\n uploadLittleIconAddress = this.createBaseUrl('/platform/runtime/dfs/images/uploadIcon.svg');\r\n\r\n hasSelectedFile: boolean = false;\r\n\r\n fileAllSelected: boolean = false;\r\n\r\n uploadProcess = { width: '0%' };\r\n\r\n fileTotalChunk: { [key: string]: number } = {};\r\n\r\n requestArray: Array<Observable<any>> = new Array;\r\n\r\n requestBodyArray: Array<GspFormUploadEntity> = new Array;\r\n\r\n uploadedChunk: { [key: string]: number } = {};\r\n uploadedProcess: { [key: string]: number } = {};\r\n\r\n //allSelected: boolean = true;\r\n storageExtension: StorageExtension;\r\n\r\n defaultPropertyName: string = \"\";\r\n propertiesNames: DropListEntity[] = [];\r\n\r\n securityInfoList: SecurityEntity[] = [];\r\n\r\n queueListStyle = { width: '480px' };\r\n\r\n dropListValue: string = \"\";\r\n\r\n uploadedFileTotal: number = 0;\r\n\r\n allowedMultiUpload: boolean;\r\n\r\n haveExtensionProperty: boolean = false;\r\n\r\n haveSecurityInfo: boolean = false;\r\n\r\n uploadedFileInfoList = [];\r\n oldUploadedFileList = [];\r\n //uploadedNameList = [];\r\n uploadInfoErrorMessage: string = \"\";\r\n\r\n sameNameAllowed = true;\r\n maxFileSize: number = 0;;\r\n localeid: string;\r\n localepipe: LocalLangPipe;\r\n httpclient: HttpClient;\r\n checkboxPos = { top: '0px' }\r\n\r\n constructor(private msgService: MessagerService, private uploadService: UploadService, private loadService: LoadingService, private injector?: Injector) {\r\n if (this.injector) {\r\n this.httpclient = this.injector.get(HttpClient);\r\n this.localeid = localStorage.getItem(\"languageCode\") || this.injector.get(LOCALE_ID);\r\n this.localepipe = new LocalLangPipe(this.localeid);\r\n }\r\n }\r\n @Input() formId: string;\r\n @Input() rootId: string;\r\n @Input() fileType: string = \"*\";\r\n @Input() fileCount: number = 0;\r\n @Input() oldIdList: string[] = [];\r\n @Input() securityInfo: GspDocSecurityBaseInfo = null;\r\n @Input() fileNameLength: number = 0;\r\n\r\n @ViewChild('opCell') opCell: TemplateRef<any>;\r\n\r\n ngOnInit() {\r\n if (navigator.userAgent.indexOf('Firefox') >= 0)\r\n this.checkboxPos.top = '14px';\r\n //if (this.storageService != null) {\r\n if (this.securityInfo != null) {\r\n this.uploadService.getSecurityInfoList(this.securityInfo).subscribe(\r\n res => {\r\n this.haveSecurityInfo = true;\r\n let i = 0;\r\n res.forEach(element => {\r\n this.securityInfoList.push({ id: i.toString(), securityId: element.securityId, securityLevel: element.securityLevel, name: element.name });\r\n i++;\r\n });\r\n }\r\n )\r\n }\r\n this.uploadService.getStorageExtensionInfo().subscribe(\r\n res => {\r\n if (res != null && res.error == null) {\r\n this.storageExtension = res;\r\n this.defaultPropertyName = this.storageExtension.defaultPropertyName;\r\n this.propertiesNames.push({ id: \"0\", name: this.storageExtension.defaultPropertyName });\r\n let i = 0;\r\n // this.propertiesNames.push(...(this.storageExtension.extensionPropertyNameList));\r\n this.storageExtension.extensionPropertyNameList.forEach(element => {\r\n this.propertiesNames.push({ id: (++i).toString(), name: element });\r\n });\r\n this.queueListStyle.width = '380px';\r\n this.haveExtensionProperty = true;\r\n }\r\n }\r\n )\r\n\r\n this.uploadService.getUploadInfo(this.rootId).subscribe(res => {\r\n if (res.error != null) {\r\n this.uploadInfoErrorMessage = res.error.Message;\r\n // console.log('获取上传信息报错,错误信息为:',errMsg);\r\n return;\r\n } else {\r\n this.uploadBtnDisabled = false;\r\n this.sameNameAllowed = res.sameNameAllowed;\r\n this.maxFileSize = parseInt(JSON.parse(res.validateConfiguration).maxFileSize);\r\n this.isWhiteList = JSON.parse(res.validateConfiguration).whiteList;\r\n this.invalidCharacters = JSON.parse(res.validateConfiguration).invalidCharacters;\r\n this.invalidExtNames = JSON.parse(res.validateConfiguration).invalidExtNames.toLowerCase();\r\n this.allowedMultiUpload = res.allowedMultiUpload;\r\n if (!this.sameNameAllowed) {\r\n this.uploadService.getUploadedFileInfoList(this.formId, this.rootId).subscribe(\r\n res => {\r\n if (res != null && res.error == null) {\r\n this.uploadedFileInfoList = res;\r\n this.oldUploadedFileList = JSON.parse(JSON.stringify(res));;\r\n }\r\n }\r\n )\r\n }\r\n }\r\n })\r\n if (this.oldIdList != null && this.oldIdList.length > 0) {\r\n // this.uploadService.cancel(this.oldIdList, this.rootId).subscribe();\r\n }\r\n\r\n this.radioButtonGroupValue = 'showByGroup';\r\n }\r\n\r\n totalLoad: any = null;\r\n\r\n showLoading() {\r\n this.hasSelectedFile = true;\r\n // if (this.totalLoad == null)\r\n // this.totalLoad = this.loadService.show({\r\n // message: this.localepipe.transform('uploading')\r\n // });\r\n }\r\n\r\n getRightClass() {\r\n if (this.uploadBtnDisabled) {\r\n return 'btn btn-primary btn-lg disabled';\r\n } else {\r\n return 'btn btn-primary btn-lg';\r\n }\r\n }\r\n\r\n findInvalidCharacter(name: string): string[] {\r\n let charList: string[] = [];\r\n this.invalidCharacters.split('|').forEach(element => {\r\n if (name.indexOf(element) >= 0)\r\n charList.push(element);\r\n })\r\n\r\n return charList;\r\n }\r\n\r\n\r\n hasFileType(file) {\r\n return file.name.includes('.');\r\n }\r\n\r\n fileSelected($event) {\r\n if (this.uploadInfoErrorMessage) {\r\n this.msgService.error(this.uploadInfoErrorMessage);\r\n this.uploadBtnDisabled = true;\r\n return;\r\n }\r\n\r\n this.hasSelectedFile = true;\r\n this.selectedFiles = document.querySelector('#file');\r\n\r\n if (this.fileCount > 0) {\r\n if (this.selectedFiles.files.length + this.files.length > this.fileCount) {\r\n let selectedNum: number = (this.selectedFiles.files.length as number) + this.files.length;\r\n this.msgService.warning(this.localepipe.transform('selectedCount') + selectedNum + this.localepipe.transform('limitCount') + this.fileCount + this.localepipe.transform('rechooseFile'));\r\n return;\r\n }\r\n }\r\n\r\n //this.flag = 0;\r\n for (let i = 0; i < this.selectedFiles.files.length; i++) {\r\n let selectedFile = this.selectedFiles.files[i];\r\n selectedFile.isAllowedUpload = true;\r\n //selectedFile.slice\r\n let uuid = UUID.UUID();\r\n\r\n if (selectedFile.size == 0) {\r\n this.nullFileList.push(selectedFile.name);\r\n continue;\r\n }\r\n\r\n if (this.fileNameLength > 0 && selectedFile.name.length > this.fileNameLength) {\r\n this.fileNameOversizeList.push(selectedFile.name);\r\n continue;\r\n }\r\n\r\n if (this.maxFileSize != null && this.maxFileSize > 0) {\r\n if (selectedFile.size > this.maxFileSize * 1000) {\r\n this.beyondFileList.push(selectedFile.name);\r\n continue;\r\n }\r\n }\r\n\r\n const invalidCharList = this.findInvalidCharacter(selectedFile.name);\r\n let invalidCharListFilter = invalidCharList.filter((s) => {\r\n return s && s.trim();\r\n });\r\n let errorMessage = \"\"\r\n if (invalidCharListFilter.length > 0) {\r\n invalidCharListFilter.forEach((element, index) => {\r\n errorMessage += \"\\\"\";\r\n errorMessage += element;\r\n errorMessage += \"\\\"\";\r\n errorMessage += (index === invalidCharListFilter.length - 1) ? \"\" : \",\";\r\n })\r\n if (this.selectedFiles.files.length === 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.msgService.warning(this.localepipe.transform('invalidCharacters') + errorMessage + this.localepipe.transform('rechooseFile'));\r\n return;\r\n }\r\n if (this.selectedFiles.files.length > 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.invalidCharactersFileList.push(selectedFile.name);\r\n continue;\r\n }\r\n\r\n }\r\n\r\n if (!this.hasFileType(selectedFile)) {\r\n if (this.selectedFiles.files.length === 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.msgService.warning(selectedFile.name + this.localepipe.transform('UnrecognizedFileType') + this.localepipe.transform('rechooseFile'));\r\n return;\r\n }\r\n if (this.selectedFiles.files.length > 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.unrecognizedTypeFileList.push(selectedFile.name);\r\n continue;\r\n }\r\n }\r\n\r\n // let curFileSuffix = selectedFile.name.split('.')[1];\r\n let curFileSuffix = selectedFile.name.substr(selectedFile.name.lastIndexOf('.') + 1).toLowerCase();\r\n const extNames = this.listToString(this.invalidExtNames.split('|'));\r\n const extNamesAry = this.invalidExtNames.split('|');\r\n if (!this.isWhiteList && extNamesAry.includes(curFileSuffix)) {\r\n if (this.selectedFiles.files.length === 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.msgService.warning(selectedFile.name + this.localepipe.transform('invalidExtNames') + this.localepipe.transform('blackExtNames') + extNames + this.localepipe.transform('rechooseFile'));\r\n return;\r\n }\r\n if (this.selectedFiles.files.length > 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.invalidExtNamesFileList.push(selectedFile.name);\r\n continue;\r\n }\r\n }\r\n if (this.isWhiteList && !extNamesAry.includes(curFileSuffix)) {\r\n if (this.selectedFiles.files.length === 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.msgService.warning(selectedFile.name + this.localepipe.transform('invalidExtNames') + this.localepipe.transform('whiteExtNames') + extNames + this.localepipe.transform('rechooseFile'));\r\n return;\r\n }\r\n if (this.selectedFiles.files.length > 1) {\r\n selectedFile.isAllowedUpload = false;\r\n this.invalidExtNamesFileList.push(selectedFile.name);\r\n continue;\r\n }\r\n }\r\n\r\n if (!this.sameNameAllowed) {\r\n if (this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name) != null) {\r\n\r\n const msg = this.msgService.show('warning', this.localepipe.transform('haveSameName') + selectedFile.name, {\r\n initialState: {\r\n buttons: [\r\n {\r\n text: this.localepipe.transform('rename'),\r\n cls: 'btn btn-secondary',\r\n handle: () => {\r\n let oldName: string = selectedFile.name;\r\n let newName\r\n let flag = true;\r\n let i = 1;\r\n while (flag) {\r\n newName = oldName.substring(0, oldName.lastIndexOf('.')) + '(' + i + ')' + oldName.substring(oldName.lastIndexOf('.'));\r\n if (this.uploadedFileInfoList.find(x => x.fileName == newName) != null) {\r\n i++;\r\n }\r\n else\r\n flag = false;\r\n }\r\n\r\n this.uploadFile(uuid, selectedFile, newName);\r\n msg.close();\r\n }\r\n },\r\n {\r\n text: this.localepipe.transform('replace'),\r\n cls: 'btn btn-secondary',\r\n handle: () => {\r\n uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\r\n this.uploadFile(uuid, selectedFile, selectedFile.name, FileState.Update);\r\n this.uploadedFileTotal--;\r\n if (this.oldUploadedFileList.find(x => x.fileName == selectedFile.name)) {\r\n this.uploadedFileTotal++;\r\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == selectedFile.name)[0]), 1);\r\n }\r\n msg.close();\r\n }\r\n },\r\n {\r\n text: this.localepipe.transform('cancel'),\r\n cls: 'btn btn-secondary',\r\n handle: () => {\r\n msg.close();\r\n }\r\n }\r\n ]\r\n }\r\n })\r\n continue;\r\n }\r\n }\r\n if (selectedFile.isAllowedUpload === true) {\r\n this.uploadFile(uuid, selectedFile, selectedFile.name);\r\n }\r\n }\r\n\r\n if (this.errFileList.length > 0) {\r\n let name: string = this.listToString(this.errFileList);\r\n this.msgService.warning(this.localepipe.transform('haveSameName') + name + this.localepipe.transform('rechooseFile'));\r\n this.errFileList = [];\r\n }\r\n\r\n if (this.nullFileList.length > 0) {\r\n let name: string = this.listToString(this.nullFileList);\r\n this.msgService.warning(name + this.localepipe.transform('sizeZero') + this.localepipe.transform('rechooseFile'));\r\n this.nullFileList = [];\r\n }\r\n\r\n if (this.fileNameOversizeList.length > 0) {\r\n let name: string = this.listToString(this.fileNameOversizeList);\r\n this.msgService.warning(name + this.localepipe.transform('fileNameOverSize') + this.fileNameLength + this.localepipe.transform('rechooseFile'));\r\n this.fileNameOversizeList = [];\r\n }\r\n\r\n if (this.beyondFileList.length > 0) {\r\n let name: string = this.listToString(this.beyondFileList);\r\n this.msgService.warning(name + this.localepipe.transform('sizeMax') + this.maxFileSize + \"KB\" + this.localepipe.transform('rechooseFile'));\r\n this.beyondFileList = [];\r\n }\r\n\r\n if (this.invalidCharactersFileList.length > 0) {\r\n let name: string = this.listToString(this.invalidCharactersFileList);\r\n this.msgService.warning(name + this.localepipe.transform('invalidCharacters') + this.localepipe.transform('rechooseFile'));\r\n this.invalidCharactersFileList = [];\r\n }\r\n\r\n if (this.invalidExtNamesFileList.length > 0) {\r\n let name: string = this.listToString(this.invalidExtNamesFileList);\r\n this.msgService.warning(name + this.localepipe.transform('invalidExtNames') + this.localepipe.transform('rechooseFile'));\r\n this.invalidExtNamesFileList = [];\r\n }\r\n\r\n if (this.unrecognizedTypeFileList.length > 0) {\r\n let name: string = this.listToString(this.unrecognizedTypeFileList);\r\n this.msgService.warning(name + this.localepipe.transform('UnrecognizedFileType') + this.localepipe.transform('rechooseFile'));\r\n this.unrecognizedTypeFileList = [];\r\n }\r\n\r\n this.files = this.files.slice();\r\n this.fileAllSelected = false;\r\n $event.target.value = '';\r\n // loading.close();\r\n }\r\n\r\n showErrorMessage(file) {\r\n this.msgService.error(this.localepipe.transform('uploadFailure') + file.errorMessage);\r\n }\r\n\r\n handleFileInfo(uuid: string, selectedFile, fileName: string): any {\r\n\r\n let fileInfo: FileInfo;\r\n\r\n fileInfo = {\r\n id: uuid,\r\n name: fileName,\r\n type: selectedFile.type,\r\n source: \"\",\r\n size: this.getFileSize(selectedFile.size),\r\n fileSize: selectedFile.size,\r\n picListDisplayName: this.getPicListDisplayName(fileName),\r\n queueListDisplayName: this.getQueueDisplayName(fileName),\r\n //content: reader.result.toString(),\r\n hasUploaded: false,\r\n mouseOn: false,\r\n selectd: false,\r\n isUploading: true,\r\n uploadResult: false,\r\n uploadProcess: 0,\r\n errorMessage: \"\",\r\n extensionDropListId: 0,\r\n extensionName: \"\",\r\n securityDropListId: 0,\r\n securityInfo: this.securityInfoList[0],\r\n style: {}\r\n }\r\n\r\n if (this.storageExtension != null)\r\n fileInfo.extensionName = this.defaultPropertyName;\r\n\r\n\r\n let type: string = selectedFile.type;\r\n if (type.includes(\"tiff\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\r\n }\r\n else if (type.includes(\"image\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Image);\r\n }\r\n else if (type.includes(\"word\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Word);\r\n }\r\n else if (type.includes(\"pdf\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Pdf);\r\n }\r\n else if (type.includes(\"plain\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Txt);\r\n }\r\n else if (type.includes(\"sheet\") || type.includes(\"excel\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Excel)\r\n }\r\n else if (type.includes(\"powerpoint\") || type.includes(\"presentation\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Powerpoint);\r\n }\r\n else if (type.includes(\"zip\") || selectedFile.name.includes(\".rar\")) {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Zip);\r\n }\r\n else {\r\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\r\n // let name: string = selectedFile.name;\r\n // let errType = name.substring(selectedFile.name.lastIndexOf('.'));\r\n // this.errTypeList.push(errType);\r\n }\r\n return fileInfo;\r\n }\r\n\r\n uploadFile(uuid: string, selectedFile, fileName: string, state: FileState = FileState.New) {\r\n\r\n let fileInfo = this.handleFileInfo(uuid, selectedFile, fileName);\r\n\r\n let uploadFileInfo = new UploadFileInfo();\r\n\r\n uploadFileInfo.metadataId = uuid;\r\n uploadFileInfo.fileName = fileInfo.name;\r\n uploadFileInfo.fileSize = fileInfo.size;\r\n uploadFileInfo.originalSize = fileInfo.fileSize;\r\n uploadFileInfo.state = state;\r\n uploadFileInfo.securityInfo = this.securityInfoList[0];\r\n\r\n\r\n //判断是否支持分片上传\r\n if (this.allowedMultiUpload) {\r\n\r\n //支持分片上传\r\n let initRequest: InitMultiUploadRequest = new InitMultiUploadRequest;\r\n\r\n initRequest.path = this.formId;\r\n initRequest.metadataId = uuid;\r\n initRequest.rootId = this.rootId;\r\n initRequest.size = fileInfo.fileSize;\r\n initRequest.fileName = fileName;\r\n\r\n //初始化分片\r\n this.initMultiUpload(initRequest).subscribe(res => {\r\n if (res.error != null) {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\r\n } else {\r\n let uploadId = res.uploadId;\r\n let chunkTotal: number = Math.ceil(selectedFile.size / this.bufferSize);\r\n let chunkIndex: number = 0;\r\n\r\n let multiResultList: MultiUploadResult[] = [];\r\n\r\n this.fileTotalChunk[uuid] = chunkTotal;\r\n this.uploadedChunk[uuid] = 0;\r\n\r\n while (chunkIndex < chunkTotal) {\r\n\r\n let nextSize = Math.min((chunkIndex + 1) * this.bufferSize, selectedFile.size);\r\n let fileData = selectedFile.slice(chunkIndex * this.bufferSize, nextSize);\r\n\r\n let multiRequest = new MultiUploadRequest;\r\n multiRequest.metadataId = uuid;\r\n multiRequest.rootId = this.rootId;\r\n multiRequest.uploadId = uploadId;\r\n multiRequest.index = chunkIndex;\r\n multiRequest.total = chunkTotal;\r\n multiRequest.size = fileData.size;\r\n\r\n let formData = new FormData();\r\n formData.append('multiRequest', JSON.stringify(multiRequest));\r\n formData.append('file', fileData);\r\n\r\n this.multiUpload(formData).subscribe(res => {\r\n if (res.error != null) {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\r\n } else {\r\n multiResultList.push(res.result);\r\n this.uploadedChunk[uuid]++;\r\n this.files[this.files.indexOf(fileInfo)].uploadProcess = Number.parseInt((this.uploadedChunk[uuid] / this.fileTotalChunk[uuid] * 100).toFixed(0));\r\n if (this.uploadedChunk[uuid] == this.fileTotalChunk[uuid]) {\r\n if (multiResultList.length == this.fileTotalChunk[uuid]) {\r\n\r\n let completeMultiUploadRequest: CompleteMultiUploadRequest = new CompleteMultiUploadRequest;\r\n completeMultiUploadRequest.metadataId = uuid;\r\n completeMultiUploadRequest.partList = multiResultList;\r\n completeMultiUploadRequest.rootId = this.rootId;\r\n completeMultiUploadRequest.uploadId = uploadId;\r\n completeMultiUploadRequest.size = fileInfo.fileSize;\r\n if (this.haveExtensionProperty)\r\n completeMultiUploadRequest.exPropertyName = this.defaultPropertyName;\r\n this.completeMultiUpload(completeMultiUploadRequest).subscribe(res => {\r\n if (res.status != 200) {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\r\n } else {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = true;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.uploadFileInfoList = this.uploadFileInfoList.concat(uploadFileInfo);\r\n this.uploadedFileInfoList = this.uploadedFileInfoList.concat(uploadFileInfo);\r\n this.uploadedFileTotal++;\r\n\r\n\r\n }\r\n })\r\n //后台异步拼接文档\r\n } else {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.files[this.files.indexOf(fileInfo)].errorMessage = this.localepipe.transform('mismatchChunkSize');\r\n }\r\n\r\n }\r\n }\r\n })\r\n\r\n chunkIndex = chunkIndex + 1;\r\n }\r\n }\r\n\r\n\r\n\r\n })\r\n\r\n } else {\r\n let entity = new GspFormStreamEntity;\r\n entity.formId = this.formId;\r\n entity.metadataId = uuid;\r\n entity.mode = OperatingModes.Temp;\r\n entity.rootId = this.rootId;\r\n entity.size = selectedFile.size;\r\n entity.fileName = fileName;\r\n if (this.haveExtensionProperty)\r\n entity.exPropertyName = this.defaultPropertyName;\r\n\r\n let formData = new FormData();\r\n formData.append('uploadEntity', JSON.stringify(entity));\r\n formData.append('file', selectedFile);\r\n\r\n\r\n let intervalId;\r\n\r\n this.uploadSingleFile(formData).subscribe(res => {\r\n if (res != null) {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\r\n } else {\r\n this.files[this.files.indexOf(fileInfo)].uploadResult = true;\r\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\r\n this.uploadFileInfoList = this.uploadFileInfoList.concat(uploadFileInfo);\r\n this.uploadedFileInfoList = this.uploadedFileInfoList.concat(uploadFileInfo);\r\n this.uploadedFileTotal++;\r\n\r\n }\r\n clearInterval(intervalId);\r\n })\r\n\r\n let index = -1;\r\n this.files.forEach(x => {\r\n if (x.name == fileInfo.name) {\r\n if (index == -1)\r\n index = this.files.indexOf(x);\r\n }\r\n })\r\n if (index != -1 && index != this.files.length - 1) {\r\n this.files.splice(index, 1);\r\n this.uploadFileInfoList.splice(index, 1);\r\n this.uploadedFileInfoList.splice(index, 1);\r\n this.uploadedFileTotal--;\r\n }\r\n\r\n intervalId = setInterval(() => {\r\n this.getUploadProcess(entity.metadataId).subscribe(res => {\r\n if (res.error != null)\r\n this.files[this.files.indexOf(fileInfo)].uploadProcess = 10;\r\n else {\r\n if (res < 10)\r\n res = 10;\r\n if (res > 90)\r\n res = 90;\r\n this.files[this.files.indexOf(fileInfo)].uploadProcess = res;\r\n }\r\n })\r\n }, 200);\r\n }\r\n\r\n }\r\n\r\n getUploadProcess(metadataId: string): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/upload/process?metadataid=\" + metadataId;\r\n\r\n return this.httpclient.get(url).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n uploadSingleFile(formdata: FormData): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/single\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n return this.httpclient.post(baseUrl, formdata).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n uploadSliceFile(formdata: FormData): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/slice\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n return this.httpclient.post(baseUrl, formdata).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n initMultiUpload(request: InitMultiUploadRequest): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/multi/init\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n return this.httpclient.post(baseUrl, request).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n multiUpload(formdata: FormData): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/multi/upload\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n return this.httpclient.post(baseUrl, formdata).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n completeMultiUpload(request: CompleteMultiUploadRequest): Observable<any> {\r\n\r\n let url = \"/api/runtime/dfs/v1.0/formdoc/multi/complete\";\r\n const baseUrl = BasePathService.convertPath(url);\r\n return this.httpclient.post(baseUrl, request).pipe(\r\n tap(res => { }),\r\n catchError((error: HttpErrorResponse) => {\r\n return of(error);\r\n }));\r\n }\r\n\r\n\r\n\r\n selectAllFile() {\r\n\r\n if (!this.fileAllSelected) {\r\n this.files.forEach(element => {\r\n\r\n element.selectd = true;\r\n });\r\n this.fileAllSelected = true;\r\n this.selectedFileCount = this.files.length;\r\n\r\n } else {\r\n this.files.forEach(element => {\r\n\r\n element.selectd = false;\r\n });\r\n this.fileAllSelected = false;\r\n this.selectedFileCount = 0;\r\n }\r\n }\r\n\r\n\r\n checkoutSelectFile(file: FileInfo) {\r\n // let obj: any = document.getElementById(fileName);\r\n file.selectd = !file.selectd;\r\n if (file.selectd)\r\n this.selectedFileCount++;\r\n else\r\n this.selectedFileCount--;\r\n if (this.selectedFileCount == this.files.length) {\r\n this.fileAllSelected = true;\r\n //this.isFileAllSelected();\r\n }\r\n else {\r\n this.fileAllSelected = false;\r\n //this.isFileAllSelected();\r\n }\r\n\r\n }\r\n\r\n listDeleteFile(fileInfo: FileInfo) {\r\n if (fileInfo.selectd)\r\n this.selectedFileCount--;\r\n //console.log(fileName);\r\n this.files.splice(this.files.indexOf(fileInfo), 1);\r\n if (fileInfo.uploadResult) {\r\n let idList: string[] = [];\r\n idList.push(fileInfo.id);\r\n this.uploadService.cancel(idList, this.rootId).subscribe();\r\n\r\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\r\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\r\n this.uploadedFileTotal--;\r\n }\r\n if (this.selectedFileCount == 0)\r\n this.fileAllSelected = false;\r\n }\r\n\r\n listMultipleDeleteFile() {\r\n let selectedFile: FileInfo[] = [];\r\n this.files.forEach(element => {\r\n let obj: any = document.getElementById(element.name);\r\n if (obj.checked)\r\n selectedFile.push(element);\r\n })\r\n let metadataList: string[] = [];\r\n selectedFile.forEach(element => {\r\n metadataList.push(element.id);\r\n this.files.splice(this.files.indexOf(element), 1);\r\n if (element.uploadResult) {\r\n\r\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\r\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\r\n this.uploadedFileTotal--;\r\n }\r\n })\r\n this.uploadService.cancel(metadataList, this.rootId).subscribe();\r\n\r\n let allBox: any = document.getElementById(\"allCheckBox\");\r\n if (allBox != null)\r\n allBox.checked = false;\r\n this.selectedFileCount = 0;\r\n this.fileAllSelected = false;\r\n }\r\n\r\n\r\n getPicListDisplayName(fileName: string) {\r\n if (fileName.length <= 10)\r\n return fileName;\r\n else {\r\n let headContent = fileName.substring(0, 2);\r\n let tailContent = fileName.substring(fileName.lastIndexOf('.') - 2);\r\n return headContent + \"…\" + tailContent;\r\n }\r\n }\r\n\r\n getQueueDisplayName(fileName: string) {\r\n return fileName;\r\n }\r\n\r\n addDocInfo(selectdFile, fileInfo: FileInfo, docType: DocType) {\r\n\r\n switch (docType) {\r\n case DocType.Word: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/word.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Pdf: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/pdf.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Excel: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/excel.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Txt: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/txt.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Zip: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/zip.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Powerpoint: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/ppt.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Other: {\r\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/file.png\");\r\n this.files.push(fileInfo);\r\n break;\r\n }\r\n\r\n case DocType.Image: {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(selectdFile);\r\n reader.onload = (_event) => {\r\n let imgUrl = reader.result;\r\n if (this.injector != null) {\r\n let sanitizer = this.injector.get(DomSanitizer);\r\n imgUrl = sanitizer.bypassSecurityTrustResourceUrl(imgUrl);\r\n }\r\n fileInfo.source = imgUrl;\r\n fileInfo.style = { \"max-width\": \"120px\", \"max-height\": \"118px\" }\r\n this.files.push(fileInfo);\r\n\r\n //因为异步处理的差异,补偿一次删除\r\n let index = -1;\r\n this.files.forEach(x => {\r\n if (x.name == fileInfo.name) {\r\n if (index == -1)\r\n index = this.files.indexOf(x);\r\n }\r\n })\r\n if (index != -1 && index != this.files.length - 1) {\r\n this.files.splice(index, 1);\r\n this.uploadFileInfoList.splice(index, 1);\r\n this.uploadedFileInfoList.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n listToString(strList: string[]) {\r\n const result = strList.filter(item => item.trim() !== '');\r\n let name: string = \"\";\r\n for (let i = 0; i < result.length; i++) {\r\n name += result[i] + (i === result.length - 1 ? \"\" : \",\");\r\n }\r\n return name;\r\n }\r\n\r\n securityChange($event: any, file: FileInfo) {\r\n file.securityInfo = $event.data;\r\n let uploadFile = this.uploadFileInfoList.filter(x => x.metadataId = file.id)[0];\r\n uploadFile.securityInfo = $event.data;\r\n }\r\n\r\n\r\n exStorageFileList: ExStorageFileInfo[] = [];\r\n\r\n typeChange($event: any, file: FileInfo) {\r\n file.extensionName = $event.data.name;\r\n let exStorageFileInfo: ExStorageFileInfo = new ExStorageFileInfo;\r\n if (file.extensionName == this.storageExtension.defaultPropertyName) {\r\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0)\r\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1)\r\n } else {\r\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\r\n exStorageFileInfo = this.exStorageFileList.filter(x => x.metadataId == file.id)[0];\r\n exStorageFileInfo.exPropertyName = file.extensionName;\r\n } else {\r\n exStorageFileInfo.metadataId = file.id;\r\n exStorageFileInfo.exPropertyName = file.extensionName;\r\n this.exStorageFileList.push(exStorageFileInfo);\r\n }\r\n }\r\n }\r\n\r\n upload(): Observable<any> {\r\n if (this.uploadedFileTotal != this.files.filter(x => x.isUploading || x.uploadResult).length) {\r\n\r\n this.msgService.warning(this.localepipe.transform('wait'));\r\n return of(false);\r\n }\r\n if (this.haveSecurityInfo) {\r\n this.uploadService.saveSecurityInfo(this.uploadFileInfoList, this.rootId).subscribe();\r\n }\r\n if (this.storageExtension == null)\r\n return of(this.uploadFileInfoList);\r\n else {\r\n if (this.exStorageFileList.length == 0)\r\n return of(this.uploadFileInfoList);\r\n else {\r\n const loading = this.loadService.show({\r\n message: this.localepipe.transform('saveTo') + this.storageExtension.extensionName\r\n });\r\n return this.uploadService.changeStorageInstance(this.exStorageFileList, this.rootId).pipe(\r\n map(res => {\r\n // if (res != null)\r\n // this.msgService.error('保存到' + this.storageExtension.extensionName + \"失败,上传文件自动保存到\" + this.storageExtension.defaultPropertyName + \"存储。\" + res.error.Message);\r\n loading.close();\r\n return this.uploadFileInfoList;\r\n }))\r\n }\r\n }\r\n }\r\n\r\n cancel() {\r\n if (this.uploadFileInfoList.length == 0)\r\n return;\r\n this.uploadFileInfoList.forEach(element => {\r\n this.metadataIdList.push(element.metadataId);\r\n })\r\n this.uploadService.cancel(this.metadataIdList, this.rootId).subscribe();\r\n\r\n }\r\n\r\n getUploadFileInfoList() {\r\n return this.uploadFileInfoList;\r\n }\r\n\r\n delete(file) {\r\n this.files.splice(this.files.indexOf(file), 1);\r\n if (file.uploadResult)\r\n this.uploadedFileTotal--;\r\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\r\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1);\r\n }\r\n\r\n }\r\n\r\n getFileSize(size: number) {\r\n if (size < 102400)\r\n return (size / 1024).toFixed(1) + \"K\";\r\n else if (size < 1024 * 1024)\r\n return (size / 1024).toFixed(0) + \"K\";\r\n else if (size < 100 * 1024 * 1024)\r\n return (size / 1024 / 1024).toFixed(1) + \"M\";\r\n else if (size < 1024 * 1024 * 1024)\r\n return (size / 1024 / 1024).toFixed(0) + \"M\";\r\n else\r\n return (size / 1024 / 1024 / 1024).toFixed(1) + \"G\";\r\n }\r\n showByGroup() {\r\n this.showType = 0;\r\n // this.selectedFileCount = 0;\r\n }\r\n\r\n showByList() {\r\n this.showType = 1;\r\n // this.selectedFileCount = 0;\r\n if (this.selectedFileCount != 0 && this.selectedFileCount == this.files.length) {\r\n this.fileAllSelected = true;\r\n }\r\n }\r\n\r\n mouseOver(file) {\r\n file.mouseOn = true;\r\n }\r\n mouseOut(file) {\r\n file.mouseOn = false;\r\n }\r\n\r\n createBaseUrl(oldUrl: string) {\r\n const baseUrl = BasePathService.convertPath(oldUrl)\r\n return baseUrl;\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { BasePathService } from '@farris/rtf';\r\n\r\n\r\n@Injectable()\r\nexport class DownloadService {\r\n\r\n constructor() { }\r\n\r\n getDownloadUrl(metadataId: string, rootId: string) {\r\n const url = \"/api/runtime/dfs/v1.0/doc/filecontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\r\n const baseUrl = BasePathService.convertPath(url);\r\n return baseUrl;\r\n }\r\n\r\n\r\n getStreamDownloadUrl(metadataId: string, rootId: string) {\r\n const url = \"/api/runtime/dfs/v1.0/formdoc/stream?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\r\n const baseUrl = BasePathService.convertPath(url);\r\n return baseUrl;\r\n }\r\n\r\n getMultipleDownloadUrl(metadataIdList: string, rootId: string) {\r\n let list: string[] = JSON.parse(metadataIdList);\r\n const url = \"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId));\r\n const baseUrl = BasePathService.convertPath(url);\r\n return baseUrl;\r\n }\r\n\r\n getMultipleDownloadUrlWithName(metadataIdList: string, rootId: string, zipName: string) {\r\n let list: string[] = JSON.parse(metadataIdList);\r\n if (zipName == null || zipName == \"\")\r\n zipName = 'unifile.zip';\r\n if (!zipName.endsWith(\".zip\"))\r\n zipName += '.zip';\r\n\r\n\r\n const url = \"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId)) + \"&zipName=\" + encodeURIComponent(zipName);\r\n const baseUrl = BasePathService.convertPath(url);\r\n return baseUrl;\r\n\r\n }\r\n\r\n getHistoryDownloadUrl(metadataId: string, rootId: string, version: string) {\r\n //let list:string[]=JSON.parse(metadataIdList);\r\n const url = \"/api/runtime/dfs/v1.0/doc/historycontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&version=\" + version + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\r\n const baseUrl = BasePathService.convertPath(url);\r\n return baseUrl;\r\n }\r\n\r\n\r\n\r\n private mergeString(str: string, str1: string): string {\r\n let min = str.length < str1.length ? str.length : str1.length;\r\n let res: string = \"\";\r\n let i = 0;\r\n for (i = 0; i < min; i++) {\r\n res += str.substring(i, i + 1);\r\n res += str1.substring(i, i + 1);\r\n }\r\n res += str.length < str1.length ? str1.substring(i) : str.substring(i);\r\n return res;\r\n }\r\n\r\n private getToken(str: string): string {\r\n let array = [1, 2, 3];\r\n if (str.length > 24)\r\n str = str.substring(0, 24);\r\n let length = Math.floor(str.length / 3);\r\n let str1 = str.substring(0, length);\r\n let str2 = str.substring(length, 2 * length);\r\n let str3 = str.substring(2 * length, 3 * length);\r\n let randomArray = [];\r\n var random = Math.ceil(Math.random() * 3);\r\n randomArray.push(array[random - 1]);\r\n array.splice(random - 1, 1);\r\n random = Math.ceil(Math.random() * 2);\r\n randomArray.push(array[random - 1]);\r\n array.splice(random - 1, 1);\r\n randomArray.push(array[0]);\r\n let timeStamp: string = Math.round(new Date().getTime() / 1000) + \"\";\r\n\r\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);\r\n }\r\n\r\n private switchStr(str1: string, str2: string, str3: string, i: number): string {\r\n switch (i) {\r\n case 1: return str1;\r\n case 2: return str2;\r\n case 3: return str3;\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { LOCALE_ID, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FarrisRTFModule } from '@farris/rtf';\r\nimport { FileUploadComponent } from './file-upload/file-upload.component';\r\nimport { NotifyModule } from '@farris/ui-notify';\r\nimport { MessagerModule } from '@farris/ui-messager';\r\nimport { UploadService } from './upload.service';\r\nimport { LoadingModule } from '@farris/ui-loading';\r\nimport { ProgressModule } from '@farris/ui-progress'\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ComboListModule } from '@farris/ui-combo-list';\r\nimport { FarrisFormsModule } from '@farris/ui-forms'\r\nimport { DownloadService } from './download.service';\r\nimport { LocalLangPipe } from '../local.pipe';\r\nimport { CacheService, HttpService, LanguageService, SessionService } from '@ecp-caf/caf-common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [FileUploadComponent, LocalLangPipe],\r\n imports: [\r\n CommonModule,\r\n FarrisRTFModule,\r\n NotifyModule,\r\n MessagerModule.forRoot(),\r\n LoadingModule.forRoot(),\r\n ProgressModule,\r\n FormsModule,\r\n FarrisFormsModule,\r\n ComboListModule,\r\n HttpClientModule\r\n ],\r\n exports: [FileUploadComponent],\r\n entryComponents: [FileUploadComponent],\r\n providers: [UploadService, DownloadService, LanguageService, HttpService, CacheService, SessionService,\r\n { provide: LOCALE_ID, useValue: localStorage.getItem('languageCode') || 'zh-CHS' },]\r\n\r\n})\r\nexport class UploadModule { }\r\n\r\nexport const ɵa = UploadModule;\r\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 uploadRef.instance.fileNameLength = limit.fileNameLength;\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}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FarrisDialogModule } from '@farris/ui-dialog';\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 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 \"./gspdocsecuritybaseinfo\";\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 public fileNameLength: 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}","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 size: number;\r\n public exPropertyName: string;\r\n public extProperty: GspDocMetaProperty;\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 { 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} ","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: any;\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 public style:any;\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}"],"names":["Injectable","args","providedIn","FormdocUploadService","FormdocUploadComponent","prototype","ngOnInit","Component","selector","template","ɵ0","localStorage","getItem","FormdocUploadModule","NgModule","declarations","imports","HttpClientModule","exports","providers","LanguageService","HttpService","CacheService","SessionService","provide","LOCALE_ID","useValue","Word","Excel","Powerpoint","Pdf","Txt","Image","Other","Zip","Formal","Temp","GspFormRemoveListEntity","GspFormDocOperateEntity","ChangeInstanceRequest","CopyFileRequest","UploadService","uploadList","docListInfo","rootId","this","http","post","pipe","tap","res","catchError","error","of","commit","metadataIdList","entity","cancel","put","removeList","idList","idListInfo","mode","OperatingModes","delete","getFile","metadataId","url","get","uploadFile","docInfo","uploadSliceFile","formdata","baseUrl","BasePathService","convertPath","httpclient","getStorageExtensionInfo","getSecurityInfoList","baseInfo","securityId","securityLevel","changeStorageInstance","storageInfoList","request","fileInfoList","copyFile","path","responseType","saveSecurityInfo","uploadFileInfoList","reqList","forEach","element","id","exProperty","JSON","stringify","securityInfo","push","getUploadedFileInfoList","formId","getUploadInfo","HttpClient","UploadFileInfo","ExStorageFileInfo","New","Update","LANG_RESOURCES","zh-CHS","uploading","selectedCount","limitCount","rechooseFile","save","haveSameName","rename","replace","sizeZero","sizeMax","uploadFailure","uploadSucceed","wait","saveTo","selectAll","selectNull","detail","fileName","state","operation","size","close","loading","mismatchChunkSize","invalidCharacters","invalidExtNames","whiteExtNames","blackExtNames","UnrecognizedFileType","fileNameOverSize","en-US","en","zh-CHT","LocalLangPipe","transform","name","lang","Pipe","Inject","localeId","defaultLang","langCode","InitMultiUploadRequest","CompleteMultiUploadRequest","GspFormStreamEntity","MultiUploadRequest","FileUploadComponent","_this","navigator","userAgent","indexOf","checkboxPos","top","uploadService","subscribe","haveSecurityInfo","i","securityInfoList","toString","i_1","storageExtension","defaultPropertyName","propertiesNames","extensionPropertyNameList","queueListStyle","width","haveExtensionProperty","uploadInfoErrorMessage","Message","uploadBtnDisabled","sameNameAllowed","maxFileSize","parseInt","parse","validateConfiguration","isWhiteList","whiteList","toLowerCase","allowedMultiUpload","uploadedFileInfoList","oldUploadedFileList","oldIdList","length","radioButtonGroupValue","showLoading","hasSelectedFile","getRightClass","findInvalidCharacter","charList","split","hasFileType","file","includes","fileSelected","$event","msgService","selectedFiles","document","querySelector","fileCount","files","selectedNum","warning","localepipe","name_7","selectedFile","this_1","uuid","isAllowedUpload","UUID","nullFileList","fileNameLength","fileNameOversizeList","beyondFileList","invalidCharListFilter","filter","s","trim","errorMessage","index","invalidCharactersFileList","unrecognizedTypeFileList","msg_1","curFileSuffix","substr","lastIndexOf","extNames","listToString","extNamesAry","invalidExtNamesFileList","find","x","show","initialState","buttons","text","cls","handle","newName","oldName","flag","substring","FileState","uploadedFileTotal","splice","errFileList","name_1","name_2","name_3","name_4","name_5","name_6","slice","fileAllSelected","target","value","showErrorMessage","handleFileInfo","fileInfo","type","source","getFileSize","fileSize","picListDisplayName","getPicListDisplayName","queueListDisplayName","getQueueDisplayName","hasUploaded","mouseOn","selectd","isUploading","uploadResult","uploadProcess","extensionDropListId","extensionName","securityDropListId","style","addDocInfo","DocType","entity_1","intervalId_1","index_1","uploadFileInfo","originalSize","initRequest","initMultiUpload","uploadId_1","uploadId","chunkTotal","Math","ceil","bufferSize","chunkIndex","multiResultList_1","fileTotalChunk","uploadedChunk","nextSize","min","fileData","multiRequest","formData","total","FormData","append","multiUpload","result","Number","toFixed","completeMultiUploadRequest","partList","exPropertyName","completeMultiUpload","status","concat","uploadSingleFile","clearInterval","setInterval","getUploadProcess","selectAllFile","selectedFileCount","checkoutSelectFile","listDeleteFile","listMultipleDeleteFile","metadataList","getElementById","checked","allBox","selectdFile","docType","createBaseUrl","reader_1","FileReader","readAsDataURL","onload","_event","imgUrl","injector","DomSanitizer","bypassSecurityTrustResourceUrl","max-width","max-height","strList","item","securityChange","data","typeChange","exStorageFileInfo","exStorageFileList","findIndex","upload","loading_1","loadService","message","map","getUploadFileInfoList","showByGroup","showType","showByList","mouseOver","mouseOut","oldUrl","MessagerService","LoadingService","Injector","Input","ViewChild","errTypeList","uploadIconAddress","uploadLittleIconAddress","requestArray","Array","requestBodyArray","uploadedProcess","dropListValue","fileType","totalLoad","localeid","DownloadService","getDownloadUrl","getToken","mergeString","getStreamDownloadUrl","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","FarrisRTFModule","NotifyModule","MessagerModule","forRoot","LoadingModule","ProgressModule","FormsModule","FarrisFormsModule","ComboListModule","entryComponents","ɵa","UploadDialogComponent","showDialog","dlg","modalService","title","height","iconCls","fileUpload","showButtons","content","BsModalService","UploadDialogService","Promise","resolve","viewerRef","componentFactoryResolver","resolveComponentFactory","create","instance","localpipe","showMaxButton","beforeClose","uploadFileWithLimit","limit","uploadRef","ComponentFactoryResolver","FarrisDialogModule","UploadDialogMoudle","UploadLimit","GspFormUploadListEntity","GspFormDocInfo","GspDocMetaProperty","GspFormUploadEntity","FileInfo","GspDocSecurityBaseInfo","SecurityEntity"],"mappings":"g8CAECA,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,M,EACb,G,yIAJD,IAAAC,E,EAOE,SAAAA,KCQAC,EAAAC,UAAAC,SAAA,a,oBAbDC,EAAAA,UAASN,KAAA,CAAC,CACTO,SAAU,qBACVC,SAAU,sD,EAMX,G,sCAVD,IAAAL,EAkBAA,EALE,SAAAA,KCbF,IAAAM,EAeoCC,aAAaC,QAAQ,cAAc,GAAK,SAR5EC,G,oBAACC,EAAAA,SAAQb,KAAA,CAAC,CACRc,aAAc,CAACX,GACfY,QAAS,CACPC,EAAAA,kBAGFC,QAAS,CAACd,GACVe,UAAU,CAAKC,EAAAA,gBAAgBC,EAAAA,YAAYC,EAAAA,aAAaC,EAAAA,eACtD,CAAEC,QAASC,EAAAA,UAAWC,SAAQhB,CAAkD,E,EACnF,GACkCG,GAVnC,SAAAA,K,OCNIc,KAAA,EACAC,MAAA,EACAC,WAAA,EACAC,IAAA,EACAC,IAAA,EACAC,MAAA,EACAC,MAAA,EACAC,IAAA,C,0JCPAC,OAAA,EACAC,KAAA,C,GCAJC,G,sCAAA,cCFAC,EAAA,aCEAC,EAAA,aCFAC,EAAA,aCAAC,GA0BEA,EAAApC,UAAAqC,WAAA,SAAWC,EAAsCC,GAO/C,OALAD,EAAYC,OAASA,EAKdC,KAAKC,KAAKC,KAHX,qCAGqBJ,CAAW,EAAEK,KACtCC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAINX,EAAApC,UAAAiD,OAAA,SAAOC,EAA0BX,G,IAE3BY,EAAkC,IAAIlB,EAM1C,OALAkB,EAAOD,eAAiBA,EACxBC,EAAOZ,OAASA,EAITC,KAAKC,KAAKC,KAHX,uCAGqBS,CAAM,EAAER,KAAI,C,EAGzCP,EAAApC,UAAAoD,OAAA,SAAOF,EAA0BX,G,IAE3BY,EAAkC,IAAIlB,EAM1C,OALAkB,EAAOD,eAAiBA,EACxBC,EAAOZ,OAASA,EAITC,KAAKC,KAAKY,IAHX,uCAGoBF,CAAM,EAAER,KAAI,C,EAGxCP,EAAApC,UAAAsD,WAAA,SAAWC,EAAkBhB,G,IAIvBiB,EAAa,IAAIxB,EAIrB,OAHAwB,EAAWN,eAAiBK,EAC5BC,EAAWC,KAAOC,EAAe3B,KACjCyB,EAAWjB,OAASA,EACbC,KAAKC,KAAKkB,UALX,qCAKuBH,CAAU,EAAEb,KAAI,C,EAG/CP,EAAApC,UAAA4D,QAAA,SAAQC,EAAoBtB,GAIxBuB,EADY,IAAVvB,EACI,sCAAwCsB,EAExC,sCAAwCA,EAAa,IAAMtB,EACnE,OAAOC,KAAKC,KAAKsB,IAAID,CAAG,EAAEnB,KAAKC,EAAAA,IAAG,SAACC,IAAU,EAC3CC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAINX,EAAApC,UAAAgE,WAAA,SAAWC,GAKT,OAAOzB,KAAKC,KAAKC,KAHP,gCAGiBuB,CAAO,EAAEtB,KAClCC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNX,EAAApC,UAAAkE,gBAAA,SAAgBC,G,IAIRC,EAAUC,EAAAA,gBAAgBC,YAFtB,qCAEqC,EAC/C,OAAO9B,KAAK+B,WAAW7B,KAAK0B,EAASD,CAAQ,EAAExB,KAC7CC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAINX,EAAApC,UAAAwE,wBAAA,WAIE,OAAOhC,KAAKC,KAAKsB,IAHP,iDAGc,EAAEpB,KACxBC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNX,EAAApC,UAAAyE,oBAAA,SAAoBC,GAElBZ,EAAMA,qDAAeY,EAASC,WAAa,UAAYD,EAASE,cAEhE,OAAOpC,KAAKC,KAAKsB,IAAID,CAAG,EAAEnB,KACxBC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNX,EAAApC,UAAA6E,sBAAA,SAAsBC,EAAsCvC,G,IAEtDwC,EAAiC,IAAI7C,EAGzC,OAFA6C,EAAQC,aAAeF,EACvBC,EAAQxC,OAASA,EACVC,KAAKC,KAAKC,KAJP,+CAIiBqC,CAAO,EAAEpC,KAClCC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNX,EAAApC,UAAAiF,SAAA,SAASpB,EAAoBtB,EAAgB2C,G,IAErCd,EAAUC,EAAAA,gBAAgBC,YADtB,oCACqC,EAC3CS,EAA2B,IAAI5C,EAInC,OAHA4C,EAAQlB,WAAaA,EACrBkB,EAAQxC,OAASA,EACjBwC,EAAQG,KAAOA,EACR1C,KAAK+B,WAAW7B,KAAK0B,EAASW,EAAS,CAAEI,aAAc,MAAM,CAAE,EAAExC,KACtEC,EAAAA,IAAG,SAACC,IAAU,CAAC,C,EAOnBT,EAAApC,UAAAoF,iBAAA,SAAiBC,EAAsC9C,G,IAEjD+C,EAA+B,GAKnC,OAJAD,EAAmBE,QAAO,SAACC,GACrBT,EAA6B,CAAEU,GAAID,EAAQ3B,WAAYtB,OAAQA,EAAQmD,WAAYC,KAAKC,UAAUJ,EAAQK,YAAY,CAAC,EAC3HP,EAAQQ,KAAKf,CAAO,CACrB,CAAA,EACMvC,KAAKC,KAAKC,KANP,uCAMiB4C,CAAO,EAAE3C,KAClCC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAINX,EAAApC,UAAA+F,wBAAA,SAAwBC,EAAgBzD,GAItC,OAAOC,KAAKC,KAAKsB,IAHP,8DAAqEiC,EAAS,WAAazD,CAG7E,EAAEI,KACxBC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNX,EAAApC,UAAAiG,cAAA,SAAc1D,GAGZ,OAAOC,KAAKC,KAAKsB,IAFP,6CAA+CxB,CAEjC,EAAEI,KACxBC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,sBA9KPpD,EAAAA,UAAU,G,yCAlBFqB,EAAAA,WAAW,E,MAEXkF,EAAAA,UAAU,E,EAqNnB9D,GAlME,SAAAA,EAAoBK,EAA2B8B,GAA3B/B,KAAAC,KAAAA,EAA2BD,KAAA+B,WAAAA,C,CCrBjD,IAAA4B,EAAA,aCHAC,EAAA,a,GCCIC,IAAA,EACAC,OAAA,C,ECFSC,G,oCAAiB,CAC1BC,SAAU,CACNxC,WAAc,OACdyC,UAAY,WACZC,cAAgB,WAChBC,WAAa,YACbC,aAAe,cACfC,KAAO,KACPzD,OAAS,KACT0D,aAAe,aACfC,OAAS,MACXC,QAAU,KACRC,SAAW,SACXC,QAAU,WACVC,cAAgB,OAChBC,cAAgB,OAChBC,KAAO,cACPC,OAAS,WACT3D,SAAS,KACT4D,UAAY,KACZC,WAAa,MACbC,OAAS,KACTC,SAAW,MACXC,MAAQ,KACRC,UAAY,KACZC,KAAO,KACPC,MAAQ,KACRC,QAAU,QACVC,kBAAoB,oCACpBC,kBAAqB,YACrBC,gBAAmB,YACnBC,cAAiB,eACjBC,cAAiB,gBACjBC,qBAAuB,WACvBC,iBAAmB,gB,EAEvBC,QAAS,CACLvE,WAAc,cACdyC,UAAY,mBACZC,cAAgB,wBAChBC,WAAa,sBACbC,aAAe,yBACfC,KAAO,OACPzD,OAAS,SACT0D,aAAe,gDACfC,OAAS,SACfC,QAAU,UACJC,SAAW,iBACXC,QAAU,yBACVC,cAAgB,gBAChBC,cAAgB,sBAChBC,KAAO,wCACPC,OAAS,iBACT3D,SAAS,SACT4D,UAAY,aACZC,WAAa,aACbC,OAAS,UACTC,SAAW,WACXC,MAAQ,QACRC,UAAY,YACZC,KAAO,OACPC,MAAQ,QACRC,QAAU,UACVC,kBAAoB,qIACpBC,kBAAqB,4CACrBC,gBAAmB,yCACnBC,cAAiB,6CACjBC,cAAiB,2DACjBC,qBAAwB,yBACxBC,iBAAmB,oC,EAEvBE,GAAM,CACFxE,WAAc,cACdyC,UAAY,mBACZC,cAAgB,wBAChBC,WAAa,sBACbC,aAAe,yBACfC,KAAO,OACPzD,OAAS,SACT0D,aAAe,gDACfC,OAAS,SACfC,QAAU,UACJC,SAAW,iBACXC,QAAU,yBACVC,cAAgB,gBAChBC,cAAgB,sBAChBC,KAAO,wCACPC,OAAS,iBACT3D,SAAS,SACT4D,UAAY,aACZC,WAAa,aACbC,OAAS,UACTC,SAAW,WACXC,MAAQ,QACRC,UAAY,YACZC,KAAO,OACPC,MAAQ,QACRC,QAAU,UACVC,kBAAoB,qIACpBC,kBAAqB,4CACrBC,gBAAmB,yCACnBC,cAAiB,6CACjBC,cAAiB,2DACjBC,qBAAwB,yBACxBC,iBAAmB,oC,EAEvBG,SAAU,CACNzE,WAAc,OACdyC,UAAY,WACZC,cAAgB,WAChBC,WAAa,YACbC,aAAe,aACfC,KAAO,KACPzD,OAAS,KACT0D,aAAe,aACfC,OAAS,MACfC,QAAU,KACJC,SAAW,SACXC,QAAU,WACVC,cAAgB,OAChBC,cAAgB,OAChBC,KAAO,cACPC,OAAS,WACT3D,SAAS,KACT4D,UAAY,KACZC,WAAa,MACbC,OAAS,KACTC,SAAW,MACXC,MAAQ,KACRC,UAAY,KACZC,KAAO,KACPC,MAAQ,KACRC,QAAU,QACVC,kBAAoB,oCACpBC,kBAAqB,YACrBC,gBAAmB,YACnBC,cAAiB,eACjBC,cAAiB,gBACjBC,qBAAwB,WACxBC,iBAAmB,gB,IC3I3BI,GAcIA,EAAA1I,UAAA2I,UAAA,SAAUC,GACN,OAAOpG,KAAKqG,KAAKD,IAASA,C,sBAZjCE,EAAAA,KAAIlJ,KAAA,CAAC,CAAEgJ,KAAM,QAAQ,EAAE,G,kEAMfG,EAAAA,OAAMnJ,KAAA,CAACwB,EAAAA,UAAS,EAAA,E,EAQzBsH,GATI,SAAAA,EACuBM,GAJNxG,KAAAyG,YAAsB,SAMnCzG,KAAK0G,SAAW5I,aAAaC,QAAQ,cAAc,GAAKyI,GAAYxG,KAAKyG,YACzEzG,KAAKqG,KAAOtC,EAAe/D,KAAK0G,WAAa3C,EAAe/D,KAAKyG,Y,CCZzE,IAAAE,EAAA,aCEAC,EAAA,aCCAC,EAAA,aCHAC,EAAA,aCAAC,GA6HEA,EAAAvJ,UAAAC,SAAA,WAAA,IAAAuJ,EAAAhH,KACgD,GAA1CiH,UAAUC,UAAUC,QAAQ,SAAS,IACvCnH,KAAKoH,YAAYC,IAAM,QAEA,MAArBrH,KAAKqD,cACPrD,KAAKsH,cAAcrF,oBAAoBjC,KAAKqD,YAAY,EAAEkE,UAAS,SACjElH,GACE2G,EAAKQ,iBAAmB,CAAA,E,IACpBC,EAAI,EACRpH,EAAI0C,QAAO,SAACC,GACVgE,EAAKU,iBAAiBpE,KAAK,CAAEL,GAAIwE,EAAEE,SAAQ,EAAIxF,WAAYa,EAAQb,WAAYC,cAAeY,EAAQZ,cAAegE,KAAMpD,EAAQoD,IAAI,CAAE,EACzIqB,CAAC,EACF,CAAA,CACF,CAAA,EAGLzH,KAAKsH,cAActF,wBAAuB,EAAGuF,UAAS,SACpDlH,GACE,IAIMuH,EAJK,MAAPvH,GAA4B,MAAbA,EAAIE,QACrByG,EAAKa,iBAAmBxH,EACxB2G,EAAKc,oBAAsBd,EAAKa,iBAAiBC,oBACjDd,EAAKe,gBAAgBzE,KAAK,CAAEL,GAAI,IAAKmD,KAAMY,EAAKa,iBAAiBC,mBAAmB,CAAE,EAClFF,EAAI,EAERZ,EAAKa,iBAAiBG,0BAA0BjF,QAAO,SAACC,GACtDgE,EAAKe,gBAAgBzE,KAAK,CAAEL,IAAI,EAAG2E,GAAGD,SAAQ,EAAIvB,KAAMpD,CAAO,CAAE,CAClE,CAAA,EACDgE,EAAKiB,eAAeC,MAAQ,QAC5BlB,EAAKmB,sBAAwB,CAAA,EAEhC,CAAA,EAGHnI,KAAKsH,cAAc7D,cAAczD,KAAKD,MAAM,EAAEwH,UAAS,SAAClH,GACrC,MAAbA,EAAIE,MACNyG,EAAKoB,uBAAyB/H,EAAIE,MAAM8H,SAIxCrB,EAAKsB,kBAAoB,CAAA,EACzBtB,EAAKuB,gBAAkBlI,EAAIkI,gBAC3BvB,EAAKwB,YAAcC,SAAStF,KAAKuF,MAAMrI,EAAIsI,qBAAqB,EAAEH,WAAW,EAC7ExB,EAAK4B,YAAczF,KAAKuF,MAAMrI,EAAIsI,qBAAqB,EAAEE,UACzD7B,EAAKvB,kBAAoBtC,KAAKuF,MAAMrI,EAAIsI,qBAAqB,EAAElD,kBAC/DuB,EAAKtB,gBAAkBvC,KAAKuF,MAAMrI,EAAIsI,qBAAqB,EAAEjD,gBAAgBoD,YAAW,EACxF9B,EAAK+B,mBAAqB1I,EAAI0I,mBACzB/B,EAAKuB,iBACRvB,EAAKM,cAAc/D,wBAAwByD,EAAKxD,OAAQwD,EAAKjH,MAAM,EAAEwH,UAAS,SAC5ElH,GACa,MAAPA,GAA4B,MAAbA,EAAIE,QACrByG,EAAKgC,qBAAuB3I,EAC5B2G,EAAKiC,oBAAsB9F,KAAKuF,MAAMvF,KAAKC,UAAU/C,CAAG,CAAC,EAE5D,CAAA,EAIR,CAAA,EACqB,MAAlBL,KAAKkJ,WAAqBlJ,KAAKkJ,UAAUC,OAI7CnJ,KAAKoJ,sBAAwB,a,EAK/BrC,EAAAvJ,UAAA6L,YAAA,WACErJ,KAAKsJ,gBAAkB,CAAA,C,EAOzBvC,EAAAvJ,UAAA+L,cAAA,WACE,OAAIvJ,KAAKsI,kBACA,kCAEA,wB,EAIXvB,EAAAvJ,UAAAgM,qBAAA,SAAqBpD,G,IACfqD,EAAqB,GAMzB,OALAzJ,KAAKyF,kBAAkBiE,MAAM,GAAG,EAAE3G,QAAO,SAACC,GACX,GAAzBoD,EAAKe,QAAQnE,CAAO,GACtByG,EAASnG,KAAKN,CAAO,CACxB,CAAA,EAEMyG,C,EAIT1C,EAAAvJ,UAAAmM,YAAA,SAAYC,GACV,OAAOA,EAAKxD,KAAKyD,SAAS,GAAG,C,EAG/B9C,EAAAvJ,UAAAsM,aAAA,SAAaC,GAAb,IAAA/C,EAAAhH,KACE,GAAIA,KAAKoI,uBACPpI,KAAKgK,WAAWzJ,MAAMP,KAAKoI,sBAAsB,EACjDpI,KAAKsI,kBAAoB,CAAA,MAF3B,CASA,GAHAtI,KAAKsJ,gBAAkB,CAAA,EACvBtJ,KAAKiK,cAAgBC,SAASC,cAAc,OAAO,EAE9B,EAAjBnK,KAAKoK,UACP,GAAIpK,KAAKiK,cAAcI,MAAMlB,OAASnJ,KAAKqK,MAAMlB,OAASnJ,KAAKoK,UAG7D,OAFIE,EAAuBtK,KAAKiK,cAAcI,MAAY,OAAcrK,KAAKqK,MAAMlB,OACnFnJ,KAAAA,KAAKgK,WAAWO,QAAQvK,KAAKwK,WAAWrE,UAAU,eAAe,EAAImE,EAActK,KAAKwK,WAAWrE,UAAU,YAAY,EAAInG,KAAKoK,UAAYpK,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EAM3L,I,IA0LMsE,E,OA1LGhD,EAAI,EAAGA,EAAIzH,KAAKiK,cAAcI,MAAMlB,OAAQ1B,CAAC,GAAE,C,eAA/CA,G,IACHiD,EAAeC,EAAKV,cAAcI,MAAM5C,GAGxCmD,GAFJF,EAAaG,gBAAkB,CAAA,EAEpBC,EAAAA,KAAKA,KAAI,GAEpB,GAAyB,GAArBJ,EAAarF,K,OACfsF,EAAKI,aAAazH,KAAKoH,EAAatE,IAAI,E,WAI1C,GAA0B,EAAtBuE,EAAKK,gBAAsBN,EAAatE,KAAK+C,OAASwB,EAAKK,e,OAC7DL,EAAKM,qBAAqB3H,KAAKoH,EAAatE,IAAI,E,WAIlD,GAAwB,MAApBuE,EAAKnC,aAA0C,EAAnBmC,EAAKnC,aAC/BkC,EAAarF,KAA0B,IAAnBsF,EAAKnC,Y,OAC3BmC,EAAKO,eAAe5H,KAAKoH,EAAatE,IAAI,E,eAM1C+E,EADoBR,EAAKnB,qBAAqBkB,EAAatE,IAAI,EACvBgF,OAAM,SAAEC,GAClD,OAAOA,GAAKA,EAAEC,KAAI,CACnB,CAAA,EACGC,EAAe,GACnB,GAAmC,EAA/BJ,EAAsBhC,OAAY,CAOpC,GANAgC,EAAsBpI,QAAO,SAAEC,EAASwI,GAItCD,GADAA,GAFAA,GAAgB,KACAvI,EACA,MACCwI,IAAUL,EAAsBhC,OAAS,EAAK,GAAK,IACrE,CAAA,EACuC,IAApCwB,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKX,WAAWO,QAAQI,EAAKH,WAAWrE,UAAU,mBAAmB,EAAIoF,EAAeZ,EAAKH,WAAWrE,UAAU,cAAc,CAAC,E,eAGnI,GAAsC,EAAlCwE,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKc,0BAA0BnI,KAAKoH,EAAatE,IAAI,E,WAMzD,GAAI,CAACuE,EAAKhB,YAAYe,CAAY,EAAG,CACnC,GAAwC,IAApCC,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKX,WAAWO,QAAQG,EAAatE,KAAOuE,EAAKH,WAAWrE,UAAU,sBAAsB,EAAIwE,EAAKH,WAAWrE,UAAU,cAAc,CAAC,E,eAG3I,GAAsC,EAAlCwE,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKe,yBAAyBpI,KAAKoH,EAAatE,IAAI,E,eAqC9CuF,EA/BNC,EAAgBlB,EAAatE,KAAKyF,OAAOnB,EAAatE,KAAK0F,YAAY,GAAG,EAAI,CAAC,EAAEhD,YAAW,EAC1FiD,EAAWpB,EAAKqB,aAAarB,EAAKjF,gBAAgBgE,MAAM,GAAG,CAAC,EAC5DuC,EAActB,EAAKjF,gBAAgBgE,MAAM,GAAG,EAClD,GAAI,CAACiB,EAAK/B,aAAeqD,EAAYpC,SAAS+B,CAAa,EAAG,CAC5D,GAAwC,IAApCjB,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKX,WAAWO,QAAQG,EAAatE,KAAOuE,EAAKH,WAAWrE,UAAU,iBAAiB,EAAIwE,EAAKH,WAAWrE,UAAU,eAAe,EAAI4F,EAAWpB,EAAKH,WAAWrE,UAAU,cAAc,CAAC,E,eAG9L,GAAsC,EAAlCwE,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKuB,wBAAwB5I,KAAKoH,EAAatE,IAAI,E,WAIvD,GAAIuE,EAAK/B,aAAe,CAACqD,EAAYpC,SAAS+B,CAAa,EAAG,CAC5D,GAAwC,IAApCjB,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKX,WAAWO,QAAQG,EAAatE,KAAOuE,EAAKH,WAAWrE,UAAU,iBAAiB,EAAIwE,EAAKH,WAAWrE,UAAU,eAAe,EAAI4F,EAAWpB,EAAKH,WAAWrE,UAAU,cAAc,CAAC,E,eAG9L,GAAsC,EAAlCwE,EAAKV,cAAcI,MAAMlB,O,OAC3BuB,EAAaG,gBAAkB,CAAA,EAC/BF,EAAKuB,wBAAwB5I,KAAKoH,EAAatE,IAAI,E,WAKvD,GAAI,CAACuE,EAAKpC,iBACoE,MAAxEoC,EAAK3B,qBAAqBmD,KAAI,SAACC,GAAK,OAAAA,EAAElH,UAAYwF,EAAatE,IAAI,CAAA,E,OAE/DuF,EAAMhB,EAAKX,WAAWqC,KAAK,UAAW1B,EAAKH,WAAWrE,UAAU,cAAc,EAAIuE,EAAatE,KAAM,CACzGkG,aAAc,CACZC,QAAS,CACP,CACEC,KAAM7B,EAAKH,WAAWrE,UAAU,QAAQ,EACxCsG,IAAK,oBACLC,OAAM,WAKJ,I,IAHIC,EADAC,EAAkBlC,EAAatE,KAE/ByG,EAAO,CAAA,EACPpF,EAAI,EACDoF,GACLF,EAAUC,EAAQE,UAAU,EAAGF,EAAQd,YAAY,GAAG,CAAC,EAAI,IAAMrE,EAAI,IAAMmF,EAAQE,UAAUF,EAAQd,YAAY,GAAG,CAAC,EACnD,MAA9D9E,EAAKgC,qBAAqBmD,KAAI,SAACC,GAAK,OAAAA,EAAElH,UAAYyH,CAAO,CAAA,EAC3DlF,CAAC,GAGDoF,EAAO,CAAA,EAGX7F,EAAKxF,WAAWoJ,EAAMF,EAAciC,CAAO,EAC3ChB,EAAIrG,MAAK,CACV,C,EAEH,CACEkH,KAAM7B,EAAKH,WAAWrE,UAAU,SAAS,EACzCsG,IAAK,oBACLC,OAAM,WACJ9B,EAAO5D,EAAKgC,qBAAqBmD,KAAI,SAACC,GAAK,OAAAA,EAAElH,UAAYwF,EAAatE,IAAI,CAAA,EAAE/E,WAC5E2F,EAAKxF,WAAWoJ,EAAMF,EAAcA,EAAatE,KAAM2G,EAAUjJ,MAAM,EACvEkD,EAAKgG,iBAAiB,GAClBhG,EAAKiC,oBAAoBkD,KAAI,SAACC,GAAK,OAAAA,EAAElH,UAAYwF,EAAatE,IAAI,CAAA,IACpEY,EAAKgG,iBAAiB,GACtBhG,EAAKgC,qBAAqBiE,OAAOjG,EAAKgC,qBAAqB7B,QAAQH,EAAKgC,qBAAqBoC,OAAM,SAACgB,GAAK,OAAAA,EAAElH,UAAYwF,EAAatE,IAAI,CAAA,EAAE,EAAE,EAAG,CAAC,GAElJuF,EAAIrG,MAAK,CACV,C,EAEH,CACEkH,KAAM7B,EAAKH,WAAWrE,UAAU,QAAQ,EACxCsG,IAAK,oBACLC,OAAM,WACJf,EAAIrG,MAAK,CACV,C,IAIR,E,WAIgC,CAAA,IAAjCoF,EAAaG,iBACfF,EAAKnJ,WAAWoJ,EAAMF,EAAcA,EAAatE,IAAI,C,EAjJhDqB,CAAC,E,qCAqJoB,EAA1BzH,KAAKkN,YAAY/D,SACfgE,EAAenN,KAAKgM,aAAahM,KAAKkN,WAAW,EACrDlN,KAAKgK,WAAWO,QAAQvK,KAAKwK,WAAWrE,UAAU,cAAc,EAAIgH,EAAOnN,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EACpHnG,KAAKkN,YAAc,IAGU,EAA3BlN,KAAK+K,aAAa5B,SAChBiE,EAAepN,KAAKgM,aAAahM,KAAK+K,YAAY,EACtD/K,KAAKgK,WAAWO,QAAQ6C,EAAOpN,KAAKwK,WAAWrE,UAAU,UAAU,EAAInG,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EAChHnG,KAAK+K,aAAe,IAGiB,EAAnC/K,KAAKiL,qBAAqB9B,SACxBkE,EAAerN,KAAKgM,aAAahM,KAAKiL,oBAAoB,EAC9DjL,KAAKgK,WAAWO,QAAQ8C,EAAOrN,KAAKwK,WAAWrE,UAAU,kBAAkB,EAAInG,KAAKgL,eAAiBhL,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EAC9InG,KAAKiL,qBAAuB,IAGG,EAA7BjL,KAAKkL,eAAe/B,SAClBmE,EAAetN,KAAKgM,aAAahM,KAAKkL,cAAc,EACxDlL,KAAKgK,WAAWO,QAAQ+C,EAAOtN,KAAKwK,WAAWrE,UAAU,SAAS,EAAInG,KAAKwI,YAAc,KAAOxI,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EACzInG,KAAKkL,eAAiB,IAGoB,EAAxClL,KAAKyL,0BAA0BtC,SAC7BoE,EAAevN,KAAKgM,aAAahM,KAAKyL,yBAAyB,EACnEzL,KAAKgK,WAAWO,QAAQgD,EAAOvN,KAAKwK,WAAWrE,UAAU,mBAAmB,EAAInG,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EACzHnG,KAAKyL,0BAA4B,IAGO,EAAtCzL,KAAKkM,wBAAwB/C,SAC3BqE,EAAexN,KAAKgM,aAAahM,KAAKkM,uBAAuB,EACjElM,KAAKgK,WAAWO,QAAQiD,EAAOxN,KAAKwK,WAAWrE,UAAU,iBAAiB,EAAInG,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EACvHnG,KAAKkM,wBAA0B,IAGU,EAAvClM,KAAK0L,yBAAyBvC,SAC5BsB,EAAezK,KAAKgM,aAAahM,KAAK0L,wBAAwB,EAClE1L,KAAKgK,WAAWO,QAAQE,EAAOzK,KAAKwK,WAAWrE,UAAU,sBAAsB,EAAInG,KAAKwK,WAAWrE,UAAU,cAAc,CAAC,EAC5HnG,KAAK0L,yBAA2B,IAGlC1L,KAAKqK,MAAQrK,KAAKqK,MAAMoD,MAAK,EAC7BzN,KAAK0N,gBAAkB,CAAA,EACvB3D,EAAO4D,OAAOC,MAAQ,E,GAIxB7G,EAAAvJ,UAAAqQ,iBAAA,SAAiBjE,GACf5J,KAAKgK,WAAWzJ,MAAMP,KAAKwK,WAAWrE,UAAU,eAAe,EAAIyD,EAAK2B,YAAY,C,EAGtFxE,EAAAvJ,UAAAsQ,eAAA,SAAelD,EAAcF,EAAcxF,GAIzC6I,EAAW,CACT9K,GAAI2H,EACJxE,KAAMlB,EACN8I,KAAMtD,EAAasD,KACnBC,OAAQ,GACR5I,KAAMrF,KAAKkO,YAAYxD,EAAarF,IAAI,EACxC8I,SAAUzD,EAAarF,KACvB+I,mBAAoBpO,KAAKqO,sBAAsBnJ,CAAQ,EACvDoJ,qBAAsBtO,KAAKuO,oBAAoBrJ,CAAQ,EAEvDsJ,YAAa,CAAA,EACbC,QAAS,CAAA,EACTC,QAAS,CAAA,EACTC,YAAa,CAAA,EACbC,aAAc,CAAA,EACdC,cAAe,EACftD,aAAc,GACduD,oBAAqB,EACrBC,cAAe,GACfC,mBAAoB,EACpB3L,aAAcrD,KAAK0H,iBAAiB,GACpCuH,MAAO,E,EAGoB,MAAzBjP,KAAK6H,mBACPkG,EAASgB,cAAgB/O,KAAK8H,qBAG5BkG,EAAetD,EAAasD,KA+BhC,OA9BIA,EAAKnE,SAAS,MAAM,EACtB7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQ/P,KAAK,EAE9C4O,EAAKnE,SAAS,OAAO,EAC5B7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQhQ,KAAK,EAE9C6O,EAAKnE,SAAS,MAAM,EAC3B7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQrQ,IAAI,EAE7CkP,EAAKnE,SAAS,KAAK,EAC1B7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQlQ,GAAG,EAE5C+O,EAAKnE,SAAS,OAAO,EAC5B7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQjQ,GAAG,EAE5C8O,EAAKnE,SAAS,OAAO,GAAKmE,EAAKnE,SAAS,OAAO,EACtD7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQpQ,KAAK,EAE9CiP,EAAKnE,SAAS,YAAY,GAAKmE,EAAKnE,SAAS,cAAc,EAClE7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQnQ,UAAU,EAEnDgP,EAAKnE,SAAS,KAAK,GAAKa,EAAatE,KAAKyD,SAAS,MAAM,EAChE7J,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQ9P,GAAG,EAGnDW,KAAKkP,WAAWxE,EAAcqD,EAAUoB,EAAQ/P,KAAK,EAKhD2O,C,EAGThH,EAAAvJ,UAAAgE,WAAA,SAAWoJ,EAAcF,EAAcxF,EAAkBC,GAAzD,IAkHQiK,EAeAC,EAkBAC,EAnJRtI,EAAAhH,KAEM+N,GAFmD,KAAA,IAAA5I,IAAAA,EAAmB4H,EAAUlJ,KAErE7D,KAAK8N,eAAelD,EAAMF,EAAcxF,CAAQ,GAE3DqK,EAAiB,IAAI5L,EAEzB4L,EAAelO,WAAauJ,EAC5B2E,EAAerK,SAAW6I,EAAS3H,KACnCmJ,EAAepB,SAAWJ,EAAS1I,KACnCkK,EAAeC,aAAezB,EAASI,SACvCoB,EAAepK,MAAQA,EACvBoK,EAAelM,aAAerD,KAAK0H,iBAAiB,GAIhD1H,KAAK+I,qBAGH0G,EAAsC,IAAI9I,GAElCjE,KAAO1C,KAAKwD,OACxBiM,EAAYpO,WAAauJ,EACzB6E,EAAY1P,OAASC,KAAKD,OAC1B0P,EAAYpK,KAAO0I,EAASI,SAC5BsB,EAAYvK,SAAWA,EAGvBlF,KAAK0P,gBAAgBD,CAAW,EAAElI,UAAS,SAAClH,GAC1C,GAAiB,MAAbA,EAAIE,MACNyG,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGxC,aAAelL,EAAIE,MAAM8H,YAC7D,C,IACDsH,EAAWtP,EAAIuP,SACfC,EAAqBC,KAAKC,KAAKrF,EAAarF,KAAO2B,EAAKgJ,UAAU,EAClEC,EAAqB,EAErBC,EAAuC,GAK3C,IAHAlJ,EAAKmJ,eAAevF,GAAQiF,EAC5B7I,EAAKoJ,cAAcxF,GAAQ,EAEpBqF,EAAaJ,GAAY,C,IAE1BQ,EAAWP,KAAKQ,KAAKL,EAAa,GAAKjJ,EAAKgJ,WAAYtF,EAAarF,IAAI,EACzEkL,EAAW7F,EAAa+C,MAAMwC,EAAajJ,EAAKgJ,WAAYK,CAAQ,EAEpEG,EAAe,IAAI1J,EAQnB2J,GAPJD,EAAanP,WAAauJ,EAC1B4F,EAAazQ,OAASiH,EAAKjH,OAC3ByQ,EAAaZ,SAAWD,EACxBa,EAAahF,MAAQyE,EACrBO,EAAaE,MAAQb,EACrBW,EAAanL,KAAOkL,EAASlL,KAEd,IAAIsL,UACnBF,EAASG,OAAO,eAAgBzN,KAAKC,UAAUoN,CAAY,CAAC,EAC5DC,EAASG,OAAO,OAAQL,CAAQ,EAEhCvJ,EAAK6J,YAAYJ,CAAQ,EAAElJ,UAAS,SAAClH,GAClB,MAAbA,EAAIE,OACNyG,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGxC,aAAelL,EAAIE,MAAM8H,UAElE6H,EAAgB5M,KAAKjD,EAAIyQ,MAAM,EAC/B9J,EAAKoJ,cAAcxF,EAAK,GACxB5D,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGc,cAAgBkC,OAAOtI,UAAUzB,EAAKoJ,cAAcxF,GAAQ5D,EAAKmJ,eAAevF,GAAQ,KAAKoG,QAAQ,CAAC,CAAC,EAC5IhK,EAAKoJ,cAAcxF,IAAS5D,EAAKmJ,eAAevF,KAC9CsF,EAAgB/G,QAAUnC,EAAKmJ,eAAevF,KAE5CqG,EAAyD,IAAIrK,GACtCvF,WAAauJ,EACxCqG,EAA2BC,SAAWhB,EACtCe,EAA2BlR,OAASiH,EAAKjH,OACzCkR,EAA2BrB,SAAWD,EACtCsB,EAA2B5L,KAAO0I,EAASI,SACvCnH,EAAKmB,wBACP8I,EAA2BE,eAAiBnK,EAAKc,qBACnDd,EAAKoK,oBAAoBH,CAA0B,EAAE1J,UAAS,SAAClH,GAC3C,KAAdA,EAAIgR,QACNrK,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGxC,aAAelL,EAAIE,MAAM8H,UAElErB,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKnE,mBAAqBmE,EAAKnE,mBAAmByO,OAAO/B,CAAc,EACvEvI,EAAKgC,qBAAuBhC,EAAKgC,qBAAqBsI,OAAO/B,CAAc,EAC3EvI,EAAKgG,iBAAiB,GAIzB,CAAA,IAGDhG,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGxC,aAAevE,EAAKwD,WAAWrE,UAAU,mBAAmB,IAK5G,CAAA,EAED8J,GAA0B,C,EAM/B,CAAA,KAGGb,EAAS,IAAIvI,GACVrD,OAASxD,KAAKwD,OACrB4L,EAAO/N,WAAauJ,EACpBwE,EAAOnO,KAAOC,EAAe3B,KAC7B6P,EAAOrP,OAASC,KAAKD,OACrBqP,EAAO/J,KAAOqF,EAAarF,KAC3B+J,EAAOlK,SAAWA,EACdlF,KAAKmI,wBACPiH,EAAO+B,eAAiBnR,KAAK8H,sBAE3B2I,EAAW,IAAIE,UACVC,OAAO,eAAgBzN,KAAKC,UAAUgM,CAAM,CAAC,EACtDqB,EAASG,OAAO,OAAQlG,CAAY,EAKpC1K,KAAKuR,iBAAiBd,CAAQ,EAAElJ,UAAS,SAAClH,GAC7B,MAAPA,GACF2G,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGxC,aAAelL,EAAIE,MAAM8H,UAElErB,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGa,aAAe,CAAA,EACxD5H,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGY,YAAc,CAAA,EACvD3H,EAAKnE,mBAAqBmE,EAAKnE,mBAAmByO,OAAO/B,CAAc,EACvEvI,EAAKgC,qBAAuBhC,EAAKgC,qBAAqBsI,OAAO/B,CAAc,EAC3EvI,EAAKgG,iBAAiB,IAGxBwE,cAAcnC,CAAU,CACzB,CAAA,EAEGC,EAAQ,CAAC,EACbtP,KAAKqK,MAAMtH,QAAO,SAACqJ,GACbA,EAAEhG,MAAQ2H,EAAS3H,MACR,CAAC,GAAVkJ,IACFA,EAAQtI,EAAKqD,MAAMlD,QAAQiF,CAAC,EAEjC,CAAA,EACY,CAAC,GAAVkD,GAAeA,GAAStP,KAAKqK,MAAMlB,OAAS,IAC9CnJ,KAAKqK,MAAM4C,OAAOqC,EAAO,CAAC,EAC1BtP,KAAK6C,mBAAmBoK,OAAOqC,EAAO,CAAC,EACvCtP,KAAKgJ,qBAAqBiE,OAAOqC,EAAO,CAAC,EACzCtP,KAAKgN,iBAAiB,IAGxBqC,EAAaoC,YAAW,WACtBzK,EAAK0K,iBAAiBtC,EAAO/N,UAAU,EAAEkG,UAAS,SAAClH,GAChC,MAAbA,EAAIE,MACNyG,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGc,cAAgB,IAI/C,IADRxO,EADEA,EAAM,GACF,GACJA,KACFA,EAAM,IACR2G,EAAKqD,MAAMrD,EAAKqD,MAAMlD,QAAQ4G,CAAQ,GAAGc,cAAgBxO,EAE5D,CAAA,CACF,EAAE,GAAG,E,EAKV0G,EAAAvJ,UAAAkU,iBAAA,SAAiBrQ,GAIf,OAAOrB,KAAK+B,WAAWR,IAFb,2DAA6DF,CAEzC,EAAElB,KAC9BC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNwG,EAAAvJ,UAAA+T,iBAAA,SAAiB5P,G,IAGTC,EAAUC,EAAAA,gBAAgBC,YADtB,sCACqC,EAC/C,OAAO9B,KAAK+B,WAAW7B,KAAK0B,EAASD,CAAQ,EAAExB,KAC7CC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNwG,EAAAvJ,UAAAkE,gBAAA,SAAgBC,G,IAGRC,EAAUC,EAAAA,gBAAgBC,YADtB,qCACqC,EAC/C,OAAO9B,KAAK+B,WAAW7B,KAAK0B,EAASD,CAAQ,EAAExB,KAC7CC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNwG,EAAAvJ,UAAAkS,gBAAA,SAAgBnN,G,IAGRX,EAAUC,EAAAA,gBAAgBC,YADtB,0CACqC,EAC/C,OAAO9B,KAAK+B,WAAW7B,KAAK0B,EAASW,CAAO,EAAEpC,KAC5CC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNwG,EAAAvJ,UAAAqT,YAAA,SAAYlP,G,IAGJC,EAAUC,EAAAA,gBAAgBC,YADtB,4CACqC,EAC/C,OAAO9B,KAAK+B,WAAW7B,KAAK0B,EAASD,CAAQ,EAAExB,KAC7CC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAGNwG,EAAAvJ,UAAA4T,oBAAA,SAAoB7O,G,IAGZX,EAAUC,EAAAA,gBAAgBC,YADtB,8CACqC,EAC/C,OAAO9B,KAAK+B,WAAW7B,KAAK0B,EAASW,CAAO,EAAEpC,KAC5CC,EAAAA,IAAG,SAACC,IAAU,EACdC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,CAAK,CAChB,CAAA,CAAC,C,EAKNwG,EAAAvJ,UAAAmU,cAAA,WAEO3R,KAAK0N,iBASR1N,KAAKqK,MAAMtH,QAAO,SAACC,GAEjBA,EAAQ0L,QAAU,CAAA,CACnB,CAAA,EACD1O,KAAK0N,gBAAkB,CAAA,EACvB1N,KAAK4R,kBAAoB,IAbzB5R,KAAKqK,MAAMtH,QAAO,SAACC,GAEjBA,EAAQ0L,QAAU,CAAA,CACnB,CAAA,EACD1O,KAAK0N,gBAAkB,CAAA,EACvB1N,KAAK4R,kBAAoB5R,KAAKqK,MAAMlB,O,EAaxCpC,EAAAvJ,UAAAqU,mBAAA,SAAmBjI,GAEjBA,EAAK8E,QAAU,CAAC9E,EAAK8E,QACjB9E,EAAK8E,QACP1O,KAAK4R,iBAAiB,GAEtB5R,KAAK4R,iBAAiB,GACpB5R,KAAK4R,mBAAqB5R,KAAKqK,MAAMlB,OACvCnJ,KAAK0N,gBAAkB,CAAA,EAIvB1N,KAAK0N,gBAAkB,CAAA,C,EAM3B3G,EAAAvJ,UAAAsU,eAAA,SAAe/D,GAKb,IACMhN,EALFgN,EAASW,SACX1O,KAAK4R,iBAAiB,GAExB5R,KAAKqK,MAAM4C,OAAOjN,KAAKqK,MAAMlD,QAAQ4G,CAAQ,EAAG,CAAC,EAC7CA,EAASa,gBACP7N,EAAmB,IAChBuC,KAAKyK,EAAS9K,EAAE,EACvBjD,KAAKsH,cAAc1G,OAAOG,EAAQf,KAAKD,MAAM,EAAEwH,UAAS,EAExDvH,KAAK6C,mBAAmBoK,OAAOjN,KAAK6C,mBAAmBsE,QAAQnH,KAAK6C,mBAAmBuI,OAAM,SAACgB,GAAK,OAAAA,EAAElH,UAAY6I,EAAS3H,IAAI,CAAA,EAAE,EAAE,EAAG,CAAC,EACtIpG,KAAKgJ,qBAAqBiE,OAAOjN,KAAKgJ,qBAAqB7B,QAAQnH,KAAKgJ,qBAAqBoC,OAAM,SAACgB,GAAK,OAAAA,EAAElH,UAAY6I,EAAS3H,IAAI,CAAA,EAAE,EAAE,EAAG,CAAC,EAC5IpG,KAAKgN,iBAAiB,IAEM,GAA1BhN,KAAK4R,oBACP5R,KAAK0N,gBAAkB,CAAA,E,EAG3B3G,EAAAvJ,UAAAuU,uBAAA,WAAA,IAAA/K,EAAAhH,KACM0K,EAA2B,GAM3BsH,GALJhS,KAAKqK,MAAMtH,QAAO,SAACC,GACFkH,SAAS+H,eAAejP,EAAQoD,IAAI,EAC3C8L,SACNxH,EAAapH,KAAKN,CAAO,CAC5B,CAAA,EAC4B,IAazBmP,GAZJzH,EAAa3H,QAAO,SAACC,GACnBgP,EAAa1O,KAAKN,EAAQC,EAAE,EAC5B+D,EAAKqD,MAAM4C,OAAOjG,EAAKqD,MAAMlD,QAAQnE,CAAO,EAAG,CAAC,EAC5CA,EAAQ4L,eAEV5H,EAAKnE,mBAAmBoK,OAAOjG,EAAKnE,mBAAmBsE,QAAQH,EAAKnE,mBAAmBuI,OAAM,SAACgB,GAAK,OAAAA,EAAElH,UAAYlC,EAAQoD,IAAI,CAAA,EAAE,EAAE,EAAG,CAAC,EACrIY,EAAKgC,qBAAqBiE,OAAOjG,EAAKgC,qBAAqB7B,QAAQH,EAAKgC,qBAAqBoC,OAAM,SAACgB,GAAK,OAAAA,EAAElH,UAAYlC,EAAQoD,IAAI,CAAA,EAAE,EAAE,EAAG,CAAC,EAC3IY,EAAKgG,iBAAiB,GAEzB,CAAA,EACDhN,KAAKsH,cAAc1G,OAAOoR,EAAchS,KAAKD,MAAM,EAAEwH,UAAS,EAE5C2C,SAAS+H,eAAe,aAAa,GACzC,MAAVE,IACFA,EAAOD,QAAU,CAAA,GACnBlS,KAAK4R,kBAAoB,EACzB5R,KAAK0N,gBAAkB,CAAA,C,EAIzB3G,EAAAvJ,UAAA6Q,sBAAA,SAAsBnJ,GACpB,OAAIA,EAASiE,QAAU,GACdjE,EAEWA,EAAS4H,UAAU,EAAG,CAAC,EAEpB,IADH5H,EAAS4H,UAAU5H,EAAS4G,YAAY,GAAG,EAAI,CAAC,C,EAKtE/E,EAAAvJ,UAAA+Q,oBAAA,SAAoBrJ,GAClB,OAAOA,C,EAGT6B,EAAAvJ,UAAA0R,WAAA,SAAWkD,EAAarE,EAAoBsE,GAA5C,IAAArL,EAAAhH,KAEE,OAAQqS,GACN,KAAKlD,EAAQrQ,KACXiP,EAASE,OAASjO,KAAKsS,cAAc,uCAAuC,EAC5EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQlQ,IACX8O,EAASE,OAASjO,KAAKsS,cAAc,sCAAsC,EAC3EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQpQ,MACXgP,EAASE,OAASjO,KAAKsS,cAAc,wCAAwC,EAC7EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQjQ,IACX6O,EAASE,OAASjO,KAAKsS,cAAc,sCAAsC,EAC3EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQ9P,IACX0O,EAASE,OAASjO,KAAKsS,cAAc,sCAAsC,EAC3EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQnQ,WACX+O,EAASE,OAASjO,KAAKsS,cAAc,sCAAsC,EAC3EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQ/P,MACX2O,EAASE,OAASjO,KAAKsS,cAAc,uCAAuC,EAC5EtS,KAAKqK,MAAM/G,KAAKyK,CAAQ,EACxB,MAGF,KAAKoB,EAAQhQ,M,IACPoT,EAAS,IAAIC,WACjBD,EAAOE,cAAcL,CAAW,EAChCG,EAAOG,OAAM,SAAIC,G,IACXC,EAASL,EAAOzB,OAUhBtF,GATiB,MAAjBxE,EAAK6L,WAEPD,EADgB5L,EAAK6L,SAAStR,IAAIuR,EAAAA,YAAY,EAC3BC,+BAA+BH,CAAM,GAE1D7E,EAASE,OAAS2E,EAClB7E,EAASkB,MAAQ,CAAE+D,YAAa,QAASC,aAAc,OAAO,EAC9DjM,EAAKqD,MAAM/G,KAAKyK,CAAQ,EAGZ,CAAC,GACb/G,EAAKqD,MAAMtH,QAAO,SAACqJ,GACbA,EAAEhG,MAAQ2H,EAAS3H,MACR,CAAC,GAAVoF,IACFA,EAAQxE,EAAKqD,MAAMlD,QAAQiF,CAAC,EAEjC,CAAA,EACY,CAAC,GAAVZ,GAAeA,GAASxE,EAAKqD,MAAMlB,OAAS,IAC9CnC,EAAKqD,MAAM4C,OAAOzB,EAAO,CAAC,EAC1BxE,EAAKnE,mBAAmBoK,OAAOzB,EAAO,CAAC,EACvCxE,EAAKgC,qBAAqBiE,OAAOzB,EAAO,CAAC,EAE5C,C,GAOPzE,EAAAvJ,UAAAwO,aAAA,SAAakH,GAGX,I,IAFMpC,EAASoC,EAAQ9H,OAAM,SAAC+H,GAAQ,MAAgB,KAAhBA,EAAK7H,KAAI,CAAS,CAAA,EACpDlF,EAAe,GACVqB,EAAI,EAAGA,EAAIqJ,EAAO3H,OAAQ1B,CAAC,GAClCrB,GAAQ0K,EAAOrJ,IAAMA,IAAMqJ,EAAO3H,OAAS,EAAI,GAAK,KAEtD,OAAO/C,C,EAGTW,EAAAvJ,UAAA4V,eAAA,SAAerJ,EAAaH,GAC1BA,EAAKvG,aAAe0G,EAAOsJ,KACVrT,KAAK6C,mBAAmBuI,OAAM,SAACgB,GAAK,OAAAA,EAAE/K,WAAauI,EAAK3G,EAAE,CAAA,EAAE,GAClEI,aAAe0G,EAAOsJ,I,EAMnCtM,EAAAvJ,UAAA8V,WAAA,SAAWvJ,EAAaH,GACtBA,EAAKmF,cAAgBhF,EAAOsJ,KAAKjN,KAC7BmN,EAAuC,IAAI3P,EAC3CgG,EAAKmF,eAAiB/O,KAAK6H,iBAAiBC,oBAC2B,EAArE9H,KAAKwT,kBAAkBpI,OAAM,SAACgB,GAAK,OAAAA,EAAE/K,YAAcuI,EAAK3G,EAAE,CAAA,EAAEkG,QAC9DnJ,KAAKwT,kBAAkBvG,OAAOjN,KAAKwT,kBAAkBC,UAAS,SAACrH,GAAK,OAAAA,EAAE/K,YAAcuI,EAAK3G,EAAE,CAAA,EAAG,CAAC,EAExB,EAArEjD,KAAKwT,kBAAkBpI,OAAM,SAACgB,GAAK,OAAAA,EAAE/K,YAAcuI,EAAK3G,EAAE,CAAA,EAAEkG,QAC9DoK,EAAoBvT,KAAKwT,kBAAkBpI,OAAM,SAACgB,GAAK,OAAAA,EAAE/K,YAAcuI,EAAK3G,EAAE,CAAA,EAAE,IAC9DkO,eAAiBvH,EAAKmF,eAExCwE,EAAkBlS,WAAauI,EAAK3G,GACpCsQ,EAAkBpC,eAAiBvH,EAAKmF,cACxC/O,KAAKwT,kBAAkBlQ,KAAKiQ,CAAiB,E,EAKnDxM,EAAAvJ,UAAAkW,OAAA,WAAA,IAeYC,EAfZ3M,EAAAhH,KACE,OAAIA,KAAKgN,mBAAqBhN,KAAKqK,MAAMe,OAAM,SAACgB,GAAK,OAAAA,EAAEuC,aAAevC,EAAEwC,YAAY,CAAA,EAAEzF,QAEpFnJ,KAAKgK,WAAWO,QAAQvK,KAAKwK,WAAWrE,UAAU,MAAM,CAAC,EAClD3F,EAAAA,GAAG,CAAA,CAAK,IAEbR,KAAKwH,kBACPxH,KAAKsH,cAAc1E,iBAAiB5C,KAAK6C,mBAAoB7C,KAAKD,MAAM,EAAEwH,UAAS,EAExD,MAAzBvH,KAAK6H,kBAG8B,GAAjC7H,KAAKwT,kBAAkBrK,OAClB3I,EAAAA,GAAGR,KAAK6C,kBAAkB,GAE3B8Q,EAAU3T,KAAK4T,YAAYvH,KAAK,CACpCwH,QAAS7T,KAAKwK,WAAWrE,UAAU,QAAQ,EAAInG,KAAK6H,iBAAiBkH,a,CACtE,EACM/O,KAAKsH,cAAcjF,sBAAsBrC,KAAKwT,kBAAmBxT,KAAKD,MAAM,EAAEI,KACnF2T,EAAAA,IAAG,SAACzT,GAIF,OADAsT,EAAQrO,MAAK,EACN0B,EAAKnE,kBACb,CAAA,CAAC,G,EAKVkE,EAAAvJ,UAAAoD,OAAA,WAAA,IAAAoG,EAAAhH,KACwC,GAAlCA,KAAK6C,mBAAmBsG,SAE5BnJ,KAAK6C,mBAAmBE,QAAO,SAACC,GAC9BgE,EAAKtG,eAAe4C,KAAKN,EAAQ3B,UAAU,CAC5C,CAAA,EACDrB,KAAKsH,cAAc1G,OAAOZ,KAAKU,eAAgBV,KAAKD,MAAM,EAAEwH,UAAS,E,EAIvER,EAAAvJ,UAAAuW,sBAAA,WACE,OAAO/T,KAAK6C,kB,EAGdkE,EAAAvJ,UAAA2D,UAAA,SAAOyI,GACL5J,KAAKqK,MAAM4C,OAAOjN,KAAKqK,MAAMlD,QAAQyC,CAAI,EAAG,CAAC,EACzCA,EAAKgF,cACP5O,KAAKgN,iBAAiB,GACiD,EAArEhN,KAAKwT,kBAAkBpI,OAAM,SAACgB,GAAK,OAAAA,EAAE/K,YAAcuI,EAAK3G,EAAE,CAAA,EAAEkG,QAC9DnJ,KAAKwT,kBAAkBvG,OAAOjN,KAAKwT,kBAAkBC,UAAS,SAACrH,GAAK,OAAAA,EAAE/K,YAAcuI,EAAK3G,EAAE,CAAA,EAAG,CAAC,C,EAKnG8D,EAAAvJ,UAAA0Q,YAAA,SAAY7I,GACV,OAAIA,EAAO,QACDA,EAAO,MAAM2L,QAAQ,CAAC,EAAI,IAC3B3L,EAAO,SACNA,EAAO,MAAM2L,QAAQ,CAAC,EAAI,IAC3B3L,EAAO,WACNA,EAAO,KAAO,MAAM2L,QAAQ,CAAC,EAAI,IAClC3L,EAAO,YACNA,EAAO,KAAO,MAAM2L,QAAQ,CAAC,EAAI,KAEjC3L,EAAO,KAAO,KAAO,MAAM2L,QAAQ,CAAC,EAAI,G,EAEpDjK,EAAAvJ,UAAAwW,YAAA,WACEhU,KAAKiU,SAAW,C,EAIlBlN,EAAAvJ,UAAA0W,WAAA,WACElU,KAAKiU,SAAW,EAEc,GAA1BjU,KAAK4R,mBAA0B5R,KAAK4R,mBAAqB5R,KAAKqK,MAAMlB,SACtEnJ,KAAK0N,gBAAkB,CAAA,E,EAI3B3G,EAAAvJ,UAAA2W,UAAA,SAAUvK,GACRA,EAAK6E,QAAU,CAAA,C,EAEjB1H,EAAAvJ,UAAA4W,SAAA,SAASxK,GACPA,EAAK6E,QAAU,CAAA,C,EAGjB1H,EAAAvJ,UAAA8U,cAAA,SAAc+B,GAEZ,OADgBxS,EAAAA,gBAAgBC,YAAYuS,CAAM,C,sBAjgCrD3W,EAAAA,UAASN,KAAA,CAAC,CACTO,SAAU,kBACVC,SAAA,w2f,woFAED,G,yCA1BQ0W,EAAAA,eAAe,E,MAFf1U,CAAa,E,MAUb2U,EAAAA,cAAc,E,MAfoCC,EAAAA,QAAQ,E,kCAmHhEC,EAAAA,KAAK,G,cACLA,EAAAA,KAAK,G,gBACLA,EAAAA,KAAK,G,iBACLA,EAAAA,KAAK,G,iBACLA,EAAAA,KAAK,G,oBACLA,EAAAA,KAAK,G,sBACLA,EAAAA,KAAK,G,cAELC,EAAAA,UAAStX,KAAA,CAAC,SAAQ,E,EAs6BrB2J,GAr7BE,SAAAA,EAAoBiD,EAAqC1C,EAAsCsM,EAAqCf,GAAhH7S,KAAAgK,WAAAA,EAAqChK,KAAAsH,cAAAA,EAAsCtH,KAAA4T,YAAAA,EAAqC5T,KAAA6S,SAAAA,EAxEpI7S,KAAAqK,MAAoB,GACpBrK,KAAAU,eAA2B,GAC3BV,KAAA6C,mBAAuC,GACvC7C,KAAAkN,YAAwB,GACxBlN,KAAA2U,YAAwB,GACxB3U,KAAA+K,aAAyB,GACzB/K,KAAAkL,eAA2B,GAC3BlL,KAAAiL,qBAAiC,GACjCjL,KAAAyL,0BAAsC,GACtCzL,KAAAkM,wBAAoC,GACpClM,KAAA0L,yBAAqC,GACrC1L,KAAAyF,kBAA4B,GAC5BzF,KAAA0F,gBAA0B,GAC1B1F,KAAAiU,SAAmB,EACnBjU,KAAAyO,QAAmB,CAAA,EACnBzO,KAAA4I,YAAuB,CAAA,EACvB5I,KAAAgQ,WAAa,QAGbhQ,KAAA4R,kBAA4B,EAC5B5R,KAAAsI,kBAA6B,CAAA,EAE7BtI,KAAA4U,kBAAoB5U,KAAKsS,cAAc,yCAAyC,EAChFtS,KAAA6U,wBAA0B7U,KAAKsS,cAAc,6CAA6C,EAE1FtS,KAAAsJ,gBAA2B,CAAA,EAE3BtJ,KAAA0N,gBAA2B,CAAA,EAE3B1N,KAAA6O,cAAgB,CAAE3G,MAAO,IAAI,EAE7BlI,KAAAmQ,eAA4C,GAE5CnQ,KAAA8U,aAAuC,IAAIC,MAE3C/U,KAAAgV,iBAA+C,IAAID,MAEnD/U,KAAAoQ,cAA2C,GAC3CpQ,KAAAiV,gBAA6C,GAK7CjV,KAAA8H,oBAA8B,GAC9B9H,KAAA+H,gBAAoC,GAEpC/H,KAAA0H,iBAAqC,GAErC1H,KAAAiI,eAAiB,CAAEC,MAAO,OAAO,EAEjClI,KAAAkV,cAAwB,GAExBlV,KAAAgN,kBAA4B,EAI5BhN,KAAAmI,sBAAiC,CAAA,EAEjCnI,KAAAwH,iBAA4B,CAAA,EAE5BxH,KAAAgJ,qBAAuB,GACvBhJ,KAAAiJ,oBAAsB,GAEtBjJ,KAAAoI,uBAAiC,GAEjCpI,KAAAuI,gBAAkB,CAAA,EAClBvI,KAAAwI,YAAsB,EAItBxI,KAAAoH,YAAc,CAAEC,IAAK,KAAK,EAWjBrH,KAAAmV,SAAmB,IACnBnV,KAAAoK,UAAoB,EACpBpK,KAAAkJ,UAAsB,GACtBlJ,KAAAqD,aAAuC,KACvCrD,KAAAgL,eAAyB,EAqElChL,KAAAoV,UAAiB,KAsvBjBpV,KAAAwT,kBAAyC,GAv0BnCxT,KAAK6S,WACP7S,KAAK+B,WAAa/B,KAAK6S,SAAStR,IAAImC,EAAAA,UAAU,EAC9C1D,KAAKqV,SAAWvX,aAAaC,QAAQ,cAAc,GAAKiC,KAAK6S,SAAStR,IAAI3C,EAAAA,SAAS,EACnFoB,KAAKwK,WAAa,IAAItE,EAAclG,KAAKqV,QAAQ,E,CCvGrDC,EAAA9X,UAAA+X,eAAA,SAAelU,EAAoBtB,GAC3BuB,EAAM,oDAAsDD,EAAa,WAAatB,EAAS,UAAYC,KAAKwV,SAASxV,KAAKyV,YAAYpU,EAAYtB,CAAM,CAAC,EAEnK,OADgB8B,EAAAA,gBAAgBC,YAAYR,CAAG,C,EAKjDgU,EAAA9X,UAAAkY,qBAAA,SAAqBrU,EAAoBtB,GACjCuB,EAAM,mDAAqDD,EAAa,WAAatB,EAAS,UAAYC,KAAKwV,SAASxV,KAAKyV,YAAYpU,EAAYtB,CAAM,CAAC,EAElK,OADgB8B,EAAAA,gBAAgBC,YAAYR,CAAG,C,EAIjDgU,EAAA9X,UAAAmY,uBAAA,SAAuBjV,EAAwBX,G,IACzC6V,EAAiBzS,KAAKuF,MAAMhI,CAAc,EACxCY,EAAM,8DAAgEZ,EAAiB,WAAaX,EAAS,UAAYC,KAAKwV,SAASxV,KAAKyV,YAAYG,EAAK,GAAI7V,CAAM,CAAC,EAE9K,OADgB8B,EAAAA,gBAAgBC,YAAYR,CAAG,C,EAIjDgU,EAAA9X,UAAAqY,+BAAA,SAA+BnV,EAAwBX,EAAgB+V,G,IACjEF,EAAiBzS,KAAKuF,MAAMhI,CAAc,EAOxCY,IALJwU,EADa,MAAXA,GAA8B,IAAXA,EAElBA,EADO,eACCC,SAAS,MAAM,IAC1BD,GAAW,QAGD,8DAAgEpV,EAAiB,WAAaX,EAAS,UAAYC,KAAKwV,SAASxV,KAAKyV,YAAYG,EAAK,GAAI7V,CAAM,CAAC,EAAI,YAAciW,mBAAmBF,CAAO,GAE1N,OADgBjU,EAAAA,gBAAgBC,YAAYR,CAAG,C,EAKjDgU,EAAA9X,UAAAyY,sBAAA,SAAsB5U,EAAoBtB,EAAgBmW,GAElD5U,EAAM,uDAAyDD,EAAa,WAAatB,EAAS,YAAcmW,EAAU,UAAYlW,KAAKwV,SAASxV,KAAKyV,YAAYpU,EAAYtB,CAAM,CAAC,EAE9L,OADgB8B,EAAAA,gBAAgBC,YAAYR,CAAG,C,EAMzCgU,EAAA9X,UAAAiY,YAAR,SAAoBU,EAAaC,GAI/B,I,IAHI9F,GAAM6F,EAAIhN,OAASiN,EAAKjN,OAASgN,EAAaC,GAATjN,OACrC9I,EAAc,GACdoH,EAAI,EACHA,EAAI,EAAGA,EAAI6I,EAAK7I,CAAC,GAEpBpH,GADAA,GAAO8V,EAAIrJ,UAAUrF,EAAGA,EAAI,CAAC,GACtB2O,EAAKtJ,UAAUrF,EAAGA,EAAI,CAAC,EAGhC,OADApH,IAAO8V,EAAIhN,OAASiN,EAAKjN,OAASiN,EAAoBD,GAAfrJ,UAAUrF,CAAC,C,EAI5C6N,EAAA9X,UAAAgY,SAAR,SAAiBW,G,IACXE,EAAQ,CAAC,EAAG,EAAG,GAGflN,GAFa,GAAbgN,EAAIhN,SACNgN,EAAMA,EAAIrJ,UAAU,EAAG,EAAE,GACdgD,KAAKwG,MAAMH,EAAIhN,OAAS,CAAC,GAClCiN,EAAOD,EAAIrJ,UAAU,EAAG3D,CAAM,EAC9BoN,EAAOJ,EAAIrJ,UAAU3D,EAAQ,EAAIA,CAAM,EACvCqN,EAAOL,EAAIrJ,UAAU,EAAI3D,EAAQ,EAAIA,CAAM,EAC3CsN,EAAc,GACdC,EAAS5G,KAAKC,KAAqB,EAAhBD,KAAK4G,OAAM,CAAM,EAOpCC,GANJF,EAAYnT,KAAK+S,EAAMK,EAAS,EAAE,EAClCL,EAAMpJ,OAAOyJ,EAAS,EAAG,CAAC,EAC1BA,EAAS5G,KAAKC,KAAqB,EAAhBD,KAAK4G,OAAM,CAAM,EACpCD,EAAYnT,KAAK+S,EAAMK,EAAS,EAAE,EAClCL,EAAMpJ,OAAOyJ,EAAS,EAAG,CAAC,EAC1BD,EAAYnT,KAAK+S,EAAM,EAAE,EACDvG,KAAK8G,OAAM,IAAIC,MAAOC,QAAO,EAAK,GAAI,EAAI,IAElE,OAAOH,EAAU7J,UAAU,EAAG,CAAC,EAAI,QAAU2J,EAAY,GAAUA,EAAY,GAAUA,EAAY,GAAKzW,KAAK+W,UAAUX,EAAMG,EAAMC,EAAMC,EAAY,EAAE,EAAIzW,KAAK+W,UAAUX,EAAMG,EAAMC,EAAMC,EAAY,EAAE,EAAIzW,KAAK+W,UAAUX,EAAMG,EAAMC,EAAMC,EAAY,EAAE,EAAI,QAAUE,EAAU7J,UAAU,CAAC,C,EAG5RwI,EAAA9X,UAAAuZ,UAAR,SAAkBX,EAAcG,EAAcC,EAAc/O,GAC1D,OAAQA,GACN,KAAK,EAAG,OAAO2O,EACf,KAAK,EAAG,OAAOG,EACf,KAAK,EAAG,OAAOC,C,uBArFpBrZ,EAAAA,UAAU,G,sCAJX,IAAAmY,EA8FAA,EAvFE,SAAAA,KCPF,IAAA0B,EAoCoClZ,aAAaC,QAAQ,cAAc,GAAK,SAjB5EkZ,G,oBAAChZ,EAAAA,SAAQb,KAAA,CAAC,CACRc,aAAc,CAAC6I,EAAqBb,GACpC/H,QAAS,CACP+Y,EAAAA,aACAC,EAAAA,gBACAC,EAAAA,aACAC,EAAAA,eAAeC,QAAO,EACtBC,EAAAA,cAAcD,QAAO,EACrBE,EAAAA,eACAC,EAAAA,YACAC,EAAAA,kBACAC,EAAAA,gBACAvZ,EAAAA,kBAEFC,QAAS,CAAC0I,GACV6Q,gBAAiB,CAAC7Q,GAClBzI,UAAW,CAACsB,EAAe0V,EAAiB/W,EAAAA,gBAAiBC,EAAAA,YAAaC,EAAAA,aAAcC,EAAAA,eACtF,CAAEC,QAASC,EAAAA,UAAWC,SAAQmY,CAAkD,E,EAEnF,GAC2BC,GApB5B,SAAAA,KAsBaY,EAAKZ,ECpBhBa,EAAAta,UAAAC,SAAA,aAGAqa,EAAAta,UAAAua,WAAA,WAAA,IAAA/Q,EAAAhH,KACEA,KAAKgY,IAAMhY,KAAKiY,aAAa5L,KAAKtF,EAAqB,CACrDmR,MAAO,OACPhQ,MAAO,IAAKiQ,OAAQ,IACpB5L,QAAS,CACP,CACEC,KAAM,KAAMC,IAAK,uCAAwC2L,QAAS,mBAAoB1L,OAAM,WAC1F1F,EAAKqR,WAAW3E,OAAM,EACtB1M,EAAKgR,IAAI1S,MAAK,CACf,C,EAEH,CACEkH,KAAM,KAAMC,IAAK,6BAA8B2L,QAAS,mBAAoB1L,OAAM,WAChF1F,EAAKqR,WAAWzX,OAAM,EACtBoG,EAAKgR,IAAI1S,MAAK,CACf,C,GAILgT,YAAa,CAAA,C,CAEd,EACDtY,KAAKgY,IAAIO,QAAQ/U,OAAOxD,KAAKwD,M,sBA1ChC9F,EAAAA,UAASN,KAAA,CAAC,CACTO,SAAU,mBACVC,SAAA,K,aAED,G,yCAPoB4a,EAAAA,cAAc,E,kCAchC/D,EAAAA,KAAK,G,kBAILC,EAAAA,UAAStX,KAAA,CAAC2J,EAAmB,E,EAnBhC+Q,EAkDAA,EAjCE,SAAAA,EAAoBG,GAAAjY,KAAAiY,aAAAA,EAJpBjY,KAAAU,eAAwB,E,CCatB+X,EAAAjb,UAAAua,WAAA,SAAWvU,EAAgBzD,GAA3B,IAAAiH,EAAAhH,KACQ6M,EAAO,EACX,OAAO,IAAI6L,QAAO,SAACC,G,IAEXC,EADgB5R,EAAK6R,yBAAyBC,wBAAwB/R,CAAmB,EAC/DgS,OAAO/R,EAAK6L,QAAQ,EAElD+F,EAAUI,SAASjZ,OAASA,EAC5B6Y,EAAUI,SAASxV,OAASA,EAE5BwD,EAAKgR,IAAMhR,EAAKiR,aAAa5L,KAAKuM,EAAW,CACzCV,MAAOlR,EAAKiS,UAAU9S,UAAU,YAAY,EAC5C+B,MAAO,IAAKiQ,OAAQ,IACpB5L,QAAS,CACL,CACIC,KAAMxF,EAAKiS,UAAU9S,UAAU,MAAM,EAAGsG,IAAK,uCAAwCC,OAAM,WACvF1F,EAAKgR,IAAIO,QAAQ7E,OAAM,EAAGnM,UAAS,SAC/BlH,GACQA,IACAsY,EAAQtY,CAAG,EACXwM,EAAO,EACP7F,EAAKgR,IAAI1S,MAAK,EAErB,CAAA,CAER,C,EAEL,CACIkH,KAAMxF,EAAKiS,UAAU9S,UAAU,OAAO,EAAGsG,IAAK,6BAA8BC,OAAM,WAC9E1F,EAAKgR,IAAI1S,MAAK,CACjB,C,GAITgT,YAAa,CAAA,EACbY,cAAe,CAAA,EACfC,YAAW,WAGP,OAFY,GAARtM,GACA7F,EAAKgR,IAAIO,QAAQ3X,OAAM,EACpBJ,EAAAA,GAAG,CAAA,CAAI,CACjB,C,CACJ,CACJ,CAAA,C,EAGLiY,EAAAjb,UAAAgE,WAAA,SAAWgC,EAAgBzD,EAAgBmJ,GACvC,OAAOlJ,KAAKoZ,oBAAoB5V,EAAQzD,EAAQ,KADTmJ,EAAA,KAAA,IAAAA,EAAA,GACeA,CAAS,C,EAInEuP,EAAAjb,UAAA4b,oBAAA,SAAoB5V,EAAgBzD,EAAgBsZ,EAAoBnQ,GAAxE,IAAAlC,EAAAhH,KACQ6M,GADgE,KAAA,IAAA3D,IAAAA,EAAA,IACzD,GACX,OAAO,IAAIwP,QAAO,SAACC,G,IAEXW,EADgBtS,EAAK6R,yBAAyBC,wBAAwB/R,CAAmB,EAC/DgS,OAAO/R,EAAK6L,QAAQ,EACrC,MAATwG,IACAC,EAAUN,SAAS5O,UAAYiP,EAAMjP,UACrCkP,EAAUN,SAAS3V,aAAegW,EAAMhW,aACxCiW,EAAUN,SAAShO,eAAiBqO,EAAMrO,eACpB,MAAlBqO,EAAMlE,WAAsC,IAAlBkE,EAAMlE,WAChCmE,EAAUN,SAAS7D,SAAWkE,EAAMlE,UAG5CmE,EAAUN,SAASjZ,OAASA,EAC5BuZ,EAAUN,SAASxV,OAASA,EAC5B8V,EAAUN,SAAS9P,UAAYA,EAE/BlC,EAAKgR,IAAMhR,EAAKiR,aAAa5L,KAAKiN,EAAW,CACzCpB,MAAOlR,EAAKiS,UAAU9S,UAAU,YAAY,EAC5C+B,MAAO,IAAKiQ,OAAQ,IACpB5L,QAAS,CACL,CAEIC,KAAMxF,EAAKiS,UAAU9S,UAAU,MAAM,EAAGsG,IAAK,uCAAwCC,OAAM,WACvF1F,EAAKgR,IAAIO,QAAQ7E,OAAM,EAAGnM,UAAS,SAC/BlH,GACQA,IACAsY,EAAQtY,CAAG,EACXwM,EAAO,EACP7F,EAAKgR,IAAI1S,MAAK,EAErB,CAAA,CAER,C,EAEL,CACIkH,KAAMxF,EAAKiS,UAAU9S,UAAU,OAAO,EAAGsG,IAAK,6BAA8BC,OAAM,WAC9E1F,EAAKgR,IAAI1S,MAAK,CACjB,C,GAITgT,YAAa,CAAA,EACbY,cAAe,CAAA,EACfC,YAAW,WAGP,OAFY,GAARtM,GACA7F,EAAKgR,IAAIO,QAAQ3X,OAAM,EACpBJ,EAAAA,GAAG,CAAA,CAAI,CACjB,C,CACJ,CACJ,CAAA,C,sBApHRrD,EAAAA,UAAU,G,yCAPFqb,EAAAA,cAAc,E,MAFQe,EAAAA,wBAAwB,E,MAAlC/E,EAAAA,QAAQ,E,EAA7BiE,EA+HAA,EAjHI,SAAAA,EAAoBR,EAAsCY,EAA4DhG,GAAlG7S,KAAAiY,aAAAA,EAAsCjY,KAAA6Y,yBAAAA,EAA4D7Y,KAAA6S,SAAAA,EAUtH7S,KAAAwC,aAAiC,GATzBxC,KAAK6S,WACL7S,KAAKiY,aAAejY,KAAK6S,SAAStR,IAAIiX,EAAAA,cAAc,EACpDxY,KAAKqV,SAAWvX,aAAaC,QAAQ,cAAc,GAAKiC,KAAK6S,SAAStR,IAAI3C,EAAAA,SAAS,EACnFoB,KAAKiZ,UAAY,IAAI/S,EAAclG,KAAKqV,QAAQ,E,qBCD3DpX,EAAAA,SAAQb,KAAA,CAAC,CACRc,aAAc,CAAC4Z,GACf3Z,QAAS,CACP+Y,EAAAA,aACAsC,EAAAA,mBACAnC,EAAAA,eAAeC,QAAO,EACtBL,EACAG,EAAAA,aAAaE,QAAO,EACpBlZ,EAAAA,kBAEFC,QAAS,CAACyZ,EAAsB/Q,GAChC6Q,gBAAiB,CAACE,EAAsB/Q,GACxCzI,UAAW,CAACka,EAAAA,eAAgBha,EAAAA,YAAaia,EAAqB7Y,E,EAC/D,GA9BD6Z,EA+BkCA,EAdlC,SAAAA,KCfA,IAAAC,EAAA,WACW1Z,KAAAmV,SAAmB,IACnBnV,KAAAoK,UAAoB,EACpBpK,KAAAqD,aAAuC,KACvCrD,KAAAgL,eAAyB,C,ECHpC2O,EAAA,aCDAC,EAAA,aCFAC,EAAA,aCGAC,GAAA,aCDAC,GAAA,aCFAC,GAAA,aCAAC,GAAA,a"}
|
|
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/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/entity/copyfilerequest.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/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/entity/initmultiuploadrequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/completemultiuploadrequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformstreamentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/multiuploadrequest.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/gspformdocinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocmetaproperty.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/fileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocsecuritybaseinfo.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","HttpClientModule","exports","providers","LanguageService","HttpService","CacheService","SessionService","provide","LOCALE_ID","useValue","Word","Excel","Powerpoint","Pdf","Txt","Image","Other","Zip","Formal","Temp","GspFormRemoveListEntity","GspFormDocOperateEntity","ChangeInstanceRequest","CopyFileRequest","UploadService","http","httpclient","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","uploadSliceFile","formdata","baseUrl","BasePathService","convertPath","getStorageExtensionInfo","getSecurityInfoList","baseInfo","securityId","securityLevel","changeStorageInstance","storageInfoList","request","fileInfoList","copyFile","path","responseType","saveSecurityInfo","uploadFileInfoList","reqList","forEach","element","id","exProperty","JSON","stringify","securityInfo","push","getUploadedFileInfoList","formId","getUploadInfo","HttpClient","UploadFileInfo","ExStorageFileInfo","New","Update","LANG_RESOURCES","zh-CHS","uploading","selectedCount","limitCount","rechooseFile","save","haveSameName","rename","replace","sizeZero","sizeMax","uploadFailure","uploadFailurej","uploadSucceed","wait","saveTo","selectAll","selectNull","detail","fileName","state","operation","size","close","loading","mismatchChunkSize","invalidCharacters","invalidExtNames","whiteExtNames","blackExtNames","UnrecognizedFileType","fileNameOverSize","fileCount","en-US","en","zh-CHT","LocalLangPipe","localeId","defaultLang","langCode","lang","transform","name","Pipe","Inject","InitMultiUploadRequest","CompleteMultiUploadRequest","GspFormStreamEntity","MultiUploadRequest","FileUploadComponent","msgService","uploadService","loadService","injector","files","errFileList","errTypeList","nullFileList","beyondFileList","fileNameOversizeList","invalidCharactersFileList","invalidExtNamesFileList","unrecognizedTypeFileList","showType","mouseOn","isWhiteList","bufferSize","selectedFileCount","uploadBtnDisabled","uploadIconAddress","createBaseUrl","uploadLittleIconAddress","hasSelectedFile","fileAllSelected","uploadProcess","width","fileTotalChunk","requestArray","Array","requestBodyArray","uploadedChunk","uploadedProcess","defaultPropertyName","propertiesNames","securityInfoList","queueListStyle","dropListValue","uploadedFileTotal","haveExtensionProperty","haveSecurityInfo","uploadedFileInfoList","oldUploadedFileList","uploadInfoErrorMessage","sameNameAllowed","maxFileSize","checkboxPos","top","fileType","oldIdList","fileNameLength","totalLoad","exStorageFileList","localeid","localepipe","_this","navigator","userAgent","indexOf","subscribe","i","toString","storageExtension","i_1","extensionPropertyNameList","parseInt","parse","validateConfiguration","whiteList","toLowerCase","allowedMultiUpload","Message","length","radioButtonGroupValue","showLoading","getRightClass","findInvalidCharacter","charList","split","hasFileType","file","includes","fileSelected","$event","selectedFiles","document","querySelector","selectedNum","warning","selectedFile","this_1","isAllowedUpload","uuid","UUID","invalidCharListFilter","filter","s","trim","errorMessage","index","curFileSuffix","substr","lastIndexOf","extNames","listToString","extNamesAry","find","x","msg_1","show","initialState","buttons","text","cls","handle","newName","oldName","flag","substring","FileState","splice","name_1","name_2","name_3","name_4","name_5","name_6","name_7","slice","target","value","showErrorMessage","handleFileInfo","fileInfo","type","source","getFileSize","fileSize","picListDisplayName","getPicListDisplayName","queueListDisplayName","getQueueDisplayName","hasUploaded","selectd","isUploading","uploadResult","extensionDropListId","extensionName","securityDropListId","style","addDocInfo","DocType","uploadFileInfo","originalSize","initRequest","initMultiUpload","uploadId_1","uploadId","chunkTotal","Math","ceil","chunkIndex","multiResultList_1","nextSize","min","fileData","multiRequest","total","formData","FormData","append","multiUpload","result","Number","toFixed","completeMultiUploadRequest","partList","exPropertyName","completeMultiUpload","status","concat","entity_1","intervalId_1","uploadSingleFile","clearInterval","index_1","findIndex","item","setInterval","getUploadProcess","selectAllFile","checkoutSelectFile","listDeleteFile","listMultipleDeleteFile","getElementById","checked","metadataList","allBox","selectdFile","docType","reader_1","FileReader","readAsDataURL","onload","_event","imgUrl","DomSanitizer","bypassSecurityTrustResourceUrl","max-width","max-height","strList","securityChange","selections","typeChange","exStorageFileInfo","upload","loading_1","message","map","getUploadFileInfoList","showByGroup","showByList","mouseOver","mouseOut","oldUrl","MessagerService","LoadingService","Injector","Input","ViewChild","DownloadService","getDownloadUrl","getToken","mergeString","getStreamDownloadUrl","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","FarrisRTFModule","NotifyModule","MessagerModule","forRoot","LoadingModule","ProgressModule","FormsModule","FarrisFormsModule","DatalistModule","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","UploadLimit","GspFormUploadListEntity","GspFormDocInfo","GspDocMetaProperty","GspFormUploadEntity","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 { HttpClientModule } from '@angular/common/http';\nimport { LOCALE_ID, NgModule } from '@angular/core';\nimport { CacheService, HttpService, LanguageService, SessionService } 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 HttpClientModule\n ],\n \n exports: [FormdocUploadComponent],\n providers:[ LanguageService,HttpService,CacheService,SessionService,\n { provide: LOCALE_ID, useValue: localStorage.getItem('languageCode') || 'zh-CHS' },]\n})\nexport class FormdocUploadModule { }\n","export enum DocType{\n Word,\n Excel,\n Powerpoint,\n Pdf,\n Txt,\n Image,\n Other,\n Zip\n}","export enum OperatingModes{\n Formal,\n Temp\n}","import { OperatingModes } from \"./operatingmodes\";\n\nexport class GspFormRemoveListEntity {\n public metadataIdList: string[];\n public mode: OperatingModes;\n public rootId: string;\n}","export class GspFormDocOperateEntity {\n public metadataIdList: string[];\n public rootId: string;\n}","import { ExStorageFileInfo } from './extensionstoragefileinfo';\n\nexport class ChangeInstanceRequest {\n public fileInfoList: ExStorageFileInfo[];\n public rootId: string;\n}","export class CopyFileRequest{\n public metadataId:string;\n public rootId:string;\n public path:string;\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 { HttpClient, 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/gspdocsecuritybaseinfo';\nimport { UploadFileInfo } from './entity/uploadfileinfo';\nimport { ExPropertyRequest } from './entity/expropertyrequest';\nimport { CopyFileRequest } from './entity/copyfilerequest';\nimport { BasePathService } from '@farris/rtf';\n\n\n@Injectable()\nexport class UploadService {\n\n constructor(private http: HttpService, private httpclient: HttpClient) { }\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 uploadSliceFile(formdata: FormData): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/slice\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n const baseUrl = BasePathService.convertPath(url);\n return this.httpclient.post(baseUrl, formdata).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 copyFile(metadataId: string, rootId: string, path: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/copy\";\n const baseUrl = BasePathService.convertPath(url);\n let request: CopyFileRequest = new CopyFileRequest;\n request.metadataId = metadataId;\n request.rootId = rootId;\n request.path = path;\n return this.httpclient.post(baseUrl, request, { responseType: 'text' }).pipe(\n tap(res => { }),\n // catchError((error: HttpErrorResponse) => {\n // return of(error);\n // })\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 getUploadInfo(rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/rootsetting/info?id=\" + rootId;\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 // getValidation(id: string): Observable<any> {\n // let url = \"/api/runtime/dfs/v1.0/validation/\" + id;\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\";\nimport { SecurityEntity } from \"./securityentity\";\n\nexport class UploadFileInfo {\n\n public metadataId: string;\n public fileName: string;\n public fileSize: string;\n public originalSize: number;\n public state: FileState;\n public securityInfo: SecurityEntity;\n\n}\n","export class ExStorageFileInfo {\n public metadataId: string;\n public exPropertyName: string;\n}","export enum FileState{\n New,\n Update\n}","export const LANG_RESOURCES = {\n 'zh-CHS': {\n 'uploadFile': 'ä¸ä¼ æä»¶',\n 'uploading':'æ£å¨ä¸ä¼ æä»¶â¦â¦',\n 'selectedCount':'已鿩æä»¶æ°éï¼',\n 'limitCount':'è¶
åºç³»ç»éå¶æ°éï¼',\n 'rechooseFile':',è¯·éæ°éæ©ä¸ä¼ æä»¶ã',\n 'save':'ä¿å',\n 'cancel':'åæ¶',\n 'haveSameName':'å·²ä¸ä¼ è¿ååæä»¶: ',\n 'rename':'éå½å',\n\t\t 'replace':'æ¿æ¢',\n 'sizeZero':'æä»¶å¤§å°ä¸º0',\n 'sizeMax':'æä»¶å¤§å°è¶
åºéå¶',\n 'uploadFailure':'ä¸ä¼ 失败',\n 'uploadFailurej':'ä¸ä¼ 失败, ',\n 'uploadSucceed':'ä¸ä¼ æå',\n 'wait':'çä¸ä¸ï¼ææ¡£æ£å¨ä¸ä¼ ã',\n 'saveTo':'æ£å¨å°æä»¶ä¿åå°',\n 'delete':'å é¤',\n 'selectAll':'å
¨é',\n 'selectNull':'å
¨ä¸é',\n 'detail':'详æ
',\n 'fileName':'æä»¶å',\n 'state':'ç¶æ',\n 'operation':'æä½',\n 'size':'大å°',\n 'close':'å
³é',\n 'loading':'æ¼å½å è½½ä¸',\n 'mismatchChunkSize':'ææ¡£åçä¸ä¼ é¨å丢失ï¼è¯·éæ°ä¸ä¼ ï¼å¦æå¤æ¬¡ä¸ä¼ 失败ï¼è¯·è系管çåã',\n 'invalidCharacters': 'æä»¶åå
å«ç¹æ®å符',\n 'invalidExtNames': 'ææ¡£ç±»åä¸å
许ä¸ä¼ ',\n 'whiteExtNames': 'ãå
许ä¸ä¼ çæä»¶ç±»å为ï¼',\n 'blackExtNames': 'ãä¸å
许ä¸ä¼ çæä»¶ç±»å为ï¼',\n 'UnrecognizedFileType':'æ æ³ç¡®å®æä»¶ç±»å',\n 'fileNameOverSize':'æä»¶åè¶
åºé¿åº¦éå¶ï¼æé¿å
许',\n 'fileCount':\"æä»¶ä¸ªæ°ï¼\"\n },\n 'en-US': {\n 'uploadFile': 'Upload File',\n 'uploading':'File Uploadingâ¦â¦',\n 'selectedCount':'Selected files countï¼',\n 'limitCount':'System limit countï¼',\n 'rechooseFile':',Reselect upload file.',\n 'save':'Save',\n 'cancel':'Cancel',\n 'haveSameName':'A file with the same name has been uploaded: ',\n 'rename':'Rename',\n\t\t 'replace':'Replace',\n 'sizeZero':'File size is 0.',\n 'sizeMax':'File size beyond limit.',\n 'uploadFailure':'Upload Failed',\n 'uploadFailurej':'Upload failed, ',\n 'uploadSucceed':'Upload Successfully',\n 'wait':'Wait a minute, the file is uploading.',\n 'saveTo':'Saving file to',\n 'delete':'Delete',\n 'selectAll':'Select All',\n 'selectNull':'Not At All',\n 'detail':'Details',\n 'fileName':'Filename',\n 'state':'State',\n 'operation':'Operation',\n 'size':'Size',\n 'close':'Close',\n 'loading':'Loading',\n 'mismatchChunkSize':'The partial upload of document shards is missing. Please upload again. If multiple uploads fail, please contact the administrator.',\n 'invalidCharacters': 'The file name contains special characters.',\n 'invalidExtNames': 'Document type does not allow uploading.',\n 'whiteExtNames': '.The file types allowed for uploading are:',\n 'blackExtNames': '.The file types that are not allowed to be uploaded are:',\n 'UnrecognizedFileType': 'Unrecognized file type',\n 'fileNameOverSize':'fileName oversize,the lengthest is',\n 'fileCount':\"File Count:\"\n },\n 'en': {\n 'uploadFile': 'Upload File',\n 'uploading':'File Uploadingâ¦â¦',\n 'selectedCount':'Selected files countï¼',\n 'limitCount':'System limit countï¼',\n 'rechooseFile':',Reselect upload file.',\n 'save':'Save',\n 'cancel':'Cancel',\n 'haveSameName':'A file with the same name has been uploaded: ',\n 'rename':'Rename',\n\t\t 'replace':'Replace',\n 'sizeZero':'File size is 0.',\n 'sizeMax':'File size beyond limit.',\n 'uploadFailure':'Upload Failed',\n 'uploadFailurej':'Upload failed, ',\n 'uploadSucceed':'Upload Successfully',\n 'wait':'Wait a minute, the file is uploading.',\n 'saveTo':'Saving file to',\n 'delete':'Delete',\n 'selectAll':'Select All',\n 'selectNull':'Not At All',\n 'detail':'Details',\n 'fileName':'Filename',\n 'state':'State',\n 'operation':'Operation',\n 'size':'Size',\n 'close':'Close',\n 'loading':'Loading',\n 'mismatchChunkSize':'The partial upload of document shards is missing. Please upload again. If multiple uploads fail, please contact the administrator.',\n 'invalidCharacters': 'The file name contains special characters.',\n 'invalidExtNames': 'Document type does not allow uploading.',\n 'whiteExtNames': '.The file types allowed for uploading are:',\n 'blackExtNames': '.The file types that are not allowed to be uploaded are:',\n 'UnrecognizedFileType': 'Unrecognized file type',\n 'fileNameOverSize':'fileName oversize,the lengthest is',\n 'fileCount':\"File Count:\"\n },\n 'zh-CHT': {\n 'uploadFile': 'ä¸å³æä»¶',\n 'uploading':'æ£å¨ä¸å³æä»¶â¦â¦',\n 'selectedCount':'已鏿æä»¶æ¸éï¼',\n 'limitCount':'è¶
åºç³»çµ±éå¶æ¸éï¼',\n 'rechooseFile':',鿰鏿ä¸å³æä»¶ã',\n 'save':'ä¿å',\n 'cancel':'åæ¶',\n 'haveSameName':'å·²ä¸å³éååæä»¶: ',\n 'rename':'éå½å',\n\t\t 'replace':'æ¿æ',\n 'sizeZero':'æä»¶å¤§å°çº0',\n 'sizeMax':'æä»¶å¤§å°è¶
åºéå¶',\n 'uploadFailure':'ä¸å³å¤±æ',\n 'uploadFailurej':'ä¸å³å¤±æ, ',\n 'uploadSucceed':'ä¸å³æå',\n 'wait':'çä¸ä¸ï¼æä»¶æ£å¨ä¸å³ã',\n 'saveTo':'æ£å¨å°æä»¶ä¿åå°',\n 'delete':'å é¤',\n 'selectAll':'å
¨é¸',\n 'selectNull':'å
¨ä¸é¸',\n 'detail':'詳æ
',\n 'fileName':'æä»¶å',\n 'state':'çæ
',\n 'operation':'æä½',\n 'size':'大å°',\n 'close':'éé',\n 'loading':'æ¼å½å è¼ä¸',\n 'mismatchChunkSize':'ææªåçä¸å³é¨åéºå¤±ï¼è«éæ°ä¸å³ï¼å¦æå¤æ¬¡ä¸å³å¤±æï¼è«è¯ç³»ç®¡çå¡ã',\n 'invalidCharacters': 'æä»¶åå
å«ç¹æ®å符',\n 'invalidExtNames': 'ææªé¡åä¸å
許ä¸å³',\n 'whiteExtNames': 'ãå
許ä¸å³çæä»¶é¡åçºï¼',\n 'blackExtNames': 'ãä¸å
許ä¸å³çæä»¶é¡åçºï¼',\n 'UnrecognizedFileType': 'ç¡æ³ç¢ºå®æä»¶é¡å',\n 'fileNameOverSize':'æä»¶åè¶
åºé¿åº¦éå¶ï¼æé¿å
许',\n 'fileCount':\"æä»¶åæ¸ï¼\"\n },\n};\n","import { Pipe, PipeTransform, Inject, LOCALE_ID } from '@angular/core';\nimport { LANG_RESOURCES } from './i18n/language.resource';\n\n@Pipe({ name: 'locale' })\nexport class LocalLangPipe implements PipeTransform {\n private readonly defaultLang: string = \"zh-CHS\";\n private langCode: string;\n private lang: {};\n constructor(\n @Inject(LOCALE_ID) localeId: string\n ) {\n this.langCode = localStorage.getItem(\"languageCode\") || localeId || this.defaultLang;\n this.lang = LANG_RESOURCES[this.langCode] || LANG_RESOURCES[this.defaultLang];\n }\n transform(name: string): any {\n return this.lang[name] || name;\n }\n}\n\n","export class InitMultiUploadRequest {\n public path: string;\n public metadataId: string;\n public rootId: string;\n public fileName: string;\n public size: number;\n}","import { MultiUploadResult } from \"./multiuploadresult\";\n\nexport class CompleteMultiUploadRequest {\n public metadataId: string;\n public rootId: string;\n public uploadId: string;\n public size: number;\n public partList: MultiUploadResult[];\n public exPropertyName: string;\n}","import { GspDocMetaProperty } from \"./gspdocmetaproperty\";\nimport { OperatingModes } from \"./operatingmodes\";\n\nexport class GspFormStreamEntity {\n public formId: string;\n public metadataId: string;\n public rootId: string;\n public fileName: string;\n public size: number;\n public mode: OperatingModes;\n public exPropertyName: string;\n public extProperty: GspDocMetaProperty;\n}","export class MultiUploadRequest {\n public metadataId: string;\n\n public total: number;\n\n public size: number;\n\n public index: number;\n\n public rootId: string;\n\n public uploadId: string;\n}","import { Component, OnInit, Input, ViewChild, TemplateRef, 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 { catchError, map, tap } 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 { FileState } from '../entity/filestate';\nimport { LocalLangPipe } from '../../local.pipe';\nimport { GspDocSecurityBaseInfo } from '../entity/gspdocsecuritybaseinfo';\nimport { SecurityEntity } from '../entity/securityentity';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { InitMultiUploadRequest } from '../entity/initmultiuploadrequest';\nimport { CompleteMultiUploadRequest } from '../entity/completemultiuploadrequest';\nimport { GspFormStreamEntity } from '../entity/gspformstreamentity';\nimport { MultiUploadRequest } from '../entity/multiuploadrequest';\nimport { MultiUploadResult } from '../entity/multiuploadresult';\nimport { BasePathService } from '@farris/rtf';\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 beyondFileList: string[] = [];\n fileNameOversizeList: string[] = [];\n invalidCharactersFileList: string[] = [];\n invalidExtNamesFileList: string[] = [];\n unrecognizedTypeFileList: string[] = [];\n invalidCharacters: string = '';\n invalidExtNames: string = '';\n showType: number = 0;\n mouseOn: boolean = false;\n isWhiteList: boolean = false;\n bufferSize = 5 * 1024 * 1024;\n selectedFiles: any;\n radioButtonGroupValue;\n selectedFileCount: number = 0;\n uploadBtnDisabled: boolean = false;\n\n uploadIconAddress = this.createBaseUrl('/platform/runtime/dfs/images/upload.svg');\n uploadLittleIconAddress = this.createBaseUrl('/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\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 allowedMultiUpload: boolean;\n\n haveExtensionProperty: boolean = false;\n\n haveSecurityInfo: boolean = false;\n\n uploadedFileInfoList = [];\n oldUploadedFileList = [];\n //uploadedNameList = [];\n uploadInfoErrorMessage: string = \"\";\n\n sameNameAllowed = true;\n maxFileSize: number = 0;;\n localeid: string;\n localepipe: LocalLangPipe;\n httpclient: HttpClient;\n checkboxPos = { top: '0px' }\n\n constructor(private msgService: MessagerService, private uploadService: UploadService, private loadService: LoadingService, private injector?: Injector) {\n if (this.injector) {\n this.httpclient = this.injector.get(HttpClient);\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 @Input() fileNameLength: number = 0;\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.getUploadInfo(this.rootId).subscribe(res => {\n if (res.error != null) {\n this.uploadInfoErrorMessage = res.error.Message;\n // console.log('è·åä¸ä¼ ä¿¡æ¯æ¥éï¼é误信æ¯ä¸ºï¼',errMsg);\n return;\n } else {\n this.uploadBtnDisabled = false;\n this.sameNameAllowed = res.sameNameAllowed;\n this.maxFileSize = parseInt(JSON.parse(res.validateConfiguration).maxFileSize);\n this.isWhiteList = JSON.parse(res.validateConfiguration).whiteList;\n this.invalidCharacters = JSON.parse(res.validateConfiguration).invalidCharacters;\n this.invalidExtNames = JSON.parse(res.validateConfiguration).invalidExtNames.toLowerCase();\n this.allowedMultiUpload = res.allowedMultiUpload;\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 if (this.oldIdList != null && this.oldIdList.length > 0) {\n // this.uploadService.cancel(this.oldIdList, this.rootId).subscribe();\n }\n\n this.radioButtonGroupValue = 'showByGroup';\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 getRightClass() {\n if (this.uploadBtnDisabled) {\n return 'btn btn-primary btn-lg disabled';\n } else {\n return 'btn btn-primary btn-lg';\n }\n }\n\n findInvalidCharacter(name: string): string[] {\n let charList: string[] = [];\n this.invalidCharacters.split('|').forEach(element => {\n if (name.indexOf(element) >= 0)\n charList.push(element);\n })\n\n return charList;\n }\n\n\n hasFileType(file) {\n return file.name.includes('.');\n }\n\n fileSelected($event) {\n if (this.uploadInfoErrorMessage) {\n this.msgService.error(this.uploadInfoErrorMessage);\n this.uploadBtnDisabled = true;\n return;\n }\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.isAllowedUpload = true;\n //selectedFile.slice\n let uuid = UUID.UUID();\n\n if (selectedFile.size == 0) {\n this.nullFileList.push(selectedFile.name);\n continue;\n }\n\n if (this.fileNameLength > 0 && selectedFile.name.length > this.fileNameLength) {\n this.fileNameOversizeList.push(selectedFile.name);\n continue;\n }\n\n if (this.maxFileSize != null && this.maxFileSize > 0) {\n if (selectedFile.size > this.maxFileSize * 1000) {\n this.beyondFileList.push(selectedFile.name);\n continue;\n }\n }\n\n const invalidCharList = this.findInvalidCharacter(selectedFile.name);\n let invalidCharListFilter = invalidCharList.filter((s) => {\n return s && s.trim();\n });\n let errorMessage = \"\"\n if (invalidCharListFilter.length > 0) {\n invalidCharListFilter.forEach((element, index) => {\n errorMessage += \"\\\"\";\n errorMessage += element;\n errorMessage += \"\\\"\";\n errorMessage += (index === invalidCharListFilter.length - 1) ? \"\" : \",\";\n })\n if (this.selectedFiles.files.length === 1) {\n selectedFile.isAllowedUpload = false;\n this.msgService.warning(this.localepipe.transform('invalidCharacters') + errorMessage + this.localepipe.transform('rechooseFile'));\n return;\n }\n if (this.selectedFiles.files.length > 1) {\n selectedFile.isAllowedUpload = false;\n this.invalidCharactersFileList.push(selectedFile.name);\n continue;\n }\n\n }\n\n if (!this.hasFileType(selectedFile)) {\n if (this.selectedFiles.files.length === 1) {\n selectedFile.isAllowedUpload = false;\n this.msgService.warning(selectedFile.name + this.localepipe.transform('UnrecognizedFileType') + this.localepipe.transform('rechooseFile'));\n return;\n }\n if (this.selectedFiles.files.length > 1) {\n selectedFile.isAllowedUpload = false;\n this.unrecognizedTypeFileList.push(selectedFile.name);\n continue;\n }\n }\n\n // let curFileSuffix = selectedFile.name.split('.')[1];\n let curFileSuffix = selectedFile.name.substr(selectedFile.name.lastIndexOf('.') + 1).toLowerCase();\n const extNames = this.listToString(this.invalidExtNames.split('|'));\n const extNamesAry = this.invalidExtNames.split('|');\n if (!this.isWhiteList && extNamesAry.includes(curFileSuffix)) {\n if (this.selectedFiles.files.length === 1) {\n selectedFile.isAllowedUpload = false;\n this.msgService.warning(selectedFile.name + this.localepipe.transform('invalidExtNames') + this.localepipe.transform('blackExtNames') + extNames + this.localepipe.transform('rechooseFile'));\n return;\n }\n if (this.selectedFiles.files.length > 1) {\n selectedFile.isAllowedUpload = false;\n this.invalidExtNamesFileList.push(selectedFile.name);\n continue;\n }\n }\n if (this.isWhiteList && !extNamesAry.includes(curFileSuffix)) {\n if (this.selectedFiles.files.length === 1) {\n selectedFile.isAllowedUpload = false;\n this.msgService.warning(selectedFile.name + this.localepipe.transform('invalidExtNames') + this.localepipe.transform('whiteExtNames') + extNames + this.localepipe.transform('rechooseFile'));\n return;\n }\n if (this.selectedFiles.files.length > 1) {\n selectedFile.isAllowedUpload = false;\n this.invalidExtNamesFileList.push(selectedFile.name);\n continue;\n }\n }\n\n if (!this.sameNameAllowed) {\n if (this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name) != null) {\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 if (selectedFile.isAllowedUpload === true) {\n this.uploadFile(uuid, selectedFile, selectedFile.name);\n }\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 this.msgService.warning(name + this.localepipe.transform('sizeZero') + this.localepipe.transform('rechooseFile'));\n this.nullFileList = [];\n }\n\n if (this.fileNameOversizeList.length > 0) {\n let name: string = this.listToString(this.fileNameOversizeList);\n this.msgService.warning(name + this.localepipe.transform('fileNameOverSize') + this.fileNameLength + this.localepipe.transform('rechooseFile'));\n this.fileNameOversizeList = [];\n }\n\n if (this.beyondFileList.length > 0) {\n let name: string = this.listToString(this.beyondFileList);\n this.msgService.warning(name + this.localepipe.transform('sizeMax') + this.maxFileSize + \"KB\" + this.localepipe.transform('rechooseFile'));\n this.beyondFileList = [];\n }\n\n if (this.invalidCharactersFileList.length > 0) {\n let name: string = this.listToString(this.invalidCharactersFileList);\n this.msgService.warning(name + this.localepipe.transform('invalidCharacters') + this.localepipe.transform('rechooseFile'));\n this.invalidCharactersFileList = [];\n }\n\n if (this.invalidExtNamesFileList.length > 0) {\n let name: string = this.listToString(this.invalidExtNamesFileList);\n this.msgService.warning(name + this.localepipe.transform('invalidExtNames') + this.localepipe.transform('rechooseFile'));\n this.invalidExtNamesFileList = [];\n }\n\n if (this.unrecognizedTypeFileList.length > 0) {\n let name: string = this.listToString(this.unrecognizedTypeFileList);\n this.msgService.warning(name + this.localepipe.transform('UnrecognizedFileType') + this.localepipe.transform('rechooseFile'));\n this.unrecognizedTypeFileList = [];\n }\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('uploadFailurej') + file.errorMessage);\n }\n\n handleFileInfo(uuid: string, selectedFile, fileName: string): any {\n\n let fileInfo: FileInfo;\n\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 style: {}\n }\n\n if (this.storageExtension != null)\n fileInfo.extensionName = this.defaultPropertyName;\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 if (type.includes(\"zip\") || selectedFile.name.includes(\".rar\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Zip);\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 return fileInfo;\n }\n\n uploadFile(uuid: string, selectedFile, fileName: string, state: FileState = FileState.New) {\n\n let fileInfo = this.handleFileInfo(uuid, selectedFile, fileName);\n\n let uploadFileInfo = new UploadFileInfo();\n\n uploadFileInfo.metadataId = uuid;\n uploadFileInfo.fileName = fileInfo.name;\n uploadFileInfo.fileSize = fileInfo.size;\n uploadFileInfo.originalSize = fileInfo.fileSize;\n uploadFileInfo.state = state;\n uploadFileInfo.securityInfo = this.securityInfoList[0];\n\n\n //夿æ¯å¦æ¯æåçä¸ä¼ \n if (this.allowedMultiUpload) {\n\n //æ¯æåçä¸ä¼ \n let initRequest: InitMultiUploadRequest = new InitMultiUploadRequest;\n\n initRequest.path = this.formId;\n initRequest.metadataId = uuid;\n initRequest.rootId = this.rootId;\n initRequest.size = fileInfo.fileSize;\n initRequest.fileName = fileName;\n\n //åå§ååç\n this.initMultiUpload(initRequest).subscribe(res => {\n if (res.error != 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 let uploadId = res.uploadId;\n let chunkTotal: number = Math.ceil(selectedFile.size / this.bufferSize);\n let chunkIndex: number = 0;\n\n let multiResultList: MultiUploadResult[] = [];\n\n this.fileTotalChunk[uuid] = chunkTotal;\n this.uploadedChunk[uuid] = 0;\n\n while (chunkIndex < chunkTotal) {\n\n let nextSize = Math.min((chunkIndex + 1) * this.bufferSize, selectedFile.size);\n let fileData = selectedFile.slice(chunkIndex * this.bufferSize, nextSize);\n\n let multiRequest = new MultiUploadRequest;\n multiRequest.metadataId = uuid;\n multiRequest.rootId = this.rootId;\n multiRequest.uploadId = uploadId;\n multiRequest.index = chunkIndex;\n multiRequest.total = chunkTotal;\n multiRequest.size = fileData.size;\n\n let formData = new FormData();\n formData.append('multiRequest', JSON.stringify(multiRequest));\n formData.append('file', fileData);\n\n this.multiUpload(formData).subscribe(res => {\n if (res.error != 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 multiResultList.push(res.result);\n this.uploadedChunk[uuid]++;\n this.files[this.files.indexOf(fileInfo)].uploadProcess = Number.parseInt((this.uploadedChunk[uuid] / this.fileTotalChunk[uuid] * 100).toFixed(0));\n if (this.uploadedChunk[uuid] == this.fileTotalChunk[uuid]) {\n if (multiResultList.length == this.fileTotalChunk[uuid]) {\n\n let completeMultiUploadRequest: CompleteMultiUploadRequest = new CompleteMultiUploadRequest;\n completeMultiUploadRequest.metadataId = uuid;\n completeMultiUploadRequest.partList = multiResultList;\n completeMultiUploadRequest.rootId = this.rootId;\n completeMultiUploadRequest.uploadId = uploadId;\n completeMultiUploadRequest.size = fileInfo.fileSize;\n if (this.haveExtensionProperty)\n completeMultiUploadRequest.exPropertyName = this.defaultPropertyName;\n this.completeMultiUpload(completeMultiUploadRequest).subscribe(res => {\n if (res.status != 200) {\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.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 //åå°å¼æ¥æ¼æ¥ææ¡£\n } else {\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 = this.localepipe.transform('mismatchChunkSize');\n }\n\n }\n }\n })\n\n chunkIndex = chunkIndex + 1;\n }\n }\n\n\n\n })\n\n } else {\n let entity = new GspFormStreamEntity;\n entity.formId = this.formId;\n entity.metadataId = uuid;\n entity.mode = OperatingModes.Temp;\n entity.rootId = this.rootId;\n entity.size = selectedFile.size;\n entity.fileName = fileName;\n if (this.haveExtensionProperty)\n entity.exPropertyName = this.defaultPropertyName;\n\n let formData = new FormData();\n formData.append('uploadEntity', JSON.stringify(entity));\n formData.append('file', selectedFile);\n\n\n let intervalId;\n\n this.uploadSingleFile(formData).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.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 clearInterval(intervalId);\n })\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(this.uploadFileInfoList.findIndex(item => item.fileName === fileInfo.name), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.findIndex(item => item.fileName === fileInfo.name), 1);\n this.uploadedFileTotal--;\n }\n\n intervalId = setInterval(() => {\n this.getUploadProcess(entity.metadataId).subscribe(res => {\n if (res.error != null)\n this.files[this.files.indexOf(fileInfo)].uploadProcess = 10;\n else {\n if (res < 10)\n res = 10;\n if (res > 90)\n res = 90;\n this.files[this.files.indexOf(fileInfo)].uploadProcess = res;\n }\n })\n }, 200);\n }\n\n }\n\n getUploadProcess(metadataId: string): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/upload/process?metadataid=\" + metadataId;\n\n return this.httpclient.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n uploadSingleFile(formdata: FormData): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/single\";\n const baseUrl = BasePathService.convertPath(url);\n return this.httpclient.post(baseUrl, formdata).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n uploadSliceFile(formdata: FormData): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/slice\";\n const baseUrl = BasePathService.convertPath(url);\n return this.httpclient.post(baseUrl, formdata).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n initMultiUpload(request: InitMultiUploadRequest): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/multi/init\";\n const baseUrl = BasePathService.convertPath(url);\n return this.httpclient.post(baseUrl, request).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n multiUpload(formdata: FormData): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/multi/upload\";\n const baseUrl = BasePathService.convertPath(url);\n return this.httpclient.post(baseUrl, formdata).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n completeMultiUpload(request: CompleteMultiUploadRequest): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc/multi/complete\";\n const baseUrl = BasePathService.convertPath(url);\n return this.httpclient.post(baseUrl, request).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n\n selectAllFile() {\n\n if (!this.fileAllSelected) {\n this.files.forEach(element => {\n\n element.selectd = true;\n });\n this.fileAllSelected = true;\n this.selectedFileCount = this.files.length;\n\n } else {\n this.files.forEach(element => {\n\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\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\n switch (docType) {\n case DocType.Word: {\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/word.png\");\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Pdf: {\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/pdf.png\");\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Excel: {\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/excel.png\");\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Txt: {\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/txt.png\");\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Zip: {\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/zip.png\");\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Powerpoint: {\n fileInfo.source = this.createBaseUrl(\"/platform/runtime/dfs/images/ppt.png\");\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Other: {\n fileInfo.source = this.createBaseUrl(\"/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 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 imgUrl = sanitizer.bypassSecurityTrustResourceUrl(imgUrl);\n }\n fileInfo.source = imgUrl;\n fileInfo.style = { \"max-width\": \"120px\", \"max-height\": \"118px\" }\n this.files.push(fileInfo);\n\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(this.uploadFileInfoList.findIndex(item => item.fileName === fileInfo.name), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.findIndex(item => item.fileName === fileInfo.name), 1);\n this.uploadedFileTotal--;\n }\n }\n }\n\n }\n\n }\n\n listToString(strList: string[]) {\n const result = strList.filter(item => item.trim() !== '');\n let name: string = \"\";\n for (let i = 0; i < result.length; i++) {\n name += result[i] + (i === result.length - 1 ? \"\" : \",\");\n }\n return name;\n }\n\n securityChange($event: any, file: FileInfo) {\n file.securityInfo = $event.selections[0];\n let uploadFile = this.uploadFileInfoList.filter(x => x.metadataId === file.id)[0];\n uploadFile.securityInfo = $event.selections[0];\n }\n\n\n exStorageFileList: ExStorageFileInfo[] = [];\n\n typeChange($event: any, file: FileInfo) {\n file.extensionName = $event.selections[0].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.uploadFileInfoList.length != this.files.filter(x => x.isUploading || x.uploadResult).length) {\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\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 createBaseUrl(oldUrl: string) {\n const baseUrl = BasePathService.convertPath(oldUrl)\n return baseUrl;\n }\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { BasePathService } from '@farris/rtf';\n\n\n@Injectable()\nexport class DownloadService {\n\n constructor() { }\n\n getDownloadUrl(metadataId: string, rootId: string) {\n const url = \"/api/runtime/dfs/v1.0/doc/filecontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n const baseUrl = BasePathService.convertPath(url);\n return baseUrl;\n }\n\n\n getStreamDownloadUrl(metadataId: string, rootId: string) {\n const url = \"/api/runtime/dfs/v1.0/formdoc/stream?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n const baseUrl = BasePathService.convertPath(url);\n return baseUrl;\n }\n\n getMultipleDownloadUrl(metadataIdList: string, rootId: string) {\n let list: string[] = JSON.parse(metadataIdList);\n const url = \"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId));\n const baseUrl = BasePathService.convertPath(url);\n return baseUrl;\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 const url = \"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId)) + \"&zipName=\" + encodeURIComponent(zipName);\n const baseUrl = BasePathService.convertPath(url);\n return baseUrl;\n\n }\n\n getHistoryDownloadUrl(metadataId: string, rootId: string, version: string) {\n //let list:string[]=JSON.parse(metadataIdList);\n const url = \"/api/runtime/dfs/v1.0/doc/historycontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&version=\" + version + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n const baseUrl = BasePathService.convertPath(url);\n return baseUrl;\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 { FarrisRTFModule } from '@farris/rtf';\nimport { FileUploadComponent } from './file-upload/file-upload.component';\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 { FarrisFormsModule } from '@farris/ui-forms'\nimport { DownloadService } from './download.service';\nimport { LocalLangPipe } from '../local.pipe';\nimport { CacheService, HttpService, LanguageService, SessionService } from '@ecp-caf/caf-common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { DatalistModule } from '@farris/ui-datalist';\n\n\n\n@NgModule({\n declarations: [FileUploadComponent, LocalLangPipe],\n imports: [\n CommonModule,\n FarrisRTFModule,\n NotifyModule,\n MessagerModule.forRoot(),\n LoadingModule.forRoot(),\n ProgressModule,\n FormsModule,\n FarrisFormsModule,\n DatalistModule,\n ComboListModule,\n HttpClientModule\n ],\n exports: [FileUploadComponent],\n entryComponents: [FileUploadComponent],\n providers: [UploadService, DownloadService, LanguageService, HttpService, CacheService, SessionService,\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';\nimport { FileUploadComponent } from './upload/file-upload/file-upload.component';\nimport { BsModalService, BsModalRef } from '@farris/ui-modal';\nimport { UploadFileInfo } from './upload/entity/uploadfileinfo';\nimport { Observable, of } from 'rxjs';\nimport { UploadLimit } from './upload/entity/uploadlimit';\nimport { LocalLangPipe } from './local.pipe';\n\n\n@Injectable()\nexport class UploadDialogService {\n\n localeid: string;\n localpipe: LocalLangPipe;\n constructor(private modalService: BsModalService, private componentFactoryResolver: ComponentFactoryResolver, private injector: Injector) {\n if (this.injector) {\n this.modalService = this.injector.get(BsModalService);\n this.localeid = localStorage.getItem(\"languageCode\") || this.injector.get(LOCALE_ID);\n this.localpipe = new LocalLangPipe(this.localeid);\n }\n }\n\n dlg: BsModalRef;\n\n fileInfoList: UploadFileInfo[] = [];\n\n showDialog(formId: string, rootId: string) {\n let flag = 0;\n return new Promise(resolve => {\n var viewerFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\n var viewerRef = viewerFactory.create(this.injector);\n\n viewerRef.instance.rootId = rootId;\n viewerRef.instance.formId = formId;\n\n this.dlg = this.modalService.show(viewerRef, {\n title: this.localpipe.transform('uploadFile'),\n width: 950, height: 580,\n buttons: [\n {\n text: this.localpipe.transform('save'), cls: 'k-button k-button-icontext k-primary', handle: () => {\n this.dlg.content.upload().subscribe(\n res => {\n if (res) {\n resolve(res);\n flag = 1;\n this.dlg.close();\n }\n }\n );\n }\n },\n {\n text: this.localpipe.transform('close'), cls: 'k-button k-button-icontext', handle: () => {\n this.dlg.close();\n }\n }\n ],\n\n showButtons: true,\n showMaxButton: false,\n beforeClose: (): Observable<boolean> => {\n if (flag == 0)\n this.dlg.content.cancel();\n return of(true);\n }\n });\n })\n }\n\n uploadFile(formId: string, rootId: string, oldIdList: string[] = []) {\n return this.uploadFileWithLimit(formId, rootId, null, oldIdList);\n }\n\n\n uploadFileWithLimit(formId: string, rootId: string, limit: UploadLimit, oldIdList: string[] = []) {\n let flag = 0;\n return new Promise(resolve => {\n var uploadFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\n var uploadRef = uploadFactory.create(this.injector);\n if (limit != null) {\n uploadRef.instance.fileCount = limit.fileCount;\n uploadRef.instance.securityInfo = limit.securityInfo;\n uploadRef.instance.fileNameLength = limit.fileNameLength;\n if (limit.fileType != null && limit.fileType != \"\")\n uploadRef.instance.fileType = limit.fileType\n }\n\n uploadRef.instance.rootId = rootId;\n uploadRef.instance.formId = formId;\n uploadRef.instance.oldIdList = oldIdList;\n\n this.dlg = this.modalService.show(uploadRef, {\n title: this.localpipe.transform('uploadFile'),\n width: 950, height: 580,\n buttons: [\n {\n\n text: this.localpipe.transform('save'), cls: 'k-button k-button-icontext k-primary', handle: () => {\n this.dlg.content.upload().subscribe(\n res => {\n if (res) {\n resolve(res);\n flag = 1;\n this.dlg.close();\n }\n }\n );\n }\n },\n {\n text: this.localpipe.transform('close'), cls: 'k-button k-button-icontext', handle: () => {\n this.dlg.close();\n }\n }\n ],\n\n showButtons: true,\n showMaxButton: false,\n beforeClose: (): Observable<boolean> => {\n if (flag == 0)\n this.dlg.content.cancel();\n return of(true);\n }\n });\n })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FarrisDialogModule } from '@farris/ui-dialog';\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 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 \"./gspdocsecuritybaseinfo\";\n\nexport class UploadLimit {\n public fileType: string = \"*\";\n public fileCount: number = 0;\n public securityInfo: GspDocSecurityBaseInfo = null;\n public fileNameLength: number = 0;\n}","import { GspFormDocInfo } from './gspformdocinfo';\nimport { OperatingModes } from './operatingmodes';\n\nexport class GspFormUploadListEntity {\n public formId: string;\n public docInfoList: GspFormDocInfo[];\n public mode: OperatingModes;\n public rootId: string;\n}","import { GspDocMetaProperty } from './gspdocmetaproperty';\n\nexport class GspFormDocInfo {\n public metadataId: string;\n public fileName: string;\n public fileContent: string;\n public index: number;\n public total: number;\n public size: number;\n public exPropertyName: string;\n public extProperty: GspDocMetaProperty;\n}","export class GspDocMetaProperty{\n public extProperties1:string;\n public extProperties2:string;\n public extProperties3:string;\n public extProperties4:string;\n public extProperties5:string;\n}","import { OperatingModes } from './operatingmodes';\nimport { GspFormDocInfo } from './gspformdocinfo';\n\nexport class GspFormUploadEntity{\n public formId: string;\n public docInfo: GspFormDocInfo;\n public mode: OperatingModes;\n public rootId: string;\n\n} ","import { SecurityEntity } from \"./securityentity\";\n\nexport class FileInfo {\n public id: string;\n public name: string;\n public type: string;\n public source: any;\n public picListDisplayName: string;\n public queueListDisplayName: string;\n //public content: string;\n public size: string;\n public fileSize: number;\n public hasUploaded: boolean;\n public mouseOn: boolean;\n public selectd: boolean;\n public isUploading: boolean;\n public uploadResult: boolean;\n public uploadProcess: number;\n public errorMessage: string;\n public extensionDropListId:number;\n public extensionName: string;\n public securityDropListId:number;\n public securityInfo:SecurityEntity;\n public style:any;\n}","export class GspDocSecurityBaseInfo {\n public securityId: string;\n public securityLevel: number;\n public name: string;\n}","export class SecurityEntity {\n public id: string;\n public securityId: string;\n public securityLevel: number;\n public name: string;\n}"]}
|