Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/im/lib/uploader/dist/ |
Upload File : |
this.BX=this.BX||{};this.BX.Messenger=this.BX.Messenger||{};(function(e,t,i){"use strict";var s=function(){function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};babelHelpers.classCallCheck(this,e);babelHelpers.defineProperty(this,"token",null);babelHelpers.defineProperty(this,"nextDataChunkToSend",null);babelHelpers.defineProperty(this,"readOffset",0);this.diskFolderId=t.diskFolderId;this.listener=t.listener;this.status=t.status;this.taskId=t.taskId;this.fileData=t.fileData;this.fileName=t.fileName||this.fileData.name;this.generateUniqueName=t.generateUniqueName;this.chunkSizeInBytes=t.chunkSize;this.previewBlob=t.previewBlob||null;this.requestToDelete=false;this.listener("onStartUpload",{id:this.taskId,file:this.fileData,previewData:this.previewBlob});this.host=i.host||null;this.actionUploadChunk=i.actionUploadChunk||"disk.api.content.upload";this.actionCommitFile=i.actionCommitFile||"disk.api.file.createByContent";this.actionRollbackUpload=i.actionRollbackUpload||"disk.api.content.rollbackUpload";this.customHeaders=i.customHeaders||null}babelHelpers.createClass(e,[{key:"uploadContent",value:function e(){var t=this;if(this.status===n.STATUSES.CANCELLED){return}this.status=n.STATUSES.PROGRESS;this.readNext();var i="".concat(this.host?this.host:"","\n\t\t\t/bitrix/services/main/ajax.php?action=").concat(this.actionUploadChunk,"\n\t\t\t&filename=").concat(this.fileName,"\n\t\t\t").concat(this.token?"&token="+this.token:"");var s="bytes "+this.readOffset+"-"+(this.readOffset+this.chunkSizeInBytes-1)+"/"+this.fileData.size;this.calculateProgress();var a={"Content-Type":this.fileData.type,"Content-Range":s};if(!this.customHeaders){a["X-Bitrix-Csrf-Token"]=BX.bitrix_sessid()}else{for(var r in this.customHeaders){if(this.customHeaders.hasOwnProperty(r)){a[r]=this.customHeaders[r]}}}fetch(i,{method:"POST",headers:a,credentials:"include",body:this.nextDataChunkToSend}).then((function(e){return e.json()})).then((function(e){if(e.errors.length>0){t.status=n.STATUSES.FAILED;t.listener("onUploadFileError",{id:t.taskId,result:e});console.error(e.errors[0].message)}else if(e.data.token){t.token=e.data.token;t.readOffset=t.readOffset+t.chunkSizeInBytes;if(!t.isEndOfFile()){t.uploadContent()}else{t.createFileFromUploadedChunks()}}}))["catch"]((function(e){t.status=n.STATUSES.FAILED;t.listener("onUploadFileError",{id:t.taskId,result:e})}))}},{key:"deleteContent",value:function e(){this.status=n.STATUSES.CANCELLED;this.requestToDelete=true;if(!this.token){console.error("Empty token.");return}var t="".concat(this.host?this.host:"","/bitrix/services/main/ajax.php?\n\t\taction=").concat(this.actionRollbackUpload,"&token=").concat(this.token);var i={};if(!this.customHeaders){i["X-Bitrix-Csrf-Token"]=BX.bitrix_sessid()}else{for(var s in this.customHeaders){if(this.customHeaders.hasOwnProperty(s)){i[s]=this.customHeaders[s]}}}fetch(t,{method:"POST",credentials:"include",headers:i}).then((function(e){return e.json()})).then((function(e){return console.log(e)}))["catch"]((function(e){return console.error(e)}))}},{key:"createFileFromUploadedChunks",value:function e(){var t=this;if(!this.token){console.error("Empty token.");return}if(this.requestToDelete){return}var i="".concat(this.host?this.host:"","/bitrix/services/main/ajax.php?action=").concat(this.actionCommitFile,"&filename=").concat(this.fileName)+"&folderId="+this.diskFolderId+"&contentId="+this.token+(this.generateUniqueName?"&generateUniqueName=true":"");var s={"X-Upload-Content-Type":this.fileData.type};if(!this.customHeaders){s["X-Bitrix-Csrf-Token"]=BX.bitrix_sessid()}else{for(var a in this.customHeaders){if(this.customHeaders.hasOwnProperty(a)){s[a]=this.customHeaders[a]}}}var r=new FormData;if(this.previewBlob){r.append("previewFile",this.previewBlob,"preview_"+this.fileName+".jpg")}fetch(i,{method:"POST",headers:s,credentials:"include",body:r}).then((function(e){return e.json()})).then((function(e){t.uploadResult=e;if(e.errors.length>0){t.status=n.STATUSES.FAILED;t.listener("onCreateFileError",{id:t.taskId,result:e});console.error(e.errors[0].message)}else{t.calculateProgress();t.status=n.STATUSES.DONE;t.listener("onComplete",{id:t.taskId,result:e})}}))["catch"]((function(e){t.status=n.STATUSES.FAILED;t.listener("onCreateFileError",{id:t.taskId,result:e})}))}},{key:"calculateProgress",value:function e(){this.progress=Math.round(this.readOffset*100/this.fileData.size);this.listener("onProgress",{id:this.taskId,progress:this.progress,readOffset:this.readOffset,fileSize:this.fileData.size})}},{key:"readNext",value:function e(){if(this.readOffset+this.chunkSizeInBytes>this.fileData.size){this.chunkSizeInBytes=this.fileData.size-this.readOffset}this.nextDataChunkToSend=this.fileData.slice(this.readOffset,this.readOffset+this.chunkSizeInBytes)}},{key:"isEndOfFile",value:function e(){return this.readOffset>=this.fileData.size}}]);return e}();var n=function(e){babelHelpers.inherits(t,e);function t(e){var i;babelHelpers.classCallCheck(this,t);i=babelHelpers.possibleConstructorReturn(this,babelHelpers.getPrototypeOf(t).call(this));babelHelpers.defineProperty(babelHelpers.assertThisInitialized(i),"queue",[]);babelHelpers.defineProperty(babelHelpers.assertThisInitialized(i),"isCloud",BX.message.isCloud);babelHelpers.defineProperty(babelHelpers.assertThisInitialized(i),"phpUploadMaxFilesize",BX.message.phpUploadMaxFilesize);babelHelpers.defineProperty(babelHelpers.assertThisInitialized(i),"phpPostMaxSize",BX.message.phpPostMaxSize);i.setEventNamespace("BX.Messenger.Lib.Uploader");i.generatePreview=e.generatePreview||false;if(e){i.inputNode=e.inputNode||null;i.dropNode=e.dropNode||null;i.fileMaxSize=e.fileMaxSize||null;i.fileMaxWidth=e.fileMaxWidth||null;i.fileMaxHeight=e.fileMaxHeight||null;if(e.sender){i.senderOptions={host:e.sender.host,actionUploadChunk:e.sender.actionUploadChunk,actionCommitFile:e.sender.actionCommitFile,actionRollbackUpload:e.sender.actionRollbackUpload,customHeaders:e.sender.customHeaders||null}}i.assignInput();i.assignDrop()}return i}babelHelpers.createClass(t,[{key:"setInputNode",value:function e(t){if(t instanceof HTMLInputElement||Array.isArray(t)){this.inputNode=t;this.assignInput()}}},{key:"addFilesFromEvent",value:function e(t){var i=this;Array.from(t.target.files).forEach((function(e){i.emitSelectedFile(e)}))}},{key:"getPreview",value:function e(i){var s=this;return new Promise((function(e,n){if(!s.generatePreview){e()}if(i instanceof File){if(i.type.startsWith("video")){t.getVideoPreviewBlob(i,10).then((function(e){return s.getImageDimensions(e)})).then((function(t){return e(t)}))["catch"]((function(e){return n(e)}))}else if(i.type.startsWith("image")){var a=new Blob([i],{type:i.type});s.getImageDimensions(a).then((function(t){return e(t)}))}else{e()}}else{n("Parameter 'file' is not instance of 'File'")}}))}},{key:"addTask",value:function e(i){var n=this;if(!this.isModernBrowser()){console.warn("Unsupported browser!");return}if(!this.checkTaskParams(i)){return}i.chunkSize=this.calculateChunkSize(i.chunkSize);i.listener=function(e,t){return n.onUploadEvent(e,t)};i.status=t.STATUSES.PENDING;var a=new s(i,this.senderOptions);this.queue.push(a);this.checkUploadQueue()}},{key:"deleteTask",value:function e(t){if(!t){return}this.queue=this.queue.filter((function(e){if(e.taskId===t){e.deleteContent();return false}return true}))}},{key:"getTask",value:function e(t){var i=this.queue.find((function(e){return e.taskId===t}));if(i){return{id:i.id,diskFolderId:i.diskFolderId,fileData:i.fileData,fileName:i.fileName,progress:i.progress,readOffset:i.readOffset,status:i.status,token:i.token,uploadResult:i.uploadResult}}return null}},{key:"checkUploadQueue",value:function e(){if(this.queue.length>0){var i=this.queue.filter((function(e){return e.status===t.STATUSES.PENDING}));if(i.length>0){i[0].uploadContent()}}}},{key:"onUploadEvent",value:function e(t,i){this.emit(t,i);this.checkUploadQueue()}},{key:"checkTaskParams",value:function e(t){if(!t.taskId){console.error("Empty Task ID.");return false}if(!t.fileData){console.error("Empty file data.");return false}if(!t.diskFolderId){console.error("Empty disk folder ID.");return false}if(this.fileMaxSize&&this.fileMaxSize<t.fileData.size){var i={maxFileSizeLimit:this.fileMaxSize,file:t.fileData};this.emit("onFileMaxSizeExceeded",i);return false}return true}},{key:"calculateChunkSize",value:function e(s){if(i.Type.isUndefined(this.isCloud)){return s}var n=0;if(s){n=s}if(this.isCloud==="Y"){n=n<t.CLOUD_MIN_CHUNK_SIZE?t.CLOUD_MIN_CHUNK_SIZE:n;n=n>t.CLOUD_MAX_CHUNK_SIZE?t.CLOUD_MAX_CHUNK_SIZE:n}else{var a=Math.min(this.phpPostMaxSize,this.phpUploadMaxFilesize);n=n<t.BOX_MIN_CHUNK_SIZE?t.BOX_MIN_CHUNK_SIZE:n;n=n>a?a:n}return n}},{key:"isModernBrowser",value:function e(){return typeof fetch!=="undefined"}},{key:"assignInput",value:function e(){var t=this;if(this.inputNode instanceof HTMLInputElement){this.setOnChangeEventListener(this.inputNode)}else if(Array.isArray(this.inputNode)){this.inputNode.forEach((function(e){if(e instanceof HTMLInputElement){t.setOnChangeEventListener(e)}}))}}},{key:"setOnChangeEventListener",value:function e(t){var i=this;t.addEventListener("change",(function(e){i.addFilesFromEvent(e)}),false)}},{key:"assignDrop",value:function e(){var t=this;if(this.dropNode instanceof HTMLElement){this.setDropEventListener(this.dropNode)}else if(Array.isArray(this.dropNode)){this.dropNode.forEach((function(e){if(e instanceof HTMLElement){t.setDropEventListener(e)}}))}}},{key:"setDropEventListener",value:function e(t){var i=this;t.addEventListener("drop",(function(e){e.preventDefault();e.stopPropagation();Array.from(e.dataTransfer.files).forEach((function(e){i.emitSelectedFile(e)}))}),false)}},{key:"emitSelectedFile",value:function e(t){var i=this;var s={file:t};this.getPreview(t).then((function(e){if(e){s["previewData"]=e.blob;s["previewDataWidth"]=e.width;s["previewDataHeight"]=e.height;if(i.fileMaxWidth||i.fileMaxHeight){var t=i.fileMaxWidth===null?false:i.fileMaxWidth<s["previewDataWidth"];var n=i.fileMaxHeight===null?false:i.fileMaxHeight<s["previewDataHeight"];if(t||n){var a={maxWidth:i.fileMaxWidth,maxHeight:i.fileMaxHeight,fileWidth:s["previewDataWidth"],fileHeight:s["previewDataHeight"]};i.emit("onFileMaxResolutionExceeded",a);return false}}}i.emit("onSelectFile",s)}))["catch"]((function(e){console.warn("Couldn't get preview for file ".concat(t.name,". Error: ").concat(e));i.emit("onSelectFile",s)}))}},{key:"getImageDimensions",value:function e(t){return new Promise((function(e,i){if(!t){i("getImageDimensions: fileBlob can't be empty")}var s=new Image;s.onload=function(){e({blob:t,width:s.width,height:s.height})};s.onerror=function(){i()};s.src=URL.createObjectURL(t)}))}}],[{key:"getVideoPreviewBlob",value:function e(t){var i=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;return new Promise((function(e,s){var n=document.createElement("video");n.setAttribute("src",URL.createObjectURL(t));n.load();n.addEventListener("error",(function(e){s("Error while loading video file",e)}));n.addEventListener("loadedmetadata",(function(){if(n.duration<i){i=0}n.currentTime=i;n.addEventListener("seeked",(function(){var t=document.createElement("canvas");t.width=n.videoWidth;t.height=n.videoHeight;var i=t.getContext("2d");i.drawImage(n,0,0,t.width,t.height);i.canvas.toBlob((function(t){return e(t)}),"image/jpeg",1)}))}))}))}}]);return t}(t.EventEmitter);babelHelpers.defineProperty(n,"STATUSES",{PENDING:0,PROGRESS:1,DONE:2,CANCELLED:3,FAILED:4});babelHelpers.defineProperty(n,"BOX_MIN_CHUNK_SIZE",1024*1024);babelHelpers.defineProperty(n,"CLOUD_MIN_CHUNK_SIZE",1024*1024*5);babelHelpers.defineProperty(n,"CLOUD_MAX_CHUNK_SIZE",1024*1024*100);e.Uploader=n})(this.BX.Messenger.Lib=this.BX.Messenger.Lib||{},BX.Event,BX); //# sourceMappingURL=uploader.bundle.map.js