@zydon/common 2.8.27 → 2.8.28

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$1, 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 } from './chunk-RPO7AI5K.js';
12
+ import { memo, forwardRef, useState, useCallback, useMemo, Children, isValidElement, cloneElement } from 'react';
13
+ import _o from 'react-fast-compare';
14
+ import G from '@mui/material/Button';
15
+ import Wo from '@mui/material/CircularProgress';
16
+ import Uo from '@mui/material/Divider';
17
+ import qo from '@mui/material/LinearProgress';
18
+ import D from '@mui/material/Stack';
19
+ import io 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 w="datagrid-actions";var yo=({rowCount:r,page:t,rowsPerPage:e,onPaginationChange:a})=>jsxs(i,{children:[jsxs(D,{direction:"row",alignItems:"center",gap:.5,children:[jsx(io,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(io,{variant:"body2",children:r})]}),jsx(j,{count:r,page:t,rowsPerPage:e,onPageChange:i=>a(i,e),onRowsPerPageChange:i=>a(t,i)})]}),po=memo(yo);var lo=(r,t)=>Children.map(r,e=>{if(!isValidElement(e))return e;let a=e.props.onClick,i={};i.onClick=(...T)=>{t(),a&&a(...T);};let s=e.props;return s?.children&&(i.children=lo(s.children,t)),cloneElement(e,i)}),Eo=({children:r,onClose:t})=>r?lo(r,t):null,co=memo(Eo);var No=forwardRef(({children:r,...t},e)=>jsx(G,{...t,ref:e,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:r??"Colunas"}));No.displayName="ColumnsButton";var Ho=({setFilterButtonEl:r})=>{let t=useCallback(e=>{r(e);},[r]);return jsx(a$9,{container:w,children:jsx(GridToolbarColumnsButton,{ref:t,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},mo=Ho;var Qo=({title:r,header:t,headerProps:e$1,breakpoint:a$9="md",columns:i,rows:s=[],mobileRender:T,rowCount:A=0,paginationModel:p={page:0,pageSize:25},onPaginationChange:u,actions:B,moreActions:O,onAdd:N,onSearch:H,searchValue:uo,onSearchChange:ho,slots:h$1,slotProps:go,loading:g$1,fetching:L,fetchingNextPage:Po,containerProps:Co={height:562,maxHeight:562},hideFooter:V,showColumnButton:y=!1,filterButton:P,activeFilters:z,...ko})=>{let d$1=a$1(),l=b("down",a$9),[So,bo]=useState(null),F=!!H,R=!!N,k=!!B,v=!!O,I=l&&v,S=!l&&v,wo=k||R||I,_=S||F||y||!!P||!l,W=useCallback(()=>u?jsx(po,{rowCount:A,page:p.page,rowsPerPage:p.pageSize,onPaginationChange:u}):null,[A,p,u]),Do=useMemo(()=>({...h$1,footer:W,...y&&!h$1?.toolbar&&{toolbar:mo}}),[h$1,W,y]);return jsxs(a$2,{breakpoint:a$9,...Co,flex:g$1?1:void 0,minHeight:g$1||s.length===0?562:void 0,children:[t?jsx(D,{p:3,...e$1,children:t}):jsxs(Fragment,{children:[jsxs(b$1,{breakpoint:a$9,children:[jsx(io,{variant:"overline",color:"text.secondary",noWrap:!0,children:r}),wo&&jsxs(c,{breakpoint:a$9,children:[k&&B,R&&jsxs(Fragment,{children:[k&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(G,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:N,children:"Adicionar"})]}),I&&jsxs(Fragment,{children:[(k||R)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(G,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:d$1.onOpen,children:"Mais"})]})]})]}),_&&jsxs(f,{breakpoint:a$9,children:[jsxs(D,{flex:1,direction:"row",alignItems:"center",id:w,gap:.5,children:[v&&jsxs(Fragment,{children:[S&&jsxs(Fragment,{children:[jsx(G,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:d$1.onOpen,children:"Mais"}),!l&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(S||I)&&jsx(a$3,{open:d$1.open,anchorEl:d$1.open,onClose:d$1.onClose,sx:{minWidth:160},disabledArrow:!0,children:jsx(co,{onClose:d$1.onClose,children:O})})]}),!l&&P&&jsxs(Fragment,{children:[P,S&&jsx(e,{orientation:"vertical",flexItem:!0})]})]}),F&&jsxs(g,{breakpoint:a$9,children:[jsx(a$4,{value:uo,placeholder:"Buscar",onSearch:H,onChange:c=>ho?.(c.target.value),size:"small",fullWidth:!0,iconPosition:"start"}),l&&P&&jsx(D,{ml:1,children:P})]})]}),z&&z,!_&&jsx(Uo,{sx:{mt:2}})]}),l?jsxs(a$5,{isFetching:L,fetching:jsx(a$6,{}),isLoading:g$1,loading:jsx(Wo,{sx:{m:"160px auto"}}),isEmpty:s.length===0,empty:jsx(D,{flex:1,alignItems:"center",justifyContent:"center",children:h$1?.noRowsOverlay?jsx(h$1.noRowsOverlay,{}):jsx(io,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})}),children:[jsx(a$7,{fillContent:!0,children:s.map(c=>T(c))}),!V&&jsx(h,{children:jsx(j,{count:A,page:p.page,rowsPerPage:p.pageSize,onPageChange:c=>u?.(c,p.pageSize),onRowsPerPageChange:c=>u?.(p.page,c)})})]}):jsx(a$8,{columns:i,rows:s,slots:Do,slotProps:{panel:{anchorEl:So},toolbar:{setFilterButtonEl:bo,showQuickFilter:!0},...go},columnHeaderHeight:48,getRowHeight:()=>68,loading:g$1,fetching:L,hideFooter:V,...ko}),Po&&jsx(qo,{})]},g$1?"loading":"data")},Hr=memo(Qo,_o);
24
+
25
+ export { po as a, co as b, mo as c, Hr as d };
26
+ //# sourceMappingURL=out.js.map
27
+ //# sourceMappingURL=chunk-5KVU3HRW.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","useMemo","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","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","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, useMemo, 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 ...others\n}: DataViewProps<T>) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n\n const showSearch = !!onSearch;\n const showAdd = !!onAdd;\n const showActions = !!actions;\n const showMoreActions = !!moreActions;\n const showHeaderMoreActions = isMobile && showMoreActions;\n const showTopbarMoreActions = !isMobile && showMoreActions;\n const showActionsContainer = showActions || showAdd || showHeaderMoreActions;\n const showTopbar =\n showTopbarMoreActions ||\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>\n {rows.map(row => mobileRender(row))}\n </Scrollbar>\n\n {!hideFooter && (\n <MobilePaginationContainer>\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange?.(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange?.(paginationModel.page, newRowsPerPage)\n }\n />\n </MobilePaginationContainer>\n )}\n </Result>\n ) : (\n <DataGrid\n columns={columns}\n rows={rows}\n slots={dataGridSlots}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n ...slotProps,\n }}\n columnHeaderHeight={48}\n getRowHeight={() => 68}\n loading={loading}\n fetching={fetching}\n hideFooter={hideFooter}\n {...others}\n />\n )}\n\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-A2CA2MW3.js';
1
+ export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-5KVU3HRW.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-A2CA2MW3.js';
6
+ import { d as d$1 } from '../../chunk-5KVU3HRW.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.27",
3
+ "version": "2.8.28",
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$1, 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 } from './chunk-RPO7AI5K.js';
12
- import { memo, forwardRef, useState, useCallback, useMemo, Children, isValidElement, cloneElement } from 'react';
13
- import Wo from 'react-fast-compare';
14
- import G from '@mui/material/Button';
15
- import fo from '@mui/material/CircularProgress';
16
- import Uo from '@mui/material/Divider';
17
- import k from '@mui/material/Stack';
18
- import io from '@mui/material/Typography';
19
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
20
- import { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';
21
-
22
- var D="datagrid-actions";var Ro=({rowCount:r,page:t,rowsPerPage:e,onPaginationChange:a})=>jsxs(i,{children:[jsxs(k,{direction:"row",alignItems:"center",gap:.5,children:[jsx(io,{variant:"body2",color:"text.disabled",children:"Total de itens:"}),jsx(io,{variant:"body2",children:r})]}),jsx(j,{count:r,page:t,rowsPerPage:e,onPageChange:i=>a(i,e),onRowsPerPageChange:i=>a(t,i)})]}),lo=memo(Ro);var po=(r,t)=>Children.map(r,e=>{if(!isValidElement(e))return e;let a=e.props.onClick,i={};i.onClick=(...T)=>{t(),a&&a(...T);};let s=e.props;return s?.children&&(i.children=po(s.children,t)),cloneElement(e,i)}),xo=({children:r,onClose:t})=>r?po(r,t):null,co=memo(xo);var Ho=forwardRef(({children:r,...t},e)=>jsx(G,{...t,ref:e,color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:r??"Colunas"}));Ho.displayName="ColumnsButton";var Lo=({setFilterButtonEl:r})=>{let t=useCallback(e=>{r(e);},[r]);return jsx(a$9,{container:D,children:jsx(GridToolbarColumnsButton,{ref:t,slotProps:{button:{color:"inherit",startIcon:jsx(a,{icon:"COLUMNS"}),children:"Colunas"}}})})},mo=Lo;var qo=({title:r,header:t,headerProps:e$1,breakpoint:a$9="md",columns:i,rows:s=[],mobileRender:T,rowCount:y=0,paginationModel:l={page:0,pageSize:25},onPaginationChange:u,actions:B,moreActions:O,onAdd:N,onSearch:H,searchValue:ho,onSearchChange:go,slots:h$1,slotProps:Co,loading:g$1,fetching:L,fetchingNextPage:Po,containerProps:ko={height:562,maxHeight:562},hideFooter:z,showColumnButton:A=!1,filterButton:C,activeFilters:V,...So})=>{let d$1=a$1(),p=b("down",a$9),[bo,wo]=useState(null),F=!!H,R=!!N,S=!!B,v=!!O,I=p&&v,b$2=!p&&v,Do=S||R||I,_=b$2||F||A||!!C||!p,W=useCallback(()=>u?jsx(lo,{rowCount:y,page:l.page,rowsPerPage:l.pageSize,onPaginationChange:u}):null,[y,l,u]),To=useMemo(()=>({...h$1,footer:W,...A&&!h$1?.toolbar&&{toolbar:mo}}),[h$1,W,A]);return jsxs(a$2,{breakpoint:a$9,...ko,flex:g$1?1:void 0,minHeight:g$1||s.length===0?562:void 0,children:[t?jsx(k,{p:3,...e$1,children:t}):jsxs(Fragment,{children:[jsxs(b$1,{breakpoint:a$9,children:[jsx(io,{variant:"overline",color:"text.secondary",noWrap:!0,children:r}),Do&&jsxs(c,{breakpoint:a$9,children:[S&&B,R&&jsxs(Fragment,{children:[S&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(G,{startIcon:jsx(a,{icon:"SIMPLE_ADD"}),variant:"contained",onClick:N,children:"Adicionar"})]}),I&&jsxs(Fragment,{children:[(S||R)&&jsx(d,{orientation:"vertical",flexItem:!0}),jsx(G,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:d$1.onOpen,children:"Mais"})]})]})]}),_&&jsxs(f,{breakpoint:a$9,children:[jsxs(k,{flex:1,direction:"row",alignItems:"center",id:D,gap:.5,children:[v&&jsxs(Fragment,{children:[b$2&&jsxs(Fragment,{children:[jsx(G,{color:"inherit",startIcon:jsx(a,{icon:"MORE_BOLD"}),size:"small",onClick:d$1.onOpen,children:"Mais"}),!p&&jsx(e,{orientation:"vertical",flexItem:!0})]}),(b$2||I)&&jsx(a$3,{open:d$1.open,anchorEl:d$1.open,onClose:d$1.onClose,sx:{minWidth:160},disabledArrow:!0,children:jsx(co,{onClose:d$1.onClose,children:O})})]}),!p&&C&&jsxs(Fragment,{children:[C,b$2&&jsx(e,{orientation:"vertical",flexItem:!0})]})]}),F&&jsxs(g,{breakpoint:a$9,children:[jsx(a$4,{value:ho,placeholder:"Buscar",onSearch:H,onChange:c=>go?.(c.target.value),size:"small",fullWidth:!0,iconPosition:"start"}),p&&C&&jsx(k,{ml:1,children:C})]})]}),V&&V,!_&&jsx(Uo,{sx:{mt:2}})]}),p?jsxs(a$5,{isFetching:L,fetching:jsx(a$6,{}),isLoading:g$1,loading:jsx(fo,{sx:{m:"160px auto"}}),isEmpty:s.length===0,empty:jsx(k,{flex:1,alignItems:"center",justifyContent:"center",children:h$1?.noRowsOverlay?jsx(h$1.noRowsOverlay,{}):jsx(io,{variant:"body2",color:"text.secondary",children:"Nenhum registro encontrado"})}),children:[jsx(a$7,{fillContent:!0,children:s.map(c=>T(c))}),!z&&jsx(h,{children:jsx(j,{count:y,page:l.page,rowsPerPage:l.pageSize,onPageChange:c=>u?.(c,l.pageSize),onRowsPerPageChange:c=>u?.(l.page,c)})})]}):jsx(a$8,{columns:i,rows:s,slots:To,slotProps:{panel:{anchorEl:bo},toolbar:{setFilterButtonEl:wo,showQuickFilter:!0},...Co},columnHeaderHeight:48,getRowHeight:()=>68,loading:g$1,fetching:L,hideFooter:z,...So}),Po&&jsx(k,{alignItems:"center",py:2,children:jsx(fo,{size:24})})]},g$1?"loading":"data")},Or=memo(qo,Wo);
23
-
24
- export { lo as a, co as b, mo as c, Or as d };
25
- //# sourceMappingURL=out.js.map
26
- //# sourceMappingURL=chunk-A2CA2MW3.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","useMemo","useState","isEqual","Button","CircularProgress","Divider","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","others","popover","usePopover_default","isMobile","useResponsive_default","filterButtonEl","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, useMemo, 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 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 ...others\n}: DataViewProps<T>) => {\n const popover = usePopover();\n const isMobile = useResponsive('down', breakpoint);\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n\n const showSearch = !!onSearch;\n const showAdd = !!onAdd;\n const showActions = !!actions;\n const showMoreActions = !!moreActions;\n const showHeaderMoreActions = isMobile && showMoreActions;\n const showTopbarMoreActions = !isMobile && showMoreActions;\n const showActionsContainer = showActions || showAdd || showHeaderMoreActions;\n const showTopbar =\n showTopbarMoreActions ||\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>\n {rows.map(row => mobileRender(row))}\n </Scrollbar>\n\n {!hideFooter && (\n <MobilePaginationContainer>\n <Pagination\n count={rowCount}\n page={paginationModel.page}\n rowsPerPage={paginationModel.pageSize}\n onPageChange={newPage =>\n onPaginationChange?.(newPage, paginationModel.pageSize)\n }\n onRowsPerPageChange={newRowsPerPage =>\n onPaginationChange?.(paginationModel.page, newRowsPerPage)\n }\n />\n </MobilePaginationContainer>\n )}\n </Result>\n ) : (\n <DataGrid\n columns={columns}\n rows={rows}\n slots={dataGridSlots}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n showQuickFilter: true,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n ...slotProps,\n }}\n columnHeaderHeight={48}\n getRowHeight={() => 68}\n loading={loading}\n fetching={fetching}\n hideFooter={hideFooter}\n {...others}\n />\n )}\n\n {fetchingNextPage && (\n <Stack alignItems=\"center\" py={2}>\n <CircularProgress size={24} />\n </Stack>\n )}\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"]}