@zydon/common 2.9.14 → 2.9.16

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.
@@ -1,28 +1,28 @@
1
- import { a } from '../../chunk-JYG5DKR3.js';
1
+ import { a } from '../../chunk-235M242H.js';
2
2
  import { r } from '../../chunk-XUDTPZHF.js';
3
3
  import '../../chunk-UVPQR2Q2.js';
4
4
  import { a as a$1 } from '../../chunk-RBTYTONM.js';
5
5
  import '../../chunk-CO2KQFUN.js';
6
6
  import { a as a$3 } from '../../chunk-I4PPSW36.js';
7
- import '../../chunk-SC6LFS3A.js';
7
+ import '../../chunk-3HJISSG2.js';
8
8
  import { a as a$2 } from '../../chunk-YSQ5AYHV.js';
9
9
  import '../../chunk-TPOL2YXC.js';
10
10
  import { memo, useEffect, useState, useMemo, useCallback } from 'react';
11
11
  import { useFormContext, useWatch, useForm, FormProvider } from 'react-hook-form';
12
- import Vt from '@mui/material/LinearProgress';
13
- import rt from '@mui/material/Typography';
12
+ import zt from '@mui/material/LinearProgress';
13
+ import at from '@mui/material/Typography';
14
14
  import wt from '@mui/material/Switch';
15
15
  import It from '@mui/material/TextField';
16
- import U from '@mui/material/Box';
17
- import gt from '@mui/material/Button';
18
- import ht from '@mui/material/Chip';
19
- import yt from '@mui/material/Dialog';
20
- import v from '@mui/material/Stack';
16
+ import j from '@mui/material/Box';
17
+ import ht from '@mui/material/Button';
18
+ import yt from '@mui/material/Chip';
19
+ import bt from '@mui/material/Dialog';
20
+ import A 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 K=styled(yt)({"& .MuiDialog-paper":{margin:0,borderRadius:0,maxHeight:"100vh",padding:0,height:"100vh",width:"100%",maxWidth:"100%"}}),j=styled(v)({height:"100%",minHeight:0}),X=styled(ht)(({theme:t})=>({padding:0,"& .MuiChip-label":{color:t.palette.text.secondary,fontWeight:"700"}})),Z=styled(gt)(({theme:t})=>({color:t.palette.text.secondary})),q=styled(U)({flex:1,minHeight:0,padding:0,display:"flex",alignItems:"stretch"}),J=styled(DataGridPremium)(({theme:t})=>({flex:1,height:"100%",minHeight:320,borderRadius:t.shape.borderRadius,backgroundColor:t.palette.background.paper,"& .MuiDataGrid-columnHeaders":{borderBottom:`1px solid ${t.palette.divider}`,minHeight:48,maxHeight:48},"& .MuiDataGrid-columnHeader":{borderTop:`1px solid ${t.palette.divider} !important`,borderBottom:`1px solid ${t.palette.divider} !important`,minWidth:"120px !important"},"& .MuiDataGrid-cell":{alignItems:"stretch",borderTop:`1px solid ${t.palette.divider}`,minWidth:120,width:"100%",borderLeft:`1px solid ${t.palette.divider}`,padding:0},"& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus":{outline:"none"},"& .MuiDataGrid-withBorderColor":{borderColor:t.palette.divider},"& .MuiDataGrid-virtualScroller":{overflowX:"auto"},"& .MuiDataGrid-footerContainer":{borderTop:`1px solid ${t.palette.divider}`}})),I=styled(U)({display:"flex",alignItems:"center",width:"100%",height:"100%",padding:0,boxSizing:"border-box","& .MuiTypography-root":{width:"100%",overflow:"hidden",textOverflow:"ellipsis"}}),Q=styled(rt)(({theme:t})=>({color:t.palette.text.primary})),Y=styled(v)(({theme:t})=>({flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderTop:`1px solid ${t.palette.divider}`,padding:t.spacing(2,3),gap:t.spacing(2),flexWrap:"wrap"})),tt=styled(v)(({theme:t})=>({flexDirection:"row",alignItems:"center",gap:t.spacing(.5)}));var Bt={"& .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"}},Mt=t=>({disableUnderline:!0,sx:{px:0,"& input":{textAlign:t?"right":"left"}}}),Pt=(t,o)=>{if(t==null||t==="")return null;if(o.type==="entity"&&o.options){let a=o.options.find(g=>g.value?.toString()===t?.toString());if(a)return a.label}if(typeof t=="object"){if("name"in t)return String(t.name);if("label"in t)return String(t.label);if("value"in t)return String(t.value)}return typeof t=="boolean"?t?"Sim":"N\xE3o":String(t)},Et=({column:t,item:o,rowIndex:a$1,itemId:g,onFieldChange:T,isFieldDisabled:x})=>{let{setValue:h,control:S}=useFormContext(),d=t.field,r=`items.${a$1}.${String(d)}`,y=useWatch({control:S,name:r,defaultValue:o?.[d]}),l=y===void 0?o?.[d]:y,b=t.readOnly||(x?x({item:o,field:d}):!1),B=String(d)==="id";if(t.readOnly||B){let e=Pt(l,t);return jsx(I,{children:e?jsx(Q,{variant:"body2",children:e}):jsx(rt,{variant:"body2",color:"text.disabled",children:"-"})})}if(t.type==="boolean")return jsx(I,{sx:{justifyContent:"center"},children:jsx(wt,{color:"primary",checked:!!l,inputProps:{"aria-label":t.headerName},onChange:e=>{let i=e.target.checked,s=l;h(r,i,{shouldDirty:!0,shouldTouch:!0});let p=T({itemId:g,field:d,value:i,previousValue:s});p&&typeof p.catch=="function"&&p.catch(()=>{h(r,s,{shouldDirty:!0,shouldTouch:!0});});},disabled:b})});if(t.type==="entity"){let e="";if(l!=null&&l!=="")if(typeof l=="object"){let i=l;"id"in i?e=String(i.id??""):"value"in i&&(e=String(i.value??""));}else e=String(l);return jsx(I,{children:jsx(a,{fullWidth:!0,name:r,value:e,options:t.options??[],disabled:b,size:"small",placeholder:"Preencher",sx:Bt,disableClearable:!0,onSelectOption:i=>{let s=l,p=T({itemId:g,field:d,value:i,previousValue:s});p&&typeof p.catch=="function"&&p.catch(()=>{h(r,s,{shouldDirty:!0,shouldTouch:!0});});}})})}let m=t.type==="number",G=l??"";return jsx(I,{sx:{justifyContent:m?"flex-end":"flex-start"},children:jsx(It,{fullWidth:!0,size:"small",type:m?"number":"text",placeholder:"Preencher","aria-label":t.headerName,name:r,value:G,variant:"standard",InputProps:{...Mt(m),...m&&{inputProps:{min:0}}},disabled:b,onWheel:e=>{m&&e.target.blur();},onKeyDown:e=>{(e.key===" "||e.key==="Spacebar")&&e.stopPropagation(),m&&(e.key==="-"||e.key==="e")&&e.preventDefault();},onChange:e=>{let i=e.target.value,s=i;if(m)if(i==="")s="";else {let p=Number(i);s=p<0?0:p;}h(r,s,{shouldDirty:!0,shouldTouch:!0}),T({itemId:g,field:d,value:s});}})})},ot=memo(Et,(t,o)=>t.itemId===o.itemId&&t.rowIndex===o.rowIndex&&t.column===o.column&&t.isFieldDisabled===o.isFieldDisabled);var O="bulk-edit-datagrid-actions",Rt=({setFilterButtonEl:t})=>{let o=useCallback(a=>{t(a);},[t]);return jsx(a$3,{container:O,children:jsx(GridToolbarColumnsButton,{ref:o,slotProps:{button:{color:"inherit",startIcon:jsx(a$2,{icon:"COLUMNS"}),children:"Colunas"}}})})},et=Rt;var it=({onClose:t,total:o,title:a})=>jsxs(v,{direction:"row",alignItems:"center",gap:3,sx:{px:3,py:0,minHeight:"var(--layout-nav-horizontal-height)"},children:[jsx(Z,{variant:"text",size:"small",startIcon:jsx(a$2,{icon:"CHEVRON_LEFT"}),onClick:t,children:"Sair"}),jsxs(v,{flex:1,direction:"row",alignItems:"center",component:"h2",m:0,gap:1,children:[jsx(rt,{component:"span",variant:"h6",children:"Editando"}),typeof o=="number"&&jsx(X,{component:"span",disabled:!0,label:o,size:"small",color:"default"}),jsx(rt,{component:"span",variant:"h6",children:a})]}),jsx(v,{direction:"row",alignItems:"center",justifyContent:"flex-end",gap:1,id:O})]});var lt=[10,25,50,100],At=t=>t.type==="number"?"right":t.type==="boolean"?"center":"left",zt=({open:t,onClose:o,title:a,header:g,items:T,columns:x,getItemId:h,isLoading:S,page:d,perPage:r$1,total:y,onPageChange:l,onRowsPerPageChange:b,onFieldChange:B,isFieldDisabled:m,showColumnButton:G,initialState:e})=>{let[i,s]=useState(null),p=T,W=r$1>0?Math.ceil(y/r$1):0,dt=W>0?W-1:0,C=Math.min(Math.max(d,0),dt),st=useMemo(()=>({page:C,pageSize:r$1}),[r$1,C]),pt=useMemo(()=>{let n=r$1?[r$1,...lt]:lt;return Array.from(new Set(n)).sort((M,D)=>M-D)},[r$1]),w=useCallback(n=>{n.pageSize!==r$1&&b(n.pageSize),(n.page!==d||n.pageSize!==r$1)&&l(n.page,n.pageSize);},[l,b,d,r$1]),ut=useCallback(n=>{w({page:n,pageSize:r$1});},[w,r$1]),mt=useCallback(n=>{w({page:C,pageSize:n});},[w,C]),ct=useMemo(()=>x.map(n=>{let M=At(n),D=n.type==="boolean"?100:180;return {field:String(n.field),headerName:n.headerName,flex:1,minWidth:D,disableColumnMenu:!0,headerAlign:M,align:M,renderCell:P=>{let R=P.api.getRowIndexRelativeToVisibleRows(P.id),ft=typeof R=="number"&&R>-1?R:0;return jsx(ot,{column:n,item:P.row,rowIndex:ft,itemId:h(P.row),onFieldChange:B,isFieldDisabled:m})}}}),[x,h,m,B]);return jsx(K,{open:t,onClose:o,fullWidth:!0,children:jsxs(j,{children:[g??jsx(it,{onClose:o,total:y,title:a}),S&&jsx(Vt,{sx:{height:2}}),jsx(q,{children:jsx(J,{columns:ct,rows:p,getRowId:n=>h(n),hideFooterSelectedRowCount:!0,hideFooter:!0,disableRowSelectionOnClick:!0,paginationModel:st,onPaginationModelChange:w,pageSizeOptions:pt,paginationMode:"server",rowCount:y,rowHeight:56,loading:S,slots:{loadingOverlay:a$1,...G&&{toolbar:et}},slotProps:{panel:{anchorEl:i},toolbar:{setFilterButtonEl:s}},initialState:e})}),jsxs(Y,{children:[jsxs(tt,{component:"p",children:[jsx(rt,{component:"span",variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(rt,{component:"span",variant:"body2",children:y})]}),jsx(r,{count:y,page:C,rowsPerPage:r$1,onPageChange:ut,onRowsPerPageChange:mt})]})]})})},Wt=t=>{let{items:o}=t,a=useForm({defaultValues:{items:o}});return useEffect(()=>{a.reset({items:o});},[a,o]),jsx(FormProvider,{...a,children:jsx(zt,{...t})})},Ro=Wt;
25
+ var X=styled(bt)({"& .MuiDialog-paper":{margin:0,borderRadius:0,maxHeight:"100vh",padding:0,height:"100vh",width:"100%",maxWidth:"100%"}}),Z=styled(A)({height:"100%",minHeight:0}),q=styled(yt)(({theme:t})=>({padding:0,"& .MuiChip-label":{color:t.palette.text.secondary,fontWeight:"700"}})),J=styled(ht)(({theme:t})=>({color:t.palette.text.secondary})),Q=styled(j)({flex:1,minHeight:0,padding:0,display:"flex",alignItems:"stretch"}),Y=styled(DataGridPremium)(({theme:t})=>({flex:1,height:"100%",minHeight:320,borderRadius:t.shape.borderRadius,backgroundColor:t.palette.background.paper,"& .MuiDataGrid-columnHeaders":{borderBottom:`1px solid ${t.palette.divider}`,minHeight:48,maxHeight:48},"& .MuiDataGrid-columnHeader":{borderTop:`1px solid ${t.palette.divider} !important`,borderBottom:`1px solid ${t.palette.divider} !important`,minWidth:"120px !important"},"& .MuiDataGrid-cell":{alignItems:"stretch",borderTop:`1px solid ${t.palette.divider}`,minWidth:120,width:"100%",borderLeft:`1px solid ${t.palette.divider}`,padding:0},"& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus":{outline:"none"},"& .MuiDataGrid-withBorderColor":{borderColor:t.palette.divider},"& .MuiDataGrid-virtualScroller":{overflowX:"auto"},"& .MuiDataGrid-footerContainer":{borderTop:`1px solid ${t.palette.divider}`}})),w=styled(j)({display:"flex",alignItems:"center",width:"100%",height:"100%",padding:0,boxSizing:"border-box","& .MuiTypography-root":{width:"100%",overflow:"hidden",textOverflow:"ellipsis"}}),tt=styled(at)(({theme:t})=>({color:t.palette.text.primary})),et=styled(A)(({theme:t})=>({flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderTop:`1px solid ${t.palette.divider}`,padding:t.spacing(2,3),gap:t.spacing(2),flexWrap:"wrap"})),ot=styled(A)(({theme:t})=>({flexDirection:"row",alignItems:"center",gap:t.spacing(.5)}));var nt={"& .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"}},Pt=t=>({disableUnderline:!0,sx:{px:0,"& input":{textAlign:t?"right":"left"}}}),Et=(t,e,a)=>{if(t==null||t==="")return null;if(e.type==="entity"){let l=e.options?.find(T=>T.value?.toString()===t?.toString());if(l)return l.label;let g=e.getSelectedOption?.(a,String(t));if(g)return g.label}if(typeof t=="object"){if("name"in t)return String(t.name);if("label"in t)return String(t.label);if("value"in t)return String(t.value)}return typeof t=="boolean"?t?"Sim":"N\xE3o":String(t)},Mt=({column:t,item:e,fieldPath:a$1,entityValue:l,disabled:g,onSelectOption:T})=>{let i=t.useAutocomplete(),C=i.options,d=l&&!C.some(h=>String(h.value)===l)?i.resolveOption?.(l)??t.getSelectedOption?.(e,l):void 0,n=d?[d,...C]:C;return jsx(w,{children:jsx(a,{fullWidth:!0,name:a$1,value:l,options:n,loading:i.loading,onSearch:i.onSearch,onOpen:i.onOpen,onClose:i.onClose,onScrollEnd:i.onScrollEnd,filterOptions:i.filterOptions,...i.noOptionsText!==void 0&&{noOptionsText:i.noOptionsText},disabled:g,size:"small",placeholder:"Preencher",sx:nt,disableClearable:!0,selectOnFocus:!0,onSelectOption:T})})},Ot=({column:t,item:e,rowIndex:a$1,itemId:l,onFieldChange:g,isFieldDisabled:T})=>{let{setValue:i,control:C}=useFormContext(),d=t.field,n=`items.${a$1}.${String(d)}`,h=useWatch({control:C,name:n,defaultValue:e?.[d]}),s=h===void 0?e?.[d]:h,S=t.readOnly||(T?T({item:e,field:d}):!1),E=String(d)==="id";if(t.readOnly||E){let o=Et(s,t,e);return jsx(w,{children:o?jsx(tt,{variant:"body2",children:o}):jsx(at,{variant:"body2",color:"text.disabled",children:"-"})})}if(t.type==="boolean")return jsx(w,{sx:{justifyContent:"center"},children:jsx(wt,{color:"primary",checked:!!s,inputProps:{"aria-label":t.headerName},onChange:o=>{let c=o.target.checked,p=s;i(n,c,{shouldDirty:!0,shouldTouch:!0});let m=g({itemId:l,field:d,value:c,previousValue:p});m&&typeof m.catch=="function"&&m.catch(()=>{i(n,p,{shouldDirty:!0,shouldTouch:!0});});},disabled:S})});if(t.type==="entity"){let o="";if(s!=null&&s!=="")if(typeof s=="object"){let b=s;"id"in b?o=String(b.id??""):"value"in b&&(o=String(b.value??""));}else o=String(s);let c=b=>{let x=s,B=g({itemId:l,field:d,value:b,previousValue:x});B&&typeof B.catch=="function"&&B.catch(()=>{i(n,x,{shouldDirty:!0,shouldTouch:!0});});};if(t.useAutocomplete)return jsx(Mt,{column:t,item:e,fieldPath:n,entityValue:o,disabled:S,onSelectOption:c});let p=t.options??[],m=o&&!p.some(b=>String(b.value)===o)?t.getSelectedOption?.(e,o):void 0,M=m?[m,...p]:p;return jsx(w,{children:jsx(a,{fullWidth:!0,name:n,value:o,options:M,disabled:S,size:"small",placeholder:"Preencher",sx:nt,disableClearable:!0,onSelectOption:c})})}let y=t.type==="number",R=s??"";return jsx(w,{sx:{justifyContent:y?"flex-end":"flex-start"},children:jsx(It,{fullWidth:!0,size:"small",type:y?"number":"text",placeholder:"Preencher","aria-label":t.headerName,name:n,value:R,variant:"standard",InputProps:{...Pt(y),...y&&{inputProps:{min:0}}},disabled:S,onWheel:o=>{y&&o.target.blur();},onKeyDown:o=>{(o.key===" "||o.key==="Spacebar")&&o.stopPropagation(),y&&(o.key==="-"||o.key==="e")&&o.preventDefault();},onChange:o=>{let c=o.target.value,p=c;if(y)if(c==="")p="";else {let m=Number(c);p=m<0?0:m;}i(n,p,{shouldDirty:!0,shouldTouch:!0}),g({itemId:l,field:d,value:p});}})})},rt=memo(Ot,(t,e)=>t.itemId===e.itemId&&t.rowIndex===e.rowIndex&&t.column===e.column&&t.isFieldDisabled===e.isFieldDisabled);var W="bulk-edit-datagrid-actions",Rt=({setFilterButtonEl:t})=>{let e=useCallback(a=>{t(a);},[t]);return jsx(a$3,{container:W,children:jsx(GridToolbarColumnsButton,{ref:e,slotProps:{button:{color:"inherit",startIcon:jsx(a$2,{icon:"COLUMNS"}),children:"Colunas"}}})})},it=Rt;var dt=({onClose:t,total:e,title:a})=>jsxs(A,{direction:"row",alignItems:"center",gap:3,sx:{px:3,py:0,minHeight:"var(--layout-nav-horizontal-height)"},children:[jsx(J,{variant:"text",size:"small",startIcon:jsx(a$2,{icon:"CHEVRON_LEFT"}),onClick:t,children:"Sair"}),jsxs(A,{flex:1,direction:"row",alignItems:"center",component:"h2",m:0,gap:1,children:[jsx(at,{component:"span",variant:"h6",children:"Editando"}),typeof e=="number"&&jsx(q,{component:"span",disabled:!0,label:e,size:"small",color:"default"}),jsx(at,{component:"span",variant:"h6",children:a})]}),jsx(A,{direction:"row",alignItems:"center",justifyContent:"flex-end",gap:1,id:W})]});var pt=[10,25,50,100],Wt=t=>t.type==="number"?"right":t.type==="boolean"?"center":"left",Vt=({open:t,onClose:e,title:a,header:l,items:g,columns:T,getItemId:i,isLoading:C,page:d,perPage:n,total:h,onPageChange:s,onRowsPerPageChange:S,onFieldChange:E,isFieldDisabled:y,showColumnButton:R,initialState:o})=>{let[c,p]=useState(null),m=g,M=n>0?Math.ceil(h/n):0,b=M>0?M-1:0,x=Math.min(Math.max(d,0),b),B=useMemo(()=>({page:x,pageSize:n}),[n,x]),ut=useMemo(()=>{let r=n?[n,...pt]:pt;return Array.from(new Set(r)).sort((O,v)=>O-v)},[n]),P=useCallback(r=>{r.pageSize!==n&&S(r.pageSize),(r.page!==d||r.pageSize!==n)&&s(r.page,r.pageSize);},[s,S,d,n]),ct=useCallback(r=>{P({page:r,pageSize:n});},[P,n]),mt=useCallback(r=>{P({page:x,pageSize:r});},[P,x]),ft=useMemo(()=>T.map(r=>{let O=Wt(r),v=r.type==="boolean"?100:180;return {field:String(r.field),headerName:r.headerName,flex:1,minWidth:v,disableColumnMenu:!0,headerAlign:O,align:O,renderCell:D=>{let F=D.api.getRowIndexRelativeToVisibleRows(D.id),gt=typeof F=="number"&&F>-1?F:0;return jsx(rt,{column:r,item:D.row,rowIndex:gt,itemId:i(D.row),onFieldChange:E,isFieldDisabled:y})}}}),[T,i,y,E]);return jsx(X,{open:t,onClose:e,fullWidth:!0,children:jsxs(Z,{children:[l??jsx(dt,{onClose:e,total:h,title:a}),C&&jsx(zt,{sx:{height:2}}),jsx(Q,{children:jsx(Y,{columns:ft,rows:m,getRowId:r=>i(r),hideFooterSelectedRowCount:!0,hideFooter:!0,disableRowSelectionOnClick:!0,paginationModel:B,onPaginationModelChange:P,pageSizeOptions:ut,paginationMode:"server",rowCount:h,rowHeight:56,loading:C,slots:{loadingOverlay:a$1,...R&&{toolbar:it}},slotProps:{panel:{anchorEl:c},toolbar:{setFilterButtonEl:p}},initialState:o})}),jsxs(et,{children:[jsxs(ot,{component:"p",children:[jsx(at,{component:"span",variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(at,{component:"span",variant:"body2",children:h})]}),jsx(r,{count:h,page:x,rowsPerPage:n,onPageChange:ct,onRowsPerPageChange:mt})]})]})})},Nt=t=>{let{items:e}=t,a=useForm({defaultValues:{items:e}});return useEffect(()=>{a.reset({items:e});},[a,e]),jsx(FormProvider,{...a,children:jsx(Vt,{...t})})},Ge=Nt;
26
26
 
27
- export { Ro as default };
27
+ export { Ge 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","option","opt","BulkEditGridCellComponent","item","rowIndex","itemId","onFieldChange","isFieldDisabled","setValue","control","fieldName","fieldPath","watchedValue","cellValue","isDisabled","isIdField","displayValue","event","previousValue","result","entityValue","recordValue","Autocomplete_default","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","options","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} 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) => {\n if (value === null || value === undefined || value === '') {\n return null;\n }\n\n if (column.type === 'entity' && column.options) {\n const option = column.options.find(\n opt => opt.value?.toString() === value?.toString(),\n );\n if (option) {\n return option.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 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);\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 return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={column.options ?? []}\n disabled={isDisabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n onSelectOption={(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 (\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 />\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","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"]}
@@ -90,7 +90,7 @@ declare const SelectionOverlay: _emotion_styled.StyledComponent<_mui_material_St
90
90
  }, keyof _mui_material_OverridableComponent.CommonProps | keyof _mui_material_Stack.StackOwnProps> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
91
91
  declare const SelectionCount: _emotion_styled.StyledComponent<_mui_material_Typography.TypographyOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
92
92
  ref?: ((instance: HTMLSpanElement | null) => void) | react.RefObject<HTMLSpanElement> | null | undefined;
93
- }, "typography" | "zIndex" | "fontFamily" | "fontWeight" | "children" | "pt" | "className" | "style" | "classes" | "sx" | "variant" | "border" | "boxShadow" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontSize" | "fontStyle" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "p" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
93
+ }, "fontFamily" | "children" | "pt" | "className" | "style" | "classes" | "sx" | "variant" | "border" | "boxShadow" | "fontWeight" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontSize" | "fontStyle" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "p" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
94
94
  declare const SelectionActions: _emotion_styled.StyledComponent<_mui_material_Stack.StackOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
95
95
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
96
96
  }, keyof _mui_material_OverridableComponent.CommonProps | keyof _mui_material_Stack.StackOwnProps> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
@@ -20,7 +20,7 @@ import '../../chunk-CO2KQFUN.js';
20
20
  import { a as a$8 } from '../../chunk-F6H765KA.js';
21
21
  import '../../chunk-F65ZXAGV.js';
22
22
  import '../../chunk-I4PPSW36.js';
23
- import { a as a$3 } from '../../chunk-SC6LFS3A.js';
23
+ import { a as a$3 } from '../../chunk-3HJISSG2.js';
24
24
  import { a } from '../../chunk-YSQ5AYHV.js';
25
25
  import '../../chunk-TPOL2YXC.js';
26
26
  import '../../chunk-IAOMC4C4.js';
@@ -1,4 +1,4 @@
1
- export { r as ContentType, s as FileContentType, k as FileThumbnail, a as HelperText, b as MultiFilePreview, u as MultipleFileUpload, v as MultipleImageUpload, c as SingleFilePreview, w as SingleFileUpload, x as SingleImageUpload, y as UploadAvatar, z as UploadSimpleBox, n as compressImageWithoutCrop, m as convertToWebP, p as encodeFilenameForHeader, f as fileFormat, d as fileFormatByMimeType, e as fileFormatByName, i as fileNameByUrl, g as fileThumb, j as fileThumbnailClasses, h as fileTypeByUrl, o as getFileNameFromContentDisposition, l as isImageFile, q as useDropzoneUploader, t as useFileUploadService } from '../../chunk-NMGWHNGI.js';
1
+ export { r as ContentType, s as FileContentType, k as FileThumbnail, a as HelperText, b as MultiFilePreview, u as MultipleFileUpload, v as MultipleImageUpload, c as SingleFilePreview, w as SingleFileUpload, x as SingleImageUpload, y as UploadAvatar, z as UploadSimpleBox, n as compressImageWithoutCrop, m as convertToWebP, p as encodeFilenameForHeader, f as fileFormat, d as fileFormatByMimeType, e as fileFormatByName, i as fileNameByUrl, g as fileThumb, j as fileThumbnailClasses, h as fileTypeByUrl, o as getFileNameFromContentDisposition, l as isImageFile, q as useDropzoneUploader, t as useFileUploadService } from '../../chunk-Q64RVUSF.js';
2
2
  import '../../chunk-Q2D3PURH.js';
3
3
  import '../../chunk-2QOUWCI5.js';
4
4
  import '../../chunk-KGLU4CR2.js';
@@ -4,7 +4,7 @@ import { c } from '../../chunk-VGTQYKAC.js';
4
4
  import { a } from '../../chunk-CO2KQFUN.js';
5
5
  import { a as a$5 } from '../../chunk-F65ZXAGV.js';
6
6
  import { a as a$7 } from '../../chunk-GWHI4DH5.js';
7
- import { a as a$4 } from '../../chunk-SC6LFS3A.js';
7
+ import { a as a$4 } from '../../chunk-3HJISSG2.js';
8
8
  import { a as a$6 } from '../../chunk-YSQ5AYHV.js';
9
9
  import '../../chunk-TPOL2YXC.js';
10
10
  import { a as a$8 } from '../../chunk-LQRRMVFN.js';
@@ -2,8 +2,8 @@ import { a as a$3 } from '../../../chunk-MSCOIJQ5.js';
2
2
  import { a } from '../../../chunk-X64QHBVQ.js';
3
3
  import { a as a$1 } from '../../../chunk-YXRL4O4H.js';
4
4
  import '../../../chunk-RTC7H5E5.js';
5
- import { a as a$2 } from '../../../chunk-JYG5DKR3.js';
6
- import '../../../chunk-SC6LFS3A.js';
5
+ import { a as a$2 } from '../../../chunk-235M242H.js';
6
+ import '../../../chunk-3HJISSG2.js';
7
7
  import '../../../chunk-YSQ5AYHV.js';
8
8
  import '../../../chunk-TPOL2YXC.js';
9
9
  import L from '@mui/material/CircularProgress';
@@ -1,5 +1,5 @@
1
- export { a as default } from '../../../chunk-JYG5DKR3.js';
2
- import '../../../chunk-SC6LFS3A.js';
1
+ export { a as default } from '../../../chunk-235M242H.js';
2
+ import '../../../chunk-3HJISSG2.js';
3
3
  import '../../../chunk-YSQ5AYHV.js';
4
4
  import '../../../chunk-TPOL2YXC.js';
5
5
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { x, u, v, w } from '../../../chunk-NMGWHNGI.js';
1
+ import { x, u, v, w } from '../../../chunk-Q64RVUSF.js';
2
2
  import '../../../chunk-Q2D3PURH.js';
3
3
  import '../../../chunk-2QOUWCI5.js';
4
4
  import '../../../chunk-KGLU4CR2.js';
@@ -1,7 +1,7 @@
1
1
  import { a as a$1 } from '../../../chunk-YXRL4O4H.js';
2
- import { a as a$2 } from '../../../chunk-JYG5DKR3.js';
2
+ import { a as a$2 } from '../../../chunk-235M242H.js';
3
3
  import { a as a$3 } from '../../../chunk-GWHI4DH5.js';
4
- import '../../../chunk-SC6LFS3A.js';
4
+ import '../../../chunk-3HJISSG2.js';
5
5
  import { a } from '../../../chunk-YSQ5AYHV.js';
6
6
  import '../../../chunk-TPOL2YXC.js';
7
7
  import { useCallback, useMemo } from 'react';
@@ -4,13 +4,13 @@ import * as react from 'react';
4
4
  import { ReactNode } from 'react';
5
5
 
6
6
  declare const useSnackbar: () => {
7
- toast: ((message: ReactNode | (() => ReactNode), data?: ExternalToast | undefined) => string | number) & {
8
- success: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
9
- info: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
10
- warning: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
11
- error: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
7
+ toast: ((message: (() => ReactNode) | ReactNode, data?: ExternalToast | undefined) => string | number) & {
8
+ success: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
9
+ info: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
10
+ warning: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
11
+ error: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
12
12
  custom: (jsx: (id: string | number) => react.ReactElement<any, string | react.JSXElementConstructor<any>>, data?: ExternalToast | undefined) => string | number;
13
- message: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
13
+ message: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
14
14
  promise: <ToastData>(promise: Promise<ToastData> | (() => Promise<ToastData>), data?: ({
15
15
  className?: string | undefined;
16
16
  style?: react.CSSProperties | undefined;
@@ -45,7 +45,7 @@ declare const useSnackbar: () => {
45
45
  unwrap: () => Promise<ToastData>;
46
46
  };
47
47
  dismiss: (id?: string | number | undefined) => string | number;
48
- loading: (message: string | number | boolean | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | (() => ReactNode) | null | undefined, data?: ExternalToast | undefined) => string | number;
48
+ loading: (message: string | number | boolean | (() => ReactNode) | react.ReactElement<any, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | react.ReactPortal | null | undefined, data?: ExternalToast | undefined) => string | number;
49
49
  } & {
50
50
  getHistory: () => (sonner.ToastT | sonner.ToastToDismiss)[];
51
51
  getToasts: () => (sonner.ToastT | sonner.ToastToDismiss)[];
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as CustomShadows } from './index-5a5e5dc8.js';
2
- export { d as ColorType, k as action, j as background, l as basePalette, o as colorSchemes, h as common, c as components, a as createShadowColor, b as customShadows, n as darkPalette, r as defaultFont, f as error, g as grey, i as info, m as lightPalette, p as primary, u as primaryFont, s as secondary, v as secondaryFont, q as shadows, e as success, t as text, x as typography, w as warning } from './index-5a5e5dc8.js';
1
+ import { C as CustomShadows } from './index-c8f1e6e7.js';
2
+ export { d as ColorType, k as action, j as background, l as basePalette, o as colorSchemes, h as common, c as components, a as createShadowColor, b as customShadows, n as darkPalette, r as defaultFont, f as error, g as grey, i as info, m as lightPalette, p as primary, u as primaryFont, s as secondary, v as secondaryFont, q as shadows, e as success, t as text, x as typography, w as warning } from './index-c8f1e6e7.js';
3
3
  export { S as SettingsContextValue, _ as SettingsProvider, T as ThemeProviderProps, u as useSettingsContext } from './settings-provider-38d09283.js';
4
4
  export { THEME_CONFIG, default as ThemeProvider } from './theme/theme-provider.js';
5
5
  import { S as SettingsState } from './settings-583c107c.js';
@@ -1,4 +1,4 @@
1
- export { d as ColorType, k as action, j as background, l as basePalette, o as colorSchemes, h as common, c as components, a as createShadowColor, b as customShadows, n as darkPalette, r as defaultFont, f as error, g as grey, i as info, m as lightPalette, p as primary, u as primaryFont, s as secondary, v as secondaryFont, q as shadows, e as success, t as text, x as typography, w as warning } from '../../index-5a5e5dc8.js';
1
+ export { d as ColorType, k as action, j as background, l as basePalette, o as colorSchemes, h as common, c as components, a as createShadowColor, b as customShadows, n as darkPalette, r as defaultFont, f as error, g as grey, i as info, m as lightPalette, p as primary, u as primaryFont, s as secondary, v as secondaryFont, q as shadows, e as success, t as text, x as typography, w as warning } from '../../index-c8f1e6e7.js';
2
2
  import '@mui/lab/TimelineConnector';
3
3
  import '@mui/system';
4
4
  import '@mui/lab/TimelineDot';
@@ -173,7 +173,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
173
173
  float?: csstype.Property.Float | readonly NonNullable<csstype.Property.Float | undefined>[] | readonly csstype.Property.Float[] | undefined;
174
174
  floodColor?: readonly string[] | csstype.Property.FloodColor | readonly csstype.Property.FloodColor[] | undefined;
175
175
  floodOpacity?: readonly ((string & {}) | csstype.Globals)[] | csstype.Property.FloodOpacity | readonly NonNullable<csstype.Property.FloodOpacity | undefined>[] | undefined;
176
- fontFamily?: csstype.Property.FontFamily | readonly string[] | readonly csstype.Property.FontFamily[] | undefined;
176
+ fontFamily?: readonly string[] | csstype.Property.FontFamily | readonly csstype.Property.FontFamily[] | undefined;
177
177
  fontFeatureSettings?: readonly string[] | csstype.Property.FontFeatureSettings | readonly csstype.Property.FontFeatureSettings[] | undefined;
178
178
  fontKerning?: csstype.Property.FontKerning | readonly NonNullable<csstype.Property.FontKerning | undefined>[] | readonly csstype.Property.FontKerning[] | undefined;
179
179
  fontLanguageOverride?: readonly string[] | csstype.Property.FontLanguageOverride | readonly csstype.Property.FontLanguageOverride[] | undefined;
@@ -197,7 +197,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
197
197
  fontVariantNumeric?: readonly string[] | csstype.Property.FontVariantNumeric | readonly csstype.Property.FontVariantNumeric[] | undefined;
198
198
  fontVariantPosition?: csstype.Property.FontVariantPosition | readonly NonNullable<csstype.Property.FontVariantPosition | undefined>[] | readonly csstype.Property.FontVariantPosition[] | undefined;
199
199
  fontVariationSettings?: readonly string[] | csstype.Property.FontVariationSettings | readonly csstype.Property.FontVariationSettings[] | undefined;
200
- fontWeight?: csstype.Property.FontWeight | readonly NonNullable<csstype.Property.FontWeight | undefined>[] | readonly ((string & {}) | csstype.Globals | "bold" | "normal" | "bolder" | "lighter")[] | undefined;
200
+ fontWeight?: csstype.Property.FontWeight | readonly NonNullable<csstype.Property.FontWeight | undefined>[] | readonly ("bold" | (string & {}) | csstype.Globals | "normal" | "bolder" | "lighter")[] | undefined;
201
201
  fontWidth?: readonly string[] | csstype.Property.FontWidth | readonly csstype.Property.FontWidth[] | undefined;
202
202
  forcedColorAdjust?: csstype.Property.ForcedColorAdjust | readonly NonNullable<csstype.Property.ForcedColorAdjust | undefined>[] | readonly csstype.Property.ForcedColorAdjust[] | undefined;
203
203
  gridAutoColumns?: readonly (string | (string & {}))[] | csstype.Property.GridAutoColumns<string | number> | readonly NonNullable<csstype.Property.GridAutoColumns<string | number> | undefined>[] | undefined;
@@ -462,7 +462,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
462
462
  zIndex?: readonly ((string & {}) | csstype.Globals | "auto")[] | csstype.Property.ZIndex | readonly NonNullable<csstype.Property.ZIndex | undefined>[] | undefined;
463
463
  zoom?: csstype.Property.Zoom | readonly NonNullable<csstype.Property.Zoom | undefined>[] | readonly ((string & {}) | csstype.Globals | "normal" | "reset")[] | undefined;
464
464
  all?: csstype.Globals | readonly NonNullable<csstype.Globals | undefined>[] | readonly csstype.Globals[] | undefined;
465
- animation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ((string & {}) | csstype.Globals | "normal" | "reverse" | "none" | "auto" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
465
+ animation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ("reverse" | (string & {}) | csstype.Globals | "none" | "auto" | "normal" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
466
466
  animationRange?: readonly (string | (string & {}))[] | csstype.Property.AnimationRange<string | number> | readonly NonNullable<csstype.Property.AnimationRange<string | number> | undefined>[] | undefined;
467
467
  background?: readonly (string | (string & {}))[] | csstype.Property.Background<string | number> | readonly NonNullable<csstype.Property.Background<string | number> | undefined>[] | undefined;
468
468
  border?: readonly (string | (string & {}))[] | csstype.Property.Border<string | number> | readonly NonNullable<csstype.Property.Border<string | number> | undefined>[] | undefined;
@@ -474,7 +474,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
474
474
  borderBlockWidth?: readonly (string | (string & {}))[] | csstype.Property.BorderBlockWidth<string | number> | readonly NonNullable<csstype.Property.BorderBlockWidth<string | number> | undefined>[] | undefined;
475
475
  borderBottom?: readonly (string | (string & {}))[] | csstype.Property.BorderBottom<string | number> | readonly NonNullable<csstype.Property.BorderBottom<string | number> | undefined>[] | undefined;
476
476
  borderColor?: readonly string[] | csstype.Property.BorderColor | readonly csstype.Property.BorderColor[] | undefined;
477
- borderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ((string & {}) | csstype.Globals | "repeat" | "none" | "round" | "space" | "stretch")[] | undefined;
477
+ borderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ("repeat" | (string & {}) | csstype.Globals | "none" | "round" | "space" | "stretch")[] | undefined;
478
478
  borderInline?: readonly (string | (string & {}))[] | csstype.Property.BorderInline<string | number> | readonly NonNullable<csstype.Property.BorderInline<string | number> | undefined>[] | undefined;
479
479
  borderInlineColor?: readonly string[] | csstype.Property.BorderInlineColor | readonly csstype.Property.BorderInlineColor[] | undefined;
480
480
  borderInlineEnd?: readonly (string | (string & {}))[] | csstype.Property.BorderInlineEnd<string | number> | readonly NonNullable<csstype.Property.BorderInlineEnd<string | number> | undefined>[] | undefined;
@@ -509,7 +509,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
509
509
  marginBlock?: readonly (string | (string & {}))[] | csstype.Property.MarginBlock<string | number> | readonly NonNullable<csstype.Property.MarginBlock<string | number> | undefined>[] | undefined;
510
510
  marginInline?: readonly (string | (string & {}))[] | csstype.Property.MarginInline<string | number> | readonly NonNullable<csstype.Property.MarginInline<string | number> | undefined>[] | undefined;
511
511
  mask?: readonly (string | (string & {}))[] | csstype.Property.Mask<string | number> | readonly NonNullable<csstype.Property.Mask<string | number> | undefined>[] | undefined;
512
- maskBorder?: csstype.Property.MaskBorder | readonly NonNullable<csstype.Property.MaskBorder | undefined>[] | readonly ((string & {}) | csstype.Globals | "repeat" | "none" | "round" | "space" | "alpha" | "luminance" | "stretch")[] | undefined;
512
+ maskBorder?: csstype.Property.MaskBorder | readonly NonNullable<csstype.Property.MaskBorder | undefined>[] | readonly ("repeat" | (string & {}) | csstype.Globals | "none" | "round" | "space" | "alpha" | "luminance" | "stretch")[] | undefined;
513
513
  motion?: readonly (string | (string & {}))[] | csstype.Property.Offset<string | number> | readonly NonNullable<csstype.Property.Offset<string | number> | undefined>[] | undefined;
514
514
  offset?: readonly (string | (string & {}))[] | csstype.Property.Offset<string | number> | readonly NonNullable<csstype.Property.Offset<string | number> | undefined>[] | undefined;
515
515
  outline?: readonly (string | (string & {}))[] | csstype.Property.Outline<string | number> | readonly NonNullable<csstype.Property.Outline<string | number> | undefined>[] | undefined;
@@ -758,8 +758,8 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
758
758
  WebkitUserModify?: csstype.Property.WebkitUserModify | readonly NonNullable<csstype.Property.WebkitUserModify | undefined>[] | readonly csstype.Property.WebkitUserModify[] | undefined;
759
759
  WebkitUserSelect?: csstype.Property.WebkitUserSelect | readonly NonNullable<csstype.Property.WebkitUserSelect | undefined>[] | readonly csstype.Property.WebkitUserSelect[] | undefined;
760
760
  WebkitWritingMode?: csstype.Property.WritingMode | readonly NonNullable<csstype.Property.WritingMode | undefined>[] | readonly csstype.Property.WritingMode[] | undefined;
761
- MozAnimation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ((string & {}) | csstype.Globals | "normal" | "reverse" | "none" | "auto" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
762
- MozBorderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ((string & {}) | csstype.Globals | "repeat" | "none" | "round" | "space" | "stretch")[] | undefined;
761
+ MozAnimation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ("reverse" | (string & {}) | csstype.Globals | "none" | "auto" | "normal" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
762
+ MozBorderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ("repeat" | (string & {}) | csstype.Globals | "none" | "round" | "space" | "stretch")[] | undefined;
763
763
  MozColumnRule?: readonly (string | (string & {}))[] | csstype.Property.ColumnRule<string | number> | readonly NonNullable<csstype.Property.ColumnRule<string | number> | undefined>[] | undefined;
764
764
  MozColumns?: readonly (string | (string & {}))[] | csstype.Property.Columns<string | number> | readonly NonNullable<csstype.Property.Columns<string | number> | undefined>[] | undefined;
765
765
  MozOutlineRadius?: readonly (string | (string & {}))[] | csstype.Property.MozOutlineRadius<string | number> | readonly NonNullable<csstype.Property.MozOutlineRadius<string | number> | undefined>[] | undefined;
@@ -771,16 +771,16 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
771
771
  msScrollSnapX?: readonly string[] | csstype.Property.MsScrollSnapX | readonly csstype.Property.MsScrollSnapX[] | undefined;
772
772
  msScrollSnapY?: readonly string[] | csstype.Property.MsScrollSnapY | readonly csstype.Property.MsScrollSnapY[] | undefined;
773
773
  msTransition?: readonly string[] | csstype.Property.Transition<string & {}> | readonly csstype.Property.Transition<string & {}>[] | undefined;
774
- WebkitAnimation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ((string & {}) | csstype.Globals | "normal" | "reverse" | "none" | "auto" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
774
+ WebkitAnimation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ("reverse" | (string & {}) | csstype.Globals | "none" | "auto" | "normal" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
775
775
  WebkitBorderBefore?: readonly (string | (string & {}))[] | csstype.Property.WebkitBorderBefore<string | number> | readonly NonNullable<csstype.Property.WebkitBorderBefore<string | number> | undefined>[] | undefined;
776
- WebkitBorderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ((string & {}) | csstype.Globals | "repeat" | "none" | "round" | "space" | "stretch")[] | undefined;
776
+ WebkitBorderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ("repeat" | (string & {}) | csstype.Globals | "none" | "round" | "space" | "stretch")[] | undefined;
777
777
  WebkitBorderRadius?: readonly (string | (string & {}))[] | csstype.Property.BorderRadius<string | number> | readonly NonNullable<csstype.Property.BorderRadius<string | number> | undefined>[] | undefined;
778
778
  WebkitColumnRule?: readonly (string | (string & {}))[] | csstype.Property.ColumnRule<string | number> | readonly NonNullable<csstype.Property.ColumnRule<string | number> | undefined>[] | undefined;
779
779
  WebkitColumns?: readonly (string | (string & {}))[] | csstype.Property.Columns<string | number> | readonly NonNullable<csstype.Property.Columns<string | number> | undefined>[] | undefined;
780
780
  WebkitFlex?: readonly (string | (string & {}))[] | csstype.Property.Flex<string | number> | readonly NonNullable<csstype.Property.Flex<string | number> | undefined>[] | undefined;
781
781
  WebkitFlexFlow?: readonly string[] | csstype.Property.FlexFlow | readonly csstype.Property.FlexFlow[] | undefined;
782
782
  WebkitMask?: readonly (string | (string & {}))[] | csstype.Property.WebkitMask<string | number> | readonly NonNullable<csstype.Property.WebkitMask<string | number> | undefined>[] | undefined;
783
- WebkitMaskBoxImage?: csstype.Property.MaskBorder | readonly NonNullable<csstype.Property.MaskBorder | undefined>[] | readonly ((string & {}) | csstype.Globals | "repeat" | "none" | "round" | "space" | "alpha" | "luminance" | "stretch")[] | undefined;
783
+ WebkitMaskBoxImage?: csstype.Property.MaskBorder | readonly NonNullable<csstype.Property.MaskBorder | undefined>[] | readonly ("repeat" | (string & {}) | csstype.Globals | "none" | "round" | "space" | "alpha" | "luminance" | "stretch")[] | undefined;
784
784
  WebkitTextEmphasis?: readonly string[] | csstype.Property.TextEmphasis | readonly csstype.Property.TextEmphasis[] | undefined;
785
785
  WebkitTextStroke?: readonly (string | (string & {}))[] | csstype.Property.WebkitTextStroke<string | number> | readonly NonNullable<csstype.Property.WebkitTextStroke<string | number> | undefined>[] | undefined;
786
786
  WebkitTransition?: readonly string[] | csstype.Property.Transition<string & {}> | readonly csstype.Property.Transition<string & {}>[] | undefined;
@@ -861,7 +861,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
861
861
  MozUserFocus?: csstype.Property.MozUserFocus | readonly NonNullable<csstype.Property.MozUserFocus | undefined>[] | readonly csstype.Property.MozUserFocus[] | undefined;
862
862
  MozUserInput?: csstype.Property.MozUserInput | readonly NonNullable<csstype.Property.MozUserInput | undefined>[] | readonly csstype.Property.MozUserInput[] | undefined;
863
863
  msImeMode?: csstype.Property.ImeMode | readonly NonNullable<csstype.Property.ImeMode | undefined>[] | readonly csstype.Property.ImeMode[] | undefined;
864
- OAnimation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ((string & {}) | csstype.Globals | "normal" | "reverse" | "none" | "auto" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
864
+ OAnimation?: csstype.Property.Animation<string & {}> | readonly NonNullable<csstype.Property.Animation<string & {}> | undefined>[] | readonly ("reverse" | (string & {}) | csstype.Globals | "none" | "auto" | "normal" | "alternate" | "alternate-reverse" | "backwards" | "both" | "forwards" | "infinite" | "paused" | "running" | "ease" | "ease-in" | "ease-in-out" | "ease-out" | "step-end" | "step-start" | "linear")[] | undefined;
865
865
  OAnimationDelay?: readonly string[] | csstype.Property.AnimationDelay<string & {}> | readonly csstype.Property.AnimationDelay<string & {}>[] | undefined;
866
866
  OAnimationDirection?: readonly string[] | csstype.Property.AnimationDirection | readonly csstype.Property.AnimationDirection[] | undefined;
867
867
  OAnimationDuration?: readonly string[] | csstype.Property.AnimationDuration<string & {}> | readonly csstype.Property.AnimationDuration<string & {}>[] | undefined;
@@ -871,7 +871,7 @@ declare function paper({ theme, color, dropdown }: PaperProps): {
871
871
  OAnimationPlayState?: readonly string[] | csstype.Property.AnimationPlayState | readonly csstype.Property.AnimationPlayState[] | undefined;
872
872
  OAnimationTimingFunction?: readonly string[] | csstype.Property.AnimationTimingFunction | readonly csstype.Property.AnimationTimingFunction[] | undefined;
873
873
  OBackgroundSize?: readonly (string | (string & {}))[] | csstype.Property.BackgroundSize<string | number> | readonly NonNullable<csstype.Property.BackgroundSize<string | number> | undefined>[] | undefined;
874
- OBorderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ((string & {}) | csstype.Globals | "repeat" | "none" | "round" | "space" | "stretch")[] | undefined;
874
+ OBorderImage?: csstype.Property.BorderImage | readonly NonNullable<csstype.Property.BorderImage | undefined>[] | readonly ("repeat" | (string & {}) | csstype.Globals | "none" | "round" | "space" | "stretch")[] | undefined;
875
875
  OObjectFit?: csstype.Property.ObjectFit | readonly NonNullable<csstype.Property.ObjectFit | undefined>[] | readonly csstype.Property.ObjectFit[] | undefined;
876
876
  OObjectPosition?: readonly (string | (string & {}))[] | csstype.Property.ObjectPosition<string | number> | readonly NonNullable<csstype.Property.ObjectPosition<string | number> | undefined>[] | undefined;
877
877
  OTabSize?: readonly (string | (string & {}))[] | csstype.Property.TabSize<string | number> | readonly NonNullable<csstype.Property.TabSize<string | number> | undefined>[] | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.14",
3
+ "version": "2.9.16",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",