@zydon/common 2.7.61 → 2.7.63
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/{chunk-75G5RNV4.js → chunk-5LQLLZ5L.js} +2 -2
- package/dist/chunk-5NIMUEW5.js +25 -0
- package/dist/chunk-5NIMUEW5.js.map +1 -0
- package/dist/chunk-6WGKIN5L.js +18 -0
- package/dist/chunk-6WGKIN5L.js.map +1 -0
- package/dist/chunk-7MVZYOHX.js +13 -0
- package/dist/chunk-7MVZYOHX.js.map +1 -0
- package/dist/{chunk-KRT2AT6N.js → chunk-CWCEG2DZ.js} +2 -2
- package/dist/{chunk-HLMZQG27.js → chunk-HWYA3EGC.js} +2 -2
- package/dist/chunk-HWYA3EGC.js.map +1 -0
- package/dist/chunk-IEGF6HVV.js +43 -0
- package/dist/{chunk-XTTDUDXX.js.map → chunk-IEGF6HVV.js.map} +1 -1
- package/dist/chunk-JFZOAS75.js +23 -0
- package/dist/{chunk-MJQ5FMYR.js → chunk-JZ55NEMI.js} +2 -2
- package/dist/{chunk-WVXEXDGZ.js → chunk-KR3DUHA6.js} +3 -3
- package/dist/{chunk-X7VVV26F.js → chunk-LEMPYV5U.js} +2 -2
- package/dist/{chunk-AA2DXMIC.js → chunk-LNXA53QR.js} +2 -2
- package/dist/{chunk-CDJKO3NN.js → chunk-LY3IB5VH.js} +2 -2
- package/dist/{chunk-YEVAAROT.js → chunk-MP2LAJS5.js} +3 -3
- package/dist/{chunk-BX2JPTSO.js → chunk-N4DW7EIC.js} +2 -2
- package/dist/{chunk-DLIHGNBS.js → chunk-NQNNMRLC.js} +3 -3
- package/dist/{chunk-DLIHGNBS.js.map → chunk-NQNNMRLC.js.map} +1 -1
- package/dist/{chunk-QHXITV2M.js → chunk-OTVEMGF2.js} +2 -2
- package/dist/chunk-POTVACYB.js +8 -0
- package/dist/chunk-POTVACYB.js.map +1 -0
- package/dist/chunk-QVU6HSYP.js +12 -0
- package/dist/chunk-QVU6HSYP.js.map +1 -0
- package/dist/{chunk-GFXVOSAE.js → chunk-R76WTFYC.js} +2 -2
- package/dist/chunk-RBTYTONM.js +13 -0
- package/dist/chunk-RBTYTONM.js.map +1 -0
- package/dist/{chunk-BOKTSYI5.js → chunk-RFRLNTFN.js} +2 -2
- package/dist/{chunk-MTBVMYTS.js → chunk-U7BH6DMJ.js} +2 -2
- package/dist/{chunk-CU7PKEY2.js → chunk-VPKUUY5Q.js} +2 -2
- package/dist/chunk-VYNBVZSA.js +37 -0
- package/dist/chunk-VYNBVZSA.js.map +1 -0
- package/dist/chunk-WQSRNCNF.js +5 -0
- package/dist/chunk-WQSRNCNF.js.map +1 -0
- package/dist/{chunk-BBFBNDAZ.js → chunk-XZFBTUAG.js} +2 -2
- package/dist/{chunk-C7VQJ35F.js → chunk-ZFRNMT3P.js} +2 -2
- package/dist/{chunk-SSLZPI3M.js → chunk-ZGSSTXUO.js} +2 -2
- package/dist/components/ActionButton/index.js +2 -2
- package/dist/components/Autocomplete/index.js +2 -2
- package/dist/components/Avatar/index.d.ts +1 -1
- package/dist/components/AvatarButton/index.js +3 -3
- package/dist/components/BuilderLayout/index.js +2 -2
- package/dist/components/BuilderSidebar/index.js +1 -1
- package/dist/components/BulkEditModal/index.d.ts +64 -0
- package/dist/components/BulkEditModal/index.js +28 -0
- package/dist/components/BulkEditModal/index.js.map +1 -0
- package/dist/components/CardBrand/index.js +1 -1
- package/dist/components/Common/index.js +3 -3
- package/dist/components/CopyButton/index.js +2 -2
- package/dist/components/DataGrid/index.js +2 -1
- package/dist/components/DataView/index.js +8 -6
- package/dist/components/DragButton/index.js +2 -2
- package/dist/components/Drawer/index.js +1 -1
- package/dist/components/DynamicDataView/index.d.ts +4 -2
- package/dist/components/DynamicDataView/index.js +20 -14
- package/dist/components/DynamicDataView/index.js.map +1 -1
- package/dist/components/EasyCropModal/index.js +3 -3
- package/dist/components/Error/index.js +1 -1
- package/dist/components/ExpandableGroup/index.js +7 -7
- package/dist/components/ExpandableGroup/index.js.map +1 -1
- package/dist/components/FieldMentions/index.js.map +1 -1
- package/dist/components/FileUpload/index.js +7 -6
- package/dist/components/FrameSkeleton/index.js +4 -4
- package/dist/components/HelpButton/index.js +2 -2
- package/dist/components/Icon/index.js +1 -1
- package/dist/components/IconButton/index.js +2 -2
- package/dist/components/ImageCropModal/index.js +3 -3
- package/dist/components/Incrementer/index.js +2 -2
- package/dist/components/InfoCircle/index.js +1 -1
- package/dist/components/ListBundles/index.js +2 -2
- package/dist/components/MenuItem/index.js +1 -1
- package/dist/components/Modal/index.js +2 -2
- package/dist/components/MoreMenu/index.js +1 -1
- package/dist/components/PasswordRules/index.js +1 -1
- package/dist/components/PopoverSelect/index.js +1 -1
- package/dist/components/SearchInput/index.js +2 -2
- package/dist/components/SelectableCards/index.js +3 -3
- package/dist/components/SeoPreview/index.js +1 -1
- package/dist/components/StateDisplay/index.js +2 -2
- package/dist/components/Steps/index.js +1 -1
- package/dist/components/StyledTab/index.js +1 -1
- package/dist/components/SwapList/index.js +2 -2
- package/dist/components/ToggleTheme/index.js +2 -2
- package/dist/components/WebhookCard/index.js +2 -2
- package/dist/components/carousel/index.js +2 -2
- package/dist/components/form/Address/index.js +3 -3
- package/dist/components/form/Autocomplete/index.js +3 -3
- package/dist/components/form/FileUpload/index.js +8 -7
- package/dist/components/form/FileUpload/index.js.map +1 -1
- package/dist/components/form/Incrementer/index.js +2 -2
- package/dist/components/form/Password/index.js +1 -1
- package/dist/components/form/SelectableCards/index.js +3 -3
- package/dist/components/form/UploadAvatarWithCrop/index.js +6 -5
- package/dist/components/form/UploadAvatarWithCrop/index.js.map +1 -1
- package/dist/components/form/UploadWithCrop/index.js +8 -7
- package/dist/components/form/UploadWithCrop/index.js.map +1 -1
- package/dist/components/form/Webhook/index.js +12 -12
- package/dist/components/form/Webhook/index.js.map +1 -1
- package/dist/components/lightbox/index.js +1 -1
- package/dist/components/table/index.js +2 -2
- package/dist/components/upload/index.js +11 -10
- package/dist/components/upload/index.js.map +1 -1
- package/dist/hooks/useCollapseSidebarOnMount.js +3 -3
- package/dist/hooks/useEventCallback.d.ts +2 -3
- package/dist/hooks/useEventCallback.js +1 -1
- package/dist/hooks/useLocalStorage.js +2 -2
- package/dist/hooks/useSnackbar.d.ts +1 -1
- package/dist/hooks/useThemeToggle.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/theme/core/index.d.ts +1 -1
- package/dist/theme/styles/index.d.ts +13 -13
- package/dist/theme/theme-provider.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-F4T3RPSV.js +0 -36
- package/dist/chunk-F4T3RPSV.js.map +0 -1
- package/dist/chunk-HLMZQG27.js.map +0 -1
- package/dist/chunk-JBPWWO5D.js +0 -15
- package/dist/chunk-JBPWWO5D.js.map +0 -1
- package/dist/chunk-MQAMSYYK.js +0 -8
- package/dist/chunk-MQAMSYYK.js.map +0 -1
- package/dist/chunk-NCNSNAJ5.js +0 -27
- package/dist/chunk-NCNSNAJ5.js.map +0 -1
- package/dist/chunk-SA2BESEB.js +0 -17
- package/dist/chunk-SA2BESEB.js.map +0 -1
- package/dist/chunk-XTTDUDXX.js +0 -42
- package/dist/chunk-YCKZD2H6.js +0 -23
- package/dist/{chunk-75G5RNV4.js.map → chunk-5LQLLZ5L.js.map} +0 -0
- package/dist/{chunk-KRT2AT6N.js.map → chunk-CWCEG2DZ.js.map} +0 -0
- package/dist/{chunk-YCKZD2H6.js.map → chunk-JFZOAS75.js.map} +0 -0
- package/dist/{chunk-MJQ5FMYR.js.map → chunk-JZ55NEMI.js.map} +0 -0
- package/dist/{chunk-WVXEXDGZ.js.map → chunk-KR3DUHA6.js.map} +0 -0
- package/dist/{chunk-X7VVV26F.js.map → chunk-LEMPYV5U.js.map} +0 -0
- package/dist/{chunk-AA2DXMIC.js.map → chunk-LNXA53QR.js.map} +0 -0
- package/dist/{chunk-CDJKO3NN.js.map → chunk-LY3IB5VH.js.map} +0 -0
- package/dist/{chunk-YEVAAROT.js.map → chunk-MP2LAJS5.js.map} +0 -0
- package/dist/{chunk-BX2JPTSO.js.map → chunk-N4DW7EIC.js.map} +0 -0
- package/dist/{chunk-QHXITV2M.js.map → chunk-OTVEMGF2.js.map} +0 -0
- package/dist/{chunk-GFXVOSAE.js.map → chunk-R76WTFYC.js.map} +0 -0
- package/dist/{chunk-BOKTSYI5.js.map → chunk-RFRLNTFN.js.map} +0 -0
- package/dist/{chunk-MTBVMYTS.js.map → chunk-U7BH6DMJ.js.map} +0 -0
- package/dist/{chunk-CU7PKEY2.js.map → chunk-VPKUUY5Q.js.map} +0 -0
- package/dist/{chunk-BBFBNDAZ.js.map → chunk-XZFBTUAG.js.map} +0 -0
- package/dist/{chunk-C7VQJ35F.js.map → chunk-ZFRNMT3P.js.map} +0 -0
- package/dist/{chunk-SSLZPI3M.js.map → chunk-ZGSSTXUO.js.map} +0 -0
- package/dist/{index-c8f1e6e7.d.ts → index-5a5e5dc8.d.ts} +12 -12
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as a$1 } from './chunk-XNKYJHNL.js';
|
|
2
|
-
import { a } from './chunk-
|
|
2
|
+
import { a } from './chunk-HWYA3EGC.js';
|
|
3
3
|
|
|
4
4
|
var s=(t=!0)=>{let[,a$2]=a("isNavMini",!1);a$1(()=>{a$2(t);});},r=s;
|
|
5
5
|
|
|
6
6
|
export { r as a };
|
|
7
7
|
//# sourceMappingURL=out.js.map
|
|
8
|
-
//# sourceMappingURL=chunk-
|
|
8
|
+
//# sourceMappingURL=chunk-5LQLLZ5L.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { a as a$5 } from './chunk-OTVEMGF2.js';
|
|
2
|
+
import { a as a$6 } from './chunk-IJZCVZ32.js';
|
|
3
|
+
import { a as a$9 } from './chunk-7MVZYOHX.js';
|
|
4
|
+
import { a as a$7 } from './chunk-6U5LS7MP.js';
|
|
5
|
+
import { a as a$4 } from './chunk-CO2KQFUN.js';
|
|
6
|
+
import { i, j, a as a$3, b as b$1, c, d, f, e, g, h } from './chunk-QVU6HSYP.js';
|
|
7
|
+
import { a as a$1 } from './chunk-IN7SP2ND.js';
|
|
8
|
+
import { a } from './chunk-NQNNMRLC.js';
|
|
9
|
+
import { a as a$8 } from './chunk-XWUVJ22J.js';
|
|
10
|
+
import { a as a$2 } from './chunk-LQRRMVFN.js';
|
|
11
|
+
import { b } from './chunk-RPO7AI5K.js';
|
|
12
|
+
import { forwardRef, useCallback, useState, Children, isValidElement, cloneElement } from 'react';
|
|
13
|
+
import B from '@mui/material/Button';
|
|
14
|
+
import vo from '@mui/material/CircularProgress';
|
|
15
|
+
import Ro from '@mui/material/Divider';
|
|
16
|
+
import x from '@mui/material/Stack';
|
|
17
|
+
import P from '@mui/material/Typography';
|
|
18
|
+
import { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
|
|
19
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
20
|
+
|
|
21
|
+
var C="datagrid-actions";var So=forwardRef(({children:a$1,...n},t)=>jsx(B,{...n,ref:t,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:a$1??"Colunas"}));So.displayName="ColumnsButton";var bo=({setFilterButtonEl:a$2})=>{let n=useCallback(t=>{a$2(t);},[a$2]);return jsx(a$1,{container:C,children:jsx(GridToolbarColumnsButton,{ref:n,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},no=bo;var ao=(a,n)=>Children.map(a,t=>{if(!isValidElement(t))return t;let d=t.props.onClick,i={};return i.onClick=(...S)=>{n(),d&&d(...S);},t.props?.children&&(i.children=ao(t.props.children,n)),cloneElement(t,i)}),yo=({title:a$1,headerContent:n,breakpoint:t="md",columns:d$1,rows:i$1=[],mobileRender:S,rowCount:b$2=0,paginationModel:s={page:0,pageSize:25},onPaginationChange:g$1,actions:E,moreActions:k,onAdd:O,onSearch:N,searchValue:io,onSearchChange:so,slots:w,slotProps:lo,loading:p,fetching:G,containerProps:co={height:562,maxHeight:562},hideFooter:M,hideHeader:H=!1,showColumnButton:L=!1,...po})=>{let c$1=a$2(),m=b("down",t),[mo,uo]=useState(null),z=!!N,D=!!O,h$1=!!E,T=!!k,v=m&&T,R=!m&&T,fo=h$1||D||v,_=R||z||L||!m,y={...w,footer:()=>jsxs(i,{children:[jsxs(x,{direction:"row",alignItems:"center",gap:.5,children:[jsx(P,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(P,{variant:"body2",children:b$2})]}),jsx(j,{count:b$2,page:s.page,rowsPerPage:s.pageSize,onPageChange:e=>g$1(e,s.pageSize),onRowsPerPageChange:e=>g$1(s.page,e)})]})};return L&&!y.toolbar&&(y.toolbar=no),jsxs(a$3,{breakpoint:t,...co,flex:p?1:void 0,minHeight:!p&&i$1.length===0?562:void 0,children:[!H&&jsxs(Fragment,{children:[jsxs(b$1,{breakpoint:t,children:[jsx(P,{variant:"overline",color:"text.secondary",noWrap:!0,children:a$1}),fo&&jsxs(c,{breakpoint:t,children:[h$1&&E,D&&jsxs(Fragment,{children:[h$1&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(B,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:O,children:"Adicionar"})]}),v&&jsxs(Fragment,{children:[(h$1||D)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(B,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:c$1.onOpen,children:"Mais"})]})]})]}),_&&jsxs(f,{breakpoint:t,children:[jsx(x,{flex:1,direction:"row",alignItems:"center",id:C,gap:.5,children:T&&jsxs(Fragment,{children:[R&&jsxs(Fragment,{children:[jsx(B,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:c$1.onOpen,children:"Mais"}),!m&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(R||v)&&jsx(a$4,{open:c$1.open,anchorEl:c$1.open,onClose:c$1.onClose,sx:{minWidth:160},disabledArrow:!0,children:k?ao(k,c$1.onClose):null})]})}),z&&jsx(g,{breakpoint:t,children:jsx(a$5,{value:io,placeholder:"Buscar",onSearch:N,onChange:e=>so?.(e.target.value),size:"small",fullWidth:!0,iconPosition:"start"})})]})]}),!_&&!H&&jsx(Ro,{sx:{mt:2}}),n&&n,m?jsxs(a$6,{isFetching:G,fetching:jsx(a$7,{}),isLoading:p,loading:jsx(vo,{sx:{m:"160px auto"}}),isEmpty:i$1.length===0,empty:jsx(x,{flex:1,alignItems:"center",justifyContent:"center",children:w?.noRowsOverlay?jsx(w.noRowsOverlay,{}):jsx(P,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})}),children:[jsx(a$8,{fillContent:!0,children:i$1.map(e=>S(e))}),!M&&jsx(h,{children:jsx(j,{count:b$2,page:s.page,rowsPerPage:s.pageSize,onPageChange:e=>g$1(e,s.pageSize),onRowsPerPageChange:e=>g$1(s.page,e)})})]}):jsx(a$9,{columns:d$1,rows:i$1,slots:y,slotProps:{panel:{anchorEl:mo},toolbar:{setFilterButtonEl:uo,showQuickFilter:!0},...lo},columnHeaderHeight:48,getRowHeight:()=>68,loading:p,fetching:G,hideFooter:M,...po})]},p?"loading":"data")},it=yo;
|
|
22
|
+
|
|
23
|
+
export { no as a, it as b };
|
|
24
|
+
//# sourceMappingURL=out.js.map
|
|
25
|
+
//# sourceMappingURL=chunk-5NIMUEW5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DataView/index.tsx","../src/components/DataView/contants.ts","../src/components/DataView/Toolbar.tsx"],"names":["Children","cloneElement","isValidElement","useState","Button","CircularProgress","Divider","Stack","Typography","DATAGRID_ACTIONS","forwardRef","useCallback","GridToolbarColumnsButton","jsx","ColumnsButton","children","props","ref","Icon_default","Toolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Toolbar_default","Fragment","jsxs","enhanceMoreActions","onClose","child","originalOnClick","enhancedProps","args","DataView","title","headerContent","breakpoint","columns","rows","mobileRender","rowCount","paginationModel","onPaginationChange","actions","moreActions","onAdd","onSearch","searchValue","onSearchChange","slots","slotProps","loading","fetching","containerProps","hideFooter","hideHeader","showColumnButton","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","showSearch","showAdd","showActions","showMoreActions","showHeaderMoreActions","showTopbarMoreActions","showActionsContainer","showTopbar","dataGridSlots","DesktopPaginationContainer","Pagination_default","newPage","newRowsPerPage","Container","Header","ActionsContainer","ActionsDivider","Topbar","ToolbarActionsDivider","MenuPopover_default","SearchContainer","SearchInput_default","Result_default","FixedProgressBar_default","Scrollbar_default","row","MobilePaginationContainer","DataGrid_default","DataView_default"],"mappings":"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","sourcesContent":["import {\n Children,\n cloneElement,\n isValidElement,\n ReactElement,\n ReactNode,\n useState,\n} from 'react';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { GridSlotsComponentsProps } from '@mui/x-data-grid-premium';\n\nimport DataGrid from 'components/DataGrid';\nimport FixedProgressBar from 'components/FixedProgressBar';\nimport Icon from 'components/Icon';\nimport MenuPopover from 'components/MenuPopover';\nimport Result from 'components/Result';\nimport Scrollbar from 'components/Scrollbar';\nimport SearchInput from 'components/SearchInput';\nimport usePopover from 'hooks/usePopover';\nimport useResponsive from 'hooks/useResponsive';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport Pagination from './Pagination';\nimport { DataGridSlotsProps, DataViewProps } from './props';\nimport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DesktopPaginationContainer,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n ToolbarActionsDivider,\n Topbar,\n} from './styles';\nimport Toolbar from './Toolbar';\n\nconst enhanceMoreActions = (\n children: ReactNode,\n onClose: () => void,\n): ReactNode => {\n return Children.map(children, child => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const originalOnClick = (\n child.props as { onClick?: (...args: unknown[]) => void }\n ).onClick;\n\n const enhancedProps: {\n onClick?: (...args: unknown[]) => void;\n children?: ReactNode;\n } = {};\n\n enhancedProps.onClick = (...args: unknown[]) => {\n onClose();\n if (originalOnClick) {\n originalOnClick(...args);\n }\n };\n\n if (child.props?.children) {\n enhancedProps.children = enhanceMoreActions(\n child.props.children as ReactNode,\n onClose,\n );\n }\n\n return cloneElement(child as ReactElement, enhancedProps);\n });\n};\n\nconst DataView = ({\n title,\n headerContent,\n breakpoint = 'md',\n columns,\n rows = [],\n mobileRender,\n rowCount = 0,\n paginationModel = { page: 0, pageSize: 25 },\n onPaginationChange,\n actions,\n moreActions,\n onAdd,\n onSearch,\n searchValue,\n onSearchChange,\n slots,\n slotProps,\n loading,\n fetching,\n containerProps = { height: 562, maxHeight: 562 },\n hideFooter,\n hideHeader = false,\n showColumnButton = false,\n ...others\n}: DataViewProps) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n\n const showSearch = !!onSearch;\n const showAdd = !!onAdd;\n const showActions = !!actions;\n const showMoreActions = !!moreActions;\n const showHeaderMoreActions = isMobile && showMoreActions;\n const showTopbarMoreActions = !isMobile && showMoreActions;\n const showActionsContainer = showActions || showAdd || showHeaderMoreActions;\n const showTopbar =\n showTopbarMoreActions || showSearch || showColumnButton || !isMobile;\n\n const renderDesktopFooter = (): ReactNode => (\n <DesktopPaginationContainer>\n <Stack direction=\"row\" alignItems=\"center\" gap={0.5}>\n <Typography variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography variant=\"body2\">{rowCount}</Typography>\n </Stack>\n\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange(paginationModel.page, newRowsPerPage)\n }\n />\n </DesktopPaginationContainer>\n );\n\n const dataGridSlots: DataGridSlotsProps = {\n ...slots,\n footer: renderDesktopFooter as unknown as DataGridSlotsProps['footer'],\n };\n\n if (showColumnButton && !dataGridSlots.toolbar) {\n dataGridSlots.toolbar = Toolbar as unknown as DataGridSlotsProps['toolbar'];\n }\n\n return (\n <Container\n key={loading ? 'loading' : 'data'}\n breakpoint={breakpoint}\n {...containerProps}\n flex={loading ? 1 : undefined}\n minHeight={!loading && rows.length === 0 ? 562 : undefined}\n >\n {!hideHeader && (\n <>\n <Header breakpoint={breakpoint}>\n <Typography variant=\"overline\" color=\"text.secondary\" noWrap>\n {title}\n </Typography>\n\n {showActionsContainer && (\n <ActionsContainer breakpoint={breakpoint}>\n {showActions && actions}\n\n {showAdd && (\n <>\n {showActions && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n startIcon={<Icon icon=\"SIMPLE_ADD\" />}\n variant=\"contained\"\n onClick={onAdd}\n >\n Adicionar\n </Button>\n </>\n )}\n\n {showHeaderMoreActions && (\n <>\n {(showActions || showAdd) && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n </>\n )}\n </ActionsContainer>\n )}\n </Header>\n\n {showTopbar && (\n <Topbar breakpoint={breakpoint}>\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n id={DATAGRID_ACTIONS}\n gap={0.5}\n >\n {showMoreActions && (\n <>\n {showTopbarMoreActions && (\n <>\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n\n {!isMobile && (\n <ToolbarActionsDivider\n orientation=\"vertical\"\n flexItem\n />\n )}\n </>\n )}\n\n {(showTopbarMoreActions || showHeaderMoreActions) && (\n <MenuPopover\n open={popover.open}\n anchorEl={popover.open}\n onClose={popover.onClose}\n sx={{\n minWidth: 160,\n }}\n disabledArrow={true}\n >\n {moreActions\n ? enhanceMoreActions(moreActions, popover.onClose)\n : null}\n </MenuPopover>\n )}\n </>\n )}\n </Stack>\n\n {showSearch && (\n <SearchContainer breakpoint={breakpoint}>\n <SearchInput\n value={searchValue}\n placeholder=\"Buscar\"\n onSearch={onSearch}\n onChange={e => onSearchChange?.(e.target.value)}\n size=\"small\"\n fullWidth\n iconPosition=\"start\"\n />\n </SearchContainer>\n )}\n </Topbar>\n )}\n </>\n )}\n\n {!showTopbar && !hideHeader && <Divider sx={{ mt: 2 }} />}\n\n {headerContent && headerContent}\n\n {isMobile ? (\n <Result\n isFetching={fetching}\n fetching={<FixedProgressBar />}\n isLoading={loading}\n loading={<CircularProgress sx={{ m: '160px auto' }} />}\n isEmpty={rows.length === 0}\n empty={\n <Stack flex={1} alignItems=\"center\" justifyContent=\"center\">\n {slots?.noRowsOverlay ? (\n <slots.noRowsOverlay />\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Nenhum registro encontrado\n </Typography>\n )}\n </Stack>\n }\n >\n <Scrollbar fillContent>\n {rows.map(row => mobileRender(row))}\n </Scrollbar>\n\n {!hideFooter && (\n <MobilePaginationContainer>\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange(paginationModel.page, newRowsPerPage)\n }\n />\n </MobilePaginationContainer>\n )}\n </Result>\n ) : (\n <DataGrid\n columns={columns}\n rows={rows}\n slots={dataGridSlots}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n ...slotProps,\n }}\n columnHeaderHeight={48}\n getRowHeight={() => 68}\n loading={loading}\n fetching={fetching}\n hideFooter={hideFooter}\n {...others}\n />\n )}\n </Container>\n );\n};\n\nexport default DataView;\nexport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DesktopPaginationContainer,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n Toolbar,\n ToolbarActionsDivider,\n Topbar,\n};\n","export const DATAGRID_ACTIONS = 'datagrid-actions';\n","import { forwardRef, useCallback } from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport { ToolbarProps } from './props';\n\nconst ColumnsButton = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, ...props }, ref) => (\n <Button\n {...props}\n ref={ref}\n color=\"inherit\"\n startIcon={<Icon icon=\"COLUMNS\" />}\n >\n {children ?? 'Colunas'}\n </Button>\n ),\n);\n\nColumnsButton.displayName = 'ColumnsButton';\n\nconst Toolbar = ({ setFilterButtonEl }: ToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={DATAGRID_ACTIONS}>\n <GridToolbarColumnsButton\n ref={handleColumnsButtonRef}\n slotProps={{\n button: {\n color: 'inherit',\n startIcon: <Icon icon=\"COLUMNS\" />,\n children: 'Colunas',\n },\n }}\n />\n </Portal>\n );\n};\n\nexport default Toolbar;\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { d, c } from './chunk-WQSRNCNF.js';
|
|
2
|
+
import { e } from './chunk-OF6623HG.js';
|
|
3
|
+
import { k } from './chunk-GLRLKFPS.js';
|
|
4
|
+
import b from '@mui/material/Box';
|
|
5
|
+
import h from '@mui/material/Paper';
|
|
6
|
+
import f from '@mui/material/Typography';
|
|
7
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
+
import C from '@mui/material/CircularProgress';
|
|
9
|
+
import a from '@mui/material/IconButton';
|
|
10
|
+
import l from '@mui/material/Stack';
|
|
11
|
+
import { styled, alpha } from '@mui/material/styles';
|
|
12
|
+
import { m } from 'framer-motion';
|
|
13
|
+
|
|
14
|
+
function x(o){return typeof o=="string"?{key:o,preview:o,name:d(o),type:c(o),size:void 0,path:o,lastModified:void 0,lastModifiedDate:void 0}:{key:`key:${o.name}`,name:o.name,size:o.size,path:o.path,type:o.type,preview:o.preview,lastModified:o.lastModified,lastModifiedDate:o.lastModifiedDate}}function M({files:o}){return o.length?jsx(h,{variant:"outlined",sx:{py:1,px:2,mt:3,textAlign:"left",borderStyle:"dashed",borderColor:"error.main",bgcolor:t=>k(t.vars.palette.error.mainChannel,.08)},children:o.map(({file:t,errors:i})=>{let{path:n,size:s}=x(t),y=s?e(s):"";return jsxs(b,{sx:{my:1},children:[jsxs(f,{variant:"subtitle2",noWrap:!0,children:[n," - ",y," "]}),i.map(d=>jsxs(b,{component:"span",sx:{typography:"caption"},children:["- ",d.message]},d.code))]},n)})}):null}var q=styled(l)({position:"relative",width:"100%",borderRadius:8,overflow:"hidden","&:hover .actions":{display:"flex"}}),G=styled(l)(({theme:o})=>({display:"none",position:"absolute",alignItems:"center",justifyContent:"center",flexDirection:"row",gap:12,width:"100%",height:"100%",backgroundColor:alpha(o.palette.primary.main,.9),zIndex:999,button:{"&, &:hover, &:focus":{backgroundColor:o.palette.background.paper}}})),H=styled(C)(({theme:o})=>({position:"absolute",width:"100%",height:"100%",zIndex:99,backgroundColor:o.palette.background.paper,borderRadius:"50%"})),J=styled(a)(({theme:o})=>({position:"relative",zIndex:999,pointerEvents:"auto",bgcolor:alpha(o.palette.grey[900],.72),"&:hover":{backgroundColor:alpha(o.palette.grey[900],.48)}})),K=styled("div")({position:"relative",zIndex:1,userSelect:"none",WebkitUserSelect:"none",WebkitTouchCallout:"none","&:hover":{zIndex:2}}),Q=styled(l)(({theme:o,width:t,isDragging:i})=>({width:t,height:80,alignItems:"center",display:"inline-flex",justifyContent:"center",margin:o.spacing(.5),padding:o.spacing(2,1,2,1),borderRadius:o.spacing(1.25),overflow:"hidden",position:"relative",border:`solid 1px ${o.palette.divider}`,backgroundColor:o.palette.common.white,zIndex:1,transition:"box-shadow 150ms ease-in-out",boxShadow:i?`0 0 0 2px ${o.palette.primary.main}, ${o.customShadows.z8}, inset 0 0 0 1000px ${alpha(o.palette.primary.main,.06)}`:"0px 0px 0px 0px rgba(0, 0, 0, 0)"})),V=styled(m.div)(({theme:o,width:t,isDragging:i})=>({width:t,height:60,alignItems:"center",display:"inline-flex",justifyContent:"center",margin:o.spacing(.5),padding:o.spacing(2),borderRadius:o.spacing(1.25),overflow:"hidden",position:"relative",border:`solid 1px ${o.palette.divider}`,backgroundColor:o.palette.common.white,zIndex:1,transition:"box-shadow 150ms ease-in-out",boxShadow:i?`0 0 0 2px ${o.palette.primary.main}, ${o.customShadows.z8}, inset 0 0 0 1000px ${alpha(o.palette.primary.main,.06)}`:"0px 0px 0px 0px rgba(0, 0, 0, 0)"})),X=styled(a)(({theme:o})=>({width:36,height:36,position:"absolute",top:10,right:10,borderRadius:0,zIndex:1,opacity:0,transition:"opacity 50ms ease-in-out",color:o.palette.error.main,backgroundColor:alpha(o.palette.common.white,.8),"&:hover":{backgroundColor:alpha(o.palette.common.white,.8),opacity:1}})),Y=styled(a)(({theme:o})=>({width:24,height:24,position:"absolute",top:18,right:8,borderRadius:12,opacity:1,zIndex:1,transition:"opacity 50ms ease-in-out",color:o.palette.grey[500],backgroundColor:o.palette.common.white,"&:hover":{backgroundColor:o.palette.common.white}})),Z=styled(a,{shouldForwardProp:o=>o!=="isMainImage"})(({theme:o,isMainImage:t})=>({color:t?o.palette.secondary.main:o.palette.action.disabled,backgroundColor:o.palette.common.white," &:hover":{backgroundColor:o.palette.common.white},top:4,left:8,padding:o.spacing(.5),border:"1px solid",borderColor:t?o.palette.secondary.main:o.palette.divider})),_=styled(a)(({theme:o})=>({top:16,right:16,zIndex:9,position:"absolute",color:alpha(o.palette.common.white,.8),bgcolor:alpha(o.palette.grey[900],.72),"&:hover":{bgcolor:alpha(o.palette.grey[900],.48)}})),oo=styled(b,{shouldForwardProp:o=>o!=="isDragActive"&&o!=="disabled"&&o!=="hasError"})(({theme:o,isDragActive:t,disabled:i,hasError:n})=>({width:64,height:64,flexShrink:0,display:"flex",borderRadius:1,cursor:"pointer",alignItems:"center",color:o.palette.text.disabled,justifyContent:"center",bgcolor:alpha(o.palette.grey[500],.08),border:`dashed 1px ${alpha(o.palette.grey[500],.16)}`,...t&&{opacity:.72},...i&&{opacity:.48,pointerEvents:"none"},...n&&{color:o.palette.error.main,borderColor:o.palette.error.main,bgcolor:alpha(o.palette.error.main,.08)},"&:hover":{opacity:.72}}));
|
|
15
|
+
|
|
16
|
+
export { x as a, q as b, G as c, H as d, J as e, K as f, Q as g, V as h, X as i, Y as j, Z as k, _ as l, oo as m, M as n };
|
|
17
|
+
//# sourceMappingURL=out.js.map
|
|
18
|
+
//# sourceMappingURL=chunk-6WGKIN5L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/upload/components/rejection-files.tsx","../src/components/file-thumbnail/utils.ts","../src/components/upload/styles.ts"],"names":["Box","Paper","Typography","fileData","file","fileNameByUrl","fileTypeByUrl","jsx","jsxs","RejectionFiles","files","theme","varAlpha","errors","path","size","sizeText","fData","error","CircularProgress","IconButton","Stack","alpha","styled","m","Container","OverlayActions","AvatarLoading","CloseIconButton","DragWrapper","FrameFileThumbnail","width","isDragging","FrameImageThumbnail","DeleteItemButton","DeleteFileButton","StarButton","prop","isMainImage","DeleteButton","BoxUpload","isDragActive","disabled","hasError"],"mappings":"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","sourcesContent":["/* eslint-disable react/function-component-definition */\nimport type { FileRejection } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport Paper from '@mui/material/Paper';\nimport Typography from '@mui/material/Typography';\n\nimport { varAlpha } from 'theme/styles';\nimport { fData } from 'utils/formatNumber';\n\nimport { fileData } from '../../file-thumbnail';\n\n// ----------------------------------------------------------------------\n\ntype Props = {\n files: FileRejection[];\n};\n\nexport function RejectionFiles({ files }: Props) {\n if (!files.length) {\n return null;\n }\n\n return (\n <Paper\n variant=\"outlined\"\n sx={{\n py: 1,\n px: 2,\n mt: 3,\n textAlign: 'left',\n borderStyle: 'dashed',\n borderColor: 'error.main',\n bgcolor: theme => varAlpha(theme.vars.palette.error.mainChannel, 0.08),\n }}\n >\n {files.map(({ file, errors }) => {\n const { path, size } = fileData(file);\n /* istanbul ignore else */\n const sizeText = size ? fData(size) : '';\n return (\n <Box key={path} sx={{ my: 1 }}>\n <Typography variant=\"subtitle2\" noWrap>\n {path} - {sizeText}{' '}\n </Typography>\n {errors.map(error => (\n <Box\n key={error.code}\n component=\"span\"\n sx={{ typography: 'caption' }}\n >\n - {error.message}\n </Box>\n ))}\n </Box>\n );\n })}\n </Paper>\n );\n}\n","import {\n fileFormat,\n fileNameByUrl,\n fileThumb,\n fileTypeByUrl,\n} from '../FileUpload/FileThumbnail/utils';\n\nimport type { ExtendFile } from './types';\n\nexport { fileFormat, fileNameByUrl, fileThumb, fileTypeByUrl };\n\nexport function fileData(file: File | string) {\n // From url\n if (typeof file === 'string') {\n return {\n key: file,\n preview: file,\n name: fileNameByUrl(file),\n type: fileTypeByUrl(file),\n size: undefined,\n path: file,\n lastModified: undefined,\n lastModifiedDate: undefined,\n };\n }\n\n // From file\n return {\n key: `key:${file.name}`,\n name: file.name,\n size: file.size,\n path: (file as ExtendFile).path,\n type: file.type,\n preview: (file as ExtendFile).preview,\n lastModified: file.lastModified,\n lastModifiedDate: (file as ExtendFile).lastModifiedDate,\n };\n}\n","import Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport IconButton from '@mui/material/IconButton';\nimport Stack from '@mui/material/Stack';\nimport { alpha, styled } from '@mui/material/styles';\nimport { m } from 'framer-motion';\n\nexport const Container = styled(Stack)({\n position: 'relative',\n width: '100%',\n borderRadius: 8,\n overflow: 'hidden',\n\n '&:hover .actions': {\n display: 'flex',\n },\n});\n\nexport const OverlayActions = styled(Stack)(({ theme }) => ({\n display: 'none',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n gap: 12,\n width: '100%',\n height: '100%',\n backgroundColor: alpha(theme.palette.primary.main, 0.9),\n zIndex: 999,\n\n button: {\n '&, &:hover, &:focus': {\n backgroundColor: theme.palette.background.paper,\n },\n },\n}));\n\nexport const AvatarLoading = styled(CircularProgress)(({ theme }) => ({\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: 99,\n backgroundColor: theme.palette.background.paper,\n borderRadius: '50%',\n}));\n\nexport const CloseIconButton = styled(IconButton)(({ theme }) => ({\n position: 'relative',\n zIndex: 999,\n pointerEvents: 'auto',\n bgcolor: alpha(theme.palette.grey[900], 0.72),\n\n '&:hover': {\n backgroundColor: alpha(theme.palette.grey[900], 0.48),\n },\n}));\n\nexport const DragWrapper = styled('div')({\n position: 'relative',\n zIndex: 1,\n userSelect: 'none',\n WebkitUserSelect: 'none',\n WebkitTouchCallout: 'none',\n '&:hover': {\n zIndex: 2,\n },\n});\n\nexport const FrameFileThumbnail = styled(Stack)<{\n width: number;\n isDragging: boolean;\n}>(({ theme, width, isDragging }) => ({\n width,\n height: 80,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n margin: theme.spacing(0.5),\n padding: theme.spacing(2, 1, 2, 1),\n borderRadius: theme.spacing(1.25),\n overflow: 'hidden',\n position: 'relative',\n border: `solid 1px ${theme.palette.divider}`,\n backgroundColor: theme.palette.common.white,\n zIndex: 1,\n transition: 'box-shadow 150ms ease-in-out',\n boxShadow: !isDragging\n ? '0px 0px 0px 0px rgba(0, 0, 0, 0)'\n : `0 0 0 2px ${theme.palette.primary.main}, ${theme.customShadows.z8}, inset 0 0 0 1000px ${alpha(\n theme.palette.primary.main,\n 0.06,\n )}`,\n}));\n\nexport const FrameImageThumbnail = styled(m.div)<{\n width: number;\n isDragging: boolean;\n}>(({ theme, width, isDragging }) => ({\n width,\n height: 60,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n margin: theme.spacing(0.5),\n padding: theme.spacing(2),\n borderRadius: theme.spacing(1.25),\n overflow: 'hidden',\n position: 'relative',\n border: `solid 1px ${theme.palette.divider}`,\n backgroundColor: theme.palette.common.white,\n zIndex: 1,\n transition: 'box-shadow 150ms ease-in-out',\n boxShadow: !isDragging\n ? '0px 0px 0px 0px rgba(0, 0, 0, 0)'\n : `0 0 0 2px ${theme.palette.primary.main}, ${theme.customShadows.z8}, inset 0 0 0 1000px ${alpha(\n theme.palette.primary.main,\n 0.06,\n )}`,\n}));\n\nexport const DeleteItemButton = styled(IconButton)(({ theme }) => ({\n width: 36,\n height: 36,\n position: 'absolute',\n top: 10,\n right: 10,\n borderRadius: 0,\n zIndex: 1,\n opacity: 0,\n transition: 'opacity 50ms ease-in-out',\n color: theme.palette.error.main,\n backgroundColor: alpha(theme.palette.common.white, 0.8),\n '&:hover': {\n backgroundColor: alpha(theme.palette.common.white, 0.8),\n opacity: 1,\n },\n}));\n\nexport const DeleteFileButton = styled(IconButton)(({ theme }) => ({\n width: 24,\n height: 24,\n position: 'absolute',\n top: 18,\n right: 8,\n borderRadius: 12,\n opacity: 1,\n zIndex: 1,\n transition: 'opacity 50ms ease-in-out',\n color: theme.palette.grey[500],\n backgroundColor: theme.palette.common.white,\n '&:hover': {\n backgroundColor: theme.palette.common.white,\n },\n}));\n\nexport const StarButton = styled(IconButton, {\n shouldForwardProp: prop => prop !== 'isMainImage',\n})<{\n isMainImage: boolean;\n}>(({ theme, isMainImage }) => ({\n color: isMainImage\n ? theme.palette.secondary.main\n : theme.palette.action.disabled,\n backgroundColor: theme.palette.common.white,\n ' &:hover': {\n backgroundColor: theme.palette.common.white,\n },\n top: 4,\n left: 8,\n padding: theme.spacing(0.5),\n border: '1px solid',\n borderColor: isMainImage\n ? theme.palette.secondary.main\n : theme.palette.divider,\n}));\n\nexport const DeleteButton = styled(IconButton)(({ theme }) => ({\n top: 16,\n right: 16,\n zIndex: 9,\n position: 'absolute',\n color: alpha(theme.palette.common.white, 0.8),\n bgcolor: alpha(theme.palette.grey[900], 0.72),\n '&:hover': {\n bgcolor: alpha(theme.palette.grey[900], 0.48),\n },\n}));\n\nexport const BoxUpload = styled(Box, {\n shouldForwardProp: prop =>\n prop !== 'isDragActive' && prop !== 'disabled' && prop !== 'hasError',\n})<{\n isDragActive: boolean;\n disabled: boolean;\n hasError: boolean;\n}>(({ theme, isDragActive, disabled, hasError }) => ({\n width: 64,\n height: 64,\n flexShrink: 0,\n display: 'flex',\n borderRadius: 1,\n cursor: 'pointer',\n alignItems: 'center',\n color: theme.palette.text.disabled,\n justifyContent: 'center',\n bgcolor: alpha(theme.palette.grey[500], 0.08),\n border: `dashed 1px ${alpha(theme.palette.grey[500], 0.16)}`,\n ...(isDragActive && { opacity: 0.72 }),\n ...(disabled && { opacity: 0.48, pointerEvents: 'none' }),\n ...(hasError && {\n color: theme.palette.error.main,\n borderColor: theme.palette.error.main,\n bgcolor: alpha(theme.palette.error.main, 0.08),\n }),\n '&:hover': { opacity: 0.72 },\n}));\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { a as a$1 } from './chunk-BNBE2OMA.js';
|
|
2
|
+
import { a } from './chunk-6U5LS7MP.js';
|
|
3
|
+
import { a as a$2 } from './chunk-RBTYTONM.js';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import { GRID_CHECKBOX_SELECTION_COL_DEF, DataGridPremium, GridToolbarContainer, GridToolbarColumnsButton, GridToolbarFilterButton, GridToolbarDensitySelector, GridToolbarExport } from '@mui/x-data-grid-premium';
|
|
6
|
+
import x from '@mui/material/Box';
|
|
7
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
var H=({showToolbar:i,disableExport:r,setFilterButtonEl:l,toolbarContent:n})=>{if(i)return jsxs(GridToolbarContainer,{children:[jsx(GridToolbarColumnsButton,{slotProps:{button:{color:"inherit"}}}),jsx(GridToolbarFilterButton,{ref:l,slotProps:{button:{color:"inherit"}}}),jsx(GridToolbarDensitySelector,{slotProps:{button:{color:"inherit"}}}),!r&&jsx(GridToolbarExport,{slotProps:{button:{color:"inherit"}}}),jsx(x,{sx:{flexGrow:1}}),n]})},m=H;var _=({columns:i,rows:r=[],loading:l,fetching:n,hideFooter:p,sx:u,showToolbar:d,disableExport:b,columnHeaderHeight:f=56,rowHeight:h=76,rowSpacingType:C="margin",getRowSpacing:G=()=>({top:0,bottom:0}),autoHeight:c=!1,toolbarContent:P,slots:g,...T})=>{let[E,S]=useState(null),w=[{...GRID_CHECKBOX_SELECTION_COL_DEF,width:71},...i];return jsxs(Fragment,{children:[n&&jsx(a,{sx:{zIndex:1}}),jsx(DataGridPremium,{columns:w,rows:r,loading:l,autoHeight:c,hideFooter:r.length===0?!0:p,rowHeight:h,columnHeaderHeight:f,getRowSpacing:G,rowSpacingType:C,slots:{toolbar:m,noRowsOverlay:()=>jsx(a$1,{title:"Nenhum registro encontrado"}),noResultsOverlay:()=>jsx(a$1,{title:"Nenhum registro encontrado"}),loadingOverlay:a$2,...g},slotProps:{panel:{anchorEl:E},toolbar:{setFilterButtonEl:S,showQuickFilter:!0,disableExport:b,showToolbar:d,toolbarContent:P}},sx:u,...T})]})},Z=_;
|
|
10
|
+
|
|
11
|
+
export { Z as a };
|
|
12
|
+
//# sourceMappingURL=out.js.map
|
|
13
|
+
//# sourceMappingURL=chunk-7MVZYOHX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DataGrid/index.tsx","../src/components/DataGrid/CustomToolbar/index.tsx"],"names":["useState","DataGridPremium","GRID_CHECKBOX_SELECTION_COL_DEF","Box","GridToolbarColumnsButton","GridToolbarContainer","GridToolbarDensitySelector","GridToolbarExport","GridToolbarFilterButton","jsx","jsxs","CustomToolbar","showToolbar","disableExport","setFilterButtonEl","toolbarContent","CustomToolbar_default","Fragment","DataGrid","columns","rows","loading","fetching","hideFooter","sx","columnHeaderHeight","rowHeight","rowSpacingType","getRowSpacing","autoHeight","slots","other","filterButtonEl","COLUMNS","FixedProgressBar_default","EmptyContent_default","LoadingOverlay_default","DataGrid_default"],"mappings":"mHAAA,OAAS,YAAAA,MAAgB,QACzB,OACE,mBAAAC,EACA,mCAAAC,MAGK,2BCLP,OAAOC,MAAS,oBAChB,OACE,4BAAAC,EACA,wBAAAC,EACA,8BAAAC,EACA,qBAAAC,EACA,2BAAAC,MACK,2BAaH,OACE,OAAAC,EADF,QAAAC,MAAA,oBATJ,IAAMC,EAAgB,CAAC,CACrB,YAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,eAAAC,CACF,IAA6C,CAC3C,GAAKH,EAEL,OACEF,EAACL,EAAA,CACC,UAAAI,EAACL,EAAA,CAAyB,UAAW,CAAE,OAAQ,CAAE,MAAO,SAAU,CAAE,EAAG,EACvEK,EAACD,EAAA,CACC,IAAKM,EACL,UAAW,CAAE,OAAQ,CAAE,MAAO,SAAU,CAAE,EAC5C,EACAL,EAACH,EAAA,CACC,UAAW,CAAE,OAAQ,CAAE,MAAO,SAAU,CAAE,EAC5C,EACC,CAACO,GACAJ,EAACF,EAAA,CAAkB,UAAW,CAAE,OAAQ,CAAE,MAAO,SAAU,CAAE,EAAG,EAElEE,EAACN,EAAA,CAAI,GAAI,CAAE,SAAU,CAAE,EAAG,EACzBY,GACH,CAEJ,EAEOC,EAAQL,EDUX,mBAAAM,EACe,OAAAR,EADf,QAAAC,MAAA,oBAjCJ,IAAMQ,EAAW,CAAC,CAChB,QAAAC,EACA,KAAAC,EAAO,CAAC,EACR,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,GAAAC,EACA,YAAAZ,EACA,cAAAC,EACA,mBAAAY,EAAqB,GACrB,UAAAC,EAAY,GACZ,eAAAC,EAAiB,SACjB,cAAAC,EAAgB,KAAO,CACrB,IAAK,EACL,OAAQ,CACV,GACA,WAAAC,EAAa,GACb,eAAAd,EACA,MAAAe,EACA,GAAGC,CACL,IAAqB,CACnB,GAAM,CAACC,EAAgBlB,CAAiB,EACtCd,EAAmC,IAAI,EAEnCiC,EAAU,CACd,CACE,GAAG/B,EACH,MAAO,EACT,EACA,GAAGiB,CACL,EAEA,OACET,EAAAO,EAAA,CACG,UAAAK,GAAYb,EAACyB,EAAA,CAAiB,GAAI,CAAE,OAAQ,CAAE,EAAG,EAElDzB,EAACR,EAAA,CACC,QAASgC,EACT,KAAMb,EACN,QAASC,EACT,WAAYQ,EACZ,WAAYT,EAAK,SAAW,EAAI,GAAOG,EACvC,UAAWG,EACX,mBAAoBD,EACpB,cAAeG,EACf,eAAgBD,EAChB,MAAO,CACL,QAASX,EACT,cAAe,IACbP,EAAC0B,EAAA,CAAa,MAAM,6BAA6B,EAEnD,iBAAkB,IAChB1B,EAAC0B,EAAA,CAAa,MAAM,6BAA6B,EAEnD,eAAgBC,EAChB,GAAGN,CACL,EACA,UAAW,CACT,MAAO,CAAE,SAAUE,CAAe,EAClC,QAAS,CACP,kBAAAlB,EACA,gBAAiB,GACjB,cAAAD,EACA,YAAAD,EACA,eAAAG,CACF,CACF,EACA,GAAIS,EACH,GAAGO,EACN,GACF,CAEJ,EAEOM,EAAQnB","sourcesContent":["import { useState } from 'react';\nimport {\n DataGridPremium,\n GRID_CHECKBOX_SELECTION_COL_DEF,\n GridSlots,\n GridSlotsComponentsProps,\n} from '@mui/x-data-grid-premium';\n\nimport EmptyContent from 'components/EmptyContent';\nimport { DataGridProps } from 'types/dataGridProps';\n\nimport FixedProgressBar from '../FixedProgressBar';\n\nimport CustomToolbar from './CustomToolbar';\nimport LoadingOverlay from './LoadingOverlay';\n\nconst DataGrid = ({\n columns,\n rows = [],\n loading,\n fetching,\n hideFooter,\n sx,\n showToolbar,\n disableExport,\n columnHeaderHeight = 56,\n rowHeight = 76,\n rowSpacingType = 'margin',\n getRowSpacing = () => ({\n top: 0,\n bottom: 0,\n }),\n autoHeight = false,\n toolbarContent,\n slots,\n ...other\n}: DataGridProps) => {\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n\n const COLUMNS = [\n {\n ...GRID_CHECKBOX_SELECTION_COL_DEF,\n width: 71,\n },\n ...columns,\n ];\n\n return (\n <>\n {fetching && <FixedProgressBar sx={{ zIndex: 1 }} />}\n\n <DataGridPremium\n columns={COLUMNS}\n rows={rows}\n loading={loading}\n autoHeight={autoHeight}\n hideFooter={rows.length === 0 ? true : hideFooter}\n rowHeight={rowHeight}\n columnHeaderHeight={columnHeaderHeight}\n getRowSpacing={getRowSpacing}\n rowSpacingType={rowSpacingType}\n slots={{\n toolbar: CustomToolbar as unknown as GridSlots['toolbar'],\n noRowsOverlay: () => (\n <EmptyContent title=\"Nenhum registro encontrado\" />\n ),\n noResultsOverlay: () => (\n <EmptyContent title=\"Nenhum registro encontrado\" />\n ),\n loadingOverlay: LoadingOverlay,\n ...slots,\n }}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n disableExport,\n showToolbar,\n toolbarContent,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n }}\n sx={sx}\n {...other}\n />\n </>\n );\n};\n\nexport default DataGrid;\n","import { PropsWithChildren } from 'react';\nimport Box from '@mui/material/Box';\nimport {\n GridToolbarColumnsButton,\n GridToolbarContainer,\n GridToolbarDensitySelector,\n GridToolbarExport,\n GridToolbarFilterButton,\n} from '@mui/x-data-grid-premium';\n\nimport { CustomToolbarProps } from './props';\n\nconst CustomToolbar = ({\n showToolbar,\n disableExport,\n setFilterButtonEl,\n toolbarContent,\n}: PropsWithChildren<CustomToolbarProps>) => {\n if (!showToolbar) return;\n\n return (\n <GridToolbarContainer>\n <GridToolbarColumnsButton slotProps={{ button: { color: 'inherit' } }} />\n <GridToolbarFilterButton\n ref={setFilterButtonEl}\n slotProps={{ button: { color: 'inherit' } }}\n />\n <GridToolbarDensitySelector\n slotProps={{ button: { color: 'inherit' } }}\n />\n {!disableExport && (\n <GridToolbarExport slotProps={{ button: { color: 'inherit' } }} />\n )}\n <Box sx={{ flexGrow: 1 }} />\n {toolbarContent}\n </GridToolbarContainer>\n );\n};\n\nexport default CustomToolbar;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a } from './chunk-
|
|
1
|
+
import { a } from './chunk-NQNNMRLC.js';
|
|
2
2
|
import { memo } from 'react';
|
|
3
3
|
import d from '@mui/material/Button';
|
|
4
4
|
import o from '@mui/material/Stack';
|
|
@@ -10,4 +10,4 @@ var R=r=>{switch(r){case"success":return jsx(a,{"data-testid":"icon-SUCCESS",ico
|
|
|
10
10
|
|
|
11
11
|
export { _ as a };
|
|
12
12
|
//# sourceMappingURL=out.js.map
|
|
13
|
-
//# sourceMappingURL=chunk-
|
|
13
|
+
//# sourceMappingURL=chunk-CWCEG2DZ.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a } from './chunk-
|
|
1
|
+
import { a } from './chunk-POTVACYB.js';
|
|
2
2
|
import { a as a$1 } from './chunk-L5URMM57.js';
|
|
3
3
|
import { useCallback, useState, useEffect } from 'react';
|
|
4
4
|
|
|
@@ -6,4 +6,4 @@ var h=typeof window>"u",p=(r,t,o={})=>{let{initializeWithValue:l=!0}=o,S=useCall
|
|
|
6
6
|
|
|
7
7
|
export { I as a };
|
|
8
8
|
//# sourceMappingURL=out.js.map
|
|
9
|
-
//# sourceMappingURL=chunk-
|
|
9
|
+
//# sourceMappingURL=chunk-HWYA3EGC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useLocalStorage.ts"],"names":["useCallback","useEffect","useState","IS_SERVER","useLocalStorage","key","initialValue","options","initializeWithValue","serializer","value","deserializer","defaultValue","parsed","readValue","initialValueToUse","raw","storedValue","setStoredValue","setValue","useEventCallback_default","newValue","removeValue","handleStorageChange","event","useEventListener_default","useLocalStorage_default"],"mappings":"gFACA,OAAS,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAiBjD,IAAMC,EAAY,OAAO,OAAW,IAE9BC,EAAkB,CACtBC,EACAC,EACAC,EAAqC,CAAC,IACW,CACjD,GAAM,CAAE,oBAAAC,EAAsB,EAAK,EAAID,EAEjCE,EAAaT,EACjBU,GACMH,EAAQ,WACHA,EAAQ,WAAWG,CAAK,EAE1B,KAAK,UAAUA,CAAK,EAE7B,CAACH,CAAO,CACV,EAEMI,EAAeX,EACnBU,GAAS,CACP,GAAIH,EAAQ,aACV,OAAOA,EAAQ,aAAaG,CAAK,EAEnC,GAAIA,IAAU,YACZ,OAGF,IAAME,EACJN,aAAwB,SAAWA,EAAa,EAAIA,EAElDO,EACJ,GAAI,CACFA,EAAS,KAAK,MAAMH,CAAK,CAC3B,MAAE,CACA,OAAOE,CACT,CAEA,OAAOC,CACT,EACA,CAACN,EAASD,CAAY,CACxB,EAEMQ,EAAYd,EAAY,IAAS,CACrC,IAAMe,EACJT,aAAwB,SAAWA,EAAa,EAAIA,EAEtD,GAAIH,EACF,OAAOY,EAGT,GAAI,CACF,IAAMC,EAAM,OAAO,aAAa,QAAQX,CAAG,EAC3C,OAAOW,EAAML,EAAaK,CAAG,EAAID,CACnC,MAAE,CACA,OAAOA,CACT,CACF,EAAG,CAACT,EAAcD,EAAKM,CAAY,CAAC,EAE9B,CAACM,EAAaC,CAAc,EAAIhB,EAAS,IACzCM,EACKM,EAAU,EAEZR,aAAwB,SAAWA,EAAa,EAAIA,CAC5D,EAEKa,EAAwCC,EAAiBV,GAAS,CACtE,GAAI,CACF,IAAMW,EAAWX,aAAiB,SAAWA,EAAMI,EAAU,CAAC,EAAIJ,EAClE,OAAO,aAAa,QAAQL,EAAKI,EAAWY,CAAQ,CAAC,EACrDH,EAAeG,CAAQ,EACvB,OAAO,cAAc,IAAI,aAAa,gBAAiB,CAAE,IAAAhB,CAAI,CAAC,CAAC,CACjE,MAAE,CAEF,CACF,CAAC,EAEKiB,EAAcF,EAAiB,IAAM,CACzC,IAAMR,EACJN,aAAwB,SAAWA,EAAa,EAAIA,EACtD,OAAO,aAAa,WAAWD,CAAG,EAClCa,EAAeN,CAAY,EAC3B,OAAO,cAAc,IAAI,aAAa,gBAAiB,CAAE,IAAAP,CAAI,CAAC,CAAC,CACjE,CAAC,EAEDJ,EAAU,IAAM,CACdiB,EAAeJ,EAAU,CAAC,CAE5B,EAAG,CAACT,CAAG,CAAC,EAER,IAAMkB,EAAsBvB,EACzBwB,GAAsC,CAChCA,EAAuB,KAAQA,EAAuB,MAAQnB,GAGnEa,EAAeJ,EAAU,CAAC,CAC5B,EACA,CAACT,EAAKS,CAAS,CACjB,EAEA,OAAAW,EAAiB,UAAWF,CAAmB,EAC/CE,EAAiB,gBAAiBF,CAAmB,EAE9C,CAACN,EAAaE,EAAUG,CAAW,CAC5C,EAEOI,EAAQtB","sourcesContent":["import type { Dispatch, SetStateAction } from 'react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport useEventCallback from './useEventCallback';\nimport useEventListener from './useEventListener';\n\ndeclare global {\n interface WindowEventMap {\n 'local-storage': CustomEvent;\n }\n}\n\ntype UseLocalStorageOptions<T> = {\n serializer?: (value: T) => string;\n deserializer?: (value: string) => T;\n initializeWithValue?: boolean;\n};\n\nconst IS_SERVER = typeof window === 'undefined';\n\nconst useLocalStorage = <T>(\n key: string,\n initialValue: T | (() => T),\n options: UseLocalStorageOptions<T> = {},\n): [T, Dispatch<SetStateAction<T>>, () => void] => {\n const { initializeWithValue = true } = options;\n\n const serializer = useCallback<(value: T) => string>(\n value => {\n if (options.serializer) {\n return options.serializer(value);\n }\n return JSON.stringify(value);\n },\n [options],\n );\n\n const deserializer = useCallback<(value: string) => T>(\n value => {\n if (options.deserializer) {\n return options.deserializer(value);\n }\n if (value === 'undefined') {\n return undefined as unknown as T;\n }\n\n const defaultValue =\n initialValue instanceof Function ? initialValue() : initialValue;\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(value);\n } catch (error) {\n return defaultValue;\n }\n\n return parsed as T;\n },\n [options, initialValue],\n );\n\n const readValue = useCallback((): T => {\n const initialValueToUse =\n initialValue instanceof Function ? initialValue() : initialValue;\n\n if (IS_SERVER) {\n return initialValueToUse;\n }\n\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? deserializer(raw) : initialValueToUse;\n } catch (error) {\n return initialValueToUse;\n }\n }, [initialValue, key, deserializer]);\n\n const [storedValue, setStoredValue] = useState(() => {\n if (initializeWithValue) {\n return readValue();\n }\n return initialValue instanceof Function ? initialValue() : initialValue;\n });\n\n const setValue: Dispatch<SetStateAction<T>> = useEventCallback(value => {\n try {\n const newValue = value instanceof Function ? value(readValue()) : value;\n window.localStorage.setItem(key, serializer(newValue));\n setStoredValue(newValue);\n window.dispatchEvent(new StorageEvent('local-storage', { key }));\n } catch {\n /* empty */\n }\n });\n\n const removeValue = useEventCallback(() => {\n const defaultValue =\n initialValue instanceof Function ? initialValue() : initialValue;\n window.localStorage.removeItem(key);\n setStoredValue(defaultValue);\n window.dispatchEvent(new StorageEvent('local-storage', { key }));\n });\n\n useEffect(() => {\n setStoredValue(readValue());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n\n const handleStorageChange = useCallback(\n (event: StorageEvent | CustomEvent) => {\n if ((event as StorageEvent).key && (event as StorageEvent).key !== key) {\n return;\n }\n setStoredValue(readValue());\n },\n [key, readValue],\n );\n\n useEventListener('storage', handleStorageChange);\n useEventListener('local-storage', handleStorageChange);\n\n return [storedValue, setValue, removeValue];\n};\n\nexport default useLocalStorage;\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { a, e as e$1, n, l, b, c, f, g, j as j$1, k as k$1, h, i } from './chunk-6WGKIN5L.js';
|
|
2
|
+
import { a as a$6 } from './chunk-KR3DUHA6.js';
|
|
3
|
+
import { a as a$2 } from './chunk-DTIGB5NW.js';
|
|
4
|
+
import { a as a$7, b as b$1 } from './chunk-WQSRNCNF.js';
|
|
5
|
+
import { e } from './chunk-OF6623HG.js';
|
|
6
|
+
import { a as a$8 } from './chunk-N4DW7EIC.js';
|
|
7
|
+
import { x } from './chunk-33C6UWPV.js';
|
|
8
|
+
import { a as a$5 } from './chunk-6U5LS7MP.js';
|
|
9
|
+
import { a as a$1 } from './chunk-NQNNMRLC.js';
|
|
10
|
+
import { a as a$3 } from './chunk-SBMEL2IJ.js';
|
|
11
|
+
import { j } from './chunk-VITOOMKK.js';
|
|
12
|
+
import { a as a$4 } from './chunk-IAOMC4C4.js';
|
|
13
|
+
import { k, q } from './chunk-GLRLKFPS.js';
|
|
14
|
+
import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, closestCenter } from '@dnd-kit/core';
|
|
15
|
+
import { restrictToHorizontalAxis, restrictToParentElement, restrictToWindowEdges } from '@dnd-kit/modifiers';
|
|
16
|
+
import { sortableKeyboardCoordinates, SortableContext, horizontalListSortingStrategy, useSortable } from '@dnd-kit/sortable';
|
|
17
|
+
import { AnimatePresence, m } from 'framer-motion';
|
|
18
|
+
import Ho from '@mui/material/ButtonBase';
|
|
19
|
+
import Go from '@mui/material/IconButton';
|
|
20
|
+
import { styled, alpha, useTheme } from '@mui/material/styles';
|
|
21
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
22
|
+
import No from '@mui/material/Box';
|
|
23
|
+
import G from '@mui/material/Stack';
|
|
24
|
+
import Qo from '@mui/material/Tooltip';
|
|
25
|
+
import ro from '@mui/material/Typography';
|
|
26
|
+
import Yo from '@mui/material/Badge';
|
|
27
|
+
import { useDropzone } from 'react-dropzone';
|
|
28
|
+
import Wo from '@mui/material/Button';
|
|
29
|
+
import Re from '@mui/material/FormHelperText';
|
|
30
|
+
import { memo } from 'react';
|
|
31
|
+
import we from '@mui/material/Dialog';
|
|
32
|
+
|
|
33
|
+
function _o({sx:o,...e}){let r=useTheme();return jsx(Ho,{sx:{p:0,top:0,right:0,width:1,height:1,zIndex:9,opacity:0,position:"absolute",color:"common.white",borderRadius:"inherit",transition:r.transitions.create(["opacity"]),"&:hover":{...q({color:k(r.vars.palette.grey["900Channel"],.64)}),opacity:1},...o},...e,children:jsx(a$1,{icon:"ARROW_DOWN_CICLE",width:24})})}function wo({sx:o,...e}){return jsx(Go,{size:"small",sx:{p:.35,top:4,right:4,position:"absolute",color:"common.white",bgcolor:r=>k(r.vars.palette.grey["900Channel"],.48),"&:hover":{bgcolor:r=>k(r.vars.palette.grey["900Channel"],.72)},...o},...e,children:jsx(a$1,{icon:"CLOSE_MARK_BUTTON",width:12})})}var A={root:"mnl__file__thumbnail__root",img:"mnl__file__thumbnail__img",icon:"mnl__file__thumbnail__icon",removeBtn:"mnl__file__thumbnail__remove__button",downloadBtn:"mnl__file__thumbnail__download__button"};process.env.NODE_ENV==="development"&&console.warn(`\u26A0\uFE0F DEPRECATED: FileThumbnail (components/file-thumbnail) est\xE1 obsoleto. Use FileThumbnail do @zydon/common em seu lugar.
|
|
34
|
+
Migra\xE7\xE3o: import { FileThumbnail } from "@zydon/common/components/FileUpload";
|
|
35
|
+
O novo FileThumbnail oferece melhor integra\xE7\xE3o com o sistema de FileUpload e mais funcionalidades.`);function F({sx:o,file:e,tooltip:r,onRemove:i,imageView:l,slotProps:t,onDownload:m,...p}){let u=typeof e=="string"?e:URL.createObjectURL(e),{name:d,path:a$2}=a(e),n=a$7(a$2||u),g=jsx(No,{component:"img",src:u,className:A.img,sx:{width:1,height:1,objectFit:"cover",borderRadius:"inherit",...t?.img}}),h=jsx(a$1,{icon:b$1(n),sx:{width:32,height:32,flexShrink:0,...o}}),f=jsxs(G,{component:"span",className:A.root,sx:{width:36,height:36,flexShrink:0,borderRadius:1.25,alignItems:"center",position:"relative",display:"inline-flex",justifyContent:"center",...o},...p,children:[n==="image"&&l?g:h,i&&jsx(wo,{onClick:i,className:A.removeBtn,sx:t?.removeBtn}),m&&jsx(_o,{onClick:m,className:A.downloadBtn,sx:t?.downloadBtn})]});return r?jsx(Qo,{arrow:!0,title:d,slotProps:{popper:{modifiers:[{name:"offset",options:{offset:[0,-12]}}]}},children:f}):f}var oe=({onRemove:o,onHandleMainImage:e,key:r,sx:i$1,file:l,disableDrag:t,attributes:m,listeners:p,mainUrl:u,innerWidth:d,isDragging:a})=>{let n=l===u;return jsx(Yo,{anchorOrigin:{vertical:"top",horizontal:"left"},badgeContent:e&&jsx(k$1,{isMainImage:n,size:"small",onClick:()=>e(l),"aria-label":n?"Remover imagem principal":"Definir como imagem principal",children:jsx(a$1,{icon:n?"STAR_02":"STAR",width:12})}),children:jsxs(h,{width:d,isDragging:a,"data-testid":`preview-multi-img-${r}`,...j().inUp,sx:i$1,children:[jsx(a$8,{disableDrag:t,...m,...p}),jsx(F,{imageView:!0,file:l,sx:{position:"absolute",right:10,top:10}}),o&&jsx(i,{size:"small","aria-label":"Remover imagem",onClick:()=>o(l),children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02",width:16})})]})},`badge-${r}`)},Fo=oe;var ie=({file:o,thumbnail:e$1,onRemove:r,onHandleMainImage:i,mainUrl:l,sx:t,disableDrag:m=!1})=>{let{key:p,name:u="",size:d=0}=a(o),a$2=typeof o=="string",n=m?60:80,{attributes:g$1,listeners:h,setNodeRef:f$1,transform:b,transition:v,isDragging:E}=useSortable({id:p,disabled:m}),S={transform:x.Transform.toString(b),transition:v,display:"inline-block",alignItems:"center",justifyContent:"center",width:`${n+8}px`,height:"68px"};return e$1?jsx(f,{ref:f$1,style:S,children:jsx(Fo,{innerWidth:n,isDragging:E,sx:t,file:o,disableDrag:m,attributes:g$1,listeners:h,mainUrl:l,onRemove:r,onHandleMainImage:i},p)}):jsx(f,{ref:f$1,style:{...S,height:"80px",width:`${n+38}px`},children:jsxs(g,{width:n+30,isDragging:E,"data-testid":`preview-multi-img-${p}`,...j().inUp,sx:t,children:[jsx(a$8,{disableDrag:m,...g$1,...h}),jsx(F,{file:o}),jsxs(G,{flexGrow:1,sx:{minWidth:0,width:"100%"},children:[jsx(ro,{variant:"subtitle2",noWrap:!0,children:a$2?o:u}),jsx(ro,{variant:"caption",sx:{color:"text.secondary"},children:a$2?"":e(d)})]}),r&&jsx(j$1,{size:"small","aria-label":"Remover arquivo",onClick:()=>r(o),children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02",width:16})})]})})},Ao=ie;var eo=({thumbnail:o,files:e,onRemove:r,onReorder:i,onHandleMainImage:l,mainUrl:t,sx:m})=>{let p=useSensors(useSensor(PointerSensor,{activationConstraint:{distance:8}}),useSensor(KeyboardSensor,{coordinateGetter:sortableKeyboardCoordinates}));if(!e?.length)return null;let u=a$1=>{let{active:n,over:g}=a$1;if(!(!n||!g||n.id===g.id)&&i){let h=e.findIndex(b=>{let{key:v}=a(b);return v===n.id}),f=e.findIndex(b=>{let{key:v}=a(b);return v===g.id});h!==-1&&f!==-1&&i(h,f);}},d=jsx(AnimatePresence,{initial:!1,children:e.map(a$1=>jsx(Ao,{file:a$1,thumbnail:o,onRemove:r,onHandleMainImage:l,mainUrl:t,sx:m,disableDrag:!i},a(a$1).key))});return i?jsx(DndContext,{sensors:p,collisionDetection:closestCenter,onDragEnd:u,modifiers:[restrictToHorizontalAxis,restrictToParentElement,restrictToWindowEdges],children:jsx(SortableContext,{items:e.map(a$1=>a(a$1).key),strategy:horizontalListSortingStrategy,children:d})}):d};function Oo({file:o}){let e=typeof o=="string"?o:o.name,r=typeof o=="string"?o:URL.createObjectURL(o);return jsx(No,{sx:{p:1,top:0,left:0,width:1,height:1,position:"absolute"},children:jsx(No,{component:"img",alt:e,src:r,sx:{width:1,height:1,borderRadius:1,objectFit:"cover"}})})}function wr({sx:o,...e}){return jsx(Go,{size:"small",sx:{top:16,right:16,zIndex:9,position:"absolute",color:r=>k(r.vars.palette.common.whiteChannel,.8),bgcolor:r=>k(r.vars.palette.grey["900Channel"],.72),"&:hover":{bgcolor:r=>k(r.vars.palette.grey["900Channel"],.48)},...o},...e,"aria-label":"Remover arquivo",children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02",width:18})})}var xe=({header:o,description:e,sx:r,...i})=>jsxs(G,{spacing:5,alignItems:"center",justifyContent:"center",direction:{xs:"column",md:"row"},sx:{width:1,textAlign:{xs:"center",md:"left"},...r},...i,children:[jsx(a$2,{sx:{width:220}}),jsxs("div",{children:[jsx(ro,{gutterBottom:!0,variant:"h5",children:o||"Soltar ou selecionar arquivos"}),jsx(ro,{variant:"body2",sx:{color:"text.secondary"},children:e||jsxs(Fragment,{children:["Solte os arquivos aqui ou clique",jsx(ro,{variant:"body2",component:"span",sx:{mx:.5,color:"primary.main",textDecoration:"underline"},children:"procurar"}),"na sua m\xE1quina"]})})]})]}),io=memo(xe);var Mo=styled(No,{shouldForwardProp:o=>!["isDragActive","isError","disabled"].includes(o)})(({theme:o,isDragActive:e,isError:r,disabled:i})=>({outline:"none",cursor:"pointer",overflow:"hidden",position:"relative",padding:o.spacing(5),borderRadius:o.shape.borderRadius,transition:o.transitions.create("padding"),backgroundColor:o.palette.background.neutral,border:`1px dashed ${alpha(o.palette.grey[500],.32)}`,...e&&{opacity:.72},...r&&{color:o.palette.error.main,backgroundColor:o.palette.error.lighter,borderColor:o.palette.error.light},...i&&{opacity:.48,pointerEvents:"none"},"&:hover":{opacity:.72}}));var Ee=({sx:o,id:e,tabIndex:r,uploading:i,getRootProps:l,getInputProps:t,isDragActive:m,isError:p,disabled:u,dropZoneSxProps:d,dropZoneContent:a,children:n,...g})=>jsxs(b,{children:[i&&jsx(a$5,{"data-testid":"uploading-progress-bar"}),jsxs(No,{sx:{width:1,position:"relative",...o},children:[jsxs(Mo,{...l(),"data-testid":"drop-zone-styled-area",isError:p,isDragActive:m,disabled:!!u,sx:d,...g,children:[jsx("input",{...t(),id:e,tabIndex:r}),a]}),n]})]}),ao=Ee;process.env.NODE_ENV==="development"&&console.warn(`\u26A0\uFE0F DEPRECATED: Upload est\xE1 obsoleto. Use FileUpload do @zydon/common em seu lugar.
|
|
36
|
+
Migra\xE7\xE3o: import { SingleFileUpload, MultipleFileUpload } from "@zydon/common/components/FileUpload";
|
|
37
|
+
O FileUpload oferece melhor gerenciamento de upload, integra\xE7\xE3o com APIs e hooks especializados.`);var _e=({id:o,disabled:e$2,multiple:r=!1,error:i,helperText:l$1,file:t,onDelete:m$1,files:p,thumbnail:u,onRemove:d,onHandleMainImage:a,mainUrl:n$1,sx:g,dropZoneProps:h,placeholderProps:f,placeholderAlt:b,uploading:v,image:E,tabIndex:S,preview:j$1="image",onRemoveAll:N,onUpload:T,onReorder:O,...J})=>{let{getRootProps:M,getInputProps:B,isDragActive:P,isDragReject:U,fileRejections:mo}=useDropzone({multiple:r,disabled:e$2,...J}),Q=!!t&&!r,X=Q||E,lo=p&&r&&p.length>0,po=typeof t=="string",co=U||!!i;if(j$1==="file")return jsxs(ao,{id:o,uploading:v,disabled:e$2,dropZoneSxProps:h,tabIndex:S,getRootProps:M,getInputProps:B,isDragActive:P,isError:co,dropZoneContent:jsxs(Fragment,{children:[!Q&&jsx(io,{}),Q&&jsxs(G,{component:m.div,...j().inUp,spacing:2,direction:"row",alignItems:"center",sx:{my:1,px:1,py:.75,borderRadius:.75,border:k=>`solid 1px ${k.palette.divider}`,...g},children:[jsx(F,{file:t}),jsxs(G,{flexGrow:1,sx:{minWidth:0},children:[jsx(ro,{variant:"subtitle2",noWrap:!0,children:po?t:t.name}),jsx(ro,{variant:"caption",sx:{color:"text.secondary"},children:po?"":e(t.size)})]}),m$1&&jsx(e$1,{edge:"end",size:"small",disabled:e$2,"aria-label":"Remover arquivo",onClick:k=>{k.stopPropagation(),m$1();},children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02",width:16})})]})]}),children:[l$1&&l$1,jsx(n,{files:mo}),lo&&jsxs(Fragment,{children:[jsx(No,{sx:{my:3},children:jsx(eo,{files:p,thumbnail:u,onRemove:d,onHandleMainImage:a,mainUrl:n$1,onReorder:O})}),jsxs(G,{direction:"row",justifyContent:"flex-end",spacing:1.5,children:[N&&jsx(Wo,{color:"inherit",variant:"outlined",size:"small",onClick:N,children:"Remover todos"}),T&&jsx(Wo,{size:"small",variant:"contained",onClick:T,children:"Enviar arquivos"})]})]})]});let go=X?{opacity:0}:void 0;return jsxs(ao,{id:o,uploading:v,disabled:e$2,dropZoneSxProps:h,tabIndex:S,getRootProps:M,getInputProps:B,isDragActive:P,isError:co,dropZoneContent:jsxs(Fragment,{children:[b?jsx(G,{sx:go,children:b}):jsx(io,{sx:go,header:f?.title,description:f?.description}),X&&jsx(Oo,{file:t||E||""})]}),children:[l$1&&jsx(Re,{error:!!i,sx:k=>({mx:"14px",color:e$2?k.palette.grey[500]:void 0}),children:l$1}),jsx(n,{files:mo}),X&&m$1&&jsx(l,{size:"small",onClick:m$1,disabled:e$2,"aria-label":"Remover arquivo",children:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02",width:16})}),lo&&jsx(Fragment,{children:jsx(No,{sx:{my:3,ml:.5},children:jsx(eo,{files:p,thumbnail:u,onRemove:d,onHandleMainImage:a,mainUrl:n$1,onReorder:O})})})]})},Ko=_e;process.env.NODE_ENV==="development"&&console.warn(`\u26A0\uFE0F DEPRECATED: UploadWithCrop est\xE1 obsoleto. Use SingleImageUpload do @zydon/common em seu lugar.
|
|
38
|
+
Migra\xE7\xE3o: import { SingleImageUpload } from "@zydon/common/components/FileUpload";
|
|
39
|
+
O SingleImageUpload oferece crop integrado, melhor gerenciamento de upload e integra\xE7\xE3o com APIs.`);var Fe=({onFileCropped:o,onImageUploaded:e$1,onCancel:r,aspect:i,label:l,image:t="",uploading:m,file:p,tabIndex:u,maxSize:d,onDropRejected:a,...n})=>{let{id:g,setCropModalOpen:h,handleRemove:f,toggleCropModalOpen:b$1,cropModalOpen:v,cancelChanges:E,saveChanges:S,previewImage:j,setCropper:N,preview:T,closePreviewImage:O,saving:J}=a$3({onFileCropped:o,onImageUploaded:e$1,onCancel:r}),{error:M}=a$4();return jsxs(Fragment,{children:[jsxs(b,{children:[m&&jsx(a$5,{}),jsx(Ko,{...n,maxSize:d,id:g,file:p,onDrop:B=>{if(B.length>0){h(!0);let P=new FileReader;P.addEventListener("load",()=>{let U=P.result?.toString()||"";e$1(U),o(void 0);}),P.readAsDataURL(B[0]);}},image:t,tabIndex:u,onDropRejected:(B,P)=>{let U=B[0]?.errors[0]?.code;e$1(void 0),o(void 0),M(U==="file-too-large"?`Imagem n\xE3o pode ser maior que ${e(d)}`:"Erro ao enviar imagem"),a&&a(B,P);}}),(p||t)&&jsxs(c,{className:"actions",children:[jsx(Wo,{color:"inherit",startIcon:jsx(a$1,{icon:"DELETE_MARK_BUTTON_02",color:"error.main"}),onClick:f,children:"Remover"}),jsx(Wo,{color:"inherit",startIcon:jsx(a$1,{icon:"SEARCH_IMAGE",color:"primary.maon"}),onClick:b$1,children:"Editar"})]})]}),jsx(a$6,{id:g,open:v,onClose:E,label:l,aspectRatio:i,imageSrc:t,onRemove:f,onSave:S,onPreview:j,onInitialized:N,loading:J}),jsx(we,{open:!!T,onClose:O,scroll:"body",PaperProps:{sx:{p:2}},children:T&&jsx("img",{src:T,alt:"Preview"})})]})},St=Fe;
|
|
40
|
+
|
|
41
|
+
export { eo as a, Oo as b, wr as c, Ko as d, St as e };
|
|
42
|
+
//# sourceMappingURL=out.js.map
|
|
43
|
+
//# sourceMappingURL=chunk-IEGF6HVV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/upload/components/preview-multi-file.tsx","../src/components/file-thumbnail/action-buttons.tsx","../src/components/file-thumbnail/file-thumbnail.tsx","../src/components/file-thumbnail/classes.ts","../src/components/upload/components/SortableItem.tsx","../src/components/upload/components/ThumbnailBadge.tsx","../src/components/upload/components/preview-single-file.tsx","../src/components/upload/Upload.tsx","../src/components/upload/components/DropZonePlaceholder.tsx","../src/components/upload/CustomDropZone.tsx","../src/components/upload/CustomDropZone.styles.ts","../src/components/upload/upload-with-crop.tsx"],"names":["closestCenter","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToHorizontalAxis","restrictToParentElement","restrictToWindowEdges","horizontalListSortingStrategy","SortableContext","sortableKeyboardCoordinates","AnimatePresence","ButtonBase","IconButton","useTheme","jsx","DownloadButton","sx","other","theme","bgBlur","varAlpha","Icon_default","RemoveButton","Box","Stack","Tooltip","fileThumbnailClasses","jsxs","FileThumbnail","file","tooltip","onRemove","imageView","slotProps","onDownload","previewUrl","name","path","fileData","format","fileFormat","renderImg","renderIcon","fileThumb","renderContent","useSortable","Typography","Badge","ThumbnailBadge","onHandleMainImage","key","disableDrag","attributes","listeners","mainUrl","innerWidth","isDragging","isMainImage","StarButton","FrameImageThumbnail","varFade","DragButton_default","DeleteItemButton","ThumbnailBadge_default","SortableFile","thumbnail","size","isNotFormatFile","setNodeRef","transform","transition","style","CSS","DragWrapper","FrameFileThumbnail","fData","DeleteFileButton","SortableItem_default","MultiFilePreview","files","onReorder","sensors","handleDragEnd","event","active","over","oldIndex","newIndex","sortableFile","SingleFilePreview","fileName","DeleteButton","useDropzone","Button","FormHelperText","m","memo","Fragment","DropZonePlaceholder","header","description","UploadIllustration_default","DropZonePlaceholder_default","alpha","styled","StyledDropZone","prop","isDragActive","isError","disabled","CustomDropZone","id","tabIndex","uploading","getRootProps","getInputProps","dropZoneSxProps","dropZoneContent","children","props","Container","FixedProgressBar_default","CustomDropZone_default","Upload","multiple","error","helperText","onDelete","dropZoneProps","placeholderProps","placeholderAlt","image","preview","onRemoveAll","onUpload","isDragReject","fileRejections","hasFile","hasFileOrImage","hasFiles","CloseIconButton","e","RejectionFiles","hidePlaceholder","Upload_default","Dialog","UploadWithCrop","onFileCropped","onImageUploaded","onCancel","aspect","label","maxSize","onDropRejected","setCropModalOpen","handleRemove","toggleCropModalOpen","cropModalOpen","cancelChanges","saveChanges","previewImage","setCropper","closePreviewImage","saving","useUploadImage_default","useSnackbar_default","acceptedFiles","reader","src","errorCode","OverlayActions","ImageCropModal_default","upload_with_crop_default"],"mappings":"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","sourcesContent":["import {\n closestCenter,\n DndContext,\n DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n restrictToHorizontalAxis,\n restrictToParentElement,\n restrictToWindowEdges,\n} from '@dnd-kit/modifiers';\nimport {\n horizontalListSortingStrategy,\n SortableContext,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { AnimatePresence } from 'framer-motion';\n\nimport { fileData } from 'components/file-thumbnail';\nimport { UploadProps } from 'types/upload';\n\nimport SortableFile from './SortableItem';\n\nexport const MultiFilePreview = ({\n thumbnail,\n files,\n onRemove,\n onReorder,\n onHandleMainImage,\n mainUrl,\n sx,\n}: UploadProps) => {\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 8,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n if (!files?.length) {\n return null;\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (!active || !over || active.id === over.id) return;\n\n if (onReorder) {\n const oldIndex = files.findIndex(file => {\n const { key } = fileData(file);\n return key === active.id;\n });\n\n const newIndex = files.findIndex(file => {\n const { key } = fileData(file);\n return key === over.id;\n });\n\n if (oldIndex !== -1 && newIndex !== -1) {\n onReorder(oldIndex, newIndex);\n }\n }\n };\n\n const sortableFile = (\n <AnimatePresence initial={false}>\n {files.map(file => (\n <SortableFile\n key={fileData(file).key}\n file={file}\n thumbnail={thumbnail}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n mainUrl={mainUrl}\n sx={sx}\n disableDrag={!onReorder}\n />\n ))}\n </AnimatePresence>\n );\n\n if (!onReorder) {\n return sortableFile;\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n modifiers={[\n restrictToHorizontalAxis,\n restrictToParentElement,\n restrictToWindowEdges,\n ]}\n >\n <SortableContext\n items={files.map(file => fileData(file).key)}\n strategy={horizontalListSortingStrategy}\n >\n {sortableFile}\n </SortableContext>\n </DndContext>\n );\n};\n","/* eslint-disable react/function-component-definition */\n// eslint-disable-next-line simple-import-sort/imports\nimport type { ButtonBaseProps } from '@mui/material/ButtonBase';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport type { IconButtonProps } from '@mui/material/IconButton';\nimport IconButton from '@mui/material/IconButton';\nimport { useTheme } from '@mui/material/styles';\nimport Icon from 'components/Icon';\n\nimport { bgBlur, varAlpha } from 'theme/styles';\n\nexport function DownloadButton({ sx, ...other }: ButtonBaseProps) {\n const theme = useTheme();\n\n return (\n <ButtonBase\n sx={{\n p: 0,\n top: 0,\n right: 0,\n width: 1,\n height: 1,\n zIndex: 9,\n opacity: 0,\n position: 'absolute',\n color: 'common.white',\n borderRadius: 'inherit',\n transition: theme.transitions.create(['opacity']),\n '&:hover': {\n ...bgBlur({\n color: varAlpha(theme.vars.palette.grey['900Channel'], 0.64),\n }),\n opacity: 1,\n },\n ...sx,\n }}\n {...other}\n >\n <Icon icon=\"ARROW_DOWN_CICLE\" width={24} />\n </ButtonBase>\n );\n}\n\nexport function RemoveButton({ sx, ...other }: IconButtonProps) {\n return (\n <IconButton\n size=\"small\"\n sx={{\n p: 0.35,\n top: 4,\n right: 4,\n position: 'absolute',\n color: 'common.white',\n bgcolor: theme => varAlpha(theme.vars.palette.grey['900Channel'], 0.48),\n '&:hover': {\n bgcolor: theme =>\n varAlpha(theme.vars.palette.grey['900Channel'], 0.72),\n },\n ...sx,\n }}\n {...other}\n >\n <Icon icon=\"CLOSE_MARK_BUTTON\" width={12} />\n </IconButton>\n );\n}\n","/* eslint-disable react/function-component-definition */\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport Icon from 'components/Icon';\nimport { Icon as IconEnum } from 'types/icon';\n\nimport { DownloadButton, RemoveButton } from './action-buttons';\nimport { fileThumbnailClasses } from './classes';\nimport type { FileThumbnailProps } from './types';\nimport { fileData, fileFormat, fileThumb } from './utils';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: FileThumbnail (components/file-thumbnail) está obsoleto. Use FileThumbnail do @zydon/common em seu lugar.\\n' +\n 'Migração: import { FileThumbnail } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O novo FileThumbnail oferece melhor integração com o sistema de FileUpload e mais funcionalidades.',\n );\n}\n\nexport function FileThumbnail({\n sx,\n file,\n tooltip,\n onRemove,\n imageView,\n slotProps,\n onDownload,\n ...other\n}: FileThumbnailProps) {\n const previewUrl =\n typeof file === 'string' ? file : URL.createObjectURL(file);\n\n const { name, path } = fileData(file);\n\n const format = fileFormat(path || previewUrl);\n\n const renderImg = (\n <Box\n component=\"img\"\n src={previewUrl}\n className={fileThumbnailClasses.img}\n sx={{\n width: 1,\n height: 1,\n objectFit: 'cover',\n borderRadius: 'inherit',\n ...slotProps?.img,\n }}\n />\n );\n\n const renderIcon = (\n <Icon\n icon={fileThumb(format) as keyof typeof IconEnum}\n sx={{\n width: 32,\n height: 32,\n flexShrink: 0,\n ...sx,\n }}\n />\n );\n\n const renderContent = (\n <Stack\n component=\"span\"\n className={fileThumbnailClasses.root}\n sx={{\n width: 36,\n height: 36,\n flexShrink: 0,\n borderRadius: 1.25,\n alignItems: 'center',\n position: 'relative',\n display: 'inline-flex',\n justifyContent: 'center',\n ...sx,\n }}\n {...other}\n >\n {format === 'image' && imageView ? renderImg : renderIcon}\n\n {onRemove && (\n <RemoveButton\n onClick={onRemove}\n className={fileThumbnailClasses.removeBtn}\n sx={slotProps?.removeBtn}\n />\n )}\n\n {onDownload && (\n <DownloadButton\n onClick={onDownload}\n className={fileThumbnailClasses.downloadBtn}\n sx={slotProps?.downloadBtn}\n />\n )}\n </Stack>\n );\n\n if (tooltip) {\n return (\n <Tooltip\n arrow\n title={name}\n slotProps={{\n popper: {\n modifiers: [{ name: 'offset', options: { offset: [0, -12] } }],\n },\n }}\n >\n {renderContent}\n </Tooltip>\n );\n }\n\n return renderContent;\n}\n","export const fileThumbnailClasses = {\n root: 'mnl__file__thumbnail__root',\n img: 'mnl__file__thumbnail__img',\n icon: 'mnl__file__thumbnail__icon',\n removeBtn: 'mnl__file__thumbnail__remove__button',\n downloadBtn: 'mnl__file__thumbnail__download__button',\n};\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { varFade } from 'components/animate';\nimport DragButton from 'components/DragButton';\nimport { fileData, FileThumbnail } from 'components/file-thumbnail';\nimport Icon from 'components/Icon';\nimport { UploadProps } from 'types/upload';\nimport { fData } from 'utils/formatNumber';\n\nimport { DeleteFileButton, DragWrapper, FrameFileThumbnail } from '../styles';\n\nimport ThumbnailBadge from './ThumbnailBadge';\n\nconst SortableFile = ({\n file,\n thumbnail,\n onRemove,\n onHandleMainImage,\n mainUrl,\n sx,\n disableDrag = false,\n}: UploadProps & { file: string | File; disableDrag?: boolean }) => {\n const { key, name = '', size = 0 } = fileData(file);\n const isNotFormatFile = typeof file === 'string';\n const innerWidth = disableDrag ? 60 : 80;\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: key, disabled: disableDrag });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n display: 'inline-block',\n alignItems: 'center',\n justifyContent: 'center',\n width: `${innerWidth + 8}px`,\n height: '68px',\n };\n\n if (thumbnail) {\n return (\n <DragWrapper ref={setNodeRef} style={style}>\n <ThumbnailBadge\n innerWidth={innerWidth}\n isDragging={isDragging}\n sx={sx}\n key={key}\n file={file}\n disableDrag={disableDrag}\n attributes={attributes}\n listeners={listeners}\n mainUrl={mainUrl}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n />\n </DragWrapper>\n );\n }\n\n return (\n <DragWrapper\n ref={setNodeRef}\n style={{\n ...style,\n height: '80px',\n width: `${innerWidth + 38}px`,\n }}\n >\n <FrameFileThumbnail\n width={innerWidth + 30}\n isDragging={isDragging}\n data-testid={`preview-multi-img-${key}`}\n {...varFade().inUp}\n sx={sx}\n >\n <DragButton disableDrag={disableDrag} {...attributes} {...listeners} />\n\n <FileThumbnail file={file} />\n\n <Stack flexGrow={1} sx={{ minWidth: 0, width: '100%' }}>\n <Typography variant=\"subtitle2\" noWrap>\n {isNotFormatFile ? file : name}\n </Typography>\n\n <Typography variant=\"caption\" sx={{ color: 'text.secondary' }}>\n {isNotFormatFile ? '' : fData(size)}\n </Typography>\n </Stack>\n\n {onRemove && (\n <DeleteFileButton\n size=\"small\"\n aria-label=\"Remover arquivo\"\n onClick={() => onRemove(file)}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteFileButton>\n )}\n </FrameFileThumbnail>\n </DragWrapper>\n );\n};\n\nexport default SortableFile;\n","import {\n DraggableAttributes,\n DraggableSyntheticListeners,\n} from '@dnd-kit/core';\nimport Badge from '@mui/material/Badge';\n\nimport { varFade } from 'components/animate';\nimport DragButton from 'components/DragButton';\nimport { FileThumbnail } from 'components/file-thumbnail';\nimport Icon from 'components/Icon';\nimport { UploadProps } from 'types/upload';\n\nimport { DeleteItemButton, FrameImageThumbnail, StarButton } from '../styles';\n\nconst ThumbnailBadge = ({\n onRemove,\n onHandleMainImage,\n key,\n sx,\n file,\n disableDrag,\n attributes,\n listeners,\n mainUrl,\n innerWidth,\n isDragging,\n}: UploadProps & {\n key: string;\n file: string | File;\n disableDrag: boolean;\n attributes: DraggableAttributes;\n listeners: DraggableSyntheticListeners;\n innerWidth: number;\n isDragging: boolean;\n}) => {\n const isMainImage = file === mainUrl;\n const mainImageIcon = isMainImage ? 'STAR_02' : 'STAR';\n const mainImageLabel = isMainImage\n ? 'Remover imagem principal'\n : 'Definir como imagem principal';\n\n return (\n <Badge\n key={`badge-${key}`}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n badgeContent={\n onHandleMainImage && (\n <StarButton\n isMainImage={isMainImage}\n size=\"small\"\n onClick={() => onHandleMainImage(file)}\n aria-label={mainImageLabel}\n >\n <Icon icon={mainImageIcon} width={12} />\n </StarButton>\n )\n }\n >\n <FrameImageThumbnail\n width={innerWidth}\n isDragging={isDragging}\n data-testid={`preview-multi-img-${key}`}\n {...varFade().inUp}\n sx={sx}\n >\n <DragButton disableDrag={disableDrag} {...attributes} {...listeners} />\n\n <FileThumbnail\n imageView\n file={file}\n sx={{ position: 'absolute', right: 10, top: 10 }}\n />\n\n {onRemove && (\n <DeleteItemButton\n size=\"small\"\n aria-label=\"Remover imagem\"\n onClick={() => onRemove(file)}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteItemButton>\n )}\n </FrameImageThumbnail>\n </Badge>\n );\n};\n\nexport default ThumbnailBadge;\n","/* eslint-disable react/function-component-definition */\nimport Box from '@mui/material/Box';\nimport type { IconButtonProps } from '@mui/material/IconButton';\nimport IconButton from '@mui/material/IconButton';\n\nimport Icon from 'components/Icon';\nimport { varAlpha } from 'theme/styles';\n\nimport type { SingleFilePreviewProps } from '../types';\n\n// ----------------------------------------------------------------------\n\nexport function SingleFilePreview({ file }: SingleFilePreviewProps) {\n const fileName = typeof file === 'string' ? file : file.name;\n\n const previewUrl =\n typeof file === 'string' ? file : URL.createObjectURL(file);\n\n return (\n <Box\n sx={{\n p: 1,\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n position: 'absolute',\n }}\n >\n <Box\n component=\"img\"\n alt={fileName}\n src={previewUrl}\n sx={{\n width: 1,\n height: 1,\n borderRadius: 1,\n objectFit: 'cover',\n }}\n />\n </Box>\n );\n}\n\n// ----------------------------------------------------------------------\n\nexport function DeleteButton({ sx, ...other }: IconButtonProps) {\n return (\n <IconButton\n size=\"small\"\n sx={{\n top: 16,\n right: 16,\n zIndex: 9,\n position: 'absolute',\n color: theme => varAlpha(theme.vars.palette.common.whiteChannel, 0.8),\n bgcolor: theme => varAlpha(theme.vars.palette.grey['900Channel'], 0.72),\n '&:hover': {\n bgcolor: theme =>\n varAlpha(theme.vars.palette.grey['900Channel'], 0.48),\n },\n ...sx,\n }}\n {...other}\n aria-label=\"Remover arquivo\"\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={18} />\n </IconButton>\n );\n}\n","import React from 'react';\nimport { FileRejection, useDropzone } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { m } from 'framer-motion';\n\nimport { varFade } from 'components/animate';\nimport { FileThumbnail } from 'components/file-thumbnail';\nimport Icon from 'components/Icon';\nimport { UploadProps } from 'types/upload';\nimport { fData } from 'utils/formatNumber';\n\nimport DropZonePlaceholder from './components/DropZonePlaceholder';\nimport { MultiFilePreview } from './components/preview-multi-file';\nimport { SingleFilePreview } from './components/preview-single-file';\nimport { RejectionFiles } from './components/rejection-files';\nimport CustomDropZone from './CustomDropZone';\nimport { CloseIconButton, DeleteButton } from './styles';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: Upload está obsoleto. Use FileUpload do @zydon/common em seu lugar.\\n' +\n 'Migração: import { SingleFileUpload, MultipleFileUpload } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O FileUpload oferece melhor gerenciamento de upload, integração com APIs e hooks especializados.',\n );\n}\n\nconst Upload = ({\n id,\n disabled,\n multiple = false,\n error,\n helperText,\n file,\n onDelete,\n files,\n thumbnail,\n onRemove,\n onHandleMainImage,\n mainUrl,\n sx,\n dropZoneProps,\n placeholderProps,\n placeholderAlt,\n uploading,\n image,\n tabIndex,\n preview = 'image',\n onRemoveAll,\n onUpload,\n onReorder,\n ...other\n}: UploadProps) => {\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n isDragReject,\n fileRejections,\n } = useDropzone({\n multiple,\n disabled,\n ...other,\n });\n\n const hasFile = !!file && !multiple;\n const hasFileOrImage = hasFile || image;\n const hasFiles = files && multiple && files.length > 0;\n const isNotFormatFile = typeof file === 'string';\n const isError = isDragReject || !!error;\n\n if (preview === 'file') {\n return (\n <CustomDropZone\n id={id}\n uploading={uploading}\n disabled={disabled}\n dropZoneSxProps={dropZoneProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {!hasFile && <DropZonePlaceholder />}\n\n {hasFile && (\n <Stack\n component={m.div}\n {...varFade().inUp}\n spacing={2}\n direction=\"row\"\n alignItems=\"center\"\n sx={{\n my: 1,\n px: 1,\n py: 0.75,\n borderRadius: 0.75,\n border: theme => `solid 1px ${theme.palette.divider}`,\n ...sx,\n }}\n >\n <FileThumbnail file={file} />\n\n <Stack flexGrow={1} sx={{ minWidth: 0 }}>\n <Typography variant=\"subtitle2\" noWrap>\n {isNotFormatFile ? file : file.name}\n </Typography>\n\n <Typography\n variant=\"caption\"\n sx={{ color: 'text.secondary' }}\n >\n {isNotFormatFile ? '' : fData(file.size)}\n </Typography>\n </Stack>\n\n {onDelete && (\n <CloseIconButton\n edge=\"end\"\n size=\"small\"\n disabled={disabled}\n aria-label=\"Remover arquivo\"\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onDelete();\n }}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </CloseIconButton>\n )}\n </Stack>\n )}\n </>\n }\n >\n {helperText && helperText}\n\n <RejectionFiles files={fileRejections as FileRejection[]} />\n\n {hasFiles && (\n <>\n <Box sx={{ my: 3 }}>\n <MultiFilePreview\n files={files}\n thumbnail={thumbnail}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n mainUrl={mainUrl}\n onReorder={onReorder}\n />\n </Box>\n\n <Stack direction=\"row\" justifyContent=\"flex-end\" spacing={1.5}>\n {onRemoveAll && (\n <Button\n color=\"inherit\"\n variant=\"outlined\"\n size=\"small\"\n onClick={onRemoveAll}\n >\n Remover todos\n </Button>\n )}\n\n {onUpload && (\n <Button size=\"small\" variant=\"contained\" onClick={onUpload}>\n Enviar arquivos\n </Button>\n )}\n </Stack>\n </>\n )}\n </CustomDropZone>\n );\n }\n\n const hidePlaceholder = hasFileOrImage ? { opacity: 0 } : undefined;\n\n return (\n <CustomDropZone\n id={id}\n uploading={uploading}\n disabled={disabled}\n dropZoneSxProps={dropZoneProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {placeholderAlt ? (\n <Stack sx={hidePlaceholder}>{placeholderAlt}</Stack>\n ) : (\n <DropZonePlaceholder\n sx={hidePlaceholder}\n header={placeholderProps?.title}\n description={placeholderProps?.description}\n />\n )}\n\n {hasFileOrImage && <SingleFilePreview file={file || image || ''} />}\n </>\n }\n >\n {helperText && (\n <FormHelperText\n error={!!error}\n sx={theme => ({\n mx: '14px',\n color: disabled ? theme.palette.grey[500] : undefined,\n })}\n >\n {helperText}\n </FormHelperText>\n )}\n\n <RejectionFiles files={fileRejections as FileRejection[]} />\n\n {hasFileOrImage && onDelete && (\n <DeleteButton\n size=\"small\"\n onClick={onDelete}\n disabled={disabled}\n aria-label=\"Remover arquivo\"\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteButton>\n )}\n\n {hasFiles && (\n <>\n <Box sx={{ my: 3, ml: 0.5 }}>\n <MultiFilePreview\n files={files}\n thumbnail={thumbnail}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n mainUrl={mainUrl}\n onReorder={onReorder}\n />\n </Box>\n </>\n )}\n </CustomDropZone>\n );\n};\n\nexport default Upload;\n","import { memo } from 'react';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport UploadIllustration from 'assets/illustrations/UploadIllustration';\n\ninterface PlaceholderProps extends StackProps {\n header?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst DropZonePlaceholder = ({\n header,\n description,\n sx,\n ...other\n}: PlaceholderProps) => {\n return (\n <Stack\n spacing={5}\n alignItems=\"center\"\n justifyContent=\"center\"\n direction={{\n xs: 'column',\n md: 'row',\n }}\n sx={{\n width: 1,\n textAlign: {\n xs: 'center',\n md: 'left',\n },\n ...sx,\n }}\n {...other}\n >\n <UploadIllustration sx={{ width: 220 }} />\n\n <div>\n <Typography gutterBottom variant=\"h5\">\n {header || 'Soltar ou selecionar arquivos'}\n </Typography>\n\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {description || (\n <>\n Solte os arquivos aqui ou clique\n <Typography\n variant=\"body2\"\n component=\"span\"\n sx={{\n mx: 0.5,\n color: 'primary.main',\n textDecoration: 'underline',\n }}\n >\n procurar\n </Typography>\n na sua máquina\n </>\n )}\n </Typography>\n </div>\n </Stack>\n );\n};\n\nexport default memo(DropZonePlaceholder);\n","import { DropzoneInputProps, DropzoneRootProps } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport { SxProps } from '@mui/material/styles';\n\nimport FixedProgressBar from 'components/FixedProgressBar';\n\nimport { StyledDropZone } from './CustomDropZone.styles';\nimport { Container } from './styles';\n\ninterface CustomDropZoneProps {\n sx?: SxProps;\n uploading?: boolean;\n id?: string;\n tabIndex?: number;\n getRootProps: () => DropzoneRootProps;\n getInputProps: () => DropzoneInputProps;\n isDragActive: boolean;\n isError: boolean;\n disabled?: boolean;\n dropZoneSxProps?: SxProps;\n dropZoneContent?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst CustomDropZone = ({\n sx,\n id,\n tabIndex,\n uploading,\n getRootProps,\n getInputProps,\n isDragActive,\n isError,\n disabled,\n dropZoneSxProps,\n dropZoneContent,\n children,\n ...props\n}: CustomDropZoneProps) => {\n return (\n <Container>\n {uploading && <FixedProgressBar data-testid=\"uploading-progress-bar\" />}\n <Box sx={{ width: 1, position: 'relative', ...sx }}>\n <StyledDropZone\n {...getRootProps()}\n data-testid=\"drop-zone-styled-area\"\n isError={isError}\n isDragActive={isDragActive}\n disabled={!!disabled}\n sx={dropZoneSxProps}\n {...props}\n >\n <input {...getInputProps()} id={id} tabIndex={tabIndex} />\n\n {dropZoneContent}\n </StyledDropZone>\n {children}\n </Box>\n </Container>\n );\n};\n\nexport default CustomDropZone;\n","import { DropzoneRootProps } from 'react-dropzone/.';\nimport Box, { BoxProps } from '@mui/material/Box';\nimport { alpha, styled } from '@mui/material/styles';\n\ntype StyledDropZoneProps = BoxProps &\n Omit<DropzoneRootProps, 'children' | 'onDrop' | 'onError'> & {\n isDragActive: boolean;\n isError: boolean;\n disabled: boolean;\n };\nexport const StyledDropZone = styled(Box, {\n shouldForwardProp: prop =>\n !['isDragActive', 'isError', 'disabled'].includes(prop as string),\n})<StyledDropZoneProps>(({ theme, isDragActive, isError, disabled }) => ({\n outline: 'none',\n cursor: 'pointer',\n overflow: 'hidden',\n position: 'relative',\n padding: theme.spacing(5),\n borderRadius: theme.shape.borderRadius,\n transition: theme.transitions.create('padding'),\n backgroundColor: theme.palette.background.neutral,\n border: `1px dashed ${alpha(theme.palette.grey[500], 0.32)}`,\n ...(isDragActive && {\n opacity: 0.72,\n }),\n ...(isError && {\n color: theme.palette.error.main,\n backgroundColor: theme.palette.error.lighter,\n borderColor: theme.palette.error.light,\n }),\n ...(disabled && {\n opacity: 0.48,\n pointerEvents: 'none',\n }),\n '&:hover': {\n opacity: 0.72,\n },\n}));\n","import Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\n\nimport useSnackbar from 'hooks/useSnackbar';\nimport useUploadImage from 'hooks/useUploadImage';\nimport { fData } from 'utils/formatNumber';\n\nimport FixedProgressBar from '../FixedProgressBar';\nimport Icon from '../Icon';\nimport ImageCropModal from '../ImageCropModal';\n\nimport { Container, OverlayActions } from './styles';\nimport { UploadWithCropProps } from './types';\nimport Upload from './Upload';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: UploadWithCrop está obsoleto. Use SingleImageUpload do @zydon/common em seu lugar.\\n' +\n 'Migração: import { SingleImageUpload } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O SingleImageUpload oferece crop integrado, melhor gerenciamento de upload e integração com APIs.',\n );\n}\n\nconst UploadWithCrop = ({\n onFileCropped,\n onImageUploaded,\n onCancel,\n aspect,\n label,\n image = '',\n uploading,\n file,\n tabIndex,\n maxSize,\n onDropRejected,\n ...other\n}: UploadWithCropProps) => {\n const {\n id,\n setCropModalOpen,\n handleRemove,\n toggleCropModalOpen,\n cropModalOpen,\n cancelChanges,\n saveChanges,\n previewImage,\n setCropper,\n preview,\n closePreviewImage,\n saving,\n } = useUploadImage({ onFileCropped, onImageUploaded, onCancel });\n const { error } = useSnackbar();\n\n return (\n <>\n <Container>\n {uploading && <FixedProgressBar />}\n\n <Upload\n {...other}\n maxSize={maxSize}\n id={id}\n file={file}\n onDrop={acceptedFiles => {\n if (acceptedFiles.length > 0) {\n setCropModalOpen(true);\n\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n const src = reader.result?.toString() || '';\n\n onImageUploaded(src);\n onFileCropped(undefined);\n });\n\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }}\n image={image}\n tabIndex={tabIndex}\n onDropRejected={(fileRejections, event) => {\n const errorCode = fileRejections[0]?.errors[0]?.code;\n onImageUploaded(undefined);\n onFileCropped(undefined);\n\n error(\n errorCode === 'file-too-large'\n ? `Imagem não pode ser maior que ${fData(maxSize)}`\n : 'Erro ao enviar imagem',\n );\n\n if (onDropRejected) onDropRejected(fileRejections, event);\n }}\n />\n\n {(file || image) && (\n <OverlayActions className=\"actions\">\n <Button\n color=\"inherit\"\n startIcon={\n <Icon icon=\"DELETE_MARK_BUTTON_02\" color=\"error.main\" />\n }\n onClick={handleRemove}\n >\n Remover\n </Button>\n\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"SEARCH_IMAGE\" color=\"primary.maon\" />}\n onClick={toggleCropModalOpen}\n >\n Editar\n </Button>\n </OverlayActions>\n )}\n </Container>\n\n <ImageCropModal\n id={id}\n open={cropModalOpen}\n onClose={cancelChanges}\n label={label}\n aspectRatio={aspect}\n imageSrc={image}\n onRemove={handleRemove}\n onSave={saveChanges}\n onPreview={previewImage}\n onInitialized={setCropper}\n loading={saving}\n />\n\n <Dialog\n open={!!preview}\n onClose={closePreviewImage}\n scroll=\"body\"\n PaperProps={{\n sx: {\n p: 2,\n },\n }}\n >\n {preview && <img src={preview} alt=\"Preview\" />}\n </Dialog>\n </>\n );\n};\n\nexport default UploadWithCrop;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/upload/components/preview-multi-file.tsx","../src/components/file-thumbnail/action-buttons.tsx","../src/components/file-thumbnail/file-thumbnail.tsx","../src/components/file-thumbnail/classes.ts","../src/components/upload/components/SortableItem.tsx","../src/components/upload/components/ThumbnailBadge.tsx","../src/components/upload/components/preview-single-file.tsx","../src/components/upload/Upload.tsx","../src/components/upload/components/DropZonePlaceholder.tsx","../src/components/upload/CustomDropZone.tsx","../src/components/upload/CustomDropZone.styles.ts","../src/components/upload/upload-with-crop.tsx"],"names":["closestCenter","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToHorizontalAxis","restrictToParentElement","restrictToWindowEdges","horizontalListSortingStrategy","SortableContext","sortableKeyboardCoordinates","AnimatePresence","ButtonBase","IconButton","useTheme","jsx","DownloadButton","sx","other","theme","bgBlur","varAlpha","Icon_default","RemoveButton","Box","Stack","Tooltip","fileThumbnailClasses","jsxs","FileThumbnail","file","tooltip","onRemove","imageView","slotProps","onDownload","previewUrl","name","path","fileData","format","fileFormat","renderImg","renderIcon","fileThumb","renderContent","useSortable","Typography","Badge","ThumbnailBadge","onHandleMainImage","key","disableDrag","attributes","listeners","mainUrl","innerWidth","isDragging","isMainImage","StarButton","FrameImageThumbnail","varFade","DragButton_default","DeleteItemButton","ThumbnailBadge_default","SortableFile","thumbnail","size","isNotFormatFile","setNodeRef","transform","transition","style","CSS","DragWrapper","FrameFileThumbnail","fData","DeleteFileButton","SortableItem_default","MultiFilePreview","files","onReorder","sensors","handleDragEnd","event","active","over","oldIndex","newIndex","sortableFile","SingleFilePreview","fileName","DeleteButton","useDropzone","Button","FormHelperText","m","memo","Fragment","DropZonePlaceholder","header","description","UploadIllustration_default","DropZonePlaceholder_default","alpha","styled","StyledDropZone","prop","isDragActive","isError","disabled","CustomDropZone","id","tabIndex","uploading","getRootProps","getInputProps","dropZoneSxProps","dropZoneContent","children","props","Container","FixedProgressBar_default","CustomDropZone_default","Upload","multiple","error","helperText","onDelete","dropZoneProps","placeholderProps","placeholderAlt","image","preview","onRemoveAll","onUpload","isDragReject","fileRejections","hasFile","hasFileOrImage","hasFiles","CloseIconButton","e","RejectionFiles","hidePlaceholder","Upload_default","Dialog","UploadWithCrop","onFileCropped","onImageUploaded","onCancel","aspect","label","maxSize","onDropRejected","setCropModalOpen","handleRemove","toggleCropModalOpen","cropModalOpen","cancelChanges","saveChanges","previewImage","setCropper","closePreviewImage","saving","useUploadImage_default","useSnackbar_default","acceptedFiles","reader","src","errorCode","OverlayActions","ImageCropModal_default","upload_with_crop_default"],"mappings":"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","sourcesContent":["import {\n closestCenter,\n DndContext,\n DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n restrictToHorizontalAxis,\n restrictToParentElement,\n restrictToWindowEdges,\n} from '@dnd-kit/modifiers';\nimport {\n horizontalListSortingStrategy,\n SortableContext,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport { AnimatePresence } from 'framer-motion';\n\nimport { fileData } from 'components/file-thumbnail';\nimport { UploadProps } from 'types/upload';\n\nimport SortableFile from './SortableItem';\n\nexport const MultiFilePreview = ({\n thumbnail,\n files,\n onRemove,\n onReorder,\n onHandleMainImage,\n mainUrl,\n sx,\n}: UploadProps) => {\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 8,\n },\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n if (!files?.length) {\n return null;\n }\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (!active || !over || active.id === over.id) return;\n\n if (onReorder) {\n const oldIndex = files.findIndex(file => {\n const { key } = fileData(file);\n return key === active.id;\n });\n\n const newIndex = files.findIndex(file => {\n const { key } = fileData(file);\n return key === over.id;\n });\n\n if (oldIndex !== -1 && newIndex !== -1) {\n onReorder(oldIndex, newIndex);\n }\n }\n };\n\n const sortableFile = (\n <AnimatePresence initial={false}>\n {files.map(file => (\n <SortableFile\n key={fileData(file).key}\n file={file}\n thumbnail={thumbnail}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n mainUrl={mainUrl}\n sx={sx}\n disableDrag={!onReorder}\n />\n ))}\n </AnimatePresence>\n );\n\n if (!onReorder) {\n return sortableFile;\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n modifiers={[\n restrictToHorizontalAxis,\n restrictToParentElement,\n restrictToWindowEdges,\n ]}\n >\n <SortableContext\n items={files.map(file => fileData(file).key)}\n strategy={horizontalListSortingStrategy}\n >\n {sortableFile}\n </SortableContext>\n </DndContext>\n );\n};\n","/* eslint-disable react/function-component-definition */\n// eslint-disable-next-line simple-import-sort/imports\nimport type { ButtonBaseProps } from '@mui/material/ButtonBase';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport type { IconButtonProps } from '@mui/material/IconButton';\nimport IconButton from '@mui/material/IconButton';\nimport { useTheme } from '@mui/material/styles';\nimport Icon from 'components/Icon';\n\nimport { bgBlur, varAlpha } from 'theme/styles';\n\nexport function DownloadButton({ sx, ...other }: ButtonBaseProps) {\n const theme = useTheme();\n\n return (\n <ButtonBase\n sx={{\n p: 0,\n top: 0,\n right: 0,\n width: 1,\n height: 1,\n zIndex: 9,\n opacity: 0,\n position: 'absolute',\n color: 'common.white',\n borderRadius: 'inherit',\n transition: theme.transitions.create(['opacity']),\n '&:hover': {\n ...bgBlur({\n color: varAlpha(theme.vars.palette.grey['900Channel'], 0.64),\n }),\n opacity: 1,\n },\n ...sx,\n }}\n {...other}\n >\n <Icon icon=\"ARROW_DOWN_CICLE\" width={24} />\n </ButtonBase>\n );\n}\n\nexport function RemoveButton({ sx, ...other }: IconButtonProps) {\n return (\n <IconButton\n size=\"small\"\n sx={{\n p: 0.35,\n top: 4,\n right: 4,\n position: 'absolute',\n color: 'common.white',\n bgcolor: theme => varAlpha(theme.vars.palette.grey['900Channel'], 0.48),\n '&:hover': {\n bgcolor: theme =>\n varAlpha(theme.vars.palette.grey['900Channel'], 0.72),\n },\n ...sx,\n }}\n {...other}\n >\n <Icon icon=\"CLOSE_MARK_BUTTON\" width={12} />\n </IconButton>\n );\n}\n","/* eslint-disable react/function-component-definition */\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport Icon from 'components/Icon';\nimport { Icon as IconEnum } from 'types/icon';\n\nimport { DownloadButton, RemoveButton } from './action-buttons';\nimport { fileThumbnailClasses } from './classes';\nimport type { FileThumbnailProps } from './types';\nimport { fileData, fileFormat, fileThumb } from './utils';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: FileThumbnail (components/file-thumbnail) está obsoleto. Use FileThumbnail do @zydon/common em seu lugar.\\n' +\n 'Migração: import { FileThumbnail } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O novo FileThumbnail oferece melhor integração com o sistema de FileUpload e mais funcionalidades.',\n );\n}\n\nexport function FileThumbnail({\n sx,\n file,\n tooltip,\n onRemove,\n imageView,\n slotProps,\n onDownload,\n ...other\n}: FileThumbnailProps) {\n const previewUrl =\n typeof file === 'string' ? file : URL.createObjectURL(file);\n\n const { name, path } = fileData(file);\n\n const format = fileFormat(path || previewUrl);\n\n const renderImg = (\n <Box\n component=\"img\"\n src={previewUrl}\n className={fileThumbnailClasses.img}\n sx={{\n width: 1,\n height: 1,\n objectFit: 'cover',\n borderRadius: 'inherit',\n ...slotProps?.img,\n }}\n />\n );\n\n const renderIcon = (\n <Icon\n icon={fileThumb(format) as keyof typeof IconEnum}\n sx={{\n width: 32,\n height: 32,\n flexShrink: 0,\n ...sx,\n }}\n />\n );\n\n const renderContent = (\n <Stack\n component=\"span\"\n className={fileThumbnailClasses.root}\n sx={{\n width: 36,\n height: 36,\n flexShrink: 0,\n borderRadius: 1.25,\n alignItems: 'center',\n position: 'relative',\n display: 'inline-flex',\n justifyContent: 'center',\n ...sx,\n }}\n {...other}\n >\n {format === 'image' && imageView ? renderImg : renderIcon}\n\n {onRemove && (\n <RemoveButton\n onClick={onRemove}\n className={fileThumbnailClasses.removeBtn}\n sx={slotProps?.removeBtn}\n />\n )}\n\n {onDownload && (\n <DownloadButton\n onClick={onDownload}\n className={fileThumbnailClasses.downloadBtn}\n sx={slotProps?.downloadBtn}\n />\n )}\n </Stack>\n );\n\n if (tooltip) {\n return (\n <Tooltip\n arrow\n title={name}\n slotProps={{\n popper: {\n modifiers: [{ name: 'offset', options: { offset: [0, -12] } }],\n },\n }}\n >\n {renderContent}\n </Tooltip>\n );\n }\n\n return renderContent;\n}\n","export const fileThumbnailClasses = {\n root: 'mnl__file__thumbnail__root',\n img: 'mnl__file__thumbnail__img',\n icon: 'mnl__file__thumbnail__icon',\n removeBtn: 'mnl__file__thumbnail__remove__button',\n downloadBtn: 'mnl__file__thumbnail__download__button',\n};\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport { varFade } from 'components/animate';\nimport DragButton from 'components/DragButton';\nimport { fileData, FileThumbnail } from 'components/file-thumbnail';\nimport Icon from 'components/Icon';\nimport { UploadProps } from 'types/upload';\nimport { fData } from 'utils/formatNumber';\n\nimport { DeleteFileButton, DragWrapper, FrameFileThumbnail } from '../styles';\n\nimport ThumbnailBadge from './ThumbnailBadge';\n\nconst SortableFile = ({\n file,\n thumbnail,\n onRemove,\n onHandleMainImage,\n mainUrl,\n sx,\n disableDrag = false,\n}: UploadProps & { file: string | File; disableDrag?: boolean }) => {\n const { key, name = '', size = 0 } = fileData(file);\n const isNotFormatFile = typeof file === 'string';\n const innerWidth = disableDrag ? 60 : 80;\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: key, disabled: disableDrag });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n display: 'inline-block',\n alignItems: 'center',\n justifyContent: 'center',\n width: `${innerWidth + 8}px`,\n height: '68px',\n };\n\n if (thumbnail) {\n return (\n <DragWrapper ref={setNodeRef} style={style}>\n <ThumbnailBadge\n innerWidth={innerWidth}\n isDragging={isDragging}\n sx={sx}\n key={key}\n file={file}\n disableDrag={disableDrag}\n attributes={attributes}\n listeners={listeners}\n mainUrl={mainUrl}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n />\n </DragWrapper>\n );\n }\n\n return (\n <DragWrapper\n ref={setNodeRef}\n style={{\n ...style,\n height: '80px',\n width: `${innerWidth + 38}px`,\n }}\n >\n <FrameFileThumbnail\n width={innerWidth + 30}\n isDragging={isDragging}\n data-testid={`preview-multi-img-${key}`}\n {...varFade().inUp}\n sx={sx}\n >\n <DragButton disableDrag={disableDrag} {...attributes} {...listeners} />\n\n <FileThumbnail file={file} />\n\n <Stack flexGrow={1} sx={{ minWidth: 0, width: '100%' }}>\n <Typography variant=\"subtitle2\" noWrap>\n {isNotFormatFile ? file : name}\n </Typography>\n\n <Typography variant=\"caption\" sx={{ color: 'text.secondary' }}>\n {isNotFormatFile ? '' : fData(size)}\n </Typography>\n </Stack>\n\n {onRemove && (\n <DeleteFileButton\n size=\"small\"\n aria-label=\"Remover arquivo\"\n onClick={() => onRemove(file)}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteFileButton>\n )}\n </FrameFileThumbnail>\n </DragWrapper>\n );\n};\n\nexport default SortableFile;\n","import {\n DraggableAttributes,\n DraggableSyntheticListeners,\n} from '@dnd-kit/core';\nimport Badge from '@mui/material/Badge';\n\nimport { varFade } from 'components/animate';\nimport DragButton from 'components/DragButton';\nimport { FileThumbnail } from 'components/file-thumbnail';\nimport Icon from 'components/Icon';\nimport { UploadProps } from 'types/upload';\n\nimport { DeleteItemButton, FrameImageThumbnail, StarButton } from '../styles';\n\nconst ThumbnailBadge = ({\n onRemove,\n onHandleMainImage,\n key,\n sx,\n file,\n disableDrag,\n attributes,\n listeners,\n mainUrl,\n innerWidth,\n isDragging,\n}: UploadProps & {\n key: string;\n file: string | File;\n disableDrag: boolean;\n attributes: DraggableAttributes;\n listeners: DraggableSyntheticListeners;\n innerWidth: number;\n isDragging: boolean;\n}) => {\n const isMainImage = file === mainUrl;\n const mainImageIcon = isMainImage ? 'STAR_02' : 'STAR';\n const mainImageLabel = isMainImage\n ? 'Remover imagem principal'\n : 'Definir como imagem principal';\n\n return (\n <Badge\n key={`badge-${key}`}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n badgeContent={\n onHandleMainImage && (\n <StarButton\n isMainImage={isMainImage}\n size=\"small\"\n onClick={() => onHandleMainImage(file)}\n aria-label={mainImageLabel}\n >\n <Icon icon={mainImageIcon} width={12} />\n </StarButton>\n )\n }\n >\n <FrameImageThumbnail\n width={innerWidth}\n isDragging={isDragging}\n data-testid={`preview-multi-img-${key}`}\n {...varFade().inUp}\n sx={sx}\n >\n <DragButton disableDrag={disableDrag} {...attributes} {...listeners} />\n\n <FileThumbnail\n imageView\n file={file}\n sx={{ position: 'absolute', right: 10, top: 10 }}\n />\n\n {onRemove && (\n <DeleteItemButton\n size=\"small\"\n aria-label=\"Remover imagem\"\n onClick={() => onRemove(file)}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteItemButton>\n )}\n </FrameImageThumbnail>\n </Badge>\n );\n};\n\nexport default ThumbnailBadge;\n","/* eslint-disable react/function-component-definition */\nimport Box from '@mui/material/Box';\nimport type { IconButtonProps } from '@mui/material/IconButton';\nimport IconButton from '@mui/material/IconButton';\n\nimport Icon from 'components/Icon';\nimport { varAlpha } from 'theme/styles';\n\nimport type { SingleFilePreviewProps } from '../types';\n\n// ----------------------------------------------------------------------\n\nexport function SingleFilePreview({ file }: SingleFilePreviewProps) {\n const fileName = typeof file === 'string' ? file : file.name;\n\n const previewUrl =\n typeof file === 'string' ? file : URL.createObjectURL(file);\n\n return (\n <Box\n sx={{\n p: 1,\n top: 0,\n left: 0,\n width: 1,\n height: 1,\n position: 'absolute',\n }}\n >\n <Box\n component=\"img\"\n alt={fileName}\n src={previewUrl}\n sx={{\n width: 1,\n height: 1,\n borderRadius: 1,\n objectFit: 'cover',\n }}\n />\n </Box>\n );\n}\n\n// ----------------------------------------------------------------------\n\nexport function DeleteButton({ sx, ...other }: IconButtonProps) {\n return (\n <IconButton\n size=\"small\"\n sx={{\n top: 16,\n right: 16,\n zIndex: 9,\n position: 'absolute',\n color: theme => varAlpha(theme.vars.palette.common.whiteChannel, 0.8),\n bgcolor: theme => varAlpha(theme.vars.palette.grey['900Channel'], 0.72),\n '&:hover': {\n bgcolor: theme =>\n varAlpha(theme.vars.palette.grey['900Channel'], 0.48),\n },\n ...sx,\n }}\n {...other}\n aria-label=\"Remover arquivo\"\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={18} />\n </IconButton>\n );\n}\n","import React from 'react';\nimport { FileRejection, useDropzone } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport { m } from 'framer-motion';\n\nimport { varFade } from 'components/animate';\nimport { FileThumbnail } from 'components/file-thumbnail';\nimport Icon from 'components/Icon';\nimport { UploadProps } from 'types/upload';\nimport { fData } from 'utils/formatNumber';\n\nimport DropZonePlaceholder from './components/DropZonePlaceholder';\nimport { MultiFilePreview } from './components/preview-multi-file';\nimport { SingleFilePreview } from './components/preview-single-file';\nimport { RejectionFiles } from './components/rejection-files';\nimport CustomDropZone from './CustomDropZone';\nimport { CloseIconButton, DeleteButton } from './styles';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: Upload está obsoleto. Use FileUpload do @zydon/common em seu lugar.\\n' +\n 'Migração: import { SingleFileUpload, MultipleFileUpload } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O FileUpload oferece melhor gerenciamento de upload, integração com APIs e hooks especializados.',\n );\n}\n\nconst Upload = ({\n id,\n disabled,\n multiple = false,\n error,\n helperText,\n file,\n onDelete,\n files,\n thumbnail,\n onRemove,\n onHandleMainImage,\n mainUrl,\n sx,\n dropZoneProps,\n placeholderProps,\n placeholderAlt,\n uploading,\n image,\n tabIndex,\n preview = 'image',\n onRemoveAll,\n onUpload,\n onReorder,\n ...other\n}: UploadProps) => {\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n isDragReject,\n fileRejections,\n } = useDropzone({\n multiple,\n disabled,\n ...other,\n });\n\n const hasFile = !!file && !multiple;\n const hasFileOrImage = hasFile || image;\n const hasFiles = files && multiple && files.length > 0;\n const isNotFormatFile = typeof file === 'string';\n const isError = isDragReject || !!error;\n\n if (preview === 'file') {\n return (\n <CustomDropZone\n id={id}\n uploading={uploading}\n disabled={disabled}\n dropZoneSxProps={dropZoneProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {!hasFile && <DropZonePlaceholder />}\n\n {hasFile && (\n <Stack\n component={m.div}\n {...varFade().inUp}\n spacing={2}\n direction=\"row\"\n alignItems=\"center\"\n sx={{\n my: 1,\n px: 1,\n py: 0.75,\n borderRadius: 0.75,\n border: theme => `solid 1px ${theme.palette.divider}`,\n ...sx,\n }}\n >\n <FileThumbnail file={file} />\n\n <Stack flexGrow={1} sx={{ minWidth: 0 }}>\n <Typography variant=\"subtitle2\" noWrap>\n {isNotFormatFile ? file : file.name}\n </Typography>\n\n <Typography\n variant=\"caption\"\n sx={{ color: 'text.secondary' }}\n >\n {isNotFormatFile ? '' : fData(file.size)}\n </Typography>\n </Stack>\n\n {onDelete && (\n <CloseIconButton\n edge=\"end\"\n size=\"small\"\n disabled={disabled}\n aria-label=\"Remover arquivo\"\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n onDelete();\n }}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </CloseIconButton>\n )}\n </Stack>\n )}\n </>\n }\n >\n {helperText && helperText}\n\n <RejectionFiles files={fileRejections as FileRejection[]} />\n\n {hasFiles && (\n <>\n <Box sx={{ my: 3 }}>\n <MultiFilePreview\n files={files}\n thumbnail={thumbnail}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n mainUrl={mainUrl}\n onReorder={onReorder}\n />\n </Box>\n\n <Stack direction=\"row\" justifyContent=\"flex-end\" spacing={1.5}>\n {onRemoveAll && (\n <Button\n color=\"inherit\"\n variant=\"outlined\"\n size=\"small\"\n onClick={onRemoveAll}\n >\n Remover todos\n </Button>\n )}\n\n {onUpload && (\n <Button size=\"small\" variant=\"contained\" onClick={onUpload}>\n Enviar arquivos\n </Button>\n )}\n </Stack>\n </>\n )}\n </CustomDropZone>\n );\n }\n\n const hidePlaceholder = hasFileOrImage ? { opacity: 0 } : undefined;\n\n return (\n <CustomDropZone\n id={id}\n uploading={uploading}\n disabled={disabled}\n dropZoneSxProps={dropZoneProps}\n tabIndex={tabIndex}\n getRootProps={getRootProps}\n getInputProps={getInputProps}\n isDragActive={isDragActive}\n isError={isError}\n dropZoneContent={\n <>\n {placeholderAlt ? (\n <Stack sx={hidePlaceholder}>{placeholderAlt}</Stack>\n ) : (\n <DropZonePlaceholder\n sx={hidePlaceholder}\n header={placeholderProps?.title}\n description={placeholderProps?.description}\n />\n )}\n\n {hasFileOrImage && <SingleFilePreview file={file || image || ''} />}\n </>\n }\n >\n {helperText && (\n <FormHelperText\n error={!!error}\n sx={theme => ({\n mx: '14px',\n color: disabled ? theme.palette.grey[500] : undefined,\n })}\n >\n {helperText}\n </FormHelperText>\n )}\n\n <RejectionFiles files={fileRejections as FileRejection[]} />\n\n {hasFileOrImage && onDelete && (\n <DeleteButton\n size=\"small\"\n onClick={onDelete}\n disabled={disabled}\n aria-label=\"Remover arquivo\"\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" width={16} />\n </DeleteButton>\n )}\n\n {hasFiles && (\n <>\n <Box sx={{ my: 3, ml: 0.5 }}>\n <MultiFilePreview\n files={files}\n thumbnail={thumbnail}\n onRemove={onRemove}\n onHandleMainImage={onHandleMainImage}\n mainUrl={mainUrl}\n onReorder={onReorder}\n />\n </Box>\n </>\n )}\n </CustomDropZone>\n );\n};\n\nexport default Upload;\n","import { memo } from 'react';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport UploadIllustration from 'assets/illustrations/UploadIllustration';\n\ninterface PlaceholderProps extends StackProps {\n header?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst DropZonePlaceholder = ({\n header,\n description,\n sx,\n ...other\n}: PlaceholderProps) => {\n return (\n <Stack\n spacing={5}\n alignItems=\"center\"\n justifyContent=\"center\"\n direction={{\n xs: 'column',\n md: 'row',\n }}\n sx={{\n width: 1,\n textAlign: {\n xs: 'center',\n md: 'left',\n },\n ...sx,\n }}\n {...other}\n >\n <UploadIllustration sx={{ width: 220 }} />\n\n <div>\n <Typography gutterBottom variant=\"h5\">\n {header || 'Soltar ou selecionar arquivos'}\n </Typography>\n\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {description || (\n <>\n Solte os arquivos aqui ou clique\n <Typography\n variant=\"body2\"\n component=\"span\"\n sx={{\n mx: 0.5,\n color: 'primary.main',\n textDecoration: 'underline',\n }}\n >\n procurar\n </Typography>\n na sua máquina\n </>\n )}\n </Typography>\n </div>\n </Stack>\n );\n};\n\nexport default memo(DropZonePlaceholder);\n","import { DropzoneInputProps, DropzoneRootProps } from 'react-dropzone';\nimport Box from '@mui/material/Box';\nimport { SxProps } from '@mui/material/styles';\n\nimport FixedProgressBar from 'components/FixedProgressBar';\n\nimport { StyledDropZone } from './CustomDropZone.styles';\nimport { Container } from './styles';\n\ninterface CustomDropZoneProps {\n sx?: SxProps;\n uploading?: boolean;\n id?: string;\n tabIndex?: number;\n getRootProps: () => DropzoneRootProps;\n getInputProps: () => DropzoneInputProps;\n isDragActive: boolean;\n isError: boolean;\n disabled?: boolean;\n dropZoneSxProps?: SxProps;\n dropZoneContent?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst CustomDropZone = ({\n sx,\n id,\n tabIndex,\n uploading,\n getRootProps,\n getInputProps,\n isDragActive,\n isError,\n disabled,\n dropZoneSxProps,\n dropZoneContent,\n children,\n ...props\n}: CustomDropZoneProps) => {\n return (\n <Container>\n {uploading && <FixedProgressBar data-testid=\"uploading-progress-bar\" />}\n <Box sx={{ width: 1, position: 'relative', ...sx }}>\n <StyledDropZone\n {...getRootProps()}\n data-testid=\"drop-zone-styled-area\"\n isError={isError}\n isDragActive={isDragActive}\n disabled={!!disabled}\n sx={dropZoneSxProps}\n {...props}\n >\n <input {...getInputProps()} id={id} tabIndex={tabIndex} />\n\n {dropZoneContent}\n </StyledDropZone>\n {children}\n </Box>\n </Container>\n );\n};\n\nexport default CustomDropZone;\n","import { DropzoneRootProps } from 'react-dropzone/.';\nimport Box, { BoxProps } from '@mui/material/Box';\nimport { alpha, styled } from '@mui/material/styles';\n\ntype StyledDropZoneProps = BoxProps &\n Omit<DropzoneRootProps, 'children' | 'onDrop' | 'onError'> & {\n isDragActive: boolean;\n isError: boolean;\n disabled: boolean;\n };\nexport const StyledDropZone = styled(Box, {\n shouldForwardProp: prop =>\n !['isDragActive', 'isError', 'disabled'].includes(prop as string),\n})<StyledDropZoneProps>(({ theme, isDragActive, isError, disabled }) => ({\n outline: 'none',\n cursor: 'pointer',\n overflow: 'hidden',\n position: 'relative',\n padding: theme.spacing(5),\n borderRadius: theme.shape.borderRadius,\n transition: theme.transitions.create('padding'),\n backgroundColor: theme.palette.background.neutral,\n border: `1px dashed ${alpha(theme.palette.grey[500], 0.32)}`,\n ...(isDragActive && {\n opacity: 0.72,\n }),\n ...(isError && {\n color: theme.palette.error.main,\n backgroundColor: theme.palette.error.lighter,\n borderColor: theme.palette.error.light,\n }),\n ...(disabled && {\n opacity: 0.48,\n pointerEvents: 'none',\n }),\n '&:hover': {\n opacity: 0.72,\n },\n}));\n","import Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\n\nimport useSnackbar from 'hooks/useSnackbar';\nimport useUploadImage from 'hooks/useUploadImage';\nimport { fData } from 'utils/formatNumber';\n\nimport FixedProgressBar from '../FixedProgressBar';\nimport Icon from '../Icon';\nimport ImageCropModal from '../ImageCropModal';\n\nimport { Container, OverlayActions } from './styles';\nimport { UploadWithCropProps } from './types';\nimport Upload from './Upload';\n\nif (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '⚠️ DEPRECATED: UploadWithCrop está obsoleto. Use SingleImageUpload do @zydon/common em seu lugar.\\n' +\n 'Migração: import { SingleImageUpload } from \"@zydon/common/components/FileUpload\";\\n' +\n 'O SingleImageUpload oferece crop integrado, melhor gerenciamento de upload e integração com APIs.',\n );\n}\n\nconst UploadWithCrop = ({\n onFileCropped,\n onImageUploaded,\n onCancel,\n aspect,\n label,\n image = '',\n uploading,\n file,\n tabIndex,\n maxSize,\n onDropRejected,\n ...other\n}: UploadWithCropProps) => {\n const {\n id,\n setCropModalOpen,\n handleRemove,\n toggleCropModalOpen,\n cropModalOpen,\n cancelChanges,\n saveChanges,\n previewImage,\n setCropper,\n preview,\n closePreviewImage,\n saving,\n } = useUploadImage({ onFileCropped, onImageUploaded, onCancel });\n const { error } = useSnackbar();\n\n return (\n <>\n <Container>\n {uploading && <FixedProgressBar />}\n\n <Upload\n {...other}\n maxSize={maxSize}\n id={id}\n file={file}\n onDrop={acceptedFiles => {\n if (acceptedFiles.length > 0) {\n setCropModalOpen(true);\n\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n const src = reader.result?.toString() || '';\n\n onImageUploaded(src);\n onFileCropped(undefined);\n });\n\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }}\n image={image}\n tabIndex={tabIndex}\n onDropRejected={(fileRejections, event) => {\n const errorCode = fileRejections[0]?.errors[0]?.code;\n onImageUploaded(undefined);\n onFileCropped(undefined);\n\n error(\n errorCode === 'file-too-large'\n ? `Imagem não pode ser maior que ${fData(maxSize)}`\n : 'Erro ao enviar imagem',\n );\n\n if (onDropRejected) onDropRejected(fileRejections, event);\n }}\n />\n\n {(file || image) && (\n <OverlayActions className=\"actions\">\n <Button\n color=\"inherit\"\n startIcon={\n <Icon icon=\"DELETE_MARK_BUTTON_02\" color=\"error.main\" />\n }\n onClick={handleRemove}\n >\n Remover\n </Button>\n\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"SEARCH_IMAGE\" color=\"primary.maon\" />}\n onClick={toggleCropModalOpen}\n >\n Editar\n </Button>\n </OverlayActions>\n )}\n </Container>\n\n <ImageCropModal\n id={id}\n open={cropModalOpen}\n onClose={cancelChanges}\n label={label}\n aspectRatio={aspect}\n imageSrc={image}\n onRemove={handleRemove}\n onSave={saveChanges}\n onPreview={previewImage}\n onInitialized={setCropper}\n loading={saving}\n />\n\n <Dialog\n open={!!preview}\n onClose={closePreviewImage}\n scroll=\"body\"\n PaperProps={{\n sx: {\n p: 2,\n },\n }}\n >\n {preview && <img src={preview} alt=\"Preview\" />}\n </Dialog>\n </>\n );\n};\n\nexport default UploadWithCrop;\n"]}
|