@aws-amplify/ui-react-storage 2.1.3 → 2.2.0
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/dist/esm/components/StorageManager/ui/DropZone/DropZone.mjs +1 -1
- package/dist/esm/components/StorageManager/ui/FileList/FileRemoveButton.mjs +1 -1
- package/dist/esm/components/StorageManager/ui/FileList/FileStatusMessage.mjs +1 -1
- package/dist/esm/components/StorageManager/ui/FileList/FileThumbnail.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/styles.css +1043 -48
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import a from"react";import e from"classnames";import{View as r,ComponentClassNames as o,Text as n}from"@aws-amplify/ui-react";import{classNameModifier as t}from"@aws-amplify/ui";import{useIcons as i,IconUpload as l}from"@aws-amplify/ui-react/internal";function m({children:m,displayText:p,inDropZone:s,onDragEnter:g,onDragLeave:c,onDragOver:D,onDragStart:d,onDrop:f,testId:u}){var v;const{dropFilesText:E}=p,S=i("storageManager");return a.createElement(r,{className:e(s&&t(o.StorageManagerDropZone,"active"),o.StorageManagerDropZone),"data-testid":u,onDragStart:d,onDragEnter:g,onDragLeave:c,onDrop:f,onDragOver:D},a.createElement(r,{as:"span","aria-hidden":!0,className:o.StorageManagerDropZoneIcon},null!==(v=null==S?void 0:S.upload)&&void 0!==v?v:a.createElement(l,null)),a.createElement(n,{className:o.StorageManagerDropZoneText},E),m)}export{m as DropZone};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{IconClose as
|
|
1
|
+
import e from"react";import{useIcons as t,IconClose as a}from"@aws-amplify/ui-react/internal";import{Button as r,VisuallyHidden as l,View as n}from"@aws-amplify/ui-react";const i=({altText:i,onClick:m})=>{var o;const c=t("storageManager");return e.createElement(r,{size:"small",onClick:m},e.createElement(l,null,i),e.createElement(n,{as:"span","aria-hidden":!0,fontSize:"medium"},null!==(o=null==c?void 0:c.remove)&&void 0!==o?o:e.createElement(a,null)))};export{i as FileRemoveButton};
|
|
@@ -1 +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
|
|
1
|
+
import e from"react";import a from"classnames";import{Text as t,ComponentClassNames as r,View as s}from"@aws-amplify/ui-react";import{useIcons as l,IconError as n,IconCheck as o}from"@aws-amplify/ui-react/internal";import{classNameModifier as c}from"@aws-amplify/ui";import{FileStatus as m}from"../../types.mjs";const u=({errorMessage:u,getPausedText:i,getUploadingText:g,percentage:p,status:S,uploadSuccessfulText:f})=>{var E,d;const M=l("storageManager");switch(S){case m.UPLOADING:return e.createElement(t,{className:r.StorageManagerFileStatus},g(p));case m.PAUSED:return e.createElement(t,{className:r.StorageManagerFileStatus},i(p));case m.UPLOADED:return e.createElement(t,{className:a(r.StorageManagerFileStatus,c(r.StorageManagerFileStatus,"success"))},e.createElement(s,{as:"span",fontSize:"xl"},null!==(E=null==M?void 0:M.success)&&void 0!==E?E:e.createElement(o,null)),f);case m.ERROR:return e.createElement(t,{className:a(r.StorageManagerFileStatus,c(r.StorageManagerFileStatus,"error"))},e.createElement(s,{as:"span",fontSize:"xl"},null!==(d=null==M?void 0:M.error)&&void 0!==d?d:e.createElement(n,null)),u);default:return null}};export{u as FileStatusMessage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{Image as a,View as r,ComponentClassNames as t}from"@aws-amplify/ui-react";import{IconFile as m}from"@aws-amplify/ui-react/internal";const
|
|
1
|
+
import e from"react";import{Image as a,View as r,ComponentClassNames as t}from"@aws-amplify/ui-react";import{useIcons as l,IconFile as m}from"@aws-amplify/ui-react/internal";const i=({fileName:i,isImage:n,url:o})=>{var c;const s=l("storageManager"),f=n?e.createElement(a,{alt:i,src:o}):null!==(c=null==s?void 0:s.file)&&void 0!==c?c:e.createElement(m,null);return e.createElement(r,{className:t.StorageManagerFileImage},f)};export{i as FileThumbnail};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),a=require("react"),t=require("classnames"),s=require("@aws-amplify/ui-react"),l=require("@aws-amplify/ui-react/internal"),r=require("aws-amplify"),n=require("@aws-amplify/ui");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=i(a),u=o(a),d=o(t);var p,m;function g(e,a){switch(a.type){case m.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?p.ERROR:p.QUEUED,isImage:e.type.startsWith("image/"),progress:-1}})),l=[...e.files,...s];return Object.assign(Object.assign({},e),{files:l})}case m.CLEAR_FILES:return Object.assign(Object.assign({},e),{files:[]});case m.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:p.UPLOADING,progress:0,uploadTask:s||void 0})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case m.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 m.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 m.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"}(p||(p={})),function(e){e.ADD_FILES="ADD_FILES",e.CLEAR_FILES="CLEAR_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"}(m||(m={}));const f=({files:e,getFileErrorMessage:a})=>({type:m.ADD_FILES,files:e,getFileErrorMessage:a}),E=()=>({type:m.CLEAR_FILES}),S=({id:e,uploadTask:a})=>({type:m.SET_STATUS_UPLOADING,id:e,uploadTask:a}),T=({id:e,progress:a})=>({type:m.SET_UPLOAD_PROGRESS,id:e,progress:a}),U=({id:e,status:a})=>({type:m.SET_STATUS,id:e,status:a}),C=({id:e})=>({type:m.REMOVE_UPLOAD,id:e}),F=e=>(e=>!(!n.isObject(e)||!e.key))(e)?Object.assign(Object.assign({},e),{id:e.key,status:p.UPLOADED}):void 0;function b(a){var{file:t,key:s,level:l="private",progressCallback:n,errorCallback:o,completeCallback:i,isResumable:c=!1,provider:u}=a,d=e.__rest(a,["file","key","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const p=t.type||"binary/octet-stream";return!0===c?r.Storage.put(s,t,Object.assign({level:l,resumable:!0,progressCallback:n,errorCallback:o,completeCallback:i,contentType:p,provider:u},d)):r.Storage.put(s,t,Object.assign({level:l,resumable:!1,progressCallback:n,contentType:p,provider:u},d)).then(i,o)}const D=({processFile:e,file:a,key:t})=>new Promise(((s,l)=>{const r=n.isFunction(e)?e({file:a,key:t}):{file:a,key:t};r instanceof Promise?r.then(s).catch(l):s(r)}));function O({children:e,className:a}){return u.default.createElement(s.View,{className:a},e)}function x({children:e,displayText:a,inDropZone:t,onDragEnter:r,onDragLeave:o,onDragOver:i,onDragStart:c,onDrop:p,testId:m}){const{dropFilesText:g}=a;return u.default.createElement(s.View,{className:d.default(t&&n.classNameModifier(s.ComponentClassNames.StorageManagerDropZone,"active"),s.ComponentClassNames.StorageManagerDropZone),"data-testid":m,onDragStart:c,onDragEnter:r,onDragLeave:o,onDrop:p,onDragOver:i},u.default.createElement(l.IconUpload,{"aria-hidden":!0,className:s.ComponentClassNames.StorageManagerDropZoneIcon}),u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerDropZoneText},g),e)}const y=({errorMessage:e,getPausedText:a,getUploadingText:t,percentage:r,status:o,uploadSuccessfulText:i})=>{switch(o){case p.UPLOADING:return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileStatus},t(r));case p.PAUSED:return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileStatus},a(r));case p.UPLOADED:return u.default.createElement(s.Text,{className:d.default(s.ComponentClassNames.StorageManagerFileStatus,n.classNameModifier(s.ComponentClassNames.StorageManagerFileStatus,"success"))},u.default.createElement(l.IconCheck,{fontSize:"xl"})," ",i);case p.ERROR:return u.default.createElement(s.Text,{className:d.default(s.ComponentClassNames.StorageManagerFileStatus,n.classNameModifier(s.ComponentClassNames.StorageManagerFileStatus,"error"))},u.default.createElement(l.IconError,{fontSize:"xl"})," ",e);default:return null}},N=({altText:e,onClick:a})=>u.default.createElement(s.Button,{size:"small",onClick:a},u.default.createElement(s.VisuallyHidden,null,e),u.default.createElement(l.IconClose,{"aria-hidden":!0,fontSize:"medium"})),P=({displayName:e,fileSize:a})=>u.default.createElement(u.default.Fragment,null,u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileMain},u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileName},e)),u.default.createElement(s.Text,{as:"span",className:s.ComponentClassNames.StorageManagerFileSize},a?n.humanFileSize(a,!0):"")),k=({fileName:e,isImage:a,url:t})=>{const r=a?u.default.createElement(s.Image,{alt:e,src:t}):u.default.createElement(l.IconFile,null);return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileImage},r)};function v({onPause:e,onResume:a,displayName:t,errorMessage:l,isImage:r,isResumable:n,loaderIsDeterminate:o,onRemove:i,progress:c,showThumbnails:d=!0,size:m,status:g,displayText:f,thumbnailUrl:E}){const{getPausedText:S,getUploadingText:T,uploadSuccessfulText:U,pauseText:C,resumeText:F}=f;return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFile},u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileWrapper},d?u.default.createElement(k,{isImage:r,fileName:t,url:E}):null,u.default.createElement(P,{displayName:t,fileSize:m}),g===p.UPLOADING?u.default.createElement(s.Loader,{className:s.ComponentClassNames.StorageManagerLoader,variation:"linear",percentage:c,isDeterminate:o,isPercentageTextHidden:!0}):null,!n||g!==p.UPLOADING&&g!==p.PAUSED?null:g===p.PAUSED?u.default.createElement(s.Button,{onClick:a,size:"small",variation:"link"},F):u.default.createElement(s.Button,{onClick:e,size:"small",variation:"link"},C),u.default.createElement(N,{altText:`Remove file ${t}`,onClick:i})),u.default.createElement(y,{uploadSuccessfulText:U,getUploadingText:T,getPausedText:S,status:g,errorMessage:l,percentage:c}))}function L({displayText:e,files:a,hasMaxFilesError:t,isResumable:l,onCancelUpload:r,onDeleteUpload:n,onResume:o,onPause:i,showThumbnails:c,maxFileCount:d}){if(a.length<1)return null;const{getMaxFilesErrorText:m}=e,g=m(d);return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileList},a.map((a=>{const{file:t,status:s,progress:d,error:m,key:g,isImage:f,id:E,uploadTask:S}=a,T=t&&f?URL.createObjectURL(t):"",U=!l||d>0,C=s===p.UPLOADING;return u.default.createElement(v,{displayName:g,errorMessage:m,displayText:e,isImage:f,isUploading:C,isResumable:l,key:E,loaderIsDeterminate:U,onRemove:()=>{l&&(s===p.UPLOADING||s===p.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:d,showThumbnails:c,size:null==t?void 0:t.size,status:s,thumbnailUrl:T})})),t&&u.default.createElement(s.Alert,{variation:"error",heading:g}))}function h({fileCount:e,remainingFilesCount:a,displayText:t,allUploadsSuccessful:l}){const{getFilesUploadedText:r,getRemainingFilesText:n}=t;return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerPreviewerText},l?r(e):n(a))}function M(a){var{children:t,className:l=s.ComponentClassNames.StorageManagerFilePicker,size:r="small"}=a,n=e.__rest(a,["children","className","size"]);return u.default.createElement(s.Button,Object.assign({},n,{className:l,size:r}),t)}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)):"",R={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}%`},I=new r.Logger("Storage.StorageManager");const _=Object.assign(c.forwardRef((function({acceptedFileTypes:t=[],accessLevel:l,defaultFiles:r,displayText:n,isResumable:o=!1,maxFileCount:i,maxFileSize:d,onUploadError:m,onUploadSuccess:y,onFileRemove:N,onUploadStart:P,showThumbnails:k=!0,processFile:v,components:_,provider:j,path:w},z){l&&i||I.warn("FileUploader requires accessLevel and maxFileCount props");const B=Object.assign({Container:O,DropZone:x,FileList:L,FilePicker:M,FileListHeader:h},_),G=void 0===i||"number"==typeof i&&i>1,$=Object.assign(Object.assign({},R),n),{getFileSizeErrorText:V}=$,Z=e=>A({file:e,maxFileSize:d,getFileSizeErrorText:V}),{addFiles:q,clearFiles:H,files:W,removeUpload:K,setUploadingFile:Q,setUploadPaused:Y,setUploadProgress:J,setUploadSuccess:X,setUploadResumed:ee}=function(e=[]){const[{files:a},t]=u.default.useReducer(g,{files:Array.isArray(e)?e.map(F).filter((e=>!!e)):[]});return{removeUpload:({id:e})=>{t(C({id:e}))},setUploadPaused:({id:e})=>{t(U({id:e,status:p.PAUSED}))},setUploadProgress:({progress:e,id:a})=>{t(T({id:a,progress:e}))},setUploadResumed:({id:e})=>{t(U({id:e,status:p.UPLOADING}))},setUploadSuccess:({id:e})=>{t(U({id:e,status:p.UPLOADED}))},setUploadingFile:({uploadTask:e,id:a})=>{t(S({id:a,uploadTask:e}))},addFiles:({files:e,getFileErrorMessage:a})=>{t(f({files:e,getFileErrorMessage:a}))},clearFiles:()=>{t(E())},files:a}}(r);c.useImperativeHandle(z,(()=>({clearFiles:H})));const ae=function({onChange:e}){const[t,s]=a.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:a=>{a.preventDefault(),a.stopPropagation(),s(!1),e(a)},inDropZone:t}}({onChange:e=>{const{files:a}=e.dataTransfer;if(!a||0===a.length)return;const s=((e,a)=>!a||0===a.length||a.includes("*")?e: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(a),t);q({files:s,getFileErrorMessage:Z})}});!function({files:a,accessLevel:t,isResumable:s,setUploadProgress:l,setUploadingFile:r,setUploadSuccess:n,onUploadError:o,onUploadSuccess:i,onUploadStart:u,maxFileCount:d,processFile:m,provider:g,path:f=""}){c.useEffect((()=>{const c=a.filter((e=>e.status===p.QUEUED));if(!(c.length>d))for(const{file:a,key:d,id:p}of c){const c=e=>{null==i||i(e),n({id:p})},E=e=>{const a=0===e.total?100:Math.floor(e.loaded/e.total*100);l({id:p,progress:a})},S=e=>{null==o||o(e,{key:d})};a&&D({processFile:m,file:a,key:d}).then((a=>{var{key:l}=a,n=e.__rest(a,["key"]);null==u||u({key:l});const o=b(Object.assign(Object.assign({},n),{isResumable:s,provider:g,key:f+l,level:t,completeCallback:c,progressCallback:E,errorCallback:S}));r({id:p,uploadTask:s?o:void 0})}))}}),[a,t,s,l,r,o,i,u,d,n,m,g,f])}({accessLevel:l,files:W,isResumable:o,maxFileCount:i,onUploadError:m,onUploadSuccess:y,onUploadStart:P,setUploadingFile:Q,setUploadProgress:J,setUploadSuccess:X,processFile:v,provider:j,path:w});const te=0!==W.length&&W.every((e=>(null==e?void 0:e.status)===p.UPLOADED)),se=W.filter((e=>e.progress<100)).length>i,le=W.filter((e=>(null==e?void 0:e.status)===p.UPLOADED)).length,re=W.length-le,ne=W.length>0,oe=c.useRef(null);return c.createElement(B.Container,{className:`${s.ComponentClassNames.StorageManager} ${ne?s.ComponentClassNames.StorageManagerPreviewer:""}`},c.createElement(B.DropZone,Object.assign({},ae,{displayText:$}),c.createElement(c.Fragment,null,c.createElement(B.FilePicker,{onClick:function(){oe.current&&(oe.current.click(),oe.current.value="")}},$.browseFilesText),c.createElement(s.VisuallyHidden,null,c.createElement("input",{type:"file",tabIndex:-1,ref:oe,onChange:e=>{const{files:a}=e.target;a&&0!==a.length&&q({files:Array.from(a),getFileErrorMessage:Z})},multiple:G,accept:t.join(",")})))),ne?c.createElement(B.FileListHeader,{allUploadsSuccessful:te,displayText:$,fileCount:W.length,remainingFilesCount:re}):null,c.createElement(B.FileList,{displayText:$,files:W,isResumable:o,onCancelUpload:({id:e,uploadTask:a})=>{a.pause(),K({id:e})},onDeleteUpload:({id:e})=>{if(K({id:e}),"function"==typeof N){const a=W.find((a=>a.id===e));a&&N({key:a.key})}},onResume:({id:e,uploadTask:a})=>{a.resume(),ee({id:e})},onPause:({id:e,uploadTask:a})=>{a.pause(),Y({id:e})},showThumbnails:k,hasMaxFilesError:se,maxFileCount:i}))})),{Container:O,DropZone:x,FileList:L,FileListHeader:h,FilePicker:M});exports.StorageImage=a=>{var{accessLevel:t,className:r,fallbackSrc:n,identityId:o,imgKey:i,onStorageGetError:u}=a,p=e.__rest(a,["accessLevel","className","fallbackSrc","identityId","imgKey","onStorageGetError"]);const m=c.useMemo((()=>({level:t,identityId:o})),[t,o]),g=l.useStorageURL({key:i,options:m,fallbackURL:n,onStorageGetError:u});return c.createElement(s.Image,Object.assign({},p,{className:d.default(s.ComponentClassNames.StorageImage,r),src:g}))},exports.StorageManager=_;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),a=require("react"),t=require("classnames"),s=require("@aws-amplify/ui-react"),l=require("@aws-amplify/ui-react/internal"),r=require("aws-amplify"),n=require("@aws-amplify/ui");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=i(a),u=o(a),d=o(t);var p,m;function g(e,a){switch(a.type){case m.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?p.ERROR:p.QUEUED,isImage:e.type.startsWith("image/"),progress:-1}})),l=[...e.files,...s];return Object.assign(Object.assign({},e),{files:l})}case m.CLEAR_FILES:return Object.assign(Object.assign({},e),{files:[]});case m.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:p.UPLOADING,progress:0,uploadTask:s||void 0})]:[...e,a]),[]);return Object.assign(Object.assign({},e),{files:r})}case m.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 m.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 m.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"}(p||(p={})),function(e){e.ADD_FILES="ADD_FILES",e.CLEAR_FILES="CLEAR_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"}(m||(m={}));const f=({files:e,getFileErrorMessage:a})=>({type:m.ADD_FILES,files:e,getFileErrorMessage:a}),E=()=>({type:m.CLEAR_FILES}),S=({id:e,uploadTask:a})=>({type:m.SET_STATUS_UPLOADING,id:e,uploadTask:a}),T=({id:e,progress:a})=>({type:m.SET_UPLOAD_PROGRESS,id:e,progress:a}),U=({id:e,status:a})=>({type:m.SET_STATUS,id:e,status:a}),C=({id:e})=>({type:m.REMOVE_UPLOAD,id:e}),F=e=>(e=>!(!n.isObject(e)||!e.key))(e)?Object.assign(Object.assign({},e),{id:e.key,status:p.UPLOADED}):void 0;function b(a){var{file:t,key:s,level:l="private",progressCallback:n,errorCallback:o,completeCallback:i,isResumable:c=!1,provider:u}=a,d=e.__rest(a,["file","key","level","progressCallback","errorCallback","completeCallback","isResumable","provider"]);const p=t.type||"binary/octet-stream";return!0===c?r.Storage.put(s,t,Object.assign({level:l,resumable:!0,progressCallback:n,errorCallback:o,completeCallback:i,contentType:p,provider:u},d)):r.Storage.put(s,t,Object.assign({level:l,resumable:!1,progressCallback:n,contentType:p,provider:u},d)).then(i,o)}const D=({processFile:e,file:a,key:t})=>new Promise(((s,l)=>{const r=n.isFunction(e)?e({file:a,key:t}):{file:a,key:t};r instanceof Promise?r.then(s).catch(l):s(r)}));function v({children:e,className:a}){return u.default.createElement(s.View,{className:a},e)}function O({children:e,displayText:a,inDropZone:t,onDragEnter:r,onDragLeave:o,onDragOver:i,onDragStart:c,onDrop:p,testId:m}){var g;const{dropFilesText:f}=a,E=l.useIcons("storageManager");return u.default.createElement(s.View,{className:d.default(t&&n.classNameModifier(s.ComponentClassNames.StorageManagerDropZone,"active"),s.ComponentClassNames.StorageManagerDropZone),"data-testid":m,onDragStart:c,onDragEnter:r,onDragLeave:o,onDrop:p,onDragOver:i},u.default.createElement(s.View,{as:"span","aria-hidden":!0,className:s.ComponentClassNames.StorageManagerDropZoneIcon},null!==(g=null==E?void 0:E.upload)&&void 0!==g?g:u.default.createElement(l.IconUpload,null)),u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerDropZoneText},f),e)}const x=({errorMessage:e,getPausedText:a,getUploadingText:t,percentage:r,status:o,uploadSuccessfulText:i})=>{var c,m;const g=l.useIcons("storageManager");switch(o){case p.UPLOADING:return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileStatus},t(r));case p.PAUSED:return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileStatus},a(r));case p.UPLOADED:return u.default.createElement(s.Text,{className:d.default(s.ComponentClassNames.StorageManagerFileStatus,n.classNameModifier(s.ComponentClassNames.StorageManagerFileStatus,"success"))},u.default.createElement(s.View,{as:"span",fontSize:"xl"},null!==(c=null==g?void 0:g.success)&&void 0!==c?c:u.default.createElement(l.IconCheck,null)),i);case p.ERROR:return u.default.createElement(s.Text,{className:d.default(s.ComponentClassNames.StorageManagerFileStatus,n.classNameModifier(s.ComponentClassNames.StorageManagerFileStatus,"error"))},u.default.createElement(s.View,{as:"span",fontSize:"xl"},null!==(m=null==g?void 0:g.error)&&void 0!==m?m:u.default.createElement(l.IconError,null)),e);default:return null}},y=({altText:e,onClick:a})=>{var t;const r=l.useIcons("storageManager");return u.default.createElement(s.Button,{size:"small",onClick:a},u.default.createElement(s.VisuallyHidden,null,e),u.default.createElement(s.View,{as:"span","aria-hidden":!0,fontSize:"medium"},null!==(t=null==r?void 0:r.remove)&&void 0!==t?t:u.default.createElement(l.IconClose,null)))},N=({displayName:e,fileSize:a})=>u.default.createElement(u.default.Fragment,null,u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileMain},u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerFileName},e)),u.default.createElement(s.Text,{as:"span",className:s.ComponentClassNames.StorageManagerFileSize},a?n.humanFileSize(a,!0):"")),P=({fileName:e,isImage:a,url:t})=>{var r;const n=l.useIcons("storageManager"),o=a?u.default.createElement(s.Image,{alt:e,src:t}):null!==(r=null==n?void 0:n.file)&&void 0!==r?r:u.default.createElement(l.IconFile,null);return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileImage},o)};function k({onPause:e,onResume:a,displayName:t,errorMessage:l,isImage:r,isResumable:n,loaderIsDeterminate:o,onRemove:i,progress:c,showThumbnails:d=!0,size:m,status:g,displayText:f,thumbnailUrl:E}){const{getPausedText:S,getUploadingText:T,uploadSuccessfulText:U,pauseText:C,resumeText:F}=f;return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFile},u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileWrapper},d?u.default.createElement(P,{isImage:r,fileName:t,url:E}):null,u.default.createElement(N,{displayName:t,fileSize:m}),g===p.UPLOADING?u.default.createElement(s.Loader,{className:s.ComponentClassNames.StorageManagerLoader,variation:"linear",percentage:c,isDeterminate:o,isPercentageTextHidden:!0}):null,!n||g!==p.UPLOADING&&g!==p.PAUSED?null:g===p.PAUSED?u.default.createElement(s.Button,{onClick:a,size:"small",variation:"link"},F):u.default.createElement(s.Button,{onClick:e,size:"small",variation:"link"},C),u.default.createElement(y,{altText:`Remove file ${t}`,onClick:i})),u.default.createElement(x,{uploadSuccessfulText:U,getUploadingText:T,getPausedText:S,status:g,errorMessage:l,percentage:c}))}function L({displayText:e,files:a,hasMaxFilesError:t,isResumable:l,onCancelUpload:r,onDeleteUpload:n,onResume:o,onPause:i,showThumbnails:c,maxFileCount:d}){if(a.length<1)return null;const{getMaxFilesErrorText:m}=e,g=m(d);return u.default.createElement(s.View,{className:s.ComponentClassNames.StorageManagerFileList},a.map((a=>{const{file:t,status:s,progress:d,error:m,key:g,isImage:f,id:E,uploadTask:S}=a,T=t&&f?URL.createObjectURL(t):"",U=!l||d>0,C=s===p.UPLOADING;return u.default.createElement(k,{displayName:g,errorMessage:m,displayText:e,isImage:f,isUploading:C,isResumable:l,key:E,loaderIsDeterminate:U,onRemove:()=>{l&&(s===p.UPLOADING||s===p.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:d,showThumbnails:c,size:null==t?void 0:t.size,status:s,thumbnailUrl:T})})),t&&u.default.createElement(s.Alert,{variation:"error",heading:g}))}function h({fileCount:e,remainingFilesCount:a,displayText:t,allUploadsSuccessful:l}){const{getFilesUploadedText:r,getRemainingFilesText:n}=t;return u.default.createElement(s.Text,{className:s.ComponentClassNames.StorageManagerPreviewerText},l?r(e):n(a))}function M(a){var{children:t,className:l=s.ComponentClassNames.StorageManagerFilePicker,size:r="small"}=a,n=e.__rest(a,["children","className","size"]);return u.default.createElement(s.Button,Object.assign({},n,{className:l,size:r}),t)}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)):"",R={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}%`},I=new r.Logger("Storage.StorageManager");const _=Object.assign(c.forwardRef((function({acceptedFileTypes:t=[],accessLevel:l,defaultFiles:r,displayText:n,isResumable:o=!1,maxFileCount:i,maxFileSize:d,onUploadError:m,onUploadSuccess:x,onFileRemove:y,onUploadStart:N,showThumbnails:P=!0,processFile:k,components:_,provider:j,path:w},z){l&&i||I.warn("FileUploader requires accessLevel and maxFileCount props");const B=Object.assign({Container:v,DropZone:O,FileList:L,FilePicker:M,FileListHeader:h},_),G=void 0===i||"number"==typeof i&&i>1,V=Object.assign(Object.assign({},R),n),{getFileSizeErrorText:$}=V,Z=e=>A({file:e,maxFileSize:d,getFileSizeErrorText:$}),{addFiles:q,clearFiles:H,files:W,removeUpload:K,setUploadingFile:Q,setUploadPaused:Y,setUploadProgress:J,setUploadSuccess:X,setUploadResumed:ee}=function(e=[]){const[{files:a},t]=u.default.useReducer(g,{files:Array.isArray(e)?e.map(F).filter((e=>!!e)):[]});return{removeUpload:({id:e})=>{t(C({id:e}))},setUploadPaused:({id:e})=>{t(U({id:e,status:p.PAUSED}))},setUploadProgress:({progress:e,id:a})=>{t(T({id:a,progress:e}))},setUploadResumed:({id:e})=>{t(U({id:e,status:p.UPLOADING}))},setUploadSuccess:({id:e})=>{t(U({id:e,status:p.UPLOADED}))},setUploadingFile:({uploadTask:e,id:a})=>{t(S({id:a,uploadTask:e}))},addFiles:({files:e,getFileErrorMessage:a})=>{t(f({files:e,getFileErrorMessage:a}))},clearFiles:()=>{t(E())},files:a}}(r);c.useImperativeHandle(z,(()=>({clearFiles:H})));const ae=function({onChange:e}){const[t,s]=a.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:a=>{a.preventDefault(),a.stopPropagation(),s(!1),e(a)},inDropZone:t}}({onChange:e=>{const{files:a}=e.dataTransfer;if(!a||0===a.length)return;const s=((e,a)=>!a||0===a.length||a.includes("*")?e: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(a),t);q({files:s,getFileErrorMessage:Z})}});!function({files:a,accessLevel:t,isResumable:s,setUploadProgress:l,setUploadingFile:r,setUploadSuccess:n,onUploadError:o,onUploadSuccess:i,onUploadStart:u,maxFileCount:d,processFile:m,provider:g,path:f=""}){c.useEffect((()=>{const c=a.filter((e=>e.status===p.QUEUED));if(!(c.length>d))for(const{file:a,key:d,id:p}of c){const c=e=>{null==i||i(e),n({id:p})},E=e=>{const a=0===e.total?100:Math.floor(e.loaded/e.total*100);l({id:p,progress:a})},S=e=>{null==o||o(e,{key:d})};a&&D({processFile:m,file:a,key:d}).then((a=>{var{key:l}=a,n=e.__rest(a,["key"]);null==u||u({key:l});const o=b(Object.assign(Object.assign({},n),{isResumable:s,provider:g,key:f+l,level:t,completeCallback:c,progressCallback:E,errorCallback:S}));r({id:p,uploadTask:s?o:void 0})}))}}),[a,t,s,l,r,o,i,u,d,n,m,g,f])}({accessLevel:l,files:W,isResumable:o,maxFileCount:i,onUploadError:m,onUploadSuccess:x,onUploadStart:N,setUploadingFile:Q,setUploadProgress:J,setUploadSuccess:X,processFile:k,provider:j,path:w});const te=0!==W.length&&W.every((e=>(null==e?void 0:e.status)===p.UPLOADED)),se=W.filter((e=>e.progress<100)).length>i,le=W.filter((e=>(null==e?void 0:e.status)===p.UPLOADED)).length,re=W.length-le,ne=W.length>0,oe=c.useRef(null);return c.createElement(B.Container,{className:`${s.ComponentClassNames.StorageManager} ${ne?s.ComponentClassNames.StorageManagerPreviewer:""}`},c.createElement(B.DropZone,Object.assign({},ae,{displayText:V}),c.createElement(c.Fragment,null,c.createElement(B.FilePicker,{onClick:function(){oe.current&&(oe.current.click(),oe.current.value="")}},V.browseFilesText),c.createElement(s.VisuallyHidden,null,c.createElement("input",{type:"file",tabIndex:-1,ref:oe,onChange:e=>{const{files:a}=e.target;a&&0!==a.length&&q({files:Array.from(a),getFileErrorMessage:Z})},multiple:G,accept:t.join(",")})))),ne?c.createElement(B.FileListHeader,{allUploadsSuccessful:te,displayText:V,fileCount:W.length,remainingFilesCount:re}):null,c.createElement(B.FileList,{displayText:V,files:W,isResumable:o,onCancelUpload:({id:e,uploadTask:a})=>{a.pause(),K({id:e})},onDeleteUpload:({id:e})=>{if(K({id:e}),"function"==typeof y){const a=W.find((a=>a.id===e));a&&y({key:a.key})}},onResume:({id:e,uploadTask:a})=>{a.resume(),ee({id:e})},onPause:({id:e,uploadTask:a})=>{a.pause(),Y({id:e})},showThumbnails:P,hasMaxFilesError:se,maxFileCount:i}))})),{Container:v,DropZone:O,FileList:L,FileListHeader:h,FilePicker:M});exports.StorageImage=a=>{var{accessLevel:t,className:r,fallbackSrc:n,identityId:o,imgKey:i,onStorageGetError:u}=a,p=e.__rest(a,["accessLevel","className","fallbackSrc","identityId","imgKey","onStorageGetError"]);const m=c.useMemo((()=>({level:t,identityId:o})),[t,o]),g=l.useStorageURL({key:i,options:m,fallbackURL:n,onStorageGetError:u});return c.createElement(s.Image,Object.assign({},p,{className:d.default(s.ComponentClassNames.StorageImage,r),src:g}))},exports.StorageManager=_;
|