@gsp-svc/formdoc-upload 0.1.20 → 0.1.24
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 +32 -4
- 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 +2 -2
- package/esm2015/lib/upload/download.service.js +2 -2
- package/esm2015/lib/upload/file-upload/file-upload.component.js +7 -4
- package/esm2015/public-api.js +6 -1
- package/esm5/gsp-svc-formdoc-upload.js +2 -2
- package/esm5/lib/upload/download.service.js +2 -2
- package/esm5/lib/upload/file-upload/file-upload.component.js +7 -4
- package/esm5/public-api.js +6 -1
- package/fesm2015/gsp-svc-formdoc-upload.js +22 -5
- package/fesm2015/gsp-svc-formdoc-upload.js.map +1 -1
- package/fesm5/gsp-svc-formdoc-upload.js +29 -6
- package/fesm5/gsp-svc-formdoc-upload.js.map +1 -1
- package/gsp-svc-formdoc-upload.metadata.json +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@farris/ui-dialog"),require("@angular/common"),require("rxjs/observable/of"),require("rxjs/operators"),require("angular2-uuid"),require("@angular/platform-browser"),require("@progress/kendo-angular-buttons"),require("@farris/ui-messager"),require("@farris/ui-loading"),require("@farris/ui-progress"),require("@angular/forms"),require("@farris/ui-combo-list"),require("@ecp-caf/caf-common"),require("@angular/core"),require("@farris/ui-modal"),require("rxjs"),require("@angular/common/http"),require("@farris/ui-notify")):"function"==typeof define&&define.amd?define("@gsp-svc/formdoc-upload",["exports","@farris/ui-dialog","@angular/common","rxjs/observable/of","rxjs/operators","angular2-uuid","@angular/platform-browser","@progress/kendo-angular-buttons","@farris/ui-messager","@farris/ui-loading","@farris/ui-progress","@angular/forms","@farris/ui-combo-list","@ecp-caf/caf-common","@angular/core","@farris/ui-modal","rxjs","@angular/common/http","@farris/ui-notify"],t):t((e["gsp-svc"]=e["gsp-svc"]||{},e["gsp-svc"]["formdoc-upload"]={}),e.uiDialog,e.ng.common,e.rxjs["observable/of"],e.rxjs.operators,e.angular2Uuid,e.ng.platformBrowser,e.kendoAngularButtons,e.uiMessager,e.uiLoading,e.uiProgress,e.ng.forms,e.uiComboList,e.cafCommon,e.ng.core,e.uiModal,e.rxjs,e.ng.common.http,e.uiNotify)}(this,function(e,t,i,n,o,a,s,l,r,d,p,u,c,f,h,g,m,x,y){"use strict";var v=function(){function e(){}return e.decorators=[{type:h.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=h.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),b=function(){function e(){}return e.prototype.ngOnInit=function(){},e.decorators=[{type:h.Component,args:[{selector:"lib-formdoc-upload",template:"\n <p>\n formdoc-upload works!\n </p>\n "}]}],e.ctorParameters=function(){return[]},e}(),I=function(){function e(){}return e.decorators=[{type:h.NgModule,args:[{declarations:[b],imports:[],exports:[b]}]}],e}(),F={Word:0,Excel:1,Powerpoint:2,Pdf:3,Txt:4,Image:5,Other:6};F[F.Word]="Word",F[F.Excel]="Excel",F[F.Powerpoint]="Powerpoint",F[F.Pdf]="Pdf",F[F.Txt]="Txt",F[F.Image]="Image",F[F.Other]="Other";var w=function z(){},S={Formal:0,Temp:1};S[S.Formal]="Formal",S[S.Temp]="Temp";var L=function j(){},k=function W(){},C=function G(){},N=function(){function e(e){this.http=e}return e.prototype.uploadList=function(e,t){return e.rootId=t,"/api/runtime/dfs/v1.0/formdoc/list",this.http.post("/api/runtime/dfs/v1.0/formdoc/list",e).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.commit=function(e,t){var i=new k;return i.metadataIdList=e,i.rootId=t,"/api/runtime/dfs/v1.0/formdoc/commit",this.http.post("/api/runtime/dfs/v1.0/formdoc/commit",i).pipe()},e.prototype.cancel=function(e,t){var i=new k;return i.metadataIdList=e,i.rootId=t,"/api/runtime/dfs/v1.0/formdoc/cancel",this.http.put("/api/runtime/dfs/v1.0/formdoc/cancel",i).pipe()},e.prototype.removeList=function(e,t){var i=new L;return i.metadataIdList=e,i.mode=S.Temp,i.rootId=t,this.http["delete"]("/api/runtime/dfs/v1.0/formdoc/list",i).pipe()},e.prototype.getFile=function(e,t){var i;return i=""==t?"/api/runtime/dfs/v1.0/formdoc/file/"+e:"/api/runtime/dfs/v1.0/formdoc/file/"+e+"/"+t,this.http.get(i).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.uploadFile=function(e){return this.http.post("/api/runtime/dfs/v1.0/formdoc",e).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.getStorageExtensionInfo=function(){return this.http.get("/api/runtime/dfs/v1.0/storagestrategy/extension").pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.changeStorageInstance=function(e,t){var i=new C;return i.fileInfoList=e,i.rootId=t,this.http.post("/api/runtime/dfs/v1.0/formdoc/changeinstance",i).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.getUploadedFileInfoList=function(e,t){var i="/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist?formid="+e+"&rootid="+t;return this.http.get(i).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.getRootSetting=function(e){var t="/api/runtime/dfs/v1.0/rootsetting/"+e;return this.http.get(t).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[{type:f.HttpService}]},e}(),M=function H(){},T=function J(){},U=function $(){},P=function(){function e(e,t,i,n){this.msgService=e,this.uploadService=t,this.loadService=i,this.injector=n,this.files=[],this.metadataIdList=[],this.uploadFileInfoList=[],this.errFileList=[],this.errTypeList=[],this.nullFileList=[],this.showType=0,this.mouseOn=!1,this.bufferSize=1048576,this.selectedFileCount=0,this.uploadIconAddress="/platform/runtime/dfs/images/upload.svg",this.uploadLittleIconAddress="/platform/runtime/dfs/images/uploadIcon.svg",this.hasSelectedFile=!1,this.fileAllSelected=!1,this.uploadProcess={width:"0%"},this.fileTotalChunk={},this.requestArray=new Array,this.requestBodyArray=new Array,this.uploadedChunk={},this.uploadedProcess={},this.defaultPropertyName="",this.propertiesNames=[],this.queueListStyle={width:"480px"},this.dropListValue="",this.uploadedFileTotal=0,this.haveExtensionProperty=!1,this.uploadedFileInfoList=[],this.oldUploadedFileList=[],this.sameNameAllowed=!0,this.fileType="*",this.fileCount=0,this.oldIdList=[],this.exStorageFileList=[]}return e.prototype.ngOnInit=function(){var i=this;this.uploadService.getStorageExtensionInfo().subscribe(function(e){if(null!=e&&null==e.error){i.storageExtension=e,i.defaultPropertyName=i.storageExtension.defaultPropertyName,i.propertiesNames.push({id:"0",name:i.storageExtension.defaultPropertyName});var t=0;i.storageExtension.extensionPropertyNameList.forEach(function(e){i.propertiesNames.push({id:(++t).toString(),name:e})}),i.queueListStyle.width="380px",i.haveExtensionProperty=!0}}),this.uploadService.getRootSetting(this.rootId).subscribe(function(e){null!=e&&null==e.error&&(i.sameNameAllowed=e.sameNameAllowed,i.sameNameAllowed||i.uploadService.getUploadedFileInfoList(i.formId,i.rootId).subscribe(function(e){null!=e&&null==e.error&&(i.uploadedFileInfoList=e,i.oldUploadedFileList=JSON.parse(JSON.stringify(e)))}))}),null!=this.oldIdList&&0<this.oldIdList.length&&this.uploadService.removeList(this.oldIdList,this.rootId).subscribe()},e.prototype.fileSelected=function(e){var r=this;if(this.hasSelectedFile=!0,this.selectedFiles=document.querySelector("#file"),0<this.fileCount&&this.selectedFiles.files.length+this.files.length>this.fileCount){var t=this.selectedFiles.files.length+this.files.length;this.msgService.warning("已选择"+t+"个文件,超过系统设置的数量限制"+this.fileCount+"个,请重新选择上传文件。")}else{for(var i=function(e){var o=n.selectedFiles.files[e],l=a.UUID.UUID();if(!n.sameNameAllowed&&null!=n.uploadedFileInfoList.find(function(e){return e.fileName==o.name})){var s=n.msgService.show("warning","已上传过同名文件: "+o.name,{initialState:{buttons:[{text:"重命名",cls:"btn btn-secondary",handle:function(){for(var t,e=o.name,i=!0,n=1;i;)t=e.substring(0,e.lastIndexOf("."))+"("+n+")"+e.substring(e.lastIndexOf(".")),null!=r.uploadedFileInfoList.find(function(e){return e.fileName==t})?n++:i=!1;r.uploadFile(l,o,t),s.close()}},{text:"替换",cls:"btn btn-secondary",handle:function(){l=r.uploadedFileInfoList.find(function(e){return e.fileName==o.name}).metadataId,r.uploadFile(l,o,o.name),r.uploadedFileTotal--,r.oldUploadedFileList.find(function(e){return e.fileName==o.name})&&(r.uploadedFileTotal++,r.uploadedFileInfoList.splice(r.uploadedFileInfoList.indexOf(r.uploadedFileInfoList.filter(function(e){return e.fileName==o.name})[0]),1)),s.close()}},{text:"取消",cls:"btn btn-secondary",handle:function(){s.close()}}]}});return"continue"}if(0==o.size)return n.nullFileList.push(o.name),"continue";n.uploadFile(l,o,o.name)},n=this,o=0;o<this.selectedFiles.files.length;o++)i(o);if(0<this.errFileList.length){var l=this.listToString(this.errFileList);this.msgService.warning("已上传同名文件: "+l+"请重新选择上传文件。"),this.errFileList=[]}if(0<this.nullFileList.length){var s=this.listToString(this.nullFileList);s=s.substring(0,s.length-1),this.msgService.warning("文件: "+s+" 大小为0,请重新选择上传文件。"),this.nullFileList=[]}this.files=this.files.slice(),this.fileAllSelected=!1,e.target.value=""}},e.prototype.showErrorMessage=function(e){this.msgService.error("上传附件失败。"+e.errorMessage)},e.prototype.uploadFile=function(s,r,a){var d,p=this;d={id:s,name:a,type:r.type,source:"",size:this.getFileSize(r.size),fileSize:r.size,picListDisplayName:this.getPicListDisplayName(a),queueListDisplayName:this.getQueueDisplayName(a),hasUploaded:!1,mouseOn:!1,selectd:!1,isUploading:!0,uploadResult:!1,uploadProcess:0,errorMessage:"",extensionDropListId:0,extensionName:""},null!=this.storageExtension&&(d.extensionName=this.defaultPropertyName);var u=Math.ceil(r.size/this.bufferSize),c=0;this.fileTotalChunk[s]=u;var f=new M;f.metadataId=s,f.fileName=d.name,f.fileSize=d.size;for(var e=function(){var t=new T;t.formId=h.formId,t.mode=S.Temp,t.rootId=h.rootId;var i=new w;i.fileName=a,i.metadataId=s,i.total=u,h.uploadedChunk[i.metadataId]=0;var e=Math.min((c+1)*h.bufferSize,r.size),n=r.slice(c*h.bufferSize,e),o=new FileReader;o.readAsBinaryString(n);var l=c;o.onload=function(){i.fileContent=btoa(o.result.toString()),i.index=l,p.haveExtensionProperty&&(i.exPropertyName=p.defaultPropertyName),t.docInfo=i;var e=t;p.requestBodyArray.push(e),p.uploadService.uploadFile(e).subscribe(function(e){null!=e?(p.files[p.files.indexOf(d)].uploadResult=!1,p.files[p.files.indexOf(d)].isUploading=!1,p.files[p.files.indexOf(d)].errorMessage=e.error.Message):(p.uploadedChunk[i.metadataId]++,p.files[p.files.indexOf(d)].uploadProcess=Number.parseInt((p.uploadedChunk[i.metadataId]/p.fileTotalChunk[i.metadataId]*100).toFixed(0)),p.uploadedChunk[i.metadataId]==p.fileTotalChunk[i.metadataId]&&(p.files[p.files.indexOf(d)].uploadResult=!0,p.files[p.files.indexOf(d)].isUploading=!1,p.uploadFileInfoList=p.uploadFileInfoList.concat(f),p.uploadedFileInfoList=p.uploadedFileInfoList.concat(f),p.uploadedFileTotal++))})},c+=1},h=this;c<u;)e();var t=r.type;t.includes("image")?this.addDocInfo(r,d,F.Image):t.includes("word")?this.addDocInfo(r,d,F.Word):t.includes("pdf")?this.addDocInfo(r,d,F.Pdf):t.includes("plain")?this.addDocInfo(r,d,F.Txt):t.includes("sheet")||t.includes("excel")?this.addDocInfo(r,d,F.Excel):t.includes("powerpoint")||t.includes("presentation")?this.addDocInfo(r,d,F.Powerpoint):this.addDocInfo(r,d,F.Other);var i=-1;this.files.forEach(function(e){e.name==d.name&&-1==i&&(i=p.files.indexOf(e))}),-1!=i&&i!=this.files.length-1&&(this.files.splice(i,1),this.uploadFileInfoList.splice(i,1),this.uploadedFileInfoList.splice(i,1),this.uploadedFileTotal--)},e.prototype.selectAllFile=function(){this.fileAllSelected?(this.files.forEach(function(e){e.selectd=!1}),this.fileAllSelected=!1,this.selectedFileCount=0):(this.files.forEach(function(e){e.selectd=!0}),this.fileAllSelected=!0,this.selectedFileCount=this.files.length)},e.prototype.checkoutSelectFile=function(e){e.selectd=!e.selectd,e.selectd?this.selectedFileCount++:this.selectedFileCount--,this.selectedFileCount==this.files.length?this.fileAllSelected=!0:this.fileAllSelected=!1},e.prototype.listDeleteFile=function(t){if(t.selectd&&this.selectedFileCount--,this.files.splice(this.files.indexOf(t),1),t.uploadResult){var e=[];e.push(t.id),this.uploadService.cancel(e,this.rootId).subscribe(),this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),this.uploadedFileTotal--}0==this.selectedFileCount&&(this.fileAllSelected=!1)},e.prototype.listMultipleDeleteFile=function(){var e=this,t=[];this.files.forEach(function(e){document.getElementById(e.name).checked&&t.push(e)});var i=[];t.forEach(function(t){i.push(t.id),e.files.splice(e.files.indexOf(t),1),t.uploadResult&&(e.uploadFileInfoList.splice(e.uploadFileInfoList.indexOf(e.uploadFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),e.uploadedFileInfoList.splice(e.uploadedFileInfoList.indexOf(e.uploadedFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),e.uploadedFileTotal--)}),this.uploadService.cancel(i,this.rootId).subscribe();var n=document.getElementById("allCheckBox");null!=n&&(n.checked=!1),this.selectedFileCount=0,this.fileAllSelected=!1},e.prototype.getPicListDisplayName=function(e){return e.length<=10?e:e.substring(0,2)+"…"+e.substring(e.lastIndexOf(".")-2)},e.prototype.getQueueDisplayName=function(e){return e},e.prototype.addDocInfo=function(e,n,t){var o=this;switch(t){case F.Word:n.source="/platform/runtime/dfs/images/word.png",this.files.push(n);break;case F.Pdf:n.source="/platform/runtime/dfs/images/pdf.png",this.files.push(n);break;case F.Excel:n.source="/platform/runtime/dfs/images/excel.png",this.files.push(n);break;case F.Txt:n.source="/platform/runtime/dfs/images/txt.png",this.files.push(n);break;case F.Powerpoint:n.source="/platform/runtime/dfs/images/ppt.png",this.files.push(n);break;case F.Other:n.source="/platform/runtime/dfs/images/file.png",this.files.push(n);break;case F.Image:var l=new FileReader;l.readAsDataURL(e),l.onload=function(e){var t=l.result;if(null!=o.injector){var i=o.injector.get(s.DomSanitizer);n.source=i.bypassSecurityTrustResourceUrl(t)}else n.source=t;o.files.push(n)}}},e.prototype.listToString=function(e){for(var t="",i=0;i<e.length;i++)t+=e[i]+",";return t},e.prototype.typeChange=function(e,t){t.extensionName=e.data.name;var i=new U;t.extensionName==this.storageExtension.defaultPropertyName?0<this.exStorageFileList.filter(function(e){return e.metadataId==t.id}).length&&this.exStorageFileList.splice(this.exStorageFileList.findIndex(function(e){return e.metadataId==t.id}),1):0<this.exStorageFileList.filter(function(e){return e.metadataId==t.id}).length?(i=this.exStorageFileList.filter(function(e){return e.metadataId==t.id})[0]).exPropertyName=t.extensionName:(i.metadataId=t.id,i.exPropertyName=t.extensionName,this.exStorageFileList.push(i))},e.prototype.upload=function(){var t=this;if(this.uploadedFileTotal!=this.files.filter(function(e){return e.isUploading||e.uploadResult}).length)return this.msgService.warning("等一下,文档正在上传。"),m.of(!1);if(null==this.storageExtension)return m.of(this.uploadFileInfoList);if(0==this.exStorageFileList.length)return m.of(this.uploadFileInfoList);var i=this.loadService.show({message:"正在将文件保存到"+this.storageExtension.extensionName});return this.uploadService.changeStorageInstance(this.exStorageFileList,this.rootId).pipe(o.map(function(e){return null!=e&&t.msgService.error("保存到"+t.storageExtension.extensionName+"失败,上传文件自动保存到"+t.storageExtension.defaultPropertyName+"存储。"+e.error.Message),i.close(),t.uploadFileInfoList}))},e.prototype.cancel=function(){var t=this;0!=this.uploadFileInfoList.length&&(this.uploadFileInfoList.forEach(function(e){t.metadataIdList.push(e.metadataId)}),this.uploadService.cancel(this.metadataIdList,this.rootId).subscribe())},e.prototype.getUploadFileInfoList=function(){return this.uploadFileInfoList},e.prototype["delete"]=function(t){this.files.splice(this.files.indexOf(t),1),t.uploadResult&&this.uploadedFileTotal--,0<this.exStorageFileList.filter(function(e){return e.metadataId==t.id}).length&&this.exStorageFileList.splice(this.exStorageFileList.findIndex(function(e){return e.metadataId==t.id}),1)},e.prototype.getFileSize=function(e){return e<102400?(e/1024).toFixed(1)+"K":e<1048576?(e/1024).toFixed(0)+"K":e<104857600?(e/1024/1024).toFixed(1)+"M":e<1073741824?(e/1024/1024).toFixed(0)+"M":(e/1024/1024/1024).toFixed(1)+"G"},e.prototype.showByGroup=function(){this.showType=0},e.prototype.showByList=function(){this.showType=1,0!=this.selectedFileCount&&this.selectedFileCount==this.files.length&&(this.fileAllSelected=!0)},e.prototype.mouseOver=function(e){e.mouseOn=!0},e.prototype.mouseOut=function(e){e.mouseOn=!1},e.decorators=[{type:h.Component,args:[{selector:"app-file-upload",template:'<div *ngIf="hasSelectedFile">\n\n <div class="farris-header" style="height: 50px; width: 100%">\n <div class="btn btn-secondary upload_button">\n <img [src]="uploadLittleIconAddress">\n <span>上传文件 </span>\n <input type="file" (change)="fileSelected($event)" id="file" multiple="multiple" title="" [accept]="fileType">\n </div>\n\n\n <button *ngIf="showType==0 && !fileAllSelected && files.length >0 " style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="selectAllFile()">全选</button>\n <button *ngIf="showType==0 && fileAllSelected && files.length >0 " style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="selectAllFile()">全不选</button>\n <button *ngIf="showType==0 && selectedFileCount>0" style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="listMultipleDeleteFile()">删除</button>\n\n <button *ngIf="showType==1 && selectedFileCount>0" style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="listMultipleDeleteFile()">删除</button>\n\n <kendo-buttongroup [selection]="\'single\'" class="button_group_upload " style="background-color: #ffffff; color: #388FFF;border: 1px solid #ddd;" look="flat">\n <button kendoButton [selected]="true" [toggleable]="true" [imageUrl]="\'/platform/runtime/dfs/images/piclist.png\'" (click)="showByGroup()"></button>\n <button kendoButton [toggleable]="true" [imageUrl]="\'/platform/runtime/dfs/images/queuelist.png\'" (click)="showByList()"></button>\n </kendo-buttongroup>\n\n\n </div>\n\n \x3c!-- <div class="progress" style="height: 12px;">\n <div class="progress-bar" role="progressbar" [ngStyle]="uploadProcess"></div>\n </div> --\x3e\n\n <div class="pic_list" *ngIf="showType==0">\n <ul *ngFor="let file of files">\n <li (mouseenter)="mouseOver(file)" (mouseleave)="mouseOut(file)">\n <div *ngIf="file.isUploading">\n <farris-progress [type]="\'circle\'" [percent]="file.uploadProcess" [strokeLinecap]="\'square\'" [status]="\'active\'"></farris-progress>\n </div>\n\n <table *ngIf="!file.uploadResult && !file.isUploading" style="margin: 0 auto; border: 1px solid #ddd; width: 135px; height: 160px;">\n <tr style="margin: 0 auto ; height: 80px;">\n <td style="text-align: center"><span class="f-icon f-icon-error"></span></td>\n </tr>\n <tr style="margin: 0 auto ; height: 30px;">\n <td style="text-align: center"> 上传失败 </td>\n </tr>\n <tr>\n <td style="text-align: center"><button style="margin: 0 auto ; height: 20px; " class="btn-link btn ng-star-inserted" (click)="showErrorMessage(file)">详情</button></td>\n </tr>\n </table>\n <div *ngIf="!file.isUploading && file.uploadResult" style="border: 1px solid #ddd;">\n <img [src]=\'file.source\'>\n <div *ngIf="haveExtensionProperty" style="width: 133px; height: 25px; background-color: white; position: absolute;bottom: 0; ">\n\n <div style="width: 100px;height: 25px;position:absolute;margin: 0 17px;">\n <farris-combo-list [(ngModel)]="file.extensionDropListId" [data]="propertiesNames" [idField]="\'id\'" [textField]="\'name\'" (selectChange)="typeChange($event,file)" [enableClear]="false">\n \x3c!-- <ng-template #itemTemp let-item>\n <div class="combo-list">\n <span [class]="\'combo-list-circle combo-list-\'+item.state"></span>\n <span class="combo-list-label">{{item.label}}</span>\n </div>\n </ng-template> --\x3e\n </farris-combo-list>\n </div>\n </div>\n </div>\n <table *ngIf="!file.isUploading">\n <tr style="height: 20px">\n <td style="width: 15px; vertical-align: middle; text-align: center">\n \x3c!-- <input type="checkbox" [id]="file.name" (click)="checkoutSelectFile(file.name)"> --\x3e\n <div class="farris-input-wrap" style="height: 20px" (click)="checkoutSelectFile(file)">\n <div class="custom-control custom-checkbox" style="margin: 4px 0 0;height: 20px;">\n <input class="custom-control-input" type="checkbox" [id]="file.name" [(ngModel)]="file.selectd">\n <label class="custom-control-label" style="padding: 0 0 10px 0; position: relative; top: -8px;"></label>\n </div>\n </div>\n </td>\n <td style="width: 120px; vertical-align: middle; text-align: center" [title]="file.name">\n {{file.picListDisplayName}}</td>\n </tr>\n </table>\n \x3c!-- <span>{{file.picListDisplayName}}</span> --\x3e\n \x3c!-- <p class="filename">{{file.picListDisplayName}}</p> --\x3e\n <button *ngIf="!file.isUploading && file.mouseOn" style="position: absolute; top: 0; right: 0px; width: 24px; height: 24px;" kendoButton [icon]="\'delete\'" (click)="listDeleteFile(file)"></button>\n \x3c!-- <button *ngIf="file.hasUploaded" class="k-primary" kendoButton [icon]="\'check\'" [disabled]="true"></button> --\x3e\n </li>\n </ul>\n </div>\n\n <div class="queue_list" *ngIf="showType==1">\n <table>\n <tr style="height: 50px; table-layout:fixed;">\n <th style="width: 40px; vertical-align: middle; text-align: center">\n \x3c!-- <input type="checkbox" id="allCheckBox" (click)="selectAllFile()"> --\x3e\n <div class="farris-input-wrap" (click)="selectAllFile()">\n <div class="custom-control custom-checkbox" style="margin: 4px 0 0">\n <input class="custom-control-input" type="checkbox" id="allCheckBox" [(ngModel)]="fileAllSelected">\n <label class="custom-control-label" style="padding: 0"></label>\n </div>\n </div>\n </th>\n <th style="vertical-align: middle" [ngStyle]="queueListStyle">文件名</th>\n <th style="width: 100px; vertical-align: middle">大小</th>\n <th style="width: 170px; vertical-align: middle; text-align: center">状态</th>\n <th *ngIf="haveExtensionProperty" style="width: 100px; vertical-align: middle; text-align: center">\n {{storageExtension.extensionName}}\n </th>\n <th style="width: 140px; vertical-align: middle; text-align: center">操作</th>\n </tr>\n </table>\n <div style="height: 370px; overflow: auto;">\n <table>\n <tr *ngFor="let file of files" style="height: 40px">\n <td colspan="5" *ngIf="file.isUploading">\n \x3c!-- <div style="width:100%; display: table-cell; vertical-align: middle; text-align: center; "> --\x3e\n <div style="width: 500px;margin:0 auto">\n <farris-progress [percent]="file.uploadProcess" [status]="\'active\'">\n </farris-progress>\n </div>\n\n </td>\n <td *ngIf="!file.isUploading" style=" width: 40px; vertical-align: middle; text-align: center">\n \x3c!-- <input type="checkbox" [id]="file.name" (click)="checkoutSelectFile(file.name)"> --\x3e\n <div class="farris-input-wrap" (click)="checkoutSelectFile(file)">\n <div class="custom-control custom-checkbox" style="margin: 4px 0 0">\n <input class="custom-control-input" type="checkbox" [id]="file.name" [(ngModel)]="file.selectd">\n <label class="custom-control-label" style="padding: 0"></label>\n </div>\n </div>\n </td>\n <td *ngIf="!file.isUploading" style="vertical-align: middle" [ngStyle]="queueListStyle">\n {{file.queueListDisplayName}}</td>\n <td *ngIf="!file.isUploading" style="width: 100px; vertical-align: middle">{{file.size}}</td>\n <td *ngIf="!file.isUploading" style="text-align: center; width: 170px; vertical-align: middle;">\n <table *ngIf="!file.uploadResult" style="margin: 0 auto">\n <tr style="margin: 0 auto">\n <td><span class="f-icon f-icon-error"></span></td>\n <td> 上传失败 </td>\n <td><button style="height: 24px" class="btn-link btn ng-star-inserted" (click)="showErrorMessage(file)">详情</button></td>\n </tr>\n </table>\n \x3c!-- <span *ngIf="!file.uploadResult"><span class="f-icon f-icon-error"></span> 上传失败 <button\n class="btn-link btn ng-star-inserted" (click)="showErrorMessage(file)">详情</button></span> --\x3e\n <span *ngIf="file.uploadResult"><span class="f-icon f-icon-success"></span> 上传成功</span>\n </td>\n <td *ngIf="!file.isUploading&&haveExtensionProperty" style="text-align: center; width: 100px; vertical-align: middle;">\n <farris-combo-list [(ngModel)]="file.extensionDropListId" [data]="propertiesNames" [idField]="\'id\'" [textField]="\'name\'" (selectChange)="typeChange($event,file)" [enableClear]="false">\n \x3c!-- <ng-template #itemTemp let-item>\n <div class="combo-list">\n <span [class]="\'combo-list-circle combo-list-\'+item.state"></span>\n <span class="combo-list-label">{{item.label}}</span>\n </div>\n </ng-template> --\x3e\n </farris-combo-list>\n </td>\n <td *ngIf="!file.isUploading" style="text-align: center; width: 140px; vertical-align: middle;">\n \x3c!-- <button *ngIf="file.uploadResult" class="btn-link btn ng-star-inserted" (click)="retryUploadFile(file.name)">重试</button> --\x3e\n <button class="btn-link btn ng-star-inserted" style="margin: 0 auto" (click)="listDeleteFile(file)">删除</button>\n </td>\n\n </tr>\n </table>\n </div>\n </div>\n</div>\n\n<div *ngIf="!hasSelectedFile" class=\'home_page\'>\n <img [src]="uploadIconAddress">\n <div>\n <span class="btn btn-primary btn-lg">上传文件 </span>\n <input type="file" (change)="fileSelected($event)" id="file" multiple="multiple" title="" [accept]="fileType">\n </div>\n</div>',styles:[".home_page{text-align:center}.home_page img{position:absolute;top:180px;margin-left:-35px;width:70px;height:56px}.home_page div{position:absolute;left:50%;top:255px;margin-left:-75px;width:150px;height:32px;overflow:hidden}.home_page div span{width:150px;height:32px;position:absolute;z-index:10;left:0}.home_page div input{position:absolute;left:0;top:0;opacity:0;filter:'alpha(opacity=0)';z-index:11}.upload_button{width:110px;height:32px;overflow:hidden}.upload_button span{position:relative;right:-4px;top:4px;width:56px;height:22px;font-size:14px}.upload_button input{height:32px;width:110px;position:absolute;left:22px;top:12px;opacity:0;filter:'alpha(opacity=0)';overflow:hidden}.upload_button img{position:relative;left:-6px;top:3px;width:14px;height:14px}.button_group_upload{position:absolute;right:18px;top:12px;height:26px;width:53px}.button_group_upload button{height:26px;width:26px}.fileinput-button{position:absolute;right:60px;bottom:40px;overflow:hidden;width:24px;height:24px;border-radius:12px;transform:scale(2.5);-ms-transform:scale(2.5);-moz-transform:scale(2.5);-webkit-transform:scale(2.5);-o-transform:scale(2.5);color:#0686fd}.fileinput-button input{position:absolute;left:0;top:0;opacity:0;filter:'alpha(opacity=0)'}.pic-droplist{height:24px;color:#e0e1e2;background-color:#e0e1e2}.pic-droplist input-group{display:table-cell;width:100px;text-align:center;border:0}.pic-droplist input-group div{border:0}.pic-droplist input-group div div,.pic-droplist input-group div input{background-color:#e0e1e2}.pic_list{padding:0;height:420px;overflow-y:auto;overflow-x:hidden}.pic_list ul{padding:0;list-style:none;width:100%;margin:20px 0 0 20px}.pic_list ul li{height:180px;width:135px;margin:8px 0 8px 12px;float:left;overflow:hidden;align-items:center;position:relative}.pic_list ul li div{width:135px;height:160px;margin:auto;display:table-cell;vertical-align:middle;text-align:center;position:relative}.pic_list ul li div img{max-width:120px;max-height:118px;align-items:center;margin:auto;vertical-align:middle;text-align:center}.pic_list ul li span.filename{width:100px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue_list{display:block;height:420px;overflow-y:auto}.file_list{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto}.file_list li{height:50px;line-height:35px;font-size:16px;position:relative}.file_list li button{float:right;top:6px;right:10px;width:20px}.file_list li p.title{padding:0 0 0 6px;margin:0 210px 0 0}.file_list li p.size{position:absolute;width:100px;top:0;right:100px}"]}]}],e.ctorParameters=function(){return[{type:r.MessagerService},{type:N},{type:d.LoadingService},{type:h.Injector}]},e.propDecorators={formId:[{type:h.Input}],rootId:[{type:h.Input}],fileType:[{type:h.Input}],fileCount:[{type:h.Input}],oldIdList:[{type:h.Input}],opCell:[{type:h.ViewChild,args:["opCell"]}]},e}(),D=function(){function e(){}return e.prototype.getDownloadUrl=function(e,t){return"/api/runtime/dfs/v1.0/doc/filecontent?metadataid="+e+"&rootid="+t+"&token="+this.getToken(this.mergeString(e,t))},e.prototype.getMultipleDownloadUrl=function(e,t){var i=JSON.parse(e);return"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist="+e+"&rootid="+t+"&token="+this.getToken(this.mergeString(i[0],t))},e.prototype.getMultipleDownloadUrlWithName=function(e,t,i){var n=JSON.parse(e);return null!=i&&""!=i||(i="unifile.zip"),i.endsWith(".zip")||(i+=".zip"),"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist="+e+"&rootid="+t+"&token="+this.getToken(this.mergeString(n[0],t))+"&zipName="+i},e.prototype.getHistoryDownloadUrl=function(e,t,i){return"/api/runtime/dfs/v1.0/doc/historycontent?metadataid="+e+"&rootid="+t+"&version="+i+"&token="+this.getToken(this.mergeString(e,t))},e.prototype.mergeString=function(e,t){var i=e.length<t.length?e.length:t.length,n="",o=0;for(o=0;o<i;o++)n+=e.substring(o,o+1),n+=t.substring(o,o+1);return n+=e.length<t.length?t.substring(o):e.substring(o)},e.prototype.getToken=function(e){var t=[1,2,3];24<e.length&&(e=e.substring(0,24));var i=Math.floor(e.length/3),n=e.substring(0,i),o=e.substring(i,2*i),l=e.substring(2*i,3*i),s=[],r=Math.ceil(3*Math.random());s.push(t[r-1]),t.splice(r-1,1),r=Math.ceil(2*Math.random()),s.push(t[r-1]),t.splice(r-1,1),s.push(t[0]);var a=Math.round((new Date).getTime()/1e3)+"";return a.substring(0,5)+"times"+s[0]+s[1]+s[2]+this.switchStr(n,o,l,s[0])+this.switchStr(n,o,l,s[1])+this.switchStr(n,o,l,s[2])+"times"+a.substring(5)},e.prototype.switchStr=function(e,t,i,n){switch(n){case 1:return e;case 2:return t;case 3:return i}},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[]},e}(),E=function(){function e(){}return e.decorators=[{type:h.NgModule,args:[{declarations:[P],imports:[i.CommonModule,l.ButtonsModule,y.NotifyModule,r.MessagerModule.forRoot(),d.LoadingModule.forRoot(),p.ProgressModule,u.FormsModule,c.ComboListModule],exports:[P],entryComponents:[P],providers:[N,D]}]}],e}(),O=E,A=function(){function e(e){this.modalService=e,this.metadataIdList=[]}return e.prototype.ngOnInit=function(){},e.prototype.showDialog=function(){var e=this;this.dlg=this.modalService.show(P,{title:"选择文件",width:800,height:500,buttons:[{text:"上传",cls:"k-button k-button-icontext k-primary",iconCls:"k-icon k-i-check",handle:function(){e.fileUpload.upload(),e.dlg.close()}},{text:"关闭",cls:"k-button k-button-icontext",iconCls:"k-icon k-i-close",handle:function(){e.fileUpload.cancel(),e.dlg.close()}}],showButtons:!0}),this.dlg.content.formId=this.formId},e.decorators=[{type:h.Component,args:[{selector:"app-uploaddialog",template:"\n",styles:[""]}]}],e.ctorParameters=function(){return[{type:g.BsModalService}]},e.propDecorators={formId:[{type:h.Input}],fileUpload:[{type:h.ViewChild,args:[P]}]},e}(),_=function(){function e(e,t,i){this.modalService=e,this.componentFactoryResolver=t,this.injector=i,this.fileInfoList=[]}return e.prototype.showDialog=function(i,n){var o=this,l=0;return new Promise(function(t){var e=o.componentFactoryResolver.resolveComponentFactory(P).create(o.injector);e.instance.rootId=n,e.instance.formId=i,o.dlg=o.modalService.show(e,{title:"上传文件",width:950,height:570,buttons:[{text:"保存",cls:"k-button k-button-icontext k-primary",handle:function(){o.dlg.content.upload().subscribe(function(e){e&&(t(e),l=1,o.dlg.close())})}},{text:"关闭",cls:"k-button k-button-icontext",handle:function(){o.dlg.close()}}],showButtons:!0,showMaxButton:!1,beforeClose:function(){return 0==l&&o.dlg.content.cancel(),m.of(!0)}})})},e.prototype.uploadFile=function(e,t,i){return void 0===i&&(i=[]),this.uploadFileWithLimit(e,t,null,i)},e.prototype.uploadFileWithLimit=function(i,n,o,l){var s=this;void 0===l&&(l=[]);var r=0;return new Promise(function(t){var e=s.componentFactoryResolver.resolveComponentFactory(P).create(s.injector);null!=o&&(e.instance.fileCount=o.fileCount,null!=o.fileType&&""!=o.fileType&&(e.instance.fileType=o.fileType)),e.instance.rootId=n,e.instance.formId=i,e.instance.oldIdList=l,s.dlg=s.modalService.show(e,{title:"上传文件",width:950,height:570,buttons:[{text:"保存",cls:"k-button k-button-icontext k-primary",handle:function(){s.dlg.content.upload().subscribe(function(e){e&&(t(e),r=1,s.dlg.close())})}},{text:"关闭",cls:"k-button k-button-icontext",handle:function(){s.dlg.close()}}],showButtons:!0,showMaxButton:!1,beforeClose:function(){return 0==r&&s.dlg.content.cancel(),m.of(!0)}})})},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[{type:g.BsModalService},{type:h.ComponentFactoryResolver},{type:h.Injector}]},e}(),q=function(){function e(){}return e.decorators=[{type:h.NgModule,args:[{declarations:[A],imports:[i.CommonModule,t.FarrisDialogModule,r.MessagerModule.forRoot(),E,l.ButtonsModule,y.NotifyModule.forRoot(),x.HttpClientModule],exports:[A,P],entryComponents:[A,P],providers:[g.BsModalService,f.HttpService,_,N]}]}],e}(),B=function V(){this.fileType="*",this.fileCount=0},R=function K(){};e.FormdocUploadService=v,e.FormdocUploadComponent=b,e.FormdocUploadModule=I,e.UploadDialogMoudle=q,e.UploadDialogComponent=A,e.UploadDialogService=_,e.UploadService=N,e.DownloadService=D,e.FileUploadComponent=P,e.UploadFileInfo=M,e.UploadModule=E,e.ɵa=O,e.UploadLimit=B,e.GspFormDocOperateEntity=k,e.GspFormRemoveListEntity=L,e.GspFormUploadListEntity=R,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@farris/ui-dialog"),require("@angular/common"),require("rxjs/observable/of"),require("rxjs/operators"),require("angular2-uuid"),require("@angular/platform-browser"),require("@progress/kendo-angular-buttons"),require("@farris/ui-messager"),require("@farris/ui-loading"),require("@farris/ui-progress"),require("@angular/forms"),require("@farris/ui-combo-list"),require("@ecp-caf/caf-common"),require("@angular/core"),require("@farris/ui-modal"),require("rxjs"),require("@angular/common/http"),require("@farris/ui-notify")):"function"==typeof define&&define.amd?define("@gsp-svc/formdoc-upload",["exports","@farris/ui-dialog","@angular/common","rxjs/observable/of","rxjs/operators","angular2-uuid","@angular/platform-browser","@progress/kendo-angular-buttons","@farris/ui-messager","@farris/ui-loading","@farris/ui-progress","@angular/forms","@farris/ui-combo-list","@ecp-caf/caf-common","@angular/core","@farris/ui-modal","rxjs","@angular/common/http","@farris/ui-notify"],t):t((e["gsp-svc"]=e["gsp-svc"]||{},e["gsp-svc"]["formdoc-upload"]={}),e.uiDialog,e.ng.common,e.rxjs["observable/of"],e.rxjs.operators,e.angular2Uuid,e.ng.platformBrowser,e.kendoAngularButtons,e.uiMessager,e.uiLoading,e.uiProgress,e.ng.forms,e.uiComboList,e.cafCommon,e.ng.core,e.uiModal,e.rxjs,e.ng.common.http,e.uiNotify)}(this,function(e,t,i,n,o,a,s,l,r,d,p,c,u,f,h,g,m,x,y){"use strict";var v=function(){function e(){}return e.decorators=[{type:h.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[]},e.ngInjectableDef=h.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(),b=function(){function e(){}return e.prototype.ngOnInit=function(){},e.decorators=[{type:h.Component,args:[{selector:"lib-formdoc-upload",template:"\n <p>\n formdoc-upload works!\n </p>\n "}]}],e.ctorParameters=function(){return[]},e}(),I=function(){function e(){}return e.decorators=[{type:h.NgModule,args:[{declarations:[b],imports:[],exports:[b]}]}],e}(),F={Word:0,Excel:1,Powerpoint:2,Pdf:3,Txt:4,Image:5,Other:6};F[F.Word]="Word",F[F.Excel]="Excel",F[F.Powerpoint]="Powerpoint",F[F.Pdf]="Pdf",F[F.Txt]="Txt",F[F.Image]="Image",F[F.Other]="Other";var w=function G(){},S={Formal:0,Temp:1};S[S.Formal]="Formal",S[S.Temp]="Temp";var k=function W(){},L=function H(){},C=function J(){},N=function(){function e(e){this.http=e}return e.prototype.uploadList=function(e,t){return e.rootId=t,"/api/runtime/dfs/v1.0/formdoc/list",this.http.post("/api/runtime/dfs/v1.0/formdoc/list",e).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.commit=function(e,t){var i=new L;return i.metadataIdList=e,i.rootId=t,"/api/runtime/dfs/v1.0/formdoc/commit",this.http.post("/api/runtime/dfs/v1.0/formdoc/commit",i).pipe()},e.prototype.cancel=function(e,t){var i=new L;return i.metadataIdList=e,i.rootId=t,"/api/runtime/dfs/v1.0/formdoc/cancel",this.http.put("/api/runtime/dfs/v1.0/formdoc/cancel",i).pipe()},e.prototype.removeList=function(e,t){var i=new k;return i.metadataIdList=e,i.mode=S.Temp,i.rootId=t,this.http["delete"]("/api/runtime/dfs/v1.0/formdoc/list",i).pipe()},e.prototype.getFile=function(e,t){var i;return i=""==t?"/api/runtime/dfs/v1.0/formdoc/file/"+e:"/api/runtime/dfs/v1.0/formdoc/file/"+e+"/"+t,this.http.get(i).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.uploadFile=function(e){return this.http.post("/api/runtime/dfs/v1.0/formdoc",e).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.getStorageExtensionInfo=function(){return this.http.get("/api/runtime/dfs/v1.0/storagestrategy/extension").pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.changeStorageInstance=function(e,t){var i=new C;return i.fileInfoList=e,i.rootId=t,this.http.post("/api/runtime/dfs/v1.0/formdoc/changeinstance",i).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.getUploadedFileInfoList=function(e,t){var i="/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist?formid="+e+"&rootid="+t;return this.http.get(i).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.prototype.getRootSetting=function(e){var t="/api/runtime/dfs/v1.0/rootsetting/"+e;return this.http.get(t).pipe(o.tap(function(e){}),o.catchError(function(e){return n.of(e)}))},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[{type:f.HttpService}]},e}(),M=function $(){},U=function V(){},T=function K(){},D=function(){function e(e,t,i,n){this.msgService=e,this.uploadService=t,this.loadService=i,this.injector=n,this.files=[],this.metadataIdList=[],this.uploadFileInfoList=[],this.errFileList=[],this.errTypeList=[],this.nullFileList=[],this.showType=0,this.mouseOn=!1,this.bufferSize=1048576,this.selectedFileCount=0,this.uploadIconAddress="/platform/runtime/dfs/images/upload.svg",this.uploadLittleIconAddress="/platform/runtime/dfs/images/uploadIcon.svg",this.hasSelectedFile=!1,this.fileAllSelected=!1,this.uploadProcess={width:"0%"},this.fileTotalChunk={},this.requestArray=new Array,this.requestBodyArray=new Array,this.uploadedChunk={},this.uploadedProcess={},this.defaultPropertyName="",this.propertiesNames=[],this.queueListStyle={width:"480px"},this.dropListValue="",this.uploadedFileTotal=0,this.haveExtensionProperty=!1,this.uploadedFileInfoList=[],this.oldUploadedFileList=[],this.sameNameAllowed=!0,this.fileType="*",this.fileCount=0,this.oldIdList=[],this.exStorageFileList=[]}return e.prototype.ngOnInit=function(){var i=this;this.uploadService.getStorageExtensionInfo().subscribe(function(e){if(null!=e&&null==e.error){i.storageExtension=e,i.defaultPropertyName=i.storageExtension.defaultPropertyName,i.propertiesNames.push({id:"0",name:i.storageExtension.defaultPropertyName});var t=0;i.storageExtension.extensionPropertyNameList.forEach(function(e){i.propertiesNames.push({id:(++t).toString(),name:e})}),i.queueListStyle.width="380px",i.haveExtensionProperty=!0}}),this.uploadService.getRootSetting(this.rootId).subscribe(function(e){null!=e&&null==e.error&&(i.sameNameAllowed=e.sameNameAllowed,i.sameNameAllowed||i.uploadService.getUploadedFileInfoList(i.formId,i.rootId).subscribe(function(e){null!=e&&null==e.error&&(i.uploadedFileInfoList=e,i.oldUploadedFileList=JSON.parse(JSON.stringify(e)))}))}),null!=this.oldIdList&&0<this.oldIdList.length&&this.uploadService.cancel(this.oldIdList,this.rootId).subscribe()},e.prototype.fileSelected=function(e){var r=this;if(this.hasSelectedFile=!0,this.selectedFiles=document.querySelector("#file"),0<this.fileCount&&this.selectedFiles.files.length+this.files.length>this.fileCount){var t=this.selectedFiles.files.length+this.files.length;this.msgService.warning("已选择"+t+"个文件,超过系统设置的数量限制"+this.fileCount+"个,请重新选择上传文件。")}else{for(var i=function(e){var o=n.selectedFiles.files[e],l=a.UUID.UUID();if(!n.sameNameAllowed&&null!=n.uploadedFileInfoList.find(function(e){return e.fileName==o.name})){var s=n.msgService.show("warning","已上传过同名文件: "+o.name,{initialState:{buttons:[{text:"重命名",cls:"btn btn-secondary",handle:function(){for(var t,e=o.name,i=!0,n=1;i;)t=e.substring(0,e.lastIndexOf("."))+"("+n+")"+e.substring(e.lastIndexOf(".")),null!=r.uploadedFileInfoList.find(function(e){return e.fileName==t})?n++:i=!1;r.uploadFile(l,o,t),s.close()}},{text:"替换",cls:"btn btn-secondary",handle:function(){l=r.uploadedFileInfoList.find(function(e){return e.fileName==o.name}).metadataId,r.uploadFile(l,o,o.name),r.uploadedFileTotal--,r.oldUploadedFileList.find(function(e){return e.fileName==o.name})&&(r.uploadedFileTotal++,r.uploadedFileInfoList.splice(r.uploadedFileInfoList.indexOf(r.uploadedFileInfoList.filter(function(e){return e.fileName==o.name})[0]),1)),s.close()}},{text:"取消",cls:"btn btn-secondary",handle:function(){s.close()}}]}});return"continue"}if(0==o.size)return n.nullFileList.push(o.name),"continue";n.uploadFile(l,o,o.name)},n=this,o=0;o<this.selectedFiles.files.length;o++)i(o);if(0<this.errFileList.length){var l=this.listToString(this.errFileList);this.msgService.warning("已上传同名文件: "+l+"请重新选择上传文件。"),this.errFileList=[]}if(0<this.nullFileList.length){var s=this.listToString(this.nullFileList);s=s.substring(0,s.length-1),this.msgService.warning("文件: "+s+" 大小为0,请重新选择上传文件。"),this.nullFileList=[]}this.files=this.files.slice(),this.fileAllSelected=!1,e.target.value=""}},e.prototype.showErrorMessage=function(e){this.msgService.error("上传附件失败。"+e.errorMessage)},e.prototype.uploadFile=function(s,r,a){var d,p=this;d={id:s,name:a,type:r.type,source:"",size:this.getFileSize(r.size),fileSize:r.size,picListDisplayName:this.getPicListDisplayName(a),queueListDisplayName:this.getQueueDisplayName(a),hasUploaded:!1,mouseOn:!1,selectd:!1,isUploading:!0,uploadResult:!1,uploadProcess:0,errorMessage:"",extensionDropListId:0,extensionName:""},null!=this.storageExtension&&(d.extensionName=this.defaultPropertyName);var c=Math.ceil(r.size/this.bufferSize),u=0;this.fileTotalChunk[s]=c;var f=new M;f.metadataId=s,f.fileName=d.name,f.fileSize=d.size;for(var e=function(){var t=new U;t.formId=h.formId,t.mode=S.Temp,t.rootId=h.rootId;var i=new w;i.fileName=a,i.metadataId=s,i.total=c,h.uploadedChunk[i.metadataId]=0;var e=Math.min((u+1)*h.bufferSize,r.size),n=r.slice(u*h.bufferSize,e),o=new FileReader;o.readAsBinaryString(n);var l=u;o.onload=function(){i.fileContent=btoa(o.result.toString()),i.index=l,p.haveExtensionProperty&&(i.exPropertyName=p.defaultPropertyName),t.docInfo=i;var e=t;p.requestBodyArray.push(e),p.uploadService.uploadFile(e).subscribe(function(e){null!=e?(p.files[p.files.indexOf(d)].uploadResult=!1,p.files[p.files.indexOf(d)].isUploading=!1,p.files[p.files.indexOf(d)].errorMessage=e.error.Message):(p.uploadedChunk[i.metadataId]++,p.files[p.files.indexOf(d)].uploadProcess=Number.parseInt((p.uploadedChunk[i.metadataId]/p.fileTotalChunk[i.metadataId]*100).toFixed(0)),p.uploadedChunk[i.metadataId]==p.fileTotalChunk[i.metadataId]&&(p.files[p.files.indexOf(d)].uploadResult=!0,p.files[p.files.indexOf(d)].isUploading=!1,p.uploadFileInfoList=p.uploadFileInfoList.concat(f),p.uploadedFileInfoList=p.uploadedFileInfoList.concat(f),p.uploadedFileTotal++))})},u+=1},h=this;u<c;)e();var t=r.type;t.includes("tiff")?this.addDocInfo(r,d,F.Other):t.includes("image")?this.addDocInfo(r,d,F.Image):t.includes("word")?this.addDocInfo(r,d,F.Word):t.includes("pdf")?this.addDocInfo(r,d,F.Pdf):t.includes("plain")?this.addDocInfo(r,d,F.Txt):t.includes("sheet")||t.includes("excel")?this.addDocInfo(r,d,F.Excel):t.includes("powerpoint")||t.includes("presentation")?this.addDocInfo(r,d,F.Powerpoint):this.addDocInfo(r,d,F.Other);var i=-1;this.files.forEach(function(e){e.name==d.name&&-1==i&&(i=p.files.indexOf(e))}),-1!=i&&i!=this.files.length-1&&(this.files.splice(i,1),this.uploadFileInfoList.splice(i,1),this.uploadedFileInfoList.splice(i,1),this.uploadedFileTotal--)},e.prototype.selectAllFile=function(){this.fileAllSelected?(this.files.forEach(function(e){e.selectd=!1}),this.fileAllSelected=!1,this.selectedFileCount=0):(this.files.forEach(function(e){e.selectd=!0}),this.fileAllSelected=!0,this.selectedFileCount=this.files.length)},e.prototype.checkoutSelectFile=function(e){e.selectd=!e.selectd,e.selectd?this.selectedFileCount++:this.selectedFileCount--,this.selectedFileCount==this.files.length?this.fileAllSelected=!0:this.fileAllSelected=!1},e.prototype.listDeleteFile=function(t){if(t.selectd&&this.selectedFileCount--,this.files.splice(this.files.indexOf(t),1),t.uploadResult){var e=[];e.push(t.id),this.uploadService.cancel(e,this.rootId).subscribe(),this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),this.uploadedFileTotal--}0==this.selectedFileCount&&(this.fileAllSelected=!1)},e.prototype.listMultipleDeleteFile=function(){var e=this,t=[];this.files.forEach(function(e){document.getElementById(e.name).checked&&t.push(e)});var i=[];t.forEach(function(t){i.push(t.id),e.files.splice(e.files.indexOf(t),1),t.uploadResult&&(e.uploadFileInfoList.splice(e.uploadFileInfoList.indexOf(e.uploadFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),e.uploadedFileInfoList.splice(e.uploadedFileInfoList.indexOf(e.uploadedFileInfoList.filter(function(e){return e.fileName==t.name})[0]),1),e.uploadedFileTotal--)}),this.uploadService.cancel(i,this.rootId).subscribe();var n=document.getElementById("allCheckBox");null!=n&&(n.checked=!1),this.selectedFileCount=0,this.fileAllSelected=!1},e.prototype.getPicListDisplayName=function(e){return e.length<=10?e:e.substring(0,2)+"…"+e.substring(e.lastIndexOf(".")-2)},e.prototype.getQueueDisplayName=function(e){return e},e.prototype.addDocInfo=function(e,n,t){var o=this;switch(t){case F.Word:n.source="/platform/runtime/dfs/images/word.png",this.files.push(n);break;case F.Pdf:n.source="/platform/runtime/dfs/images/pdf.png",this.files.push(n);break;case F.Excel:n.source="/platform/runtime/dfs/images/excel.png",this.files.push(n);break;case F.Txt:n.source="/platform/runtime/dfs/images/txt.png",this.files.push(n);break;case F.Powerpoint:n.source="/platform/runtime/dfs/images/ppt.png",this.files.push(n);break;case F.Other:n.source="/platform/runtime/dfs/images/file.png",this.files.push(n);break;case F.Image:var l=new FileReader;l.readAsDataURL(e),l.onload=function(e){var t=l.result;if(null!=o.injector){var i=o.injector.get(s.DomSanitizer);n.source=i.bypassSecurityTrustResourceUrl(t)}else n.source=t;o.files.push(n)}}},e.prototype.listToString=function(e){for(var t="",i=0;i<e.length;i++)t+=e[i]+",";return t},e.prototype.typeChange=function(e,t){t.extensionName=e.data.name;var i=new T;t.extensionName==this.storageExtension.defaultPropertyName?0<this.exStorageFileList.filter(function(e){return e.metadataId==t.id}).length&&this.exStorageFileList.splice(this.exStorageFileList.findIndex(function(e){return e.metadataId==t.id}),1):0<this.exStorageFileList.filter(function(e){return e.metadataId==t.id}).length?(i=this.exStorageFileList.filter(function(e){return e.metadataId==t.id})[0]).exPropertyName=t.extensionName:(i.metadataId=t.id,i.exPropertyName=t.extensionName,this.exStorageFileList.push(i))},e.prototype.upload=function(){var t=this;if(this.uploadedFileTotal!=this.files.filter(function(e){return e.isUploading||e.uploadResult}).length)return this.msgService.warning("等一下,文档正在上传。"),m.of(!1);if(null==this.storageExtension)return m.of(this.uploadFileInfoList);if(0==this.exStorageFileList.length)return m.of(this.uploadFileInfoList);var i=this.loadService.show({message:"正在将文件保存到"+this.storageExtension.extensionName});return this.uploadService.changeStorageInstance(this.exStorageFileList,this.rootId).pipe(o.map(function(e){return null!=e&&t.msgService.error("保存到"+t.storageExtension.extensionName+"失败,上传文件自动保存到"+t.storageExtension.defaultPropertyName+"存储。"+e.error.Message),i.close(),t.uploadFileInfoList}))},e.prototype.cancel=function(){var t=this;0!=this.uploadFileInfoList.length&&(this.uploadFileInfoList.forEach(function(e){t.metadataIdList.push(e.metadataId)}),this.uploadService.cancel(this.metadataIdList,this.rootId).subscribe())},e.prototype.getUploadFileInfoList=function(){return this.uploadFileInfoList},e.prototype["delete"]=function(t){this.files.splice(this.files.indexOf(t),1),t.uploadResult&&this.uploadedFileTotal--,0<this.exStorageFileList.filter(function(e){return e.metadataId==t.id}).length&&this.exStorageFileList.splice(this.exStorageFileList.findIndex(function(e){return e.metadataId==t.id}),1)},e.prototype.getFileSize=function(e){return e<102400?(e/1024).toFixed(1)+"K":e<1048576?(e/1024).toFixed(0)+"K":e<104857600?(e/1024/1024).toFixed(1)+"M":e<1073741824?(e/1024/1024).toFixed(0)+"M":(e/1024/1024/1024).toFixed(1)+"G"},e.prototype.showByGroup=function(){this.showType=0},e.prototype.showByList=function(){this.showType=1,0!=this.selectedFileCount&&this.selectedFileCount==this.files.length&&(this.fileAllSelected=!0)},e.prototype.mouseOver=function(e){e.mouseOn=!0},e.prototype.mouseOut=function(e){e.mouseOn=!1},e.decorators=[{type:h.Component,args:[{selector:"app-file-upload",template:'<div *ngIf="hasSelectedFile">\n\n <div class="farris-header" style="height: 50px; width: 100%">\n <div class="btn btn-secondary upload_button">\n <img [src]="uploadLittleIconAddress">\n <span>上传文件 </span>\n <input type="file" (change)="fileSelected($event)" id="file" multiple="multiple" title="" [accept]="fileType">\n </div>\n\n\n <button *ngIf="showType==0 && !fileAllSelected && files.length >0 " style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="selectAllFile()">全选</button>\n <button *ngIf="showType==0 && fileAllSelected && files.length >0 " style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="selectAllFile()">全不选</button>\n <button *ngIf="showType==0 && selectedFileCount>0" style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="listMultipleDeleteFile()">删除</button>\n\n <button *ngIf="showType==1 && selectedFileCount>0" style="padding-left: 20px" class="btn-link btn ng-star-inserted" (click)="listMultipleDeleteFile()">删除</button>\n\n <kendo-buttongroup [selection]="\'single\'" class="button_group_upload " style="background-color: #ffffff; color: #388FFF;border: 1px solid #ddd;" look="flat">\n <button kendoButton [selected]="true" [toggleable]="true" [imageUrl]="\'/platform/runtime/dfs/images/piclist.png\'" (click)="showByGroup()"></button>\n <button kendoButton [toggleable]="true" [imageUrl]="\'/platform/runtime/dfs/images/queuelist.png\'" (click)="showByList()"></button>\n </kendo-buttongroup>\n\n\n </div>\n\n \x3c!-- <div class="progress" style="height: 12px;">\n <div class="progress-bar" role="progressbar" [ngStyle]="uploadProcess"></div>\n </div> --\x3e\n\n <div class="pic_list" *ngIf="showType==0">\n <ul *ngFor="let file of files">\n <li (mouseenter)="mouseOver(file)" (mouseleave)="mouseOut(file)">\n <div *ngIf="file.isUploading">\n <farris-progress [type]="\'circle\'" [percent]="file.uploadProcess" [strokeLinecap]="\'square\'" [status]="\'active\'"></farris-progress>\n </div>\n\n <table *ngIf="!file.uploadResult && !file.isUploading" style="margin: 0 auto; border: 1px solid #ddd; width: 135px; height: 160px;">\n <tr style="margin: 0 auto ; height: 80px;">\n <td style="text-align: center"><span class="f-icon f-icon-error"></span></td>\n </tr>\n <tr style="margin: 0 auto ; height: 30px;">\n <td style="text-align: center"> 上传失败 </td>\n </tr>\n <tr>\n <td style="text-align: center"><button style="margin: 0 auto ; height: 20px; " class="btn-link btn ng-star-inserted" (click)="showErrorMessage(file)">详情</button></td>\n </tr>\n </table>\n <div *ngIf="!file.isUploading && file.uploadResult" style="border: 1px solid #ddd;">\n <img [src]=\'file.source\'>\n <div *ngIf="haveExtensionProperty" style="width: 133px; height: 25px; background-color: white; position: absolute;bottom: 0; ">\n\n <div style="width: 100px;height: 25px;position:absolute;margin: 0 17px;">\n <farris-combo-list [(ngModel)]="file.extensionDropListId" [data]="propertiesNames" [idField]="\'id\'" [textField]="\'name\'" (selectChange)="typeChange($event,file)" [enableClear]="false">\n \x3c!-- <ng-template #itemTemp let-item>\n <div class="combo-list">\n <span [class]="\'combo-list-circle combo-list-\'+item.state"></span>\n <span class="combo-list-label">{{item.label}}</span>\n </div>\n </ng-template> --\x3e\n </farris-combo-list>\n </div>\n </div>\n </div>\n <table *ngIf="!file.isUploading">\n <tr style="height: 20px">\n <td style="width: 15px; vertical-align: middle; text-align: center">\n \x3c!-- <input type="checkbox" [id]="file.name" (click)="checkoutSelectFile(file.name)"> --\x3e\n <div class="farris-input-wrap" style="height: 20px" (click)="checkoutSelectFile(file)">\n <div class="custom-control custom-checkbox" style="margin: 4px 0 0;height: 20px;">\n <input class="custom-control-input" type="checkbox" [id]="file.name" [(ngModel)]="file.selectd">\n <label class="custom-control-label" style="padding: 0 0 10px 0; position: relative; top: -8px;"></label>\n </div>\n </div>\n </td>\n <td style="width: 120px; vertical-align: middle; text-align: center" [title]="file.name">\n {{file.picListDisplayName}}</td>\n </tr>\n </table>\n \x3c!-- <span>{{file.picListDisplayName}}</span> --\x3e\n \x3c!-- <p class="filename">{{file.picListDisplayName}}</p> --\x3e\n <button *ngIf="!file.isUploading && file.mouseOn" style="position: absolute; top: 0; right: 0px; width: 24px; height: 24px;" kendoButton [icon]="\'delete\'" (click)="listDeleteFile(file)"></button>\n \x3c!-- <button *ngIf="file.hasUploaded" class="k-primary" kendoButton [icon]="\'check\'" [disabled]="true"></button> --\x3e\n </li>\n </ul>\n <br>\n </div>\n\n <div class="queue_list" *ngIf="showType==1">\n <table>\n <tr style="height: 50px; table-layout:fixed;">\n <th style="width: 40px; vertical-align: middle; text-align: center">\n \x3c!-- <input type="checkbox" id="allCheckBox" (click)="selectAllFile()"> --\x3e\n <div class="farris-input-wrap" (click)="selectAllFile()">\n <div class="custom-control custom-checkbox" style="margin: 4px 0 0">\n <input class="custom-control-input" type="checkbox" id="allCheckBox" [(ngModel)]="fileAllSelected">\n <label class="custom-control-label" style="padding: 0"></label>\n </div>\n </div>\n </th>\n <th style="vertical-align: middle" [ngStyle]="queueListStyle">文件名</th>\n <th style="width: 100px; vertical-align: middle">大小</th>\n <th style="width: 170px; vertical-align: middle; text-align: center">状态</th>\n <th *ngIf="haveExtensionProperty" style="width: 100px; vertical-align: middle; text-align: center">\n {{storageExtension.extensionName}}\n </th>\n <th style="width: 140px; vertical-align: middle; text-align: center">操作</th>\n </tr>\n </table>\n <div style="height: 370px; overflow: auto;">\n <table>\n <tr *ngFor="let file of files" style="height: 40px">\n <td colspan="5" *ngIf="file.isUploading">\n \x3c!-- <div style="width:100%; display: table-cell; vertical-align: middle; text-align: center; "> --\x3e\n <div style="width: 500px;margin:0 auto">\n <farris-progress [percent]="file.uploadProcess" [status]="\'active\'">\n </farris-progress>\n </div>\n\n </td>\n <td *ngIf="!file.isUploading" style=" width: 40px; vertical-align: middle; text-align: center">\n \x3c!-- <input type="checkbox" [id]="file.name" (click)="checkoutSelectFile(file.name)"> --\x3e\n <div class="farris-input-wrap" (click)="checkoutSelectFile(file)">\n <div class="custom-control custom-checkbox" style="margin: 4px 0 0">\n <input class="custom-control-input" type="checkbox" [id]="file.name" [(ngModel)]="file.selectd">\n <label class="custom-control-label" style="padding: 0"></label>\n </div>\n </div>\n </td>\n <td *ngIf="!file.isUploading" style="vertical-align: middle" [ngStyle]="queueListStyle">\n {{file.queueListDisplayName}}</td>\n <td *ngIf="!file.isUploading" style="width: 100px; vertical-align: middle">{{file.size}}</td>\n <td *ngIf="!file.isUploading" style="text-align: center; width: 170px; vertical-align: middle;">\n <table *ngIf="!file.uploadResult" style="margin: 0 auto">\n <tr style="margin: 0 auto">\n <td><span class="f-icon f-icon-error"></span></td>\n <td> 上传失败 </td>\n <td><button style="height: 24px" class="btn-link btn ng-star-inserted" (click)="showErrorMessage(file)">详情</button></td>\n </tr>\n </table>\n \x3c!-- <span *ngIf="!file.uploadResult"><span class="f-icon f-icon-error"></span> 上传失败 <button\n class="btn-link btn ng-star-inserted" (click)="showErrorMessage(file)">详情</button></span> --\x3e\n <span *ngIf="file.uploadResult"><span class="f-icon f-icon-success"></span> 上传成功</span>\n </td>\n <td *ngIf="!file.isUploading&&haveExtensionProperty" style="text-align: center; width: 100px; vertical-align: middle;">\n <farris-combo-list [(ngModel)]="file.extensionDropListId" [data]="propertiesNames" [idField]="\'id\'" [textField]="\'name\'" (selectChange)="typeChange($event,file)" [enableClear]="false">\n \x3c!-- <ng-template #itemTemp let-item>\n <div class="combo-list">\n <span [class]="\'combo-list-circle combo-list-\'+item.state"></span>\n <span class="combo-list-label">{{item.label}}</span>\n </div>\n </ng-template> --\x3e\n </farris-combo-list>\n </td>\n <td *ngIf="!file.isUploading" style="text-align: center; width: 140px; vertical-align: middle;">\n \x3c!-- <button *ngIf="file.uploadResult" class="btn-link btn ng-star-inserted" (click)="retryUploadFile(file.name)">重试</button> --\x3e\n <button class="btn-link btn ng-star-inserted" style="margin: 0 auto" (click)="listDeleteFile(file)">删除</button>\n </td>\n\n </tr>\n </table>\n </div>\n </div>\n</div>\n\n<div *ngIf="!hasSelectedFile" class=\'home_page\'>\n <img [src]="uploadIconAddress">\n <div>\n <span class="btn btn-primary btn-lg">上传文件 </span>\n <input type="file" (change)="fileSelected($event)" id="file" multiple="multiple" title="" [accept]="fileType">\n </div>\n</div>',styles:[".home_page{text-align:center}.home_page img{position:absolute;top:180px;margin-left:-35px;width:70px;height:56px}.home_page div{position:absolute;left:50%;top:255px;margin-left:-75px;width:150px;height:32px;overflow:hidden}.home_page div span{width:150px;height:32px;position:absolute;z-index:10;left:0}.home_page div input{position:absolute;left:0;top:0;opacity:0;filter:'alpha(opacity=0)';z-index:11}.upload_button{width:110px;height:32px;overflow:hidden}.upload_button span{position:relative;right:-4px;top:4px;width:56px;height:22px;font-size:14px}.upload_button input{height:32px;width:110px;position:absolute;left:22px;top:12px;opacity:0;filter:'alpha(opacity=0)';overflow:hidden}.upload_button img{position:relative;left:-6px;top:3px;width:14px;height:14px}.button_group_upload{position:absolute;right:18px;top:12px;height:26px;width:53px}.button_group_upload button{height:26px;width:26px}.fileinput-button{position:absolute;right:60px;bottom:40px;overflow:hidden;width:24px;height:24px;border-radius:12px;transform:scale(2.5);-ms-transform:scale(2.5);-moz-transform:scale(2.5);-webkit-transform:scale(2.5);-o-transform:scale(2.5);color:#0686fd}.fileinput-button input{position:absolute;left:0;top:0;opacity:0;filter:'alpha(opacity=0)'}.pic-droplist{height:24px;color:#e0e1e2;background-color:#e0e1e2}.pic-droplist input-group{display:table-cell;width:100px;text-align:center;border:0}.pic-droplist input-group div{border:0}.pic-droplist input-group div div,.pic-droplist input-group div input{background-color:#e0e1e2}.pic_list{padding:0;height:420px;overflow-y:auto;overflow-x:hidden}.pic_list ul{padding:0;list-style:none;width:100%;margin:20px 0 0 20px}.pic_list ul li{height:180px;width:135px;margin:8px 0 8px 12px;float:left;overflow:hidden;align-items:center;position:relative}.pic_list ul li div{width:135px;height:160px;margin:auto;display:table-cell;vertical-align:middle;text-align:center;position:relative}.pic_list ul li div img{max-width:120px;max-height:118px;align-items:center;margin:auto;vertical-align:middle;text-align:center}.pic_list ul li span.filename{width:100px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue_list{display:block;height:420px;overflow-y:auto}.file_list{list-style:none;margin:0;padding:0;overflow-x:hidden;overflow-y:auto}.file_list li{height:50px;line-height:35px;font-size:16px;position:relative}.file_list li button{float:right;top:6px;right:10px;width:20px}.file_list li p.title{padding:0 0 0 6px;margin:0 210px 0 0}.file_list li p.size{position:absolute;width:100px;top:0;right:100px}"]}]}],e.ctorParameters=function(){return[{type:r.MessagerService},{type:N},{type:d.LoadingService},{type:h.Injector}]},e.propDecorators={formId:[{type:h.Input}],rootId:[{type:h.Input}],fileType:[{type:h.Input}],fileCount:[{type:h.Input}],oldIdList:[{type:h.Input}],opCell:[{type:h.ViewChild,args:["opCell"]}]},e}(),P=function(){function e(){}return e.prototype.getDownloadUrl=function(e,t){return"/api/runtime/dfs/v1.0/doc/filecontent?metadataid="+e+"&rootid="+t+"&token="+this.getToken(this.mergeString(e,t))},e.prototype.getMultipleDownloadUrl=function(e,t){var i=JSON.parse(e);return"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist="+e+"&rootid="+t+"&token="+this.getToken(this.mergeString(i[0],t))},e.prototype.getMultipleDownloadUrlWithName=function(e,t,i){var n=JSON.parse(e);return null!=i&&""!=i||(i="unifile.zip"),i.endsWith(".zip")||(i+=".zip"),"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist="+e+"&rootid="+t+"&token="+this.getToken(this.mergeString(n[0],t))+"&zipName="+encodeURIComponent(i)},e.prototype.getHistoryDownloadUrl=function(e,t,i){return"/api/runtime/dfs/v1.0/doc/historycontent?metadataid="+e+"&rootid="+t+"&version="+i+"&token="+this.getToken(this.mergeString(e,t))},e.prototype.mergeString=function(e,t){var i=e.length<t.length?e.length:t.length,n="",o=0;for(o=0;o<i;o++)n+=e.substring(o,o+1),n+=t.substring(o,o+1);return n+=e.length<t.length?t.substring(o):e.substring(o)},e.prototype.getToken=function(e){var t=[1,2,3];24<e.length&&(e=e.substring(0,24));var i=Math.floor(e.length/3),n=e.substring(0,i),o=e.substring(i,2*i),l=e.substring(2*i,3*i),s=[],r=Math.ceil(3*Math.random());s.push(t[r-1]),t.splice(r-1,1),r=Math.ceil(2*Math.random()),s.push(t[r-1]),t.splice(r-1,1),s.push(t[0]);var a=Math.round((new Date).getTime()/1e3)+"";return a.substring(0,5)+"times"+s[0]+s[1]+s[2]+this.switchStr(n,o,l,s[0])+this.switchStr(n,o,l,s[1])+this.switchStr(n,o,l,s[2])+"times"+a.substring(5)},e.prototype.switchStr=function(e,t,i,n){switch(n){case 1:return e;case 2:return t;case 3:return i}},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[]},e}(),E=function(){function e(){}return e.decorators=[{type:h.NgModule,args:[{declarations:[D],imports:[i.CommonModule,l.ButtonsModule,y.NotifyModule,r.MessagerModule.forRoot(),d.LoadingModule.forRoot(),p.ProgressModule,c.FormsModule,u.ComboListModule],exports:[D],entryComponents:[D],providers:[N,P]}]}],e}(),O=E,A=function(){function e(e){this.modalService=e,this.metadataIdList=[]}return e.prototype.ngOnInit=function(){},e.prototype.showDialog=function(){var e=this;this.dlg=this.modalService.show(D,{title:"选择文件",width:800,height:500,buttons:[{text:"上传",cls:"k-button k-button-icontext k-primary",iconCls:"k-icon k-i-check",handle:function(){e.fileUpload.upload(),e.dlg.close()}},{text:"关闭",cls:"k-button k-button-icontext",iconCls:"k-icon k-i-close",handle:function(){e.fileUpload.cancel(),e.dlg.close()}}],showButtons:!0}),this.dlg.content.formId=this.formId},e.decorators=[{type:h.Component,args:[{selector:"app-uploaddialog",template:"\n",styles:[""]}]}],e.ctorParameters=function(){return[{type:g.BsModalService}]},e.propDecorators={formId:[{type:h.Input}],fileUpload:[{type:h.ViewChild,args:[D]}]},e}(),_=function(){function e(e,t,i){this.modalService=e,this.componentFactoryResolver=t,this.injector=i,this.fileInfoList=[]}return e.prototype.showDialog=function(i,n){var o=this,l=0;return new Promise(function(t){var e=o.componentFactoryResolver.resolveComponentFactory(D).create(o.injector);e.instance.rootId=n,e.instance.formId=i,o.dlg=o.modalService.show(e,{title:"上传文件",width:950,height:570,buttons:[{text:"保存",cls:"k-button k-button-icontext k-primary",handle:function(){o.dlg.content.upload().subscribe(function(e){e&&(t(e),l=1,o.dlg.close())})}},{text:"关闭",cls:"k-button k-button-icontext",handle:function(){o.dlg.close()}}],showButtons:!0,showMaxButton:!1,beforeClose:function(){return 0==l&&o.dlg.content.cancel(),m.of(!0)}})})},e.prototype.uploadFile=function(e,t,i){return void 0===i&&(i=[]),this.uploadFileWithLimit(e,t,null,i)},e.prototype.uploadFileWithLimit=function(i,n,o,l){var s=this;void 0===l&&(l=[]);var r=0;return new Promise(function(t){var e=s.componentFactoryResolver.resolveComponentFactory(D).create(s.injector);null!=o&&(e.instance.fileCount=o.fileCount,null!=o.fileType&&""!=o.fileType&&(e.instance.fileType=o.fileType)),e.instance.rootId=n,e.instance.formId=i,e.instance.oldIdList=l,s.dlg=s.modalService.show(e,{title:"上传文件",width:950,height:570,buttons:[{text:"保存",cls:"k-button k-button-icontext k-primary",handle:function(){s.dlg.content.upload().subscribe(function(e){e&&(t(e),r=1,s.dlg.close())})}},{text:"关闭",cls:"k-button k-button-icontext",handle:function(){s.dlg.close()}}],showButtons:!0,showMaxButton:!1,beforeClose:function(){return 0==r&&s.dlg.content.cancel(),m.of(!0)}})})},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[{type:g.BsModalService},{type:h.ComponentFactoryResolver},{type:h.Injector}]},e}(),q=function(){function e(){}return e.decorators=[{type:h.NgModule,args:[{declarations:[A],imports:[i.CommonModule,t.FarrisDialogModule,r.MessagerModule.forRoot(),E,l.ButtonsModule,y.NotifyModule.forRoot(),x.HttpClientModule],exports:[A,D],entryComponents:[A,D],providers:[g.BsModalService,f.HttpService,_,N]}]}],e}(),R=function Q(){this.fileType="*",this.fileCount=0},B=function X(){},z=function Y(){},j=function Z(){};e.FormdocUploadService=v,e.FormdocUploadComponent=b,e.FormdocUploadModule=I,e.UploadDialogMoudle=q,e.UploadDialogComponent=A,e.UploadDialogService=_,e.UploadService=N,e.DownloadService=P,e.FileUploadComponent=D,e.UploadFileInfo=M,e.UploadModule=E,e.ɵa=O,e.UploadLimit=R,e.GspFormDocOperateEntity=L,e.GspFormRemoveListEntity=k,e.GspFormUploadListEntity=B,e.GspFormDocInfo=w,e.GspDocMetaProperty=z,e.GspFormUploadEntity=U,e.FileInfo=j,e.OperatingModes=S,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=gsp-svc-formdoc-upload.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/doctype.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/operatingmodes.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformremovelistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocoperateentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/changeinstancerequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadfileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/extensionstoragefileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/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"],"names":["FormdocUploadService","Injectable","args","providedIn","FormdocUploadComponent","prototype","ngOnInit","Component","selector","template","FormdocUploadModule","NgModule","declarations","imports","exports","Word","Excel","Powerpoint","Pdf","Txt","Image","Other","GspFormDocInfo","Formal","Temp","GspFormRemoveListEntity","GspFormDocOperateEntity","ChangeInstanceRequest","UploadService","http","this","uploadList","docListInfo","rootId","post","pipe","tap","res","catchError","error","of","commit","metadataIdList","entity","cancel","put","removeList","idList","idListInfo","mode","OperatingModes","delete","getFile","metadataId","url","get","uploadFile","docInfo","getStorageExtensionInfo","changeStorageInstance","storageInfoList","request","fileInfoList","getUploadedFileInfoList","formId","getRootSetting","HttpService","UploadFileInfo","GspFormUploadEntity","ExStorageFileInfo","FileUploadComponent","msgService","uploadService","loadService","injector","files","uploadFileInfoList","errFileList","errTypeList","nullFileList","showType","mouseOn","bufferSize","selectedFileCount","uploadIconAddress","uploadLittleIconAddress","hasSelectedFile","fileAllSelected","uploadProcess","width","fileTotalChunk","requestArray","Array","requestBodyArray","uploadedChunk","uploadedProcess","defaultPropertyName","propertiesNames","queueListStyle","dropListValue","uploadedFileTotal","haveExtensionProperty","uploadedFileInfoList","oldUploadedFileList","sameNameAllowed","fileType","fileCount","oldIdList","exStorageFileList","_this","subscribe","storageExtension","push","id","name","i_1","extensionPropertyNameList","forEach","element","toString","JSON","parse","stringify","length","fileSelected","$event","selectedFiles","document","querySelector","selectedNum","warning","i","selectedFile","this_1","uuid","UUID","find","x","fileName","msg_1","show","initialState","buttons","text","cls","handle","newName","oldName","flag","substring","lastIndexOf","close","splice","indexOf","filter","size","name_1","listToString","name_2","slice","target","value","showErrorMessage","file","errorMessage","fileInfo","type","source","getFileSize","fileSize","picListDisplayName","getPicListDisplayName","queueListDisplayName","getQueueDisplayName","hasUploaded","selectd","isUploading","uploadResult","extensionDropListId","extensionName","chunkTotal","Math","ceil","chunkIndex","uploadFileInfo","uploadInfo","this_2","total","nextSize","min","fileData","reader","FileReader","readAsBinaryString","innerIndex","onload","fileContent","btoa","result","index","exPropertyName","info","Message","Number","parseInt","toFixed","concat","includes","addDocInfo","DocType","selectAllFile","checkoutSelectFile","listDeleteFile","listMultipleDeleteFile","getElementById","checked","metadataList","allBox","selectdFile","docType","reader_1","readAsDataURL","_event","imgUrl","sanitizer","DomSanitizer","bypassSecurityTrustResourceUrl","strList","typeChange","data","exStorageFileInfo","findIndex","upload","loading_1","message","map","getUploadFileInfoList","showByGroup","showByList","mouseOver","mouseOut","MessagerService","LoadingService","Injector","Input","ViewChild","DownloadService","getDownloadUrl","getToken","mergeString","getMultipleDownloadUrl","list","getMultipleDownloadUrlWithName","zipName","endsWith","getHistoryDownloadUrl","version","str","str1","array","floor","str2","str3","randomArray","random","timeStamp","round","Date","getTime","switchStr","UploadModule","CommonModule","ButtonsModule","NotifyModule","MessagerModule","forRoot","LoadingModule","ProgressModule","FormsModule","ComboListModule","entryComponents","providers","ɵa","UploadDialogComponent","modalService","showDialog","dlg","title","height","iconCls","fileUpload","showButtons","content","BsModalService","UploadDialogService","componentFactoryResolver","Promise","resolve","viewerRef","resolveComponentFactory","create","instance","showMaxButton","beforeClose","uploadFileWithLimit","limit","uploadRef","ComponentFactoryResolver","UploadDialogMoudle","FarrisDialogModule","HttpClientModule","UploadLimit","GspFormUploadListEntity"],"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 { NgModule } from '@angular/core';\nimport { FormdocUploadComponent } from './formdoc-upload.component';\n\n\n@NgModule({\n declarations: [FormdocUploadComponent],\n imports: [\n ],\n exports: [FormdocUploadComponent]\n})\nexport class FormdocUploadModule { }\n","export enum DocType{\r\n Word,\r\n Excel,\r\n Powerpoint,\r\n Pdf,\r\n Txt,\r\n Image,\r\n Other\r\n}","import { GspDocMetaProperty } from './gspdocmetaproperty';\r\n\r\nexport class GspFormDocInfo {\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileContent: string;\r\n public index: number;\r\n public total: number;\r\n public exPropertyName: string;\r\n public extProperty: GspDocMetaProperty;\r\n}","export enum OperatingModes{\r\n Formal,\r\n Temp\r\n}","import { OperatingModes } from \"./operatingmodes\";\r\n\r\nexport class GspFormRemoveListEntity {\r\n public metadataIdList: string[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspFormDocOperateEntity {\r\n public metadataIdList: string[];\r\n public rootId: string;\r\n}","import { ExStorageFileInfo } from './extensionstoragefileinfo';\r\n\r\nexport class ChangeInstanceRequest {\r\n public fileInfoList: ExStorageFileInfo[];\r\n public rootId: string;\r\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GspFormUploadListEntity } from './entity/gspformuploadlistentity';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { catchError, tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { GspFormRemoveListEntity } from './entity/gspformremovelistentity';\nimport { of } from 'rxjs/observable/of';\nimport { GspFormDocOperateEntity } from './entity/gspformdocoperateentity';\n\nimport { GspFormUploadEntity } from './entity/gspformuploadentity';\nimport { ExStorageFileInfo } from './entity/extensionstoragefileinfo';\nimport { ChangeInstanceRequest } from './entity/changeinstancerequest';\nimport { OperatingModes } from './entity/operatingmodes';\n\n\n\n@Injectable()\nexport class UploadService {\n\n constructor(private http: HttpService) { }\n\n uploadList(docListInfo: GspFormUploadListEntity, rootId: string): Observable<any> {\n let url;\n docListInfo.rootId = rootId;\n\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docListInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n commit(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/commit\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/commit\";\n\n return this.http.post(url, entity).pipe();\n }\n\n cancel(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/cancel\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/cancel\";\n //localStorage.setItem(\"SessionId\",\"huoliang\");\n return this.http.put(url, entity).pipe();\n }\n\n removeList(idList: string[], rootId: string) {\n let url;\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/list\";\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n var idListInfo = new GspFormRemoveListEntity;\n idListInfo.metadataIdList = idList;\n idListInfo.mode = OperatingModes.Temp;\n idListInfo.rootId = rootId;\n return this.http.delete(url, idListInfo).pipe();\n }\n\n getFile(metadataId: string, rootId: string) {\n\n let url;\n if (rootId == \"\")\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId;\n else\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId + \"/\" + rootId;\n return this.http.get(url).pipe(tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n\n }\n\n uploadFile(docInfo: GspFormUploadEntity): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getStorageExtensionInfo(): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/extension\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n changeStorageInstance(storageInfoList: ExStorageFileInfo[], rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/changeinstance\";\n let request: ChangeInstanceRequest = new ChangeInstanceRequest;\n request.fileInfoList = storageInfoList;\n request.rootId = rootId;\n return this.http.post(url, request).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getUploadedFileInfoList(formId: string, rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist\" + \"?formid=\" + formId + \"&rootid=\" + rootId;\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n getRootSetting(rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/rootsetting/\" + rootId;\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n}\n","export class UploadFileInfo {\r\n\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileSize:string;\r\n\r\n}","import { OperatingModes } from './operatingmodes';\r\nimport { GspFormDocInfo } from './gspformdocinfo';\r\n\r\nexport class GspFormUploadEntity{\r\n public formId: string;\r\n public docInfo: GspFormDocInfo;\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n\r\n}","export class ExStorageFileInfo {\r\n public metadataId: string;\r\n public exPropertyName: string;\r\n}","import { Component, OnInit, Input, ViewChild, TemplateRef, Optional, Injector } from '@angular/core';\nimport { FileInfo } from '../entity/fileinfo';\nimport { DocType } from '../entity/doctype';\nimport { GspFormDocInfo } from '../entity/gspformdocinfo';\nimport { OperatingModes } from '../entity/operatingmodes';\nimport { UploadService } from '../upload.service';\nimport { UploadFileInfo } from '../entity/uploadfileinfo';\nimport { MessagerService } from '@farris/ui-messager';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { GspFormUploadEntity } from '../entity/gspformuploadentity';\nimport { UUID } from 'angular2-uuid';\nimport { StorageExtension } from '../entity/storageextension';\nimport { ExStorageFileInfo } from '../entity/extensionstoragefileinfo';\nimport { DropListEntity } from '../entity/droplistentity';\nimport { LoadingService } from '@farris/ui-loading';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { fillProperties } from '@angular/core/src/util/property';\n\n\n@Component({\n selector: 'app-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.css'],\n})\nexport class FileUploadComponent implements OnInit {\n\n files: FileInfo[] = [];\n metadataIdList: string[] = [];\n uploadFileInfoList: UploadFileInfo[] = [];\n errFileList: string[] = [];\n errTypeList: string[] = [];\n nullFileList: string[] = [];\n showType: number = 0;\n mouseOn: boolean = false;\n bufferSize = 1024 * 1024;\n selectedFiles: any;\n\n selectedFileCount: number = 0;\n\n uploadIconAddress = '/platform/runtime/dfs/images/upload.svg';\n uploadLittleIconAddress = '/platform/runtime/dfs/images/uploadIcon.svg';\n\n hasSelectedFile: boolean = false;\n\n fileAllSelected: boolean = false;\n\n uploadProcess = { width: '0%' };\n\n fileTotalChunk: { [key: string]: number } = {};\n //fileUploadState: { [key: string]: boolean } = {};\n //flag: number = 0;\n requestArray: Array<Observable<any>> = new Array;\n\n requestBodyArray: Array<GspFormUploadEntity> = new Array;\n\n uploadedChunk: { [key: string]: number } = {};\n uploadedProcess: { [key: string]: number } = {};\n\n //allSelected: boolean = true;\n storageExtension: StorageExtension;\n\n defaultPropertyName: string = \"\";\n propertiesNames: DropListEntity[] = [];\n\n queueListStyle = { width: '480px' };\n\n dropListValue: string = \"\";\n\n uploadedFileTotal: number = 0;\n\n haveExtensionProperty: boolean = false;\n\n uploadedFileInfoList = [];\n oldUploadedFileList = [];\n //uploadedNameList = [];\n\n sameNameAllowed = true;\n\n constructor(private msgService: MessagerService, private uploadService: UploadService, private loadService: LoadingService, private injector?: Injector) { }\n @Input() formId: string;\n @Input() rootId: string;\n @Input() fileType: string = \"*\";\n @Input() fileCount: number = 0;\n @Input() oldIdList: string[] = [];\n\n //@Output() onCustomEvent: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('opCell') opCell: TemplateRef<any>;\n\n ngOnInit() {\n //if (this.storageService != null) {\n this.uploadService.getStorageExtensionInfo().subscribe(\n res => {\n if (res != null && res.error == null) {\n this.storageExtension = res;\n this.defaultPropertyName = this.storageExtension.defaultPropertyName;\n this.propertiesNames.push({ id: \"0\", name: this.storageExtension.defaultPropertyName });\n let i = 0;\n // this.propertiesNames.push(...(this.storageExtension.extensionPropertyNameList));\n this.storageExtension.extensionPropertyNameList.forEach(element => {\n this.propertiesNames.push({ id: (++i).toString(), name: element });\n });\n this.queueListStyle.width = '380px';\n this.haveExtensionProperty = true;\n\n }\n }\n )\n\n this.uploadService.getRootSetting(this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.sameNameAllowed = res.sameNameAllowed;\n if (!this.sameNameAllowed) {\n this.uploadService.getUploadedFileInfoList(this.formId, this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.uploadedFileInfoList = res;\n this.oldUploadedFileList = JSON.parse(JSON.stringify(res));;\n\n }\n })\n }\n }\n }\n )\n if (this.oldIdList != null && this.oldIdList.length > 0) {\n this.uploadService.removeList(this.oldIdList, this.rootId).subscribe();\n }\n }\n\n\n fileSelected($event) {\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('已鿩' + selectedNum + '个æä»¶ï¼è¶
è¿ç³»ç»è®¾ç½®çæ°ééå¶' + this.fileCount + '个ï¼è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n return;\n }\n }\n\n //this.flag = 0;\n for (let i = 0; i < this.selectedFiles.files.length; i++) {\n let selectedFile = this.selectedFiles.files[i];\n //selectedFile.slice\n let uuid = UUID.UUID();\n if (!this.sameNameAllowed) {\n if (this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name) != null) {\n // this.uploadedNameList.push(selectedFile.name);\n // this.msgService.question('ä¹åå·²ä¸ä¼ è¿ååæä»¶: ' + selectedFile.name + 'ï¼éè¦æ¿æ¢ä¹ï¼', () => {\n // uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\n // this.uploadFile(uuid, selectedFile);\n // })\n const msg = this.msgService.show('warning', 'å·²ä¸ä¼ è¿ååæä»¶: ' + selectedFile.name, {\n initialState: {\n buttons: [\n {\n text: 'éå½å',\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: 'æ¿æ¢',\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);\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: 'åæ¶',\n cls: 'btn btn-secondary',\n handle: () => {\n msg.close();\n }\n }\n ]\n }\n })\n continue;\n }\n }\n\n // if (this.files.find(x => x.name == selectedFile.name) != null) {\n // this.errFileList.push(selectedFile.name);\n // continue;\n // }\n\n if (selectedFile.size == 0) {\n this.nullFileList.push(selectedFile.name);\n continue;\n }\n\n //this.flag += Math.ceil(selectedFile.size / this.bufferSize);\n //let reader = new FileReader();\n this.uploadFile(uuid, selectedFile, selectedFile.name);\n\n }\n // if (this.uploadedNameList.length > 0) {\n // let name: string = this.listToString(this.uploadedNameList);\n // this.msgService.warning('ä¹åå·²ä¸ä¼ è¿ååæä»¶: ' + name + 'è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n // this.uploadedNameList = [];\n // }\n\n if (this.errFileList.length > 0) {\n let name: string = this.listToString(this.errFileList);\n this.msgService.warning('å·²ä¸ä¼ ååæä»¶: ' + name + 'è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n this.errFileList = [];\n }\n\n if (this.nullFileList.length > 0) {\n let name: string = this.listToString(this.nullFileList);\n name = name.substring(0, name.length - 1);\n this.msgService.warning('æä»¶: ' + name + ' 大å°ä¸º0ï¼è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n this.nullFileList = [];\n }\n // if (this.errTypeList.length > 0) {\n // let type: string = this.listToString(this.errTypeList);\n // this.msgService.warning('䏿¯æä¸ä¼ ç±»å为 ' + type + 'çæä»¶è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n // this.errTypeList = [];\n // }\n this.files = this.files.slice();\n this.fileAllSelected = false;\n $event.target.value = '';\n }\n\n showErrorMessage(file) {\n this.msgService.error('ä¸ä¼ é件失败ã' + file.errorMessage);\n }\n\n\n uploadFile(uuid: string, selectedFile, fileName: string) {\n let fileInfo: FileInfo;\n // let uuid = UUID.UUID();\n //reader.readAsBinaryString(selectedFile);\n //reader.onload = (e) => {\n fileInfo = {\n id: uuid,\n name: fileName,\n type: selectedFile.type,\n source: \"\",\n size: this.getFileSize(selectedFile.size),\n fileSize: selectedFile.size,\n picListDisplayName: this.getPicListDisplayName(fileName),\n queueListDisplayName: this.getQueueDisplayName(fileName),\n //content: reader.result.toString(),\n hasUploaded: false,\n mouseOn: false,\n selectd: false,\n isUploading: true,\n uploadResult: false,\n uploadProcess: 0,\n errorMessage: \"\",\n extensionDropListId: 0,\n extensionName: \"\"\n }\n\n if (this.storageExtension != null)\n fileInfo.extensionName = this.defaultPropertyName;\n let chunkTotal: number = Math.ceil(selectedFile.size / this.bufferSize);\n let chunkIndex: number = 0;\n\n\n this.fileTotalChunk[uuid] = chunkTotal;\n\n let uploadFileInfo = new UploadFileInfo();\n\n uploadFileInfo.metadataId = uuid;\n uploadFileInfo.fileName = fileInfo.name;\n uploadFileInfo.fileSize = fileInfo.size;\n\n\n while (chunkIndex < chunkTotal) {\n let uploadInfo = new GspFormUploadEntity;\n uploadInfo.formId = this.formId;\n uploadInfo.mode = OperatingModes.Temp;\n uploadInfo.rootId = this.rootId;\n\n let docInfo: GspFormDocInfo = new GspFormDocInfo;\n\n docInfo.fileName = fileName;\n docInfo.metadataId = uuid;\n docInfo.total = chunkTotal;\n\n this.uploadedChunk[docInfo.metadataId] = 0;\n\n let nextSize = Math.min((chunkIndex + 1) * this.bufferSize, selectedFile.size);\n let fileData = selectedFile.slice(chunkIndex * this.bufferSize, nextSize);\n let reader = new FileReader();\n reader.readAsBinaryString(fileData);\n let innerIndex = chunkIndex;\n reader.onload = () => {\n docInfo.fileContent = btoa(reader.result.toString());\n\n docInfo.index = innerIndex;\n //chunkIndex++;\n if (this.haveExtensionProperty)\n docInfo.exPropertyName = this.defaultPropertyName;\n //docInfo.isLast = true;\n uploadInfo.docInfo = docInfo;\n\n let info = uploadInfo;\n\n // this.requestArray.push(this.uploadService.uploadFile(uploadInfo));\n this.requestBodyArray.push(info);\n\n this.uploadService.uploadFile(info).subscribe(res => {\n if (res != null) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\n } else {\n this.uploadedChunk[docInfo.metadataId]++;\n this.files[this.files.indexOf(fileInfo)].uploadProcess = Number.parseInt((this.uploadedChunk[docInfo.metadataId] / this.fileTotalChunk[docInfo.metadataId] * 100).toFixed(0));\n if (this.uploadedChunk[docInfo.metadataId] == this.fileTotalChunk[docInfo.metadataId]) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = true;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.uploadFileInfoList = this.uploadFileInfoList.concat(uploadFileInfo);\n this.uploadedFileInfoList = this.uploadedFileInfoList.concat(uploadFileInfo);\n this.uploadedFileTotal++;\n }\n }\n });\n }\n //console.log(chunkIndex + 1);\n chunkIndex = chunkIndex + 1;\n }\n\n let type: string = selectedFile.type;\n if (type.includes(\"image\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Image);\n }\n else if (type.includes(\"word\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Word);\n }\n else if (type.includes(\"pdf\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Pdf);\n }\n else if (type.includes(\"plain\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Txt);\n }\n else if (type.includes(\"sheet\") || type.includes(\"excel\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Excel)\n }\n else if (type.includes(\"powerpoint\") || type.includes(\"presentation\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Powerpoint);\n }\n else {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n // let name: string = selectedFile.name;\n // let errType = name.substring(selectedFile.name.lastIndexOf('.'));\n // this.errTypeList.push(errType);\n }\n let index = -1;\n this.files.forEach(x => {\n if (x.name == fileInfo.name) {\n if (index == -1)\n index = this.files.indexOf(x);\n }\n })\n if (index != -1 && index != this.files.length - 1) {\n this.files.splice(index, 1);\n this.uploadFileInfoList.splice(index, 1);\n this.uploadedFileInfoList.splice(index, 1);\n this.uploadedFileTotal--;\n }\n }\n\n\n selectAllFile() {\n\n if (!this.fileAllSelected) {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = true;\n element.selectd = true;\n });\n this.fileAllSelected = true;\n this.selectedFileCount = this.files.length;\n\n } else {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = false;\n element.selectd = false;\n });\n this.fileAllSelected = false;\n this.selectedFileCount = 0;\n }\n }\n\n\n checkoutSelectFile(file: FileInfo) {\n // let obj: any = document.getElementById(fileName);\n file.selectd = !file.selectd;\n if (file.selectd)\n this.selectedFileCount++;\n else\n this.selectedFileCount--;\n if (this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n //this.isFileAllSelected();\n }\n else {\n this.fileAllSelected = false;\n //this.isFileAllSelected();\n }\n\n }\n\n listDeleteFile(fileInfo: FileInfo) {\n if (fileInfo.selectd)\n this.selectedFileCount--;\n //console.log(fileName);\n this.files.splice(this.files.indexOf(fileInfo), 1);\n if (fileInfo.uploadResult) {\n let idList: string[] = [];\n idList.push(fileInfo.id);\n this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n if (this.selectedFileCount == 0)\n this.fileAllSelected = false;\n }\n\n listMultipleDeleteFile() {\n let selectedFile: FileInfo[] = [];\n this.files.forEach(element => {\n let obj: any = document.getElementById(element.name);\n if (obj.checked)\n selectedFile.push(element);\n })\n let metadataList: string[] = [];\n selectedFile.forEach(element => {\n metadataList.push(element.id);\n this.files.splice(this.files.indexOf(element), 1);\n if (element.uploadResult) {\n // let idList: string[] = [];\n // idList.push(fileInfo.id);\n // this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n })\n this.uploadService.cancel(metadataList, this.rootId).subscribe();\n\n let allBox: any = document.getElementById(\"allCheckBox\");\n if (allBox != null)\n allBox.checked = false;\n this.selectedFileCount = 0;\n this.fileAllSelected = false;\n }\n\n\n getPicListDisplayName(fileName: string) {\n if (fileName.length <= 10)\n return fileName;\n else {\n let headContent = fileName.substring(0, 2);\n let tailContent = fileName.substring(fileName.lastIndexOf('.') - 2);\n return headContent + \"â¦\" + tailContent;\n }\n }\n\n getQueueDisplayName(fileName: string) {\n return fileName;\n }\n\n addDocInfo(selectdFile, fileInfo: FileInfo, docType: DocType) {\n switch (docType) {\n case DocType.Word: {\n fileInfo.source = \"/platform/runtime/dfs/images/word.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Pdf: {\n fileInfo.source = \"/platform/runtime/dfs/images/pdf.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Excel: {\n fileInfo.source = \"/platform/runtime/dfs/images/excel.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Txt: {\n fileInfo.source = \"/platform/runtime/dfs/images/txt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Powerpoint: {\n fileInfo.source = \"/platform/runtime/dfs/images/ppt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Other: {\n fileInfo.source = \"/platform/runtime/dfs/images/file.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Image:\n let reader = new FileReader();\n\n reader.readAsDataURL(selectdFile);\n reader.onload = (_event) => {\n let imgUrl = reader.result;\n if (this.injector != null) {\n let sanitizer = this.injector.get(DomSanitizer);\n fileInfo.source = sanitizer.bypassSecurityTrustResourceUrl(imgUrl);\n } else\n fileInfo.source = imgUrl;\n this.files.push(fileInfo);\n }\n break;\n }\n\n }\n\n listToString(strList: string[]) {\n let name: string = \"\";\n for (let i = 0; i < strList.length; i++) {\n name += strList[i] + \",\";\n }\n return name;\n }\n\n\n exStorageFileList: ExStorageFileInfo[] = [];\n\n typeChange($event: any, file: FileInfo) {\n file.extensionName = $event.data.name;\n let exStorageFileInfo: ExStorageFileInfo = new ExStorageFileInfo;\n if (file.extensionName == this.storageExtension.defaultPropertyName) {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0)\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1)\n } else {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n exStorageFileInfo = this.exStorageFileList.filter(x => x.metadataId == file.id)[0];\n exStorageFileInfo.exPropertyName = file.extensionName;\n } else {\n exStorageFileInfo.metadataId = file.id;\n exStorageFileInfo.exPropertyName = file.extensionName;\n this.exStorageFileList.push(exStorageFileInfo);\n }\n }\n }\n\n upload(): Observable<any> {\n if (this.uploadedFileTotal != this.files.filter(x => x.isUploading || x.uploadResult).length) {\n // this.notifyService.success(<NotifyOptions>{\n // msg: 'ä¿åæåï¼', timeout: 3000\n // });\n this.msgService.warning('çä¸ä¸ï¼ææ¡£æ£å¨ä¸ä¼ ã');\n return of(false);\n }\n if (this.storageExtension == null)\n return of(this.uploadFileInfoList);\n else {\n if (this.exStorageFileList.length == 0)\n return of(this.uploadFileInfoList);\n else {\n const loading = this.loadService.show({\n message: 'æ£å¨å°æä»¶ä¿åå°' + this.storageExtension.extensionName\n });\n return this.uploadService.changeStorageInstance(this.exStorageFileList, this.rootId).pipe(\n map(res => {\n if (res != null)\n this.msgService.error('ä¿åå°' + this.storageExtension.extensionName + \"失败ï¼ä¸ä¼ æä»¶èªå¨ä¿åå°\" + this.storageExtension.defaultPropertyName + \"åå¨ã\" + res.error.Message);\n loading.close();\n return this.uploadFileInfoList;\n }))\n }\n }\n }\n\n cancel() {\n if (this.uploadFileInfoList.length == 0)\n return;\n this.uploadFileInfoList.forEach(element => {\n this.metadataIdList.push(element.metadataId);\n })\n this.uploadService.cancel(this.metadataIdList, this.rootId).subscribe();\n\n }\n\n getUploadFileInfoList() {\n return this.uploadFileInfoList;\n }\n\n delete(file) {\n this.files.splice(this.files.indexOf(file), 1);\n if (file.uploadResult)\n this.uploadedFileTotal--;\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1);\n }\n // var obj:any = document.querySelector('#file');\n // obj.files.remove();\n //obj.value='';\n }\n\n getFileSize(size: number) {\n if (size < 102400)\n return (size / 1024).toFixed(1) + \"K\";\n else if (size < 1024 * 1024)\n return (size / 1024).toFixed(0) + \"K\";\n else if (size < 100 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(1) + \"M\";\n else if (size < 1024 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(0) + \"M\";\n else\n return (size / 1024 / 1024 / 1024).toFixed(1) + \"G\";\n }\n showByGroup() {\n this.showType = 0;\n // this.selectedFileCount = 0;\n }\n\n showByList() {\n this.showType = 1;\n // this.selectedFileCount = 0;\n if (this.selectedFileCount != 0 && this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n }\n }\n\n mouseOver(file) {\n file.mouseOn = true;\n }\n mouseOut(file) {\n file.mouseOn = false;\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class DownloadService {\n\n constructor() { }\n\n getDownloadUrl(metadataId: string, rootId: string) {\n return \"/api/runtime/dfs/v1.0/doc/filecontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n getMultipleDownloadUrl(metadataIdList: string, rootId: string) {\n let list: string[] = JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId));\n }\n\n getMultipleDownloadUrlWithName(metadataIdList: string, rootId: string, zipName: string) {\n let list: string[] = JSON.parse(metadataIdList);\n if (zipName == null || zipName == \"\")\n zipName = 'unifile.zip';\n if (!zipName.endsWith(\".zip\"))\n zipName += '.zip';\n return \"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId)) + \"&zipName=\" + zipName;\n }\n\n getHistoryDownloadUrl(metadataId: string, rootId: string, version: string) {\n //let list:string[]=JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/historycontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&version=\" + version + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n\n\n private mergeString(str: string, str1: string): string {\n let min = str.length < str1.length ? str.length : str1.length;\n let res: string = \"\";\n let i = 0;\n for (i = 0; i < min; i++) {\n res += str.substring(i, i + 1);\n res += str1.substring(i, i + 1);\n }\n res += str.length < str1.length ? str1.substring(i) : str.substring(i);\n return res;\n }\n\n private getToken(str: string): string {\n let array = [1, 2, 3];\n if (str.length > 24)\n str = str.substring(0, 24);\n let length = Math.floor(str.length / 3);\n let str1 = str.substring(0, length);\n let str2 = str.substring(length, 2 * length);\n let str3 = str.substring(2 * length, 3 * length);\n let randomArray = [];\n var random = Math.ceil(Math.random() * 3);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n random = Math.ceil(Math.random() * 2);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n randomArray.push(array[0]);\n let timeStamp: string = Math.round(new Date().getTime() / 1000) + \"\";\n\n return timeStamp.substring(0, 5) + \"times\" + randomArray[0] + \"\" + randomArray[1] + \"\" + randomArray[2] + this.switchStr(str1, str2, str3, randomArray[0]) + this.switchStr(str1, str2, str3, randomArray[1]) + this.switchStr(str1, str2, str3, randomArray[2]) + \"times\" + timeStamp.substring(5);\n }\n\n private switchStr(str1: string, str2: string, str3: string, i: number): string {\n switch (i) {\n case 1: return str1;\n case 2: return str2;\n case 3: return str3;\n }\n }\n\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploadComponent } from './file-upload/file-upload.component';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { UploadService } from './upload.service';\nimport { LoadingModule } from '@farris/ui-loading';\nimport { ProgressModule } from '@farris/ui-progress'\nimport { FormsModule } from '@angular/forms';\nimport { ComboListModule } from '@farris/ui-combo-list';\nimport { DownloadService } from './download.service';\n\n\n\n@NgModule({\n declarations: [FileUploadComponent],\n imports: [\n CommonModule,\n ButtonsModule,\n NotifyModule,\n MessagerModule.forRoot(),\n LoadingModule.forRoot(),\n ProgressModule,\n FormsModule,\n ComboListModule\n\n ],\n exports: [FileUploadComponent],\n entryComponents: [FileUploadComponent],\n providers: [UploadService, DownloadService]\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 } 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\n\r\n\r\n@Injectable()\r\nexport class UploadDialogService {\r\n constructor(private modalService: BsModalService, private componentFactoryResolver: ComponentFactoryResolver, private injector: Injector) { }\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: 'ä¸ä¼ æä»¶',\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n text: 'ä¿å', 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: 'å
³é', cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n\r\n uploadFile(formId: string, rootId: string,oldIdList: string[]=[]) { \r\n return this.uploadFileWithLimit(formId, rootId, null, oldIdList);\r\n }\r\n\r\n\r\n uploadFileWithLimit(formId: string, rootId: string, limit: UploadLimit, oldIdList: string[]=[]) {\r\n let flag = 0;\r\n return new Promise(resolve => {\r\n var uploadFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\r\n var uploadRef = uploadFactory.create(this.injector);\r\n if (limit != null) {\r\n uploadRef.instance.fileCount = limit.fileCount;\r\n if (limit.fileType != null && limit.fileType != \"\")\r\n uploadRef.instance.fileType = limit.fileType\r\n }\r\n\r\n uploadRef.instance.rootId = rootId;\r\n uploadRef.instance.formId = formId;\r\n uploadRef.instance.oldIdList=oldIdList;\r\n\r\n this.dlg = this.modalService.show(uploadRef, {\r\n title: 'ä¸ä¼ æä»¶',\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n\r\n text: 'ä¿å', 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: 'å
³é', cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FarrisDialogModule } from '@farris/ui-dialog';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { BsModalService } from '@farris/ui-modal';\n\nimport { UploadModule } from '../upload/upload.module';\nimport { UploadDialogComponent } from './uploaddialog/uploaddialog.component';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { UploadService } from '../upload/upload.service';\nimport { UploadDialogService } from '../uploaddialog.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { FileUploadComponent } from '../upload/file-upload/file-upload.component';\n\n\n@NgModule({\n declarations: [UploadDialogComponent],\n imports: [\n CommonModule,\n FarrisDialogModule,\n MessagerModule.forRoot(),\n UploadModule,\n ButtonsModule,\n NotifyModule.forRoot(),\n HttpClientModule\n ],\n exports: [UploadDialogComponent,FileUploadComponent],\n entryComponents: [UploadDialogComponent,FileUploadComponent],\n providers: [BsModalService, HttpService, UploadDialogService, UploadService]\n})\nexport class UploadDialogMoudle { }\n","export class UploadLimit {\r\n public fileType: string = \"*\";\r\n public fileCount: number = 0;\r\n}","import { GspFormDocInfo } from './gspformdocinfo';\r\nimport { OperatingModes } from './operatingmodes';\r\n\r\nexport class GspFormUploadListEntity {\r\n public formId: string;\r\n public docInfoList: GspFormDocInfo[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}"]}
|
|
1
|
+
{"version":3,"sources":["ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/formdoc-upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/doctype.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/operatingmodes.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformremovelistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformdocoperateentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/changeinstancerequest.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadfileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/extensionstoragefileinfo.ts","ng://@gsp-svc/formdoc-upload/lib/upload/file-upload/file-upload.component.ts","ng://@gsp-svc/formdoc-upload/lib/upload/download.service.ts","ng://@gsp-svc/formdoc-upload/lib/upload/upload.module.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog/uploaddialog/uploaddialog.component.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog.service.ts","ng://@gsp-svc/formdoc-upload/lib/uploaddialog/uploaddialog.module.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/uploadlimit.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspformuploadlistentity.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/gspdocmetaproperty.ts","ng://@gsp-svc/formdoc-upload/lib/upload/entity/fileinfo.ts"],"names":["FormdocUploadService","Injectable","args","providedIn","FormdocUploadComponent","prototype","ngOnInit","Component","selector","template","FormdocUploadModule","NgModule","declarations","imports","exports","Word","Excel","Powerpoint","Pdf","Txt","Image","Other","GspFormDocInfo","Formal","Temp","GspFormRemoveListEntity","GspFormDocOperateEntity","ChangeInstanceRequest","UploadService","http","this","uploadList","docListInfo","rootId","post","pipe","tap","res","catchError","error","of","commit","metadataIdList","entity","cancel","put","removeList","idList","idListInfo","mode","OperatingModes","delete","getFile","metadataId","url","get","uploadFile","docInfo","getStorageExtensionInfo","changeStorageInstance","storageInfoList","request","fileInfoList","getUploadedFileInfoList","formId","getRootSetting","HttpService","UploadFileInfo","GspFormUploadEntity","ExStorageFileInfo","FileUploadComponent","msgService","uploadService","loadService","injector","files","uploadFileInfoList","errFileList","errTypeList","nullFileList","showType","mouseOn","bufferSize","selectedFileCount","uploadIconAddress","uploadLittleIconAddress","hasSelectedFile","fileAllSelected","uploadProcess","width","fileTotalChunk","requestArray","Array","requestBodyArray","uploadedChunk","uploadedProcess","defaultPropertyName","propertiesNames","queueListStyle","dropListValue","uploadedFileTotal","haveExtensionProperty","uploadedFileInfoList","oldUploadedFileList","sameNameAllowed","fileType","fileCount","oldIdList","exStorageFileList","_this","subscribe","storageExtension","push","id","name","i_1","extensionPropertyNameList","forEach","element","toString","JSON","parse","stringify","length","fileSelected","$event","selectedFiles","document","querySelector","selectedNum","warning","i","selectedFile","this_1","uuid","UUID","find","x","fileName","msg_1","show","initialState","buttons","text","cls","handle","newName","oldName","flag","substring","lastIndexOf","close","splice","indexOf","filter","size","name_1","listToString","name_2","slice","target","value","showErrorMessage","file","errorMessage","fileInfo","type","source","getFileSize","fileSize","picListDisplayName","getPicListDisplayName","queueListDisplayName","getQueueDisplayName","hasUploaded","selectd","isUploading","uploadResult","extensionDropListId","extensionName","chunkTotal","Math","ceil","chunkIndex","uploadFileInfo","uploadInfo","this_2","total","nextSize","min","fileData","reader","FileReader","readAsBinaryString","innerIndex","onload","fileContent","btoa","result","index","exPropertyName","info","Message","Number","parseInt","toFixed","concat","includes","addDocInfo","DocType","selectAllFile","checkoutSelectFile","listDeleteFile","listMultipleDeleteFile","getElementById","checked","metadataList","allBox","selectdFile","docType","reader_1","readAsDataURL","_event","imgUrl","sanitizer","DomSanitizer","bypassSecurityTrustResourceUrl","strList","typeChange","data","exStorageFileInfo","findIndex","upload","loading_1","message","map","getUploadFileInfoList","showByGroup","showByList","mouseOver","mouseOut","MessagerService","LoadingService","Injector","Input","ViewChild","DownloadService","getDownloadUrl","getToken","mergeString","getMultipleDownloadUrl","list","getMultipleDownloadUrlWithName","zipName","endsWith","encodeURIComponent","getHistoryDownloadUrl","version","str","str1","array","floor","str2","str3","randomArray","random","timeStamp","round","Date","getTime","switchStr","UploadModule","CommonModule","ButtonsModule","NotifyModule","MessagerModule","forRoot","LoadingModule","ProgressModule","FormsModule","ComboListModule","entryComponents","providers","ɵa","UploadDialogComponent","modalService","showDialog","dlg","title","height","iconCls","fileUpload","showButtons","content","BsModalService","UploadDialogService","componentFactoryResolver","Promise","resolve","viewerRef","resolveComponentFactory","create","instance","showMaxButton","beforeClose","uploadFileWithLimit","limit","uploadRef","ComponentFactoryResolver","UploadDialogMoudle","FarrisDialogModule","HttpClientModule","UploadLimit","GspFormUploadListEntity","GspDocMetaProperty","FileInfo"],"mappings":"y6CAAA,IAAAA,EAAA,WAOE,SAAAA,gCALDC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,sJAHd,GCAAC,EAAA,WAaE,SAAAA,KAKF,OAHEA,EAAAC,UAAAC,SAAA,iCAbDC,EAAAA,UAASL,KAAA,CAAC,CACTM,SAAU,qBACVC,SAAU,iGAcZL,EAlBA,GCAAM,EAAA,WAIA,SAAAA,KAMmC,2BANlCC,EAAAA,SAAQT,KAAA,CAAC,CACRU,aAAc,CAACR,GACfS,QAAS,GAETC,QAAS,CAACV,OAEuBM,EAVnC,MCCIK,KAAA,EACAC,MAAA,EACAC,WAAA,EACAC,IAAA,EACAC,IAAA,EACAC,MAAA,EACAC,MAAA,wICLJ,IAAAC,EAAA,SAAAA,SCDIC,OAAA,EACAC,KAAA,yCCAJ,IAAAC,EAAA,SAAAA,MCFAC,EAAA,SAAAA,MCEAC,EAAA,SAAAA,MCFAC,EAAA,WAoBE,SAAAA,EAAoBC,GAAAC,KAAAD,KAAAA,EA0HtB,OAxHED,EAAAvB,UAAA0B,WAAA,SAAWC,EAAsCC,GAO/C,OALAD,EAAYC,OAASA,EAEf,qCAGCH,KAAKD,KAAKK,KAHX,qCAGqBF,GAAaG,KACtCC,EAAAA,IAAG,SAACC,MACJC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,OAKhBX,EAAAvB,UAAAoC,OAAA,SAAOC,EAA0BT,OAE3BU,EAAkC,IAAIjB,EAM1C,OALAiB,EAAOD,eAAiBA,EACxBC,EAAOV,OAASA,EACV,uCAGCH,KAAKD,KAAKK,KAHX,uCAGqBS,GAAQR,QAGrCP,EAAAvB,UAAAuC,OAAA,SAAOF,EAA0BT,OAE3BU,EAAkC,IAAIjB,EAM1C,OALAiB,EAAOD,eAAiBA,EACxBC,EAAOV,OAASA,EACV,uCAGCH,KAAKD,KAAKgB,IAHX,uCAGoBF,GAAQR,QAGpCP,EAAAvB,UAAAyC,WAAA,SAAWC,EAAkBd,OAIvBe,EAAa,IAAIvB,EAIrB,OAHAuB,EAAWN,eAAiBK,EAC5BC,EAAWC,KAAOC,EAAe1B,KACjCwB,EAAWf,OAASA,EACbH,KAAKD,KAAKsB,UALX,qCAKuBH,GAAYb,QAG3CP,EAAAvB,UAAA+C,QAAA,SAAQC,EAAoBpB,OAEtBqB,EAKJ,OAHEA,EADY,IAAVrB,EACI,sCAAwCoB,EAExC,sCAAwCA,EAAa,IAAMpB,EAC5DH,KAAKD,KAAK0B,IAAID,GAAKnB,KAAKC,EAAAA,IAAG,SAACC,MACjCC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,OAKhBX,EAAAvB,UAAAmD,WAAA,SAAWC,GAKT,OAAO3B,KAAKD,KAAKK,KAHP,gCAGiBuB,GAAStB,KAClCC,EAAAA,IAAG,SAACC,MACJC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,OAKhBX,EAAAvB,UAAAqD,wBAAA,WAIE,OAAO5B,KAAKD,KAAK0B,IAHP,mDAGgBpB,KACxBC,EAAAA,IAAG,SAACC,MACJC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,OAIhBX,EAAAvB,UAAAsD,sBAAA,SAAsBC,EAAsC3B,OAEtD4B,EAAiC,IAAIlC,EAGzC,OAFAkC,EAAQC,aAAeF,EACvBC,EAAQ5B,OAASA,EACVH,KAAKD,KAAKK,KAJP,+CAIiB2B,GAAS1B,KAClCC,EAAAA,IAAG,SAACC,MACJC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,OAKhBX,EAAAvB,UAAA0D,wBAAA,SAAwBC,EAAgB/B,OAClCqB,EAAM,8DAAqEU,EAAS,WAAa/B,EAGrG,OAAOH,KAAKD,KAAK0B,IAAID,GAAKnB,KACxBC,EAAAA,IAAG,SAACC,MACJC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,OAIhBX,EAAAvB,UAAA4D,eAAA,SAAehC,OACTqB,EAAM,qCAAuCrB,EAEjD,OAAOH,KAAKD,KAAK0B,IAAID,GAAKnB,KACxBC,EAAAA,IAAG,SAACC,MACJC,EAAAA,WAAU,SAAEC,GACV,OAAOC,EAAAA,GAAGD,2BAzHjBtC,EAAAA,sDAdQiE,EAAAA,eA2ITtC,EA9IA,GCAAuC,EAAA,SAAAA,MCGAC,EAAA,SAAAA,MCHAC,EAAA,SAAAA,MCAAC,EAAA,WA+EE,SAAAA,EAAoBC,EAAqCC,EAAsCC,EAAqCC,GAAhH5C,KAAAyC,WAAAA,EAAqCzC,KAAA0C,cAAAA,EAAsC1C,KAAA2C,YAAAA,EAAqC3C,KAAA4C,SAAAA,EApDpI5C,KAAA6C,MAAoB,GACpB7C,KAAAY,eAA2B,GAC3BZ,KAAA8C,mBAAuC,GACvC9C,KAAA+C,YAAwB,GACxB/C,KAAAgD,YAAwB,GACxBhD,KAAAiD,aAAyB,GACzBjD,KAAAkD,SAAmB,EACnBlD,KAAAmD,SAAmB,EACnBnD,KAAAoD,WAAa,QAGbpD,KAAAqD,kBAA4B,EAE5BrD,KAAAsD,kBAAoB,0CACpBtD,KAAAuD,wBAA0B,8CAE1BvD,KAAAwD,iBAA2B,EAE3BxD,KAAAyD,iBAA2B,EAE3BzD,KAAA0D,cAAgB,CAAEC,MAAO,MAEzB3D,KAAA4D,eAA4C,GAG5C5D,KAAA6D,aAAuC,IAAIC,MAE3C9D,KAAA+D,iBAA+C,IAAID,MAEnD9D,KAAAgE,cAA2C,GAC3ChE,KAAAiE,gBAA6C,GAK7CjE,KAAAkE,oBAA8B,GAC9BlE,KAAAmE,gBAAoC,GAEpCnE,KAAAoE,eAAiB,CAAET,MAAO,SAE1B3D,KAAAqE,cAAwB,GAExBrE,KAAAsE,kBAA4B,EAE5BtE,KAAAuE,uBAAiC,EAEjCvE,KAAAwE,qBAAuB,GACvBxE,KAAAyE,oBAAsB,GAGtBzE,KAAA0E,iBAAkB,EAKT1E,KAAA2E,SAAmB,IACnB3E,KAAA4E,UAAoB,EACpB5E,KAAA6E,UAAsB,GAme/B7E,KAAA8E,kBAAyC,GA0G3C,OAvkBEtC,EAAAjE,UAAAC,SAAA,WAAA,IAAAuG,EAAA/E,KAEEA,KAAK0C,cAAcd,0BAA0BoD,UAAS,SACpDzE,GACE,GAAW,MAAPA,GAA4B,MAAbA,EAAIE,MAAe,CACpCsE,EAAKE,iBAAmB1E,EACxBwE,EAAKb,oBAAsBa,EAAKE,iBAAiBf,oBACjDa,EAAKZ,gBAAgBe,KAAK,CAAEC,GAAI,IAAKC,KAAML,EAAKE,iBAAiBf,0BAC7DmB,EAAI,EAERN,EAAKE,iBAAiBK,0BAA0BC,QAAO,SAACC,GACtDT,EAAKZ,gBAAgBe,KAAK,CAAEC,MAAOE,GAAGI,WAAYL,KAAMI,MAE1DT,EAAKX,eAAeT,MAAQ,QAC5BoB,EAAKR,uBAAwB,KAMnCvE,KAAK0C,cAAcP,eAAenC,KAAKG,QAAQ6E,UAAS,SACtDzE,GACa,MAAPA,GAA4B,MAAbA,EAAIE,QACrBsE,EAAKL,gBAAkBnE,EAAImE,gBACtBK,EAAKL,iBACRK,EAAKrC,cAAcT,wBAAwB8C,EAAK7C,OAAQ6C,EAAK5E,QAAQ6E,UAAS,SAC5EzE,GACa,MAAPA,GAA4B,MAAbA,EAAIE,QACrBsE,EAAKP,qBAAuBjE,EAC5BwE,EAAKN,oBAAsBiB,KAAKC,MAAMD,KAAKE,UAAUrF,UAQ7C,MAAlBP,KAAK6E,WAA6C,EAAxB7E,KAAK6E,UAAUgB,QAC3C7F,KAAK0C,cAAc5B,OAAOd,KAAK6E,UAAW7E,KAAKG,QAAQ6E,aAK3DxC,EAAAjE,UAAAuH,aAAA,SAAaC,GAAb,IAAAhB,EAAA/E,KAIE,GAHAA,KAAKwD,iBAAkB,EACvBxD,KAAKgG,cAAgBC,SAASC,cAAc,SAEvB,EAAjBlG,KAAK4E,WACH5E,KAAKgG,cAAcnD,MAAMgD,OAAS7F,KAAK6C,MAAMgD,OAAS7F,KAAK4E,UADjE,KAEQuB,EAAuBnG,KAAKgG,cAAcnD,MAAY,OAAc7C,KAAK6C,MAAMgD,OACnF7F,KAAKyC,WAAW2D,QAAQ,MAAQD,EAAc,kBAAoBnG,KAAK4E,UAAY,oBAHvF,CASA,mBAASyB,OACHC,EAAeC,EAAKP,cAAcnD,MAAMwD,GAExCG,EAAOC,EAAAA,KAAKA,OAChB,IAAKF,EAAK7B,iBACoE,MAAxE6B,EAAK/B,qBAAqBkC,KAAI,SAACC,GAAK,OAAAA,EAAEC,UAAYN,EAAalB,OAAe,KAM1EyB,EAAMN,EAAK9D,WAAWqE,KAAK,UAAW,aAAeR,EAAalB,KAAM,CAC5E2B,aAAc,CACZC,QAAS,CACP,CACEC,KAAM,MACNC,IAAK,oBACLC,OAAM,WAKJ,QAHIC,EADAC,EAAkBf,EAAalB,KAE/BkC,GAAO,EACPjB,EAAI,EACDiB,GACLF,EAAUC,EAAQE,UAAU,EAAGF,EAAQG,YAAY,MAAQ,IAAMnB,EAAI,IAAMgB,EAAQE,UAAUF,EAAQG,YAAY,MAC/C,MAA9DzC,EAAKP,qBAAqBkC,KAAI,SAACC,GAAK,OAAAA,EAAEC,UAAYQ,IACpDf,IAGAiB,GAAO,EAGXvC,EAAKrD,WAAW8E,EAAMF,EAAcc,GACpCP,EAAIY,UAGR,CACER,KAAM,KACNC,IAAK,oBACLC,OAAM,WACJX,EAAOzB,EAAKP,qBAAqBkC,KAAI,SAACC,GAAK,OAAAA,EAAEC,UAAYN,EAAalB,OAAM7D,WAC5EwD,EAAKrD,WAAW8E,EAAMF,EAAcA,EAAalB,MACjDL,EAAKT,oBACDS,EAAKN,oBAAoBiC,KAAI,SAACC,GAAK,OAAAA,EAAEC,UAAYN,EAAalB,SAChEL,EAAKT,oBACLS,EAAKP,qBAAqBkD,OAAO3C,EAAKP,qBAAqBmD,QAAQ5C,EAAKP,qBAAqBoD,OAAM,SAACjB,GAAK,OAAAA,EAAEC,UAAYN,EAAalB,OAAM,IAAK,IAEjJyB,EAAIY,UAGR,CACER,KAAM,KACNC,IAAK,oBACLC,OAAM,WACJN,EAAIY,+BAelB,GAAyB,GAArBnB,EAAauB,YACftB,EAAKtD,aAAaiC,KAAKoB,EAAalB,iBAMtCmB,EAAK7E,WAAW8E,EAAMF,EAAcA,EAAalB,cA3E1CiB,EAAI,EAAGA,EAAIrG,KAAKgG,cAAcnD,MAAMgD,OAAQQ,MAA5CA,GAoFT,GAA8B,EAA1BrG,KAAK+C,YAAY8C,OAAY,KAC3BiC,EAAe9H,KAAK+H,aAAa/H,KAAK+C,aAC1C/C,KAAKyC,WAAW2D,QAAQ,YAAc0B,EAAO,cAC7C9H,KAAK+C,YAAc,GAGrB,GAA+B,EAA3B/C,KAAKiD,aAAa4C,OAAY,KAC5BmC,EAAehI,KAAK+H,aAAa/H,KAAKiD,cAC1C+E,EAAOA,EAAKT,UAAU,EAAGS,EAAKnC,OAAS,GACvC7F,KAAKyC,WAAW2D,QAAQ,QAAU4B,EAAO,oBACzChI,KAAKiD,aAAe,GAOtBjD,KAAK6C,MAAQ7C,KAAK6C,MAAMoF,QACxBjI,KAAKyD,iBAAkB,EACvBsC,EAAOmC,OAAOC,MAAQ,KAGxB3F,EAAAjE,UAAA6J,iBAAA,SAAiBC,GACfrI,KAAKyC,WAAWhC,MAAM,UAAY4H,EAAKC,eAIzC9F,EAAAjE,UAAAmD,WAAA,SAAW8E,EAAcF,EAAcM,GAAvC,IACM2B,EADNxD,EAAA/E,KAKEuI,EAAW,CACTpD,GAAIqB,EACJpB,KAAMwB,EACN4B,KAAMlC,EAAakC,KACnBC,OAAQ,GACRZ,KAAM7H,KAAK0I,YAAYpC,EAAauB,MACpCc,SAAUrC,EAAauB,KACvBe,mBAAoB5I,KAAK6I,sBAAsBjC,GAC/CkC,qBAAsB9I,KAAK+I,oBAAoBnC,GAE/CoC,aAAa,EACb7F,SAAS,EACT8F,SAAS,EACTC,aAAa,EACbC,cAAc,EACdzF,cAAe,EACf4E,aAAc,GACdc,oBAAqB,EACrBC,cAAe,IAGY,MAAzBrJ,KAAKiF,mBACPsD,EAASc,cAAgBrJ,KAAKkE,yBAC5BoF,EAAqBC,KAAKC,KAAKlD,EAAauB,KAAO7H,KAAKoD,YACxDqG,EAAqB,EAGzBzJ,KAAK4D,eAAe4C,GAAQ8C,MAExBI,EAAiB,IAAIrH,EAEzBqH,EAAenI,WAAaiF,EAC5BkD,EAAe9C,SAAW2B,EAASnD,KACnCsE,EAAef,SAAWJ,EAASV,KAGnC,yBACM8B,EAAa,IAAIrH,EACrBqH,EAAWzH,OAAS0H,EAAK1H,OACzByH,EAAWxI,KAAOC,EAAe1B,KACjCiK,EAAWxJ,OAASyJ,EAAKzJ,WAErBwB,EAA0B,IAAInC,EAElCmC,EAAQiF,SAAWA,EACnBjF,EAAQJ,WAAaiF,EACrB7E,EAAQkI,MAAQP,EAEhBM,EAAK5F,cAAcrC,EAAQJ,YAAc,MAErCuI,EAAWP,KAAKQ,KAAKN,EAAa,GAAKG,EAAKxG,WAAYkD,EAAauB,MACrEmC,EAAW1D,EAAa2B,MAAMwB,EAAaG,EAAKxG,WAAY0G,GAC5DG,EAAS,IAAIC,WACjBD,EAAOE,mBAAmBH,OACtBI,EAAaX,EACjBQ,EAAOI,OAAM,WACX1I,EAAQ2I,YAAcC,KAAKN,EAAOO,OAAO/E,YAEzC9D,EAAQ8I,MAAQL,EAEZrF,EAAKR,wBACP5C,EAAQ+I,eAAiB3F,EAAKb,qBAEhCyF,EAAWhI,QAAUA,MAEjBgJ,EAAOhB,EAGX5E,EAAKhB,iBAAiBmB,KAAKyF,GAE3B5F,EAAKrC,cAAchB,WAAWiJ,GAAM3F,UAAS,SAACzE,GACjC,MAAPA,GACFwE,EAAKlC,MAAMkC,EAAKlC,MAAM8E,QAAQY,IAAWY,cAAe,EACxDpE,EAAKlC,MAAMkC,EAAKlC,MAAM8E,QAAQY,IAAWW,aAAc,EACvDnE,EAAKlC,MAAMkC,EAAKlC,MAAM8E,QAAQY,IAAWD,aAAe/H,EAAIE,MAAMmK,UAElE7F,EAAKf,cAAcrC,EAAQJ,cAC3BwD,EAAKlC,MAAMkC,EAAKlC,MAAM8E,QAAQY,IAAW7E,cAAgBmH,OAAOC,UAAU/F,EAAKf,cAAcrC,EAAQJ,YAAcwD,EAAKnB,eAAejC,EAAQJ,YAAc,KAAKwJ,QAAQ,IACtKhG,EAAKf,cAAcrC,EAAQJ,aAAewD,EAAKnB,eAAejC,EAAQJ,cACxEwD,EAAKlC,MAAMkC,EAAKlC,MAAM8E,QAAQY,IAAWY,cAAe,EACxDpE,EAAKlC,MAAMkC,EAAKlC,MAAM8E,QAAQY,IAAWW,aAAc,EACvDnE,EAAKjC,mBAAqBiC,EAAKjC,mBAAmBkI,OAAOtB,GACzD3E,EAAKP,qBAAuBO,EAAKP,qBAAqBwG,OAAOtB,GAC7D3E,EAAKT,yBAMbmF,GAA0B,UArDrBA,EAAaH,WAwDhBd,EAAelC,EAAakC,KAC5BA,EAAKyC,SAAS,QAChBjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQ5L,OAEzCiJ,EAAKyC,SAAS,SACrBjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQ7L,OAEzCkJ,EAAKyC,SAAS,QACrBjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQlM,MAEzCuJ,EAAKyC,SAAS,OACrBjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQ/L,KAEzCoJ,EAAKyC,SAAS,SACrBjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQ9L,KAEzCmJ,EAAKyC,SAAS,UAAYzC,EAAKyC,SAAS,SAC/CjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQjM,OAEzCsJ,EAAKyC,SAAS,eAAiBzC,EAAKyC,SAAS,gBACpDjL,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQhM,YAGhDa,KAAKkL,WAAW5E,EAAciC,EAAU4C,EAAQ5L,WAK9CkL,GAAS,EACbzK,KAAK6C,MAAM0C,QAAO,SAACoB,GACbA,EAAEvB,MAAQmD,EAASnD,OACP,GAAVqF,IACFA,EAAQ1F,EAAKlC,MAAM8E,QAAQhB,OAGnB,GAAV8D,GAAeA,GAASzK,KAAK6C,MAAMgD,OAAS,IAC9C7F,KAAK6C,MAAM6E,OAAO+C,EAAO,GACzBzK,KAAK8C,mBAAmB4E,OAAO+C,EAAO,GACtCzK,KAAKwE,qBAAqBkD,OAAO+C,EAAO,GACxCzK,KAAKsE,sBAKT9B,EAAAjE,UAAA6M,cAAA,WAEOpL,KAAKyD,iBAURzD,KAAK6C,MAAM0C,QAAO,SAACC,GAGjBA,EAAQyD,SAAU,IAEpBjJ,KAAKyD,iBAAkB,EACvBzD,KAAKqD,kBAAoB,IAfzBrD,KAAK6C,MAAM0C,QAAO,SAACC,GAGjBA,EAAQyD,SAAU,IAEpBjJ,KAAKyD,iBAAkB,EACvBzD,KAAKqD,kBAAoBrD,KAAK6C,MAAMgD,SAcxCrD,EAAAjE,UAAA8M,mBAAA,SAAmBhD,GAEjBA,EAAKY,SAAWZ,EAAKY,QACjBZ,EAAKY,QACPjJ,KAAKqD,oBAELrD,KAAKqD,oBACHrD,KAAKqD,mBAAqBrD,KAAK6C,MAAMgD,OACvC7F,KAAKyD,iBAAkB,EAIvBzD,KAAKyD,iBAAkB,GAM3BjB,EAAAjE,UAAA+M,eAAA,SAAe/C,GAKb,GAJIA,EAASU,SACXjJ,KAAKqD,oBAEPrD,KAAK6C,MAAM6E,OAAO1H,KAAK6C,MAAM8E,QAAQY,GAAW,GAC5CA,EAASY,aAAc,KACrBlI,EAAmB,GACvBA,EAAOiE,KAAKqD,EAASpD,IACrBnF,KAAK0C,cAAc5B,OAAOG,EAAQjB,KAAKG,QAAQ6E,YAE/ChF,KAAK8C,mBAAmB4E,OAAO1H,KAAK8C,mBAAmB6E,QAAQ3H,KAAK8C,mBAAmB8E,OAAM,SAACjB,GAAK,OAAAA,EAAEC,UAAY2B,EAASnD,OAAM,IAAK,GACrIpF,KAAKwE,qBAAqBkD,OAAO1H,KAAKwE,qBAAqBmD,QAAQ3H,KAAKwE,qBAAqBoD,OAAM,SAACjB,GAAK,OAAAA,EAAEC,UAAY2B,EAASnD,OAAM,IAAK,GAC3IpF,KAAKsE,oBAEuB,GAA1BtE,KAAKqD,oBACPrD,KAAKyD,iBAAkB,IAG3BjB,EAAAjE,UAAAgN,uBAAA,WAAA,IAAAxG,EAAA/E,KACMsG,EAA2B,GAC/BtG,KAAK6C,MAAM0C,QAAO,SAACC,GACFS,SAASuF,eAAehG,EAAQJ,MACvCqG,SACNnF,EAAapB,KAAKM,SAElBkG,EAAyB,GAC7BpF,EAAaf,QAAO,SAACC,GACnBkG,EAAaxG,KAAKM,EAAQL,IAC1BJ,EAAKlC,MAAM6E,OAAO3C,EAAKlC,MAAM8E,QAAQnC,GAAU,GAC3CA,EAAQ2D,eAKVpE,EAAKjC,mBAAmB4E,OAAO3C,EAAKjC,mBAAmB6E,QAAQ5C,EAAKjC,mBAAmB8E,OAAM,SAACjB,GAAK,OAAAA,EAAEC,UAAYpB,EAAQJ,OAAM,IAAK,GACpIL,EAAKP,qBAAqBkD,OAAO3C,EAAKP,qBAAqBmD,QAAQ5C,EAAKP,qBAAqBoD,OAAM,SAACjB,GAAK,OAAAA,EAAEC,UAAYpB,EAAQJ,OAAM,IAAK,GAC1IL,EAAKT,uBAGTtE,KAAK0C,cAAc5B,OAAO4K,EAAc1L,KAAKG,QAAQ6E,gBAEjD2G,EAAc1F,SAASuF,eAAe,eAC5B,MAAVG,IACFA,EAAOF,SAAU,GACnBzL,KAAKqD,kBAAoB,EACzBrD,KAAKyD,iBAAkB,GAIzBjB,EAAAjE,UAAAsK,sBAAA,SAAsBjC,GACpB,OAAIA,EAASf,QAAU,GACde,EAEWA,EAASW,UAAU,EAAG,GAEnB,IADHX,EAASW,UAAUX,EAASY,YAAY,KAAO,IAKrEhF,EAAAjE,UAAAwK,oBAAA,SAAoBnC,GAClB,OAAOA,GAGTpE,EAAAjE,UAAA2M,WAAA,SAAWU,EAAarD,EAAoBsD,GAA5C,IAAA9G,EAAA/E,KACE,OAAQ6L,GACN,KAAKV,EAAQlM,KACXsJ,EAASE,OAAS,wCAClBzI,KAAK6C,MAAMqC,KAAKqD,GAChB,MAGF,KAAK4C,EAAQ/L,IACXmJ,EAASE,OAAS,uCAClBzI,KAAK6C,MAAMqC,KAAKqD,GAChB,MAGF,KAAK4C,EAAQjM,MACXqJ,EAASE,OAAS,yCAClBzI,KAAK6C,MAAMqC,KAAKqD,GAChB,MAGF,KAAK4C,EAAQ9L,IACXkJ,EAASE,OAAS,uCAClBzI,KAAK6C,MAAMqC,KAAKqD,GAChB,MAGF,KAAK4C,EAAQhM,WACXoJ,EAASE,OAAS,uCAClBzI,KAAK6C,MAAMqC,KAAKqD,GAChB,MAGF,KAAK4C,EAAQ5L,MACXgJ,EAASE,OAAS,wCAClBzI,KAAK6C,MAAMqC,KAAKqD,GAChB,MAGF,KAAK4C,EAAQ7L,UACPwM,EAAS,IAAI5B,WAEjB4B,EAAOC,cAAcH,GACrBE,EAAOzB,OAAM,SAAI2B,OACXC,EAASH,EAAOtB,OACpB,GAAqB,MAAjBzF,EAAKnC,SAAkB,KACrBsJ,EAAYnH,EAAKnC,SAASnB,IAAI0K,EAAAA,cAClC5D,EAASE,OAASyD,EAAUE,+BAA+BH,QAE3D1D,EAASE,OAASwD,EACpBlH,EAAKlC,MAAMqC,KAAKqD,MAOxB/F,EAAAjE,UAAAwJ,aAAA,SAAasE,GAEX,QADIjH,EAAe,GACViB,EAAI,EAAGA,EAAIgG,EAAQxG,OAAQQ,IAClCjB,GAAQiH,EAAQhG,GAAK,IAEvB,OAAOjB,GAMT5C,EAAAjE,UAAA+N,WAAA,SAAWvG,EAAasC,GACtBA,EAAKgB,cAAgBtD,EAAOwG,KAAKnH,SAC7BoH,EAAuC,IAAIjK,EAC3C8F,EAAKgB,eAAiBrJ,KAAKiF,iBAAiBf,oBAC2B,EAArElE,KAAK8E,kBAAkB8C,OAAM,SAACjB,GAAK,OAAAA,EAAEpF,YAAc8G,EAAKlD,KAAIU,QAC9D7F,KAAK8E,kBAAkB4C,OAAO1H,KAAK8E,kBAAkB2H,UAAS,SAAC9F,GAAK,OAAAA,EAAEpF,YAAc8G,EAAKlD,KAAK,GAEvB,EAArEnF,KAAK8E,kBAAkB8C,OAAM,SAACjB,GAAK,OAAAA,EAAEpF,YAAc8G,EAAKlD,KAAIU,QAC9D2G,EAAoBxM,KAAK8E,kBAAkB8C,OAAM,SAACjB,GAAK,OAAAA,EAAEpF,YAAc8G,EAAKlD,KAAI,IAC9DuF,eAAiBrC,EAAKgB,eAExCmD,EAAkBjL,WAAa8G,EAAKlD,GACpCqH,EAAkB9B,eAAiBrC,EAAKgB,cACxCrJ,KAAK8E,kBAAkBI,KAAKsH,KAKlChK,EAAAjE,UAAAmO,OAAA,WAAA,IAAA3H,EAAA/E,KACE,GAAIA,KAAKsE,mBAAqBtE,KAAK6C,MAAM+E,OAAM,SAACjB,GAAK,OAAAA,EAAEuC,aAAevC,EAAEwC,eAActD,OAKpF,OADA7F,KAAKyC,WAAW2D,QAAQ,eACjB1F,EAAAA,IAAG,GAEZ,GAA6B,MAAzBV,KAAKiF,iBACP,OAAOvE,EAAAA,GAAGV,KAAK8C,oBAEf,GAAqC,GAAjC9C,KAAK8E,kBAAkBe,OACzB,OAAOnF,EAAAA,GAAGV,KAAK8C,wBAET6J,EAAU3M,KAAK2C,YAAYmE,KAAK,CACpC8F,QAAS,WAAa5M,KAAKiF,iBAAiBoE,gBAE9C,OAAOrJ,KAAK0C,cAAcb,sBAAsB7B,KAAK8E,kBAAmB9E,KAAKG,QAAQE,KACnFwM,EAAAA,IAAG,SAACtM,GAIF,OAHW,MAAPA,GACFwE,EAAKtC,WAAWhC,MAAM,MAAQsE,EAAKE,iBAAiBoE,cAAgB,eAAiBtE,EAAKE,iBAAiBf,oBAAsB,MAAQ3D,EAAIE,MAAMmK,SACrJ+B,EAAQlF,QACD1C,EAAKjC,uBAMtBN,EAAAjE,UAAAuC,OAAA,WAAA,IAAAiE,EAAA/E,KACwC,GAAlCA,KAAK8C,mBAAmB+C,SAE5B7F,KAAK8C,mBAAmByC,QAAO,SAACC,GAC9BT,EAAKnE,eAAesE,KAAKM,EAAQjE,cAEnCvB,KAAK0C,cAAc5B,OAAOd,KAAKY,eAAgBZ,KAAKG,QAAQ6E,cAI9DxC,EAAAjE,UAAAuO,sBAAA,WACE,OAAO9M,KAAK8C,oBAGdN,EAAAjE,UAAA8C,UAAA,SAAOgH,GACLrI,KAAK6C,MAAM6E,OAAO1H,KAAK6C,MAAM8E,QAAQU,GAAO,GACxCA,EAAKc,cACPnJ,KAAKsE,oBACkE,EAArEtE,KAAK8E,kBAAkB8C,OAAM,SAACjB,GAAK,OAAAA,EAAEpF,YAAc8G,EAAKlD,KAAIU,QAC9D7F,KAAK8E,kBAAkB4C,OAAO1H,KAAK8E,kBAAkB2H,UAAS,SAAC9F,GAAK,OAAAA,EAAEpF,YAAc8G,EAAKlD,KAAK,IAOlG3C,EAAAjE,UAAAmK,YAAA,SAAYb,GACV,OAAIA,EAAO,QACDA,EAAO,MAAMkD,QAAQ,GAAK,IAC3BlD,EAAO,SACNA,EAAO,MAAMkD,QAAQ,GAAK,IAC3BlD,EAAO,WACNA,EAAO,KAAO,MAAMkD,QAAQ,GAAK,IAClClD,EAAO,YACNA,EAAO,KAAO,MAAMkD,QAAQ,GAAK,KAEjClD,EAAO,KAAO,KAAO,MAAMkD,QAAQ,GAAK,KAEpDvI,EAAAjE,UAAAwO,YAAA,WACE/M,KAAKkD,SAAW,GAIlBV,EAAAjE,UAAAyO,WAAA,WACEhN,KAAKkD,SAAW,EAEc,GAA1BlD,KAAKqD,mBAA0BrD,KAAKqD,mBAAqBrD,KAAK6C,MAAMgD,SACtE7F,KAAKyD,iBAAkB,IAI3BjB,EAAAjE,UAAA0O,UAAA,SAAU5E,GACRA,EAAKlF,SAAU,GAEjBX,EAAAjE,UAAA2O,SAAA,SAAS7E,GACPA,EAAKlF,SAAU,uBA1oBlB1E,EAAAA,UAASL,KAAA,CAAC,CACTM,SAAU,kBACVC,SAAA,84bAfOwO,EAAAA,uBAFArN,SAUAsN,EAAAA,sBAf4DC,EAAAA,4CAgFlEC,EAAAA,sBACAA,EAAAA,wBACAA,EAAAA,yBACAA,EAAAA,yBACAA,EAAAA,sBAIAC,EAAAA,UAASnP,KAAA,CAAC,aAykBboE,EAjqBA,GCAAgL,EAAA,WAME,SAAAA,KAwEF,OAtEEA,EAAAjP,UAAAkP,eAAA,SAAelM,EAAoBpB,GACjC,MAAO,oDAAsDoB,EAAa,WAAapB,EAAS,UAAYH,KAAK0N,SAAS1N,KAAK2N,YAAYpM,EAAYpB,KAGzJqN,EAAAjP,UAAAqP,uBAAA,SAAuBhN,EAAwBT,OACzC0N,EAAiBnI,KAAKC,MAAM/E,GAChC,MAAO,8DAAgEA,EAAiB,WAAaT,EAAS,UAAYH,KAAK0N,SAAS1N,KAAK2N,YAAYE,EAAK,GAAI1N,KAGpKqN,EAAAjP,UAAAuP,+BAAA,SAA+BlN,EAAwBT,EAAgB4N,OACjEF,EAAiBnI,KAAKC,MAAM/E,GAQhC,OAPe,MAAXmN,GAA8B,IAAXA,IACrBA,EAAU,eACPA,EAAQC,SAAS,UACpBD,GAAW,QAIN,8DAAgEnN,EAAiB,WAAaT,EAAS,UAAYH,KAAK0N,SAAS1N,KAAK2N,YAAYE,EAAK,GAAI1N,IAAW,YAAc8N,mBAAmBF,IAGhNP,EAAAjP,UAAA2P,sBAAA,SAAsB3M,EAAoBpB,EAAgBgO,GAExD,MAAO,uDAAyD5M,EAAa,WAAapB,EAAS,YAAcgO,EAAU,UAAYnO,KAAK0N,SAAS1N,KAAK2N,YAAYpM,EAAYpB,KAK5KqN,EAAAjP,UAAAoP,YAAR,SAAoBS,EAAaC,OAC3BtE,EAAMqE,EAAIvI,OAASwI,EAAKxI,OAASuI,EAAIvI,OAASwI,EAAKxI,OACnDtF,EAAc,GACd8F,EAAI,EACR,IAAKA,EAAI,EAAGA,EAAI0D,EAAK1D,IACnB9F,GAAO6N,EAAI7G,UAAUlB,EAAGA,EAAI,GAC5B9F,GAAO8N,EAAK9G,UAAUlB,EAAGA,EAAI,GAG/B,OADA9F,GAAO6N,EAAIvI,OAASwI,EAAKxI,OAASwI,EAAK9G,UAAUlB,GAAK+H,EAAI7G,UAAUlB,IAI9DmH,EAAAjP,UAAAmP,SAAR,SAAiBU,OACXE,EAAQ,CAAC,EAAG,EAAG,GACF,GAAbF,EAAIvI,SACNuI,EAAMA,EAAI7G,UAAU,EAAG,SACrB1B,EAAS0D,KAAKgF,MAAMH,EAAIvI,OAAS,GACjCwI,EAAOD,EAAI7G,UAAU,EAAG1B,GACxB2I,EAAOJ,EAAI7G,UAAU1B,EAAQ,EAAIA,GACjC4I,EAAOL,EAAI7G,UAAU,EAAI1B,EAAQ,EAAIA,GACrC6I,EAAc,GACdC,EAASpF,KAAKC,KAAqB,EAAhBD,KAAKoF,UAC5BD,EAAYxJ,KAAKoJ,EAAMK,EAAS,IAChCL,EAAM5G,OAAOiH,EAAS,EAAG,GACzBA,EAASpF,KAAKC,KAAqB,EAAhBD,KAAKoF,UACxBD,EAAYxJ,KAAKoJ,EAAMK,EAAS,IAChCL,EAAM5G,OAAOiH,EAAS,EAAG,GACzBD,EAAYxJ,KAAKoJ,EAAM,QACnBM,EAAoBrF,KAAKsF,OAAM,IAAIC,MAAOC,UAAY,KAAQ,GAElE,OAAOH,EAAUrH,UAAU,EAAG,GAAK,QAAUmH,EAAY,GAAUA,EAAY,GAAUA,EAAY,GAAK1O,KAAKgP,UAAUX,EAAMG,EAAMC,EAAMC,EAAY,IAAM1O,KAAKgP,UAAUX,EAAMG,EAAMC,EAAMC,EAAY,IAAM1O,KAAKgP,UAAUX,EAAMG,EAAMC,EAAMC,EAAY,IAAM,QAAUE,EAAUrH,UAAU,IAG3RiG,EAAAjP,UAAAyQ,UAAR,SAAkBX,EAAcG,EAAcC,EAAcpI,GAC1D,OAAQA,GACN,KAAK,EAAG,OAAOgI,EACf,KAAK,EAAG,OAAOG,EACf,KAAK,EAAG,OAAOC,wBAtEpBtQ,EAAAA,mDA2EDqP,EA9EA,GCAAyB,EAAA,WAeA,SAAAA,KAiB4B,2BAjB3BpQ,EAAAA,SAAQT,KAAA,CAAC,CACRU,aAAc,CAAC0D,GACfzD,QAAS,CACPmQ,EAAAA,aACAC,EAAAA,cACAC,EAAAA,aACAC,EAAAA,eAAeC,UACfC,EAAAA,cAAcD,UACdE,EAAAA,eACAC,EAAAA,YACAC,EAAAA,iBAGF1Q,QAAS,CAACwD,GACVmN,gBAAiB,CAACnN,GAClBoN,UAAW,CAAC9P,EAAe0N,OAEDyB,EAhC5B,GAkCaY,EAAKZ,EClClBa,EAAA,WAiBE,SAAAA,EAAoBC,GAAA/P,KAAA+P,aAAAA,EAJpB/P,KAAAY,eAAwB,GAqC1B,OA7BEkP,EAAAvR,UAAAC,SAAA,aAGAsR,EAAAvR,UAAAyR,WAAA,WAAA,IAAAjL,EAAA/E,KACEA,KAAKiQ,IAAMjQ,KAAK+P,aAAajJ,KAAKtE,EAAqB,CACrD0N,MAAO,OACPvM,MAAO,IAAKwM,OAAQ,IACpBnJ,QAAS,CACP,CACEC,KAAM,KAAMC,IAAK,uCAAwCkJ,QAAS,mBAAoBjJ,OAAM,WAC1FpC,EAAKsL,WAAW3D,SAChB3H,EAAKkL,IAAIxI,UAGb,CACER,KAAM,KAAMC,IAAK,6BAA8BkJ,QAAS,mBAAoBjJ,OAAM,WAChFpC,EAAKsL,WAAWvP,SAChBiE,EAAKkL,IAAIxI,WAKf6I,aAAa,IAGftQ,KAAKiQ,IAAIM,QAAQrO,OAAOlC,KAAKkC,4BA1ChCzD,EAAAA,UAASL,KAAA,CAAC,CACTM,SAAU,mBACVC,SAAA,8DALmB6R,EAAAA,kDAclBlD,EAAAA,0BAIAC,EAAAA,UAASnP,KAAA,CAACoE,MA+BbsN,EAlDA,GCAAW,EAAA,WAUI,SAAAA,EAAoBV,EAAsCW,EAA4D9N,GAAlG5C,KAAA+P,aAAAA,EAAsC/P,KAAA0Q,yBAAAA,EAA4D1Q,KAAA4C,SAAAA,EAItH5C,KAAAgC,aAAiC,GAqGrC,OAnGIyO,EAAAlS,UAAAyR,WAAA,SAAW9N,EAAgB/B,GAA3B,IAAA4E,EAAA/E,KACQsH,EAAO,EACX,OAAO,IAAIqJ,QAAO,SAACC,OAEXC,EADgB9L,EAAK2L,yBAAyBI,wBAAwBtO,GAC5CuO,OAAOhM,EAAKnC,UAE1CiO,EAAUG,SAAS7Q,OAASA,EAC5B0Q,EAAUG,SAAS9O,OAASA,EAE5B6C,EAAKkL,IAAMlL,EAAKgL,aAAajJ,KAAK+J,EAAW,CACzCX,MAAO,OACPvM,MAAO,IAAKwM,OAAQ,IACpBnJ,QAAS,CACL,CACIC,KAAM,KAAMC,IAAK,uCAAwCC,OAAM,WAC3DpC,EAAKkL,IAAIM,QAAQ7D,SAAS1H,UAAS,SAC/BzE,GACQA,IACAqQ,EAAQrQ,GACR+G,EAAO,EACPvC,EAAKkL,IAAIxI,aAM7B,CACIR,KAAM,KAAMC,IAAK,6BAA8BC,OAAM,WACjDpC,EAAKkL,IAAIxI,WAKrB6I,aAAa,EACbW,eAAe,EACfC,YAAW,WAGP,OAFY,GAAR5J,GACAvC,EAAKkL,IAAIM,QAAQzP,SACdJ,EAAAA,IAAG,SAM1B+P,EAAAlS,UAAAmD,WAAA,SAAWQ,EAAgB/B,EAAe0E,GACtC,YADsC,IAAAA,IAAAA,EAAA,IAC/B7E,KAAKmR,oBAAoBjP,EAAQ/B,EAAQ,KAAM0E,IAI1D4L,EAAAlS,UAAA4S,oBAAA,SAAoBjP,EAAgB/B,EAAgBiR,EAAoBvM,GAAxE,IAAAE,EAAA/E,UAAwE,IAAA6E,IAAAA,EAAA,QAChEyC,EAAO,EACX,OAAO,IAAIqJ,QAAO,SAACC,OAEXS,EADgBtM,EAAK2L,yBAAyBI,wBAAwBtO,GAC5CuO,OAAOhM,EAAKnC,UAC7B,MAATwO,IACAC,EAAUL,SAASpM,UAAYwM,EAAMxM,UACf,MAAlBwM,EAAMzM,UAAsC,IAAlByM,EAAMzM,WAChC0M,EAAUL,SAASrM,SAAWyM,EAAMzM,WAG5C0M,EAAUL,SAAS7Q,OAASA,EAC5BkR,EAAUL,SAAS9O,OAASA,EAC5BmP,EAAUL,SAASnM,UAAUA,EAE7BE,EAAKkL,IAAMlL,EAAKgL,aAAajJ,KAAKuK,EAAW,CACzCnB,MAAO,OACPvM,MAAO,IAAKwM,OAAQ,IACpBnJ,QAAS,CACL,CAEIC,KAAM,KAAMC,IAAK,uCAAwCC,OAAM,WAC3DpC,EAAKkL,IAAIM,QAAQ7D,SAAS1H,UAAS,SAC/BzE,GACQA,IACAqQ,EAAQrQ,GACR+G,EAAO,EACPvC,EAAKkL,IAAIxI,aAM7B,CACIR,KAAM,KAAMC,IAAK,6BAA8BC,OAAM,WACjDpC,EAAKkL,IAAIxI,WAKrB6I,aAAa,EACbW,eAAe,EACfC,YAAW,WAGP,OAFY,GAAR5J,GACAvC,EAAKkL,IAAIM,QAAQzP,SACdJ,EAAAA,IAAG,6BAtG7BvC,EAAAA,sDANQqS,EAAAA,sBAFsBc,EAAAA,gCAAVjE,EAAAA,YAmHrBoD,EAnHA,GCAAc,EAAA,WAkBA,SAAAA,KAekC,2BAfjC1S,EAAAA,SAAQT,KAAA,CAAC,CACRU,aAAc,CAACgR,GACf/Q,QAAS,CACPmQ,EAAAA,aACAsC,EAAAA,mBACAnC,EAAAA,eAAeC,UACfL,EACAE,EAAAA,cACAC,EAAAA,aAAaE,UACbmC,EAAAA,kBAEFzS,QAAS,CAAC8Q,EAAsBtN,GAChCmN,gBAAiB,CAACG,EAAsBtN,GACxCoN,UAAW,CAACY,EAAAA,eAAgBpO,EAAAA,YAAaqO,EAAqB3Q,OAE9ByR,EAjClC,GCAAG,EAAA,SAAAA,IACW1R,KAAA2E,SAAmB,IACnB3E,KAAA4E,UAAoB,GCC/B+M,EAAA,SAAAA,MCHAC,EAAA,SAAAA,MCAAC,EAAA,SAAAA","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 { NgModule } from '@angular/core';\nimport { FormdocUploadComponent } from './formdoc-upload.component';\n\n\n@NgModule({\n declarations: [FormdocUploadComponent],\n imports: [\n ],\n exports: [FormdocUploadComponent]\n})\nexport class FormdocUploadModule { }\n","export enum DocType{\r\n Word,\r\n Excel,\r\n Powerpoint,\r\n Pdf,\r\n Txt,\r\n Image,\r\n Other\r\n}","import { GspDocMetaProperty } from './gspdocmetaproperty';\r\n\r\nexport class GspFormDocInfo {\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileContent: string;\r\n public index: number;\r\n public total: number;\r\n public exPropertyName: string;\r\n public extProperty: GspDocMetaProperty;\r\n}","export enum OperatingModes{\r\n Formal,\r\n Temp\r\n}","import { OperatingModes } from \"./operatingmodes\";\r\n\r\nexport class GspFormRemoveListEntity {\r\n public metadataIdList: string[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspFormDocOperateEntity {\r\n public metadataIdList: string[];\r\n public rootId: string;\r\n}","import { ExStorageFileInfo } from './extensionstoragefileinfo';\r\n\r\nexport class ChangeInstanceRequest {\r\n public fileInfoList: ExStorageFileInfo[];\r\n public rootId: string;\r\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GspFormUploadListEntity } from './entity/gspformuploadlistentity';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { catchError, tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { GspFormRemoveListEntity } from './entity/gspformremovelistentity';\nimport { of } from 'rxjs/observable/of';\nimport { GspFormDocOperateEntity } from './entity/gspformdocoperateentity';\n\nimport { GspFormUploadEntity } from './entity/gspformuploadentity';\nimport { ExStorageFileInfo } from './entity/extensionstoragefileinfo';\nimport { ChangeInstanceRequest } from './entity/changeinstancerequest';\nimport { OperatingModes } from './entity/operatingmodes';\n\n\n\n@Injectable()\nexport class UploadService {\n\n constructor(private http: HttpService) { }\n\n uploadList(docListInfo: GspFormUploadListEntity, rootId: string): Observable<any> {\n let url;\n docListInfo.rootId = rootId;\n\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docListInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n commit(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/commit\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/commit\";\n\n return this.http.post(url, entity).pipe();\n }\n\n cancel(metadataIdList: string[], rootId: string): Observable<any> {\n let url;\n let entity: GspFormDocOperateEntity = new GspFormDocOperateEntity;\n entity.metadataIdList = metadataIdList;\n entity.rootId = rootId;\n url = \"/api/runtime/dfs/v1.0/formdoc/cancel\";\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/cancel\";\n //localStorage.setItem(\"SessionId\",\"huoliang\");\n return this.http.put(url, entity).pipe();\n }\n\n removeList(idList: string[], rootId: string) {\n let url;\n //url = \"http://localhost:5000/api/runtime/dfs/v1.0/formdoc/list\";\n url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n var idListInfo = new GspFormRemoveListEntity;\n idListInfo.metadataIdList = idList;\n idListInfo.mode = OperatingModes.Temp;\n idListInfo.rootId = rootId;\n return this.http.delete(url, idListInfo).pipe();\n }\n\n getFile(metadataId: string, rootId: string) {\n\n let url;\n if (rootId == \"\")\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId;\n else\n url = \"/api/runtime/dfs/v1.0/formdoc/file/\" + metadataId + \"/\" + rootId;\n return this.http.get(url).pipe(tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n\n }\n\n uploadFile(docInfo: GspFormUploadEntity): Observable<any> {\n\n let url = \"/api/runtime/dfs/v1.0/formdoc\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.post(url, docInfo).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getStorageExtensionInfo(): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/storagestrategy/extension\";\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n changeStorageInstance(storageInfoList: ExStorageFileInfo[], rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/changeinstance\";\n let request: ChangeInstanceRequest = new ChangeInstanceRequest;\n request.fileInfoList = storageInfoList;\n request.rootId = rootId;\n return this.http.post(url, request).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n\n getUploadedFileInfoList(formId: string, rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/formdoc/uploadedfile/infolist\" + \"?formid=\" + formId + \"&rootid=\" + rootId;\n //url = \"/api/runtime/dfs/v1.0/formdoc/list\";\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n getRootSetting(rootId: string): Observable<any> {\n let url = \"/api/runtime/dfs/v1.0/rootsetting/\" + rootId;\n\n return this.http.get(url).pipe(\n tap(res => { }),\n catchError((error: HttpErrorResponse) => {\n return of(error);\n }));\n }\n\n}\n","export class UploadFileInfo {\r\n\r\n public metadataId: string;\r\n public fileName: string;\r\n public fileSize:string;\r\n\r\n}","import { OperatingModes } from './operatingmodes';\r\nimport { GspFormDocInfo } from './gspformdocinfo';\r\n\r\nexport class GspFormUploadEntity{\r\n public formId: string;\r\n public docInfo: GspFormDocInfo;\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n\r\n}","export class ExStorageFileInfo {\r\n public metadataId: string;\r\n public exPropertyName: string;\r\n}","import { Component, OnInit, Input, ViewChild, TemplateRef, Optional, Injector } from '@angular/core';\nimport { FileInfo } from '../entity/fileinfo';\nimport { DocType } from '../entity/doctype';\nimport { GspFormDocInfo } from '../entity/gspformdocinfo';\nimport { OperatingModes } from '../entity/operatingmodes';\nimport { UploadService } from '../upload.service';\nimport { UploadFileInfo } from '../entity/uploadfileinfo';\nimport { MessagerService } from '@farris/ui-messager';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { GspFormUploadEntity } from '../entity/gspformuploadentity';\nimport { UUID } from 'angular2-uuid';\nimport { StorageExtension } from '../entity/storageextension';\nimport { ExStorageFileInfo } from '../entity/extensionstoragefileinfo';\nimport { DropListEntity } from '../entity/droplistentity';\nimport { LoadingService } from '@farris/ui-loading';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { fillProperties } from '@angular/core/src/util/property';\n\n\n@Component({\n selector: 'app-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.css'],\n})\nexport class FileUploadComponent implements OnInit {\n\n files: FileInfo[] = [];\n metadataIdList: string[] = [];\n uploadFileInfoList: UploadFileInfo[] = [];\n errFileList: string[] = [];\n errTypeList: string[] = [];\n nullFileList: string[] = [];\n showType: number = 0;\n mouseOn: boolean = false;\n bufferSize = 1024 * 1024;\n selectedFiles: any;\n\n selectedFileCount: number = 0;\n\n uploadIconAddress = '/platform/runtime/dfs/images/upload.svg';\n uploadLittleIconAddress = '/platform/runtime/dfs/images/uploadIcon.svg';\n\n hasSelectedFile: boolean = false;\n\n fileAllSelected: boolean = false;\n\n uploadProcess = { width: '0%' };\n\n fileTotalChunk: { [key: string]: number } = {};\n //fileUploadState: { [key: string]: boolean } = {};\n //flag: number = 0;\n requestArray: Array<Observable<any>> = new Array;\n\n requestBodyArray: Array<GspFormUploadEntity> = new Array;\n\n uploadedChunk: { [key: string]: number } = {};\n uploadedProcess: { [key: string]: number } = {};\n\n //allSelected: boolean = true;\n storageExtension: StorageExtension;\n\n defaultPropertyName: string = \"\";\n propertiesNames: DropListEntity[] = [];\n\n queueListStyle = { width: '480px' };\n\n dropListValue: string = \"\";\n\n uploadedFileTotal: number = 0;\n\n haveExtensionProperty: boolean = false;\n\n uploadedFileInfoList = [];\n oldUploadedFileList = [];\n //uploadedNameList = [];\n\n sameNameAllowed = true;\n\n constructor(private msgService: MessagerService, private uploadService: UploadService, private loadService: LoadingService, private injector?: Injector) { }\n @Input() formId: string;\n @Input() rootId: string;\n @Input() fileType: string = \"*\";\n @Input() fileCount: number = 0;\n @Input() oldIdList: string[] = [];\n\n //@Output() onCustomEvent: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('opCell') opCell: TemplateRef<any>;\n\n ngOnInit() {\n //if (this.storageService != null) {\n this.uploadService.getStorageExtensionInfo().subscribe(\n res => {\n if (res != null && res.error == null) {\n this.storageExtension = res;\n this.defaultPropertyName = this.storageExtension.defaultPropertyName;\n this.propertiesNames.push({ id: \"0\", name: this.storageExtension.defaultPropertyName });\n let i = 0;\n // this.propertiesNames.push(...(this.storageExtension.extensionPropertyNameList));\n this.storageExtension.extensionPropertyNameList.forEach(element => {\n this.propertiesNames.push({ id: (++i).toString(), name: element });\n });\n this.queueListStyle.width = '380px';\n this.haveExtensionProperty = true;\n\n }\n }\n )\n\n this.uploadService.getRootSetting(this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.sameNameAllowed = res.sameNameAllowed;\n if (!this.sameNameAllowed) {\n this.uploadService.getUploadedFileInfoList(this.formId, this.rootId).subscribe(\n res => {\n if (res != null && res.error == null) {\n this.uploadedFileInfoList = res;\n this.oldUploadedFileList = JSON.parse(JSON.stringify(res));;\n\n }\n })\n }\n }\n }\n )\n if (this.oldIdList != null && this.oldIdList.length > 0) {\n this.uploadService.cancel(this.oldIdList, this.rootId).subscribe();\n }\n }\n\n\n fileSelected($event) {\n 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('已鿩' + selectedNum + '个æä»¶ï¼è¶
è¿ç³»ç»è®¾ç½®çæ°ééå¶' + this.fileCount + '个ï¼è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n return;\n }\n }\n\n //this.flag = 0;\n for (let i = 0; i < this.selectedFiles.files.length; i++) {\n let selectedFile = this.selectedFiles.files[i];\n //selectedFile.slice\n let uuid = UUID.UUID();\n if (!this.sameNameAllowed) {\n if (this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name) != null) {\n // this.uploadedNameList.push(selectedFile.name);\n // this.msgService.question('ä¹åå·²ä¸ä¼ è¿ååæä»¶: ' + selectedFile.name + 'ï¼éè¦æ¿æ¢ä¹ï¼', () => {\n // uuid = this.uploadedFileInfoList.find(x => x.fileName == selectedFile.name).metadataId;\n // this.uploadFile(uuid, selectedFile);\n // })\n const msg = this.msgService.show('warning', 'å·²ä¸ä¼ è¿ååæä»¶: ' + selectedFile.name, {\n initialState: {\n buttons: [\n {\n text: 'éå½å',\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: 'æ¿æ¢',\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);\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: 'åæ¶',\n cls: 'btn btn-secondary',\n handle: () => {\n msg.close();\n }\n }\n ]\n }\n })\n continue;\n }\n }\n\n // if (this.files.find(x => x.name == selectedFile.name) != null) {\n // this.errFileList.push(selectedFile.name);\n // continue;\n // }\n\n if (selectedFile.size == 0) {\n this.nullFileList.push(selectedFile.name);\n continue;\n }\n\n //this.flag += Math.ceil(selectedFile.size / this.bufferSize);\n //let reader = new FileReader();\n this.uploadFile(uuid, selectedFile, selectedFile.name);\n\n }\n // if (this.uploadedNameList.length > 0) {\n // let name: string = this.listToString(this.uploadedNameList);\n // this.msgService.warning('ä¹åå·²ä¸ä¼ è¿ååæä»¶: ' + name + 'è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n // this.uploadedNameList = [];\n // }\n\n if (this.errFileList.length > 0) {\n let name: string = this.listToString(this.errFileList);\n this.msgService.warning('å·²ä¸ä¼ ååæä»¶: ' + name + 'è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n this.errFileList = [];\n }\n\n if (this.nullFileList.length > 0) {\n let name: string = this.listToString(this.nullFileList);\n name = name.substring(0, name.length - 1);\n this.msgService.warning('æä»¶: ' + name + ' 大å°ä¸º0ï¼è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n this.nullFileList = [];\n }\n // if (this.errTypeList.length > 0) {\n // let type: string = this.listToString(this.errTypeList);\n // this.msgService.warning('䏿¯æä¸ä¼ ç±»å为 ' + type + 'çæä»¶è¯·éæ°éæ©ä¸ä¼ æä»¶ã');\n // this.errTypeList = [];\n // }\n this.files = this.files.slice();\n this.fileAllSelected = false;\n $event.target.value = '';\n }\n\n showErrorMessage(file) {\n this.msgService.error('ä¸ä¼ é件失败ã' + file.errorMessage);\n }\n\n\n uploadFile(uuid: string, selectedFile, fileName: string) {\n let fileInfo: FileInfo;\n // let uuid = UUID.UUID();\n //reader.readAsBinaryString(selectedFile);\n //reader.onload = (e) => {\n fileInfo = {\n id: uuid,\n name: fileName,\n type: selectedFile.type,\n source: \"\",\n size: this.getFileSize(selectedFile.size),\n fileSize: selectedFile.size,\n picListDisplayName: this.getPicListDisplayName(fileName),\n queueListDisplayName: this.getQueueDisplayName(fileName),\n //content: reader.result.toString(),\n hasUploaded: false,\n mouseOn: false,\n selectd: false,\n isUploading: true,\n uploadResult: false,\n uploadProcess: 0,\n errorMessage: \"\",\n extensionDropListId: 0,\n extensionName: \"\"\n }\n\n if (this.storageExtension != null)\n fileInfo.extensionName = this.defaultPropertyName;\n let chunkTotal: number = Math.ceil(selectedFile.size / this.bufferSize);\n let chunkIndex: number = 0;\n\n\n this.fileTotalChunk[uuid] = chunkTotal;\n\n let uploadFileInfo = new UploadFileInfo();\n\n uploadFileInfo.metadataId = uuid;\n uploadFileInfo.fileName = fileInfo.name;\n uploadFileInfo.fileSize = fileInfo.size;\n\n\n while (chunkIndex < chunkTotal) {\n let uploadInfo = new GspFormUploadEntity;\n uploadInfo.formId = this.formId;\n uploadInfo.mode = OperatingModes.Temp;\n uploadInfo.rootId = this.rootId;\n\n let docInfo: GspFormDocInfo = new GspFormDocInfo;\n\n docInfo.fileName = fileName;\n docInfo.metadataId = uuid;\n docInfo.total = chunkTotal;\n\n this.uploadedChunk[docInfo.metadataId] = 0;\n\n let nextSize = Math.min((chunkIndex + 1) * this.bufferSize, selectedFile.size);\n let fileData = selectedFile.slice(chunkIndex * this.bufferSize, nextSize);\n let reader = new FileReader();\n reader.readAsBinaryString(fileData);\n let innerIndex = chunkIndex;\n reader.onload = () => {\n docInfo.fileContent = btoa(reader.result.toString());\n\n docInfo.index = innerIndex;\n //chunkIndex++;\n if (this.haveExtensionProperty)\n docInfo.exPropertyName = this.defaultPropertyName;\n //docInfo.isLast = true;\n uploadInfo.docInfo = docInfo;\n\n let info = uploadInfo;\n\n // this.requestArray.push(this.uploadService.uploadFile(uploadInfo));\n this.requestBodyArray.push(info);\n\n this.uploadService.uploadFile(info).subscribe(res => {\n if (res != null) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = false;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.files[this.files.indexOf(fileInfo)].errorMessage = res.error.Message;\n } else {\n this.uploadedChunk[docInfo.metadataId]++;\n this.files[this.files.indexOf(fileInfo)].uploadProcess = Number.parseInt((this.uploadedChunk[docInfo.metadataId] / this.fileTotalChunk[docInfo.metadataId] * 100).toFixed(0));\n if (this.uploadedChunk[docInfo.metadataId] == this.fileTotalChunk[docInfo.metadataId]) {\n this.files[this.files.indexOf(fileInfo)].uploadResult = true;\n this.files[this.files.indexOf(fileInfo)].isUploading = false;\n this.uploadFileInfoList = this.uploadFileInfoList.concat(uploadFileInfo);\n this.uploadedFileInfoList = this.uploadedFileInfoList.concat(uploadFileInfo);\n this.uploadedFileTotal++;\n }\n }\n });\n }\n //console.log(chunkIndex + 1);\n chunkIndex = chunkIndex + 1;\n }\n\n let type: string = selectedFile.type;\n if (type.includes(\"tiff\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n }\n else if (type.includes(\"image\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Image);\n }\n else if (type.includes(\"word\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Word);\n }\n else if (type.includes(\"pdf\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Pdf);\n }\n else if (type.includes(\"plain\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Txt);\n }\n else if (type.includes(\"sheet\") || type.includes(\"excel\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Excel)\n }\n else if (type.includes(\"powerpoint\") || type.includes(\"presentation\")) {\n this.addDocInfo(selectedFile, fileInfo, DocType.Powerpoint);\n }\n else {\n this.addDocInfo(selectedFile, fileInfo, DocType.Other);\n // let name: string = selectedFile.name;\n // let errType = name.substring(selectedFile.name.lastIndexOf('.'));\n // this.errTypeList.push(errType);\n }\n let index = -1;\n this.files.forEach(x => {\n if (x.name == fileInfo.name) {\n if (index == -1)\n index = this.files.indexOf(x);\n }\n })\n if (index != -1 && index != this.files.length - 1) {\n this.files.splice(index, 1);\n this.uploadFileInfoList.splice(index, 1);\n this.uploadedFileInfoList.splice(index, 1);\n this.uploadedFileTotal--;\n }\n }\n\n\n selectAllFile() {\n\n if (!this.fileAllSelected) {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = true;\n element.selectd = true;\n });\n this.fileAllSelected = true;\n this.selectedFileCount = this.files.length;\n\n } else {\n this.files.forEach(element => {\n // let obj: any = document.getElementById(element.name);\n // obj.checked = false;\n element.selectd = false;\n });\n this.fileAllSelected = false;\n this.selectedFileCount = 0;\n }\n }\n\n\n checkoutSelectFile(file: FileInfo) {\n // let obj: any = document.getElementById(fileName);\n file.selectd = !file.selectd;\n if (file.selectd)\n this.selectedFileCount++;\n else\n this.selectedFileCount--;\n if (this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n //this.isFileAllSelected();\n }\n else {\n this.fileAllSelected = false;\n //this.isFileAllSelected();\n }\n\n }\n\n listDeleteFile(fileInfo: FileInfo) {\n if (fileInfo.selectd)\n this.selectedFileCount--;\n //console.log(fileName);\n this.files.splice(this.files.indexOf(fileInfo), 1);\n if (fileInfo.uploadResult) {\n let idList: string[] = [];\n idList.push(fileInfo.id);\n this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == fileInfo.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n if (this.selectedFileCount == 0)\n this.fileAllSelected = false;\n }\n\n listMultipleDeleteFile() {\n let selectedFile: FileInfo[] = [];\n this.files.forEach(element => {\n let obj: any = document.getElementById(element.name);\n if (obj.checked)\n selectedFile.push(element);\n })\n let metadataList: string[] = [];\n selectedFile.forEach(element => {\n metadataList.push(element.id);\n this.files.splice(this.files.indexOf(element), 1);\n if (element.uploadResult) {\n // let idList: string[] = [];\n // idList.push(fileInfo.id);\n // this.uploadService.cancel(idList, this.rootId).subscribe();\n\n this.uploadFileInfoList.splice(this.uploadFileInfoList.indexOf(this.uploadFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileInfoList.splice(this.uploadedFileInfoList.indexOf(this.uploadedFileInfoList.filter(x => x.fileName == element.name)[0]), 1);\n this.uploadedFileTotal--;\n }\n })\n this.uploadService.cancel(metadataList, this.rootId).subscribe();\n\n let allBox: any = document.getElementById(\"allCheckBox\");\n if (allBox != null)\n allBox.checked = false;\n this.selectedFileCount = 0;\n this.fileAllSelected = false;\n }\n\n\n getPicListDisplayName(fileName: string) {\n if (fileName.length <= 10)\n return fileName;\n else {\n let headContent = fileName.substring(0, 2);\n let tailContent = fileName.substring(fileName.lastIndexOf('.') - 2);\n return headContent + \"â¦\" + tailContent;\n }\n }\n\n getQueueDisplayName(fileName: string) {\n return fileName;\n }\n\n addDocInfo(selectdFile, fileInfo: FileInfo, docType: DocType) {\n switch (docType) {\n case DocType.Word: {\n fileInfo.source = \"/platform/runtime/dfs/images/word.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Pdf: {\n fileInfo.source = \"/platform/runtime/dfs/images/pdf.png\"\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Excel: {\n fileInfo.source = \"/platform/runtime/dfs/images/excel.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Txt: {\n fileInfo.source = \"/platform/runtime/dfs/images/txt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Powerpoint: {\n fileInfo.source = \"/platform/runtime/dfs/images/ppt.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Other: {\n fileInfo.source = \"/platform/runtime/dfs/images/file.png\";\n this.files.push(fileInfo);\n break;\n }\n\n case DocType.Image:\n let reader = new FileReader();\n\n reader.readAsDataURL(selectdFile);\n reader.onload = (_event) => {\n let imgUrl = reader.result;\n if (this.injector != null) {\n let sanitizer = this.injector.get(DomSanitizer);\n fileInfo.source = sanitizer.bypassSecurityTrustResourceUrl(imgUrl);\n } else\n fileInfo.source = imgUrl;\n this.files.push(fileInfo);\n }\n break;\n }\n\n }\n\n listToString(strList: string[]) {\n let name: string = \"\";\n for (let i = 0; i < strList.length; i++) {\n name += strList[i] + \",\";\n }\n return name;\n }\n\n\n exStorageFileList: ExStorageFileInfo[] = [];\n\n typeChange($event: any, file: FileInfo) {\n file.extensionName = $event.data.name;\n let exStorageFileInfo: ExStorageFileInfo = new ExStorageFileInfo;\n if (file.extensionName == this.storageExtension.defaultPropertyName) {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0)\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1)\n } else {\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n exStorageFileInfo = this.exStorageFileList.filter(x => x.metadataId == file.id)[0];\n exStorageFileInfo.exPropertyName = file.extensionName;\n } else {\n exStorageFileInfo.metadataId = file.id;\n exStorageFileInfo.exPropertyName = file.extensionName;\n this.exStorageFileList.push(exStorageFileInfo);\n }\n }\n }\n\n upload(): Observable<any> {\n if (this.uploadedFileTotal != this.files.filter(x => x.isUploading || x.uploadResult).length) {\n // this.notifyService.success(<NotifyOptions>{\n // msg: 'ä¿åæåï¼', timeout: 3000\n // });\n this.msgService.warning('çä¸ä¸ï¼ææ¡£æ£å¨ä¸ä¼ ã');\n return of(false);\n }\n if (this.storageExtension == null)\n return of(this.uploadFileInfoList);\n else {\n if (this.exStorageFileList.length == 0)\n return of(this.uploadFileInfoList);\n else {\n const loading = this.loadService.show({\n message: 'æ£å¨å°æä»¶ä¿åå°' + this.storageExtension.extensionName\n });\n return this.uploadService.changeStorageInstance(this.exStorageFileList, this.rootId).pipe(\n map(res => {\n if (res != null)\n this.msgService.error('ä¿åå°' + this.storageExtension.extensionName + \"失败ï¼ä¸ä¼ æä»¶èªå¨ä¿åå°\" + this.storageExtension.defaultPropertyName + \"åå¨ã\" + res.error.Message);\n loading.close();\n return this.uploadFileInfoList;\n }))\n }\n }\n }\n\n cancel() {\n if (this.uploadFileInfoList.length == 0)\n return;\n this.uploadFileInfoList.forEach(element => {\n this.metadataIdList.push(element.metadataId);\n })\n this.uploadService.cancel(this.metadataIdList, this.rootId).subscribe();\n\n }\n\n getUploadFileInfoList() {\n return this.uploadFileInfoList;\n }\n\n delete(file) {\n this.files.splice(this.files.indexOf(file), 1);\n if (file.uploadResult)\n this.uploadedFileTotal--;\n if (this.exStorageFileList.filter(x => x.metadataId == file.id).length > 0) {\n this.exStorageFileList.splice(this.exStorageFileList.findIndex(x => x.metadataId == file.id), 1);\n }\n // var obj:any = document.querySelector('#file');\n // obj.files.remove();\n //obj.value='';\n }\n\n getFileSize(size: number) {\n if (size < 102400)\n return (size / 1024).toFixed(1) + \"K\";\n else if (size < 1024 * 1024)\n return (size / 1024).toFixed(0) + \"K\";\n else if (size < 100 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(1) + \"M\";\n else if (size < 1024 * 1024 * 1024)\n return (size / 1024 / 1024).toFixed(0) + \"M\";\n else\n return (size / 1024 / 1024 / 1024).toFixed(1) + \"G\";\n }\n showByGroup() {\n this.showType = 0;\n // this.selectedFileCount = 0;\n }\n\n showByList() {\n this.showType = 1;\n // this.selectedFileCount = 0;\n if (this.selectedFileCount != 0 && this.selectedFileCount == this.files.length) {\n this.fileAllSelected = true;\n }\n }\n\n mouseOver(file) {\n file.mouseOn = true;\n }\n mouseOut(file) {\n file.mouseOn = false;\n }\n\n}\n\n\n","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class DownloadService {\n\n constructor() { }\n\n getDownloadUrl(metadataId: string, rootId: string) {\n return \"/api/runtime/dfs/v1.0/doc/filecontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n getMultipleDownloadUrl(metadataIdList: string, rootId: string) {\n let list: string[] = JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/multiple/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId));\n }\n\n getMultipleDownloadUrlWithName(metadataIdList: string, rootId: string, zipName: string) {\n let list: string[] = JSON.parse(metadataIdList);\n if (zipName == null || zipName == \"\")\n zipName = 'unifile.zip';\n if (!zipName.endsWith(\".zip\"))\n zipName += '.zip';\n\n\n\n return \"/api/runtime/dfs/v1.0/doc/compress/download?metadataidlist=\" + metadataIdList + \"&rootid=\" + rootId + \"&token=\" + this.getToken(this.mergeString(list[0], rootId)) + \"&zipName=\" + encodeURIComponent(zipName);\n }\n\n getHistoryDownloadUrl(metadataId: string, rootId: string, version: string) {\n //let list:string[]=JSON.parse(metadataIdList);\n return \"/api/runtime/dfs/v1.0/doc/historycontent?metadataid=\" + metadataId + \"&rootid=\" + rootId + \"&version=\" + version + \"&token=\" + this.getToken(this.mergeString(metadataId, rootId));\n }\n\n\n\n private mergeString(str: string, str1: string): string {\n let min = str.length < str1.length ? str.length : str1.length;\n let res: string = \"\";\n let i = 0;\n for (i = 0; i < min; i++) {\n res += str.substring(i, i + 1);\n res += str1.substring(i, i + 1);\n }\n res += str.length < str1.length ? str1.substring(i) : str.substring(i);\n return res;\n }\n\n private getToken(str: string): string {\n let array = [1, 2, 3];\n if (str.length > 24)\n str = str.substring(0, 24);\n let length = Math.floor(str.length / 3);\n let str1 = str.substring(0, length);\n let str2 = str.substring(length, 2 * length);\n let str3 = str.substring(2 * length, 3 * length);\n let randomArray = [];\n var random = Math.ceil(Math.random() * 3);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n random = Math.ceil(Math.random() * 2);\n randomArray.push(array[random - 1]);\n array.splice(random - 1, 1);\n randomArray.push(array[0]);\n let timeStamp: string = Math.round(new Date().getTime() / 1000) + \"\";\n\n return timeStamp.substring(0, 5) + \"times\" + randomArray[0] + \"\" + randomArray[1] + \"\" + randomArray[2] + this.switchStr(str1, str2, str3, randomArray[0]) + this.switchStr(str1, str2, str3, randomArray[1]) + this.switchStr(str1, str2, str3, randomArray[2]) + \"times\" + timeStamp.substring(5);\n }\n\n private switchStr(str1: string, str2: string, str3: string, i: number): string {\n switch (i) {\n case 1: return str1;\n case 2: return str2;\n case 3: return str3;\n }\n }\n\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileUploadComponent } from './file-upload/file-upload.component';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { UploadService } from './upload.service';\nimport { LoadingModule } from '@farris/ui-loading';\nimport { ProgressModule } from '@farris/ui-progress'\nimport { FormsModule } from '@angular/forms';\nimport { ComboListModule } from '@farris/ui-combo-list';\nimport { DownloadService } from './download.service';\n\n\n\n@NgModule({\n declarations: [FileUploadComponent],\n imports: [\n CommonModule,\n ButtonsModule,\n NotifyModule,\n MessagerModule.forRoot(),\n LoadingModule.forRoot(),\n ProgressModule,\n FormsModule,\n ComboListModule\n\n ],\n exports: [FileUploadComponent],\n entryComponents: [FileUploadComponent],\n providers: [UploadService, DownloadService]\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 } 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\n\r\n\r\n@Injectable()\r\nexport class UploadDialogService {\r\n constructor(private modalService: BsModalService, private componentFactoryResolver: ComponentFactoryResolver, private injector: Injector) { }\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: 'ä¸ä¼ æä»¶',\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n text: 'ä¿å', 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: 'å
³é', cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n\r\n uploadFile(formId: string, rootId: string,oldIdList: string[]=[]) { \r\n return this.uploadFileWithLimit(formId, rootId, null, oldIdList);\r\n }\r\n\r\n\r\n uploadFileWithLimit(formId: string, rootId: string, limit: UploadLimit, oldIdList: string[]=[]) {\r\n let flag = 0;\r\n return new Promise(resolve => {\r\n var uploadFactory = this.componentFactoryResolver.resolveComponentFactory(FileUploadComponent);\r\n var uploadRef = uploadFactory.create(this.injector);\r\n if (limit != null) {\r\n uploadRef.instance.fileCount = limit.fileCount;\r\n if (limit.fileType != null && limit.fileType != \"\")\r\n uploadRef.instance.fileType = limit.fileType\r\n }\r\n\r\n uploadRef.instance.rootId = rootId;\r\n uploadRef.instance.formId = formId;\r\n uploadRef.instance.oldIdList=oldIdList;\r\n\r\n this.dlg = this.modalService.show(uploadRef, {\r\n title: 'ä¸ä¼ æä»¶',\r\n width: 950, height: 570,\r\n buttons: [\r\n {\r\n\r\n text: 'ä¿å', 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: 'å
³é', cls: 'k-button k-button-icontext', handle: () => {\r\n this.dlg.close();\r\n }\r\n }\r\n ],\r\n\r\n showButtons: true,\r\n showMaxButton: false,\r\n beforeClose: (): Observable<boolean> => {\r\n if (flag == 0)\r\n this.dlg.content.cancel();\r\n return of(true);\r\n }\r\n });\r\n })\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FarrisDialogModule } from '@farris/ui-dialog';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { MessagerModule } from '@farris/ui-messager';\nimport { BsModalService } from '@farris/ui-modal';\n\nimport { UploadModule } from '../upload/upload.module';\nimport { UploadDialogComponent } from './uploaddialog/uploaddialog.component';\nimport { HttpService } from '@ecp-caf/caf-common';\nimport { UploadService } from '../upload/upload.service';\nimport { UploadDialogService } from '../uploaddialog.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NotifyModule } from '@farris/ui-notify';\nimport { FileUploadComponent } from '../upload/file-upload/file-upload.component';\n\n\n@NgModule({\n declarations: [UploadDialogComponent],\n imports: [\n CommonModule,\n FarrisDialogModule,\n MessagerModule.forRoot(),\n UploadModule,\n ButtonsModule,\n NotifyModule.forRoot(),\n HttpClientModule\n ],\n exports: [UploadDialogComponent,FileUploadComponent],\n entryComponents: [UploadDialogComponent,FileUploadComponent],\n providers: [BsModalService, HttpService, UploadDialogService, UploadService]\n})\nexport class UploadDialogMoudle { }\n","export class UploadLimit {\r\n public fileType: string = \"*\";\r\n public fileCount: number = 0;\r\n}","import { GspFormDocInfo } from './gspformdocinfo';\r\nimport { OperatingModes } from './operatingmodes';\r\n\r\nexport class GspFormUploadListEntity {\r\n public formId: string;\r\n public docInfoList: GspFormDocInfo[];\r\n public mode: OperatingModes;\r\n public rootId: string;\r\n}","export class GspDocMetaProperty{\r\n public extProperties1:string;\r\n public extProperties2:string;\r\n public extProperties3:string;\r\n public extProperties4:string;\r\n public extProperties5:string;\r\n}","export class FileInfo {\r\n public id: string;\r\n public name: string;\r\n public type: string;\r\n public source: string | ArrayBuffer;\r\n public picListDisplayName: string;\r\n public queueListDisplayName: string;\r\n //public content: string;\r\n public size: string;\r\n public fileSize: number;\r\n public hasUploaded: boolean;\r\n public mouseOn: boolean;\r\n public selectd: boolean;\r\n public isUploading: boolean;\r\n public uploadResult: boolean;\r\n public uploadProcess: number;\r\n public errorMessage: string;\r\n public extensionDropListId:number;\r\n public extensionName: string;\r\n}"]}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Generated bundle index. Do not edit.
|
|
7
7
|
*/
|
|
8
|
-
export { FormdocUploadService, FormdocUploadComponent, FormdocUploadModule, UploadDialogMoudle, UploadDialogComponent, UploadDialogService, UploadService, DownloadService, FileUploadComponent, UploadFileInfo, UploadModule, ɵa, UploadLimit, GspFormDocOperateEntity, GspFormRemoveListEntity, GspFormUploadListEntity } from './public-api';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
export { FormdocUploadService, FormdocUploadComponent, FormdocUploadModule, UploadDialogMoudle, UploadDialogComponent, UploadDialogService, UploadService, DownloadService, FileUploadComponent, UploadFileInfo, UploadModule, ɵa, UploadLimit, GspFormDocOperateEntity, GspFormRemoveListEntity, GspFormUploadListEntity, GspFormDocInfo, GspDocMetaProperty, GspFormUploadEntity, FileInfo, OperatingModes } from './public-api';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3NwLXN2Yy1mb3JtZG9jLXVwbG9hZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bnc3Atc3ZjL2Zvcm1kb2MtdXBsb2FkLyIsInNvdXJjZXMiOlsiZ3NwLXN2Yy1mb3JtZG9jLXVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsb1pBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|