@s_mart/dropzone 8.1.1 → 9.0.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/index.mjs +1 -1
- package/package.json +5 -5
package/dist/index.mjs
CHANGED
|
@@ -102,7 +102,7 @@ import{styled as T}from"@mui/material";import{colorPalette as k}from"@s_mart/tok
|
|
|
102
102
|
display: flex;
|
|
103
103
|
align-items: center;
|
|
104
104
|
justify-content: space-between;
|
|
105
|
-
`;import{Box as Fe,Tooltip as Q,Typography as $}from"@mui/material";import{IconButton as J,LIcon as U}from"@s_mart/core";import{lineTimes as Y}from"@s_mart/regular-icons";import{colorPalette as ee}from"@s_mart/tokens";import{useMemo as K}from"react";import{lineFile as De,linePicture as ze,lineXMLFile as ve}from"@s_mart/light-icons";import{lineFileCertificate as xe}from"@s_mart/regular-icons";var W=e=>{switch(e){case"application/xml":case"text/xml":return ve;case"image/gif":case"image/jpeg":case"image/png":case"image/svg":case"image/webp":return ze;case"application/pkcs12":return xe;default:return De}},E=e=>{let t="";return e<1024?t=`${e} Bytes`:e<1024*1024?t=`${(e/1024).toFixed(2)} KB`:e<1024*1024*1024&&(t=`${(e/1024/1024).toFixed(2)} MB`),t};var N=({filesInfo:e})=>{let t=K(()=>e.map(o=>({name:o.name,fileSize:E(o.size),icon:W(o.type)})),[e]),r=K(()=>({totalSize:E(e.reduce((o,i)=>o+i.size,0)),totalFilesLabel:e.length===1?"1 arquivo":`${e.length} arquivos`}),[e]);return{files:t,headerInfo:r}};import{jsx as D,jsxs as A}from"react/jsx-runtime";var oe=({filesInfo:e,onRemoveFile:t,onRemoveAllFiles:r,slotProps:o})=>{let{files:i,headerInfo:l}=N({filesInfo:e});return i.length===0?null:A(_,{...o?.listContainer,children:[A(Fe,{px:1,display:"flex",justifyContent:"space-between",alignItems:"center",children:[A($,{variant:"titleXXS",children:[l.totalFilesLabel," - ",l.totalSize]}),D(Q,{title:"Remover todos",children:D(J,{variant:"text",color:"neutral",sx:{borderRadius:50},onClick:r,children:D(U,{icon:Y,removeMargin:!0})})})]}),i.map((a,s)=>D(Q,{title:a.name,children:A(G,{...o?.listItem,children:[D(U,{icon:a.icon,removeMargin:!0,size:"24px"}),D($,{variant:"titleXXS",color:ee.neutral[600],whiteSpace:"nowrap",children:a.fileSize}),D($,{variant:"titleXXS",color:ee.neutral[600],overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textAlign:"center",children:a.name}),D(J,{variant:"text",color:"neutral",sx:{borderRadius:50},onClick:()=>t(s),children:D(U,{icon:Y,removeMargin:!0})})]})},`${a.name}-${s}`))]})};import{CircularProgress as te,Stack as V,Typography as H}from"@mui/material";import{LIcon as be}from"@s_mart/core";import{lineFileUpload as we}from"@s_mart/regular-icons";import{jsx as w,jsxs as P}from"react/jsx-runtime";var re=({placeholder:e,isProcessingZip:t})=>t?P("div",{children:[P(V,{
|
|
105
|
+
`;import{Box as Fe,Tooltip as Q,Typography as $}from"@mui/material";import{IconButton as J,LIcon as U}from"@s_mart/core";import{lineTimes as Y}from"@s_mart/regular-icons";import{colorPalette as ee}from"@s_mart/tokens";import{useMemo as K}from"react";import{lineFile as De,linePicture as ze,lineXMLFile as ve}from"@s_mart/light-icons";import{lineFileCertificate as xe}from"@s_mart/regular-icons";var W=e=>{switch(e){case"application/xml":case"text/xml":return ve;case"image/gif":case"image/jpeg":case"image/png":case"image/svg":case"image/webp":return ze;case"application/pkcs12":return xe;default:return De}},E=e=>{let t="";return e<1024?t=`${e} Bytes`:e<1024*1024?t=`${(e/1024).toFixed(2)} KB`:e<1024*1024*1024&&(t=`${(e/1024/1024).toFixed(2)} MB`),t};var N=({filesInfo:e})=>{let t=K(()=>e.map(o=>({name:o.name,fileSize:E(o.size),icon:W(o.type)})),[e]),r=K(()=>({totalSize:E(e.reduce((o,i)=>o+i.size,0)),totalFilesLabel:e.length===1?"1 arquivo":`${e.length} arquivos`}),[e]);return{files:t,headerInfo:r}};import{jsx as D,jsxs as A}from"react/jsx-runtime";var oe=({filesInfo:e,onRemoveFile:t,onRemoveAllFiles:r,slotProps:o})=>{let{files:i,headerInfo:l}=N({filesInfo:e});return i.length===0?null:A(_,{...o?.listContainer,children:[A(Fe,{px:1,display:"flex",justifyContent:"space-between",alignItems:"center",children:[A($,{variant:"titleXXS",children:[l.totalFilesLabel," - ",l.totalSize]}),D(Q,{title:"Remover todos",children:D(J,{variant:"text",color:"neutral",sx:{borderRadius:50},onClick:r,children:D(U,{icon:Y,removeMargin:!0})})})]}),i.map((a,s)=>D(Q,{title:a.name,children:A(G,{...o?.listItem,children:[D(U,{icon:a.icon,removeMargin:!0,size:"24px"}),D($,{variant:"titleXXS",color:ee.neutral[600],whiteSpace:"nowrap",children:a.fileSize}),D($,{variant:"titleXXS",color:ee.neutral[600],overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",textAlign:"center",children:a.name}),D(J,{variant:"text",color:"neutral",sx:{borderRadius:50},onClick:()=>t(s),children:D(U,{icon:Y,removeMargin:!0})})]})},`${a.name}-${s}`))]})};import{CircularProgress as te,Stack as V,Typography as H}from"@mui/material";import{LIcon as be}from"@s_mart/core";import{lineFileUpload as we}from"@s_mart/regular-icons";import{jsx as w,jsxs as P}from"react/jsx-runtime";var re=({placeholder:e,isProcessingZip:t})=>t?P("div",{children:[P(V,{id:"dropzone-upload-info",direction:"row",sx:{gap:1,alignItems:"center"},children:[w(te,{sx:{color:"white"},size:24}),w(H,{variant:"titleSM",color:"white",children:"Descompactando zip..."})]}),P(V,{id:"dropzone-upload-more-label",direction:"row",sx:{gap:1,alignItems:"center"},children:[w(te,{sx:{color:"white"},size:12}),w(H,{variant:"bodySM",sx:{fontWeight:700},children:"Descompactando zip..."})]})]}):P("div",{children:[P(V,{id:"dropzone-upload-info",direction:"row",sx:{gap:1,alignItems:"center"},children:[w(be,{icon:we,size:"48px",color:"white",removeMargin:!0}),w(H,{variant:"titleSM",color:"white",children:e})]}),w(H,{id:"dropzone-upload-more-label",variant:"bodySM",sx:{fontWeight:700},children:"Carregar mais arquivos"})]});import{useCallback as ie,useEffect as Ce,useMemo as Me,useRef as ae,useState as O}from"react";var ne=async(e,t)=>{let r=[];for(let o of e.items){if(o.kind!=="file")continue;if(typeof o.webkitGetAsEntry=="function"){let l=o.webkitGetAsEntry();if(l===null)continue;let a=await Le(l);r.push(...a);continue}let i=o.getAsFile();i&&r.push(i)}return t!==void 0&&(r=Pe(r,t)),r},Le=e=>new Promise((t,r)=>{let o=0,i=[];l(e);function l(s){Ee(s)?(o++,s.file(g=>{o--,i.push(g),o===0&&t(i)})):Te(s)&&a(s.createReader())}function a(s){o++,s.readEntries(function(g){o--;for(let u of g)l(u);o===0&&t(i)})}}),Te=e=>e.isDirectory,Ee=e=>e.isFile,Pe=(e,t)=>{let r=[],o=t.split(",");for(let i of e){let l=`.${i.name.split(".").pop()?.toLowerCase()}`;o.includes(l)&&r.push(i)}return r};var q=e=>{e.stopPropagation(),e.preventDefault()},B=e=>{e.dataTransfer.dropEffect="link",q(e)};var le=({onChange:e,maxSize:t,maxFiles:r,accept:o,onError:i,onWarning:l})=>{let[a,s]=O([]),[g,u]=O(!1),[z,b]=O(!1),h=ae(null),C=ae(!1),d=async n=>{b(!0);let p=[],{BlobReader:m,BlobWriter:v,ZipReader:M}=await import("@zip.js/zip.js").catch(()=>{throw new Error("Fa\xE7a a instala\xE7\xE3o da biblioteca @zip.js/zip.js para utilizar o Dropzone.")}),x=new m(n),y=new M(x);try{let I=await y.getEntries();for(let S of I){if(S.directory||S.getData===void 0)continue;let he=await S.getData(new v),ye=new File([he],S.filename);p.push(ye)}}catch(I){i?.("Ocorreu um erro ao processar o arquivo compactado.",I)}finally{b(!1),await y.close()}return p},f=async n=>{if(!o)return n;let p=[];for(let m of n){let v=`.${m.name.split(".").pop()?.toLocaleLowerCase()}`;if(!o.split(",").includes(v)){l?.(`O arquivo "${m.name}" n\xE3o \xE9 valido, extens\xF5es aceitas ${o}`);continue}if(v===".zip"){let x=await d(m);if(!x.length)continue;let y=await f(x);y.length&&p.push(...y);continue}p.push(m)}return p},c=async n=>{let p=await f(n);s(m=>{if(console.log(r,m,p),r!==void 0&&m.length+p.length>r)return console.log("teste"),l?.(`Quantidade m\xE1xima de arquivos ${r} alcan\xE7ada`),m;if(t!==void 0){let v=m.reduce((x,y)=>x+y.size,0),M=p.reduce((x,y)=>x+y.size,0);if(v+M>t)return l?.(`O arquivo \xE9 muito grande, O tamanho m\xE1ximo permitido \xE9 ${E(t)}`),m}return m!==void 0?[...m,...p]:p}),C.current=!0},L=async n=>{if(n.target.files){let p=[...n.target.files];c(p)}},me=ie(n=>{h.current?.value&&(h.current.value=""),s(p=>p?.filter((m,v)=>v!==n))},[]),ue=ie(()=>{h.current?.value&&(h.current.value=""),s([])},[]),fe=Me(()=>a?.map(n=>({size:n.size,type:n.type,name:n.name}))??[],[a]),ge=o?`${o.toUpperCase()},${o.toLowerCase()}`:void 0;return Ce(()=>{C.current&&e(a)},[a,e]),{inputRef:h,isDragging:g,filesInfo:fe,treatedAccept:ge,isProcessingZip:z,handleRemoveFile:me,handleRemoveAllFiles:ue,handleChangeFiles:L,handleDragEnter:n=>{B(n),u(!0)},handleDragLeave:n=>{console.log("opa1"),B(n),u(!1)},handleDrop:async n=>{console.log("opa"),q(n),u(!1);let p=await ne(n.dataTransfer,o);c(p)}}};import{jsx as R,jsxs as se}from"react/jsx-runtime";var Se=e=>{let{inputRef:t,filesInfo:r,treatedAccept:o,handleChangeFiles:i,handleRemoveFile:l,handleRemoveAllFiles:a,handleDragEnter:s,handleDragLeave:g,handleDrop:u,isDragging:z,isProcessingZip:b}=le(e),h=e.placeholder??"Pressione para carregar os arquivos";return se(X,{onDragOver:s,...e.slotProps?.root,children:[R(Z,{"data-is-dragging":z,onDrop:u,onDragLeave:g,...e.slotProps?.overlay}),R(oe,{filesInfo:r,onRemoveFile:l,onRemoveAllFiles:a,slotProps:e.slotProps}),se(j,{htmlFor:"dropzone","data-max-files":e.maxFiles,"data-has-files":!!r.length,"data-is-processing-zip":b,...e.slotProps?.labelContainer,children:[R(re,{placeholder:h,isProcessingZip:b}),R("input",{ref:t,id:"dropzone",type:"file",accept:o,hidden:!0,onChange:i,multiple:e.maxFiles===void 0||e.maxFiles>1})]})]})};import{useEffect as He,useState as Re}from"react";import{Dropzone as Ie,FileItem as ke}from"@dropzone-ui/react";import{LIcon as $e}from"@s_mart/core";import{Tooltip as Ue,Typography as Ve}from"@mui/material";import{lineTimes as qe}from"@s_mart/regular-icons";import Ae from"@emotion/styled";import{colorPalette as pe}from"@s_mart/tokens";var de=Ae.button`
|
|
106
106
|
display: flex;
|
|
107
107
|
align-items: center;
|
|
108
108
|
justify-content: center;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@s_mart/dropzone",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"main": "./dist/index.mjs",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.mts",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"react": ">=18.3.1",
|
|
27
27
|
"react-dom": ">=18.3.1",
|
|
28
28
|
"typescript": ">=5.4.2",
|
|
29
|
-
"@s_mart/core": "8.0.4",
|
|
30
29
|
"@s_mart/light-icons": "6.0.5",
|
|
31
30
|
"@s_mart/regular-icons": "6.0.6",
|
|
32
|
-
"@s_mart/tokens": "5.1.1"
|
|
31
|
+
"@s_mart/tokens": "5.1.1",
|
|
32
|
+
"@s_mart/core": "9.0.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@emotion/react": "^11.11.4",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"react": ">=18.3.1",
|
|
44
44
|
"react-dom": ">=18.3.1",
|
|
45
45
|
"typescript": ">=5.4.2",
|
|
46
|
-
"@s_mart/core": "
|
|
47
|
-
"@s_mart/regular-icons": "6.0.6",
|
|
46
|
+
"@s_mart/core": "9.0.0",
|
|
48
47
|
"@s_mart/light-icons": "6.0.5",
|
|
48
|
+
"@s_mart/regular-icons": "6.0.6",
|
|
49
49
|
"@s_mart/tokens": "5.1.1"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|