@aws-amplify/ui-react-storage 0.0.0-studio-22d0a39-20230414203423 → 0.0.0-studio-c7fd574-20230502235441

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/esm/components/StorageManager/StorageManager.js +1 -0
  2. package/dist/esm/components/StorageManager/hooks/useStorageManager/actions.js +1 -0
  3. package/dist/esm/components/StorageManager/hooks/useStorageManager/reducer.js +1 -0
  4. package/dist/esm/components/StorageManager/hooks/useStorageManager/useStorageManager.js +1 -0
  5. package/dist/esm/components/StorageManager/hooks/useUploadFiles/resolveFile.js +1 -0
  6. package/dist/esm/components/StorageManager/hooks/useUploadFiles/useUploadFiles.js +1 -0
  7. package/dist/esm/components/StorageManager/ui/FileList/FileControl.js +1 -0
  8. package/dist/esm/components/StorageManager/ui/FileList/FileList.js +1 -0
  9. package/dist/esm/components/StorageManager/ui/FileList/FileStatusMessage.js +1 -0
  10. package/dist/esm/components/StorageManager/utils/checkMaxFileSize.js +1 -0
  11. package/dist/esm/components/StorageManager/utils/uploadFile.js +1 -0
  12. package/dist/esm/{index.mjs → index.js} +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/styles.css +1 -1
  15. package/dist/types/components/StorageManager/hooks/useUploadFiles/resolveFile.d.ts +10 -0
  16. package/dist/types/components/StorageManager/types.d.ts +3 -1
  17. package/dist/types/components/StorageManager/utils/uploadFile.d.ts +4 -4
  18. package/package.json +10 -10
  19. package/dist/esm/components/StorageManager/StorageManager.mjs +0 -1
  20. package/dist/esm/components/StorageManager/hooks/useStorageManager/actions.mjs +0 -1
  21. package/dist/esm/components/StorageManager/hooks/useStorageManager/reducer.mjs +0 -1
  22. package/dist/esm/components/StorageManager/hooks/useStorageManager/useStorageManager.mjs +0 -1
  23. package/dist/esm/components/StorageManager/hooks/useUploadFiles/useUploadFiles.mjs +0 -1
  24. package/dist/esm/components/StorageManager/ui/FileList/FileControl.mjs +0 -1
  25. package/dist/esm/components/StorageManager/ui/FileList/FileList.mjs +0 -1
  26. package/dist/esm/components/StorageManager/ui/FileList/FileStatusMessage.mjs +0 -1
  27. package/dist/esm/components/StorageManager/utils/checkMaxFileSize.mjs +0 -1
  28. package/dist/esm/components/StorageManager/utils/uploadFile.mjs +0 -1
  29. /package/dist/esm/components/StorageManager/hooks/useDropZone/{useDropZone.mjs → useDropZone.js} +0 -0
  30. /package/dist/esm/components/StorageManager/hooks/useStorageManager/{types.mjs → types.js} +0 -0
  31. /package/dist/esm/components/StorageManager/{types.mjs → types.js} +0 -0
  32. /package/dist/esm/components/StorageManager/ui/Container/{Container.mjs → Container.js} +0 -0
  33. /package/dist/esm/components/StorageManager/ui/DropZone/{DropZone.mjs → DropZone.js} +0 -0
  34. /package/dist/esm/components/StorageManager/ui/FileList/{FileDetails.mjs → FileDetails.js} +0 -0
  35. /package/dist/esm/components/StorageManager/ui/FileList/{FileRemoveButton.mjs → FileRemoveButton.js} +0 -0
  36. /package/dist/esm/components/StorageManager/ui/FileList/{FileThumbnail.mjs → FileThumbnail.js} +0 -0
  37. /package/dist/esm/components/StorageManager/ui/FileListHeader/{FileListHeader.mjs → FileListHeader.js} +0 -0
  38. /package/dist/esm/components/StorageManager/ui/FilePicker/{FilePicker.mjs → FilePicker.js} +0 -0
  39. /package/dist/esm/components/StorageManager/utils/{displayText.mjs → displayText.js} +0 -0
  40. /package/dist/esm/components/StorageManager/utils/{filterAllowedFiles.mjs → filterAllowedFiles.js} +0 -0
  41. /package/dist/esm/components/StorageManager/utils/{humanFileSize.mjs → humanFileSize.js} +0 -0
@@ -0,0 +1 @@
1
+ import*as e from"react";import{Logger as i}from"aws-amplify";import{ComponentClassNames as o,VisuallyHidden as s}from"@aws-amplify/ui-react";import{useDropZone as r}from"./hooks/useDropZone/useDropZone.js";import{useStorageManager as t}from"./hooks/useStorageManager/useStorageManager.js";import{useUploadFiles as l}from"./hooks/useUploadFiles/useUploadFiles.js";import{FileStatus as a}from"./types.js";import{Container as n}from"./ui/Container/Container.js";import{DropZone as p}from"./ui/DropZone/DropZone.js";import{FileList as m}from"./ui/FileList/FileList.js";import{FileListHeader as u}from"./ui/FileListHeader/FileListHeader.js";import{FilePicker as c}from"./ui/FilePicker/FilePicker.js";import{checkMaxFileSize as d}from"./utils/checkMaxFileSize.js";import{defaultStorageManagerDisplayText as f}from"./utils/displayText.js";import{filterAllowedFiles as F}from"./utils/filterAllowedFiles.js";import"tslib";const g=new i("Storage.StorageManager");function U({acceptedFileTypes:i,accessLevel:U,defaultFiles:h,displayText:x,isResumable:y=!1,maxFileCount:S,maxFileSize:j,onUploadError:E,onUploadSuccess:k,onFileRemove:T,onUploadStart:C,showThumbnails:L=!0,processFile:b,components:v,provider:D,path:P}){i&&U&&S||g.warn("FileUploader requires accessLevel, acceptedFileTypes and maxFileCount props");const w=Object.assign({Container:n,DropZone:p,FileList:m,FilePicker:c,FileListHeader:u},v),M=void 0===S||"number"==typeof S&&S>1,R=Object.assign(Object.assign({},f),x),{getFileSizeErrorText:Z}=R,O=e=>d({file:e,maxFileSize:j,getFileSizeErrorText:Z}),{addFiles:z,files:A,removeUpload:H,setUploadingFile:$,setUploadPaused:q,setUploadProgress:I,setUploadSuccess:N,setUploadResumed:B}=t(h),G=r({onChange:e=>{const{files:o}=e.dataTransfer;if(!o||0===o.length)return;const s=F(Array.from(o),i);z({files:s,getFileErrorMessage:O})}});l({accessLevel:U,files:A,isResumable:y,maxFileCount:S,onUploadError:E,onUploadSuccess:k,onUploadStart:C,setUploadingFile:$,setUploadProgress:I,setUploadSuccess:N,processFile:b,provider:D,path:P});const J=0!==A.length&&A.every((e=>(null==e?void 0:e.status)===a.UPLOADED)),K=A.filter((e=>e.progress<100)).length>S,Q=A.filter((e=>(null==e?void 0:e.status)===a.UPLOADED)).length,V=A.length-Q,W=A.length>0,X=e.useRef(null);return e.createElement(w.Container,{className:`${o.StorageManager} ${W?o.StorageManagerPreviewer:""}`},e.createElement(w.DropZone,Object.assign({},G,{displayText:R}),e.createElement(e.Fragment,null,e.createElement(w.FilePicker,{onClick:function(){X.current&&(X.current.click(),X.current.value="")}},R.browseFilesText),e.createElement(s,null,e.createElement("input",{type:"file",tabIndex:-1,ref:X,onChange:e=>{const{files:i}=e.target;i&&0!==i.length&&z({files:Array.from(i),getFileErrorMessage:O})},multiple:M,accept:i.join(",")})))),W?e.createElement(w.FileListHeader,{allUploadsSuccessful:J,displayText:R,fileCount:A.length,remainingFilesCount:V}):null,e.createElement(w.FileList,{displayText:R,files:A,isResumable:y,onCancelUpload:({id:e,uploadTask:i})=>{i.pause(),H({id:e})},onDeleteUpload:({id:e})=>{if(H({id:e}),"function"==typeof T){const i=A.find((i=>i.id===e));i&&T({key:i.key})}},onResume:({id:e,uploadTask:i})=>{i.resume(),B({id:e})},onPause:({id:e,uploadTask:i})=>{i.pause(),q({id:e})},showThumbnails:L,hasMaxFilesError:K,maxFileCount:S}))}U.Container=n,U.DropZone=p,U.FileList=m,U.FileListHeader=u,U.FilePicker=c;export{U as StorageManager};
@@ -0,0 +1 @@
1
+ import{StorageManagerActionTypes as e}from"./types.js";const s=({files:s,getFileErrorMessage:t})=>({type:e.ADD_FILES,files:s,getFileErrorMessage:t}),t=({id:s,uploadTask:t})=>({type:e.SET_STATUS_UPLOADING,id:s,uploadTask:t}),i=({id:s,progress:t})=>({type:e.SET_UPLOAD_PROGRESS,id:s,progress:t}),r=({id:s,status:t})=>({type:e.SET_STATUS,id:s,status:t}),p=({id:s})=>({type:e.REMOVE_UPLOAD,id:s});export{s as addFilesAction,p as removeUploadAction,i as setUploadProgressAction,r as setUploadStatusAction,t as setUploadingFileAction};
@@ -0,0 +1 @@
1
+ import{FileStatus as s}from"../../types.js";import{StorageManagerActionTypes as e}from"./types.js";function t(t,i){switch(i.type){case e.ADD_FILES:{const{files:e}=i,a=e.map((e=>{const t=i.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?s.ERROR:s.QUEUED,isImage:e.type.startsWith("image/"),progress:-1}})),r=[...t.files,...a];return Object.assign(Object.assign({},t),{files:r})}case e.SET_STATUS_UPLOADING:{const{id:e,uploadTask:a}=i,{files:r}=t,c=r.reduce(((t,i)=>i.id===e?[...t,Object.assign(Object.assign({},i),{status:s.UPLOADING,progress:0,uploadTask:a||void 0})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:c})}case e.SET_UPLOAD_PROGRESS:{const{id:s,progress:e}=i,{files:a}=t,r=a.reduce(((t,i)=>i.id===s?[...t,Object.assign(Object.assign({},i),{progress:e})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:r})}case e.SET_STATUS:{const{id:s,status:e}=i,{files:a}=t,r=a.reduce(((t,i)=>i.id===s?[...t,Object.assign(Object.assign({},i),{status:e})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:r})}case e.REMOVE_UPLOAD:{const{id:s}=i,{files:e}=t,a=e.reduce(((e,t)=>t.id===s?[...e]:[...e,t]),[]);return Object.assign(Object.assign({},t),{files:a})}}}export{t as storageManagerStateReducer};
@@ -0,0 +1 @@
1
+ import s from"react";import{FileStatus as e}from"../../types.js";import{storageManagerStateReducer as i}from"./reducer.js";import{addFilesAction as r,setUploadingFileAction as t,setUploadProgressAction as o,setUploadStatusAction as d,removeUploadAction as a}from"./actions.js";import{isObject as l}from"@aws-amplify/ui";const p=s=>(s=>!(!l(s)||!s.key))(s)?Object.assign(Object.assign({},s),{id:s.key,status:e.UPLOADED}):void 0;function u(l=[]){const[{files:u},m]=s.useReducer(i,{files:Array.isArray(l)?l.map(p).filter((s=>!!s)):[]});return{removeUpload:({id:s})=>{m(a({id:s}))},setUploadPaused:({id:s})=>{m(d({id:s,status:e.PAUSED}))},setUploadProgress:({progress:s,id:e})=>{m(o({id:e,progress:s}))},setUploadResumed:({id:s})=>{m(d({id:s,status:e.UPLOADING}))},setUploadSuccess:({id:s})=>{m(d({id:s,status:e.UPLOADED}))},setUploadingFile:({uploadTask:s,id:e})=>{m(t({id:e,uploadTask:s}))},addFiles:({files:s,getFileErrorMessage:e})=>{m(r({files:s,getFileErrorMessage:e}))},files:u}}export{u as useStorageManager};
@@ -0,0 +1 @@
1
+ import{isFunction as e}from"@aws-amplify/ui";const i=({processFile:i,file:o,key:s})=>new Promise(((t,c)=>{const f=e(i)?i({file:o,key:s}):{file:o,key:s};f instanceof Promise?f.then(t).catch(c):t(f)}));export{i as resolveFile};
@@ -0,0 +1 @@
1
+ import{__rest as e}from"tslib";import*as o from"react";import{uploadFile as s}from"../../utils/uploadFile.js";import{FileStatus as l}from"../../types.js";import{resolveFile as t}from"./resolveFile.js";function r({files:r,accessLevel:a,isResumable:i,setUploadProgress:p,setUploadingFile:c,setUploadSuccess:n,onUploadError:d,onUploadSuccess:f,onUploadStart:m,maxFileCount:u,processFile:k,provider:b,path:y=""}){o.useEffect((()=>{const o=r.filter((e=>e.status===l.QUEUED));if(!(o.length>u))for(const{file:l,key:r,id:u}of o){const o=e=>{null==f||f(e),n({id:u})},U=e=>{const o=0===e.total?100:Math.floor(e.loaded/e.total*100);p({id:u,progress:o})},g=e=>{null==d||d(e,{key:r})};l&&t({processFile:k,file:l,key:r}).then((l=>{var{key:t}=l,r=e(l,["key"]);null==m||m({key:t});const p=s(Object.assign(Object.assign({},r),{isResumable:i,provider:b,key:y+t,level:a,completeCallback:o,progressCallback:U,errorCallback:g}));c({id:u,uploadTask:i?p:void 0})}))}}),[r,a,i,p,c,d,f,m,u,n,k,b,y])}export{r as useUploadFiles};
@@ -0,0 +1 @@
1
+ import e from"react";import{View as a,ComponentClassNames as t,Loader as r,Button as l}from"@aws-amplify/ui-react";import{FileStatus as s}from"../../types.js";import{FileStatusMessage as i}from"./FileStatusMessage.js";import{FileRemoveButton as m}from"./FileRemoveButton.js";import{UploadDetails as n}from"./FileDetails.js";import{FileThumbnail as o}from"./FileThumbnail.js";function u({onPause:u,onResume:c,displayName:p,errorMessage:g,isImage:f,isResumable:d,loaderIsDeterminate:T,onRemove:x,progress:E,showThumbnails:S=!0,size:N,status:P,displayText:D,thumbnailUrl:U}){const{getPausedText:v,getUploadingText:F,uploadSuccessfulText:M,pauseText:j,resumeText:k}=D;return e.createElement(a,{className:t.StorageManagerFile},e.createElement(a,{className:t.StorageManagerFileWrapper},S?e.createElement(o,{isImage:f,fileName:p,url:U}):null,e.createElement(n,{displayName:p,fileSize:N}),P===s.UPLOADING?e.createElement(r,{className:t.StorageManagerLoader,variation:"linear",percentage:E,isDeterminate:T,isPercentageTextHidden:!0}):null,!d||P!==s.UPLOADING&&P!==s.PAUSED?null:P===s.PAUSED?e.createElement(l,{onClick:c,size:"small",variation:"link"},k):e.createElement(l,{onClick:u,size:"small",variation:"link"},j),e.createElement(m,{altText:`Remove file ${p}`,onClick:x})),e.createElement(i,{uploadSuccessfulText:M,getUploadingText:F,getPausedText:v,status:P,errorMessage:g,percentage:E}))}export{u as FileControl};
@@ -0,0 +1 @@
1
+ import e from"react";import{View as a,ComponentClassNames as s,Alert as r}from"@aws-amplify/ui-react";import{FileStatus as o}from"../../types.js";import{FileControl as i}from"./FileControl.js";function t({displayText:t,files:l,hasMaxFilesError:n,isResumable:m,onCancelUpload:u,onDeleteUpload:p,onResume:d,onPause:c,showThumbnails:g,maxFileCount:f}){if(l.length<1)return null;const{getMaxFilesErrorText:T}=t,U=T(f);return e.createElement(a,{className:s.StorageManagerFileList},l.map((a=>{const{file:s,status:r,progress:l,error:n,key:f,isImage:T,id:U,uploadTask:h}=a,x=s&&T?URL.createObjectURL(s):"",y=!m||l>0,R=r===o.UPLOADING;return e.createElement(i,{displayName:f,errorMessage:n,displayText:t,isImage:T,isUploading:R,isResumable:m,key:U,loaderIsDeterminate:y,onRemove:()=>{m&&(r===o.UPLOADING||r===o.PAUSED)&&h?u({id:U,uploadTask:h}):p({id:U})},onPause:()=>{h&&c({id:U,uploadTask:h})},onResume:()=>{h&&d({id:U,uploadTask:h})},progress:l,showThumbnails:g,size:null==s?void 0:s.size,status:r,thumbnailUrl:x})})),n&&e.createElement(r,{variation:"error",heading:U}))}export{t as FileList};
@@ -0,0 +1 @@
1
+ import e from"react";import a from"classnames";import{Text as t,ComponentClassNames as r}from"@aws-amplify/ui-react";import{IconError as s,IconCheck as l}from"@aws-amplify/ui-react/internal";import{classNameModifier as m}from"@aws-amplify/ui";import{FileStatus as n}from"../../types.js";const o=({errorMessage:o,getPausedText:c,getUploadingText:i,percentage:u,status:g,uploadSuccessfulText:S})=>{switch(g){case n.UPLOADING:return e.createElement(t,{className:r.StorageManagerFileStatus},i(u));case n.PAUSED:return e.createElement(t,{className:r.StorageManagerFileStatus},c(u));case n.UPLOADED:return e.createElement(t,{className:a(r.StorageManagerFileStatus,m(r.StorageManagerFileStatus,"success"))},e.createElement(l,{fontSize:"xl"})," ",S);case n.ERROR:return e.createElement(t,{className:a(r.StorageManagerFileStatus,m(r.StorageManagerFileStatus,"error"))},e.createElement(s,{fontSize:"xl"})," ",o);default:return null}};export{o as FileStatusMessage};
@@ -0,0 +1 @@
1
+ import{humanFileSize as e}from"./humanFileSize.js";const i=({file:i,getFileSizeErrorText:o,maxFileSize:r})=>void 0===r?"":i.size>r?o(e(r,!0)):"";export{i as checkMaxFileSize};
@@ -0,0 +1 @@
1
+ import{__rest as e}from"tslib";import{Storage as l}from"aws-amplify";function r(r){var{file:a,key:o,level:t="private",progressCallback:s,errorCallback:p,completeCallback:c,isResumable:b=!1,provider:i}=r,m=e(r,["file","key","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const k=a.type||"binary/octet-stream";return!0===b?l.put(o,a,Object.assign({level:t,resumable:!0,progressCallback:s,errorCallback:p,completeCallback:c,contentType:k,provider:i},m)):l.put(o,a,Object.assign({level:t,resumable:!1,progressCallback:s,contentType:k,provider:i},m)).then(c,p)}export{r as uploadFile};
@@ -1 +1 @@
1
- export{StorageManager}from"./components/StorageManager/StorageManager.mjs";
1
+ export{StorageManager}from"./components/StorageManager/StorageManager.js";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),a=require("aws-amplify"),t=require("@aws-amplify/ui-react"),s=require("@aws-amplify/ui"),l=require("tslib"),r=require("classnames"),n=require("@aws-amplify/ui-react/internal");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var a=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),a.default=e,Object.freeze(a)}var u,c,d=o(e),p=i(e),m=o(r);function g(e,a){switch(a.type){case c.ADD_FILES:{const{files:t}=a,s=t.map((e=>{const t=a.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?u.ERROR:u.QUEUED,isImage:e.type.startsWith("image/"),progress:-1}})),l=[...e.files,...s];return Object.assign(Object.assign({},e),{files:l})}case c.SET_STATUS_UPLOADING:{const{id:t,uploadTask:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{status:u.UPLOADING,progress:0,uploadTask:s||void 0})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case c.SET_UPLOAD_PROGRESS:{const{id:t,progress:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{progress:s})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case c.SET_STATUS:{const{id:t,status:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{status:s})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case c.REMOVE_UPLOAD:{const{id:t}=a,{files:s}=e,l=s.reduce(((e,a)=>a.id===t?[...e]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:l})}}}!function(e){e.QUEUED="queued",e.UPLOADING="uploading",e.PAUSED="paused",e.ERROR="error",e.UPLOADED="uploaded"}(u||(u={})),function(e){e.ADD_FILES="ADD_FILES",e.SET_STATUS="SET_STATUS",e.SET_STATUS_UPLOADING="SET_STATUS_UPLOADING",e.SET_UPLOAD_PROGRESS="SET_UPLOAD_PROGRESS",e.REMOVE_UPLOAD="REMOVE_UPLOAD"}(c||(c={}));const f=({files:e,getFileErrorMessage:a})=>({type:c.ADD_FILES,files:e,getFileErrorMessage:a}),E=({id:e,uploadTask:a})=>({type:c.SET_STATUS_UPLOADING,id:e,uploadTask:a}),S=({id:e,progress:a})=>({type:c.SET_UPLOAD_PROGRESS,id:e,progress:a}),T=({id:e,status:a})=>({type:c.SET_STATUS,id:e,status:a}),U=({id:e})=>({type:c.REMOVE_UPLOAD,id:e}),C=e=>(e=>!(!s.isObject(e)||!e.key))(e)?Object.assign(Object.assign({},e),{id:e.key,status:u.UPLOADED}):void 0;function D(e){var{file:t,fileName:s,level:r="private",progressCallback:n,errorCallback:o,completeCallback:i,isResumable:u=!1,provider:c}=e,d=l.__rest(e,["file","fileName","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const p=t.type||"binary/octet-stream";return!0===u?a.Storage.put(s,t,Object.assign({level:r,resumable:!0,progressCallback:n,errorCallback:o,completeCallback:i,contentType:p,provider:c},d)):a.Storage.put(s,t,Object.assign({level:r,resumable:!1,progressCallback:n,contentType:p,provider:c},d)).then(i,o)}function b({children:e,className:a}){return d.default.createElement(t.View,{className:a},e)}function F({children:e,displayText:a,inDropZone:l,onDragEnter:r,onDragLeave:o,onDragOver:i,onDragStart:u,onDrop:c,testId:p}){const{dropFilesText:g}=a;return d.default.createElement(t.View,{className:m.default(l&&s.classNameModifier(t.ComponentClassNames.StorageManagerDropZone,"active"),t.ComponentClassNames.StorageManagerDropZone),"data-testid":p,onDragStart:u,onDragEnter:r,onDragLeave:o,onDrop:c,onDragOver:i},d.default.createElement(n.IconUpload,{"aria-hidden":!0,className:t.ComponentClassNames.StorageManagerDropZoneIcon}),d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerDropZoneText},g),e)}const x=({errorMessage:e,getPausedText:a,getUploadingText:l,percentage:r,status:o,uploadSuccessfulText:i})=>{switch(o){case u.UPLOADING:return d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerFileStatus},l(r));case u.PAUSED:return d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerFileStatus},a(r));case u.UPLOADED:return d.default.createElement(t.Text,{className:m.default(t.ComponentClassNames.StorageManagerFileStatus,s.classNameModifier(t.ComponentClassNames.StorageManagerFileStatus,"success"))},d.default.createElement(n.IconCheck,{fontSize:"xl"})," ",i);case u.ERROR:return d.default.createElement(t.Text,{className:m.default(t.ComponentClassNames.StorageManagerFileStatus,s.classNameModifier(t.ComponentClassNames.StorageManagerFileStatus,"error"))},d.default.createElement(n.IconError,{fontSize:"xl"})," ",e);default:return null}},O=({altText:e,onClick:a})=>d.default.createElement(t.Button,{size:"small",onClick:a},d.default.createElement(t.VisuallyHidden,null,e),d.default.createElement(n.IconClose,{"aria-hidden":!0,fontSize:"medium"})),N=({displayName:e,fileSize:a})=>d.default.createElement(d.default.Fragment,null,d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileMain},d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerFileName},e)),d.default.createElement(t.Text,{as:"span",className:t.ComponentClassNames.StorageManagerFileSize},a?s.humanFileSize(a,!0):"")),P=({fileName:e,isImage:a,url:s})=>{const l=a?d.default.createElement(t.Image,{alt:e,src:s}):d.default.createElement(n.IconFile,null);return d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileImage},l)};function y({onPause:e,onResume:a,displayName:s,errorMessage:l,isImage:r,isResumable:n,loaderIsDeterminate:o,onRemove:i,progress:c,showThumbnails:p=!0,size:m,status:g,displayText:f,thumbnailUrl:E}){const{getPausedText:S,getUploadingText:T,uploadSuccessfulText:U,pauseText:C,resumeText:D}=f;return d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFile},d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileWrapper},p?d.default.createElement(P,{isImage:r,fileName:s,url:E}):null,d.default.createElement(N,{displayName:s,fileSize:m}),g===u.UPLOADING?d.default.createElement(t.Loader,{className:t.ComponentClassNames.StorageManagerLoader,variation:"linear",percentage:c,isDeterminate:o,isPercentageTextHidden:!0}):null,!n||g!==u.UPLOADING&&g!==u.PAUSED?null:g===u.PAUSED?d.default.createElement(t.Button,{onClick:a,size:"small",variation:"link"},D):d.default.createElement(t.Button,{onClick:e,size:"small",variation:"link"},C),d.default.createElement(O,{altText:`Remove file ${s}`,onClick:i})),d.default.createElement(x,{uploadSuccessfulText:U,getUploadingText:T,getPausedText:S,status:g,errorMessage:l,percentage:c}))}function k({displayText:e,files:a,hasMaxFilesError:s,isResumable:l,onCancelUpload:r,onDeleteUpload:n,onResume:o,onPause:i,showThumbnails:c,maxFileCount:p}){if(a.length<1)return null;const{getMaxFilesErrorText:m}=e,g=m(p);return d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileList},a.map((a=>{const{file:t,status:s,progress:p,error:m,key:g,isImage:f,id:E,uploadTask:S}=a,T=t&&f?URL.createObjectURL(t):"",U=!l||p>0,C=s===u.UPLOADING;return d.default.createElement(y,{displayName:g,errorMessage:m,displayText:e,isImage:f,isUploading:C,isResumable:l,key:E,loaderIsDeterminate:U,onRemove:()=>{l&&(s===u.UPLOADING||s===u.PAUSED)&&S?r({id:E,uploadTask:S}):n({id:E})},onPause:()=>{S&&i({id:E,uploadTask:S})},onResume:()=>{S&&o({id:E,uploadTask:S})},progress:p,showThumbnails:c,size:null==t?void 0:t.size,status:s,thumbnailUrl:T})})),s&&d.default.createElement(t.Alert,{variation:"error",heading:g}))}function v({fileCount:e,remainingFilesCount:a,displayText:s,allUploadsSuccessful:l}){const{getFilesUploadedText:r,getRemainingFilesText:n}=s;return d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerPreviewerText},l?r(e):n(a))}function h(e){var{children:a,className:s=t.ComponentClassNames.StorageManagerFilePicker,size:r="small"}=e,n=l.__rest(e,["children","className","size"]);return d.default.createElement(t.Button,Object.assign({},n,{className:s,size:r}),a)}const M=({file:e,getFileSizeErrorText:a,maxFileSize:t})=>void 0===t?"":e.size>t?a(function(e,a=!1,t=1){const s=a?1e3:1024;if(Math.abs(e)<s)return`${e} B`;const l=a?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let r=-1;const n=Math.pow(10,t);do{e/=s,++r}while(Math.round(Math.abs(e)*n)/n>=s&&r<l.length-1);return e.toFixed(t)+" "+l[r]}(t,!0)):"",A={getFilesUploadedText:e=>`${e} ${1===e?"file uploaded":"files uploaded"}`,getFileSizeErrorText:e=>`File size must be below ${e}`,getRemainingFilesText:e=>`${e} ${1===e?"file":"files"} uploading`,getUploadingText:e=>"Uploading"+(e>0?`: ${e}%`:""),getUploadButtonText:e=>`Upload ${e} ${1===e?"file":"files"}`,getMaxFilesErrorText:e=>`Cannot choose more than ${e} ${1===e?"file":"files"}. Remove files before updating`,getErrorText:e=>e,doneButtonText:"Done",clearAllButtonText:"Clear all",extensionNotAllowedText:"Extension not allowed",browseFilesText:"Browse files",dropFilesText:"Drop files here or",pauseText:"Pause",resumeText:"Resume",uploadSuccessfulText:"Uploaded",getPausedText:e=>`Paused: ${e}%`},L=new a.Logger("Storage.StorageManager");function R({acceptedFileTypes:a,accessLevel:s,defaultFiles:l,displayText:r,isResumable:n=!1,maxFileCount:o,maxFileSize:i,onUploadError:c,onUploadSuccess:m,onFileRemove:x,onUploadStart:O,showThumbnails:N=!0,processFile:P,components:y,provider:R,path:_}){a&&s&&o||L.warn("FileUploader requires accessLevel, acceptedFileTypes and maxFileCount props");const j=Object.assign({Container:b,DropZone:F,FileList:k,FilePicker:h,FileListHeader:v},y),w=void 0===o||"number"==typeof o&&o>1,I=Object.assign(Object.assign({},A),r),{getFileSizeErrorText:z}=I,B=e=>M({file:e,maxFileSize:i,getFileSizeErrorText:z}),{addFiles:G,files:$,removeUpload:V,setUploadingFile:Z,setUploadPaused:q,setUploadProgress:H,setUploadSuccess:W,setUploadResumed:Q}=function(e=[]){const[{files:a},t]=d.default.useReducer(g,{files:Array.isArray(e)?e.map(C).filter((e=>!!e)):[]});return{removeUpload:({id:e})=>{t(U({id:e}))},setUploadPaused:({id:e})=>{t(T({id:e,status:u.PAUSED}))},setUploadProgress:({progress:e,id:a})=>{t(S({id:a,progress:e}))},setUploadResumed:({id:e})=>{t(T({id:e,status:u.UPLOADING}))},setUploadSuccess:({id:e})=>{t(T({id:e,status:u.UPLOADED}))},setUploadingFile:({uploadTask:e,id:a})=>{t(E({id:a,uploadTask:e}))},addFiles:({files:e,getFileErrorMessage:a})=>{t(f({files:e,getFileErrorMessage:a}))},files:a}}(l),Y=function({onChange:a}){const[t,s]=e.useState(!1);return{onDragStart:e=>{e.dataTransfer.clearData()},onDragEnter:e=>{e.preventDefault(),e.stopPropagation()},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),s(!1)},onDragOver:e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect="copy",s(!0)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),s(!1),a(e)},inDropZone:t}}({onChange:e=>{const{files:t}=e.dataTransfer;if(!t||0===t.length)return;const s=((e,a)=>e.filter((e=>{const t=e.name||"",s=(e.type||"").toLowerCase(),l=s.replace(/\/.*$/,"");return a.some((e=>{const a=e.trim().toLowerCase();return"."===a.charAt(0)?t.toLowerCase().endsWith(a):a.endsWith("/*")?l===a.replace(/\/.*$/,""):s===a}))})))(Array.from(t),a);G({files:s,getFileErrorMessage:B})}});!function({files:e,accessLevel:a,isResumable:t,setUploadProgress:s,setUploadingFile:l,setUploadSuccess:r,onUploadError:n,onUploadSuccess:o,onUploadStart:i,maxFileCount:c,processFile:d,provider:m,path:g=""}){p.useEffect((()=>{const p=e.filter((e=>e.status===u.QUEUED));if(!(p.length>c))for(const{file:e,key:u,id:c}of p){const p=e=>{null==o||o(e),r({id:c})},f=e=>{const a=0===e.total?100:Math.floor(e.loaded/e.total*100);s({id:c,progress:a})},E=e=>{null==n||n(e,{key:u})};if(e){const s="function"==typeof d?d({file:e,key:u}):{file:e,key:u};if(null==i||i({key:u}),t){const e=D({file:s.file,fileName:g+s.key,isResumable:!0,level:a,completeCallback:p,progressCallback:f,errorCallback:E,provider:m});l({id:c,uploadTask:e})}else D({file:s.file,fileName:g+s.key,isResumable:!1,level:a,completeCallback:p,progressCallback:f,errorCallback:E,provider:m}),l({id:c})}}}),[e,a,t,s,l,n,o,i,c,r,d,m,g])}({accessLevel:s,files:$,isResumable:n,maxFileCount:o,onUploadError:c,onUploadSuccess:m,onUploadStart:O,setUploadingFile:Z,setUploadProgress:H,setUploadSuccess:W,processFile:P,provider:R,path:_});const K=0!==$.length&&$.every((e=>(null==e?void 0:e.status)===u.UPLOADED)),J=$.filter((e=>e.progress<100)).length>o,X=$.filter((e=>(null==e?void 0:e.status)===u.UPLOADED)).length,ee=$.length-X,ae=$.length>0,te=p.useRef(null);return p.createElement(j.Container,{className:`${t.ComponentClassNames.StorageManager} ${ae?t.ComponentClassNames.StorageManagerPreviewer:""}`},p.createElement(j.DropZone,Object.assign({},Y,{displayText:I}),p.createElement(p.Fragment,null,p.createElement(j.FilePicker,{onClick:function(){te.current&&(te.current.click(),te.current.value="")}},I.browseFilesText),p.createElement(t.VisuallyHidden,null,p.createElement("input",{type:"file",tabIndex:-1,ref:te,onChange:e=>{const{files:a}=e.target;a&&0!==a.length&&G({files:Array.from(a),getFileErrorMessage:B})},multiple:w,accept:a.join(",")})))),ae?p.createElement(j.FileListHeader,{allUploadsSuccessful:K,displayText:I,fileCount:$.length,remainingFilesCount:ee}):null,p.createElement(j.FileList,{displayText:I,files:$,isResumable:n,onCancelUpload:({id:e,uploadTask:a})=>{a.pause(),V({id:e})},onDeleteUpload:({id:e})=>{if(V({id:e}),"function"==typeof x){const a=$.find((a=>a.id===e));a&&x({key:a.key})}},onResume:({id:e,uploadTask:a})=>{a.resume(),Q({id:e})},onPause:({id:e,uploadTask:a})=>{a.pause(),q({id:e})},showThumbnails:N,hasMaxFilesError:J,maxFileCount:o}))}R.Container=b,R.DropZone=F,R.FileList=k,R.FileListHeader=v,R.FilePicker=h,exports.StorageManager=R;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),a=require("aws-amplify"),t=require("@aws-amplify/ui-react"),s=require("@aws-amplify/ui"),l=require("tslib"),r=require("classnames"),n=require("@aws-amplify/ui-react/internal");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var a=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(a,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})}})),a.default=e,Object.freeze(a)}var c,u,d=o(e),p=i(e),m=o(r);function g(e,a){switch(a.type){case u.ADD_FILES:{const{files:t}=a,s=t.map((e=>{const t=a.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?c.ERROR:c.QUEUED,isImage:e.type.startsWith("image/"),progress:-1}})),l=[...e.files,...s];return Object.assign(Object.assign({},e),{files:l})}case u.SET_STATUS_UPLOADING:{const{id:t,uploadTask:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{status:c.UPLOADING,progress:0,uploadTask:s||void 0})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case u.SET_UPLOAD_PROGRESS:{const{id:t,progress:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{progress:s})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case u.SET_STATUS:{const{id:t,status:s}=a,{files:l}=e,r=l.reduce(((e,a)=>a.id===t?[...e,Object.assign(Object.assign({},a),{status:s})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case u.REMOVE_UPLOAD:{const{id:t}=a,{files:s}=e,l=s.reduce(((e,a)=>a.id===t?[...e]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:l})}}}!function(e){e.QUEUED="queued",e.UPLOADING="uploading",e.PAUSED="paused",e.ERROR="error",e.UPLOADED="uploaded"}(c||(c={})),function(e){e.ADD_FILES="ADD_FILES",e.SET_STATUS="SET_STATUS",e.SET_STATUS_UPLOADING="SET_STATUS_UPLOADING",e.SET_UPLOAD_PROGRESS="SET_UPLOAD_PROGRESS",e.REMOVE_UPLOAD="REMOVE_UPLOAD"}(u||(u={}));const f=({files:e,getFileErrorMessage:a})=>({type:u.ADD_FILES,files:e,getFileErrorMessage:a}),E=({id:e,uploadTask:a})=>({type:u.SET_STATUS_UPLOADING,id:e,uploadTask:a}),S=({id:e,progress:a})=>({type:u.SET_UPLOAD_PROGRESS,id:e,progress:a}),T=({id:e,status:a})=>({type:u.SET_STATUS,id:e,status:a}),U=({id:e})=>({type:u.REMOVE_UPLOAD,id:e}),C=e=>(e=>!(!s.isObject(e)||!e.key))(e)?Object.assign(Object.assign({},e),{id:e.key,status:c.UPLOADED}):void 0;function D(e){var{file:t,key:s,level:r="private",progressCallback:n,errorCallback:o,completeCallback:i,isResumable:c=!1,provider:u}=e,d=l.__rest(e,["file","key","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const p=t.type||"binary/octet-stream";return!0===c?a.Storage.put(s,t,Object.assign({level:r,resumable:!0,progressCallback:n,errorCallback:o,completeCallback:i,contentType:p,provider:u},d)):a.Storage.put(s,t,Object.assign({level:r,resumable:!1,progressCallback:n,contentType:p,provider:u},d)).then(i,o)}const F=({processFile:e,file:a,key:t})=>new Promise(((l,r)=>{const n=s.isFunction(e)?e({file:a,key:t}):{file:a,key:t};n instanceof Promise?n.then(l).catch(r):l(n)}));function b({children:e,className:a}){return d.default.createElement(t.View,{className:a},e)}function x({children:e,displayText:a,inDropZone:l,onDragEnter:r,onDragLeave:o,onDragOver:i,onDragStart:c,onDrop:u,testId:p}){const{dropFilesText:g}=a;return d.default.createElement(t.View,{className:m.default(l&&s.classNameModifier(t.ComponentClassNames.StorageManagerDropZone,"active"),t.ComponentClassNames.StorageManagerDropZone),"data-testid":p,onDragStart:c,onDragEnter:r,onDragLeave:o,onDrop:u,onDragOver:i},d.default.createElement(n.IconUpload,{"aria-hidden":!0,className:t.ComponentClassNames.StorageManagerDropZoneIcon}),d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerDropZoneText},g),e)}const O=({errorMessage:e,getPausedText:a,getUploadingText:l,percentage:r,status:o,uploadSuccessfulText:i})=>{switch(o){case c.UPLOADING:return d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerFileStatus},l(r));case c.PAUSED:return d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerFileStatus},a(r));case c.UPLOADED:return d.default.createElement(t.Text,{className:m.default(t.ComponentClassNames.StorageManagerFileStatus,s.classNameModifier(t.ComponentClassNames.StorageManagerFileStatus,"success"))},d.default.createElement(n.IconCheck,{fontSize:"xl"})," ",i);case c.ERROR:return d.default.createElement(t.Text,{className:m.default(t.ComponentClassNames.StorageManagerFileStatus,s.classNameModifier(t.ComponentClassNames.StorageManagerFileStatus,"error"))},d.default.createElement(n.IconError,{fontSize:"xl"})," ",e);default:return null}},P=({altText:e,onClick:a})=>d.default.createElement(t.Button,{size:"small",onClick:a},d.default.createElement(t.VisuallyHidden,null,e),d.default.createElement(n.IconClose,{"aria-hidden":!0,fontSize:"medium"})),N=({displayName:e,fileSize:a})=>d.default.createElement(d.default.Fragment,null,d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileMain},d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerFileName},e)),d.default.createElement(t.Text,{as:"span",className:t.ComponentClassNames.StorageManagerFileSize},a?s.humanFileSize(a,!0):"")),y=({fileName:e,isImage:a,url:s})=>{const l=a?d.default.createElement(t.Image,{alt:e,src:s}):d.default.createElement(n.IconFile,null);return d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileImage},l)};function k({onPause:e,onResume:a,displayName:s,errorMessage:l,isImage:r,isResumable:n,loaderIsDeterminate:o,onRemove:i,progress:u,showThumbnails:p=!0,size:m,status:g,displayText:f,thumbnailUrl:E}){const{getPausedText:S,getUploadingText:T,uploadSuccessfulText:U,pauseText:C,resumeText:D}=f;return d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFile},d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileWrapper},p?d.default.createElement(y,{isImage:r,fileName:s,url:E}):null,d.default.createElement(N,{displayName:s,fileSize:m}),g===c.UPLOADING?d.default.createElement(t.Loader,{className:t.ComponentClassNames.StorageManagerLoader,variation:"linear",percentage:u,isDeterminate:o,isPercentageTextHidden:!0}):null,!n||g!==c.UPLOADING&&g!==c.PAUSED?null:g===c.PAUSED?d.default.createElement(t.Button,{onClick:a,size:"small",variation:"link"},D):d.default.createElement(t.Button,{onClick:e,size:"small",variation:"link"},C),d.default.createElement(P,{altText:`Remove file ${s}`,onClick:i})),d.default.createElement(O,{uploadSuccessfulText:U,getUploadingText:T,getPausedText:S,status:g,errorMessage:l,percentage:u}))}function h({displayText:e,files:a,hasMaxFilesError:s,isResumable:l,onCancelUpload:r,onDeleteUpload:n,onResume:o,onPause:i,showThumbnails:u,maxFileCount:p}){if(a.length<1)return null;const{getMaxFilesErrorText:m}=e,g=m(p);return d.default.createElement(t.View,{className:t.ComponentClassNames.StorageManagerFileList},a.map((a=>{const{file:t,status:s,progress:p,error:m,key:g,isImage:f,id:E,uploadTask:S}=a,T=t&&f?URL.createObjectURL(t):"",U=!l||p>0,C=s===c.UPLOADING;return d.default.createElement(k,{displayName:g,errorMessage:m,displayText:e,isImage:f,isUploading:C,isResumable:l,key:E,loaderIsDeterminate:U,onRemove:()=>{l&&(s===c.UPLOADING||s===c.PAUSED)&&S?r({id:E,uploadTask:S}):n({id:E})},onPause:()=>{S&&i({id:E,uploadTask:S})},onResume:()=>{S&&o({id:E,uploadTask:S})},progress:p,showThumbnails:u,size:null==t?void 0:t.size,status:s,thumbnailUrl:T})})),s&&d.default.createElement(t.Alert,{variation:"error",heading:g}))}function v({fileCount:e,remainingFilesCount:a,displayText:s,allUploadsSuccessful:l}){const{getFilesUploadedText:r,getRemainingFilesText:n}=s;return d.default.createElement(t.Text,{className:t.ComponentClassNames.StorageManagerPreviewerText},l?r(e):n(a))}function M(e){var{children:a,className:s=t.ComponentClassNames.StorageManagerFilePicker,size:r="small"}=e,n=l.__rest(e,["children","className","size"]);return d.default.createElement(t.Button,Object.assign({},n,{className:s,size:r}),a)}const A=({file:e,getFileSizeErrorText:a,maxFileSize:t})=>void 0===t?"":e.size>t?a(function(e,a=!1,t=1){const s=a?1e3:1024;if(Math.abs(e)<s)return`${e} B`;const l=a?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"];let r=-1;const n=Math.pow(10,t);do{e/=s,++r}while(Math.round(Math.abs(e)*n)/n>=s&&r<l.length-1);return e.toFixed(t)+" "+l[r]}(t,!0)):"",L={getFilesUploadedText:e=>`${e} ${1===e?"file uploaded":"files uploaded"}`,getFileSizeErrorText:e=>`File size must be below ${e}`,getRemainingFilesText:e=>`${e} ${1===e?"file":"files"} uploading`,getUploadingText:e=>"Uploading"+(e>0?`: ${e}%`:""),getUploadButtonText:e=>`Upload ${e} ${1===e?"file":"files"}`,getMaxFilesErrorText:e=>`Cannot choose more than ${e} ${1===e?"file":"files"}. Remove files before updating`,getErrorText:e=>e,doneButtonText:"Done",clearAllButtonText:"Clear all",extensionNotAllowedText:"Extension not allowed",browseFilesText:"Browse files",dropFilesText:"Drop files here or",pauseText:"Pause",resumeText:"Resume",uploadSuccessfulText:"Uploaded",getPausedText:e=>`Paused: ${e}%`},R=new a.Logger("Storage.StorageManager");function _({acceptedFileTypes:a,accessLevel:s,defaultFiles:r,displayText:n,isResumable:o=!1,maxFileCount:i,maxFileSize:u,onUploadError:m,onUploadSuccess:O,onFileRemove:P,onUploadStart:N,showThumbnails:y=!0,processFile:k,components:_,provider:j,path:w}){a&&s&&i||R.warn("FileUploader requires accessLevel, acceptedFileTypes and maxFileCount props");const I=Object.assign({Container:b,DropZone:x,FileList:h,FilePicker:M,FileListHeader:v},_),z=void 0===i||"number"==typeof i&&i>1,B=Object.assign(Object.assign({},L),n),{getFileSizeErrorText:G}=B,$=e=>A({file:e,maxFileSize:u,getFileSizeErrorText:G}),{addFiles:V,files:Z,removeUpload:q,setUploadingFile:H,setUploadPaused:W,setUploadProgress:Q,setUploadSuccess:Y,setUploadResumed:K}=function(e=[]){const[{files:a},t]=d.default.useReducer(g,{files:Array.isArray(e)?e.map(C).filter((e=>!!e)):[]});return{removeUpload:({id:e})=>{t(U({id:e}))},setUploadPaused:({id:e})=>{t(T({id:e,status:c.PAUSED}))},setUploadProgress:({progress:e,id:a})=>{t(S({id:a,progress:e}))},setUploadResumed:({id:e})=>{t(T({id:e,status:c.UPLOADING}))},setUploadSuccess:({id:e})=>{t(T({id:e,status:c.UPLOADED}))},setUploadingFile:({uploadTask:e,id:a})=>{t(E({id:a,uploadTask:e}))},addFiles:({files:e,getFileErrorMessage:a})=>{t(f({files:e,getFileErrorMessage:a}))},files:a}}(r),J=function({onChange:a}){const[t,s]=e.useState(!1);return{onDragStart:e=>{e.dataTransfer.clearData()},onDragEnter:e=>{e.preventDefault(),e.stopPropagation()},onDragLeave:e=>{e.preventDefault(),e.stopPropagation(),s(!1)},onDragOver:e=>{e.preventDefault(),e.stopPropagation(),e.dataTransfer.dropEffect="copy",s(!0)},onDrop:e=>{e.preventDefault(),e.stopPropagation(),s(!1),a(e)},inDropZone:t}}({onChange:e=>{const{files:t}=e.dataTransfer;if(!t||0===t.length)return;const s=((e,a)=>e.filter((e=>{const t=e.name||"",s=(e.type||"").toLowerCase(),l=s.replace(/\/.*$/,"");return a.some((e=>{const a=e.trim().toLowerCase();return"."===a.charAt(0)?t.toLowerCase().endsWith(a):a.endsWith("/*")?l===a.replace(/\/.*$/,""):s===a}))})))(Array.from(t),a);V({files:s,getFileErrorMessage:$})}});!function({files:e,accessLevel:a,isResumable:t,setUploadProgress:s,setUploadingFile:r,setUploadSuccess:n,onUploadError:o,onUploadSuccess:i,onUploadStart:u,maxFileCount:d,processFile:m,provider:g,path:f=""}){p.useEffect((()=>{const p=e.filter((e=>e.status===c.QUEUED));if(!(p.length>d))for(const{file:e,key:c,id:d}of p){const p=e=>{null==i||i(e),n({id:d})},E=e=>{const a=0===e.total?100:Math.floor(e.loaded/e.total*100);s({id:d,progress:a})},S=e=>{null==o||o(e,{key:c})};e&&F({processFile:m,file:e,key:c}).then((e=>{var{key:s}=e,n=l.__rest(e,["key"]);null==u||u({key:s});const o=D(Object.assign(Object.assign({},n),{isResumable:t,provider:g,key:f+s,level:a,completeCallback:p,progressCallback:E,errorCallback:S}));r({id:d,uploadTask:t?o:void 0})}))}}),[e,a,t,s,r,o,i,u,d,n,m,g,f])}({accessLevel:s,files:Z,isResumable:o,maxFileCount:i,onUploadError:m,onUploadSuccess:O,onUploadStart:N,setUploadingFile:H,setUploadProgress:Q,setUploadSuccess:Y,processFile:k,provider:j,path:w});const X=0!==Z.length&&Z.every((e=>(null==e?void 0:e.status)===c.UPLOADED)),ee=Z.filter((e=>e.progress<100)).length>i,ae=Z.filter((e=>(null==e?void 0:e.status)===c.UPLOADED)).length,te=Z.length-ae,se=Z.length>0,le=p.useRef(null);return p.createElement(I.Container,{className:`${t.ComponentClassNames.StorageManager} ${se?t.ComponentClassNames.StorageManagerPreviewer:""}`},p.createElement(I.DropZone,Object.assign({},J,{displayText:B}),p.createElement(p.Fragment,null,p.createElement(I.FilePicker,{onClick:function(){le.current&&(le.current.click(),le.current.value="")}},B.browseFilesText),p.createElement(t.VisuallyHidden,null,p.createElement("input",{type:"file",tabIndex:-1,ref:le,onChange:e=>{const{files:a}=e.target;a&&0!==a.length&&V({files:Array.from(a),getFileErrorMessage:$})},multiple:z,accept:a.join(",")})))),se?p.createElement(I.FileListHeader,{allUploadsSuccessful:X,displayText:B,fileCount:Z.length,remainingFilesCount:te}):null,p.createElement(I.FileList,{displayText:B,files:Z,isResumable:o,onCancelUpload:({id:e,uploadTask:a})=>{a.pause(),q({id:e})},onDeleteUpload:({id:e})=>{if(q({id:e}),"function"==typeof P){const a=Z.find((a=>a.id===e));a&&P({key:a.key})}},onResume:({id:e,uploadTask:a})=>{a.resume(),K({id:e})},onPause:({id:e,uploadTask:a})=>{a.pause(),W({id:e})},showThumbnails:y,hasMaxFilesError:ee,maxFileCount:i}))}_.Container=b,_.DropZone=x,_.FileList=h,_.FileListHeader=v,_.FilePicker=M,exports.StorageManager=_;
package/dist/styles.css CHANGED
@@ -1746,7 +1746,7 @@ strong.amplify-text {
1746
1746
  -webkit-user-select: text;
1747
1747
  -moz-user-select: text;
1748
1748
  user-select: text;
1749
- display: inline-flex;
1749
+ display: inline-block;
1750
1750
  }
1751
1751
  .amplify-input:focus {
1752
1752
  border-color: var(--amplify-components-fieldcontrol-focus-border-color);
@@ -0,0 +1,10 @@
1
+ import { ProcessFileParams, StorageManagerProps } from '../../types';
2
+ interface ResolveFileParams extends Pick<StorageManagerProps, 'processFile'>, ProcessFileParams {
3
+ }
4
+ /**
5
+ * Utility function that takes the processFile prop, along with a file a key
6
+ * and returns a Promise that resolves to { file, key, ..rest }
7
+ * regardless if processFile is defined and if it is sync or async
8
+ */
9
+ export declare const resolveFile: ({ processFile, file, key, }: ResolveFileParams) => Promise<ProcessFileParams>;
10
+ export {};
@@ -21,6 +21,8 @@ export interface StorageFile {
21
21
  }
22
22
  export type StorageFiles = StorageFile[];
23
23
  export type DefaultFile = Pick<StorageFile, 'key'>;
24
+ export type ProcessFileParams = Required<Pick<StorageFile, 'file' | 'key'>> & Record<string, any>;
25
+ export type ProcessFile = (params: ProcessFileParams) => Promise<ProcessFileParams> | ProcessFileParams;
24
26
  export interface StorageManagerProps {
25
27
  /**
26
28
  * List of accepted File types
@@ -89,7 +91,7 @@ export interface StorageManagerProps {
89
91
  /**
90
92
  * Process file before upload
91
93
  */
92
- processFile?: (storageFile: Required<Pick<StorageFile, 'file' | 'key'>>) => Required<Pick<StorageFile, 'file' | 'key'>>;
94
+ processFile?: ProcessFile;
93
95
  /**
94
96
  * Determines if thumbnails show for image files
95
97
  */
@@ -1,7 +1,7 @@
1
1
  import type { StorageAccessLevel, UploadTask } from '@aws-amplify/storage';
2
- interface UploadFileProps {
2
+ export type UploadFileProps = {
3
3
  file: File;
4
- fileName: string;
4
+ key: string;
5
5
  level: StorageAccessLevel;
6
6
  isResumable?: boolean;
7
7
  progressCallback: (progress: {
@@ -13,7 +13,7 @@ interface UploadFileProps {
13
13
  key: string | undefined;
14
14
  }) => void;
15
15
  provider?: string;
16
- }
16
+ } & Record<string, any>;
17
17
  type UploadFile = Promise<void> | UploadTask;
18
- export declare function uploadFile({ file, fileName, level, progressCallback, errorCallback, completeCallback, isResumable, provider, ...rest }: UploadFileProps): UploadFile;
18
+ export declare function uploadFile({ file, key, level, progressCallback, errorCallback, completeCallback, isResumable, provider, ...rest }: UploadFileProps): UploadFile;
19
19
  export {};
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react-storage",
3
- "version": "0.0.0-studio-22d0a39-20230414203423",
3
+ "version": "0.0.0-studio-c7fd574-20230502235441",
4
4
  "main": "dist/index.js",
5
- "module": "dist/esm/index.mjs",
5
+ "module": "dist/esm/index.js",
6
6
  "exports": {
7
7
  ".": {
8
8
  "types": "./dist/types/index.d.ts",
9
- "import": "./dist/esm/index.mjs",
9
+ "import": "./dist/esm/index.js",
10
10
  "require": "./dist/index.js"
11
11
  },
12
12
  "./styles.css": "./dist/styles.css"
@@ -28,21 +28,20 @@
28
28
  "scripts": {
29
29
  "build": "yarn build:rollup",
30
30
  "build:rollup": "rollup --config",
31
- "check:esm": "node --input-type=module --eval 'import \"@aws-amplify/ui-react-storage\"'",
32
31
  "clean": "rimraf dist node_modules",
33
32
  "dev": "yarn build:rollup --watch",
34
33
  "lint": "yarn typecheck && eslint src --ext .js,.ts,.tsx",
35
34
  "prebuild": "rimraf dist",
36
35
  "size": "yarn size-limit",
37
36
  "test": "jest",
38
- "test:ci": "yarn test && yarn check:esm",
37
+ "test:ci": "yarn test",
39
38
  "test:watch": "yarn test --watch",
40
39
  "typecheck": "tsc --noEmit"
41
40
  },
42
41
  "dependencies": {
43
- "@aws-amplify/ui": "0.0.0-studio-22d0a39-20230414203423",
44
- "@aws-amplify/ui-react": "0.0.0-studio-22d0a39-20230414203423",
45
- "@aws-amplify/ui-react-core": "0.0.0-studio-22d0a39-20230414203423",
42
+ "@aws-amplify/ui": "0.0.0-studio-c7fd574-20230502235441",
43
+ "@aws-amplify/ui-react": "0.0.0-studio-c7fd574-20230502235441",
44
+ "@aws-amplify/ui-react-core": "0.0.0-studio-c7fd574-20230502235441",
46
45
  "classnames": "2.3.1",
47
46
  "lodash": "4.17.21",
48
47
  "tslib": "2.4.1"
@@ -58,6 +57,8 @@
58
57
  }
59
58
  },
60
59
  "devDependencies": {
60
+ "@aws-amplify/eslint-config-amplify-ui": "0.0.0",
61
+ "@rollup/plugin-commonjs": "^22.0.1",
61
62
  "@rollup/plugin-typescript": "^8.3.1",
62
63
  "@size-limit/preset-big-lib": "^7.0.8",
63
64
  "@testing-library/jest-dom": "^5.14.1",
@@ -68,7 +69,6 @@
68
69
  "@types/react": "^17.0.2",
69
70
  "@types/testing-library__jest-dom": "^5.14.1",
70
71
  "eslint": "^8.13.0",
71
- "eslint-config-amplify-ui": "0.0.0",
72
72
  "jest": "^27.0.4",
73
73
  "react": "^17.0.2",
74
74
  "react-dom": "^17.0.2",
@@ -87,7 +87,7 @@
87
87
  "size-limit": [
88
88
  {
89
89
  "name": "StorageManager",
90
- "path": "dist/esm/index.mjs",
90
+ "path": "dist/esm/index.js",
91
91
  "import": "{ StorageManager }",
92
92
  "limit": "120 kB"
93
93
  }
@@ -1 +0,0 @@
1
- import*as e from"react";import{Logger as i}from"aws-amplify";import{ComponentClassNames as o,VisuallyHidden as s}from"@aws-amplify/ui-react";import{useDropZone as r}from"./hooks/useDropZone/useDropZone.mjs";import{useStorageManager as t}from"./hooks/useStorageManager/useStorageManager.mjs";import{useUploadFiles as l}from"./hooks/useUploadFiles/useUploadFiles.mjs";import{FileStatus as a}from"./types.mjs";import{Container as n}from"./ui/Container/Container.mjs";import{DropZone as p}from"./ui/DropZone/DropZone.mjs";import{FileList as m}from"./ui/FileList/FileList.mjs";import{FileListHeader as u}from"./ui/FileListHeader/FileListHeader.mjs";import{FilePicker as c}from"./ui/FilePicker/FilePicker.mjs";import{checkMaxFileSize as d}from"./utils/checkMaxFileSize.mjs";import{defaultStorageManagerDisplayText as f}from"./utils/displayText.mjs";import{filterAllowedFiles as F}from"./utils/filterAllowedFiles.mjs";import"tslib";const g=new i("Storage.StorageManager");function U({acceptedFileTypes:i,accessLevel:U,defaultFiles:h,displayText:x,isResumable:y=!1,maxFileCount:S,maxFileSize:j,onUploadError:E,onUploadSuccess:k,onFileRemove:T,onUploadStart:C,showThumbnails:L=!0,processFile:b,components:v,provider:D,path:P}){i&&U&&S||g.warn("FileUploader requires accessLevel, acceptedFileTypes and maxFileCount props");const w=Object.assign({Container:n,DropZone:p,FileList:m,FilePicker:c,FileListHeader:u},v),M=void 0===S||"number"==typeof S&&S>1,R=Object.assign(Object.assign({},f),x),{getFileSizeErrorText:Z}=R,O=e=>d({file:e,maxFileSize:j,getFileSizeErrorText:Z}),{addFiles:z,files:A,removeUpload:H,setUploadingFile:$,setUploadPaused:q,setUploadProgress:I,setUploadSuccess:N,setUploadResumed:B}=t(h),G=r({onChange:e=>{const{files:o}=e.dataTransfer;if(!o||0===o.length)return;const s=F(Array.from(o),i);z({files:s,getFileErrorMessage:O})}});l({accessLevel:U,files:A,isResumable:y,maxFileCount:S,onUploadError:E,onUploadSuccess:k,onUploadStart:C,setUploadingFile:$,setUploadProgress:I,setUploadSuccess:N,processFile:b,provider:D,path:P});const J=0!==A.length&&A.every((e=>(null==e?void 0:e.status)===a.UPLOADED)),K=A.filter((e=>e.progress<100)).length>S,Q=A.filter((e=>(null==e?void 0:e.status)===a.UPLOADED)).length,V=A.length-Q,W=A.length>0,X=e.useRef(null);return e.createElement(w.Container,{className:`${o.StorageManager} ${W?o.StorageManagerPreviewer:""}`},e.createElement(w.DropZone,Object.assign({},G,{displayText:R}),e.createElement(e.Fragment,null,e.createElement(w.FilePicker,{onClick:function(){X.current&&(X.current.click(),X.current.value="")}},R.browseFilesText),e.createElement(s,null,e.createElement("input",{type:"file",tabIndex:-1,ref:X,onChange:e=>{const{files:i}=e.target;i&&0!==i.length&&z({files:Array.from(i),getFileErrorMessage:O})},multiple:M,accept:i.join(",")})))),W?e.createElement(w.FileListHeader,{allUploadsSuccessful:J,displayText:R,fileCount:A.length,remainingFilesCount:V}):null,e.createElement(w.FileList,{displayText:R,files:A,isResumable:y,onCancelUpload:({id:e,uploadTask:i})=>{i.pause(),H({id:e})},onDeleteUpload:({id:e})=>{if(H({id:e}),"function"==typeof T){const i=A.find((i=>i.id===e));i&&T({key:i.key})}},onResume:({id:e,uploadTask:i})=>{i.resume(),B({id:e})},onPause:({id:e,uploadTask:i})=>{i.pause(),q({id:e})},showThumbnails:L,hasMaxFilesError:K,maxFileCount:S}))}U.Container=n,U.DropZone=p,U.FileList=m,U.FileListHeader=u,U.FilePicker=c;export{U as StorageManager};
@@ -1 +0,0 @@
1
- import{StorageManagerActionTypes as e}from"./types.mjs";const s=({files:s,getFileErrorMessage:t})=>({type:e.ADD_FILES,files:s,getFileErrorMessage:t}),t=({id:s,uploadTask:t})=>({type:e.SET_STATUS_UPLOADING,id:s,uploadTask:t}),i=({id:s,progress:t})=>({type:e.SET_UPLOAD_PROGRESS,id:s,progress:t}),r=({id:s,status:t})=>({type:e.SET_STATUS,id:s,status:t}),p=({id:s})=>({type:e.REMOVE_UPLOAD,id:s});export{s as addFilesAction,p as removeUploadAction,i as setUploadProgressAction,r as setUploadStatusAction,t as setUploadingFileAction};
@@ -1 +0,0 @@
1
- import{FileStatus as s}from"../../types.mjs";import{StorageManagerActionTypes as e}from"./types.mjs";function t(t,i){switch(i.type){case e.ADD_FILES:{const{files:e}=i,a=e.map((e=>{const t=i.getFileErrorMessage(e);return{id:e.name,file:e,error:t,key:e.name,status:t?s.ERROR:s.QUEUED,isImage:e.type.startsWith("image/"),progress:-1}})),r=[...t.files,...a];return Object.assign(Object.assign({},t),{files:r})}case e.SET_STATUS_UPLOADING:{const{id:e,uploadTask:a}=i,{files:r}=t,c=r.reduce(((t,i)=>i.id===e?[...t,Object.assign(Object.assign({},i),{status:s.UPLOADING,progress:0,uploadTask:a||void 0})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:c})}case e.SET_UPLOAD_PROGRESS:{const{id:s,progress:e}=i,{files:a}=t,r=a.reduce(((t,i)=>i.id===s?[...t,Object.assign(Object.assign({},i),{progress:e})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:r})}case e.SET_STATUS:{const{id:s,status:e}=i,{files:a}=t,r=a.reduce(((t,i)=>i.id===s?[...t,Object.assign(Object.assign({},i),{status:e})]:[...t,i]),[]);return Object.assign(Object.assign({},t),{files:r})}case e.REMOVE_UPLOAD:{const{id:s}=i,{files:e}=t,a=e.reduce(((e,t)=>t.id===s?[...e]:[...e,t]),[]);return Object.assign(Object.assign({},t),{files:a})}}}export{t as storageManagerStateReducer};
@@ -1 +0,0 @@
1
- import s from"react";import{FileStatus as e}from"../../types.mjs";import{storageManagerStateReducer as i}from"./reducer.mjs";import{addFilesAction as r,setUploadingFileAction as t,setUploadProgressAction as o,setUploadStatusAction as d,removeUploadAction as a}from"./actions.mjs";import{isObject as l}from"@aws-amplify/ui";const p=s=>(s=>!(!l(s)||!s.key))(s)?Object.assign(Object.assign({},s),{id:s.key,status:e.UPLOADED}):void 0;function m(l=[]){const[{files:m},u]=s.useReducer(i,{files:Array.isArray(l)?l.map(p).filter((s=>!!s)):[]});return{removeUpload:({id:s})=>{u(a({id:s}))},setUploadPaused:({id:s})=>{u(d({id:s,status:e.PAUSED}))},setUploadProgress:({progress:s,id:e})=>{u(o({id:e,progress:s}))},setUploadResumed:({id:s})=>{u(d({id:s,status:e.UPLOADING}))},setUploadSuccess:({id:s})=>{u(d({id:s,status:e.UPLOADED}))},setUploadingFile:({uploadTask:s,id:e})=>{u(t({id:e,uploadTask:s}))},addFiles:({files:s,getFileErrorMessage:e})=>{u(r({files:s,getFileErrorMessage:e}))},files:m}}export{m as useStorageManager};
@@ -1 +0,0 @@
1
- import*as e from"react";import{uploadFile as l}from"../../utils/uploadFile.mjs";import{FileStatus as o}from"../../types.mjs";function s({files:s,accessLevel:a,isResumable:i,setUploadProgress:r,setUploadingFile:t,setUploadSuccess:c,onUploadError:f,onUploadSuccess:p,onUploadStart:n,maxFileCount:d,processFile:m,provider:u,path:k=""}){e.useEffect((()=>{const e=s.filter((e=>e.status===o.QUEUED));if(!(e.length>d))for(const{file:o,key:s,id:d}of e){const e=e=>{null==p||p(e),c({id:d})},b=e=>{const l=0===e.total?100:Math.floor(e.loaded/e.total*100);r({id:d,progress:l})},y=e=>{null==f||f(e,{key:s})};if(o){const r="function"==typeof m?m({file:o,key:s}):{file:o,key:s};if(null==n||n({key:s}),i){const o=l({file:r.file,fileName:k+r.key,isResumable:!0,level:a,completeCallback:e,progressCallback:b,errorCallback:y,provider:u});t({id:d,uploadTask:o})}else l({file:r.file,fileName:k+r.key,isResumable:!1,level:a,completeCallback:e,progressCallback:b,errorCallback:y,provider:u}),t({id:d})}}}),[s,a,i,r,t,f,p,n,d,c,m,u,k])}export{s as useUploadFiles};
@@ -1 +0,0 @@
1
- import e from"react";import{View as a,ComponentClassNames as t,Loader as r,Button as l}from"@aws-amplify/ui-react";import{FileStatus as s}from"../../types.mjs";import{FileStatusMessage as i}from"./FileStatusMessage.mjs";import{FileRemoveButton as m}from"./FileRemoveButton.mjs";import{UploadDetails as n}from"./FileDetails.mjs";import{FileThumbnail as o}from"./FileThumbnail.mjs";function u({onPause:u,onResume:c,displayName:p,errorMessage:g,isImage:f,isResumable:d,loaderIsDeterminate:T,onRemove:x,progress:E,showThumbnails:S=!0,size:N,status:P,displayText:D,thumbnailUrl:U}){const{getPausedText:v,getUploadingText:F,uploadSuccessfulText:M,pauseText:j,resumeText:k}=D;return e.createElement(a,{className:t.StorageManagerFile},e.createElement(a,{className:t.StorageManagerFileWrapper},S?e.createElement(o,{isImage:f,fileName:p,url:U}):null,e.createElement(n,{displayName:p,fileSize:N}),P===s.UPLOADING?e.createElement(r,{className:t.StorageManagerLoader,variation:"linear",percentage:E,isDeterminate:T,isPercentageTextHidden:!0}):null,!d||P!==s.UPLOADING&&P!==s.PAUSED?null:P===s.PAUSED?e.createElement(l,{onClick:c,size:"small",variation:"link"},k):e.createElement(l,{onClick:u,size:"small",variation:"link"},j),e.createElement(m,{altText:`Remove file ${p}`,onClick:x})),e.createElement(i,{uploadSuccessfulText:M,getUploadingText:F,getPausedText:v,status:P,errorMessage:g,percentage:E}))}export{u as FileControl};
@@ -1 +0,0 @@
1
- import e from"react";import{View as a,ComponentClassNames as s,Alert as r}from"@aws-amplify/ui-react";import{FileStatus as o}from"../../types.mjs";import{FileControl as i}from"./FileControl.mjs";function t({displayText:t,files:l,hasMaxFilesError:n,isResumable:m,onCancelUpload:u,onDeleteUpload:p,onResume:d,onPause:c,showThumbnails:g,maxFileCount:f}){if(l.length<1)return null;const{getMaxFilesErrorText:T}=t,U=T(f);return e.createElement(a,{className:s.StorageManagerFileList},l.map((a=>{const{file:s,status:r,progress:l,error:n,key:f,isImage:T,id:U,uploadTask:h}=a,x=s&&T?URL.createObjectURL(s):"",y=!m||l>0,R=r===o.UPLOADING;return e.createElement(i,{displayName:f,errorMessage:n,displayText:t,isImage:T,isUploading:R,isResumable:m,key:U,loaderIsDeterminate:y,onRemove:()=>{m&&(r===o.UPLOADING||r===o.PAUSED)&&h?u({id:U,uploadTask:h}):p({id:U})},onPause:()=>{h&&c({id:U,uploadTask:h})},onResume:()=>{h&&d({id:U,uploadTask:h})},progress:l,showThumbnails:g,size:null==s?void 0:s.size,status:r,thumbnailUrl:x})})),n&&e.createElement(r,{variation:"error",heading:U}))}export{t as FileList};
@@ -1 +0,0 @@
1
- import e from"react";import a from"classnames";import{Text as t,ComponentClassNames as r}from"@aws-amplify/ui-react";import{IconError as s,IconCheck as l}from"@aws-amplify/ui-react/internal";import{classNameModifier as m}from"@aws-amplify/ui";import{FileStatus as n}from"../../types.mjs";const o=({errorMessage:o,getPausedText:c,getUploadingText:i,percentage:u,status:g,uploadSuccessfulText:S})=>{switch(g){case n.UPLOADING:return e.createElement(t,{className:r.StorageManagerFileStatus},i(u));case n.PAUSED:return e.createElement(t,{className:r.StorageManagerFileStatus},c(u));case n.UPLOADED:return e.createElement(t,{className:a(r.StorageManagerFileStatus,m(r.StorageManagerFileStatus,"success"))},e.createElement(l,{fontSize:"xl"})," ",S);case n.ERROR:return e.createElement(t,{className:a(r.StorageManagerFileStatus,m(r.StorageManagerFileStatus,"error"))},e.createElement(s,{fontSize:"xl"})," ",o);default:return null}};export{o as FileStatusMessage};
@@ -1 +0,0 @@
1
- import{humanFileSize as e}from"./humanFileSize.mjs";const i=({file:i,getFileSizeErrorText:o,maxFileSize:r})=>void 0===r?"":i.size>r?o(e(r,!0)):"";export{i as checkMaxFileSize};
@@ -1 +0,0 @@
1
- import{__rest as e}from"tslib";import{Storage as l}from"aws-amplify";function r(r){var{file:a,fileName:o,level:t="private",progressCallback:s,errorCallback:p,completeCallback:c,isResumable:i=!1,provider:b}=r,m=e(r,["file","fileName","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const n=a.type||"binary/octet-stream";return!0===i?l.put(o,a,Object.assign({level:t,resumable:!0,progressCallback:s,errorCallback:p,completeCallback:c,contentType:n,provider:b},m)):l.put(o,a,Object.assign({level:t,resumable:!1,progressCallback:s,contentType:n,provider:b},m)).then(c,p)}export{r as uploadFile};