@lanaco/lnc-react-ui
Version:
React component library
40 lines (35 loc) • 3.13 kB
JavaScript
;const r=require("react/jsx-runtime"),N=require("react"),s=require("./index-BPVoEhTF.cjs"),t=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),h=require("./Icon.cjs"),U=require("./ProgressBar.cjs"),m=require("./utils-NZLCh-J5.cjs"),M=require("./emotion-element-f0de968e.browser.esm-B7k6i6lC.cjs"),w={small:"1.5rem",medium:"1.75rem",large:"2rem"},P={small:"2.25rem",medium:"2.5rem",large:"2.75rem"},O=t.newStyled.div`
display: inline-flex;
gap: 0.5rem;
align-items: center;
width: 100%;
height: ${e=>e.progress?P[e.size]:w[e.size]};
height: ${e=>e.progress?P[e.size]:w[e.size]};
`,R=t.newStyled.div`
color: ${e=>m.getColorRgbaValue(e.theme,"UploadedFile",e.color,"enabled","color")};
width: 100%;
display: flex;
flex-direction: column;
gap: 0.1875rem;
min-width: 0;
flex-shrink: 1;
min-height: 0;
`,_=t.newStyled.div`
display: flex;
justify-content: space-between;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
${e=>m.getComponentTypographyCss(e.theme,"UploadedFile",e.size,"enabled")};
`,E=t.newStyled.span`
display: flex;
align-items: center;
justify-content: center;
cursor: ${e=>e.onCancel?"pointer":"default"};
`,W=t.newStyled.span`
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: ${e=>e.hasOnClick?"pointer":"default"};
${e=>m.getComponentTypographyCss(e.theme,"UploadedFile",e.size,"enabled")};
`,x=N.forwardRef((e,z)=>{const{id:T,fileName:c="file",fileSize:d=null,showFileSize:C=!1,progressPercentage:n,onFileClick:l=()=>{},onCancel:a=()=>{},size:j="small",color:F="primary",className:B="",style:S={},fileIcon:b="file",cancelIcon:k="times",...p}=e;var i={theme:M.useTheme(),size:j,color:F,progress:n&&n>0};const v=()=>c&&d&&C?`${c} (${$(d,2)})`:c||"";function $(o,y=2){if(o===0)return"0 Bytes";const f=1024,q=y<0?0:y,I=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],g=Math.floor(Math.log(o)/Math.log(f));return parseFloat((o/Math.pow(f,g)).toFixed(q))+" "+I[g]}const u={small:"1rem",medium:"1.25rem",large:"1.5rem"};return r.jsxs(O,{ref:z,id:T,...i,className:"lnc-ui-uploaded-file "+B,style:S,...p,children:[r.jsx(h,{...i,icon:b,sizeInUnits:u[e.size],style:{cursor:l?"pointer":"default"},onClick:o=>l?l(o):null}),r.jsxs(R,{...i,children:[r.jsxs(_,{...i,children:[r.jsx(W,{...i,hasOnClick:!!l,onClick:o=>l?l(o):null,children:v()}),n&&r.jsxs("div",{children:[n,"%"]})]}),(n||n==0)&&r.jsx(U,{progressPercentage:n,style:{height:"0.5rem"},...i})]}),r.jsx(E,{onCancel:a,onClick:a||null,children:r.jsx(h,{...i,icon:k,sizeInUnits:u[e.size],...p})})]})});x.propTypes={id:s.PropTypes.any,fileName:s.PropTypes.string,fileSize:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]),showFileSize:s.PropTypes.bool,progressPercentage:s.PropTypes.number,className:s.PropTypes.string,style:s.PropTypes.object,onFileClick:s.PropTypes.func,onCancel:s.PropTypes.func,size:s.PropTypes.oneOf(["small","medium","large"]),color:s.PropTypes.oneOf(["primary","secondary","success","danger","warning","disabled","neutral","information","gray"]),fileIcon:s.PropTypes.string,cancelIcon:s.PropTypes.string};module.exports=x;