define("metaserver/static/js/modules/clean/react/upload_kit/lib/processors",["require","exports","tslib","metaserver/static/js/modules/clean/react/upload_kit/lib/types","metaserver/static/js/modules/clean/react/upload_kit/utils/makers","metaserver/static/js/modules/clean/react/upload_kit/utils/path","metaserver/static/js/modules/clean/react/upload_kit/utils/file","metaserver/static/js/modules/clean/filepath/filepath","metaserver/static/js/modules/core/uri"],(function(e,t,i,s,o,r,a,l,n){"use strict";function d(e){return i.__awaiter(this,void 0,void 0,(function*(){return e.map(([e,t])=>o.makeFileUploadItem(e,s.isWebkitFile(e)&&""!==e.webkitRelativePath?e.webkitRelativePath:e.name,t))}))}function c(e,t,i){return Promise.resolve([o.makeFileUploadItem(e,t,i)])}function u(e,t){return i.__awaiter(this,void 0,void 0,(function*(){const s=yield Promise.all(e.map(e=>i.__awaiter(this,void 0,void 0,(function*(){if(null==e?void 0:e.isFile){const i=yield a.getFile(e);return[o.makeFileUploadItem(i,r.getDestPath(e),t)]}if(null==e?void 0:e.isDirectory){const i=e;return u(yield h(i),t)}return null})))),l=[];return s.forEach(e=>{e&&l.push(...e)}),l}))}function h(e){return i.__awaiter(this,void 0,void 0,(function*(){return(function e(t){return i.__awaiter(this,void 0,void 0,(function*(){return new Promise((s,o)=>t.readEntries(o=>i.__awaiter(this,void 0,void 0,(function*(){o.length>0?s([...o,...yield e(t)]):s(o)})),e=>o(e)))}))})(e.createReader())}))}function p(e){const t={};return e.map(e=>l.parent_dir(e.destPath)).forEach(e=>{""!==e&&"/"!==e&&(t[e]=e)}),Object.keys(t).map(e=>o.makeDirectoryUploadItem(e))}function m(e){const t={};return e.forEach(e=>{l.parent_dirs(e.destPath).forEach(e=>{""!==e&&"/"!==e&&(t[e]=e)})}),Object.keys(t).map(e=>o.makeDirectoryUploadItem(e))}Object.defineProperty(t,"__esModule",{value:!0}),t.processFilesWithRenamingRecursive=t.processFilesWithRenaming=t.resolveDuplicates=t.collectDirectoriesRecursive=t.collectDirectories=t.readDirectory=t.preprocessFileSystemEntries=t.preprocessDataTransfer=t.preprocessDropboxFiles=t.preprocessBlob=t.preprocessFiles=void 0,t.preprocessFiles=d,t.preprocessBlob=c,t.preprocessDropboxFiles=function(e){return i.__awaiter(this,void 0,void 0,(function*(){return e.map(([e,t])=>o.makeChooserUploadItem(e,t))}))},t.preprocessDataTransfer=function(e,t){return i.__awaiter(this,void 0,void 0,(function*(){const{files:i,items:s,types:o}=e;if(o&&o.length>0&&-1===o.indexOf("Files")){const i=a.getDataTransferUrl(e),s=n.URI.parse(i).getAuthority();return c(a.makeLinkBlob(i),`#${s}.url`,t)}if(s&&s.length>0&&s[0]&&s[0].webkitGetAsEntry)return u(Array.from(s).map(e=>e.webkitGetAsEntry()),t);if(i&&i.length>0){return d(Array.from(i).map(e=>[e,t||{}]))}return Promise.resolve([])}))},t.preprocessFileSystemEntries=u,t.readDirectory=h,t.collectDirectories=p,t.collectDirectoriesRecursive=m,t.resolveDuplicates=(e,t=[])=>{const i=new Set,s=new Set,o=[];return t&&t.forEach(e=>{s.add(e.id),i.add(r.getNameAtRoot(e.destPath).toLowerCase())}),e.forEach(e=>{if(s.has(e.id))return;const t=-1!==e.destPath.indexOf("/");let a,n=1,d=r.getNameAtRoot(e.destPath);const c=l.split_filename(d);if(i.has(d.toLowerCase()))do{a=`${c.name} (${n})`,d=c.ext?`${a}.${c.ext}`:a,n++}while(i.has(d.toLowerCase()));if(t){const t=e.destPath.split("/");t[0]=d,e.destPath=t.join("/")}else e.destPath=d;s.add(e.id),i.add(e.destPath.toLowerCase()),o.push(e)}),o},t.processFilesWithRenaming=(e,i,s)=>Promise.resolve(t.resolveDuplicates(e,s)).then(e=>({errors:i,items:e.concat(p(e))})),t.processFilesWithRenamingRecursive=(e,i,s)=>Promise.resolve(t.resolveDuplicates(e,s)).then(e=>({errors:i,items:e.concat(m(e))}))})),define("metaserver/static/js/modules/clean/react/upload_kit/lib/types",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UploadErrorType=t.UploadStatus=t.FileSource=t.isChooserFile=t.isWebkitFile=void 0,t.isWebkitFile=e=>"webkitRelativePath"in e,t.isChooserFile=e=>"bytes"in e,(function(e){e.Dropbox="dropbox",e.Computer="computer",e.Server="server"})(t.FileSource||(t.FileSource={})),(function(e){e.Staged="staged",e.Queued="queued",e.Uploading="uploading",e.Success="success",e.Error="error",e.Cancelling="cancelling"})(t.UploadStatus||(t.UploadStatus={})),(function(e){e.CloudDoc="cloud_doc",e.EmptyFile="empty_file",e.IgnoredFile="ignored_file",e.OverMaxFileSize="over_max_file_size",e.PointerFile="pointer_file",e.TemporaryFile="temporary_file",e.InvalidChar="invalid_char",e.NotFound="not_found",e.NoPermission="no_permission",e.Restricted="restricted",e.InvalidArgs="invalid_args",e.Unknown="unknown"})(t.UploadErrorType||(t.UploadErrorType={}))})),define("metaserver/static/js/modules/clean/react/upload_kit/lib/upload_block",["require","exports","metaserver/static/js/modules/clean/csrf","metaserver/static/js/modules/core/uri"],(function(e,t,i,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uploadBlock=void 0,t.uploadBlock=(e,t,o,r)=>{const a=new s.URI({scheme:"https",authority:"dl-web.dropbox.com",path:"/put_block_returning_token",query:{owner_id:e.toString(),_subject_uid:e.toString(),t:i.readCsrfToken()||"",reported_block_size:r.size.toString(),num_blocks:Math.ceil(o/r.size).toString(),ns_id_for_routing:t.toString()}});return new Promise((e,t)=>{const i=new XMLHttpRequest;return i.withCredentials=!0,i.onreadystatechange=()=>{if(i.readyState===XMLHttpRequest.DONE)if(200===i.status){const s=JSON.parse(i.responseText);s.token?e(s.token):t("Server token empty or undefined error.")}else t(`Server error ${i.status}`)},i.open("POST",a.toString(),!0),i.setRequestHeader("Content-Type","application/octet-stream"),i.send(r),i})}})),define("metaserver/static/js/modules/clean/react/upload_kit/scheduler/parallel",["require","exports","tslib","metaserver/static/js/modules/clean/react/upload_kit/scheduler/types"],(function(e,t,i,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ParallelUploadScheduler=t.CHUNK_SIZE=t.COMMIT_REQUEST_BATCH_SIZE=t.MAX_PARALLEL_COMMIT_REQUESTS=t.MAX_PARALLEL_BLOCK_UPLOAD_REQUESTS=void 0,t.MAX_PARALLEL_BLOCK_UPLOAD_REQUESTS=6,t.MAX_PARALLEL_COMMIT_REQUESTS=1,t.COMMIT_REQUEST_BATCH_SIZE=10,t.CHUNK_SIZE=4194304;class o extends s.UploadScheduler{constructor(e){super(e),this.itemQueue=new Map,this.commitQueue=[],this.availableBlockRequests=t.MAX_PARALLEL_BLOCK_UPLOAD_REQUESTS,this.availableCommitRequests=t.MAX_PARALLEL_COMMIT_REQUESTS,this.onCompleteSubscribers=[],this.handleUploadBlocks=e.handleUploadBlocks,this.handleCommitBlocks=e.handleCommitBlocks,this.handleProgress=e.handleProgress,this.handleItemExit=e.handleItemExit}itemExit(e,t){const i=this.itemQueue.get(e);i&&(i.status=t,this.itemQueue.delete(e),this.handleItemExit(i.info,t))}dispenseChunkData(){if(!this.currentFileChunkReader||this.currentFileChunkReader.isEmpty()||!this.isItemUploading(this.currentFileChunkReader.item.destPath)){const e=Array.from(this.itemQueue.values()).find(e=>"Queued"===e.status&&e.file.size>0);if(!e)return null;this.currentFileChunkReader=new r(e),e.status="Uploading"}const e=this.currentFileChunkReader.getNextChunk();if(!e)return null;const t=this.currentFileChunkReader.item,i=t.blockTokens.length;return t.blockTokens.push(""),{item:t,chunk:e,blockIndex:i}}commitNext(){return i.__awaiter(this,void 0,void 0,(function*(){if(0===this.availableCommitRequests)return;if(0===this.commitQueue.length)return void(this.isUploading()||this.fireComplete());this.availableCommitRequests--;const e=[],i=[];let s=t.COMMIT_REQUEST_BATCH_SIZE;for(;s>0&&this.commitQueue.length>0;){const t=this.commitQueue.shift(),o=this.itemQueue.get(t);if(!o)continue;const{info:r,blockTokens:a,destPath:l}=o;e.push({info:r,tokens:a}),i.push(l),s--}try{const t=yield this.handleCommitBlocks(e),s={};t.forEach(e=>{this.itemExit(e.filePath,e.success?"Completed":"Error"),s[e.filePath]=!0}),i.forEach(e=>{s[e]||this.itemExit(e,"Completed")})}catch(e){i.forEach(e=>{this.itemExit(e,"Error")})}this.availableCommitRequests++,this.commitNext()}))}queueCommit(e){this.commitQueue.push(e),this.commitNext()}uploadNextBlock(){return i.__awaiter(this,void 0,void 0,(function*(){if(this.availableBlockRequests<=0)return;const e=this.dispenseChunkData();if(!e)return void(this.isUploading()||this.fireComplete());const{item:t,chunk:i,blockIndex:s}=e;let o=0;const r=e=>{if(this.isItemUploading(t.destPath)){const s=Math.min(i.size,t.file.size),r=Math.min(e,s),a=Math.max(r-o,0);o+=a;const l=Math.min(t.totalBytesUploaded+a,t.file.size);t.totalBytesUploaded=l,this.handleProgress(t.info,l)}};this.availableBlockRequests--;try{const e=yield this.handleUploadBlocks(t.info,i,r);this.isItemUploading(t.destPath)&&(r(i.size),t.blockTokens[s]=e,a(t)&&(t.status="Committing",this.queueCommit(t.destPath)))}catch(e){this.itemExit(t.destPath,"Error")}this.availableBlockRequests++,this.uploadNextBlock()}))}addFile(e,t,s){return i.__awaiter(this,void 0,void 0,(function*(){this.itemQueue.set(t,{file:e,destPath:t,status:"Queued",bytesUploaded:0,info:s,blockTokens:[],totalBytesUploaded:0}),this.isUploading()&&this.startUploading()}))}startUploading(){return i.__awaiter(this,void 0,void 0,(function*(){const e=this.onComplete(),t=this.availableBlockRequests;for(let e=0;e{this.cancelFile(e)})}isQueueEmpty(){return 0===this.itemQueue.size}isItemUploading(e){const t=this.itemQueue.get(e);return Boolean(t&&"Uploading"===t.status)}isUploading(){return this.availableBlockRequests0;){const e=this.onCompleteSubscribers.shift();e&&e()}}onComplete(){return new Promise(e=>{this.onCompleteSubscribers.push(e)})}}t.ParallelUploadScheduler=o;class r{constructor(e){this.currentOffset=0,this.item=e}getNextChunk(){if(this.isEmpty())return null;const e=this.item.file.slice(this.currentOffset,t.CHUNK_SIZE+this.currentOffset);return this.currentOffset+=t.CHUNK_SIZE,e}isEmpty(){return this.item.file.size<=this.currentOffset}}const a=({blockTokens:e,file:i})=>{if(e.every(e=>""!==e)){const s=Math.ceil(i.size/t.CHUNK_SIZE);return e.length===s}return!1}})),define("metaserver/static/js/modules/clean/react/upload_kit/scheduler/types",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UploadScheduler=void 0;t.UploadScheduler=class{constructor(e){}}})),define("metaserver/static/js/modules/clean/react/upload_kit/uploader/async_controller",["require","exports","tslib"],(function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncUploadController=void 0;t.AsyncUploadController=class{constructor(e){var{onLoaded:t}=e,s=i.__rest(e,["onLoaded"]);this.onLoaded=t,this.controllerProps=s}get(){return this.promise||(this.promise=new Promise(t=>i.__awaiter(this,void 0,void 0,(function*(){const{UploadController:s}=yield new Promise((t,i)=>{e(["metaserver/static/js/modules/clean/react/upload_kit/uploader/controller"],t,i)}).then(i.__importStar),o=new s(this.controllerProps);this.onLoaded(o),t(o)})))),this.promise}}})),define("metaserver/static/js/modules/clean/react/upload_kit/uploader/context",["require","exports","tslib","react","metaserver/static/js/modules/clean/react/components/helpers","metaserver/static/js/modules/clean/react/upload_kit/uploader/async_controller","metaserver/static/js/modules/clean/react/upload_kit/lib/processors"],(function(e,t,i,s,o,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.withUploadConsumer=t.UploadConsumer=t.withCustomUploadProvider=t.UploadProvider=void 0;const l=(s=i.__importDefault(s)).default.createContext({});let n=0;class d extends s.default.PureComponent{constructor(e){super(e),this.fileField=s.default.createRef(),this.folderField=s.default.createRef(),this.chooseHandled=new Set,this.state={uploadItems:[],isUploading:!1},this.setInitialUploadedItems=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).setInitialUploadedItems(...e)})),this.cancelUploadItem=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).cancelUploadItem(...e)})),this.chooseFiles=()=>i.__awaiter(this,void 0,void 0,(function*(){const e=this.fileField?this.fileField.current:null;return this.chooseLocalFiles(e)})),this.chooseFolder=()=>i.__awaiter(this,void 0,void 0,(function*(){const e=this.folderField?this.folderField.current:null;return this.chooseLocalFiles(e)})),this.chooseLocalFiles=(function(e,t=100){let i;return(...s)=>(i||(i=e(...s),setTimeout(()=>{i=void 0},t)),i)})((e=null)=>(this.asyncController.get(),new Promise((t,s)=>{if(!e)return void s();e.dataset.uploadKitId||(e.dataset.uploadKitId=String(n++));const o=e.dataset.uploadKitId,r=()=>i.__awaiter(this,void 0,void 0,(function*(){if(this.chooseHandled.delete(o),e.removeEventListener("change",r),e.files)try{const i=yield this.asyncController.get(),s=yield i.addFiles(Array.from(e.files));t(s)}catch(e){s(e)}else s()}));this.chooseHandled.has(o)||(this.chooseHandled.add(o),e.addEventListener("change",r)),e.value="",e.click()}))),this.chooseDropboxFiles=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).chooseDropboxFiles(...e)})),this.handleDrop=(e,t)=>i.__awaiter(this,void 0,void 0,(function*(){if(!e)return Promise.reject();const[i,s]=yield Promise.all([a.preprocessDataTransfer(e,{parentPath:t}),this.asyncController.get()]);return s.addUploadItems(i)})),this.makeDirectory=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).makeDirectory(...e)})),this.moveUploadItem=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).moveUploadItem(...e)})),this.removeUploadItem=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).removeUploadItem(...e)})),this.renameUploadItem=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).renameUploadItem(...e)})),this.startUploading=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).startUploading(...e)})),this.stopUploading=(...e)=>i.__awaiter(this,void 0,void 0,(function*(){return(yield this.asyncController.get()).stopUploading(...e)})),this.asyncController=new r.AsyncUploadController(Object.assign(Object.assign({},e),{onLoaded:e=>{this.subscription=e=>{this.setState(e)},e.subscribe(this.subscription)}}))}componentWillUnmount(){return i.__awaiter(this,void 0,void 0,(function*(){if(this.subscription){(yield this.asyncController.get()).unsubscribe(this.subscription)}}))}render(){const{children:e,fileExtensions:t,selectMultiple:i}=this.props,o=Object.assign(Object.assign({},this.state),{setInitialUploadedItems:this.setInitialUploadedItems,cancelUploadItem:this.cancelUploadItem,chooseFiles:this.chooseFiles,chooseFolder:this.chooseFolder,chooseDropboxFiles:this.chooseDropboxFiles,handleDrop:this.handleDrop,makeDirectory:this.makeDirectory,moveUploadItem:this.moveUploadItem,removeUploadItem:this.removeUploadItem,renameUploadItem:this.renameUploadItem,startUploading:this.startUploading,stopUploading:this.stopUploading});return s.default.createElement(l.Provider,{value:o},e,s.default.createElement("input",{type:"file",ref:this.fileField,id:"uploader-file-field",style:{display:"none"},multiple:!!i,accept:t?t.join(","):void 0}),s.default.createElement("input",Object.assign({type:"file",ref:this.folderField,id:"uploader-folder-field",style:{display:"none"}},{webkitdirectory:""})))}}t.UploadProvider=d,d.displayName="UploadProvider",t.withCustomUploadProvider=function(e,t){const i=i=>s.default.createElement(t,Object.assign({},i),s.default.createElement(e,Object.assign({},i)));return i.displayName=`withCustomUploadProvider(${o.getDisplayName(e)}, ${o.getDisplayName(t)})`,i},t.UploadConsumer=l.Consumer,t.withUploadConsumer=function(e){const i=i=>s.default.createElement(t.UploadConsumer,null,t=>s.default.createElement(e,Object.assign({},i,t)));return i.displayName=`WithUploadConsumer(${o.getDisplayName(e)})`,i}})),define("metaserver/static/js/modules/clean/react/upload_kit/utils/file",["require","exports","tslib","metaserver/static/js/modules/clean/react/upload_kit/lib/types"],(function(e,t,i,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeLinkBlob=t.getDataTransferUrl=t.getSize=t.getFile=void 0,t.getFile=e=>i.__awaiter(void 0,void 0,void 0,(function*(){return new Promise(t=>e.file(e=>t(e)))})),t.getSize=e=>e?s.isChooserFile(e)?e.bytes:e.size:0,t.getDataTransferUrl=function(e){let t;return t=e.getData("Url")||e.getData("text/x-moz-url")||e.getData("text/uri-list")||"",t=t.split("\n")[0],t},t.makeLinkBlob=function(e){return new Blob([`[InternetShortcut]\r\nURL=${e}\r\n`],{type:"text/plain"})}})),define("metaserver/static/js/modules/clean/react/upload_kit/utils/makers",["require","exports","metaserver/static/js/modules/clean/react/upload_kit/lib/types","metaserver/static/js/modules/clean/uuid/uuid"],(function(e,t,i,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeChooserUploadItem=t.makeDirectoryUploadItem=t.makeFileUploadItem=void 0,t.makeFileUploadItem=function(e,t,o){return Object.assign(Object.assign({},o),{bytes:e.size,bytesUploaded:0,destPath:t,file:e,id:s.UUID.v4(),isDir:!1,source:i.FileSource.Computer,status:i.UploadStatus.Staged})},t.makeDirectoryUploadItem=function(e){return{bytes:0,bytesUploaded:0,destPath:e,id:s.UUID.v4(),isDir:!0,source:i.FileSource.Computer,status:i.UploadStatus.Staged}},t.makeChooserUploadItem=function(e,t){return Object.assign(Object.assign({},t),{bytes:e.bytes,bytesUploaded:0,destPath:e.name,file:e,id:e.id,isDir:e.isDir,source:i.FileSource.Dropbox,status:i.UploadStatus.Staged})}})),define("metaserver/static/js/modules/clean/react/upload_kit/utils/path",["require","exports"],(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getNameAtRoot=t.getRootDir=t.getDestPath=t.reparentFilename=t.renameFilename=void 0,t.renameFilename=function(e,t){const i=e.split("/");return i[i.length-1]=t,i.join("/")},t.reparentFilename=function(e,t){return`${t}/${e.split("/").pop()}`},t.getDestPath=e=>e.fullPath?e.fullPath.startsWith("/")?e.fullPath.substring(1):e.fullPath:e.name,t.getRootDir=e=>-1===e.indexOf("/")?"/":e.split("/")[0],t.getNameAtRoot=e=>e.split("/")[0]})); //# sourceMappingURL=pkg-upload_kit.min.js-vfl0vYPMR.map