@zydon/common 2.8.29 → 2.8.30

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.
@@ -0,0 +1,27 @@
1
+ import { a as a$4 } from './chunk-MC44LVZD.js';
2
+ import { a as a$5 } from './chunk-IJZCVZ32.js';
3
+ import { a as a$8 } from './chunk-IDFJFFIV.js';
4
+ import { a as a$6 } from './chunk-6U5LS7MP.js';
5
+ import { i, j, a as a$2, b as b$2, c, d, f, e, g, h as h$1 } from './chunk-2W54CJ6E.js';
6
+ import { a as a$9 } from './chunk-I4PPSW36.js';
7
+ import { a as a$3 } from './chunk-CO2KQFUN.js';
8
+ import { a } from './chunk-ET6H3IRG.js';
9
+ import { a as a$7 } from './chunk-F65ZXAGV.js';
10
+ import { a as a$1 } from './chunk-LQRRMVFN.js';
11
+ import { b as b$1 } from './chunk-RPO7AI5K.js';
12
+ import { memo, forwardRef, useState, useRef, useEffect, useCallback, useMemo, Children, isValidElement, cloneElement } from 'react';
13
+ import jo from 'react-fast-compare';
14
+ import H from '@mui/material/Button';
15
+ import ot from '@mui/material/CircularProgress';
16
+ import tt from '@mui/material/Divider';
17
+ import rt from '@mui/material/LinearProgress';
18
+ import h from '@mui/material/Stack';
19
+ import mo from '@mui/material/Typography';
20
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
+ import { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
22
+
23
+ var b="datagrid-actions";var Ho=({rowCount:r,page:e,rowsPerPage:n,onPaginationChange:i$1})=>jsxs(i,{children:[jsxs(h,{direction:"row",alignItems:"center",gap:.5,children:[jsx(mo,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(mo,{variant:"body2",children:r})]}),jsx(j,{count:r,page:e,rowsPerPage:n,onPageChange:s=>i$1(s,n),onRowsPerPageChange:s=>i$1(e,s)})]}),uo=memo(Ho);var ho=(r,e)=>Children.map(r,n=>{if(!isValidElement(n))return n;let i=n.props.onClick,s={};s.onClick=(...d)=>{e(),i&&i(...d);};let l=n.props;return l?.children&&(s.children=ho(l.children,e)),cloneElement(n,s)}),zo=({children:r,onClose:e})=>r?ho(r,e):null,go=memo(zo);var qo=forwardRef(({children:r,...e},n)=>jsx(H,{...e,ref:n,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:r??"Colunas"}));qo.displayName="ColumnsButton";var Qo=({setFilterButtonEl:r})=>{let e=useCallback(n=>{r(n);},[r]);return jsx(a$9,{container:b,children:jsx(GridToolbarColumnsButton,{ref:e,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},Co=Qo;var et=({title:r,header:e$1,headerProps:n,breakpoint:i="md",columns:s,rows:l=[],mobileSlots:d$1,mobileSlotsProps:O,mobileRender:ko,rowCount:w=0,paginationModel:p={page:0,pageSize:25},onPaginationChange:f$1,actions:L,moreActions:N,onAdd:V,onSearch:z,searchValue:To,onSearchChange:vo,slots:C,slotProps:Do,loading:P,fetching:F,fetchingNextPage:So,containerProps:Ao={height:562,maxHeight:562},hideFooter:_,showColumnButton:y=!1,filterButton:k,activeFilters:W,onRowsScrollEnd:v,scrollEndThreshold:R=200,...bo})=>{let u=a$1(),c$1=b$1("down",i),[wo,yo]=useState(null),U=useRef(null);useEffect(()=>{let a=U.current;if(!a||!c$1||!v)return;let K=()=>{let{scrollTop:Eo,scrollHeight:Io,clientHeight:xo}=a;Io-Eo-xo<=R&&v();};return a.addEventListener("scroll",K,{passive:!0}),()=>{a.removeEventListener("scroll",K);}},[c$1,v,R,l.length]);let q=!!z,M=!!V,D=!!L,E=!!N,I=c$1&&E,S=!c$1&&E,Ro=D||M||I,Q=S||q||y||!!k||!c$1,J=useCallback(()=>f$1?jsx(uo,{rowCount:w,page:p.page,rowsPerPage:p.pageSize,onPaginationChange:f$1}):null,[w,p,f$1]),Mo=useMemo(()=>({...C,footer:J,...y&&!C?.toolbar&&{toolbar:Co}}),[C,J,y]);return jsxs(a$2,{breakpoint:i,...Ao,flex:P?1:void 0,minHeight:P||l.length===0?562:void 0,children:[e$1?jsx(h,{p:3,...n,children:e$1}):jsxs(Fragment,{children:[jsxs(b$2,{breakpoint:i,children:[jsx(mo,{variant:"overline",color:"text.secondary",noWrap:!0,children:r}),Ro&&jsxs(c,{breakpoint:i,children:[D&&L,M&&jsxs(Fragment,{children:[D&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(H,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:V,children:"Adicionar"})]}),I&&jsxs(Fragment,{children:[(D||M)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(H,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:u.onOpen,children:"Mais"})]})]})]}),Q&&jsxs(f,{breakpoint:i,children:[jsxs(h,{flex:1,direction:"row",alignItems:"center",id:b,gap:.5,children:[E&&jsxs(Fragment,{children:[S&&jsxs(Fragment,{children:[jsx(H,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:u.onOpen,children:"Mais"}),!c$1&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(S||I)&&jsx(a$3,{open:u.open,anchorEl:u.open,onClose:u.onClose,sx:{minWidth:160},disabledArrow:!0,children:jsx(go,{onClose:u.onClose,children:N})})]}),!c$1&&k&&jsxs(Fragment,{children:[k,S&&jsx(e,{orientation:"vertical",flexItem:!0})]})]}),q&&jsxs(g,{breakpoint:i,children:[jsx(a$4,{value:To,placeholder:"Buscar",onSearch:z,onChange:a=>vo?.(a.target.value),size:"small",fullWidth:!0,iconPosition:"start"}),c$1&&k&&jsx(h,{ml:1,children:k})]})]}),W&&W,!Q&&jsx(tt,{sx:{mt:2}})]}),c$1?jsxs(a$5,{isFetching:F,fetching:jsx(a$6,{}),isLoading:P,loading:jsx(ot,{sx:{m:"160px auto"}}),isEmpty:l.length===0,empty:jsxs(h,{flex:1,direction:"column",...O,children:[d$1&&d$1,jsx(h,{flex:1,alignItems:"center",justifyContent:"center",children:C?.noRowsOverlay?jsx(C.noRowsOverlay,{}):jsx(mo,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})})]}),children:[jsxs(h,{direction:"column",...O,children:[d$1&&d$1,jsx(a$7,{fillContent:!0,ref:U,children:l.map(a=>ko(a))})]}),!_&&f$1&&jsx(h$1,{children:jsx(j,{count:w,page:p.page,rowsPerPage:p.pageSize,onPageChange:a=>f$1?.(a,p.pageSize),onRowsPerPageChange:a=>f$1?.(p.page,a)})})]}):jsx(a$8,{columns:s,rows:l,slots:Mo,slotProps:{panel:{anchorEl:wo},toolbar:{setFilterButtonEl:yo,showQuickFilter:!0},...Do},columnHeaderHeight:48,getRowHeight:()=>68,loading:P,fetching:F,hideFooter:_,onRowsScrollEnd:v,scrollEndThreshold:R,...bo}),So&&jsx(rt,{})]},P?"loading":"data")},Xt=memo(et,jo);
24
+
25
+ export { uo as a, go as b, Co as c, Xt as d };
26
+ //# sourceMappingURL=out.js.map
27
+ //# sourceMappingURL=chunk-LLRQJF54.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DataView/index.tsx","../src/components/DataView/contants.ts","../src/components/DataView/DesktopFooter.tsx","../src/components/DataView/EnhancedMoreActions.tsx","../src/components/DataView/Toolbar.tsx"],"names":["memo","useCallback","useEffect","useMemo","useRef","useState","isEqual","Button","CircularProgress","Divider","LinearProgress","Stack","Typography","DATAGRID_ACTIONS","jsx","jsxs","DesktopFooter","rowCount","page","rowsPerPage","onPaginationChange","DesktopPaginationContainer","Pagination_default","newPage","newRowsPerPage","DesktopFooter_default","Children","cloneElement","isValidElement","createEnhanceMoreActions","children","onClose","child","originalOnClick","enhancedProps","args","childProps","EnhancedMoreActions","EnhancedMoreActions_default","forwardRef","GridToolbarColumnsButton","ColumnsButton","props","ref","Icon_default","Toolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Toolbar_default","Fragment","DataViewComponent","title","header","headerProps","breakpoint","columns","rows","mobileSlots","mobileSlotsProps","mobileRender","paginationModel","actions","moreActions","onAdd","onSearch","searchValue","onSearchChange","slots","slotProps","loading","fetching","fetchingNextPage","containerProps","hideFooter","showColumnButton","filterButton","activeFilters","onRowsScrollEnd","scrollEndThreshold","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","scrollableNodeRef","node","handleScroll","scrollTop","scrollHeight","clientHeight","showSearch","showAdd","showActions","showMoreActions","showHeaderMoreActions","showTopbarMoreActions","showActionsContainer","showTopbar","FooterComponent","dataGridSlots","Container","Header","ActionsContainer","ActionsDivider","Topbar","ToolbarActionsDivider","MenuPopover_default","SearchContainer","SearchInput_default","e","Result_default","FixedProgressBar_default","Scrollbar_default","row","MobilePaginationContainer","DataGrid_default","DataView_default"],"mappings":"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","sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport isEqual from 'react-fast-compare';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport {\n GridSlotsComponentsProps,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport DataGrid from 'components/DataGrid';\nimport FixedProgressBar from 'components/FixedProgressBar';\nimport Icon from 'components/Icon';\nimport MenuPopover from 'components/MenuPopover';\nimport Result from 'components/Result';\nimport Scrollbar from 'components/Scrollbar';\nimport SearchInput from 'components/SearchInput';\nimport usePopover from 'hooks/usePopover';\nimport useResponsive from 'hooks/useResponsive';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport DesktopFooter from './DesktopFooter';\nimport EnhancedMoreActions from './EnhancedMoreActions';\nimport Pagination from './Pagination';\nimport { DataGridSlotsProps, DataViewProps } from './props';\nimport {\n ActionsContainer,\n ActionsDivider,\n Container,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n ToolbarActionsDivider,\n Topbar,\n} from './styles';\nimport Toolbar from './Toolbar';\n\nconst DataViewComponent = <T extends GridValidRowModel = GridValidRowModel>({\n title,\n header,\n headerProps,\n breakpoint = 'md',\n columns,\n rows = [],\n mobileSlots,\n mobileSlotsProps,\n mobileRender,\n rowCount = 0,\n paginationModel = { page: 0, pageSize: 25 },\n onPaginationChange,\n actions,\n moreActions,\n onAdd,\n onSearch,\n searchValue,\n onSearchChange,\n slots,\n slotProps,\n loading,\n fetching,\n fetchingNextPage,\n containerProps = { height: 562, maxHeight: 562 },\n hideFooter,\n showColumnButton = false,\n filterButton,\n activeFilters,\n onRowsScrollEnd,\n scrollEndThreshold = 200,\n ...others\n}: DataViewProps<T>) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const scrollableNodeRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const node = scrollableNodeRef.current;\n\n if (!node || !isMobile || !onRowsScrollEnd) return;\n\n const handleScroll = () => {\n const { scrollTop, scrollHeight, clientHeight } = node;\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n if (distanceToBottom <= scrollEndThreshold) {\n (onRowsScrollEnd as () => void)();\n }\n };\n\n node.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => {\n node.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, onRowsScrollEnd, scrollEndThreshold, rows.length]);\n\n const showSearch = !!onSearch;\n const showAdd = !!onAdd;\n const showActions = !!actions;\n const showMoreActions = !!moreActions;\n const showHeaderMoreActions = isMobile && showMoreActions;\n const showTopbarMoreActions = !isMobile && showMoreActions;\n const showActionsContainer = showActions || showAdd || showHeaderMoreActions;\n const showTopbar =\n showTopbarMoreActions ||\n showSearch ||\n showColumnButton ||\n !!filterButton ||\n !isMobile;\n\n const FooterComponent = useCallback(() => {\n if (onPaginationChange) {\n return (\n <DesktopFooter\n rowCount={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPaginationChange={onPaginationChange}\n />\n );\n }\n\n return null;\n }, [rowCount, paginationModel, onPaginationChange]);\n\n const dataGridSlots: DataGridSlotsProps = useMemo(\n () => ({\n ...slots,\n footer: FooterComponent as unknown as DataGridSlotsProps['footer'],\n ...(showColumnButton &&\n !slots?.toolbar && {\n toolbar: Toolbar as unknown as DataGridSlotsProps['toolbar'],\n }),\n }),\n [slots, FooterComponent, showColumnButton],\n );\n\n return (\n <Container\n key={loading ? 'loading' : 'data'}\n breakpoint={breakpoint}\n {...containerProps}\n flex={loading ? 1 : undefined}\n minHeight={loading || rows.length === 0 ? 562 : undefined}\n >\n {header ? (\n <Stack p={3} {...headerProps}>\n {header}\n </Stack>\n ) : (\n <>\n <Header breakpoint={breakpoint}>\n <Typography variant=\"overline\" color=\"text.secondary\" noWrap>\n {title}\n </Typography>\n\n {showActionsContainer && (\n <ActionsContainer breakpoint={breakpoint}>\n {showActions && actions}\n\n {showAdd && (\n <>\n {showActions && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n startIcon={<Icon icon=\"SIMPLE_ADD\" />}\n variant=\"contained\"\n onClick={onAdd}\n >\n Adicionar\n </Button>\n </>\n )}\n\n {showHeaderMoreActions && (\n <>\n {(showActions || showAdd) && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n </>\n )}\n </ActionsContainer>\n )}\n </Header>\n\n {showTopbar && (\n <Topbar breakpoint={breakpoint}>\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n id={DATAGRID_ACTIONS}\n gap={0.5}\n >\n {showMoreActions && (\n <>\n {showTopbarMoreActions && (\n <>\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n\n {!isMobile && (\n <ToolbarActionsDivider\n orientation=\"vertical\"\n flexItem\n />\n )}\n </>\n )}\n\n {(showTopbarMoreActions || showHeaderMoreActions) && (\n <MenuPopover\n open={popover.open}\n anchorEl={popover.open}\n onClose={popover.onClose}\n sx={{\n minWidth: 160,\n }}\n disabledArrow={true}\n >\n <EnhancedMoreActions onClose={popover.onClose}>\n {moreActions}\n </EnhancedMoreActions>\n </MenuPopover>\n )}\n </>\n )}\n\n {!isMobile && filterButton && (\n <>\n {filterButton}\n\n {showTopbarMoreActions && (\n <ToolbarActionsDivider orientation=\"vertical\" flexItem />\n )}\n </>\n )}\n </Stack>\n\n {showSearch && (\n <SearchContainer breakpoint={breakpoint}>\n <SearchInput\n value={searchValue}\n placeholder=\"Buscar\"\n onSearch={onSearch}\n onChange={e => onSearchChange?.(e.target.value)}\n size=\"small\"\n fullWidth\n iconPosition=\"start\"\n />\n {isMobile && filterButton && (\n <Stack ml={1}>{filterButton}</Stack>\n )}\n </SearchContainer>\n )}\n </Topbar>\n )}\n\n {activeFilters && activeFilters}\n\n {!showTopbar && <Divider sx={{ mt: 2 }} />}\n </>\n )}\n\n {isMobile ? (\n <Result\n isFetching={fetching}\n fetching={<FixedProgressBar />}\n isLoading={loading}\n loading={<CircularProgress sx={{ m: '160px auto' }} />}\n isEmpty={rows.length === 0}\n empty={\n <Stack flex={1} direction=\"column\" {...mobileSlotsProps}>\n {mobileSlots && mobileSlots}\n\n <Stack flex={1} alignItems=\"center\" justifyContent=\"center\">\n {slots?.noRowsOverlay ? (\n <slots.noRowsOverlay />\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Nenhum registro encontrado\n </Typography>\n )}\n </Stack>\n </Stack>\n }\n >\n <Stack direction=\"column\" {...mobileSlotsProps}>\n {mobileSlots && mobileSlots}\n\n <Scrollbar fillContent ref={scrollableNodeRef}>\n {rows.map(row => mobileRender(row))}\n </Scrollbar>\n </Stack>\n\n {!hideFooter && onPaginationChange && (\n <MobilePaginationContainer>\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange?.(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange?.(paginationModel.page, newRowsPerPage)\n }\n />\n </MobilePaginationContainer>\n )}\n </Result>\n ) : (\n <DataGrid\n columns={columns}\n rows={rows}\n slots={dataGridSlots}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n ...slotProps,\n }}\n columnHeaderHeight={48}\n getRowHeight={() => 68}\n loading={loading}\n fetching={fetching}\n hideFooter={hideFooter}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={scrollEndThreshold}\n {...others}\n />\n )}\n\n {fetchingNextPage && <LinearProgress />}\n </Container>\n );\n};\n\nexport default memo(DataViewComponent, isEqual) as typeof DataViewComponent;\nexport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DesktopFooter,\n EnhancedMoreActions,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n Toolbar,\n ToolbarActionsDivider,\n Topbar,\n};\n","export const DATAGRID_ACTIONS = 'datagrid-actions';\n","import { memo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Pagination from './Pagination';\nimport { DesktopFooterProps } from './props';\nimport { DesktopPaginationContainer } from './styles';\n\nconst DesktopFooter = ({\n rowCount,\n page,\n rowsPerPage,\n onPaginationChange,\n}: DesktopFooterProps) => {\n return (\n <DesktopPaginationContainer>\n <Stack direction=\"row\" alignItems=\"center\" gap={0.5}>\n <Typography variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography variant=\"body2\">{rowCount}</Typography>\n </Stack>\n\n <Pagination\n count={rowCount}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={newPage => onPaginationChange(newPage, rowsPerPage)}\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange(page, newRowsPerPage)\n }\n />\n </DesktopPaginationContainer>\n );\n};\n\nexport default memo(DesktopFooter);\n","import {\n Children,\n cloneElement,\n isValidElement,\n memo,\n ReactElement,\n ReactNode,\n} from 'react';\n\nimport { EnhancedMoreActionsProps } from './props';\n\nconst createEnhanceMoreActions = (\n children: ReactNode,\n onClose: () => void,\n): ReactNode => {\n return Children.map(children, child => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const originalOnClick = (\n child.props as { onClick?: (...args: unknown[]) => void }\n ).onClick;\n\n const enhancedProps: {\n onClick?: (...args: unknown[]) => void;\n children?: ReactNode;\n } = {};\n\n enhancedProps.onClick = (...args: unknown[]) => {\n onClose();\n if (originalOnClick) {\n originalOnClick(...args);\n }\n };\n\n const childProps = child.props as { children?: ReactNode };\n if (childProps?.children) {\n enhancedProps.children = createEnhanceMoreActions(\n childProps.children,\n onClose,\n );\n }\n\n return cloneElement(child as ReactElement, enhancedProps);\n });\n};\n\nconst EnhancedMoreActions = ({\n children,\n onClose,\n}: EnhancedMoreActionsProps) => {\n if (!children) return null;\n return createEnhanceMoreActions(children, onClose);\n};\n\nexport default memo(EnhancedMoreActions);\n","import { forwardRef, useCallback } from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport { ToolbarProps } from './props';\n\nconst ColumnsButton = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, ...props }, ref) => (\n <Button\n {...props}\n ref={ref}\n color=\"inherit\"\n startIcon={<Icon icon=\"COLUMNS\" />}\n >\n {children ?? 'Colunas'}\n </Button>\n ),\n);\n\nColumnsButton.displayName = 'ColumnsButton';\n\nconst Toolbar = ({ setFilterButtonEl }: ToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={DATAGRID_ACTIONS}>\n <GridToolbarColumnsButton\n ref={handleColumnsButtonRef}\n slotProps={{\n button: {\n color: 'inherit',\n startIcon: <Icon icon=\"COLUMNS\" />,\n children: 'Colunas',\n },\n }}\n />\n </Portal>\n );\n};\n\nexport default Toolbar;\n"]}
@@ -20,6 +20,8 @@ interface DataViewProps<T = unknown> extends DataGridProps {
20
20
  headerProps?: StackProps;
21
21
  breakpoint?: Breakpoint | number;
22
22
  onPaginationChange?: (page: number, rowsPerPage: number) => void;
23
+ mobileSlots?: ReactNode;
24
+ mobileSlotsProps?: StackProps;
23
25
  mobileRender: (row: T) => ReactNode;
24
26
  actions?: ReactNode;
25
27
  moreActions?: ReactNode;
@@ -81,6 +83,6 @@ declare const MobilePaginationContainer: _emotion_styled.StyledComponent<_mui_ma
81
83
 
82
84
  declare const Toolbar: ({ setFilterButtonEl }: ToolbarProps) => react_jsx_runtime.JSX.Element;
83
85
 
84
- declare const _default: <T extends GridValidRowModel = GridValidRowModel>({ title, header, headerProps, breakpoint, columns, rows, mobileRender, rowCount, paginationModel, onPaginationChange, actions, moreActions, onAdd, onSearch, searchValue, onSearchChange, slots, slotProps, loading, fetching, fetchingNextPage, containerProps, hideFooter, showColumnButton, filterButton, activeFilters, onRowsScrollEnd, scrollEndThreshold, ...others }: DataViewProps<T>) => react_jsx_runtime.JSX.Element;
86
+ declare const _default: <T extends GridValidRowModel = GridValidRowModel>({ title, header, headerProps, breakpoint, columns, rows, mobileSlots, mobileSlotsProps, mobileRender, rowCount, paginationModel, onPaginationChange, actions, moreActions, onAdd, onSearch, searchValue, onSearchChange, slots, slotProps, loading, fetching, fetchingNextPage, containerProps, hideFooter, showColumnButton, filterButton, activeFilters, onRowsScrollEnd, scrollEndThreshold, ...others }: DataViewProps<T>) => react_jsx_runtime.JSX.Element;
85
87
 
86
88
  export { ActionsContainer, ActionsDivider, Container, _default$2 as DesktopFooter, _default$1 as EnhancedMoreActions, Header, MobilePaginationContainer, SearchContainer, Toolbar, ToolbarActionsDivider, Topbar, _default as default };
@@ -1,4 +1,4 @@
1
- export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-P444NFTD.js';
1
+ export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-LLRQJF54.js';
2
2
  import '../../chunk-MC44LVZD.js';
3
3
  import '../../chunk-IJZCVZ32.js';
4
4
  import '../../chunk-IDFJFFIV.js';
@@ -3,7 +3,7 @@ export { a as FilterOperator, b as SortType } from '../../chunk-VL4W63YA.js';
3
3
  import { a as a$1 } from '../../chunk-LG2B5RFV.js';
4
4
  import { d, c } from '../../chunk-N7IK5EUP.js';
5
5
  import { h, a as a$3 } from '../../chunk-OF6623HG.js';
6
- import { d as d$1 } from '../../chunk-P444NFTD.js';
6
+ import { d as d$1 } from '../../chunk-LLRQJF54.js';
7
7
  import '../../chunk-MC44LVZD.js';
8
8
  import '../../chunk-IJZCVZ32.js';
9
9
  import { a as a$2 } from '../../chunk-SY2RHBDJ.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.8.29",
3
+ "version": "2.8.30",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,27 +0,0 @@
1
- import { a as a$4 } from './chunk-MC44LVZD.js';
2
- import { a as a$5 } from './chunk-IJZCVZ32.js';
3
- import { a as a$8 } from './chunk-IDFJFFIV.js';
4
- import { a as a$6 } from './chunk-6U5LS7MP.js';
5
- import { i, j, a as a$2, b as b$2, c, d, f, e, g, h } from './chunk-2W54CJ6E.js';
6
- import { a as a$9 } from './chunk-I4PPSW36.js';
7
- import { a as a$3 } from './chunk-CO2KQFUN.js';
8
- import { a } from './chunk-ET6H3IRG.js';
9
- import { a as a$7 } from './chunk-F65ZXAGV.js';
10
- import { a as a$1 } from './chunk-LQRRMVFN.js';
11
- import { b as b$1 } from './chunk-RPO7AI5K.js';
12
- import { memo, forwardRef, useState, useRef, useEffect, useCallback, useMemo, Children, isValidElement, cloneElement } from 'react';
13
- import Zo from 'react-fast-compare';
14
- import H from '@mui/material/Button';
15
- import $o from '@mui/material/CircularProgress';
16
- import jo from '@mui/material/Divider';
17
- import ot from '@mui/material/LinearProgress';
18
- import D from '@mui/material/Stack';
19
- import po from '@mui/material/Typography';
20
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
- import { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
22
-
23
- var b="datagrid-actions";var Bo=({rowCount:t,page:r,rowsPerPage:e,onPaginationChange:i$1})=>jsxs(i,{children:[jsxs(D,{direction:"row",alignItems:"center",gap:.5,children:[jsx(po,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(po,{variant:"body2",children:t})]}),jsx(j,{count:t,page:r,rowsPerPage:e,onPageChange:s=>i$1(s,e),onRowsPerPageChange:s=>i$1(r,s)})]}),fo=memo(Bo);var uo=(t,r)=>Children.map(t,e=>{if(!isValidElement(e))return e;let i=e.props.onClick,s={};s.onClick=(...A)=>{r(),i&&i(...A);};let c=e.props;return c?.children&&(s.children=uo(c.children,r)),cloneElement(e,s)}),No=({children:t,onClose:r})=>t?uo(t,r):null,ho=memo(No);var Wo=forwardRef(({children:t,...r},e)=>jsx(H,{...r,ref:e,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:t??"Colunas"}));Wo.displayName="ColumnsButton";var Uo=({setFilterButtonEl:t})=>{let r=useCallback(e=>{t(e);},[t]);return jsx(a$9,{container:b,children:jsx(GridToolbarColumnsButton,{ref:r,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},go=Uo;var tt=({title:t,header:r,headerProps:e$1,breakpoint:i="md",columns:s,rows:c$1=[],mobileRender:A,rowCount:w=0,paginationModel:p={page:0,pageSize:25},onPaginationChange:u,actions:O,moreActions:L,onAdd:N,onSearch:V,searchValue:Co,onSearchChange:ko,slots:h$1,slotProps:To,loading:g$1,fetching:z,fetchingNextPage:vo,containerProps:So={height:562,maxHeight:562},hideFooter:F,showColumnButton:y=!1,filterButton:P,activeFilters:_,onRowsScrollEnd:k,scrollEndThreshold:R=200,...bo})=>{let d$1=a$1(),l=b$1("down",i),[Do,Ao]=useState(null),W=useRef(null);useEffect(()=>{let a=W.current;if(!a||!l||!k)return;let J=()=>{let{scrollTop:Ro,scrollHeight:Mo,clientHeight:Eo}=a;Mo-Ro-Eo<=R&&k();};return a.addEventListener("scroll",J,{passive:!0}),()=>{a.removeEventListener("scroll",J);}},[l,k,R,c$1.length]);let U=!!V,M=!!N,T=!!O,E=!!L,I=l&&E,v=!l&&E,wo=T||M||I,q=v||U||y||!!P||!l,Q=useCallback(()=>u?jsx(fo,{rowCount:w,page:p.page,rowsPerPage:p.pageSize,onPaginationChange:u}):null,[w,p,u]),yo=useMemo(()=>({...h$1,footer:Q,...y&&!h$1?.toolbar&&{toolbar:go}}),[h$1,Q,y]);return jsxs(a$2,{breakpoint:i,...So,flex:g$1?1:void 0,minHeight:g$1||c$1.length===0?562:void 0,children:[r?jsx(D,{p:3,...e$1,children:r}):jsxs(Fragment,{children:[jsxs(b$2,{breakpoint:i,children:[jsx(po,{variant:"overline",color:"text.secondary",noWrap:!0,children:t}),wo&&jsxs(c,{breakpoint:i,children:[T&&O,M&&jsxs(Fragment,{children:[T&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(H,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:N,children:"Adicionar"})]}),I&&jsxs(Fragment,{children:[(T||M)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(H,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:d$1.onOpen,children:"Mais"})]})]})]}),q&&jsxs(f,{breakpoint:i,children:[jsxs(D,{flex:1,direction:"row",alignItems:"center",id:b,gap:.5,children:[E&&jsxs(Fragment,{children:[v&&jsxs(Fragment,{children:[jsx(H,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:d$1.onOpen,children:"Mais"}),!l&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(v||I)&&jsx(a$3,{open:d$1.open,anchorEl:d$1.open,onClose:d$1.onClose,sx:{minWidth:160},disabledArrow:!0,children:jsx(ho,{onClose:d$1.onClose,children:L})})]}),!l&&P&&jsxs(Fragment,{children:[P,v&&jsx(e,{orientation:"vertical",flexItem:!0})]})]}),U&&jsxs(g,{breakpoint:i,children:[jsx(a$4,{value:Co,placeholder:"Buscar",onSearch:V,onChange:a=>ko?.(a.target.value),size:"small",fullWidth:!0,iconPosition:"start"}),l&&P&&jsx(D,{ml:1,children:P})]})]}),_&&_,!q&&jsx(jo,{sx:{mt:2}})]}),l?jsxs(a$5,{isFetching:z,fetching:jsx(a$6,{}),isLoading:g$1,loading:jsx($o,{sx:{m:"160px auto"}}),isEmpty:c$1.length===0,empty:jsx(D,{flex:1,alignItems:"center",justifyContent:"center",children:h$1?.noRowsOverlay?jsx(h$1.noRowsOverlay,{}):jsx(po,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})}),children:[jsx(a$7,{fillContent:!0,ref:W,children:c$1.map(a=>A(a))}),!F&&jsx(h,{children:jsx(j,{count:w,page:p.page,rowsPerPage:p.pageSize,onPageChange:a=>u?.(a,p.pageSize),onRowsPerPageChange:a=>u?.(p.page,a)})})]}):jsx(a$8,{columns:s,rows:c$1,slots:yo,slotProps:{panel:{anchorEl:Do},toolbar:{setFilterButtonEl:Ao,showQuickFilter:!0},...To},columnHeaderHeight:48,getRowHeight:()=>68,loading:g$1,fetching:z,hideFooter:F,onRowsScrollEnd:k,scrollEndThreshold:R,...bo}),vo&&jsx(ot,{})]},g$1?"loading":"data")},Jt=memo(tt,Zo);
24
-
25
- export { fo as a, ho as b, go as c, Jt as d };
26
- //# sourceMappingURL=out.js.map
27
- //# sourceMappingURL=chunk-P444NFTD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/DataView/index.tsx","../src/components/DataView/contants.ts","../src/components/DataView/DesktopFooter.tsx","../src/components/DataView/EnhancedMoreActions.tsx","../src/components/DataView/Toolbar.tsx"],"names":["memo","useCallback","useEffect","useMemo","useRef","useState","isEqual","Button","CircularProgress","Divider","LinearProgress","Stack","Typography","DATAGRID_ACTIONS","jsx","jsxs","DesktopFooter","rowCount","page","rowsPerPage","onPaginationChange","DesktopPaginationContainer","Pagination_default","newPage","newRowsPerPage","DesktopFooter_default","Children","cloneElement","isValidElement","createEnhanceMoreActions","children","onClose","child","originalOnClick","enhancedProps","args","childProps","EnhancedMoreActions","EnhancedMoreActions_default","forwardRef","GridToolbarColumnsButton","ColumnsButton","props","ref","Icon_default","Toolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Toolbar_default","Fragment","DataViewComponent","title","header","headerProps","breakpoint","columns","rows","mobileRender","paginationModel","actions","moreActions","onAdd","onSearch","searchValue","onSearchChange","slots","slotProps","loading","fetching","fetchingNextPage","containerProps","hideFooter","showColumnButton","filterButton","activeFilters","onRowsScrollEnd","scrollEndThreshold","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","scrollableNodeRef","node","handleScroll","scrollTop","scrollHeight","clientHeight","showSearch","showAdd","showActions","showMoreActions","showHeaderMoreActions","showTopbarMoreActions","showActionsContainer","showTopbar","FooterComponent","dataGridSlots","Container","Header","ActionsContainer","ActionsDivider","Topbar","ToolbarActionsDivider","MenuPopover_default","SearchContainer","SearchInput_default","e","Result_default","FixedProgressBar_default","Scrollbar_default","row","MobilePaginationContainer","DataGrid_default","DataView_default"],"mappings":"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","sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport isEqual from 'react-fast-compare';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport {\n GridSlotsComponentsProps,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport DataGrid from 'components/DataGrid';\nimport FixedProgressBar from 'components/FixedProgressBar';\nimport Icon from 'components/Icon';\nimport MenuPopover from 'components/MenuPopover';\nimport Result from 'components/Result';\nimport Scrollbar from 'components/Scrollbar';\nimport SearchInput from 'components/SearchInput';\nimport usePopover from 'hooks/usePopover';\nimport useResponsive from 'hooks/useResponsive';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport DesktopFooter from './DesktopFooter';\nimport EnhancedMoreActions from './EnhancedMoreActions';\nimport Pagination from './Pagination';\nimport { DataGridSlotsProps, DataViewProps } from './props';\nimport {\n ActionsContainer,\n ActionsDivider,\n Container,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n ToolbarActionsDivider,\n Topbar,\n} from './styles';\nimport Toolbar from './Toolbar';\n\nconst DataViewComponent = <T extends GridValidRowModel = GridValidRowModel>({\n title,\n header,\n headerProps,\n breakpoint = 'md',\n columns,\n rows = [],\n mobileRender,\n rowCount = 0,\n paginationModel = { page: 0, pageSize: 25 },\n onPaginationChange,\n actions,\n moreActions,\n onAdd,\n onSearch,\n searchValue,\n onSearchChange,\n slots,\n slotProps,\n loading,\n fetching,\n fetchingNextPage,\n containerProps = { height: 562, maxHeight: 562 },\n hideFooter,\n showColumnButton = false,\n filterButton,\n activeFilters,\n onRowsScrollEnd,\n scrollEndThreshold = 200,\n ...others\n}: DataViewProps<T>) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const scrollableNodeRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const node = scrollableNodeRef.current;\n\n if (!node || !isMobile || !onRowsScrollEnd) return;\n\n const handleScroll = () => {\n const { scrollTop, scrollHeight, clientHeight } = node;\n const distanceToBottom = scrollHeight - scrollTop - clientHeight;\n if (distanceToBottom <= scrollEndThreshold) {\n (onRowsScrollEnd as () => void)();\n }\n };\n\n node.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => {\n node.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, onRowsScrollEnd, scrollEndThreshold, rows.length]);\n\n const showSearch = !!onSearch;\n const showAdd = !!onAdd;\n const showActions = !!actions;\n const showMoreActions = !!moreActions;\n const showHeaderMoreActions = isMobile && showMoreActions;\n const showTopbarMoreActions = !isMobile && showMoreActions;\n const showActionsContainer = showActions || showAdd || showHeaderMoreActions;\n const showTopbar =\n showTopbarMoreActions ||\n showSearch ||\n showColumnButton ||\n !!filterButton ||\n !isMobile;\n\n const FooterComponent = useCallback(() => {\n if (onPaginationChange) {\n return (\n <DesktopFooter\n rowCount={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPaginationChange={onPaginationChange}\n />\n );\n }\n\n return null;\n }, [rowCount, paginationModel, onPaginationChange]);\n\n const dataGridSlots: DataGridSlotsProps = useMemo(\n () => ({\n ...slots,\n footer: FooterComponent as unknown as DataGridSlotsProps['footer'],\n ...(showColumnButton &&\n !slots?.toolbar && {\n toolbar: Toolbar as unknown as DataGridSlotsProps['toolbar'],\n }),\n }),\n [slots, FooterComponent, showColumnButton],\n );\n\n return (\n <Container\n key={loading ? 'loading' : 'data'}\n breakpoint={breakpoint}\n {...containerProps}\n flex={loading ? 1 : undefined}\n minHeight={loading || rows.length === 0 ? 562 : undefined}\n >\n {header ? (\n <Stack p={3} {...headerProps}>\n {header}\n </Stack>\n ) : (\n <>\n <Header breakpoint={breakpoint}>\n <Typography variant=\"overline\" color=\"text.secondary\" noWrap>\n {title}\n </Typography>\n\n {showActionsContainer && (\n <ActionsContainer breakpoint={breakpoint}>\n {showActions && actions}\n\n {showAdd && (\n <>\n {showActions && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n startIcon={<Icon icon=\"SIMPLE_ADD\" />}\n variant=\"contained\"\n onClick={onAdd}\n >\n Adicionar\n </Button>\n </>\n )}\n\n {showHeaderMoreActions && (\n <>\n {(showActions || showAdd) && (\n <ActionsDivider orientation=\"vertical\" flexItem />\n )}\n\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n </>\n )}\n </ActionsContainer>\n )}\n </Header>\n\n {showTopbar && (\n <Topbar breakpoint={breakpoint}>\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n id={DATAGRID_ACTIONS}\n gap={0.5}\n >\n {showMoreActions && (\n <>\n {showTopbarMoreActions && (\n <>\n <Button\n color=\"inherit\"\n startIcon={<Icon icon=\"MORE_BOLD\" />}\n size=\"small\"\n onClick={popover.onOpen}\n >\n Mais\n </Button>\n\n {!isMobile && (\n <ToolbarActionsDivider\n orientation=\"vertical\"\n flexItem\n />\n )}\n </>\n )}\n\n {(showTopbarMoreActions || showHeaderMoreActions) && (\n <MenuPopover\n open={popover.open}\n anchorEl={popover.open}\n onClose={popover.onClose}\n sx={{\n minWidth: 160,\n }}\n disabledArrow={true}\n >\n <EnhancedMoreActions onClose={popover.onClose}>\n {moreActions}\n </EnhancedMoreActions>\n </MenuPopover>\n )}\n </>\n )}\n\n {!isMobile && filterButton && (\n <>\n {filterButton}\n\n {showTopbarMoreActions && (\n <ToolbarActionsDivider orientation=\"vertical\" flexItem />\n )}\n </>\n )}\n </Stack>\n\n {showSearch && (\n <SearchContainer breakpoint={breakpoint}>\n <SearchInput\n value={searchValue}\n placeholder=\"Buscar\"\n onSearch={onSearch}\n onChange={e => onSearchChange?.(e.target.value)}\n size=\"small\"\n fullWidth\n iconPosition=\"start\"\n />\n {isMobile && filterButton && (\n <Stack ml={1}>{filterButton}</Stack>\n )}\n </SearchContainer>\n )}\n </Topbar>\n )}\n\n {activeFilters && activeFilters}\n\n {!showTopbar && <Divider sx={{ mt: 2 }} />}\n </>\n )}\n\n {isMobile ? (\n <Result\n isFetching={fetching}\n fetching={<FixedProgressBar />}\n isLoading={loading}\n loading={<CircularProgress sx={{ m: '160px auto' }} />}\n isEmpty={rows.length === 0}\n empty={\n <Stack flex={1} alignItems=\"center\" justifyContent=\"center\">\n {slots?.noRowsOverlay ? (\n <slots.noRowsOverlay />\n ) : (\n <Typography variant=\"body2\" color=\"text.secondary\">\n Nenhum registro encontrado\n </Typography>\n )}\n </Stack>\n }\n >\n <Scrollbar fillContent ref={scrollableNodeRef}>\n {rows.map(row => mobileRender(row))}\n </Scrollbar>\n\n {!hideFooter && (\n <MobilePaginationContainer>\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange?.(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange?.(paginationModel.page, newRowsPerPage)\n }\n />\n </MobilePaginationContainer>\n )}\n </Result>\n ) : (\n <DataGrid\n columns={columns}\n rows={rows}\n slots={dataGridSlots}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n ...slotProps,\n }}\n columnHeaderHeight={48}\n getRowHeight={() => 68}\n loading={loading}\n fetching={fetching}\n hideFooter={hideFooter}\n onRowsScrollEnd={onRowsScrollEnd}\n scrollEndThreshold={scrollEndThreshold}\n {...others}\n />\n )}\n\n {fetchingNextPage && <LinearProgress />}\n </Container>\n );\n};\n\nexport default memo(DataViewComponent, isEqual) as typeof DataViewComponent;\nexport {\n ActionsContainer,\n ActionsDivider,\n Container,\n DesktopFooter,\n EnhancedMoreActions,\n Header,\n MobilePaginationContainer,\n SearchContainer,\n Toolbar,\n ToolbarActionsDivider,\n Topbar,\n};\n","export const DATAGRID_ACTIONS = 'datagrid-actions';\n","import { memo } from 'react';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Pagination from './Pagination';\nimport { DesktopFooterProps } from './props';\nimport { DesktopPaginationContainer } from './styles';\n\nconst DesktopFooter = ({\n rowCount,\n page,\n rowsPerPage,\n onPaginationChange,\n}: DesktopFooterProps) => {\n return (\n <DesktopPaginationContainer>\n <Stack direction=\"row\" alignItems=\"center\" gap={0.5}>\n <Typography variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography variant=\"body2\">{rowCount}</Typography>\n </Stack>\n\n <Pagination\n count={rowCount}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={newPage => onPaginationChange(newPage, rowsPerPage)}\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange(page, newRowsPerPage)\n }\n />\n </DesktopPaginationContainer>\n );\n};\n\nexport default memo(DesktopFooter);\n","import {\n Children,\n cloneElement,\n isValidElement,\n memo,\n ReactElement,\n ReactNode,\n} from 'react';\n\nimport { EnhancedMoreActionsProps } from './props';\n\nconst createEnhanceMoreActions = (\n children: ReactNode,\n onClose: () => void,\n): ReactNode => {\n return Children.map(children, child => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const originalOnClick = (\n child.props as { onClick?: (...args: unknown[]) => void }\n ).onClick;\n\n const enhancedProps: {\n onClick?: (...args: unknown[]) => void;\n children?: ReactNode;\n } = {};\n\n enhancedProps.onClick = (...args: unknown[]) => {\n onClose();\n if (originalOnClick) {\n originalOnClick(...args);\n }\n };\n\n const childProps = child.props as { children?: ReactNode };\n if (childProps?.children) {\n enhancedProps.children = createEnhanceMoreActions(\n childProps.children,\n onClose,\n );\n }\n\n return cloneElement(child as ReactElement, enhancedProps);\n });\n};\n\nconst EnhancedMoreActions = ({\n children,\n onClose,\n}: EnhancedMoreActionsProps) => {\n if (!children) return null;\n return createEnhanceMoreActions(children, onClose);\n};\n\nexport default memo(EnhancedMoreActions);\n","import { forwardRef, useCallback } from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { DATAGRID_ACTIONS } from './contants';\nimport { ToolbarProps } from './props';\n\nconst ColumnsButton = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, ...props }, ref) => (\n <Button\n {...props}\n ref={ref}\n color=\"inherit\"\n startIcon={<Icon icon=\"COLUMNS\" />}\n >\n {children ?? 'Colunas'}\n </Button>\n ),\n);\n\nColumnsButton.displayName = 'ColumnsButton';\n\nconst Toolbar = ({ setFilterButtonEl }: ToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={DATAGRID_ACTIONS}>\n <GridToolbarColumnsButton\n ref={handleColumnsButtonRef}\n slotProps={{\n button: {\n color: 'inherit',\n startIcon: <Icon icon=\"COLUMNS\" />,\n children: 'Colunas',\n },\n }}\n />\n </Portal>\n );\n};\n\nexport default Toolbar;\n"]}