@zydon/common 2.8.38 → 2.8.39

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,26 @@
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$1, c, d, f, e, g, h as h$1 } from './chunk-2W54CJ6E.js';
6
+ import { a as a$7 } from './chunk-F65ZXAGV.js';
7
+ import { a as a$9 } from './chunk-I4PPSW36.js';
8
+ import { a as a$3 } from './chunk-CO2KQFUN.js';
9
+ import { a } from './chunk-ET6H3IRG.js';
10
+ import { a as a$1 } from './chunk-LQRRMVFN.js';
11
+ import { b } from './chunk-RPO7AI5K.js';
12
+ import { memo, forwardRef, useState, useRef, useEffect, useCallback, useMemo, Fragment as Fragment$1, Children, isValidElement, cloneElement } from 'react';
13
+ import ot from 'react-fast-compare';
14
+ import H from '@mui/material/Button';
15
+ import tt from '@mui/material/CircularProgress';
16
+ import rt from '@mui/material/Divider';
17
+ import et from '@mui/material/LinearProgress';
18
+ import h 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 A="datagrid-actions";var Ho=({rowCount:r,page:e,rowsPerPage:n,onPaginationChange:a})=>jsxs(i,{children:[jsxs(h,{direction:"row",alignItems:"center",gap:.5,children:[jsx(po,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(po,{variant:"body2",children:r})]}),jsx(j,{count:r,page:e,rowsPerPage:n,onPageChange:s=>a(s,n),onRowsPerPageChange:s=>a(e,s)})]}),uo=memo(Ho);var ho=(r,e)=>Children.map(r,n=>{if(!isValidElement(n))return n;let a=n.props.onClick,s={};s.onClick=(...d)=>{e(),a&&a(...d);};let l=n.props;return l?.children&&(s.children=ho(l.children,e)),cloneElement(n,s)}),Vo=({children:r,onClose:e})=>r?ho(r,e):null,go=memo(Vo);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:A,children:jsx(GridToolbarColumnsButton,{ref:e,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},Co=Qo;var nt=({title:r,header:e$1,headerProps:n,breakpoint:a$9="md",columns:s,rows:l=[],mobileSlots:d$1,mobileSlotsProps:O,mobileRender:ko,rowCount:b$2=0,paginationModel:m={page:0,pageSize:25},onPaginationChange:f$1,actions:L,moreActions:N,onAdd:F,onSearch:V,searchValue:To,onSearchChange:vo,slots:C,slotProps:Do,loading:P,fetching:z,fetchingNextPage:So,containerProps:yo={height:562,maxHeight:562},hideFooter:_,showColumnButton:R=!1,filterButton:k,activeFilters:W,onRowsScrollEnd:v,scrollEndThreshold:w=200,...Ao})=>{let u=a$1(),c$1=b("down",a$9),[bo,Ro]=useState(null),U=useRef(null);useEffect(()=>{let i=U.current;if(!i||!c$1||!v)return;let K=()=>{let{scrollTop:xo,scrollHeight:Eo,clientHeight:Io}=i;Eo-xo-Io<=w&&v();};return i.addEventListener("scroll",K,{passive:!0}),()=>{i.removeEventListener("scroll",K);}},[c$1,v,w,l.length]);let q=!!V,M=!!F,D=!!L,x=!!N,E=c$1&&x,S=!c$1&&x,wo=D||M||E,Q=S||q||R||!!k||!c$1,J=useCallback(()=>f$1?jsx(uo,{rowCount:b$2,page:m.page,rowsPerPage:m.pageSize,onPaginationChange:f$1}):null,[b$2,m,f$1]),Mo=useMemo(()=>({...C,footer:J,...R&&!C?.toolbar&&{toolbar:Co}}),[C,J,R]);return jsxs(a$2,{breakpoint:a$9,...yo,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$1,{breakpoint:a$9,children:[jsx(po,{variant:"overline",color:"text.secondary",noWrap:!0,children:r}),wo&&jsxs(c,{breakpoint:a$9,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:F,children:"Adicionar"})]}),E&&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:a$9,children:[jsxs(h,{flex:1,direction:"row",alignItems:"center",id:A,gap:.5,children:[x&&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||E)&&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:a$9,children:[jsx(a$4,{value:To,placeholder:"Buscar",onSearch:V,onChange:i=>vo?.(i.target.value),size:"small",fullWidth:!0,iconPosition:"start"}),c$1&&k&&jsx(h,{ml:1,children:k})]})]}),W&&W,!Q&&jsx(rt,{sx:{mt:2}})]}),c$1?jsxs(a$5,{isFetching:z,fetching:jsx(a$6,{}),isLoading:P,loading:jsx(tt,{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(po,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})})]}),children:[jsxs(h,{direction:"column",flex:1,minHeight:0,...O,children:[d$1&&d$1,jsx(a$7,{fillContent:!0,ref:U,children:l.map(i=>jsx(Fragment$1,{children:ko(i)},i.id))})]}),!_&&f$1&&jsx(h$1,{children:jsx(j,{count:b$2,page:m.page,rowsPerPage:m.pageSize,onPageChange:i=>f$1?.(i,m.pageSize),onRowsPerPageChange:i=>f$1?.(m.page,i)})})]}):jsx(a$8,{columns:s,rows:l,slots:Mo,slotProps:{panel:{anchorEl:bo},toolbar:{setFilterButtonEl:Ro,showQuickFilter:!0},...Do},columnHeaderHeight:48,getRowHeight:()=>68,loading:P,fetching:z,hideFooter:_,onRowsScrollEnd:v,scrollEndThreshold:w,...Ao}),So&&jsx(et,{})]},P?"loading":"data")},Yt=memo(nt,ot);
24
+
25
+ export { uo as a, go as b, Co as c, Yt as d };
26
+ //# sourceMappingURL=chunk-QTGORIGL.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":["Fragment","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","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 {\n Fragment,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} 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\n direction=\"column\"\n flex={1}\n minHeight={0}\n {...mobileSlotsProps}\n >\n {mobileSlots && mobileSlots}\n\n <Scrollbar fillContent ref={scrollableNodeRef}>\n {rows.map(row => (\n <Fragment key={row.id}>\n {mobileRender(row)}\n </Fragment>\n ))}\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"]}
@@ -1,4 +1,4 @@
1
- export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-TGEDZBDY.js';
1
+ export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-QTGORIGL.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-TGEDZBDY.js';
6
+ import { d as d$1 } from '../../chunk-QTGORIGL.js';
7
7
  import '../../chunk-MC44LVZD.js';
8
8
  import '../../chunk-IJZCVZ32.js';
9
9
  import '../../chunk-IDFJFFIV.js';
@@ -1,9 +1,10 @@
1
- import n from '@mui/material/Stack';
1
+ import { Fragment } from 'react';
2
+ import i from '@mui/material/Stack';
2
3
  import { styled } from '@mui/material/styles';
3
4
  import a from '@mui/material/Typography';
4
- import { jsx } from 'react/jsx-runtime';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
6
 
6
- var l=styled(n)({display:"grid",gridTemplateColumns:"auto auto"}),p=styled(a)(({theme:e})=>({color:e.palette.grey[600],display:"flex",gap:"8px",alignItems:"center"})),m=styled(a)(({theme:e})=>({textAlign:"right",color:e.palette.grey[800]}));var u=({data:e,...i})=>e.length===0?null:jsx(l,{gap:1,...i,children:e.map(r=>[jsx(p,{...r.keyProps,children:r.label},`label:${r.id}`),jsx(m,{variant:"body2",...r.valueProps,children:r.value},`value:${r.id}`)])}),b=u;
7
+ var l=styled(i)({display:"grid",gridTemplateColumns:"auto auto"}),p=styled(a)(({theme:r})=>({color:r.palette.grey[600],display:"flex",gap:"8px",alignItems:"center"})),m=styled(a)(({theme:r})=>({textAlign:"right",color:r.palette.grey[800]}));var g=({data:r,...n})=>r.length===0?null:jsx(l,{gap:1,...n,children:r.map(e=>jsxs(Fragment,{children:[jsx(p,{...e.keyProps,children:e.label}),jsx(m,{variant:"body2",...e.valueProps,children:e.value})]},e.id))}),P=g;
7
8
 
8
- export { b as default };
9
+ export { P as default };
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Summary/styles.ts","../../../src/components/Summary/index.tsx"],"names":["Stack","styled","Typography","Container","Label","theme","Value","jsx","Summary","data","other","d","Summary_default"],"mappings":"AAAA,OAAOA,MAAW,sBAClB,OAAS,UAAAC,MAAc,uBACvB,OAAOC,MAAgB,2BAEhB,IAAMC,EAAYF,EAAOD,CAAK,EAAE,CACrC,QAAS,OACT,oBAAqB,WACvB,CAAC,EAEYI,EAAQH,EAAOC,CAAU,EAAE,CAAC,CAAE,MAAAG,CAAM,KAAO,CACtD,MAAOA,EAAM,QAAQ,KAAK,GAAG,EAC7B,QAAS,OACT,IAAK,MACL,WAAY,QACd,EAAE,EAEWC,EAAQL,EAAOC,CAAU,EAAE,CAAC,CAAE,MAAAG,CAAM,KAAO,CACtD,UAAW,QACX,MAAOA,EAAM,QAAQ,KAAK,GAAG,CAC/B,EAAE,ECVM,cAAAE,MAAA,oBANR,IAAMC,EAAU,CAAC,CAAE,KAAAC,EAAM,GAAGC,CAAM,IAC5BD,EAAK,SAAW,EAAU,KAG5BF,EAACJ,EAAA,CAAU,IAAK,EAAI,GAAGO,EACpB,SAAAD,EAAK,IAAIE,GAAK,CACbJ,EAACH,EAAA,CAA6B,GAAGO,EAAE,SAChC,SAAAA,EAAE,OADO,SAASA,EAAE,IAEvB,EACAJ,EAACD,EAAA,CAA4B,QAAQ,QAAS,GAAGK,EAAE,WAChD,SAAAA,EAAE,OADO,SAASA,EAAE,IAEvB,CACF,CAAC,EACH,EAIGC,EAAQJ","sourcesContent":["import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nexport const Container = styled(Stack)({\n display: 'grid',\n gridTemplateColumns: 'auto auto',\n});\n\nexport const Label = styled(Typography)(({ theme }) => ({\n color: theme.palette.grey[600],\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n}));\n\nexport const Value = styled(Typography)(({ theme }) => ({\n textAlign: 'right',\n color: theme.palette.grey[800],\n}));\n","import { SummaryProps } from './props';\nimport { Container, Label, Value } from './styles';\n\nconst Summary = ({ data, ...other }: SummaryProps) => {\n if (data.length === 0) return null;\n\n return (\n <Container gap={1} {...other}>\n {data.map(d => [\n <Label key={`label:${d.id}`} {...d.keyProps}>\n {d.label}\n </Label>,\n <Value key={`value:${d.id}`} variant=\"body2\" {...d.valueProps}>\n {d.value}\n </Value>,\n ])}\n </Container>\n );\n};\n\nexport default Summary;\n"]}
1
+ {"version":3,"sources":["../../../src/components/Summary/index.tsx","../../../src/components/Summary/styles.ts"],"names":["Fragment","Stack","styled","Typography","Container","Label","theme","Value","jsx","jsxs","Summary","data","other","d","Summary_default"],"mappings":"AAAA,OAAS,YAAAA,MAAgB,QCAzB,OAAOC,MAAW,sBAClB,OAAS,UAAAC,MAAc,uBACvB,OAAOC,MAAgB,2BAEhB,IAAMC,EAAYF,EAAOD,CAAK,EAAE,CACrC,QAAS,OACT,oBAAqB,WACvB,CAAC,EAEYI,EAAQH,EAAOC,CAAU,EAAE,CAAC,CAAE,MAAAG,CAAM,KAAO,CACtD,MAAOA,EAAM,QAAQ,KAAK,GAAG,EAC7B,QAAS,OACT,IAAK,MACL,WAAY,QACd,EAAE,EAEWC,EAAQL,EAAOC,CAAU,EAAE,CAAC,CAAE,MAAAG,CAAM,KAAO,CACtD,UAAW,QACX,MAAOA,EAAM,QAAQ,KAAK,GAAG,CAC/B,EAAE,EDRM,OACE,OAAAE,EADF,QAAAC,MAAA,oBANR,IAAMC,EAAU,CAAC,CAAE,KAAAC,EAAM,GAAGC,CAAM,IAC5BD,EAAK,SAAW,EAAU,KAG5BH,EAACJ,EAAA,CAAU,IAAK,EAAI,GAAGQ,EACpB,SAAAD,EAAK,IAAIE,GACRJ,EAACT,EAAA,CACC,UAAAQ,EAACH,EAAA,CAAO,GAAGQ,EAAE,SAAW,SAAAA,EAAE,MAAM,EAChCL,EAACD,EAAA,CAAM,QAAQ,QAAS,GAAGM,EAAE,WAC1B,SAAAA,EAAE,MACL,IAJaA,EAAE,EAKjB,CACD,EACH,EAIGC,EAAQJ","sourcesContent":["import { Fragment } from 'react';\n\nimport { SummaryProps } from './props';\nimport { Container, Label, Value } from './styles';\n\nconst Summary = ({ data, ...other }: SummaryProps) => {\n if (data.length === 0) return null;\n\n return (\n <Container gap={1} {...other}>\n {data.map(d => (\n <Fragment key={d.id}>\n <Label {...d.keyProps}>{d.label}</Label>\n <Value variant=\"body2\" {...d.valueProps}>\n {d.value}\n </Value>\n </Fragment>\n ))}\n </Container>\n );\n};\n\nexport default Summary;\n","import Stack from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nexport const Container = styled(Stack)({\n display: 'grid',\n gridTemplateColumns: 'auto auto',\n});\n\nexport const Label = styled(Typography)(({ theme }) => ({\n color: theme.palette.grey[600],\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n}));\n\nexport const Value = styled(Typography)(({ theme }) => ({\n textAlign: 'right',\n color: theme.palette.grey[800],\n}));\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.8.38",
3
+ "version": "2.8.39",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -1,26 +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 as h$1 } from './chunk-2W54CJ6E.js';
6
- import { a as a$7 } from './chunk-F65ZXAGV.js';
7
- import { a as a$9 } from './chunk-I4PPSW36.js';
8
- import { a as a$3 } from './chunk-CO2KQFUN.js';
9
- import { a } from './chunk-ET6H3IRG.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:xo,scrollHeight:Eo,clientHeight:Io}=a;Eo-xo-Io<=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,x=!!N,E=c$1&&x,S=!c$1&&x,Ro=D||M||E,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"})]}),E&&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:[x&&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||E)&&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",flex:1,minHeight:0,...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=chunk-TGEDZBDY.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","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\n direction=\"column\"\n flex={1}\n minHeight={0}\n {...mobileSlotsProps}\n >\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"]}