@zydon/common 2.9.31 → 2.9.33
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-Y5SAYYIA.js +13 -0
- package/dist/chunk-Y5SAYYIA.js.map +1 -0
- package/dist/components/Analytics/OverviewAnalytics/index.js +1 -1
- package/dist/components/Analytics/PartnerAnalysis/index.js +1 -1
- package/dist/components/Analytics/index.js +1 -1
- package/dist/components/BulkEditModal/index.js +11 -11
- package/dist/components/BulkEditModal/index.js.map +1 -1
- package/dist/components/Drawer/index.d.ts +16 -1
- package/dist/components/Drawer/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-ADNBF5AS.js +0 -13
- package/dist/chunk-ADNBF5AS.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { a as a$1 } from './chunk-F65ZXAGV.js';
|
|
2
|
+
import { a } from './chunk-VJW7L44O.js';
|
|
3
|
+
import T from '@mui/material/Drawer';
|
|
4
|
+
import k from '@mui/material/IconButton';
|
|
5
|
+
import l from '@mui/material/Stack';
|
|
6
|
+
import D from '@mui/material/DialogActions';
|
|
7
|
+
import { styled } from '@mui/material/styles';
|
|
8
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var c=styled(l)(({theme:r})=>({alignItems:"center",borderBottom:`1px solid ${r.palette.grey[300]}`,padding:"22px 20px",gap:16})),d=styled(l)(({theme:r})=>({flexDirection:"row",alignItems:"center",gap:8,flex:1,fontSize:r.typography.subtitle1.fontSize,fontWeight:r.typography.subtitle1.fontWeight,fontFamily:r.typography.fontFamily})),m=styled(D)(({theme:r})=>({borderTop:`1px solid ${r.palette.divider}`,backgroundColor:r.palette.background.paper}));var P=({children:r,actionsProps:t})=>jsx(m,{"data-testid":"drawer-actions",...t,children:r}),f=P;var H=({headerTitle:r,headerProps:t,onClose:i,children:w,contentProps:A,scrollbarProps:h,maxWidth:x=684,actions:a$2,actionsProps:b,id:p,...u})=>{let y=p||"actions";return jsxs(T,{anchor:"right",id:p,PaperProps:{sx:{width:1,maxWidth:x}},onClose:i,...u,children:[jsxs(c,{direction:"row",...t,children:[jsx(k,{"aria-label":"Fechar gaveta lateral","data-testid":"close-drawer-btn",size:"small",onClick:i,children:jsx(a,{icon:"CLOSE_MARK_BUTTON",width:18})}),jsx(d,{children:r})]}),jsx(a$1,{...h,children:jsx(l,{p:3,...A,children:w})}),a$2&&jsx(f,{actionsProps:{...b,id:y},children:a$2})]})},L=H;
|
|
11
|
+
|
|
12
|
+
export { L as a };
|
|
13
|
+
//# sourceMappingURL=chunk-Y5SAYYIA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Drawer/index.tsx","../src/components/Drawer/styles.ts","../src/components/Drawer/Actions.tsx"],"names":["MuiDrawer","IconButton","Stack","DialogActions","styled","Header","theme","HeaderTitle","Actions","jsx","children","actionsProps","Actions_default","jsxs","Drawer","headerTitle","headerProps","onClose","contentProps","scrollbarProps","maxWidth","actions","id","other","DRAWER_ACTIONS","Icon_default","Scrollbar_default","Drawer_default"],"mappings":"gFAAA,OAAOA,MAAe,uBACtB,OAAOC,MAAgB,2BACvB,OAAOC,MAAW,sBCFlB,OAAOC,MAAmB,8BAC1B,OAAOD,MAAW,sBAClB,OAAS,UAAAE,MAAc,uBAEhB,IAAMC,EAASD,EAAOF,CAAK,EAAE,CAAC,CAAE,MAAAI,CAAM,KAAO,CAClD,WAAY,SACZ,aAAc,aAAaA,EAAM,QAAQ,KAAK,GAAG,IACjD,QAAS,YACT,IAAK,EACP,EAAE,EAEWC,EAAcH,EAAOF,CAAK,EAAE,CAAC,CAAE,MAAAI,CAAM,KAAO,CACvD,cAAe,MACf,WAAY,SACZ,IAAK,EACL,KAAM,EACN,SAAUA,EAAM,WAAW,UAAU,SACrC,WAAYA,EAAM,WAAW,UAAU,WACvC,WAAYA,EAAM,WAAW,UAC/B,EAAE,EAEWE,EAAUJ,EAAOD,CAAa,EAAE,CAAC,CAAE,MAAAG,CAAM,KAAO,CAC3D,UAAW,aAAaA,EAAM,QAAQ,UACtC,gBAAiBA,EAAM,QAAQ,WAAW,KAC5C,EAAE,ECdE,cAAAG,MAAA,oBALJ,IAAMD,EAAU,CAAC,CACf,SAAAE,EACA,aAAAC,CACF,IAEIF,EAACD,EAAA,CAAY,cAAY,iBAAkB,GAAGG,EAC3C,SAAAD,EACH,EAIGE,EAAQJ,EFmBT,OAOI,OAAAC,EAPJ,QAAAI,MAAA,oBAxBN,IAAMC,EAAS,CAAC,CACd,YAAAC,EACA,YAAAC,EACA,QAAAC,EACA,SAAAP,EACA,aAAAQ,EACA,eAAAC,EACA,SAAAC,EAAW,IACX,QAAAC,EACA,aAAAV,EACA,GAAAW,EACA,GAAGC,CACL,IAAmB,CACjB,IAAMC,EAAiBF,GAAM,UAC7B,OACET,EAACb,EAAA,CACC,OAAO,QACP,GAAIsB,EACJ,WAAY,CACV,GAAI,CAAE,MAAO,EAAG,SAAUF,CAAS,CACrC,EACA,QAASH,EACR,GAAGM,EAEJ,UAAAV,EAACR,EAAA,CAAO,UAAU,MAAO,GAAGW,EAC1B,UAAAP,EAACR,EAAA,CACC,aAAW,wBACX,cAAY,mBACZ,KAAK,QACL,QAASgB,EAET,SAAAR,EAACgB,EAAA,CAAK,KAAK,oBAAoB,MAAO,GAAI,EAC5C,EAEAhB,EAACF,EAAA,CAAa,SAAAQ,EAAY,GAC5B,EACAN,EAACiB,EAAA,CAAW,GAAGP,EACb,SAAAV,EAACP,EAAA,CAAM,EAAG,EAAI,GAAGgB,EACd,SAAAR,EACH,EACF,EAECW,GACCZ,EAACG,EAAA,CAAQ,aAAc,CAAE,GAAGD,EAAc,GAAIa,CAAe,EAC1D,SAAAH,EACH,GAEJ,CAEJ,EAEOM,EAAQb","sourcesContent":["import MuiDrawer from '@mui/material/Drawer';\nimport IconButton from '@mui/material/IconButton';\nimport Stack from '@mui/material/Stack';\n\nimport Icon from '../Icon';\nimport Scrollbar from '../Scrollbar';\n\nimport Actions from './Actions';\nimport { DrawerProps } from './props';\nimport { Header, HeaderTitle } from './styles';\n\nconst Drawer = ({\n headerTitle,\n headerProps,\n onClose,\n children,\n contentProps,\n scrollbarProps,\n maxWidth = 684,\n actions,\n actionsProps,\n id,\n ...other\n}: DrawerProps) => {\n const DRAWER_ACTIONS = id || '' + 'actions';\n return (\n <MuiDrawer\n anchor=\"right\"\n id={id}\n PaperProps={{\n sx: { width: 1, maxWidth: maxWidth },\n }}\n onClose={onClose}\n {...other}\n >\n <Header direction=\"row\" {...headerProps}>\n <IconButton\n aria-label=\"Fechar gaveta lateral\"\n data-testid=\"close-drawer-btn\"\n size=\"small\"\n onClick={onClose}\n >\n <Icon icon=\"CLOSE_MARK_BUTTON\" width={18} />\n </IconButton>\n\n <HeaderTitle>{headerTitle}</HeaderTitle>\n </Header>\n <Scrollbar {...scrollbarProps}>\n <Stack p={3} {...contentProps}>\n {children}\n </Stack>\n </Scrollbar>\n\n {actions && (\n <Actions actionsProps={{ ...actionsProps, id: DRAWER_ACTIONS }}>\n {actions}\n </Actions>\n )}\n </MuiDrawer>\n );\n};\n\nexport default Drawer;\n","import DialogActions from '@mui/material/DialogActions';\nimport Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const Header = styled(Stack)(({ theme }) => ({\n alignItems: 'center',\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n padding: '22px 20px',\n gap: 16,\n}));\n\nexport const HeaderTitle = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n fontSize: theme.typography.subtitle1.fontSize,\n fontWeight: theme.typography.subtitle1.fontWeight,\n fontFamily: theme.typography.fontFamily,\n}));\n\nexport const Actions = styled(DialogActions)(({ theme }) => ({\n borderTop: `1px solid ${theme.palette.divider}`,\n backgroundColor: theme.palette.background.paper,\n}));\n","import { PropsWithChildren } from 'react';\n\nimport { DrawerActionsProps } from './props';\nimport { Actions as ActionsElem } from './styles';\n\nconst Actions = ({\n children,\n actionsProps,\n}: PropsWithChildren<DrawerActionsProps>) => {\n return (\n <ActionsElem data-testid=\"drawer-actions\" {...actionsProps}>\n {children}\n </ActionsElem>\n );\n};\n\nexport default Actions;\n"]}
|
|
@@ -6,7 +6,7 @@ import { a as a$6 } from '../../../chunk-YX5SZL5S.js';
|
|
|
6
6
|
import { a as a$4 } from '../../../chunk-PLYIMNOS.js';
|
|
7
7
|
import { d as d$2 } from '../../../chunk-2W5FGLTC.js';
|
|
8
8
|
import { h, d as d$1, c as c$2 } from '../../../chunk-OF6623HG.js';
|
|
9
|
-
import { a as a$3 } from '../../../chunk-
|
|
9
|
+
import { a as a$3 } from '../../../chunk-Y5SAYYIA.js';
|
|
10
10
|
import { d } from '../../../chunk-WRS6EB73.js';
|
|
11
11
|
import { a as a$2 } from '../../../chunk-IR7WWQME.js';
|
|
12
12
|
import { a as a$1 } from '../../../chunk-4F2NKGF6.js';
|
|
@@ -5,7 +5,7 @@ import { a as a$8 } from '../../../chunk-DRGARBKB.js';
|
|
|
5
5
|
import { a as a$4 } from '../../../chunk-PLYIMNOS.js';
|
|
6
6
|
import { d as d$2 } from '../../../chunk-2W5FGLTC.js';
|
|
7
7
|
import { h, d, a as a$6, c as c$1 } from '../../../chunk-OF6623HG.js';
|
|
8
|
-
import { a as a$3 } from '../../../chunk-
|
|
8
|
+
import { a as a$3 } from '../../../chunk-Y5SAYYIA.js';
|
|
9
9
|
import { d as d$1 } from '../../../chunk-WRS6EB73.js';
|
|
10
10
|
import { a as a$2 } from '../../../chunk-IR7WWQME.js';
|
|
11
11
|
import { a as a$1 } from '../../../chunk-4F2NKGF6.js';
|
|
@@ -8,7 +8,7 @@ import { a as a$1 } from '../../chunk-PLYIMNOS.js';
|
|
|
8
8
|
import { a as a$8 } from '../../chunk-J7RPKCIN.js';
|
|
9
9
|
import { a as a$7 } from '../../chunk-XAPSXJZO.js';
|
|
10
10
|
import { c } from '../../chunk-VGTQYKAC.js';
|
|
11
|
-
import { a } from '../../chunk-
|
|
11
|
+
import { a } from '../../chunk-Y5SAYYIA.js';
|
|
12
12
|
import { a as a$3 } from '../../chunk-4F2NKGF6.js';
|
|
13
13
|
import { a as a$6 } from '../../chunk-CO2KQFUN.js';
|
|
14
14
|
import '../../chunk-F65ZXAGV.js';
|
|
@@ -7,22 +7,22 @@ import { a as a$3 } from '../../chunk-I4PPSW36.js';
|
|
|
7
7
|
import '../../chunk-7UJSGCXL.js';
|
|
8
8
|
import { a as a$2 } from '../../chunk-VJW7L44O.js';
|
|
9
9
|
import '../../chunk-Z6YXPKWP.js';
|
|
10
|
-
import { memo, useEffect, useState, useMemo, useCallback } from 'react';
|
|
10
|
+
import { memo, useRef, useEffect, useState, useMemo, useCallback } from 'react';
|
|
11
11
|
import { useFormContext, useWatch, useForm, FormProvider } from 'react-hook-form';
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
12
|
+
import ze from '@mui/material/LinearProgress';
|
|
13
|
+
import se from '@mui/material/Typography';
|
|
14
|
+
import Ie from '@mui/material/Switch';
|
|
15
|
+
import Pe from '@mui/material/TextField';
|
|
16
16
|
import j from '@mui/material/Box';
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
17
|
+
import ye from '@mui/material/Button';
|
|
18
|
+
import be from '@mui/material/Chip';
|
|
19
|
+
import ke from '@mui/material/Dialog';
|
|
20
|
+
import V from '@mui/material/Stack';
|
|
21
21
|
import { styled } from '@mui/material/styles';
|
|
22
22
|
import { DataGridPremium, GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
|
|
23
23
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
24
24
|
|
|
25
|
-
var X=styled(
|
|
25
|
+
var X=styled(ke)({"& .MuiDialog-paper":{margin:0,borderRadius:0,maxHeight:"100vh",padding:0,height:"100vh",width:"100%",maxWidth:"100%"}}),Z=styled(V)({height:"100%",minHeight:0}),J=styled(be)(({theme:e})=>({padding:0,"& .MuiChip-label":{color:e.palette.text.secondary,fontWeight:"700"}})),Q=styled(ye)(({theme:e})=>({color:e.palette.text.secondary})),Y=styled(j)({flex:1,minHeight:0,padding:0,display:"flex",alignItems:"stretch"}),ee=styled(DataGridPremium)(({theme:e})=>({flex:1,height:"100%",minHeight:320,borderRadius:e.shape.borderRadius,backgroundColor:e.palette.background.paper,"& .MuiDataGrid-columnHeaders":{borderBottom:`1px solid ${e.palette.divider}`,minHeight:48,maxHeight:48},"& .MuiDataGrid-columnHeader":{borderTop:`1px solid ${e.palette.divider} !important`,borderBottom:`1px solid ${e.palette.divider} !important`,minWidth:"120px !important"},"& .MuiDataGrid-cell":{alignItems:"stretch",borderTop:`1px solid ${e.palette.divider}`,minWidth:120,width:"100%",borderLeft:`1px solid ${e.palette.divider}`,padding:0},"& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus":{outline:"none"},"& .MuiDataGrid-withBorderColor":{borderColor:e.palette.divider},"& .MuiDataGrid-virtualScroller":{overflowX:"auto"},"& .MuiDataGrid-footerContainer":{borderTop:`1px solid ${e.palette.divider}`}})),B=styled(j)({display:"flex",alignItems:"center",width:"100%",height:"100%",padding:0,boxSizing:"border-box","& .MuiTypography-root":{width:"100%",overflow:"hidden",textOverflow:"ellipsis"}}),te=styled(se)(({theme:e})=>({color:e.palette.text.primary})),oe=styled(V)(({theme:e})=>({flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderTop:`1px solid ${e.palette.divider}`,padding:e.spacing(2,3),gap:e.spacing(2),flexWrap:"wrap"})),ne=styled(V)(({theme:e})=>({flexDirection:"row",alignItems:"center",gap:e.spacing(.5)}));var ie={"& .MuiOutlinedInput-root":{px:0,borderRadius:0,background:"transparent","& fieldset, &:hover fieldset, &.Mui-focused fieldset":{background:"transparent",borderRadius:0,border:"none"}},"& .MuiInputBase-input":{py:0,height:56,background:"transparent"}},Ee=e=>({disableUnderline:!0,sx:{px:0,"& input":{textAlign:e?"right":"left"}}}),Me=(e,t,a)=>{if(e==null||e==="")return null;if(t.type==="entity"){let l=t.options?.find(C=>C.value?.toString()===e?.toString());if(l)return l.label;let h=t.getSelectedOption?.(a,String(e));if(h)return h.label}if(typeof e=="object"){if("name"in e)return String(e.name);if("label"in e)return String(e.label);if("value"in e)return String(e.value)}return typeof e=="boolean"?e?"Sim":"N\xE3o":String(e)},Oe=({column:e,item:t,fieldPath:a$1,entityValue:l,disabled:h,onSelectOption:C})=>{let r=e.useAutocomplete(),w=r.options,s=l&&!w.some(y=>String(y.value)===l)?r.resolveOption?.(l)??e.getSelectedOption?.(t,l):void 0,n=s?[s,...w]:w;return jsx(B,{children:jsx(a,{fullWidth:!0,name:a$1,value:l,options:n,loading:r.loading,onSearch:r.onSearch,onOpen:r.onOpen,onClose:r.onClose,onScrollEnd:r.onScrollEnd,filterOptions:r.filterOptions,...r.noOptionsText!==void 0&&{noOptionsText:r.noOptionsText},disabled:h,size:"small",placeholder:"Preencher",sx:ie,disableClearable:!0,selectOnFocus:!0,onSelectOption:C})})},De=({column:e,item:t,rowIndex:a$1,itemId:l,onFieldChange:h,isFieldDisabled:C})=>{let{setValue:r,control:w}=useFormContext(),s=e.field,n=`items.${a$1}.${String(s)}`,y=useWatch({control:w,name:n,defaultValue:t?.[s]}),d=y===void 0?t?.[s]:y,M=useRef(0),b=useRef(null),I=e.readOnly||(C?C({item:t,field:s}):!1),R=String(s)==="id";if(e.readOnly||R){let o=Me(d,e,t);return jsx(B,{children:o?jsx(te,{variant:"body2",children:o}):jsx(se,{variant:"body2",color:"text.disabled",children:"-"})})}if(e.type==="boolean")return jsx(B,{sx:{justifyContent:"center"},children:jsx(Ie,{color:"primary",checked:!!d,inputProps:{"aria-label":e.headerName},onChange:o=>{let f=o.target.checked,p=d;r(n,f,{shouldDirty:!0,shouldTouch:!0});let c=h({itemId:l,field:s,value:f,previousValue:p});c&&typeof c.catch=="function"&&c.catch(()=>{r(n,p,{shouldDirty:!0,shouldTouch:!0});});},disabled:I})});if(e.type==="entity"){let o="";if(d!=null&&d!=="")if(typeof d=="object"){let u=d;"id"in u?o=String(u.id??""):"value"in u&&(o=String(u.value??""));}else o=String(d);let f=u=>{let P=d,S=h({itemId:l,field:s,value:u,previousValue:P});S&&typeof S.catch=="function"&&S.catch(()=>{r(n,P,{shouldDirty:!0,shouldTouch:!0});});};if(e.useAutocomplete)return jsx(Oe,{column:e,item:t,fieldPath:n,entityValue:o,disabled:I,onSelectOption:f});let p=e.options??[],c=o&&!p.some(u=>String(u.value)===o)?e.getSelectedOption?.(t,o):void 0,k=c?[c,...p]:p;return jsx(B,{children:jsx(a,{fullWidth:!0,name:n,value:o,options:k,disabled:I,size:"small",placeholder:"Preencher",sx:ie,disableClearable:!0,onSelectOption:f})})}let x=e.type==="number",v=d??"";return jsx(B,{sx:{justifyContent:x?"flex-end":"flex-start"},children:jsx(Pe,{fullWidth:!0,size:"small",type:x?"number":"text",placeholder:"Preencher","aria-label":e.headerName,name:n,value:v,variant:"standard",InputProps:{...Ee(x),...x&&{inputProps:{min:0}}},disabled:I,onWheel:o=>{x&&o.target.blur();},onKeyDown:o=>{(o.key===" "||o.key==="Spacebar")&&o.stopPropagation(),x&&(o.key==="-"||o.key==="e")&&o.preventDefault();},onChange:o=>{let f=o.target.value,p=f;if(x)if(f==="")p="";else {let P=Number(f);p=P<0?0:P;}r(n,p,{shouldDirty:!0,shouldTouch:!0});let c=M.current+=1,k=b.current?b.current.revertValue:d;b.current={seq:c,revertValue:k};let u=h({itemId:l,field:s,value:p});u&&typeof u.then=="function"&&u.then(()=>{b.current?.seq===c&&(b.current=null);},()=>{b.current?.seq===c&&(b.current=null,r(n,k,{shouldDirty:!0,shouldTouch:!0}));});}})})},ae=memo(De,(e,t)=>e.itemId===t.itemId&&e.rowIndex===t.rowIndex&&e.column===t.column&&e.isFieldDisabled===t.isFieldDisabled);var W="bulk-edit-datagrid-actions",ve=({setFilterButtonEl:e})=>{let t=useCallback(a=>{e(a);},[e]);return jsx(a$3,{container:W,children:jsx(GridToolbarColumnsButton,{ref:t,slotProps:{button:{color:"inherit",startIcon:jsx(a$2,{icon:"COLUMNS"}),children:"Colunas"}}})})},le=ve;var pe=({onClose:e,total:t,title:a})=>jsxs(V,{direction:"row",alignItems:"center",gap:3,sx:{px:3,py:0,minHeight:"var(--layout-nav-horizontal-height)"},children:[jsx(Q,{variant:"text",size:"small",startIcon:jsx(a$2,{icon:"CHEVRON_LEFT"}),onClick:e,children:"Sair"}),jsxs(V,{flex:1,direction:"row",alignItems:"center",component:"h2",m:0,gap:1,children:[jsx(se,{component:"span",variant:"h6",children:"Editando"}),typeof t=="number"&&jsx(J,{component:"span",disabled:!0,label:t,size:"small",color:"default"}),jsx(se,{component:"span",variant:"h6",children:a})]}),jsx(V,{direction:"row",alignItems:"center",justifyContent:"flex-end",gap:1,id:W})]});var ce=[10,25,50,100],We=e=>e.type==="number"?"right":e.type==="boolean"?"center":"left",Ne=({open:e,onClose:t,title:a,header:l,items:h,columns:C,getItemId:r$1,isLoading:w,page:s,perPage:n,total:y,onPageChange:d,onRowsPerPageChange:M,onFieldChange:b,isFieldDisabled:I,showColumnButton:R,initialState:x})=>{let[v,o]=useState(null),f=h,p=n>0?Math.ceil(y/n):0,c=p>0?p-1:0,k=Math.min(Math.max(s,0),c),u=useMemo(()=>({page:k,pageSize:n}),[n,k]),P=useMemo(()=>{let i=n?[n,...ce]:ce;return Array.from(new Set(i)).sort((O,F)=>O-F)},[n]),S=useCallback(i=>{i.pageSize!==n&&M(i.pageSize),(i.page!==s||i.pageSize!==n)&&d(i.page,i.pageSize);},[d,M,s,n]),me=useCallback(i=>{S({page:i,pageSize:n});},[S,n]),fe=useCallback(i=>{S({page:k,pageSize:i});},[S,k]),ge=useMemo(()=>C.map(i=>{let O=We(i),F=i.type==="boolean"?100:180;return {field:String(i.field),headerName:i.headerName,flex:1,minWidth:F,disableColumnMenu:!0,headerAlign:O,align:O,renderCell:D=>{let H=D.api.getRowIndexRelativeToVisibleRows(D.id),he=typeof H=="number"&&H>-1?H:0;return jsx(ae,{column:i,item:D.row,rowIndex:he,itemId:r$1(D.row),onFieldChange:b,isFieldDisabled:I})}}}),[C,r$1,I,b]);return jsx(X,{open:e,onClose:t,fullWidth:!0,children:jsxs(Z,{children:[l??jsx(pe,{onClose:t,total:y,title:a}),w&&jsx(ze,{sx:{height:2}}),jsx(Y,{children:jsx(ee,{columns:ge,rows:f,getRowId:i=>r$1(i),hideFooterSelectedRowCount:!0,hideFooter:!0,disableRowSelectionOnClick:!0,paginationModel:u,onPaginationModelChange:S,pageSizeOptions:P,paginationMode:"server",rowCount:y,rowHeight:56,loading:w,slots:{loadingOverlay:a$1,...R&&{toolbar:le}},slotProps:{panel:{anchorEl:v},toolbar:{setFilterButtonEl:o}},initialState:x})}),jsxs(oe,{children:[jsxs(ne,{component:"p",children:[jsx(se,{component:"span",variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(se,{component:"span",variant:"body2",children:y})]}),jsx(r,{count:y,page:k,rowsPerPage:n,onPageChange:me,onRowsPerPageChange:fe})]})]})})},Le=e=>{let{items:t}=e,a=useForm({defaultValues:{items:t}});return useEffect(()=>{a.reset({items:t});},[a,t]),jsx(FormProvider,{...a,children:jsx(Ne,{...e})})},Rt=Le;
|
|
26
26
|
|
|
27
|
-
export {
|
|
27
|
+
export { Rt as default };
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/BulkEditModal/index.tsx","../../../src/components/BulkEditModal/BulkEditGridCell.tsx","../../../src/components/BulkEditModal/styles.ts","../../../src/components/BulkEditModal/Header.tsx","../../../src/components/BulkEditModal/Toolbar.tsx"],"names":["useCallback","useEffect","useMemo","useState","FormProvider","useForm","LinearProgress","Typography","memo","useFormContext","useWatch","Switch","TextField","Box","Button","Chip","Dialog","Stack","styled","DataGridPremium","BulkEditDialog","BulkEditContainer","StyledChip","theme","StyledBackButton","GridWrapper","StyledDataGrid","CellContent","ReadOnlyText","Footer","FooterTotal","jsx","AUTOCOMPLETE_SX","getInputProps","isNumber","formatDisplayValue","value","column","item","option","opt","selectedOption","DynamicEntityCell","fieldPath","entityValue","disabled","onSelectOption","autocomplete","baseOptions","options","Autocomplete_default","BulkEditGridCellComponent","rowIndex","itemId","onFieldChange","isFieldDisabled","setValue","control","fieldName","watchedValue","cellValue","isDisabled","isIdField","displayValue","event","previousValue","result","recordValue","handleSelectOption","newValue","inputValue","rawValue","num","BulkEditGridCell","prev","next","GridToolbarColumnsButton","BULK_EDIT_DATAGRID_ACTIONS","BulkEditToolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Icon_default","Toolbar_default","jsxs","Header","onClose","total","title","DEFAULT_PAGE_SIZE_OPTIONS","resolveAlignment","BulkEditModalInner","open","header","items","columns","getItemId","isLoading","page","perPage","onPageChange","onRowsPerPageChange","showColumnButton","initialState","filterButtonEl","rows","totalPages","maxPage","safePage","paginationModel","pageSizeOptions","a","b","handlePaginationModelChange","model","handleFooterPageChange","newPage","handleFooterRowsPerPageChange","newRowsPerPage","dataGridColumns","align","baseWidth","params","visibleIndex","row","LoadingOverlay_default","Pagination_default","BulkEditModal","props","formMethods","BulkEditModal_default"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport type {\n GridSlots,\n GridSlotsComponentsProps,\n} from '@mui/x-data-grid-premium';\nimport {\n GridAlignment,\n GridColDef,\n GridPaginationModel,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport LoadingOverlay from 'components/DataGrid/LoadingOverlay';\nimport Pagination from 'components/DataView/Pagination';\n\nimport { BulkEditGridCell } from './BulkEditGridCell';\nimport { Header } from './Header';\nimport { type BulkEditModalInnerProps, type BulkEditModalProps } from './props';\nimport {\n BulkEditContainer,\n BulkEditDialog,\n Footer,\n FooterTotal,\n GridWrapper,\n StyledDataGrid,\n} from './styles';\nimport BulkEditToolbar from './Toolbar';\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\nconst resolveAlignment = <TItem extends Record<string, unknown>>(\n column: BulkEditModalInnerProps<TItem>['columns'][number],\n): GridAlignment => {\n if (column.type === 'number') return 'right';\n if (column.type === 'boolean') return 'center';\n return 'left';\n};\n\nconst BulkEditModalInner = <TItem extends Record<string, unknown>>({\n open,\n onClose,\n title,\n header,\n items,\n columns,\n getItemId,\n isLoading,\n page,\n perPage,\n total,\n onPageChange,\n onRowsPerPageChange,\n onFieldChange,\n isFieldDisabled,\n showColumnButton,\n initialState,\n}: BulkEditModalInnerProps<TItem>) => {\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const rows = items;\n\n const totalPages = perPage > 0 ? Math.ceil(total / perPage) : 0;\n const maxPage = totalPages > 0 ? totalPages - 1 : 0;\n const safePage = Math.min(Math.max(page, 0), maxPage);\n\n const paginationModel = useMemo(\n () => ({\n page: safePage,\n pageSize: perPage,\n }),\n [perPage, safePage],\n );\n\n const pageSizeOptions = useMemo(() => {\n const options = perPage\n ? [perPage, ...DEFAULT_PAGE_SIZE_OPTIONS]\n : DEFAULT_PAGE_SIZE_OPTIONS;\n return Array.from(new Set(options)).sort((a, b) => a - b);\n }, [perPage]);\n\n const handlePaginationModelChange = useCallback(\n (model: GridPaginationModel) => {\n if (model.pageSize !== perPage) {\n onRowsPerPageChange(model.pageSize);\n }\n\n if (model.page !== page || model.pageSize !== perPage) {\n onPageChange(model.page, model.pageSize);\n }\n },\n [onPageChange, onRowsPerPageChange, page, perPage],\n );\n\n const handleFooterPageChange = useCallback(\n (newPage: number) => {\n handlePaginationModelChange({ page: newPage, pageSize: perPage });\n },\n [handlePaginationModelChange, perPage],\n );\n\n const handleFooterRowsPerPageChange = useCallback(\n (newRowsPerPage: number) => {\n handlePaginationModelChange({ page: safePage, pageSize: newRowsPerPage });\n },\n [handlePaginationModelChange, safePage],\n );\n\n const dataGridColumns = useMemo<GridColDef<GridValidRowModel>[]>(\n () =>\n columns.map(column => {\n const align = resolveAlignment(column);\n const baseWidth = column.type === 'boolean' ? 100 : 180;\n\n return {\n field: String(column.field),\n headerName: column.headerName,\n flex: 1,\n minWidth: baseWidth,\n disableColumnMenu: true,\n headerAlign: align,\n align,\n renderCell: params => {\n const visibleIndex = params.api.getRowIndexRelativeToVisibleRows(\n params.id,\n );\n const rowIndex =\n typeof visibleIndex === 'number' && visibleIndex > -1\n ? visibleIndex\n : 0;\n\n return (\n <BulkEditGridCell\n column={column}\n item={params.row as TItem}\n rowIndex={rowIndex}\n itemId={getItemId(params.row as TItem)}\n onFieldChange={onFieldChange}\n isFieldDisabled={isFieldDisabled}\n />\n );\n },\n };\n }),\n [columns, getItemId, isFieldDisabled, onFieldChange],\n );\n\n return (\n <BulkEditDialog open={open} onClose={onClose} fullWidth>\n <BulkEditContainer>\n {header ?? <Header onClose={onClose} total={total} title={title} />}\n {isLoading && <LinearProgress sx={{ height: 2 }} />}\n\n <GridWrapper>\n <StyledDataGrid\n columns={dataGridColumns}\n rows={rows as unknown as GridValidRowModel[]}\n getRowId={row => getItemId(row as TItem)}\n hideFooterSelectedRowCount\n hideFooter\n disableRowSelectionOnClick\n paginationModel={paginationModel}\n onPaginationModelChange={handlePaginationModelChange}\n pageSizeOptions={pageSizeOptions}\n paginationMode=\"server\"\n rowCount={total}\n rowHeight={56}\n loading={isLoading}\n slots={{\n loadingOverlay: LoadingOverlay,\n ...(showColumnButton && {\n toolbar: BulkEditToolbar as unknown as GridSlots['toolbar'],\n }),\n }}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n }}\n initialState={initialState}\n />\n </GridWrapper>\n <Footer>\n <FooterTotal component=\"p\">\n <Typography component=\"span\" variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography component=\"span\" variant=\"body2\">\n {total}\n </Typography>\n </FooterTotal>\n <Pagination\n count={total}\n page={safePage}\n rowsPerPage={perPage}\n onPageChange={handleFooterPageChange}\n onRowsPerPageChange={handleFooterRowsPerPageChange}\n />\n </Footer>\n </BulkEditContainer>\n </BulkEditDialog>\n );\n};\n\nconst BulkEditModal = <TItem extends Record<string, unknown>>(\n props: BulkEditModalProps<TItem>,\n) => {\n const { items } = props;\n const formMethods = useForm<{ items: TItem[] }>({\n defaultValues: { items },\n });\n\n // O desempenho é melhor que values: { items } no useForm\n useEffect(() => {\n formMethods.reset({ items });\n }, [formMethods, items]);\n\n return (\n <FormProvider {...formMethods}>\n <BulkEditModalInner<TItem> {...props} />\n </FormProvider>\n );\n};\n\nexport * from './props';\n\nexport default BulkEditModal;\n","import { memo } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport Switch from '@mui/material/Switch';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\n\nimport Autocomplete from 'components/form/Autocomplete';\n\nimport {\n BulkEditGridCellProps,\n BulkEditModalColumn,\n BulkEditModalFieldChangeParams,\n DynamicEntityCellProps,\n} from './props';\nimport { CellContent, ReadOnlyText } from './styles';\n\nconst AUTOCOMPLETE_SX = {\n '& .MuiOutlinedInput-root': {\n px: 0,\n borderRadius: 0,\n background: 'transparent',\n '& fieldset, &:hover fieldset, &.Mui-focused fieldset': {\n background: 'transparent',\n borderRadius: 0,\n border: 'none',\n },\n },\n '& .MuiInputBase-input': {\n py: 0,\n height: 56,\n background: 'transparent',\n },\n} as const;\n\nconst getInputProps = (isNumber: boolean) => {\n return {\n disableUnderline: true,\n sx: {\n px: 0,\n '& input': {\n textAlign: isNumber ? 'right' : 'left',\n },\n },\n };\n};\n\nconst formatDisplayValue = <TItem extends Record<string, unknown>>(\n value: unknown,\n column: BulkEditModalColumn<TItem>,\n item: TItem,\n) => {\n if (value === null || value === undefined || value === '') {\n return null;\n }\n\n if (column.type === 'entity') {\n const option = column.options?.find(\n opt => opt.value?.toString() === value?.toString(),\n );\n if (option) {\n return option.label;\n }\n\n const selectedOption = column.getSelectedOption?.(item, String(value));\n if (selectedOption) {\n return selectedOption.label;\n }\n }\n\n if (typeof value === 'object') {\n if ('name' in (value as Record<string, unknown>)) {\n return String((value as { name: unknown }).name);\n }\n if ('label' in (value as Record<string, unknown>)) {\n return String((value as { label: unknown }).label);\n }\n if ('value' in (value as Record<string, unknown>)) {\n return String((value as { value: unknown }).value);\n }\n }\n\n if (typeof value === 'boolean') {\n return value ? 'Sim' : 'Não';\n }\n\n return String(value);\n};\n\nconst DynamicEntityCell = <TItem extends Record<string, unknown>>({\n column,\n item,\n fieldPath,\n entityValue,\n disabled,\n onSelectOption,\n}: DynamicEntityCellProps<TItem>) => {\n const autocomplete = column.useAutocomplete!();\n\n const baseOptions = autocomplete.options;\n const selectedOption =\n entityValue && !baseOptions.some(opt => String(opt.value) === entityValue)\n ? (autocomplete.resolveOption?.(entityValue) ??\n column.getSelectedOption?.(item, entityValue))\n : undefined;\n const options = selectedOption\n ? [selectedOption, ...baseOptions]\n : baseOptions;\n\n return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={options}\n loading={autocomplete.loading}\n onSearch={autocomplete.onSearch}\n onOpen={autocomplete.onOpen}\n onClose={autocomplete.onClose}\n onScrollEnd={autocomplete.onScrollEnd}\n filterOptions={autocomplete.filterOptions}\n {...(autocomplete.noOptionsText !== undefined && {\n noOptionsText: autocomplete.noOptionsText,\n })}\n disabled={disabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n selectOnFocus\n onSelectOption={onSelectOption}\n />\n </CellContent>\n );\n};\n\nconst BulkEditGridCellComponent = <TItem extends Record<string, unknown>>({\n column,\n item,\n rowIndex,\n itemId,\n onFieldChange,\n isFieldDisabled,\n}: BulkEditGridCellProps<TItem>) => {\n const { setValue, control } = useFormContext();\n const fieldName = column.field;\n const fieldPath = `items.${rowIndex}.${String(fieldName)}`;\n const watchedValue = useWatch({\n control,\n name: fieldPath,\n defaultValue: item?.[fieldName],\n });\n const cellValue =\n watchedValue === undefined ? item?.[fieldName] : watchedValue;\n const isDisabled =\n column.readOnly ||\n (isFieldDisabled ? isFieldDisabled({ item, field: fieldName }) : false);\n const isIdField = String(fieldName) === 'id';\n\n if (column.readOnly || isIdField) {\n const displayValue = formatDisplayValue(cellValue, column, item);\n\n return (\n <CellContent>\n {displayValue ? (\n <ReadOnlyText variant=\"body2\">{displayValue}</ReadOnlyText>\n ) : (\n <Typography variant=\"body2\" color=\"text.disabled\">\n -\n </Typography>\n )}\n </CellContent>\n );\n }\n\n if (column.type === 'boolean') {\n return (\n <CellContent sx={{ justifyContent: 'center' }}>\n <Switch\n color=\"primary\"\n checked={Boolean(cellValue)}\n inputProps={{ 'aria-label': column.headerName }}\n onChange={event => {\n const value = event.target.checked;\n const previousValue = cellValue;\n\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).catch === 'function'\n ) {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n }}\n disabled={isDisabled}\n />\n </CellContent>\n );\n }\n\n if (column.type === 'entity') {\n let entityValue = '';\n\n if (cellValue !== null && cellValue !== undefined && cellValue !== '') {\n if (typeof cellValue === 'object') {\n const recordValue = cellValue as Record<string, unknown>;\n\n if ('id' in recordValue) {\n entityValue = String(recordValue.id ?? '');\n } else if ('value' in recordValue) {\n entityValue = String(recordValue.value ?? '');\n }\n } else {\n entityValue = String(cellValue);\n }\n }\n\n const handleSelectOption = (newValue: unknown) => {\n const previousValue = cellValue;\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value: newValue,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (result && typeof (result as Promise<unknown>).catch === 'function') {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n };\n\n if (column.useAutocomplete) {\n return (\n <DynamicEntityCell\n column={column}\n item={item}\n fieldPath={fieldPath}\n entityValue={entityValue}\n disabled={isDisabled}\n onSelectOption={handleSelectOption}\n />\n );\n }\n\n const baseOptions = column.options ?? [];\n const selectedOption =\n entityValue &&\n !baseOptions.some(opt => String(opt.value) === entityValue)\n ? column.getSelectedOption?.(item, entityValue)\n : undefined;\n const options = selectedOption\n ? [selectedOption, ...baseOptions]\n : baseOptions;\n\n return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={options}\n disabled={isDisabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n onSelectOption={handleSelectOption}\n />\n </CellContent>\n );\n }\n\n const isNumber = column.type === 'number';\n const inputValue = cellValue ?? '';\n\n return (\n <CellContent sx={{ justifyContent: isNumber ? 'flex-end' : 'flex-start' }}>\n <TextField\n fullWidth\n size=\"small\"\n type={isNumber ? 'number' : 'text'}\n placeholder=\"Preencher\"\n aria-label={column.headerName}\n name={fieldPath}\n value={inputValue as string | number}\n variant=\"standard\"\n InputProps={{\n ...getInputProps(isNumber),\n ...(isNumber && { inputProps: { min: 0 } }),\n }}\n disabled={isDisabled}\n onWheel={event => {\n if (isNumber) {\n (event.target as HTMLInputElement).blur();\n }\n }}\n onKeyDown={event => {\n if (event.key === ' ' || event.key === 'Spacebar') {\n event.stopPropagation();\n }\n if (isNumber && (event.key === '-' || event.key === 'e')) {\n event.preventDefault();\n }\n }}\n onChange={event => {\n const rawValue = event.target.value;\n let value: string | number = rawValue;\n if (isNumber) {\n if (rawValue === '') {\n value = '';\n } else {\n const num = Number(rawValue);\n value = num < 0 ? 0 : num;\n }\n }\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n onFieldChange({\n itemId,\n field: fieldName,\n value,\n } as BulkEditModalFieldChangeParams<TItem>);\n }}\n />\n </CellContent>\n );\n};\n\nexport const BulkEditGridCell = memo(\n BulkEditGridCellComponent,\n (prev, next) =>\n prev.itemId === next.itemId &&\n prev.rowIndex === next.rowIndex &&\n prev.column === next.column &&\n prev.isFieldDisabled === next.isFieldDisabled,\n) as typeof BulkEditGridCellComponent;\n","import Box from '@mui/material/Box';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport Chip, { ChipProps } from '@mui/material/Chip';\nimport Dialog from '@mui/material/Dialog';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport { DataGridPremium } from '@mui/x-data-grid-premium';\n\nexport const BulkEditDialog = styled(Dialog)({\n '& .MuiDialog-paper': {\n margin: 0,\n borderRadius: 0,\n maxHeight: '100vh',\n padding: 0,\n height: '100vh',\n width: '100%',\n maxWidth: '100%',\n },\n});\n\nexport const BulkEditContainer = styled(Stack)({\n height: '100%',\n minHeight: 0,\n});\n\nexport const StyledChip = styled(Chip)<ChipProps>(({ theme }) => ({\n padding: 0,\n '& .MuiChip-label': {\n color: theme.palette.text.secondary,\n fontWeight: '700',\n },\n}));\n\nexport const StyledBackButton = styled(Button)<ButtonProps>(({ theme }) => ({\n color: theme.palette.text.secondary,\n}));\n\nexport const GridWrapper = styled(Box)({\n flex: 1,\n minHeight: 0,\n padding: 0,\n display: 'flex',\n alignItems: 'stretch',\n});\n\nexport const StyledDataGrid = styled(DataGridPremium)(({ theme }) => ({\n flex: 1,\n height: '100%',\n minHeight: 320,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.paper,\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n minHeight: 48,\n maxHeight: 48,\n },\n '& .MuiDataGrid-columnHeader': {\n borderTop: `1px solid ${theme.palette.divider} !important`,\n borderBottom: `1px solid ${theme.palette.divider} !important`,\n minWidth: '120px !important',\n },\n '& .MuiDataGrid-cell': {\n alignItems: 'stretch',\n borderTop: `1px solid ${theme.palette.divider}`,\n minWidth: 120,\n width: '100%',\n borderLeft: `1px solid ${theme.palette.divider}`,\n padding: 0,\n },\n '& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus': {\n outline: 'none',\n },\n '& .MuiDataGrid-withBorderColor': {\n borderColor: theme.palette.divider,\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'auto',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: `1px solid ${theme.palette.divider}`,\n },\n}));\n\nexport const CellContent = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n padding: 0,\n boxSizing: 'border-box',\n\n '& .MuiTypography-root': {\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport const ReadOnlyText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n}));\n\nexport const Footer = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(2, 3),\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n}));\n\nexport const FooterTotal = styled(Stack)<StackProps>(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}));\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from 'components/Icon';\n\nimport { HeaderProps } from './props';\nimport { StyledBackButton, StyledChip } from './styles';\nimport { BULK_EDIT_DATAGRID_ACTIONS } from './Toolbar';\n\nexport const Header = ({ onClose, total, title }: HeaderProps) => {\n const showTotal = typeof total === 'number';\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n gap={3}\n sx={{ px: 3, py: 0, minHeight: 'var(--layout-nav-horizontal-height)' }}\n >\n <StyledBackButton\n variant=\"text\"\n size=\"small\"\n startIcon={<Icon icon=\"CHEVRON_LEFT\" />}\n onClick={onClose}\n >\n Sair\n </StyledBackButton>\n\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n component=\"h2\"\n m={0}\n gap={1}\n >\n <Typography component=\"span\" variant=\"h6\">\n Editando\n </Typography>\n {showTotal && (\n <StyledChip\n component=\"span\"\n disabled\n label={total}\n size=\"small\"\n color=\"default\"\n />\n )}\n <Typography component=\"span\" variant=\"h6\">\n {title}\n </Typography>\n </Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n gap={1}\n id={BULK_EDIT_DATAGRID_ACTIONS}\n />\n </Stack>\n );\n};\n","import { useCallback } from 'react';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { BulkEditToolbarProps } from './props';\n\nexport const BULK_EDIT_DATAGRID_ACTIONS = 'bulk-edit-datagrid-actions';\n\nconst BulkEditToolbar = ({ setFilterButtonEl }: BulkEditToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={BULK_EDIT_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 BulkEditToolbar;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/BulkEditModal/index.tsx","../../../src/components/BulkEditModal/BulkEditGridCell.tsx","../../../src/components/BulkEditModal/styles.ts","../../../src/components/BulkEditModal/Header.tsx","../../../src/components/BulkEditModal/Toolbar.tsx"],"names":["useCallback","useEffect","useMemo","useState","FormProvider","useForm","LinearProgress","Typography","memo","useRef","useFormContext","useWatch","Switch","TextField","Box","Button","Chip","Dialog","Stack","styled","DataGridPremium","BulkEditDialog","BulkEditContainer","StyledChip","theme","StyledBackButton","GridWrapper","StyledDataGrid","CellContent","ReadOnlyText","Footer","FooterTotal","jsx","AUTOCOMPLETE_SX","getInputProps","isNumber","formatDisplayValue","value","column","item","option","opt","selectedOption","DynamicEntityCell","fieldPath","entityValue","disabled","onSelectOption","autocomplete","baseOptions","options","Autocomplete_default","BulkEditGridCellComponent","rowIndex","itemId","onFieldChange","isFieldDisabled","setValue","control","fieldName","watchedValue","cellValue","changeSeqRef","pendingChangeRef","isDisabled","isIdField","displayValue","event","previousValue","result","recordValue","handleSelectOption","newValue","inputValue","rawValue","num","seq","revertValue","BulkEditGridCell","prev","next","GridToolbarColumnsButton","BULK_EDIT_DATAGRID_ACTIONS","BulkEditToolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Icon_default","Toolbar_default","jsxs","Header","onClose","total","title","DEFAULT_PAGE_SIZE_OPTIONS","resolveAlignment","BulkEditModalInner","open","header","items","columns","getItemId","isLoading","page","perPage","onPageChange","onRowsPerPageChange","showColumnButton","initialState","filterButtonEl","rows","totalPages","maxPage","safePage","paginationModel","pageSizeOptions","a","b","handlePaginationModelChange","model","handleFooterPageChange","newPage","handleFooterRowsPerPageChange","newRowsPerPage","dataGridColumns","align","baseWidth","params","visibleIndex","row","LoadingOverlay_default","Pagination_default","BulkEditModal","props","formMethods","BulkEditModal_default"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport type {\n GridSlots,\n GridSlotsComponentsProps,\n} from '@mui/x-data-grid-premium';\nimport {\n GridAlignment,\n GridColDef,\n GridPaginationModel,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport LoadingOverlay from 'components/DataGrid/LoadingOverlay';\nimport Pagination from 'components/DataView/Pagination';\n\nimport { BulkEditGridCell } from './BulkEditGridCell';\nimport { Header } from './Header';\nimport { type BulkEditModalInnerProps, type BulkEditModalProps } from './props';\nimport {\n BulkEditContainer,\n BulkEditDialog,\n Footer,\n FooterTotal,\n GridWrapper,\n StyledDataGrid,\n} from './styles';\nimport BulkEditToolbar from './Toolbar';\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\nconst resolveAlignment = <TItem extends Record<string, unknown>>(\n column: BulkEditModalInnerProps<TItem>['columns'][number],\n): GridAlignment => {\n if (column.type === 'number') return 'right';\n if (column.type === 'boolean') return 'center';\n return 'left';\n};\n\nconst BulkEditModalInner = <TItem extends Record<string, unknown>>({\n open,\n onClose,\n title,\n header,\n items,\n columns,\n getItemId,\n isLoading,\n page,\n perPage,\n total,\n onPageChange,\n onRowsPerPageChange,\n onFieldChange,\n isFieldDisabled,\n showColumnButton,\n initialState,\n}: BulkEditModalInnerProps<TItem>) => {\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const rows = items;\n\n const totalPages = perPage > 0 ? Math.ceil(total / perPage) : 0;\n const maxPage = totalPages > 0 ? totalPages - 1 : 0;\n const safePage = Math.min(Math.max(page, 0), maxPage);\n\n const paginationModel = useMemo(\n () => ({\n page: safePage,\n pageSize: perPage,\n }),\n [perPage, safePage],\n );\n\n const pageSizeOptions = useMemo(() => {\n const options = perPage\n ? [perPage, ...DEFAULT_PAGE_SIZE_OPTIONS]\n : DEFAULT_PAGE_SIZE_OPTIONS;\n return Array.from(new Set(options)).sort((a, b) => a - b);\n }, [perPage]);\n\n const handlePaginationModelChange = useCallback(\n (model: GridPaginationModel) => {\n if (model.pageSize !== perPage) {\n onRowsPerPageChange(model.pageSize);\n }\n\n if (model.page !== page || model.pageSize !== perPage) {\n onPageChange(model.page, model.pageSize);\n }\n },\n [onPageChange, onRowsPerPageChange, page, perPage],\n );\n\n const handleFooterPageChange = useCallback(\n (newPage: number) => {\n handlePaginationModelChange({ page: newPage, pageSize: perPage });\n },\n [handlePaginationModelChange, perPage],\n );\n\n const handleFooterRowsPerPageChange = useCallback(\n (newRowsPerPage: number) => {\n handlePaginationModelChange({ page: safePage, pageSize: newRowsPerPage });\n },\n [handlePaginationModelChange, safePage],\n );\n\n const dataGridColumns = useMemo<GridColDef<GridValidRowModel>[]>(\n () =>\n columns.map(column => {\n const align = resolveAlignment(column);\n const baseWidth = column.type === 'boolean' ? 100 : 180;\n\n return {\n field: String(column.field),\n headerName: column.headerName,\n flex: 1,\n minWidth: baseWidth,\n disableColumnMenu: true,\n headerAlign: align,\n align,\n renderCell: params => {\n const visibleIndex = params.api.getRowIndexRelativeToVisibleRows(\n params.id,\n );\n const rowIndex =\n typeof visibleIndex === 'number' && visibleIndex > -1\n ? visibleIndex\n : 0;\n\n return (\n <BulkEditGridCell\n column={column}\n item={params.row as TItem}\n rowIndex={rowIndex}\n itemId={getItemId(params.row as TItem)}\n onFieldChange={onFieldChange}\n isFieldDisabled={isFieldDisabled}\n />\n );\n },\n };\n }),\n [columns, getItemId, isFieldDisabled, onFieldChange],\n );\n\n return (\n <BulkEditDialog open={open} onClose={onClose} fullWidth>\n <BulkEditContainer>\n {header ?? <Header onClose={onClose} total={total} title={title} />}\n {isLoading && <LinearProgress sx={{ height: 2 }} />}\n\n <GridWrapper>\n <StyledDataGrid\n columns={dataGridColumns}\n rows={rows as unknown as GridValidRowModel[]}\n getRowId={row => getItemId(row as TItem)}\n hideFooterSelectedRowCount\n hideFooter\n disableRowSelectionOnClick\n paginationModel={paginationModel}\n onPaginationModelChange={handlePaginationModelChange}\n pageSizeOptions={pageSizeOptions}\n paginationMode=\"server\"\n rowCount={total}\n rowHeight={56}\n loading={isLoading}\n slots={{\n loadingOverlay: LoadingOverlay,\n ...(showColumnButton && {\n toolbar: BulkEditToolbar as unknown as GridSlots['toolbar'],\n }),\n }}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n }}\n initialState={initialState}\n />\n </GridWrapper>\n <Footer>\n <FooterTotal component=\"p\">\n <Typography component=\"span\" variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography component=\"span\" variant=\"body2\">\n {total}\n </Typography>\n </FooterTotal>\n <Pagination\n count={total}\n page={safePage}\n rowsPerPage={perPage}\n onPageChange={handleFooterPageChange}\n onRowsPerPageChange={handleFooterRowsPerPageChange}\n />\n </Footer>\n </BulkEditContainer>\n </BulkEditDialog>\n );\n};\n\nconst BulkEditModal = <TItem extends Record<string, unknown>>(\n props: BulkEditModalProps<TItem>,\n) => {\n const { items } = props;\n const formMethods = useForm<{ items: TItem[] }>({\n defaultValues: { items },\n });\n\n // O desempenho é melhor que values: { items } no useForm\n useEffect(() => {\n formMethods.reset({ items });\n }, [formMethods, items]);\n\n return (\n <FormProvider {...formMethods}>\n <BulkEditModalInner<TItem> {...props} />\n </FormProvider>\n );\n};\n\nexport * from './props';\n\nexport default BulkEditModal;\n","import { memo, useRef } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport Switch from '@mui/material/Switch';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\n\nimport Autocomplete from 'components/form/Autocomplete';\n\nimport {\n BulkEditGridCellProps,\n BulkEditModalColumn,\n BulkEditModalFieldChangeParams,\n DynamicEntityCellProps,\n} from './props';\nimport { CellContent, ReadOnlyText } from './styles';\n\nconst AUTOCOMPLETE_SX = {\n '& .MuiOutlinedInput-root': {\n px: 0,\n borderRadius: 0,\n background: 'transparent',\n '& fieldset, &:hover fieldset, &.Mui-focused fieldset': {\n background: 'transparent',\n borderRadius: 0,\n border: 'none',\n },\n },\n '& .MuiInputBase-input': {\n py: 0,\n height: 56,\n background: 'transparent',\n },\n} as const;\n\nconst getInputProps = (isNumber: boolean) => {\n return {\n disableUnderline: true,\n sx: {\n px: 0,\n '& input': {\n textAlign: isNumber ? 'right' : 'left',\n },\n },\n };\n};\n\nconst formatDisplayValue = <TItem extends Record<string, unknown>>(\n value: unknown,\n column: BulkEditModalColumn<TItem>,\n item: TItem,\n) => {\n if (value === null || value === undefined || value === '') {\n return null;\n }\n\n if (column.type === 'entity') {\n const option = column.options?.find(\n opt => opt.value?.toString() === value?.toString(),\n );\n if (option) {\n return option.label;\n }\n\n const selectedOption = column.getSelectedOption?.(item, String(value));\n if (selectedOption) {\n return selectedOption.label;\n }\n }\n\n if (typeof value === 'object') {\n if ('name' in (value as Record<string, unknown>)) {\n return String((value as { name: unknown }).name);\n }\n if ('label' in (value as Record<string, unknown>)) {\n return String((value as { label: unknown }).label);\n }\n if ('value' in (value as Record<string, unknown>)) {\n return String((value as { value: unknown }).value);\n }\n }\n\n if (typeof value === 'boolean') {\n return value ? 'Sim' : 'Não';\n }\n\n return String(value);\n};\n\nconst DynamicEntityCell = <TItem extends Record<string, unknown>>({\n column,\n item,\n fieldPath,\n entityValue,\n disabled,\n onSelectOption,\n}: DynamicEntityCellProps<TItem>) => {\n const autocomplete = column.useAutocomplete!();\n\n const baseOptions = autocomplete.options;\n const selectedOption =\n entityValue && !baseOptions.some(opt => String(opt.value) === entityValue)\n ? (autocomplete.resolveOption?.(entityValue) ??\n column.getSelectedOption?.(item, entityValue))\n : undefined;\n const options = selectedOption\n ? [selectedOption, ...baseOptions]\n : baseOptions;\n\n return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={options}\n loading={autocomplete.loading}\n onSearch={autocomplete.onSearch}\n onOpen={autocomplete.onOpen}\n onClose={autocomplete.onClose}\n onScrollEnd={autocomplete.onScrollEnd}\n filterOptions={autocomplete.filterOptions}\n {...(autocomplete.noOptionsText !== undefined && {\n noOptionsText: autocomplete.noOptionsText,\n })}\n disabled={disabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n selectOnFocus\n onSelectOption={onSelectOption}\n />\n </CellContent>\n );\n};\n\nconst BulkEditGridCellComponent = <TItem extends Record<string, unknown>>({\n column,\n item,\n rowIndex,\n itemId,\n onFieldChange,\n isFieldDisabled,\n}: BulkEditGridCellProps<TItem>) => {\n const { setValue, control } = useFormContext();\n const fieldName = column.field;\n const fieldPath = `items.${rowIndex}.${String(fieldName)}`;\n const watchedValue = useWatch({\n control,\n name: fieldPath,\n defaultValue: item?.[fieldName],\n });\n const cellValue =\n watchedValue === undefined ? item?.[fieldName] : watchedValue;\n\n const changeSeqRef = useRef(0);\n const pendingChangeRef = useRef<{ seq: number; revertValue: unknown } | null>(\n null,\n );\n const isDisabled =\n column.readOnly ||\n (isFieldDisabled ? isFieldDisabled({ item, field: fieldName }) : false);\n const isIdField = String(fieldName) === 'id';\n\n if (column.readOnly || isIdField) {\n const displayValue = formatDisplayValue(cellValue, column, item);\n\n return (\n <CellContent>\n {displayValue ? (\n <ReadOnlyText variant=\"body2\">{displayValue}</ReadOnlyText>\n ) : (\n <Typography variant=\"body2\" color=\"text.disabled\">\n -\n </Typography>\n )}\n </CellContent>\n );\n }\n\n if (column.type === 'boolean') {\n return (\n <CellContent sx={{ justifyContent: 'center' }}>\n <Switch\n color=\"primary\"\n checked={Boolean(cellValue)}\n inputProps={{ 'aria-label': column.headerName }}\n onChange={event => {\n const value = event.target.checked;\n const previousValue = cellValue;\n\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).catch === 'function'\n ) {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n }}\n disabled={isDisabled}\n />\n </CellContent>\n );\n }\n\n if (column.type === 'entity') {\n let entityValue = '';\n\n if (cellValue !== null && cellValue !== undefined && cellValue !== '') {\n if (typeof cellValue === 'object') {\n const recordValue = cellValue as Record<string, unknown>;\n\n if ('id' in recordValue) {\n entityValue = String(recordValue.id ?? '');\n } else if ('value' in recordValue) {\n entityValue = String(recordValue.value ?? '');\n }\n } else {\n entityValue = String(cellValue);\n }\n }\n\n const handleSelectOption = (newValue: unknown) => {\n const previousValue = cellValue;\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value: newValue,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (result && typeof (result as Promise<unknown>).catch === 'function') {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n };\n\n if (column.useAutocomplete) {\n return (\n <DynamicEntityCell\n column={column}\n item={item}\n fieldPath={fieldPath}\n entityValue={entityValue}\n disabled={isDisabled}\n onSelectOption={handleSelectOption}\n />\n );\n }\n\n const baseOptions = column.options ?? [];\n const selectedOption =\n entityValue && !baseOptions.some(opt => String(opt.value) === entityValue)\n ? column.getSelectedOption?.(item, entityValue)\n : undefined;\n const options = selectedOption\n ? [selectedOption, ...baseOptions]\n : baseOptions;\n\n return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={options}\n disabled={isDisabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n onSelectOption={handleSelectOption}\n />\n </CellContent>\n );\n }\n\n const isNumber = column.type === 'number';\n const inputValue = cellValue ?? '';\n\n return (\n <CellContent sx={{ justifyContent: isNumber ? 'flex-end' : 'flex-start' }}>\n <TextField\n fullWidth\n size=\"small\"\n type={isNumber ? 'number' : 'text'}\n placeholder=\"Preencher\"\n aria-label={column.headerName}\n name={fieldPath}\n value={inputValue as string | number}\n variant=\"standard\"\n InputProps={{\n ...getInputProps(isNumber),\n ...(isNumber && { inputProps: { min: 0 } }),\n }}\n disabled={isDisabled}\n onWheel={event => {\n if (isNumber) {\n (event.target as HTMLInputElement).blur();\n }\n }}\n onKeyDown={event => {\n if (event.key === ' ' || event.key === 'Spacebar') {\n event.stopPropagation();\n }\n if (isNumber && (event.key === '-' || event.key === 'e')) {\n event.preventDefault();\n }\n }}\n onChange={event => {\n const rawValue = event.target.value;\n let value: string | number = rawValue;\n if (isNumber) {\n if (rawValue === '') {\n value = '';\n } else {\n const num = Number(rawValue);\n value = num < 0 ? 0 : num;\n }\n }\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n const seq = (changeSeqRef.current += 1);\n const revertValue = pendingChangeRef.current\n ? pendingChangeRef.current.revertValue\n : cellValue;\n pendingChangeRef.current = { seq, revertValue };\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).then === 'function'\n ) {\n (result as Promise<unknown>).then(\n () => {\n if (pendingChangeRef.current?.seq === seq) {\n pendingChangeRef.current = null;\n }\n },\n () => {\n if (pendingChangeRef.current?.seq !== seq) {\n return;\n }\n\n pendingChangeRef.current = null;\n setValue(fieldPath, revertValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n },\n );\n }\n }}\n />\n </CellContent>\n );\n};\n\nexport const BulkEditGridCell = memo(\n BulkEditGridCellComponent,\n (prev, next) =>\n prev.itemId === next.itemId &&\n prev.rowIndex === next.rowIndex &&\n prev.column === next.column &&\n prev.isFieldDisabled === next.isFieldDisabled,\n) as typeof BulkEditGridCellComponent;\n","import Box from '@mui/material/Box';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport Chip, { ChipProps } from '@mui/material/Chip';\nimport Dialog from '@mui/material/Dialog';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport { DataGridPremium } from '@mui/x-data-grid-premium';\n\nexport const BulkEditDialog = styled(Dialog)({\n '& .MuiDialog-paper': {\n margin: 0,\n borderRadius: 0,\n maxHeight: '100vh',\n padding: 0,\n height: '100vh',\n width: '100%',\n maxWidth: '100%',\n },\n});\n\nexport const BulkEditContainer = styled(Stack)({\n height: '100%',\n minHeight: 0,\n});\n\nexport const StyledChip = styled(Chip)<ChipProps>(({ theme }) => ({\n padding: 0,\n '& .MuiChip-label': {\n color: theme.palette.text.secondary,\n fontWeight: '700',\n },\n}));\n\nexport const StyledBackButton = styled(Button)<ButtonProps>(({ theme }) => ({\n color: theme.palette.text.secondary,\n}));\n\nexport const GridWrapper = styled(Box)({\n flex: 1,\n minHeight: 0,\n padding: 0,\n display: 'flex',\n alignItems: 'stretch',\n});\n\nexport const StyledDataGrid = styled(DataGridPremium)(({ theme }) => ({\n flex: 1,\n height: '100%',\n minHeight: 320,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.paper,\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n minHeight: 48,\n maxHeight: 48,\n },\n '& .MuiDataGrid-columnHeader': {\n borderTop: `1px solid ${theme.palette.divider} !important`,\n borderBottom: `1px solid ${theme.palette.divider} !important`,\n minWidth: '120px !important',\n },\n '& .MuiDataGrid-cell': {\n alignItems: 'stretch',\n borderTop: `1px solid ${theme.palette.divider}`,\n minWidth: 120,\n width: '100%',\n borderLeft: `1px solid ${theme.palette.divider}`,\n padding: 0,\n },\n '& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus': {\n outline: 'none',\n },\n '& .MuiDataGrid-withBorderColor': {\n borderColor: theme.palette.divider,\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'auto',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: `1px solid ${theme.palette.divider}`,\n },\n}));\n\nexport const CellContent = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n padding: 0,\n boxSizing: 'border-box',\n\n '& .MuiTypography-root': {\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport const ReadOnlyText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n}));\n\nexport const Footer = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(2, 3),\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n}));\n\nexport const FooterTotal = styled(Stack)<StackProps>(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}));\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from 'components/Icon';\n\nimport { HeaderProps } from './props';\nimport { StyledBackButton, StyledChip } from './styles';\nimport { BULK_EDIT_DATAGRID_ACTIONS } from './Toolbar';\n\nexport const Header = ({ onClose, total, title }: HeaderProps) => {\n const showTotal = typeof total === 'number';\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n gap={3}\n sx={{ px: 3, py: 0, minHeight: 'var(--layout-nav-horizontal-height)' }}\n >\n <StyledBackButton\n variant=\"text\"\n size=\"small\"\n startIcon={<Icon icon=\"CHEVRON_LEFT\" />}\n onClick={onClose}\n >\n Sair\n </StyledBackButton>\n\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n component=\"h2\"\n m={0}\n gap={1}\n >\n <Typography component=\"span\" variant=\"h6\">\n Editando\n </Typography>\n {showTotal && (\n <StyledChip\n component=\"span\"\n disabled\n label={total}\n size=\"small\"\n color=\"default\"\n />\n )}\n <Typography component=\"span\" variant=\"h6\">\n {title}\n </Typography>\n </Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n gap={1}\n id={BULK_EDIT_DATAGRID_ACTIONS}\n />\n </Stack>\n );\n};\n","import { useCallback } from 'react';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { BulkEditToolbarProps } from './props';\n\nexport const BULK_EDIT_DATAGRID_ACTIONS = 'bulk-edit-datagrid-actions';\n\nconst BulkEditToolbar = ({ setFilterButtonEl }: BulkEditToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={BULK_EDIT_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 BulkEditToolbar;\n"]}
|
|
@@ -3,17 +3,32 @@ import { ReactNode } from 'react';
|
|
|
3
3
|
import { DialogActionsProps } from '@mui/material/DialogActions';
|
|
4
4
|
import { DrawerProps as DrawerProps$1 } from '@mui/material/Drawer';
|
|
5
5
|
import { StackProps } from '@mui/material/Stack';
|
|
6
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
7
|
+
import { Props } from 'simplebar-react';
|
|
8
|
+
|
|
9
|
+
type ScrollbarProps = Props & {
|
|
10
|
+
sx?: SxProps<Theme>;
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
fillContent?: boolean;
|
|
13
|
+
naturalScroll?: boolean;
|
|
14
|
+
slotProps?: {
|
|
15
|
+
wrapper?: SxProps<Theme>;
|
|
16
|
+
contentWrapper?: SxProps<Theme>;
|
|
17
|
+
content?: Partial<SxProps<Theme>>;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
6
20
|
|
|
7
21
|
interface DrawerProps extends DrawerProps$1 {
|
|
8
22
|
headerTitle: ReactNode;
|
|
9
23
|
headerProps?: StackProps;
|
|
10
24
|
onClose?: VoidFunction;
|
|
11
25
|
contentProps?: StackProps;
|
|
26
|
+
scrollbarProps?: ScrollbarProps;
|
|
12
27
|
maxWidth?: number;
|
|
13
28
|
actions?: ReactNode;
|
|
14
29
|
actionsProps?: DialogActionsProps;
|
|
15
30
|
}
|
|
16
31
|
|
|
17
|
-
declare const Drawer: ({ headerTitle, headerProps, onClose, children, contentProps, maxWidth, actions, actionsProps, id, ...other }: DrawerProps) => react_jsx_runtime.JSX.Element;
|
|
32
|
+
declare const Drawer: ({ headerTitle, headerProps, onClose, children, contentProps, scrollbarProps, maxWidth, actions, actionsProps, id, ...other }: DrawerProps) => react_jsx_runtime.JSX.Element;
|
|
18
33
|
|
|
19
34
|
export { Drawer as default };
|
package/package.json
CHANGED
package/dist/chunk-ADNBF5AS.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { a as a$1 } from './chunk-F65ZXAGV.js';
|
|
2
|
-
import { a } from './chunk-VJW7L44O.js';
|
|
3
|
-
import S from '@mui/material/Drawer';
|
|
4
|
-
import T from '@mui/material/IconButton';
|
|
5
|
-
import l from '@mui/material/Stack';
|
|
6
|
-
import y from '@mui/material/DialogActions';
|
|
7
|
-
import { styled } from '@mui/material/styles';
|
|
8
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
-
|
|
10
|
-
var c=styled(l)(({theme:r})=>({alignItems:"center",borderBottom:`1px solid ${r.palette.grey[300]}`,padding:"22px 20px",gap:16})),d=styled(l)(({theme:r})=>({flexDirection:"row",alignItems:"center",gap:8,flex:1,fontSize:r.typography.subtitle1.fontSize,fontWeight:r.typography.subtitle1.fontWeight,fontFamily:r.typography.fontFamily})),m=styled(y)(({theme:r})=>({borderTop:`1px solid ${r.palette.divider}`,backgroundColor:r.palette.background.paper}));var D=({children:r,actionsProps:t})=>jsx(m,{"data-testid":"drawer-actions",...t,children:r}),f=D;var C=({headerTitle:r,headerProps:t,onClose:i,children:w,contentProps:A,maxWidth:h=684,actions:a$2,actionsProps:x,id:p,...b})=>{let u=p||"actions";return jsxs(S,{anchor:"right",id:p,PaperProps:{sx:{width:1,maxWidth:h}},onClose:i,...b,children:[jsxs(c,{direction:"row",...t,children:[jsx(T,{"aria-label":"Fechar gaveta lateral","data-testid":"close-drawer-btn",size:"small",onClick:i,children:jsx(a,{icon:"CLOSE_MARK_BUTTON",width:18})}),jsx(d,{children:r})]}),jsx(a$1,{children:jsx(l,{p:3,...A,children:w})}),a$2&&jsx(f,{actionsProps:{...x,id:u},children:a$2})]})},K=C;
|
|
11
|
-
|
|
12
|
-
export { K as a };
|
|
13
|
-
//# sourceMappingURL=chunk-ADNBF5AS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Drawer/index.tsx","../src/components/Drawer/styles.ts","../src/components/Drawer/Actions.tsx"],"names":["MuiDrawer","IconButton","Stack","DialogActions","styled","Header","theme","HeaderTitle","Actions","jsx","children","actionsProps","Actions_default","jsxs","Drawer","headerTitle","headerProps","onClose","contentProps","maxWidth","actions","id","other","DRAWER_ACTIONS","Icon_default","Scrollbar_default","Drawer_default"],"mappings":"gFAAA,OAAOA,MAAe,uBACtB,OAAOC,MAAgB,2BACvB,OAAOC,MAAW,sBCFlB,OAAOC,MAAmB,8BAC1B,OAAOD,MAAW,sBAClB,OAAS,UAAAE,MAAc,uBAEhB,IAAMC,EAASD,EAAOF,CAAK,EAAE,CAAC,CAAE,MAAAI,CAAM,KAAO,CAClD,WAAY,SACZ,aAAc,aAAaA,EAAM,QAAQ,KAAK,GAAG,IACjD,QAAS,YACT,IAAK,EACP,EAAE,EAEWC,EAAcH,EAAOF,CAAK,EAAE,CAAC,CAAE,MAAAI,CAAM,KAAO,CACvD,cAAe,MACf,WAAY,SACZ,IAAK,EACL,KAAM,EACN,SAAUA,EAAM,WAAW,UAAU,SACrC,WAAYA,EAAM,WAAW,UAAU,WACvC,WAAYA,EAAM,WAAW,UAC/B,EAAE,EAEWE,EAAUJ,EAAOD,CAAa,EAAE,CAAC,CAAE,MAAAG,CAAM,KAAO,CAC3D,UAAW,aAAaA,EAAM,QAAQ,UACtC,gBAAiBA,EAAM,QAAQ,WAAW,KAC5C,EAAE,ECdE,cAAAG,MAAA,oBALJ,IAAMD,EAAU,CAAC,CACf,SAAAE,EACA,aAAAC,CACF,IAEIF,EAACD,EAAA,CAAY,cAAY,iBAAkB,GAAGG,EAC3C,SAAAD,EACH,EAIGE,EAAQJ,EFkBT,OAOI,OAAAC,EAPJ,QAAAI,MAAA,oBAvBN,IAAMC,EAAS,CAAC,CACd,YAAAC,EACA,YAAAC,EACA,QAAAC,EACA,SAAAP,EACA,aAAAQ,EACA,SAAAC,EAAW,IACX,QAAAC,EACA,aAAAT,EACA,GAAAU,EACA,GAAGC,CACL,IAAmB,CACjB,IAAMC,EAAiBF,GAAM,UAC7B,OACER,EAACb,EAAA,CACC,OAAO,QACP,GAAIqB,EACJ,WAAY,CACV,GAAI,CAAE,MAAO,EAAG,SAAUF,CAAS,CACrC,EACA,QAASF,EACR,GAAGK,EAEJ,UAAAT,EAACR,EAAA,CAAO,UAAU,MAAO,GAAGW,EAC1B,UAAAP,EAACR,EAAA,CACC,aAAW,wBACX,cAAY,mBACZ,KAAK,QACL,QAASgB,EAET,SAAAR,EAACe,EAAA,CAAK,KAAK,oBAAoB,MAAO,GAAI,EAC5C,EAEAf,EAACF,EAAA,CAAa,SAAAQ,EAAY,GAC5B,EACAN,EAACgB,EAAA,CACC,SAAAhB,EAACP,EAAA,CAAM,EAAG,EAAI,GAAGgB,EACd,SAAAR,EACH,EACF,EAECU,GACCX,EAACG,EAAA,CAAQ,aAAc,CAAE,GAAGD,EAAc,GAAIY,CAAe,EAC1D,SAAAH,EACH,GAEJ,CAEJ,EAEOM,EAAQZ","sourcesContent":["import MuiDrawer from '@mui/material/Drawer';\nimport IconButton from '@mui/material/IconButton';\nimport Stack from '@mui/material/Stack';\n\nimport Icon from '../Icon';\nimport Scrollbar from '../Scrollbar';\n\nimport Actions from './Actions';\nimport { DrawerProps } from './props';\nimport { Header, HeaderTitle } from './styles';\n\nconst Drawer = ({\n headerTitle,\n headerProps,\n onClose,\n children,\n contentProps,\n maxWidth = 684,\n actions,\n actionsProps,\n id,\n ...other\n}: DrawerProps) => {\n const DRAWER_ACTIONS = id || '' + 'actions';\n return (\n <MuiDrawer\n anchor=\"right\"\n id={id}\n PaperProps={{\n sx: { width: 1, maxWidth: maxWidth },\n }}\n onClose={onClose}\n {...other}\n >\n <Header direction=\"row\" {...headerProps}>\n <IconButton\n aria-label=\"Fechar gaveta lateral\"\n data-testid=\"close-drawer-btn\"\n size=\"small\"\n onClick={onClose}\n >\n <Icon icon=\"CLOSE_MARK_BUTTON\" width={18} />\n </IconButton>\n\n <HeaderTitle>{headerTitle}</HeaderTitle>\n </Header>\n <Scrollbar>\n <Stack p={3} {...contentProps}>\n {children}\n </Stack>\n </Scrollbar>\n\n {actions && (\n <Actions actionsProps={{ ...actionsProps, id: DRAWER_ACTIONS }}>\n {actions}\n </Actions>\n )}\n </MuiDrawer>\n );\n};\n\nexport default Drawer;\n","import DialogActions from '@mui/material/DialogActions';\nimport Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\n\nexport const Header = styled(Stack)(({ theme }) => ({\n alignItems: 'center',\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n padding: '22px 20px',\n gap: 16,\n}));\n\nexport const HeaderTitle = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n fontSize: theme.typography.subtitle1.fontSize,\n fontWeight: theme.typography.subtitle1.fontWeight,\n fontFamily: theme.typography.fontFamily,\n}));\n\nexport const Actions = styled(DialogActions)(({ theme }) => ({\n borderTop: `1px solid ${theme.palette.divider}`,\n backgroundColor: theme.palette.background.paper,\n}));\n","import { PropsWithChildren } from 'react';\n\nimport { DrawerActionsProps } from './props';\nimport { Actions as ActionsElem } from './styles';\n\nconst Actions = ({\n children,\n actionsProps,\n}: PropsWithChildren<DrawerActionsProps>) => {\n return (\n <ActionsElem data-testid=\"drawer-actions\" {...actionsProps}>\n {children}\n </ActionsElem>\n );\n};\n\nexport default Actions;\n"]}
|