@zydon/common 2.8.55 → 2.8.57

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.
Files changed (60) hide show
  1. package/dist/bulkActions-3ec5afc1.d.ts +28 -0
  2. package/dist/chunk-3HKLNWRZ.js +16 -0
  3. package/dist/chunk-3HKLNWRZ.js.map +1 -0
  4. package/dist/{chunk-UOIOBXCP.js → chunk-3WFLKIPF.js} +2 -2
  5. package/dist/chunk-75PS5WVR.js +27 -0
  6. package/dist/chunk-75PS5WVR.js.map +1 -0
  7. package/dist/chunk-D3RY7C7B.js +12 -0
  8. package/dist/chunk-D3RY7C7B.js.map +1 -0
  9. package/dist/{chunk-EWGZ2KSI.js → chunk-H3SS73NK.js} +1 -1
  10. package/dist/chunk-H3SS73NK.js.map +1 -0
  11. package/dist/{chunk-CMWRCWVK.js → chunk-LJ5JKDMG.js} +4 -4
  12. package/dist/{chunk-QT4ZQ2CJ.js → chunk-M3IIWN6P.js} +1 -1
  13. package/dist/chunk-M3IIWN6P.js.map +1 -0
  14. package/dist/{chunk-RD6YLEVF.js → chunk-OFOIKKG2.js} +2 -2
  15. package/dist/{chunk-VCK3DKB3.js → chunk-X4F3O7PX.js} +2 -2
  16. package/dist/chunk-YPL4KIKN.js +46 -0
  17. package/dist/chunk-YPL4KIKN.js.map +1 -0
  18. package/dist/components/Autocomplete/index.js +1 -1
  19. package/dist/components/AvatarButton/index.js +4 -4
  20. package/dist/components/BulkEditModal/index.js +5 -4
  21. package/dist/components/BulkEditModal/index.js.map +1 -1
  22. package/dist/components/Common/index.js +4 -4
  23. package/dist/components/Confirm/index.js +1 -11
  24. package/dist/components/Confirm/index.js.map +1 -1
  25. package/dist/components/DataView/index.d.ts +20 -3
  26. package/dist/components/DataView/index.js +3 -2
  27. package/dist/components/DynamicDataView/index.d.ts +9 -3
  28. package/dist/components/DynamicDataView/index.js +17 -16
  29. package/dist/components/DynamicDataView/index.js.map +1 -1
  30. package/dist/components/ExpandableGroup/index.js.map +1 -1
  31. package/dist/components/ListBundles/index.js +1 -1
  32. package/dist/components/ToggleTheme/index.js +4 -4
  33. package/dist/components/carousel/index.js +1 -1
  34. package/dist/components/form/Address/index.js +2 -2
  35. package/dist/components/form/Autocomplete/index.js +2 -2
  36. package/dist/components/form/Webhook/index.js +2 -2
  37. package/dist/components/form/Webhook/index.js.map +1 -1
  38. package/dist/hooks/useDynamicAutocomplete.js.map +1 -1
  39. package/dist/hooks/useThemeToggle.js +4 -4
  40. package/dist/index.js +4 -4
  41. package/dist/theme/core/index.js +2 -2
  42. package/dist/theme/theme-provider.js +4 -4
  43. package/dist/theme/with-settings/index.js +2 -2
  44. package/dist/utils/loadable.js.map +1 -1
  45. package/dist/utils/vendor.d.ts +3 -0
  46. package/dist/utils/vendor.js +4 -0
  47. package/dist/utils/vendor.js.map +1 -0
  48. package/package.json +1 -1
  49. package/dist/chunk-2W54CJ6E.js +0 -12
  50. package/dist/chunk-2W54CJ6E.js.map +0 -1
  51. package/dist/chunk-EWGZ2KSI.js.map +0 -1
  52. package/dist/chunk-GYABWIFG.js +0 -26
  53. package/dist/chunk-GYABWIFG.js.map +0 -1
  54. package/dist/chunk-PVVI43BW.js +0 -45
  55. package/dist/chunk-PVVI43BW.js.map +0 -1
  56. package/dist/chunk-QT4ZQ2CJ.js.map +0 -1
  57. /package/dist/{chunk-UOIOBXCP.js.map → chunk-3WFLKIPF.js.map} +0 -0
  58. /package/dist/{chunk-CMWRCWVK.js.map → chunk-LJ5JKDMG.js.map} +0 -0
  59. /package/dist/{chunk-RD6YLEVF.js.map → chunk-OFOIKKG2.js.map} +0 -0
  60. /package/dist/{chunk-VCK3DKB3.js.map → chunk-X4F3O7PX.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/BulkEditModal/index.tsx","../../../src/components/BulkEditModal/BulkEditGridCell.tsx","../../../src/components/BulkEditModal/styles.ts","../../../src/components/BulkEditModal/Header.tsx","../../../src/components/BulkEditModal/Toolbar.tsx"],"names":["useCallback","useEffect","useMemo","useState","FormProvider","useForm","LinearProgress","Typography","memo","useFormContext","useWatch","Switch","TextField","Box","Button","Chip","Dialog","Stack","styled","DataGridPremium","BulkEditDialog","BulkEditContainer","StyledChip","theme","StyledBackButton","GridWrapper","StyledDataGrid","CellContent","ReadOnlyText","Footer","FooterTotal","jsx","AUTOCOMPLETE_SX","getInputProps","isNumber","formatDisplayValue","value","column","option","opt","BulkEditGridCellComponent","item","rowIndex","itemId","onFieldChange","isFieldDisabled","setValue","control","fieldName","fieldPath","watchedValue","cellValue","isDisabled","isIdField","displayValue","event","previousValue","result","entityValue","recordValue","Autocomplete_default","newValue","inputValue","rawValue","BulkEditGridCell","prev","next","GridToolbarColumnsButton","BULK_EDIT_DATAGRID_ACTIONS","BulkEditToolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Icon_default","Toolbar_default","jsxs","Header","onClose","total","title","DEFAULT_PAGE_SIZE_OPTIONS","resolveAlignment","BulkEditModalInner","open","header","items","columns","getItemId","isLoading","page","perPage","onPageChange","onRowsPerPageChange","showColumnButton","initialState","filterButtonEl","rows","totalPages","maxPage","safePage","paginationModel","pageSizeOptions","options","a","b","handlePaginationModelChange","model","handleFooterPageChange","newPage","handleFooterRowsPerPageChange","newRowsPerPage","dataGridColumns","align","baseWidth","params","visibleIndex","row","LoadingOverlay_default","Pagination_default","BulkEditModal","props","formMethods","BulkEditModal_default"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport type {\n GridSlots,\n GridSlotsComponentsProps,\n} from '@mui/x-data-grid-premium';\nimport {\n GridAlignment,\n GridColDef,\n GridPaginationModel,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport LoadingOverlay from 'components/DataGrid/LoadingOverlay';\nimport Pagination from 'components/DataView/Pagination';\n\nimport { BulkEditGridCell } from './BulkEditGridCell';\nimport { Header } from './Header';\nimport { type BulkEditModalInnerProps, type BulkEditModalProps } from './props';\nimport {\n BulkEditContainer,\n BulkEditDialog,\n Footer,\n FooterTotal,\n GridWrapper,\n StyledDataGrid,\n} from './styles';\nimport BulkEditToolbar from './Toolbar';\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\nconst resolveAlignment = <TItem extends Record<string, unknown>>(\n column: BulkEditModalInnerProps<TItem>['columns'][number],\n): GridAlignment => {\n if (column.type === 'number') return 'right';\n if (column.type === 'boolean') return 'center';\n return 'left';\n};\n\nconst BulkEditModalInner = <TItem extends Record<string, unknown>>({\n open,\n onClose,\n title,\n header,\n items,\n columns,\n getItemId,\n isLoading,\n page,\n perPage,\n total,\n onPageChange,\n onRowsPerPageChange,\n onFieldChange,\n isFieldDisabled,\n showColumnButton,\n initialState,\n}: BulkEditModalInnerProps<TItem>) => {\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const rows = items;\n\n const totalPages = perPage > 0 ? Math.ceil(total / perPage) : 0;\n const maxPage = totalPages > 0 ? totalPages - 1 : 0;\n const safePage = Math.min(Math.max(page, 0), maxPage);\n\n const paginationModel = useMemo(\n () => ({\n page: safePage,\n pageSize: perPage,\n }),\n [perPage, safePage],\n );\n\n const pageSizeOptions = useMemo(() => {\n const options = perPage\n ? [perPage, ...DEFAULT_PAGE_SIZE_OPTIONS]\n : DEFAULT_PAGE_SIZE_OPTIONS;\n return Array.from(new Set(options)).sort((a, b) => a - b);\n }, [perPage]);\n\n const handlePaginationModelChange = useCallback(\n (model: GridPaginationModel) => {\n if (model.pageSize !== perPage) {\n onRowsPerPageChange(model.pageSize);\n }\n\n if (model.page !== page || model.pageSize !== perPage) {\n onPageChange(model.page, model.pageSize);\n }\n },\n [onPageChange, onRowsPerPageChange, page, perPage],\n );\n\n const handleFooterPageChange = useCallback(\n (newPage: number) => {\n handlePaginationModelChange({ page: newPage, pageSize: perPage });\n },\n [handlePaginationModelChange, perPage],\n );\n\n const handleFooterRowsPerPageChange = useCallback(\n (newRowsPerPage: number) => {\n handlePaginationModelChange({ page: safePage, pageSize: newRowsPerPage });\n },\n [handlePaginationModelChange, safePage],\n );\n\n const dataGridColumns = useMemo<GridColDef<GridValidRowModel>[]>(\n () =>\n columns.map(column => {\n const align = resolveAlignment(column);\n const baseWidth = column.type === 'boolean' ? 100 : 180;\n\n return {\n field: String(column.field),\n headerName: column.headerName,\n flex: 1,\n minWidth: baseWidth,\n disableColumnMenu: true,\n headerAlign: align,\n align,\n renderCell: params => {\n const visibleIndex = params.api.getRowIndexRelativeToVisibleRows(\n params.id,\n );\n const rowIndex =\n typeof visibleIndex === 'number' && visibleIndex > -1\n ? visibleIndex\n : 0;\n\n return (\n <BulkEditGridCell\n column={column}\n item={params.row as TItem}\n rowIndex={rowIndex}\n itemId={getItemId(params.row as TItem)}\n onFieldChange={onFieldChange}\n isFieldDisabled={isFieldDisabled}\n />\n );\n },\n };\n }),\n [columns, getItemId, isFieldDisabled, onFieldChange],\n );\n\n return (\n <BulkEditDialog open={open} onClose={onClose} fullWidth>\n <BulkEditContainer>\n {header ?? <Header onClose={onClose} total={total} title={title} />}\n {isLoading && <LinearProgress sx={{ height: 2 }} />}\n\n <GridWrapper>\n <StyledDataGrid\n columns={dataGridColumns}\n rows={rows as unknown as GridValidRowModel[]}\n getRowId={row => getItemId(row as TItem)}\n hideFooterSelectedRowCount\n hideFooter\n disableRowSelectionOnClick\n paginationModel={paginationModel}\n onPaginationModelChange={handlePaginationModelChange}\n pageSizeOptions={pageSizeOptions}\n paginationMode=\"server\"\n rowCount={total}\n rowHeight={56}\n loading={isLoading}\n slots={{\n loadingOverlay: LoadingOverlay,\n ...(showColumnButton && {\n toolbar: BulkEditToolbar as unknown as GridSlots['toolbar'],\n }),\n }}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n }}\n initialState={initialState}\n />\n </GridWrapper>\n <Footer>\n <FooterTotal component=\"p\">\n <Typography component=\"span\" variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography component=\"span\" variant=\"body2\">\n {total}\n </Typography>\n </FooterTotal>\n <Pagination\n count={total}\n page={safePage}\n rowsPerPage={perPage}\n onPageChange={handleFooterPageChange}\n onRowsPerPageChange={handleFooterRowsPerPageChange}\n />\n </Footer>\n </BulkEditContainer>\n </BulkEditDialog>\n );\n};\n\nconst BulkEditModal = <TItem extends Record<string, unknown>>(\n props: BulkEditModalProps<TItem>,\n) => {\n const { items } = props;\n const formMethods = useForm<{ items: TItem[] }>({\n defaultValues: { items },\n });\n\n // O desempenho é melhor que values: { items } no useForm\n useEffect(() => {\n formMethods.reset({ items });\n }, [formMethods, items]);\n\n return (\n <FormProvider {...formMethods}>\n <BulkEditModalInner<TItem> {...props} />\n </FormProvider>\n );\n};\n\nexport * from './props';\n\nexport default BulkEditModal;\n","import { memo } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport Switch from '@mui/material/Switch';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\n\nimport Autocomplete from 'components/form/Autocomplete';\n\nimport {\n BulkEditGridCellProps,\n BulkEditModalColumn,\n BulkEditModalFieldChangeParams,\n} from './props';\nimport { CellContent, ReadOnlyText } from './styles';\n\nconst AUTOCOMPLETE_SX = {\n '& .MuiOutlinedInput-root': {\n px: 0,\n borderRadius: 0,\n background: 'transparent',\n '& fieldset, &:hover fieldset, &.Mui-focused fieldset': {\n background: 'transparent',\n borderRadius: 0,\n border: 'none',\n },\n },\n '& .MuiInputBase-input': {\n py: 0,\n height: 56,\n background: 'transparent',\n },\n} as const;\n\nconst getInputProps = (isNumber: boolean) => {\n return {\n disableUnderline: true,\n sx: {\n px: 0,\n '& input': {\n textAlign: isNumber ? 'right' : 'left',\n },\n },\n };\n};\n\nconst formatDisplayValue = <TItem extends Record<string, unknown>>(\n value: unknown,\n column: BulkEditModalColumn<TItem>,\n) => {\n if (value === null || value === undefined || value === '') {\n return null;\n }\n\n if (column.type === 'entity' && column.options) {\n const option = column.options.find(\n opt => opt.value?.toString() === value?.toString(),\n );\n if (option) {\n return option.label;\n }\n }\n\n if (typeof value === 'object') {\n if ('name' in (value as Record<string, unknown>)) {\n return String((value as { name: unknown }).name);\n }\n if ('label' in (value as Record<string, unknown>)) {\n return String((value as { label: unknown }).label);\n }\n if ('value' in (value as Record<string, unknown>)) {\n return String((value as { value: unknown }).value);\n }\n }\n\n if (typeof value === 'boolean') {\n return value ? 'Sim' : 'Não';\n }\n\n return String(value);\n};\n\nconst BulkEditGridCellComponent = <TItem extends Record<string, unknown>>({\n column,\n item,\n rowIndex,\n itemId,\n onFieldChange,\n isFieldDisabled,\n}: BulkEditGridCellProps<TItem>) => {\n const { setValue, control } = useFormContext();\n const fieldName = column.field;\n const fieldPath = `items.${rowIndex}.${String(fieldName)}`;\n const watchedValue = useWatch({\n control,\n name: fieldPath,\n defaultValue: item?.[fieldName],\n });\n const cellValue =\n watchedValue === undefined ? item?.[fieldName] : watchedValue;\n const isDisabled =\n column.readOnly ||\n (isFieldDisabled ? isFieldDisabled({ item, field: fieldName }) : false);\n const isIdField = String(fieldName) === 'id';\n\n if (column.readOnly || isIdField) {\n const displayValue = formatDisplayValue(cellValue, column);\n\n return (\n <CellContent>\n {displayValue ? (\n <ReadOnlyText variant=\"body2\">{displayValue}</ReadOnlyText>\n ) : (\n <Typography variant=\"body2\" color=\"text.disabled\">\n -\n </Typography>\n )}\n </CellContent>\n );\n }\n\n if (column.type === 'boolean') {\n return (\n <CellContent sx={{ justifyContent: 'center' }}>\n <Switch\n color=\"primary\"\n checked={Boolean(cellValue)}\n inputProps={{ 'aria-label': column.headerName }}\n onChange={event => {\n const value = event.target.checked;\n const previousValue = cellValue;\n\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).catch === 'function'\n ) {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n }}\n disabled={isDisabled}\n />\n </CellContent>\n );\n }\n\n if (column.type === 'entity') {\n let entityValue = '';\n\n if (cellValue !== null && cellValue !== undefined && cellValue !== '') {\n if (typeof cellValue === 'object') {\n const recordValue = cellValue as Record<string, unknown>;\n\n if ('id' in recordValue) {\n entityValue = String(recordValue.id ?? '');\n } else if ('value' in recordValue) {\n entityValue = String(recordValue.value ?? '');\n }\n } else {\n entityValue = String(cellValue);\n }\n }\n\n return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={column.options ?? []}\n disabled={isDisabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n onSelectOption={(newValue: unknown) => {\n const previousValue = cellValue;\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value: newValue,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).catch === 'function'\n ) {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n }}\n />\n </CellContent>\n );\n }\n\n const isNumber = column.type === 'number';\n const inputValue = cellValue ?? '';\n\n return (\n <CellContent sx={{ justifyContent: isNumber ? 'flex-end' : 'flex-start' }}>\n <TextField\n fullWidth\n size=\"small\"\n type={isNumber ? 'number' : 'text'}\n placeholder=\"Preencher\"\n aria-label={column.headerName}\n name={fieldPath}\n value={inputValue as string | number}\n variant=\"standard\"\n InputProps={getInputProps(isNumber)}\n disabled={isDisabled}\n onKeyDown={event => {\n if (event.key === ' ' || event.key === 'Spacebar') {\n event.stopPropagation();\n }\n }}\n onChange={event => {\n const rawValue = event.target.value;\n let value: string | number = rawValue;\n if (isNumber) {\n value = rawValue === '' ? '' : Number(rawValue);\n }\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n onFieldChange({\n itemId,\n field: fieldName,\n value,\n } as BulkEditModalFieldChangeParams<TItem>);\n }}\n />\n </CellContent>\n );\n};\n\nexport const BulkEditGridCell = memo(\n BulkEditGridCellComponent,\n (prev, next) =>\n prev.itemId === next.itemId &&\n prev.rowIndex === next.rowIndex &&\n prev.column === next.column &&\n prev.isFieldDisabled === next.isFieldDisabled,\n) as typeof BulkEditGridCellComponent;\n","import Box from '@mui/material/Box';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport Chip, { ChipProps } from '@mui/material/Chip';\nimport Dialog from '@mui/material/Dialog';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport { DataGridPremium } from '@mui/x-data-grid-premium';\n\nexport const BulkEditDialog = styled(Dialog)({\n '& .MuiDialog-paper': {\n margin: 0,\n borderRadius: 0,\n maxHeight: '100vh',\n padding: 0,\n height: '100vh',\n width: '100%',\n maxWidth: '100%',\n },\n});\n\nexport const BulkEditContainer = styled(Stack)({\n height: '100%',\n minHeight: 0,\n});\n\nexport const StyledChip = styled(Chip)<ChipProps>(({ theme }) => ({\n padding: 0,\n '& .MuiChip-label': {\n color: theme.palette.text.secondary,\n fontWeight: '700',\n },\n}));\n\nexport const StyledBackButton = styled(Button)<ButtonProps>(({ theme }) => ({\n color: theme.palette.text.secondary,\n}));\n\nexport const GridWrapper = styled(Box)({\n flex: 1,\n minHeight: 0,\n padding: 0,\n display: 'flex',\n alignItems: 'stretch',\n});\n\nexport const StyledDataGrid = styled(DataGridPremium)(({ theme }) => ({\n flex: 1,\n height: '100%',\n minHeight: 320,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.paper,\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n minHeight: 48,\n maxHeight: 48,\n },\n '& .MuiDataGrid-columnHeader': {\n borderTop: `1px solid ${theme.palette.divider} !important`,\n borderBottom: `1px solid ${theme.palette.divider} !important`,\n minWidth: '120px !important',\n },\n '& .MuiDataGrid-cell': {\n alignItems: 'stretch',\n borderTop: `1px solid ${theme.palette.divider}`,\n minWidth: 120,\n width: '100%',\n borderLeft: `1px solid ${theme.palette.divider}`,\n padding: 0,\n },\n '& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus': {\n outline: 'none',\n },\n '& .MuiDataGrid-withBorderColor': {\n borderColor: theme.palette.divider,\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'auto',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: `1px solid ${theme.palette.divider}`,\n },\n}));\n\nexport const CellContent = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n padding: 0,\n boxSizing: 'border-box',\n\n '& .MuiTypography-root': {\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport const ReadOnlyText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n}));\n\nexport const Footer = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(2, 3),\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n}));\n\nexport const FooterTotal = styled(Stack)<StackProps>(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}));\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from 'components/Icon';\n\nimport { HeaderProps } from './props';\nimport { StyledBackButton, StyledChip } from './styles';\nimport { BULK_EDIT_DATAGRID_ACTIONS } from './Toolbar';\n\nexport const Header = ({ onClose, total, title }: HeaderProps) => {\n const showTotal = typeof total === 'number';\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n gap={3}\n sx={{ px: 3, py: 0, minHeight: 'var(--layout-nav-horizontal-height)' }}\n >\n <StyledBackButton\n variant=\"text\"\n size=\"small\"\n startIcon={<Icon icon=\"CHEVRON_LEFT\" />}\n onClick={onClose}\n >\n Sair\n </StyledBackButton>\n\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n component=\"h2\"\n m={0}\n gap={1}\n >\n <Typography component=\"span\" variant=\"h6\">\n Editando\n </Typography>\n {showTotal && (\n <StyledChip\n component=\"span\"\n disabled\n label={total}\n size=\"small\"\n color=\"default\"\n />\n )}\n <Typography component=\"span\" variant=\"h6\">\n {title}\n </Typography>\n </Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n gap={1}\n id={BULK_EDIT_DATAGRID_ACTIONS}\n />\n </Stack>\n );\n};\n","import { useCallback } from 'react';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { BulkEditToolbarProps } from './props';\n\nexport const BULK_EDIT_DATAGRID_ACTIONS = 'bulk-edit-datagrid-actions';\n\nconst BulkEditToolbar = ({ setFilterButtonEl }: BulkEditToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={BULK_EDIT_DATAGRID_ACTIONS}>\n <GridToolbarColumnsButton\n ref={handleColumnsButtonRef}\n slotProps={{\n button: {\n color: 'inherit',\n startIcon: <Icon icon=\"COLUMNS\" />,\n children: 'Colunas',\n },\n }}\n />\n </Portal>\n );\n};\n\nexport default BulkEditToolbar;\n"]}
1
+ {"version":3,"sources":["../../../src/components/BulkEditModal/index.tsx","../../../src/components/BulkEditModal/BulkEditGridCell.tsx","../../../src/components/BulkEditModal/styles.ts","../../../src/components/BulkEditModal/Header.tsx","../../../src/components/BulkEditModal/Toolbar.tsx"],"names":["useCallback","useEffect","useMemo","useState","FormProvider","useForm","LinearProgress","Typography","memo","useFormContext","useWatch","Switch","TextField","Box","Button","Chip","Dialog","Stack","styled","DataGridPremium","BulkEditDialog","BulkEditContainer","StyledChip","theme","StyledBackButton","GridWrapper","StyledDataGrid","CellContent","ReadOnlyText","Footer","FooterTotal","jsx","AUTOCOMPLETE_SX","getInputProps","isNumber","formatDisplayValue","value","column","option","opt","BulkEditGridCellComponent","item","rowIndex","itemId","onFieldChange","isFieldDisabled","setValue","control","fieldName","fieldPath","watchedValue","cellValue","isDisabled","isIdField","displayValue","event","previousValue","result","entityValue","recordValue","Autocomplete_default","newValue","inputValue","rawValue","BulkEditGridCell","prev","next","GridToolbarColumnsButton","BULK_EDIT_DATAGRID_ACTIONS","BulkEditToolbar","setFilterButtonEl","handleColumnsButtonRef","button","Portal_default","Icon_default","Toolbar_default","jsxs","Header","onClose","total","title","DEFAULT_PAGE_SIZE_OPTIONS","resolveAlignment","BulkEditModalInner","open","header","items","columns","getItemId","isLoading","page","perPage","onPageChange","onRowsPerPageChange","showColumnButton","initialState","filterButtonEl","rows","totalPages","maxPage","safePage","paginationModel","pageSizeOptions","options","a","b","handlePaginationModelChange","model","handleFooterPageChange","newPage","handleFooterRowsPerPageChange","newRowsPerPage","dataGridColumns","align","baseWidth","params","visibleIndex","row","LoadingOverlay_default","Pagination_default","BulkEditModal","props","formMethods","BulkEditModal_default"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Typography from '@mui/material/Typography';\nimport type {\n GridSlots,\n GridSlotsComponentsProps,\n} from '@mui/x-data-grid-premium';\nimport {\n GridAlignment,\n GridColDef,\n GridPaginationModel,\n GridValidRowModel,\n} from '@mui/x-data-grid-premium';\n\nimport LoadingOverlay from 'components/DataGrid/LoadingOverlay';\nimport Pagination from 'components/DataView/Pagination';\n\nimport { BulkEditGridCell } from './BulkEditGridCell';\nimport { Header } from './Header';\nimport { type BulkEditModalInnerProps, type BulkEditModalProps } from './props';\nimport {\n BulkEditContainer,\n BulkEditDialog,\n Footer,\n FooterTotal,\n GridWrapper,\n StyledDataGrid,\n} from './styles';\nimport BulkEditToolbar from './Toolbar';\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\nconst resolveAlignment = <TItem extends Record<string, unknown>>(\n column: BulkEditModalInnerProps<TItem>['columns'][number],\n): GridAlignment => {\n if (column.type === 'number') return 'right';\n if (column.type === 'boolean') return 'center';\n return 'left';\n};\n\nconst BulkEditModalInner = <TItem extends Record<string, unknown>>({\n open,\n onClose,\n title,\n header,\n items,\n columns,\n getItemId,\n isLoading,\n page,\n perPage,\n total,\n onPageChange,\n onRowsPerPageChange,\n onFieldChange,\n isFieldDisabled,\n showColumnButton,\n initialState,\n}: BulkEditModalInnerProps<TItem>) => {\n const [filterButtonEl, setFilterButtonEl] =\n useState<HTMLButtonElement | null>(null);\n const rows = items;\n\n const totalPages = perPage > 0 ? Math.ceil(total / perPage) : 0;\n const maxPage = totalPages > 0 ? totalPages - 1 : 0;\n const safePage = Math.min(Math.max(page, 0), maxPage);\n\n const paginationModel = useMemo(\n () => ({\n page: safePage,\n pageSize: perPage,\n }),\n [perPage, safePage],\n );\n\n const pageSizeOptions = useMemo(() => {\n const options = perPage\n ? [perPage, ...DEFAULT_PAGE_SIZE_OPTIONS]\n : DEFAULT_PAGE_SIZE_OPTIONS;\n return Array.from(new Set(options)).sort((a, b) => a - b);\n }, [perPage]);\n\n const handlePaginationModelChange = useCallback(\n (model: GridPaginationModel) => {\n if (model.pageSize !== perPage) {\n onRowsPerPageChange(model.pageSize);\n }\n\n if (model.page !== page || model.pageSize !== perPage) {\n onPageChange(model.page, model.pageSize);\n }\n },\n [onPageChange, onRowsPerPageChange, page, perPage],\n );\n\n const handleFooterPageChange = useCallback(\n (newPage: number) => {\n handlePaginationModelChange({ page: newPage, pageSize: perPage });\n },\n [handlePaginationModelChange, perPage],\n );\n\n const handleFooterRowsPerPageChange = useCallback(\n (newRowsPerPage: number) => {\n handlePaginationModelChange({ page: safePage, pageSize: newRowsPerPage });\n },\n [handlePaginationModelChange, safePage],\n );\n\n const dataGridColumns = useMemo<GridColDef<GridValidRowModel>[]>(\n () =>\n columns.map(column => {\n const align = resolveAlignment(column);\n const baseWidth = column.type === 'boolean' ? 100 : 180;\n\n return {\n field: String(column.field),\n headerName: column.headerName,\n flex: 1,\n minWidth: baseWidth,\n disableColumnMenu: true,\n headerAlign: align,\n align,\n renderCell: params => {\n const visibleIndex = params.api.getRowIndexRelativeToVisibleRows(\n params.id,\n );\n const rowIndex =\n typeof visibleIndex === 'number' && visibleIndex > -1\n ? visibleIndex\n : 0;\n\n return (\n <BulkEditGridCell\n column={column}\n item={params.row as TItem}\n rowIndex={rowIndex}\n itemId={getItemId(params.row as TItem)}\n onFieldChange={onFieldChange}\n isFieldDisabled={isFieldDisabled}\n />\n );\n },\n };\n }),\n [columns, getItemId, isFieldDisabled, onFieldChange],\n );\n\n return (\n <BulkEditDialog open={open} onClose={onClose} fullWidth>\n <BulkEditContainer>\n {header ?? <Header onClose={onClose} total={total} title={title} />}\n {isLoading && <LinearProgress sx={{ height: 2 }} />}\n\n <GridWrapper>\n <StyledDataGrid\n columns={dataGridColumns}\n rows={rows as unknown as GridValidRowModel[]}\n getRowId={row => getItemId(row as TItem)}\n hideFooterSelectedRowCount\n hideFooter\n disableRowSelectionOnClick\n paginationModel={paginationModel}\n onPaginationModelChange={handlePaginationModelChange}\n pageSizeOptions={pageSizeOptions}\n paginationMode=\"server\"\n rowCount={total}\n rowHeight={56}\n loading={isLoading}\n slots={{\n loadingOverlay: LoadingOverlay,\n ...(showColumnButton && {\n toolbar: BulkEditToolbar as unknown as GridSlots['toolbar'],\n }),\n }}\n slotProps={{\n panel: { anchorEl: filterButtonEl },\n toolbar: {\n setFilterButtonEl,\n } as unknown as GridSlotsComponentsProps['toolbar'],\n }}\n initialState={initialState}\n />\n </GridWrapper>\n <Footer>\n <FooterTotal component=\"p\">\n <Typography component=\"span\" variant=\"body2\" color=\"text.disabled\">\n Total de itens:\n </Typography>\n <Typography component=\"span\" variant=\"body2\">\n {total}\n </Typography>\n </FooterTotal>\n <Pagination\n count={total}\n page={safePage}\n rowsPerPage={perPage}\n onPageChange={handleFooterPageChange}\n onRowsPerPageChange={handleFooterRowsPerPageChange}\n />\n </Footer>\n </BulkEditContainer>\n </BulkEditDialog>\n );\n};\n\nconst BulkEditModal = <TItem extends Record<string, unknown>>(\n props: BulkEditModalProps<TItem>,\n) => {\n const { items } = props;\n const formMethods = useForm<{ items: TItem[] }>({\n defaultValues: { items },\n });\n\n // O desempenho é melhor que values: { items } no useForm\n useEffect(() => {\n formMethods.reset({ items });\n }, [formMethods, items]);\n\n return (\n <FormProvider {...formMethods}>\n <BulkEditModalInner<TItem> {...props} />\n </FormProvider>\n );\n};\n\nexport * from './props';\n\nexport default BulkEditModal;\n","import { memo } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport Switch from '@mui/material/Switch';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\n\nimport Autocomplete from 'components/form/Autocomplete';\n\nimport {\n BulkEditGridCellProps,\n BulkEditModalColumn,\n BulkEditModalFieldChangeParams,\n} from './props';\nimport { CellContent, ReadOnlyText } from './styles';\n\nconst AUTOCOMPLETE_SX = {\n '& .MuiOutlinedInput-root': {\n px: 0,\n borderRadius: 0,\n background: 'transparent',\n '& fieldset, &:hover fieldset, &.Mui-focused fieldset': {\n background: 'transparent',\n borderRadius: 0,\n border: 'none',\n },\n },\n '& .MuiInputBase-input': {\n py: 0,\n height: 56,\n background: 'transparent',\n },\n} as const;\n\nconst getInputProps = (isNumber: boolean) => {\n return {\n disableUnderline: true,\n sx: {\n px: 0,\n '& input': {\n textAlign: isNumber ? 'right' : 'left',\n },\n },\n };\n};\n\nconst formatDisplayValue = <TItem extends Record<string, unknown>>(\n value: unknown,\n column: BulkEditModalColumn<TItem>,\n) => {\n if (value === null || value === undefined || value === '') {\n return null;\n }\n\n if (column.type === 'entity' && column.options) {\n const option = column.options.find(\n opt => opt.value?.toString() === value?.toString(),\n );\n if (option) {\n return option.label;\n }\n }\n\n if (typeof value === 'object') {\n if ('name' in (value as Record<string, unknown>)) {\n return String((value as { name: unknown }).name);\n }\n if ('label' in (value as Record<string, unknown>)) {\n return String((value as { label: unknown }).label);\n }\n if ('value' in (value as Record<string, unknown>)) {\n return String((value as { value: unknown }).value);\n }\n }\n\n if (typeof value === 'boolean') {\n return value ? 'Sim' : 'Não';\n }\n\n return String(value);\n};\n\nconst BulkEditGridCellComponent = <TItem extends Record<string, unknown>>({\n column,\n item,\n rowIndex,\n itemId,\n onFieldChange,\n isFieldDisabled,\n}: BulkEditGridCellProps<TItem>) => {\n const { setValue, control } = useFormContext();\n const fieldName = column.field;\n const fieldPath = `items.${rowIndex}.${String(fieldName)}`;\n const watchedValue = useWatch({\n control,\n name: fieldPath,\n defaultValue: item?.[fieldName],\n });\n const cellValue =\n watchedValue === undefined ? item?.[fieldName] : watchedValue;\n const isDisabled =\n column.readOnly ||\n (isFieldDisabled ? isFieldDisabled({ item, field: fieldName }) : false);\n const isIdField = String(fieldName) === 'id';\n\n if (column.readOnly || isIdField) {\n const displayValue = formatDisplayValue(cellValue, column);\n\n return (\n <CellContent>\n {displayValue ? (\n <ReadOnlyText variant=\"body2\">{displayValue}</ReadOnlyText>\n ) : (\n <Typography variant=\"body2\" color=\"text.disabled\">\n -\n </Typography>\n )}\n </CellContent>\n );\n }\n\n if (column.type === 'boolean') {\n return (\n <CellContent sx={{ justifyContent: 'center' }}>\n <Switch\n color=\"primary\"\n checked={Boolean(cellValue)}\n inputProps={{ 'aria-label': column.headerName }}\n onChange={event => {\n const value = event.target.checked;\n const previousValue = cellValue;\n\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).catch === 'function'\n ) {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n }}\n disabled={isDisabled}\n />\n </CellContent>\n );\n }\n\n if (column.type === 'entity') {\n let entityValue = '';\n\n if (cellValue !== null && cellValue !== undefined && cellValue !== '') {\n if (typeof cellValue === 'object') {\n const recordValue = cellValue as Record<string, unknown>;\n\n if ('id' in recordValue) {\n entityValue = String(recordValue.id ?? '');\n } else if ('value' in recordValue) {\n entityValue = String(recordValue.value ?? '');\n }\n } else {\n entityValue = String(cellValue);\n }\n }\n\n return (\n <CellContent>\n <Autocomplete\n fullWidth\n name={fieldPath}\n value={entityValue}\n options={column.options ?? []}\n disabled={isDisabled}\n size=\"small\"\n placeholder=\"Preencher\"\n sx={AUTOCOMPLETE_SX}\n disableClearable\n onSelectOption={(newValue: unknown) => {\n const previousValue = cellValue;\n\n const result = onFieldChange({\n itemId,\n field: fieldName,\n value: newValue,\n previousValue,\n } as BulkEditModalFieldChangeParams<TItem>);\n\n if (\n result &&\n typeof (result as Promise<unknown>).catch === 'function'\n ) {\n (result as Promise<unknown>).catch(() => {\n setValue(fieldPath, previousValue as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n });\n }\n }}\n />\n </CellContent>\n );\n }\n\n const isNumber = column.type === 'number';\n const inputValue = cellValue ?? '';\n\n return (\n <CellContent sx={{ justifyContent: isNumber ? 'flex-end' : 'flex-start' }}>\n <TextField\n fullWidth\n size=\"small\"\n type={isNumber ? 'number' : 'text'}\n placeholder=\"Preencher\"\n aria-label={column.headerName}\n name={fieldPath}\n value={inputValue as string | number}\n variant=\"standard\"\n InputProps={getInputProps(isNumber)}\n disabled={isDisabled}\n onKeyDown={event => {\n if (event.key === ' ' || event.key === 'Spacebar') {\n event.stopPropagation();\n }\n }}\n onChange={event => {\n const rawValue = event.target.value;\n let value: string | number = rawValue;\n if (isNumber) {\n value = rawValue === '' ? '' : Number(rawValue);\n }\n setValue(fieldPath, value as TItem[keyof TItem], {\n shouldDirty: true,\n shouldTouch: true,\n });\n\n onFieldChange({\n itemId,\n field: fieldName,\n value,\n } as BulkEditModalFieldChangeParams<TItem>);\n }}\n />\n </CellContent>\n );\n};\n\nexport const BulkEditGridCell = memo(\n BulkEditGridCellComponent,\n (prev, next) =>\n prev.itemId === next.itemId &&\n prev.rowIndex === next.rowIndex &&\n prev.column === next.column &&\n prev.isFieldDisabled === next.isFieldDisabled,\n) as typeof BulkEditGridCellComponent;\n","import Box from '@mui/material/Box';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport Chip, { ChipProps } from '@mui/material/Chip';\nimport Dialog from '@mui/material/Dialog';\nimport Stack, { StackProps } from '@mui/material/Stack';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport { DataGridPremium } from '@mui/x-data-grid-premium';\n\nexport const BulkEditDialog = styled(Dialog)({\n '& .MuiDialog-paper': {\n margin: 0,\n borderRadius: 0,\n maxHeight: '100vh',\n padding: 0,\n height: '100vh',\n width: '100%',\n maxWidth: '100%',\n },\n});\n\nexport const BulkEditContainer = styled(Stack)({\n height: '100%',\n minHeight: 0,\n});\n\nexport const StyledChip = styled(Chip)<ChipProps>(({ theme }) => ({\n padding: 0,\n '& .MuiChip-label': {\n color: theme.palette.text.secondary,\n fontWeight: '700',\n },\n}));\n\nexport const StyledBackButton = styled(Button)<ButtonProps>(({ theme }) => ({\n color: theme.palette.text.secondary,\n}));\n\nexport const GridWrapper = styled(Box)({\n flex: 1,\n minHeight: 0,\n padding: 0,\n display: 'flex',\n alignItems: 'stretch',\n});\n\nexport const StyledDataGrid = styled(DataGridPremium)(({ theme }) => ({\n flex: 1,\n height: '100%',\n minHeight: 320,\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.palette.background.paper,\n '& .MuiDataGrid-columnHeaders': {\n borderBottom: `1px solid ${theme.palette.divider}`,\n minHeight: 48,\n maxHeight: 48,\n },\n '& .MuiDataGrid-columnHeader': {\n borderTop: `1px solid ${theme.palette.divider} !important`,\n borderBottom: `1px solid ${theme.palette.divider} !important`,\n minWidth: '120px !important',\n },\n '& .MuiDataGrid-cell': {\n alignItems: 'stretch',\n borderTop: `1px solid ${theme.palette.divider}`,\n minWidth: 120,\n width: '100%',\n borderLeft: `1px solid ${theme.palette.divider}`,\n padding: 0,\n },\n '& .MuiDataGrid-cell:focus, & .MuiDataGrid-columnHeader:focus': {\n outline: 'none',\n },\n '& .MuiDataGrid-withBorderColor': {\n borderColor: theme.palette.divider,\n },\n '& .MuiDataGrid-virtualScroller': {\n overflowX: 'auto',\n },\n '& .MuiDataGrid-footerContainer': {\n borderTop: `1px solid ${theme.palette.divider}`,\n },\n}));\n\nexport const CellContent = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n padding: 0,\n boxSizing: 'border-box',\n\n '& .MuiTypography-root': {\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport const ReadOnlyText = styled(Typography)(({ theme }) => ({\n color: theme.palette.text.primary,\n}));\n\nexport const Footer = styled(Stack)(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(2, 3),\n gap: theme.spacing(2),\n flexWrap: 'wrap',\n}));\n\nexport const FooterTotal = styled(Stack)<StackProps>(({ theme }) => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}));\n","import Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport Icon from 'components/Icon';\n\nimport { HeaderProps } from './props';\nimport { StyledBackButton, StyledChip } from './styles';\nimport { BULK_EDIT_DATAGRID_ACTIONS } from './Toolbar';\n\nexport const Header = ({ onClose, total, title }: HeaderProps) => {\n const showTotal = typeof total === 'number';\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n gap={3}\n sx={{ px: 3, py: 0, minHeight: 'var(--layout-nav-horizontal-height)' }}\n >\n <StyledBackButton\n variant=\"text\"\n size=\"small\"\n startIcon={<Icon icon=\"CHEVRON_LEFT\" />}\n onClick={onClose}\n >\n Sair\n </StyledBackButton>\n\n <Stack\n flex={1}\n direction=\"row\"\n alignItems=\"center\"\n component=\"h2\"\n m={0}\n gap={1}\n >\n <Typography component=\"span\" variant=\"h6\">\n Editando\n </Typography>\n {showTotal && (\n <StyledChip\n component=\"span\"\n disabled\n label={total}\n size=\"small\"\n color=\"default\"\n />\n )}\n <Typography component=\"span\" variant=\"h6\">\n {title}\n </Typography>\n </Stack>\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"flex-end\"\n gap={1}\n id={BULK_EDIT_DATAGRID_ACTIONS}\n />\n </Stack>\n );\n};\n","import { useCallback } from 'react';\nimport { GridToolbarColumnsButton } from '@mui/x-data-grid-premium';\n\nimport Icon from 'components/Icon';\nimport Portal from 'components/Portal';\n\nimport { BulkEditToolbarProps } from './props';\n\nexport const BULK_EDIT_DATAGRID_ACTIONS = 'bulk-edit-datagrid-actions';\n\nconst BulkEditToolbar = ({ setFilterButtonEl }: BulkEditToolbarProps) => {\n const handleColumnsButtonRef = useCallback(\n (button: HTMLButtonElement | null) => {\n setFilterButtonEl(button);\n },\n [setFilterButtonEl],\n );\n\n return (\n <Portal container={BULK_EDIT_DATAGRID_ACTIONS}>\n <GridToolbarColumnsButton\n ref={handleColumnsButtonRef}\n slotProps={{\n button: {\n color: 'inherit',\n startIcon: <Icon icon=\"COLUMNS\" />,\n children: 'Colunas',\n },\n }}\n />\n </Portal>\n );\n};\n\nexport default BulkEditToolbar;\n"]}
@@ -1,12 +1,12 @@
1
1
  import { a } from '../../chunk-VURAUMLN.js';
2
2
  import '../../chunk-EDO23OCC.js';
3
- import { b } from '../../chunk-CMWRCWVK.js';
3
+ import { b } from '../../chunk-LJ5JKDMG.js';
4
4
  import '../../chunk-373WGZZL.js';
5
5
  import '../../chunk-BX2DSNRV.js';
6
- import '../../chunk-VCK3DKB3.js';
7
- import '../../chunk-UOIOBXCP.js';
6
+ import '../../chunk-X4F3O7PX.js';
7
+ import '../../chunk-3WFLKIPF.js';
8
8
  import '../../chunk-KYV74QIT.js';
9
- import '../../chunk-PVVI43BW.js';
9
+ import '../../chunk-YPL4KIKN.js';
10
10
  import '../../chunk-HBOBTNB5.js';
11
11
  import '../../chunk-WUFEPE2G.js';
12
12
  import { k } from '../../chunk-GLRLKFPS.js';
@@ -1,12 +1,2 @@
1
- import p from '@mui/lab/LoadingButton';
2
- import c from '@mui/material/Button';
3
- import u from '@mui/material/Dialog';
4
- import C from '@mui/material/DialogActions';
5
- import D from '@mui/material/DialogContent';
6
- import x from '@mui/material/DialogTitle';
7
- import { jsxs, jsx } from 'react/jsx-runtime';
8
-
9
- var B=({modalTitle:r="Tem certeza que deseja excluir?",message:n="Essa a\xE7\xE3o n\xE3o poder\xE1 ser desfeita.",cancelButtonText:a="Cancelar",confirmButtonText:e="Sim, excluir registro",onClose:i,onConfirm:l,confirming:m,child:g,cancelButtonProps:f,confirmButtonProps:s,...d})=>jsxs(u,{fullWidth:!0,maxWidth:"xs",...d,onClose:i,children:[jsx(x,{children:r}),jsx(D,{children:n}),g,jsxs(C,{children:[jsx(c,{variant:"outlined",color:"inherit",onClick:i,size:"large",...f,children:a}),jsx(p,{variant:"contained",onClick:l,size:"large",loading:m,...s,children:e})]})]}),L=B;
10
-
11
- export { L as default };
1
+ export { a as default } from '../../chunk-D3RY7C7B.js';
12
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Confirm/index.tsx"],"names":["LoadingButton","Button","Dialog","DialogActions","DialogContent","DialogTitle","jsx","jsxs","Confirm","modalTitle","message","cancelButtonText","confirmButtonText","onClose","onConfirm","confirming","child","cancelButtonProps","confirmButtonProps","other","Confirm_default"],"mappings":"AAAA,OAAOA,MAAmB,yBAC1B,OAAOC,MAAY,uBACnB,OAAOC,MAAY,uBACnB,OAAOC,MAAmB,8BAC1B,OAAOC,MAAmB,8BAC1B,OAAOC,MAAiB,4BAmBlB,cAAAC,EAIA,QAAAC,MAJA,oBAfN,IAAMC,EAAU,CAAC,CACf,WAAAC,EAAa,kCACb,QAAAC,EAAU,iDACV,iBAAAC,EAAmB,WACnB,kBAAAC,EAAoB,wBACpB,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,MAAAC,EACA,kBAAAC,EACA,mBAAAC,EACA,GAAGC,CACL,IAEIZ,EAACL,EAAA,CAAO,UAAS,GAAC,SAAS,KAAM,GAAGiB,EAAO,QAASN,EAClD,UAAAP,EAACD,EAAA,CAAa,SAAAI,EAAW,EAEzBH,EAACF,EAAA,CAAe,SAAAM,EAAQ,EACvBM,EACDT,EAACJ,EAAA,CACC,UAAAG,EAACL,EAAA,CACC,QAAQ,WACR,MAAM,UACN,QAASY,EACT,KAAK,QACJ,GAAGI,EAEH,SAAAN,EACH,EAEAL,EAACN,EAAA,CACC,QAAQ,YACR,QAASc,EACT,KAAK,QACL,QAASC,EACR,GAAGG,EAEH,SAAAN,EACH,GACF,GACF,EAIGQ,EAAQZ","sourcesContent":["import LoadingButton from '@mui/lab/LoadingButton';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport { ConfirmProps } from './props';\n\nconst Confirm = ({\n modalTitle = 'Tem certeza que deseja excluir?',\n message = 'Essa ação não poderá ser desfeita.',\n cancelButtonText = 'Cancelar',\n confirmButtonText = 'Sim, excluir registro',\n onClose,\n onConfirm,\n confirming,\n child,\n cancelButtonProps,\n confirmButtonProps,\n ...other\n}: ConfirmProps) => {\n return (\n <Dialog fullWidth maxWidth=\"xs\" {...other} onClose={onClose}>\n <DialogTitle>{modalTitle}</DialogTitle>\n\n <DialogContent>{message}</DialogContent>\n {child}\n <DialogActions>\n <Button\n variant=\"outlined\"\n color=\"inherit\"\n onClick={onClose}\n size=\"large\"\n {...cancelButtonProps}\n >\n {cancelButtonText}\n </Button>\n\n <LoadingButton\n variant=\"contained\"\n onClick={onConfirm}\n size=\"large\"\n loading={confirming}\n {...confirmButtonProps}\n >\n {confirmButtonText}\n </LoadingButton>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default Confirm;\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -7,13 +7,17 @@ import { StackProps } from '@mui/material/Stack';
7
7
  import * as _mui_material_styles from '@mui/material/styles';
8
8
  import { Breakpoint } from '@mui/material/styles';
9
9
  import { DataGridProps } from '../../types/dataGridProps.js';
10
+ import { B as BulkAction } from '../../bulkActions-3ec5afc1.js';
11
+ export { a as BulkActionConfirmation, b as BulkActionContext } from '../../bulkActions-3ec5afc1.js';
12
+ import * as _mui_material_Typography from '@mui/material/Typography';
10
13
  import * as _mui_material_Divider from '@mui/material/Divider';
11
14
  import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
12
15
  import * as _emotion_styled from '@emotion/styled';
13
16
  import * as _mui_system from '@mui/system';
14
17
  import { P as PanelProps } from '../../props-a62a2c29.js';
18
+ import '@mui/material/Button';
15
19
 
16
- interface DataViewProps<T = unknown> extends DataGridProps {
20
+ interface DataViewProps<T extends GridValidRowModel = GridValidRowModel> extends DataGridProps {
17
21
  containerProps?: StackProps;
18
22
  title: string;
19
23
  header?: ReactNode;
@@ -34,6 +38,7 @@ interface DataViewProps<T = unknown> extends DataGridProps {
34
38
  showColumnButton?: boolean;
35
39
  filterButton?: ReactNode;
36
40
  activeFilters?: ReactNode;
41
+ bulkActions?: BulkAction<T>[];
37
42
  }
38
43
  interface ToolbarProps {
39
44
  setFilterButtonEl: Dispatch<SetStateAction<HTMLButtonElement | null>>;
@@ -80,9 +85,21 @@ declare const SearchContainer: _emotion_styled.StyledComponent<_mui_material_Sta
80
85
  declare const MobilePaginationContainer: _emotion_styled.StyledComponent<_mui_material_Stack.StackOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
81
86
  ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
82
87
  }, keyof _mui_material_OverridableComponent.CommonProps | keyof _mui_material_Stack.StackOwnProps> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
88
+ declare const DataGridWrapper: _emotion_styled.StyledComponent<_mui_material_Stack.StackOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
89
+ ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
90
+ }, keyof _mui_material_OverridableComponent.CommonProps | keyof _mui_material_Stack.StackOwnProps> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
91
+ declare const SelectionOverlay: _emotion_styled.StyledComponent<_mui_material_Stack.StackOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
92
+ ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
93
+ }, keyof _mui_material_OverridableComponent.CommonProps | keyof _mui_material_Stack.StackOwnProps> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
94
+ declare const SelectionCount: _emotion_styled.StyledComponent<_mui_material_Typography.TypographyOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
95
+ ref?: ((instance: HTMLSpanElement | null) => void) | react.RefObject<HTMLSpanElement> | null | undefined;
96
+ }, "typography" | "zIndex" | "fontFamily" | "fontWeight" | "children" | "pt" | "className" | "style" | "classes" | "sx" | "variant" | "border" | "boxShadow" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontSize" | "fontStyle" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "p" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
97
+ declare const SelectionActions: _emotion_styled.StyledComponent<_mui_material_Stack.StackOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
98
+ ref?: ((instance: HTMLDivElement | null) => void) | react.RefObject<HTMLDivElement> | null | undefined;
99
+ }, keyof _mui_material_OverridableComponent.CommonProps | keyof _mui_material_Stack.StackOwnProps> & _mui_system.MUIStyledCommonProps<_mui_material_styles.Theme>, {}, {}>;
83
100
 
84
101
  declare const Toolbar: ({ setFilterButtonEl }: ToolbarProps) => react_jsx_runtime.JSX.Element;
85
102
 
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;
103
+ 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, bulkActions, onRowsScrollEnd, scrollEndThreshold, ...others }: DataViewProps<T>) => react_jsx_runtime.JSX.Element;
87
104
 
88
- export { ActionsContainer, ActionsDivider, Container, _default$2 as DesktopFooter, _default$1 as EnhancedMoreActions, Header, MobilePaginationContainer, SearchContainer, Toolbar, ToolbarActionsDivider, Topbar, _default as default };
105
+ export { ActionsContainer, ActionsDivider, BulkAction, Container, DataGridWrapper, _default$2 as DesktopFooter, _default$1 as EnhancedMoreActions, Header, MobilePaginationContainer, SearchContainer, SelectionActions, SelectionCount, SelectionOverlay, Toolbar, ToolbarActionsDivider, Topbar, _default as default };
@@ -1,11 +1,12 @@
1
- export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-GYABWIFG.js';
1
+ export { a as DesktopFooter, b as EnhancedMoreActions, c as Toolbar, d as default } from '../../chunk-75PS5WVR.js';
2
2
  import '../../chunk-PVI5BAUW.js';
3
3
  import '../../chunk-IJZCVZ32.js';
4
4
  import '../../chunk-IDFJFFIV.js';
5
5
  import '../../chunk-6U5LS7MP.js';
6
6
  import '../../chunk-BNBE2OMA.js';
7
7
  import '../../chunk-NIQW2J3M.js';
8
- export { c as ActionsContainer, d as ActionsDivider, a as Container, b as Header, h as MobilePaginationContainer, g as SearchContainer, e as ToolbarActionsDivider, f as Topbar } from '../../chunk-2W54CJ6E.js';
8
+ import '../../chunk-D3RY7C7B.js';
9
+ export { c as ActionsContainer, d as ActionsDivider, a as Container, j as DataGridWrapper, b as Header, h as MobilePaginationContainer, g as SearchContainer, m as SelectionActions, l as SelectionCount, k as SelectionOverlay, e as ToolbarActionsDivider, f as Topbar } from '../../chunk-3HKLNWRZ.js';
9
10
  import '../../chunk-UVPQR2Q2.js';
10
11
  import '../../chunk-RBTYTONM.js';
11
12
  import '../../chunk-F65ZXAGV.js';
@@ -1,13 +1,16 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { MouseEvent, ReactNode, ReactElement } from 'react';
4
- import { GridColDef, GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
4
+ import { GridColDef, GridRowSelectionModel, GridColumnVisibilityModel } from '@mui/x-data-grid-premium';
5
5
  import { Field, EntityMetadataResponse } from '../../types/entityMetadata.js';
6
6
  import { Filter, Sort } from '../../types/filter.js';
7
7
  export { FilterConditional, FilterGroup, FilterOperator, FilterState, FilterValue, GridQuery, SortType } from '../../types/filter.js';
8
8
  import { PagedResponse } from '../../types/api.js';
9
+ import { B as BulkAction } from '../../bulkActions-3ec5afc1.js';
10
+ export { a as BulkActionConfirmation, b as BulkActionContext } from '../../bulkActions-3ec5afc1.js';
9
11
  import { SxProps, Theme } from '@mui/material/styles';
10
12
  import { Icon } from '../../types/icon.js';
13
+ import '@mui/material/Button';
11
14
 
12
15
  interface StatusRendererProps {
13
16
  active: boolean;
@@ -86,6 +89,9 @@ interface DynamicDataViewProps<T = object> {
86
89
  onRowAction?: (rowId: string, row: DynamicRowData<T>) => ReactNode;
87
90
  onRowDoubleClick?: (rowId: string, row: DynamicRowData<T>) => void;
88
91
  onSelect?: (selectedRows: DynamicRowData<T>) => void;
92
+ bulkActions?: BulkAction<DynamicRowData<T>>[];
93
+ rowSelectionModel?: GridRowSelectionModel;
94
+ onRowSelectionModelChange?: (model: GridRowSelectionModel) => void;
89
95
  actions?: ReactNode;
90
96
  moreActions?: ReactNode;
91
97
  hideHeader?: boolean;
@@ -109,7 +115,7 @@ interface DynamicDataViewProps<T = object> {
109
115
  storageKey: string;
110
116
  }
111
117
 
112
- declare const _default$9: <T extends object = object>({ title, metadata, data, isLoading, isFetching, page, perPage, searchValue, onSearchChange, onSearch, onPaginationChange, onAdd, onRowAction, onRowDoubleClick, actions, moreActions, slots, mobileRender, containerHeight, showColumnButton, showFilterButton, filter, onFilterChange, sort, onSortChange, defaultVisibleFieldNames, preferredFieldOrder, columnStrategies, onColumnVisibilityModelChange, storageKey, }: DynamicDataViewProps<T>) => react_jsx_runtime.JSX.Element;
118
+ declare const _default$9: <T extends object = object>({ title, metadata, data, isLoading, isFetching, page, perPage, searchValue, onSearchChange, onSearch, onPaginationChange, onAdd, onRowAction, onRowDoubleClick, actions, moreActions, bulkActions, rowSelectionModel, onRowSelectionModelChange, slots, mobileRender, containerHeight, showColumnButton, showFilterButton, filter, onFilterChange, sort, onSortChange, defaultVisibleFieldNames, preferredFieldOrder, columnStrategies, onColumnVisibilityModelChange, storageKey, }: DynamicDataViewProps<T>) => react_jsx_runtime.JSX.Element;
113
119
 
114
120
  declare const _default$8: react.MemoExoticComponent<({ value, format }: DateRendererProps) => ReactNode>;
115
121
 
@@ -139,4 +145,4 @@ interface BuildVisibleFieldsParams {
139
145
  }
140
146
  declare const buildVisibleFields: ({ metadata, columnVisibilityModel, defaultVisibleFields, }: BuildVisibleFieldsParams) => string[] | undefined;
141
147
 
142
- export { ColumnStrategy, _default$8 as DateRenderer, _default$7 as DateTimeRenderer, DynamicDataViewProps, DynamicRowData, _default$6 as EntityRenderer, Filter, _default$5 as IconRenderer, _default$4 as ImageRenderer, _default$3 as NameRenderer, _default$2 as NumberRenderer, Sort, _default$1 as StatusRenderer, _default as TextRenderer, addActionsFieldToMetadata, buildVisibleFields, createActionsField, _default$9 as default };
148
+ export { BulkAction, ColumnStrategy, _default$8 as DateRenderer, _default$7 as DateTimeRenderer, DynamicDataViewProps, DynamicRowData, _default$6 as EntityRenderer, Filter, _default$5 as IconRenderer, _default$4 as ImageRenderer, _default$3 as NameRenderer, _default$2 as NumberRenderer, Sort, _default$1 as StatusRenderer, _default as TextRenderer, addActionsFieldToMetadata, buildVisibleFields, createActionsField, _default$9 as default };
@@ -3,16 +3,17 @@ import '../../chunk-4P2L7UJA.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-GYABWIFG.js';
6
+ import { d as d$1 } from '../../chunk-75PS5WVR.js';
7
7
  import '../../chunk-PVI5BAUW.js';
8
8
  import '../../chunk-IJZCVZ32.js';
9
9
  import '../../chunk-IDFJFFIV.js';
10
10
  import '../../chunk-6U5LS7MP.js';
11
11
  import '../../chunk-BNBE2OMA.js';
12
12
  import '../../chunk-NIQW2J3M.js';
13
+ import '../../chunk-D3RY7C7B.js';
13
14
  import { a as a$2 } from '../../chunk-SKFBUMRN.js';
14
15
  import '../../chunk-FBN7HCBY.js';
15
- import { e } from '../../chunk-2W54CJ6E.js';
16
+ import { e } from '../../chunk-3HKLNWRZ.js';
16
17
  import '../../chunk-UVPQR2Q2.js';
17
18
  import '../../chunk-RBTYTONM.js';
18
19
  import '../../chunk-F65ZXAGV.js';
@@ -31,28 +32,28 @@ import '../../chunk-POTVACYB.js';
31
32
  import '../../chunk-ET3WPQIO.js';
32
33
  import '../../chunk-CFNATBO2.js';
33
34
  import { memo, useMemo, useCallback, useState, useEffect, useRef } from 'react';
34
- import Po from 'react-fast-compare';
35
- import Xe from '@mui/material/Badge';
35
+ import Wo from 'react-fast-compare';
36
+ import Qe from '@mui/material/Badge';
36
37
  import he from '@mui/material/Button';
37
- import Qe from '@mui/material/IconButton';
38
+ import je from '@mui/material/IconButton';
38
39
  import _t from '@mui/material/Stack';
39
40
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
40
- import dt from '@mui/material/Divider';
41
+ import pt from '@mui/material/Divider';
41
42
  import Se from '@mui/material/Typography';
42
43
  import fe from '@mui/material/FormControl';
43
44
  import Ce from '@mui/material/InputLabel';
44
- import X from '@mui/material/MenuItem';
45
+ import $ from '@mui/material/MenuItem';
45
46
  import ge from '@mui/material/Select';
46
- import Qo from '@mui/material/TextField';
47
- import j from '@mui/material/Box';
47
+ import er from '@mui/material/TextField';
48
+ import X from '@mui/material/Box';
48
49
  import { styled } from '@mui/material/styles';
49
- import Sr from '@mui/material/Dialog';
50
- import br from '@mui/material/DialogActions';
51
- import hr from '@mui/material/DialogContent';
52
- import Fr from '@mui/material/DialogTitle';
53
- import Yr from '@mui/material/Chip';
50
+ import Ir from '@mui/material/Dialog';
51
+ import Tr from '@mui/material/DialogActions';
52
+ import Rr from '@mui/material/DialogContent';
53
+ import Dr from '@mui/material/DialogTitle';
54
+ import Xr from '@mui/material/Chip';
54
55
 
55
- var Bo=({showFilterButton:e$1,isMobile:t,hasActiveFilters:o,activeFiltersCount:r,sort:n,onFilterClick:i,onSortClick:l})=>e$1?t?jsxs(_t,{direction:"row",spacing:.5,children:[jsx(Xe,{badgeContent:r,color:"primary",invisible:r===0,sx:{"& .MuiBadge-badge":{transform:"scale(0.9) translate(10px, 9px)",opacity:r===0?0:1}},children:jsx(Qe,{color:o?"primary":"default",onClick:i,size:"small","aria-label":"Filtrar",sx:{overflow:"visible"},children:jsx(a,{icon:"FILTER_VERTICAL"})})}),jsx(e,{sx:{height:16},orientation:"vertical",flexItem:!0}),jsx(Qe,{color:n?"primary":"default",onClick:l,size:"small","aria-label":"Ordenar",children:jsx(a,{icon:n?.sortType==="DESC"?"SORTING_DESC":"SORTING_ASC"})})]}):jsx(Xe,{badgeContent:r,color:"primary",invisible:r===0,sx:{"& .MuiBadge-badge":r?{transform:"scale(0.9) translate(-3px, 7px)",position:"relative",opacity:1,transition:"none"}:{transition:"none",opacity:0}},children:jsx(he,{variant:"text",color:o?"primary":"inherit",startIcon:jsx(a,{icon:"FILTER_VERTICAL"}),onClick:i,size:"small",children:"Filtrar"})}):null,je=memo(Bo,Po);var Je=e=>e.filter(t=>t.available_filter_conditions&&t.available_filter_conditions.length>0&&t.name!=="ACTIONS");var Ze=e=>{let{type:t,available_filter_conditions:o}=e;return o.length===0?"EQUALS":t==="TEXT"&&o.includes("LIKE")?"LIKE":o[0]},$=e=>e.value.length>0||e.conditional==="IS_NULL"||e.conditional==="IS_NOT_NULL",et=e=>{if(e.length===0)return;let t=e.filter($);if(t.length!==0)return {operator:"AND",groups:[{operator:t[0]?.operator||"AND",conditionals:t.map(o=>({fieldName:o.fieldName,conditional:o.conditional,value:o.value}))}]}};var tt={["EQUALS"]:"Igual a",["NOT_EQUALS"]:"Diferente de",["LIKE"]:"Cont\xE9m",["NOT_LIKE"]:"N\xE3o cont\xE9m",["GREATER_THAN"]:"Maior que",["LESS_THAN"]:"Menor que",["GREATER_THAN_OR_EQUAL"]:"Maior ou igual a",["LESS_THAN_OR_EQUAL"]:"Menor ou igual a",["IN"]:"Em",["NOT_IN"]:"N\xE3o em",["IS_NULL"]:"\xC9 nulo",["IS_NOT_NULL"]:"N\xE3o \xE9 nulo"};var zo=({value:e,onChange:t,totalConditions:o,isFirst:r})=>o===1?null:r?jsx(_t,{sx:{width:55,flexShrink:0}}):jsxs(ge,{value:e,onChange:n=>t(n.target.value),size:"small",sx:{width:55,flexShrink:0},children:[jsx(X,{value:"AND",children:"e"}),jsx(X,{value:"OR",children:"ou"})]}),rt=memo(zo,Po);var O={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},jo=({condition:e,fields:t,onChange:o,onRemove:r,totalConditions:n,isFirst:i})=>{let l=useMemo(()=>t.find(a=>(a.filter_field_name??a.name)===e.fieldName),[t,e.fieldName]),m=useMemo(()=>l?.available_filter_conditions||[],[l]),s=useMemo(()=>!e.fieldName||e.conditional==="IS_NULL"||e.conditional==="IS_NOT_NULL",[e.fieldName,e.conditional]),d=useCallback(a=>{let u=t.find(A=>(A.filter_field_name??A.name)===a);if(!u)return;let L=u.available_filter_conditions[0]||"EQUALS";o({...e,fieldName:a,conditional:L,value:[]});},[t,e,o]),f=useCallback(a=>{o({...e,conditional:a});},[e,o]),p=useCallback(a=>{o({...e,value:a?[a]:[]});},[e,o]),c=useCallback(a=>{o({...e,operator:a});},[e,o]);return jsxs(_t,{direction:"row",spacing:1,alignItems:"center",children:[jsx(Qe,{onClick:r,size:"small","aria-label":"Remover filtro",sx:{flexShrink:0},children:jsx(a,{icon:"CLOSE_MARK_BUTTON",width:18})}),jsx(rt,{value:e.operator,onChange:c,totalConditions:n,isFirst:i}),jsxs(fe,{size:"small",sx:{minWidth:150,flex:1},children:[jsx(Ce,{id:`field-label-${e.id}`,children:"Coluna"}),jsx(ge,{labelId:`field-label-${e.id}`,label:"Coluna",value:e.fieldName,onChange:a=>d(a.target.value),size:"small",sx:{"& .MuiSelect-select":O},children:t.map(a=>jsx(X,{value:a.filter_field_name??a.name,sx:O,title:a.description||a.name,children:a.description||a.name},a.name))})]}),jsxs(fe,{size:"small",sx:{minWidth:90},disabled:!e.fieldName,children:[jsx(Ce,{id:`condition-label-${e.id}`,children:"Condi\xE7\xE3o"}),jsx(ge,{labelId:`condition-label-${e.id}`,label:"Condi\xE7\xE3o",value:e.conditional,onChange:a=>f(a.target.value),size:"small",sx:{"& .MuiSelect-select":O},children:m.map(a=>jsx(X,{value:a,sx:O,children:tt[a]||a},a))})]}),l?.type==="BOOLEAN"?jsxs(fe,{size:"small",sx:{flex:1,minWidth:120},disabled:s,children:[jsx(Ce,{id:`value-label-${e.id}`,children:"Valor"}),jsxs(ge,{labelId:`value-label-${e.id}`,label:"Valor",value:e.value[0]||"",onChange:a=>p(a.target.value),size:"small",sx:{"& .MuiSelect-select":O},children:[jsx(X,{value:"true",children:"Verdadeiro"}),jsx(X,{value:"false",children:"Falso"})]})]}):jsx(Qo,{label:"Filtro",value:e.value[0]||"",onChange:a=>p(a.target.value),size:"small",disabled:s,InputLabelProps:{shrink:!0},sx:{flex:1,minWidth:120}})]})},it=memo(jo,Po);var tr=({filterableFields:e,conditions:t,onUpdateCondition:o,onRemoveCondition:r})=>{let n=useCallback(s=>{o(s.id,s);},[o]),i=useCallback(s=>()=>{r(s);},[r]),l=useMemo(()=>t.map(s=>s.fieldName).filter(s=>!!s),[t]),m=useCallback(s=>e.filter(d=>!l.includes(d.name)||d.name===s),[e,l]);return e.length===0?jsx(Se,{variant:"body2",color:"text.secondary",textAlign:"center",children:"Nenhum filtro dispon\xEDvel"}):t.length===0?jsxs(Se,{variant:"body2",color:"text.secondary",textAlign:"center",children:["Clique em"," ",jsx(Se,{component:"strong",variant:"body2",fontWeight:600,color:"text.primary",children:'"+"'})," ","para adicionar um filtro"]}):jsx(Fragment,{children:t.map((s,d)=>jsx(it,{condition:s,fields:m(s.fieldName),onChange:n,onRemove:i(s.id),showOperator:d>0,totalConditions:t.length,isFirst:d===0},s.id))})},nt=memo(tr,Po);var at=styled(j)({display:"flex",flexDirection:"column",height:"100%"}),lt=styled(j)(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:e.spacing(2,3)})),st=styled(j)(({theme:e})=>({flex:1,overflowY:"auto",padding:e.spacing(3),display:"flex",flexDirection:"column",gap:e.spacing(2)})),mt=styled(j)(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:e.spacing(2)}));var mr=({onClose:e,fields:t,conditions:o,onAddCondition:r,onUpdateCondition:n,onRemoveCondition:i,onApply:l,onClear:m,onCancel:s})=>{let d=Je(t),f=o.length>0,p=useCallback(()=>{l(),e();},[l,e]),c=useCallback(()=>{m(),e();},[m,e]),a$1=useCallback(()=>{s();},[s]);return jsxs(at,{children:[jsxs(lt,{children:[jsx(Se,{variant:"overline",fontWeight:600,color:"text.secondary",children:"Defina as condi\xE7\xF5es para filtrar"}),jsx(Qe,{onClick:r,size:"small","aria-label":"Adicionar filtro",title:"Adicionar filtro",disabled:o.length>=d.length,children:jsx(a,{icon:"SIMPLE_ADD"})})]}),jsx(dt,{}),jsx(st,{children:jsx(nt,{filterableFields:d,conditions:o,onUpdateCondition:n,onRemoveCondition:i})}),jsx(dt,{}),jsxs(mt,{children:[jsx(he,{variant:"text",color:"inherit",onClick:c,children:"Limpar"}),jsxs(_t,{direction:"row",spacing:1,children:[jsx(he,{variant:"outlined",color:"inherit",onClick:a$1,startIcon:jsx(a,{icon:"CANCEL_CIRCLE"}),children:"Cancelar"}),jsx(he,{variant:"contained",onClick:p,disabled:!f,startIcon:jsx(a,{icon:"SIMPLE_CHECK"}),children:"Aplicar"})]})]})]})},pt=memo(mr,Po);var cr=e=>jsx(a$1,{open:e.open,onClose:e.onClose,anchorEl:e.anchorEl,isMobile:e.isMobileProp,popoverProps:{slotProps:{paper:{sx:{width:520,maxWidth:"calc(100vw - 24px)",maxHeight:600,mt:1}}}},drawerProps:{anchor:"right",PaperProps:{sx:{width:"100%",maxWidth:"100%",height:"100%",maxHeight:"100%",borderRadius:0}}},children:jsx(pt,{...e})}),ut=memo(cr,Po);var Cr=({showFilterButton:e,isOpen:t,filterAnchorEl:o,fields:r,conditions:n,isMobile:i,onClose:l,onAddCondition:m,onUpdateCondition:s,onRemoveCondition:d,onApply:f,onClear:p,onCancel:c})=>e?jsx(ut,{open:t||!!o,anchorEl:o,onClose:l,fields:r,conditions:n,onAddCondition:m,onUpdateCondition:s,onRemoveCondition:d,onApply:f,onClear:p,onCancel:c,isMobileProp:i}):null,ft=memo(Cr,Po);var Ct=styled(Sr)(()=>({"& .MuiDialog-paper":{width:"100%"}})),gt=styled(Fr)(({theme:e})=>({borderBottom:"1px solid",borderColor:e.palette.divider,padding:e.spacing(1.5,2)})),yt=styled(hr)(({theme:e})=>({padding:e.spacing(2)})),St=styled(br)(({theme:e})=>({borderTop:"1px solid",borderColor:e.palette.divider,padding:e.spacing(1.5,2)})),bt=styled(he)(({theme:e})=>({minWidth:24,[e.breakpoints.down(330)]:{padding:e.spacing(1)}})),Fe=styled(Se)(({theme:e})=>({fontWeight:"600",margin:e.spacing(0,1),[e.breakpoints.down(330)]:{fontSize:0,margin:0}}));var Nt=({open:e,onClose:t,fields:o,sort:r,onSortChange:n})=>{let[i,l]=useState(r?.fieldName||""),[m,s]=useState(r?.sortType||"ASC"),d=useMemo(()=>o.filter(u=>u.name!=="ACTIONS"&&u.access_type!=="WRITE_ONLY"),[o]),f=useMemo(()=>o.find(u=>(u.filter_field_name??u.name)===i),[o,i]),p=f?.type==="DECIMAL"||f?.type==="INTEGER";useEffect(()=>{e&&(l(r?.fieldName||""),s(r?.sortType||"ASC"));},[e,r]);let c=useCallback(()=>{n&&n(i?{fieldName:i,sortType:m}:void 0),t();},[n,i,m,t]),a$1=useCallback(()=>{n&&(l(""),s("ASC"),n(void 0),t());},[n,t]);return jsxs(Ct,{open:e,onClose:t,maxWidth:"xs",fullWidth:!0,children:[jsx(gt,{children:jsx(Se,{variant:"overline",color:"text.secondary",children:"Ordenar por"})}),jsx(yt,{children:jsxs(_t,{spacing:2,pt:2,children:[jsxs(fe,{fullWidth:!0,size:"small",children:[jsx(Ce,{id:"sort-field-label",children:"Campo"}),jsxs(ge,{labelId:"sort-field-label",value:i,label:"Campo",onChange:u=>l(u.target.value),children:[jsx(X,{value:"",children:jsx("em",{children:"Nenhum"})}),d.map(u=>jsx(X,{value:u.filter_field_name??u.name,children:u.description||u.name},u.name))]})]}),jsxs(fe,{fullWidth:!0,size:"small",disabled:!i,children:[jsx(Ce,{id:"sort-direction-label",children:"Dire\xE7\xE3o"}),jsxs(ge,{labelId:"sort-direction-label",value:m,label:"Dire\xE7\xE3o",onChange:u=>s(u.target.value),children:[jsxs(X,{value:"ASC",children:["Crescente ",p?"(1-9)":"(A-Z)"]}),jsxs(X,{value:"DESC",children:["Decrescente ",p?"(9-1)":"(Z-A)"]})]})]})]})}),jsxs(St,{children:[jsx(_t,{flex:1,width:"100%",direction:"row",children:jsx(he,{color:"inherit",onClick:a$1,children:"Limpar"})}),jsxs(he,{onClick:t,variant:"outlined",color:"inherit",sx:{minWidth:24},children:[jsx(a,{icon:"CANCEL_CIRCLE"}),jsx(Fe,{children:"Cancelar"})]}),jsxs(bt,{onClick:c,variant:"contained",children:[jsx(a,{icon:"SIMPLE_CHECK"}),jsx(Fe,{children:"Aplicar"})]})]})]})};Nt.displayName="SortModal";var At=memo(Nt);var Et=({columns:e,fields:t,preferredFieldOrder:o})=>{let r=useMemo(()=>new Map(e.map(l=>[l.field,l])),[e]),n=useMemo(()=>new Map(t?.map(l=>[l.name,l])||[]),[t]);return {orderedColumns:useMemo(()=>{if(!o||o.length===0||!t)return e;let l="ACTIONS",m=o.filter(p=>p!==l),s=new Set,d=[],f=p=>{let c=n.get(p);if(!c)return;let a=r.get(c.name);!a||s.has(c.name)||(d.push(a),s.add(c.name));};return m.forEach(p=>{f(p);}),t.forEach(p=>{if(p.name===l||m.includes(p.name))return;let c=r.get(p.name);!c||s.has(p.name)||(d.push(c),s.add(p.name));}),f(l),d.length===0?e:d},[e,r,n,o,t]),columnsByFieldId:r,fieldsByName:n}};function Nr(e){return e.name}var vt=({fields:e,columnsByFieldId:t,defaultVisibleFieldNames:o,columnVisibilityStorageKey:r,onColumnVisibilityModelChange:n})=>{let i=!!r,[l,m]=a$4(r||"__dynamic-data-view:columns__",void 0,{initializeWithValue:i}),s=useMemo(()=>{if(!e)return;let f={};if(e.forEach(p=>{let c=Nr(p);if(!t.has(c))return;let a;if(i&&l){let u=l[c];typeof u=="boolean"&&(a=u);}a===void 0&&o&&o.length>0&&(a=o.includes(p.name)),typeof a=="boolean"&&(f[c]=a);}),Object.keys(f).length!==0)return {columns:{columnVisibilityModel:f}}},[t,o,e,i,l]),d=useCallback(f=>{i&&m(f),n&&n(f);},[i,n,m]);return {initialState:s,handleColumnVisibilityModelChange:d}};var _={IMAGE_WIDTH:90,MIN_WIDTH:130,ENTITY_MIN_WIDTH:100,ENTITY_FLEX:.5,ID_MIN_WIDTH:200,ID_FLEX:1,ACTIONS_WIDTH:80},Te={READ_ONLY:"READ_ONLY",READ_AND_WRITE:"READ_AND_WRITE"},Mt=["price","base_price","minimum_value","maximum_value","minimum_installment_value"];var Ar=(e,t)=>({field:e.name,headerName:e.description,sortable:!1,width:_.IMAGE_WIDTH,resizable:!1,headerAlign:"center",align:"center",renderCell:o=>t(e,o.row)}),Er=(e,t)=>({field:e.name,headerName:e.description,minWidth:_.ID_MIN_WIDTH,flex:_.ID_FLEX,renderCell:o=>t(e,o.row)}),vr=(e,t)=>({field:e.name,headerName:e.description,minWidth:_.ENTITY_MIN_WIDTH,flex:_.ENTITY_FLEX,renderCell:o=>t(e,o.row)}),Mr=(e,t)=>({field:e.name,headerName:e.description,minWidth:_.MIN_WIDTH,renderCell:o=>t(e,o.row)}),wr=(e,t)=>({field:e.name,headerName:"A\xE7\xF5es",width:_.ACTIONS_WIDTH,sortable:!1,resizable:!1,disableReorder:!0,headerAlign:"center",disableColumnMenu:!0,align:"center",renderCell:o=>t(e,o.row)}),wt=(e,t)=>e.name===t?.id_field_name||e.name==="name"?Er:e.name==="ACTIONS"?wr:e.type==="FILE"?Ar:e.type==="ENTITY"?vr:Mr;var Lt=({metadata:e,renderCell:t,columnStrategies:o})=>useMemo(()=>{if(!e?.fields)return [];let r=new Map;return e.fields.filter(i=>i.access_type===Te.READ_ONLY||i.access_type===Te.READ_AND_WRITE?!0:i.name==="ACTIONS"||i.name===e?.id_field_name||i.name==="NAME").forEach(i=>{if(r.has(i.name))return;let m=(o?.[i.name]??wt(i,e))(i,t,e);r.set(i.name,m);}),Array.from(r.values())},[o,e,t]);var Pt=e=>e?.groups?.[0]?.conditionals?e.groups[0].conditionals.map(t=>({id:a$5(),operator:e.groups[0].operator,fieldName:t.fieldName,conditional:t.conditional,value:t.value})):[],Ot=({fields:e,initialFilter:t})=>{let[o,r]=useState(!1),[n,i]=useState(()=>Pt(t)),[l,m]=useState(t),[s,d]=useState(()=>Pt(t)),f=useRef([]),p=useCallback(()=>{f.current=n.map(C=>({...C})),d(n.map(C=>({...C}))),r(!0);},[n]),c=()=>r(!1),a=useCallback(()=>{let C=e.filter(R=>R.available_filter_conditions?.length>0);if(C.length===0)return;let S=s.map(R=>R.fieldName),F=C.filter(R=>!S.includes(R.filter_field_name??R.name));if(F.length===0)return;let E=s.length>0?s[0].operator:"AND",b=F[0],N={id:a$5(),operator:E,fieldName:b.filter_field_name??b.name,conditional:Ze(b),value:[]};d(R=>[...R,N]);},[e,s]),u=useCallback((C,S)=>{d(F=>{let E=F.find(b=>b.id===C);if(!E)return F;if(S.operator&&S.operator!==E.operator){let b=S.operator;return F.map(N=>N.id===C?{...N,...S}:{...N,operator:b})}return F.map(b=>b.id===C?{...b,...S}:b)});},[]),L=useCallback(C=>{d(S=>S.filter(F=>F.id!==C));},[]),A=()=>{d([]),i([]),m(void 0);},ne=()=>{let C=et(s);return i(s.map(S=>({...S}))),m(C),r(!1),C},B=()=>{d(f.current.map(C=>({...C}))),r(!1);},ae=n.some($),W=n.filter($).length;return {conditions:s,filter:l,isOpen:o,hasActiveFilters:ae,activeFiltersCount:W,openDrawer:p,closeDrawer:c,addCondition:a,updateCondition:u,removeCondition:L,clearAllFilters:A,applyFilters:ne,cancelChanges:B}};var Wt=e=>{try{let t=localStorage.getItem(e);return t?JSON.parse(t):void 0}catch{return}},Gt=(e,t)=>{try{t===void 0?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t));}catch{}},Ut=(e,t,o)=>{let r=`${e}:filter`,[n,i]=useState(()=>Wt(r)||t);return useEffect(()=>{t!==void 0&&i(t);},[t]),{filter:n,setFilter:m=>{i(m),Gt(r,m),o?.(m);}}},Vt=(e,t,o)=>{let r=`${e}:sort`,[n,i]=useState(()=>Wt(r)||t);return useEffect(()=>{t!==void 0&&i(t);},[t]),{sort:n,setSort:m=>{i(m),Gt(r,m),o?.(m);}}};var Br=(e,t)=>e?e.find(r=>r.name===t)?.filter_field_name??t:t,Wr=(e,t)=>e?e.find(r=>r.filter_field_name===t||r.name===t)?.name??t:t,Ht=({sort:e,onSortChange:t,fields:o})=>{let r=useMemo(()=>e?[{field:Wr(o,e.fieldName),sort:e.sortType.toLowerCase()}]:[],[e,o]),n=useCallback(i=>{if(!t)return;let l=i[0];if(!l||!l.sort){t(void 0);return}let m={fieldName:Br(o,l.field),sortType:l.sort.toUpperCase()};t(m);},[t,o]);return {sortModel:r,handleSortModelChange:n}};var zt=()=>({name:"ACTIONS",description:"",filter_field_name:null,type:"TEXT",metadata:null,access_type:"READ_ONLY",relation_field_name:null,available_filter_conditions:[]}),Re=e=>e.fields.some(o=>o.name==="ACTIONS")?e:{...e,fields:[...e.fields,zt()]};var Ur=({value:e,format:t})=>e==null?"-":d(e,t),De=memo(Ur);var Hr=({value:e,format:t})=>e==null?"-":c(e,t),xe=memo(Hr);var qr=({value:e,field:t})=>{if(!t.metadata||typeof e!="object"||e===null)return e?String(e):"-";let o=e[t.metadata.description_field_name];return o?jsx(Yr,{label:String(o),variant:"outlined",size:"small",sx:{width:"fit-content",color:"text.secondary",borderColor:"divider",borderRadius:3}}):null},_e=memo(qr);var Xr=({value:e,trueIcon:t="STAR_02",falseIcon:o="STAR",color:r="primary.main",width:n=18})=>jsx(a,{icon:e?t:o,color:r,width:n}),Qr=memo(Xr);var qt=styled("span")(({theme:e,isActive:t})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",padding:e.spacing(.2,1),borderRadius:e.shape.borderRadius,fontSize:"0.75rem",fontWeight:600,width:"fit-content",height:"auto",lineHeight:"1.25rem",whiteSpace:"nowrap",margin:"auto",backgroundColor:t?e.palette.success.lighter||"#00A76F29":e.palette.warning.lighter||"#FF563029",color:t?e.palette.success.darker||"#007867":e.palette.warning.darker||"#B71D18"})),$t=styled(j,{shouldForwardProp:e=>!["size","noImage","clickable"].includes(e)})(({theme:e,size:t,noImage:o,clickable:r})=>({width:t,height:t,minWidth:t,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",cursor:r?"pointer":"default",transition:"opacity 0.2s ease-in-out",color:e.palette.text.disabled,...o&&{border:`1px dashed ${e.palette.divider}`,backgroundColor:e.palette.grey[100]},...r&&{"&:hover":{opacity:.8}},"& img":{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"},[e.breakpoints.down("sm")]:{justifyContent:"flex-start",alignItems:"flex-start"}}));var ei=({imageResourceId:e,getImageUrl:t,size:o=48,alt:r="Imagem",onClick:n,sx:i})=>{let l=!!e,m=l&&t?t(e):void 0;return jsx($t,{size:o,noImage:!l,clickable:!!n,onClick:n,sx:i,children:m?jsx("img",{src:m,alt:r}):jsx(a,{icon:"SEARCH_IMAGE",width:Math.round(o/2),color:"text.disabled"})})},ti=memo(ei);var ri=({id:e,displayName:t,copyMessage:o="ID copiado!"})=>jsxs(_t,{height:1,justifyContent:"center",children:[jsx(Se,{variant:"subtitle2",noWrap:!0,title:t,children:t}),jsxs(_t,{direction:"row",gap:1,alignItems:"center",children:[jsxs(Se,{color:"grey.600",variant:"body2",noWrap:!0,children:["ID: ",e]}),jsx(a$2,{toCopy:e,message:o})]})]}),ii=memo(ri);var si=({value:e,isCurrency:t=!1})=>e==null?"-":jsx(_t,{direction:"row",alignItems:"center",height:"100%",children:jsx(Se,{variant:"body2",noWrap:!0,width:"fit-content",children:t?h(Number(e)):a$3(Number(e))})}),Ee=memo(si);var di=({active:e,activeLabel:t="Ativo",inactiveLabel:o="Inativo"})=>jsx(qt,{isActive:e,children:e?t:o}),ve=memo(di);var Ci=e=>e.replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").trim(),gi=({value:e,showCopyButton:t=!1,copyMessage:o="Copiado",copyLabel:r,mask:n})=>{if(!e)return "-";let i=String(e),l=n?n(i):Ci(i);return t?jsxs(_t,{direction:"row",gap:1,alignItems:"center",children:[jsx(Se,{variant:"body2",noWrap:!0,children:l}),jsx(a$2,{toCopy:i,message:o,label:r})]}):l},Me=memo(gi);function Si(e){return Mt.includes(e)}var Zt=e=>{let{onRowAction:t}=e,o=(r,n)=>{let i=n[r.name];if(r.name==="ACTIONS")return t?.(n.id,n);switch(r.type){case"BOOLEAN":return jsx(ve,{active:!!i,activeLabel:"Ativo",inactiveLabel:"Inativo"});case"DATE":return jsx(De,{value:i});case"DATETIME":return jsx(xe,{value:i});case"DECIMAL":case"INTEGER":return jsx(Ee,{value:i,isCurrency:Si(r.name)});case"FILE":case"ENTITY":return jsx(_e,{value:i,field:r});case"TEXT":default:return jsx(Me,{value:i})}};return o.displayName="CellRendererComponent",o};var Fi=({title:e,metadata:t,data:o,isLoading:r,isFetching:n,page:i,perPage:l,searchValue:m,onSearchChange:s,onSearch:d,onPaginationChange:f,onAdd:p,onRowAction:c,onRowDoubleClick:a,actions:u,moreActions:L,slots:A,mobileRender:ne,containerHeight:B=600,showColumnButton:ae=!1,showFilterButton:W=!1,filter:C,onFilterChange:S,sort:F,onSortChange:E,defaultVisibleFieldNames:b$1,preferredFieldOrder:N,columnStrategies:R,onColumnVisibilityModelChange:ro,storageKey:le})=>{let{items:G=[],total:io=0}=o||{},U=useMemo(()=>{if(t)return t;if(G.length>0){let x=G[0],Y=Object.keys(x).map(We=>({name:We,type:"TEXT",description:We,filter_field_name:null,metadata:null,access_type:"READ_ONLY",relation_field_name:null,available_filter_conditions:[]}));return {name:"loading",description:"Loading...",id_field_name:"id",description_field_name:Y[0]?.name||"id",access_type:"READ_ONLY",fields:Y}}},[t,G]),P=useMemo(()=>U&&c?Re(U):U,[U,c]),V=useMemo(()=>P?.fields||[],[P]),no=useMemo(()=>Zt({onRowAction:c}),[c]),ao=Lt({metadata:P,renderCell:no,columnStrategies:R}),{orderedColumns:lo,columnsByFieldId:so}=Et({columns:ao,fields:P?.fields,preferredFieldOrder:N}),{initialState:mo,handleColumnVisibilityModelChange:po}=vt({fields:P?.fields,columnsByFieldId:so,defaultVisibleFieldNames:b$1,columnVisibilityStorageKey:`${le}:columns`,onColumnVisibilityModelChange:ro}),co=useCallback(x=>{if(!a)return;let Y=x.id?.toString()||"";a(Y,x.row);},[a]),H=b("down","md"),[uo,se]=useState(null),{filter:fo,setFilter:z}=Ut(le,C,S),{sort:Co,setSort:we}=Vt(le,F,E),go=C??fo,me=F??Co,{sortModel:yo,handleSortModelChange:So}=Ht({sort:me,onSortChange:we,fields:V}),{conditions:bo,isOpen:ho,openDrawer:de,closeDrawer:Le,addCondition:Fo,updateCondition:Io,removeCondition:To,clearAllFilters:Pe,applyFilters:Oe,cancelChanges:ke,hasActiveFilters:Ro,activeFiltersCount:Do}=Ot({fields:V,initialFilter:go}),xo=useCallback(()=>{let x=Oe();z(x);},[Oe,z]),_o=useCallback(()=>{Pe(),z(void 0);},[Pe,z]),No=useCallback(x=>{H?de():(de(),se(x.currentTarget));},[H,de]),Ao=useCallback(()=>{ke(),se(null);},[ke]),[Eo,Be]=useState(!1),vo=useCallback(()=>{se(null),Le();},[Le]);return jsxs(Fragment,{children:[jsx(d$1,{title:e,columns:lo,rows:G,mobileRender:ne,rowCount:io,loading:r||!t,fetching:n,searchValue:m,onSearch:d,onSearchChange:s,paginationModel:{page:i,pageSize:l},onPaginationChange:f,actions:u,moreActions:L,onAdd:p,onRowDoubleClick:a?co:void 0,disableRowSelectionOnClick:!0,slots:A,initialState:mo,showColumnButton:ae,containerProps:{height:B,maxHeight:B},onColumnVisibilityModelChange:po,filterButton:jsx(je,{showFilterButton:W,isMobile:H,hasActiveFilters:Ro,activeFiltersCount:Do,sort:me,onFilterClick:No,onSortClick:()=>Be(!0)}),sortingMode:"server",sortModel:yo,onSortModelChange:So,disableColumnFilter:!0}),t&&jsxs(Fragment,{children:[jsx(ft,{showFilterButton:W,isOpen:ho,filterAnchorEl:uo,fields:V,conditions:bo,isMobile:H,onClose:vo,onAddCondition:Fo,onUpdateCondition:Io,onRemoveCondition:To,onApply:xo,onClear:_o,onCancel:Ao}),jsx(At,{open:Eo,onClose:()=>Be(!1),fields:V,sort:me,onSortChange:we})]})]})},Ii=memo(Fi,Po);var Ti=({metadata:e,columnVisibilityModel:t,defaultVisibleFields:o})=>{if(!e?.fields)return;let n=e.fields.map(i=>i.name).filter(i=>i==="ACTIONS"?!1:t?t[i]!==!1:o?.includes(i)??!0);return o?n.sort((i,l)=>{let m=o.indexOf(i),s=o.indexOf(l);return m-s||0}):n};
56
+ var Uo=({showFilterButton:e$1,isMobile:t,hasActiveFilters:o,activeFiltersCount:r,sort:n,onFilterClick:i,onSortClick:l})=>e$1?t?jsxs(_t,{direction:"row",spacing:.5,children:[jsx(Qe,{badgeContent:r,color:"primary",invisible:r===0,sx:{"& .MuiBadge-badge":{transform:"scale(0.9) translate(10px, 9px)",opacity:r===0?0:1}},children:jsx(je,{color:o?"primary":"default",onClick:i,size:"small","aria-label":"Filtrar",sx:{overflow:"visible"},children:jsx(a,{icon:"FILTER_VERTICAL"})})}),jsx(e,{sx:{height:16},orientation:"vertical",flexItem:!0}),jsx(je,{color:n?"primary":"default",onClick:l,size:"small","aria-label":"Ordenar",children:jsx(a,{icon:n?.sortType==="DESC"?"SORTING_DESC":"SORTING_ASC"})})]}):jsx(Qe,{badgeContent:r,color:"primary",invisible:r===0,sx:{"& .MuiBadge-badge":r?{transform:"scale(0.9) translate(-3px, 7px)",position:"relative",opacity:1,transition:"none"}:{transition:"none",opacity:0}},children:jsx(he,{variant:"text",color:o?"primary":"inherit",startIcon:jsx(a,{icon:"FILTER_VERTICAL"}),onClick:i,size:"small",children:"Filtrar"})}):null,Je=memo(Uo,Wo);var Ze=e=>e.filter(t=>t.available_filter_conditions&&t.available_filter_conditions.length>0&&t.name!=="ACTIONS");var et=e=>{let{type:t,available_filter_conditions:o}=e;return o.length===0?"EQUALS":t==="TEXT"&&o.includes("LIKE")?"LIKE":o[0]},Y=e=>e.value.length>0||e.conditional==="IS_NULL"||e.conditional==="IS_NOT_NULL",tt=e=>{if(e.length===0)return;let t=e.filter(Y);if(t.length!==0)return {operator:"AND",groups:[{operator:t[0]?.operator||"AND",conditionals:t.map(o=>({fieldName:o.fieldName,conditional:o.conditional,value:o.value}))}]}};var ot={["EQUALS"]:"Igual a",["NOT_EQUALS"]:"Diferente de",["LIKE"]:"Cont\xE9m",["NOT_LIKE"]:"N\xE3o cont\xE9m",["GREATER_THAN"]:"Maior que",["LESS_THAN"]:"Menor que",["GREATER_THAN_OR_EQUAL"]:"Maior ou igual a",["LESS_THAN_OR_EQUAL"]:"Menor ou igual a",["IN"]:"Em",["NOT_IN"]:"N\xE3o em",["IS_NULL"]:"\xC9 nulo",["IS_NOT_NULL"]:"N\xE3o \xE9 nulo"};var Ko=({value:e,onChange:t,totalConditions:o,isFirst:r})=>o===1?null:r?jsx(_t,{sx:{width:55,flexShrink:0}}):jsxs(ge,{value:e,onChange:n=>t(n.target.value),size:"small",sx:{width:55,flexShrink:0},children:[jsx($,{value:"AND",children:"e"}),jsx($,{value:"OR",children:"ou"})]}),it=memo(Ko,Wo);var O={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},tr=({condition:e,fields:t,onChange:o,onRemove:r,totalConditions:n,isFirst:i})=>{let l=useMemo(()=>t.find(a=>(a.filter_field_name??a.name)===e.fieldName),[t,e.fieldName]),m=useMemo(()=>l?.available_filter_conditions||[],[l]),s=useMemo(()=>!e.fieldName||e.conditional==="IS_NULL"||e.conditional==="IS_NOT_NULL",[e.fieldName,e.conditional]),d=useCallback(a=>{let u=t.find(A=>(A.filter_field_name??A.name)===a);if(!u)return;let L=u.available_filter_conditions[0]||"EQUALS";o({...e,fieldName:a,conditional:L,value:[]});},[t,e,o]),f=useCallback(a=>{o({...e,conditional:a});},[e,o]),p=useCallback(a=>{o({...e,value:a?[a]:[]});},[e,o]),c=useCallback(a=>{o({...e,operator:a});},[e,o]);return jsxs(_t,{direction:"row",spacing:1,alignItems:"center",children:[jsx(je,{onClick:r,size:"small","aria-label":"Remover filtro",sx:{flexShrink:0},children:jsx(a,{icon:"CLOSE_MARK_BUTTON",width:18})}),jsx(it,{value:e.operator,onChange:c,totalConditions:n,isFirst:i}),jsxs(fe,{size:"small",sx:{minWidth:150,flex:1},children:[jsx(Ce,{id:`field-label-${e.id}`,children:"Coluna"}),jsx(ge,{labelId:`field-label-${e.id}`,label:"Coluna",value:e.fieldName,onChange:a=>d(a.target.value),size:"small",sx:{"& .MuiSelect-select":O},children:t.map(a=>jsx($,{value:a.filter_field_name??a.name,sx:O,title:a.description||a.name,children:a.description||a.name},a.name))})]}),jsxs(fe,{size:"small",sx:{minWidth:90},disabled:!e.fieldName,children:[jsx(Ce,{id:`condition-label-${e.id}`,children:"Condi\xE7\xE3o"}),jsx(ge,{labelId:`condition-label-${e.id}`,label:"Condi\xE7\xE3o",value:e.conditional,onChange:a=>f(a.target.value),size:"small",sx:{"& .MuiSelect-select":O},children:m.map(a=>jsx($,{value:a,sx:O,children:ot[a]||a},a))})]}),l?.type==="BOOLEAN"?jsxs(fe,{size:"small",sx:{flex:1,minWidth:120},disabled:s,children:[jsx(Ce,{id:`value-label-${e.id}`,children:"Valor"}),jsxs(ge,{labelId:`value-label-${e.id}`,label:"Valor",value:e.value[0]||"",onChange:a=>p(a.target.value),size:"small",sx:{"& .MuiSelect-select":O},children:[jsx($,{value:"true",children:"Verdadeiro"}),jsx($,{value:"false",children:"Falso"})]})]}):jsx(er,{label:"Filtro",value:e.value[0]||"",onChange:a=>p(a.target.value),size:"small",disabled:s,InputLabelProps:{shrink:!0},sx:{flex:1,minWidth:120}})]})},nt=memo(tr,Wo);var nr=({filterableFields:e,conditions:t,onUpdateCondition:o,onRemoveCondition:r})=>{let n=useCallback(s=>{o(s.id,s);},[o]),i=useCallback(s=>()=>{r(s);},[r]),l=useMemo(()=>t.map(s=>s.fieldName).filter(s=>!!s),[t]),m=useCallback(s=>e.filter(d=>!l.includes(d.name)||d.name===s),[e,l]);return e.length===0?jsx(Se,{variant:"body2",color:"text.secondary",textAlign:"center",children:"Nenhum filtro dispon\xEDvel"}):t.length===0?jsxs(Se,{variant:"body2",color:"text.secondary",textAlign:"center",children:["Clique em"," ",jsx(Se,{component:"strong",variant:"body2",fontWeight:600,color:"text.primary",children:'"+"'})," ","para adicionar um filtro"]}):jsx(Fragment,{children:t.map((s,d)=>jsx(nt,{condition:s,fields:m(s.fieldName),onChange:n,onRemove:i(s.id),showOperator:d>0,totalConditions:t.length,isFirst:d===0},s.id))})},at=memo(nr,Wo);var lt=styled(X)({display:"flex",flexDirection:"column",height:"100%"}),st=styled(X)(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:e.spacing(2,3)})),mt=styled(X)(({theme:e})=>({flex:1,overflowY:"auto",padding:e.spacing(3),display:"flex",flexDirection:"column",gap:e.spacing(2)})),dt=styled(X)(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:e.spacing(2)}));var ur=({onClose:e,fields:t,conditions:o,onAddCondition:r,onUpdateCondition:n,onRemoveCondition:i,onApply:l,onClear:m,onCancel:s})=>{let d=Ze(t),f=o.length>0,p=useCallback(()=>{l(),e();},[l,e]),c=useCallback(()=>{m(),e();},[m,e]),a$1=useCallback(()=>{s();},[s]);return jsxs(lt,{children:[jsxs(st,{children:[jsx(Se,{variant:"overline",fontWeight:600,color:"text.secondary",children:"Defina as condi\xE7\xF5es para filtrar"}),jsx(je,{onClick:r,size:"small","aria-label":"Adicionar filtro",title:"Adicionar filtro",disabled:o.length>=d.length,children:jsx(a,{icon:"SIMPLE_ADD"})})]}),jsx(pt,{}),jsx(mt,{children:jsx(at,{filterableFields:d,conditions:o,onUpdateCondition:n,onRemoveCondition:i})}),jsx(pt,{}),jsxs(dt,{children:[jsx(he,{variant:"text",color:"inherit",onClick:c,children:"Limpar"}),jsxs(_t,{direction:"row",spacing:1,children:[jsx(he,{variant:"outlined",color:"inherit",onClick:a$1,startIcon:jsx(a,{icon:"CANCEL_CIRCLE"}),children:"Cancelar"}),jsx(he,{variant:"contained",onClick:p,disabled:!f,startIcon:jsx(a,{icon:"SIMPLE_CHECK"}),children:"Aplicar"})]})]})]})},ct=memo(ur,Wo);var gr=e=>jsx(a$1,{open:e.open,onClose:e.onClose,anchorEl:e.anchorEl,isMobile:e.isMobileProp,popoverProps:{slotProps:{paper:{sx:{width:520,maxWidth:"calc(100vw - 24px)",maxHeight:600,mt:1}}}},drawerProps:{anchor:"right",PaperProps:{sx:{width:"100%",maxWidth:"100%",height:"100%",maxHeight:"100%",borderRadius:0}}},children:jsx(ct,{...e})}),ft=memo(gr,Wo);var br=({showFilterButton:e,isOpen:t,filterAnchorEl:o,fields:r,conditions:n,isMobile:i,onClose:l,onAddCondition:m,onUpdateCondition:s,onRemoveCondition:d,onApply:f,onClear:p,onCancel:c})=>e?jsx(ft,{open:t||!!o,anchorEl:o,onClose:l,fields:r,conditions:n,onAddCondition:m,onUpdateCondition:s,onRemoveCondition:d,onApply:f,onClear:p,onCancel:c,isMobileProp:i}):null,Ct=memo(br,Wo);var gt=styled(Ir)(()=>({"& .MuiDialog-paper":{width:"100%"}})),yt=styled(Dr)(({theme:e})=>({borderBottom:"1px solid",borderColor:e.palette.divider,padding:e.spacing(1.5,2)})),St=styled(Rr)(({theme:e})=>({padding:e.spacing(2)})),bt=styled(Tr)(({theme:e})=>({borderTop:"1px solid",borderColor:e.palette.divider,padding:e.spacing(1.5,2)})),ht=styled(he)(({theme:e})=>({minWidth:24,[e.breakpoints.down(330)]:{padding:e.spacing(1)}})),Fe=styled(Se)(({theme:e})=>({fontWeight:"600",margin:e.spacing(0,1),[e.breakpoints.down(330)]:{fontSize:0,margin:0}}));var At=({open:e,onClose:t,fields:o,sort:r,onSortChange:n})=>{let[i,l]=useState(r?.fieldName||""),[m,s]=useState(r?.sortType||"ASC"),d=useMemo(()=>o.filter(u=>u.name!=="ACTIONS"&&u.access_type!=="WRITE_ONLY"),[o]),f=useMemo(()=>o.find(u=>(u.filter_field_name??u.name)===i),[o,i]),p=f?.type==="DECIMAL"||f?.type==="INTEGER";useEffect(()=>{e&&(l(r?.fieldName||""),s(r?.sortType||"ASC"));},[e,r]);let c=useCallback(()=>{n&&n(i?{fieldName:i,sortType:m}:void 0),t();},[n,i,m,t]),a$1=useCallback(()=>{n&&(l(""),s("ASC"),n(void 0),t());},[n,t]);return jsxs(gt,{open:e,onClose:t,maxWidth:"xs",fullWidth:!0,children:[jsx(yt,{children:jsx(Se,{variant:"overline",color:"text.secondary",children:"Ordenar por"})}),jsx(St,{children:jsxs(_t,{spacing:2,pt:2,children:[jsxs(fe,{fullWidth:!0,size:"small",children:[jsx(Ce,{id:"sort-field-label",children:"Campo"}),jsxs(ge,{labelId:"sort-field-label",value:i,label:"Campo",onChange:u=>l(u.target.value),children:[jsx($,{value:"",children:jsx("em",{children:"Nenhum"})}),d.map(u=>jsx($,{value:u.filter_field_name??u.name,children:u.description||u.name},u.name))]})]}),jsxs(fe,{fullWidth:!0,size:"small",disabled:!i,children:[jsx(Ce,{id:"sort-direction-label",children:"Dire\xE7\xE3o"}),jsxs(ge,{labelId:"sort-direction-label",value:m,label:"Dire\xE7\xE3o",onChange:u=>s(u.target.value),children:[jsxs($,{value:"ASC",children:["Crescente ",p?"(1-9)":"(A-Z)"]}),jsxs($,{value:"DESC",children:["Decrescente ",p?"(9-1)":"(Z-A)"]})]})]})]})}),jsxs(bt,{children:[jsx(_t,{flex:1,width:"100%",direction:"row",children:jsx(he,{color:"inherit",onClick:a$1,children:"Limpar"})}),jsxs(he,{onClick:t,variant:"outlined",color:"inherit",sx:{minWidth:24},children:[jsx(a,{icon:"CANCEL_CIRCLE"}),jsx(Fe,{children:"Cancelar"})]}),jsxs(ht,{onClick:c,variant:"contained",children:[jsx(a,{icon:"SIMPLE_CHECK"}),jsx(Fe,{children:"Aplicar"})]})]})]})};At.displayName="SortModal";var Et=memo(At);var vt=({columns:e,fields:t,preferredFieldOrder:o})=>{let r=useMemo(()=>new Map(e.map(l=>[l.field,l])),[e]),n=useMemo(()=>new Map(t?.map(l=>[l.name,l])||[]),[t]);return {orderedColumns:useMemo(()=>{if(!o||o.length===0||!t)return e;let l="ACTIONS",m=o.filter(p=>p!==l),s=new Set,d=[],f=p=>{let c=n.get(p);if(!c)return;let a=r.get(c.name);!a||s.has(c.name)||(d.push(a),s.add(c.name));};return m.forEach(p=>{f(p);}),t.forEach(p=>{if(p.name===l||m.includes(p.name))return;let c=r.get(p.name);!c||s.has(p.name)||(d.push(c),s.add(p.name));}),f(l),d.length===0?e:d},[e,r,n,o,t]),columnsByFieldId:r,fieldsByName:n}};function Mr(e){return e.name}var Mt=({fields:e,columnsByFieldId:t,defaultVisibleFieldNames:o,columnVisibilityStorageKey:r,onColumnVisibilityModelChange:n})=>{let i=!!r,[l,m]=a$4(r||"__dynamic-data-view:columns__",void 0,{initializeWithValue:i}),s=useMemo(()=>{if(!e)return;let f={};if(e.forEach(p=>{let c=Mr(p);if(!t.has(c))return;let a;if(i&&l){let u=l[c];typeof u=="boolean"&&(a=u);}a===void 0&&o&&o.length>0&&(a=o.includes(p.name)),typeof a=="boolean"&&(f[c]=a);}),Object.keys(f).length!==0)return {columns:{columnVisibilityModel:f}}},[t,o,e,i,l]),d=useCallback(f=>{i&&m(f),n&&n(f);},[i,n,m]);return {initialState:s,handleColumnVisibilityModelChange:d}};var _={IMAGE_WIDTH:90,MIN_WIDTH:130,ENTITY_MIN_WIDTH:100,ENTITY_FLEX:.5,ID_MIN_WIDTH:200,ID_FLEX:1,ACTIONS_WIDTH:80},Te={READ_ONLY:"READ_ONLY",READ_AND_WRITE:"READ_AND_WRITE"},wt=["price","base_price","minimum_value","maximum_value","minimum_installment_value"];var wr=(e,t)=>({field:e.name,headerName:e.description,sortable:!1,width:_.IMAGE_WIDTH,resizable:!1,headerAlign:"center",align:"center",renderCell:o=>t(e,o.row)}),Lr=(e,t)=>({field:e.name,headerName:e.description,minWidth:_.ID_MIN_WIDTH,flex:_.ID_FLEX,renderCell:o=>t(e,o.row)}),Pr=(e,t)=>({field:e.name,headerName:e.description,minWidth:_.ENTITY_MIN_WIDTH,flex:_.ENTITY_FLEX,renderCell:o=>t(e,o.row)}),Or=(e,t)=>({field:e.name,headerName:e.description,minWidth:_.MIN_WIDTH,renderCell:o=>t(e,o.row)}),kr=(e,t)=>({field:e.name,headerName:"A\xE7\xF5es",width:_.ACTIONS_WIDTH,sortable:!1,resizable:!1,disableReorder:!0,headerAlign:"center",disableColumnMenu:!0,align:"center",renderCell:o=>t(e,o.row)}),Lt=(e,t)=>e.name===t?.id_field_name||e.name==="name"?Lr:e.name==="ACTIONS"?kr:e.type==="FILE"?wr:e.type==="ENTITY"?Pr:Or;var Pt=({metadata:e,renderCell:t,columnStrategies:o})=>useMemo(()=>{if(!e?.fields)return [];let r=new Map;return e.fields.filter(i=>i.access_type===Te.READ_ONLY||i.access_type===Te.READ_AND_WRITE?!0:i.name==="ACTIONS"||i.name===e?.id_field_name||i.name==="NAME").forEach(i=>{if(r.has(i.name))return;let m=(o?.[i.name]??Lt(i,e))(i,t,e);r.set(i.name,m);}),Array.from(r.values())},[o,e,t]);var Ot=e=>e?.groups?.[0]?.conditionals?e.groups[0].conditionals.map(t=>({id:a$5(),operator:e.groups[0].operator,fieldName:t.fieldName,conditional:t.conditional,value:t.value})):[],kt=({fields:e,initialFilter:t})=>{let[o,r]=useState(!1),[n,i]=useState(()=>Ot(t)),[l,m]=useState(t),[s,d]=useState(()=>Ot(t)),f=useRef([]),p=useCallback(()=>{f.current=n.map(C=>({...C})),d(n.map(C=>({...C}))),r(!0);},[n]),c=()=>r(!1),a=useCallback(()=>{let C=e.filter(R=>R.available_filter_conditions?.length>0);if(C.length===0)return;let S=s.map(R=>R.fieldName),F=C.filter(R=>!S.includes(R.filter_field_name??R.name));if(F.length===0)return;let E=s.length>0?s[0].operator:"AND",b=F[0],x={id:a$5(),operator:E,fieldName:b.filter_field_name??b.name,conditional:et(b),value:[]};d(R=>[...R,x]);},[e,s]),u=useCallback((C,S)=>{d(F=>{let E=F.find(b=>b.id===C);if(!E)return F;if(S.operator&&S.operator!==E.operator){let b=S.operator;return F.map(x=>x.id===C?{...x,...S}:{...x,operator:b})}return F.map(b=>b.id===C?{...b,...S}:b)});},[]),L=useCallback(C=>{d(S=>S.filter(F=>F.id!==C));},[]),A=()=>{d([]),i([]),m(void 0);},re=()=>{let C=tt(s);return i(s.map(S=>({...S}))),m(C),r(!1),C},ie=()=>{d(f.current.map(C=>({...C}))),r(!1);},ne=n.some(Y),ae=n.filter(Y).length;return {conditions:s,filter:l,isOpen:o,hasActiveFilters:ne,activeFiltersCount:ae,openDrawer:p,closeDrawer:c,addCondition:a,updateCondition:u,removeCondition:L,clearAllFilters:A,applyFilters:re,cancelChanges:ie}};var Gt=e=>{try{let t=localStorage.getItem(e);return t?JSON.parse(t):void 0}catch{return}},Vt=(e,t)=>{try{t===void 0?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(t));}catch{}},Ut=(e,t,o)=>{let r=`${e}:filter`,[n,i]=useState(()=>Gt(r)||t);return useEffect(()=>{t!==void 0&&i(t);},[t]),{filter:n,setFilter:m=>{i(m),Vt(r,m),o?.(m);}}},Ht=(e,t,o)=>{let r=`${e}:sort`,[n,i]=useState(()=>Gt(r)||t);return useEffect(()=>{t!==void 0&&i(t);},[t]),{sort:n,setSort:m=>{i(m),Vt(r,m),o?.(m);}}};var Ur=(e,t)=>e?e.find(r=>r.name===t)?.filter_field_name??t:t,Hr=(e,t)=>e?e.find(r=>r.filter_field_name===t||r.name===t)?.name??t:t,zt=({sort:e,onSortChange:t,fields:o})=>{let r=useMemo(()=>e?[{field:Hr(o,e.fieldName),sort:e.sortType.toLowerCase()}]:[],[e,o]),n=useCallback(i=>{if(!t)return;let l=i[0];if(!l||!l.sort){t(void 0);return}let m={fieldName:Ur(o,l.field),sortType:l.sort.toUpperCase()};t(m);},[t,o]);return {sortModel:r,handleSortModelChange:n}};var Yt=()=>({name:"ACTIONS",description:"",filter_field_name:null,type:"TEXT",metadata:null,access_type:"READ_ONLY",relation_field_name:null,available_filter_conditions:[]}),Re=e=>e.fields.some(o=>o.name==="ACTIONS")?e:{...e,fields:[...e.fields,Yt()]};var Yr=({value:e,format:t})=>e==null?"-":d(e,t),De=memo(Yr);var $r=({value:e,format:t})=>e==null?"-":c(e,t),xe=memo($r);var Qr=({value:e,field:t})=>{if(!t.metadata||typeof e!="object"||e===null)return e?String(e):"-";let o=e[t.metadata.description_field_name];return o?jsx(Xr,{label:String(o),variant:"outlined",size:"small",sx:{width:"fit-content",color:"text.secondary",borderColor:"divider",borderRadius:3}}):null},Ne=memo(Qr);var Zr=({value:e,trueIcon:t="STAR_02",falseIcon:o="STAR",color:r="primary.main",width:n=18})=>jsx(a,{icon:e?t:o,color:r,width:n}),ei=memo(Zr);var $t=styled("span")(({theme:e,isActive:t})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",padding:e.spacing(.2,1),borderRadius:e.shape.borderRadius,fontSize:"0.75rem",fontWeight:600,width:"fit-content",height:"auto",lineHeight:"1.25rem",whiteSpace:"nowrap",margin:"auto",backgroundColor:t?e.palette.success.lighter||"#00A76F29":e.palette.warning.lighter||"#FF563029",color:t?e.palette.success.darker||"#007867":e.palette.warning.darker||"#B71D18"})),Kt=styled(X,{shouldForwardProp:e=>!["size","noImage","clickable"].includes(e)})(({theme:e,size:t,noImage:o,clickable:r})=>({width:t,height:t,minWidth:t,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",cursor:r?"pointer":"default",transition:"opacity 0.2s ease-in-out",color:e.palette.text.disabled,...o&&{border:`1px dashed ${e.palette.divider}`,backgroundColor:e.palette.grey[100]},...r&&{"&:hover":{opacity:.8}},"& img":{width:"100%",height:"100%",objectFit:"cover",borderRadius:"50%"},[e.breakpoints.down("sm")]:{justifyContent:"flex-start",alignItems:"flex-start"}}));var ii=({imageResourceId:e,getImageUrl:t,size:o=48,alt:r="Imagem",onClick:n,sx:i})=>{let l=!!e,m=l&&t?t(e):void 0;return jsx(Kt,{size:o,noImage:!l,clickable:!!n,onClick:n,sx:i,children:m?jsx("img",{src:m,alt:r}):jsx(a,{icon:"SEARCH_IMAGE",width:Math.round(o/2),color:"text.disabled"})})},ni=memo(ii);var li=({id:e,displayName:t,copyMessage:o="ID copiado!"})=>jsxs(_t,{height:1,justifyContent:"center",children:[jsx(Se,{variant:"subtitle2",noWrap:!0,title:t,children:t}),jsxs(_t,{direction:"row",gap:1,alignItems:"center",children:[jsxs(Se,{color:"grey.600",variant:"body2",noWrap:!0,children:["ID: ",e]}),jsx(a$2,{toCopy:e,message:o})]})]}),si=memo(li);var ci=({value:e,isCurrency:t=!1})=>e==null?"-":jsx(_t,{direction:"row",alignItems:"center",height:"100%",children:jsx(Se,{variant:"body2",noWrap:!0,width:"fit-content",children:t?h(Number(e)):a$3(Number(e))})}),Ee=memo(ci);var fi=({active:e,activeLabel:t="Ativo",inactiveLabel:o="Inativo"})=>jsx($t,{isActive:e,children:e?t:o}),ve=memo(fi);var bi=e=>e.replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").trim(),hi=({value:e,showCopyButton:t=!1,copyMessage:o="Copiado",copyLabel:r,mask:n})=>{if(!e)return "-";let i=String(e),l=n?n(i):bi(i);return t?jsxs(_t,{direction:"row",gap:1,alignItems:"center",children:[jsx(Se,{variant:"body2",noWrap:!0,children:l}),jsx(a$2,{toCopy:i,message:o,label:r})]}):l},Me=memo(hi);function Ii(e){return wt.includes(e)}var eo=e=>{let{onRowAction:t}=e,o=(r,n)=>{let i=n[r.name];if(r.name==="ACTIONS")return t?.(n.id,n);switch(r.type){case"BOOLEAN":return jsx(ve,{active:!!i,activeLabel:"Ativo",inactiveLabel:"Inativo"});case"DATE":return jsx(De,{value:i});case"DATETIME":return jsx(xe,{value:i});case"DECIMAL":case"INTEGER":return jsx(Ee,{value:i,isCurrency:Ii(r.name)});case"FILE":case"ENTITY":return jsx(Ne,{value:i,field:r});case"TEXT":default:return jsx(Me,{value:i})}};return o.displayName="CellRendererComponent",o};var Di=({title:e,metadata:t,data:o,isLoading:r,isFetching:n,page:i,perPage:l,searchValue:m,onSearchChange:s,onSearch:d,onPaginationChange:f,onAdd:p,onRowAction:c,onRowDoubleClick:a,actions:u,moreActions:L,bulkActions:A,rowSelectionModel:re,onRowSelectionModelChange:ie,slots:ne,mobileRender:ae,containerHeight:C=600,showColumnButton:S=!1,showFilterButton:F=!1,filter:E,onFilterChange:b$1,sort:x,onSortChange:R,defaultVisibleFieldNames:io,preferredFieldOrder:no,columnStrategies:ao,onColumnVisibilityModelChange:lo,storageKey:le})=>{let{items:B=[],total:so=0}=o||{},W=useMemo(()=>{if(t)return t;if(B.length>0){let N=B[0],H=Object.keys(N).map(Ge=>({name:Ge,type:"TEXT",description:Ge,filter_field_name:null,metadata:null,access_type:"READ_ONLY",relation_field_name:null,available_filter_conditions:[]}));return {name:"loading",description:"Loading...",id_field_name:"id",description_field_name:H[0]?.name||"id",access_type:"READ_ONLY",fields:H}}},[t,B]),P=useMemo(()=>W&&c?Re(W):W,[W,c]),G=useMemo(()=>P?.fields||[],[P]),mo=useMemo(()=>eo({onRowAction:c}),[c]),po=Pt({metadata:P,renderCell:mo,columnStrategies:ao}),{orderedColumns:co,columnsByFieldId:uo}=vt({columns:po,fields:P?.fields,preferredFieldOrder:no}),{initialState:fo,handleColumnVisibilityModelChange:Co}=Mt({fields:P?.fields,columnsByFieldId:uo,defaultVisibleFieldNames:io,columnVisibilityStorageKey:`${le}:columns`,onColumnVisibilityModelChange:lo}),go=useCallback(N=>{if(!a)return;let H=N.id?.toString()||"";a(H,N.row);},[a]),V=b("down","md"),[yo,se]=useState(null),{filter:So,setFilter:U}=Ut(le,E,b$1),{sort:bo,setSort:we}=Ht(le,x,R),ho=E??So,me=x??bo,{sortModel:Fo,handleSortModelChange:Io}=zt({sort:me,onSortChange:we,fields:G}),{conditions:To,isOpen:Ro,openDrawer:de,closeDrawer:Le,addCondition:Do,updateCondition:xo,removeCondition:No,clearAllFilters:Pe,applyFilters:Oe,cancelChanges:ke,hasActiveFilters:_o,activeFiltersCount:Ao}=kt({fields:G,initialFilter:ho}),Eo=useCallback(()=>{let N=Oe();U(N);},[Oe,U]),vo=useCallback(()=>{Pe(),U(void 0);},[Pe,U]),Mo=useCallback(N=>{V?de():(de(),se(N.currentTarget));},[V,de]),wo=useCallback(()=>{ke(),se(null);},[ke]),[Lo,Be]=useState(!1),Po=useCallback(()=>{se(null),Le();},[Le]),We=!!A?.length;return jsxs(Fragment,{children:[jsx(d$1,{title:e,columns:co,rows:B,mobileRender:ae,rowCount:so,loading:r||!t,fetching:n,searchValue:m,onSearch:d,onSearchChange:s,paginationModel:{page:i,pageSize:l},onPaginationChange:f,actions:u,moreActions:L,onAdd:p,onRowDoubleClick:a?go:void 0,bulkActions:A,checkboxSelection:We,rowSelectionModel:re,onRowSelectionModelChange:ie,keepNonExistentRowsSelected:We,disableRowSelectionOnClick:!0,slots:ne,initialState:fo,showColumnButton:S,containerProps:{height:C,maxHeight:C},onColumnVisibilityModelChange:Co,filterButton:jsx(Je,{showFilterButton:F,isMobile:V,hasActiveFilters:_o,activeFiltersCount:Ao,sort:me,onFilterClick:Mo,onSortClick:()=>Be(!0)}),sortingMode:"server",sortModel:Fo,onSortModelChange:Io,disableColumnFilter:!0}),t&&jsxs(Fragment,{children:[jsx(Ct,{showFilterButton:F,isOpen:Ro,filterAnchorEl:yo,fields:G,conditions:To,isMobile:V,onClose:Po,onAddCondition:Do,onUpdateCondition:xo,onRemoveCondition:No,onApply:Eo,onClear:vo,onCancel:wo}),jsx(Et,{open:Lo,onClose:()=>Be(!1),fields:G,sort:me,onSortChange:we})]})]})},xi=memo(Di,Wo);var Ni=({metadata:e,columnVisibilityModel:t,defaultVisibleFields:o})=>{if(!e?.fields)return;let n=e.fields.map(i=>i.name).filter(i=>i==="ACTIONS"?!1:t?t[i]!==!1:o?.includes(i)??!0);return o?n.sort((i,l)=>{let m=o.indexOf(i),s=o.indexOf(l);return m-s||0}):n};
56
57
 
57
- export { De as DateRenderer, xe as DateTimeRenderer, _e as EntityRenderer, Qr as IconRenderer, ti as ImageRenderer, ii as NameRenderer, Ee as NumberRenderer, ve as StatusRenderer, Me as TextRenderer, Re as addActionsFieldToMetadata, Ti as buildVisibleFields, zt as createActionsField, Ii as default };
58
+ export { De as DateRenderer, xe as DateTimeRenderer, Ne as EntityRenderer, ei as IconRenderer, ni as ImageRenderer, si as NameRenderer, Ee as NumberRenderer, ve as StatusRenderer, Me as TextRenderer, Re as addActionsFieldToMetadata, Ni as buildVisibleFields, Yt as createActionsField, xi as default };
58
59
  //# sourceMappingURL=index.js.map