@acvl/frontend-components 0.0.25 → 0.0.26

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 (38) hide show
  1. package/dist/cjs/index.js +480 -410
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/src/components/v1/buttons/CreateButton/CreateButtonWithMenuOptions.d.ts +1 -0
  4. package/dist/cjs/types/src/components/v1/buttons/DeleteButton/DeleteButton.d.ts +1 -1
  5. package/dist/cjs/types/src/components/v1/buttons/NormalOrIcon/NormalOrIcon.d.ts +1 -1
  6. package/dist/cjs/types/src/components/v1/datagrids/columns/deleteColumn.d.ts +1 -1
  7. package/dist/cjs/types/src/components/v1/datagrids/columns/editColumn.d.ts +1 -1
  8. package/dist/cjs/types/src/components/v1/datagrids/custom_slots/CustomToolbar/index.d.ts +3 -3
  9. package/dist/cjs/types/src/components/v1/datagrids/custom_slots/CustomToolbar/slots/ExportButton/ExportCSV.d.ts +1 -1
  10. package/dist/cjs/types/src/components/v1/datagrids/custom_slots/CustomToolbar/slots/ExportButton/index.d.ts +3 -3
  11. package/dist/cjs/types/src/components/v1/datagrids/custom_slots/CustomToolbar/slots/FiltersButton/index.d.ts +1 -1
  12. package/dist/cjs/types/src/components/v1/datagrids/wrappers/CreateGridWrapper.d.ts +1 -0
  13. package/dist/cjs/types/src/components/v1/datagrids/wrappers/EditGridWrapper.d.ts +2 -2
  14. package/dist/cjs/types/src/components/v1/drawers/HistorialDrawer/index.d.ts +1 -1
  15. package/dist/cjs/types/src/components/v1/layout/pages/DetailPage/FieldArrayField/index.d.ts +1 -1
  16. package/dist/cjs/types/src/components/v1/layout/pages/DetailPage/index.d.ts +2 -2
  17. package/dist/cjs/types/src/components/v1/layout/shared/Tabs/index.d.ts +1 -1
  18. package/dist/cjs/types/src/components/v1/lib/slices/snackProgress.d.ts +1 -1
  19. package/dist/esm/index.js +483 -413
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/types/src/components/v1/buttons/CreateButton/CreateButtonWithMenuOptions.d.ts +1 -0
  22. package/dist/esm/types/src/components/v1/buttons/DeleteButton/DeleteButton.d.ts +1 -1
  23. package/dist/esm/types/src/components/v1/buttons/NormalOrIcon/NormalOrIcon.d.ts +1 -1
  24. package/dist/esm/types/src/components/v1/datagrids/columns/deleteColumn.d.ts +1 -1
  25. package/dist/esm/types/src/components/v1/datagrids/columns/editColumn.d.ts +1 -1
  26. package/dist/esm/types/src/components/v1/datagrids/custom_slots/CustomToolbar/index.d.ts +3 -3
  27. package/dist/esm/types/src/components/v1/datagrids/custom_slots/CustomToolbar/slots/ExportButton/ExportCSV.d.ts +1 -1
  28. package/dist/esm/types/src/components/v1/datagrids/custom_slots/CustomToolbar/slots/ExportButton/index.d.ts +3 -3
  29. package/dist/esm/types/src/components/v1/datagrids/custom_slots/CustomToolbar/slots/FiltersButton/index.d.ts +1 -1
  30. package/dist/esm/types/src/components/v1/datagrids/wrappers/CreateGridWrapper.d.ts +1 -0
  31. package/dist/esm/types/src/components/v1/datagrids/wrappers/EditGridWrapper.d.ts +2 -2
  32. package/dist/esm/types/src/components/v1/drawers/HistorialDrawer/index.d.ts +1 -1
  33. package/dist/esm/types/src/components/v1/layout/pages/DetailPage/FieldArrayField/index.d.ts +1 -1
  34. package/dist/esm/types/src/components/v1/layout/pages/DetailPage/index.d.ts +2 -2
  35. package/dist/esm/types/src/components/v1/layout/shared/Tabs/index.d.ts +1 -1
  36. package/dist/esm/types/src/components/v1/lib/slices/snackProgress.d.ts +1 -1
  37. package/dist/index.d.ts +14 -12
  38. package/package.json +1 -1
package/dist/esm/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
- import { useTheme, useMediaQuery, Tooltip, IconButton, Button, Grid, FormGroup, FormHelperText as FormHelperText$1, Drawer, Box, Stack, CircularProgress, Typography as Typography$1, List as List$1, ListItem as ListItem$1, ListSubheader, styled as styled$1, LinearProgress, Autocomplete, Checkbox, Slider, Switch, InputAdornment as InputAdornment$1, ToggleButtonGroup, ToggleButton, Dialog, DialogTitle, DialogContent as DialogContent$1, DialogContentText, DialogActions as DialogActions$1, ButtonGroup, Menu, alpha as alpha$1, Link, Card, CardHeader, Avatar, CardContent, Divider as Divider$1, Popper, Grow as Grow$1, Paper, ClickAwayListener, Badge, TablePagination, NoSsr, tooltipClasses, Collapse, Fade as Fade$1, Slide, Zoom, Snackbar, lighten, createTheme as createTheme$1, responsiveFontSizes } from '@mui/material';
3
+ import { useTheme, useMediaQuery, Tooltip, IconButton, Button, Grid, FormGroup, FormHelperText as FormHelperText$1, Drawer, Box, Stack, CircularProgress, Typography as Typography$1, List as List$1, ListItem as ListItem$1, ListSubheader, styled as styled$1, LinearProgress, Autocomplete, Checkbox, Slider, Switch, InputAdornment as InputAdornment$1, ToggleButtonGroup, ToggleButton, Dialog, DialogTitle, DialogContent as DialogContent$1, DialogContentText, DialogActions as DialogActions$1, ButtonGroup, Menu, ListItemIcon, Link, Card, CardHeader, Avatar, CardContent, Divider as Divider$1, Popper, Grow as Grow$1, Paper, ClickAwayListener, Badge, TablePagination, NoSsr, tooltipClasses, Collapse, Fade as Fade$1, Slide, Zoom, Snackbar, alpha as alpha$1, lighten, createTheme as createTheme$1, responsiveFontSizes } from '@mui/material';
4
4
  import EditIcon from '@mui/icons-material/Edit';
5
5
  import * as React from 'react';
6
6
  import React__default, { useCallback, useEffect, isValidElement, cloneElement, Children, createContext, useContext, useState, useMemo, useRef, useImperativeHandle, useLayoutEffect, Suspense, forwardRef } from 'react';
7
- import { useNavigate, useLocation } from 'react-router-dom';
7
+ import { useNavigate, useLocation, useLoaderData } from 'react-router-dom';
8
8
  import DeleteIcon from '@mui/icons-material/Delete';
9
9
  import { Controller, useForm, useWatch, useFieldArray, FormProvider } from 'react-hook-form';
10
10
  import { useSession, PageHeader, useNotifications } from '@toolpad/core';
@@ -41,7 +41,7 @@ import BaseFocusTrap from '@mui/material/Unstable_TrapFocus';
41
41
  import DialogContent from '@mui/material/DialogContent';
42
42
  import MuiDialog, { dialogClasses } from '@mui/material/Dialog';
43
43
  import debounce from 'lodash/debounce';
44
- import { get, invoke, map, find, forEach as forEach$1, findIndex, mergeWith, isArray, omit, set as set$1, every, includes as includes$1, merge as merge$2, countBy, isNumber, isEmpty as isEmpty$1, isBoolean, isEqual as isEqual$1, debounce as debounce$1, some } from 'lodash';
44
+ import { get, invoke, map, find, groupBy, forEach as forEach$1, findIndex, mergeWith, isArray, omit, set as set$1, every, includes as includes$1, merge as merge$2, countBy, isNumber, isEmpty as isEmpty$1, isBoolean, isEqual as isEqual$1, debounce as debounce$1, some } from 'lodash';
45
45
  import { produce } from 'immer';
46
46
  import set from 'lodash/set';
47
47
  import get$1 from 'lodash/get';
@@ -73,6 +73,7 @@ import SaveIcon from '@mui/icons-material/Save';
73
73
  import AddIcon from '@mui/icons-material/Add';
74
74
  import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
75
75
  import LinearProgress$1 from '@mui/material/LinearProgress';
76
+ import AttachFileIcon from '@mui/icons-material/AttachFile';
76
77
  import { useGridApiContext, ToolbarButton, QuickFilter, QuickFilterTrigger, QuickFilterControl, QuickFilterClear, ColumnsPanelTrigger, Toolbar, useGridSelector, gridPaginationSelector, GridRow, GridRowEditStartReasons, GridRowModes, GridActionsCellItem, useGridApiRef, DataGrid, GridRowEditStopReasons, GridEditSingleSelectCell, GridEditInputCell, GridEditBooleanCell } from '@mui/x-data-grid';
77
78
  import Tooltip$1 from '@mui/material/Tooltip';
78
79
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
@@ -94,6 +95,7 @@ import { useSortable, SortableContext, verticalListSortingStrategy } from '@dnd-
94
95
  import { CSS } from '@dnd-kit/utilities';
95
96
  import { useSensors, useSensor, PointerSensor, DndContext, closestCenter } from '@dnd-kit/core';
96
97
  import { restrictToVerticalAxis, restrictToWindowEdges, restrictToParentElement } from '@dnd-kit/modifiers';
98
+ import DrawIcon from '@mui/icons-material/Draw';
97
99
  import CloseIcon from '@mui/icons-material/Close';
98
100
  import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
99
101
  import { skipToken } from '@reduxjs/toolkit/query';
@@ -104,10 +106,10 @@ import { useDispatch, useSelector } from 'react-redux';
104
106
 
105
107
  const NormalOrIcon = (props) => {
106
108
  const theme = useTheme();
107
- const belowLG = useMediaQuery(theme.breakpoints.down('lg'));
108
- if ((belowLG && !(props.type == 'button')) || props.type == 'icon')
109
+ const belowLG = useMediaQuery(theme.breakpoints.down("lg"));
110
+ if ((belowLG && !(props.type == "button")) || props.type == "icon")
109
111
  return (jsx(Tooltip, { title: props.buttonProps.children, children: jsx(IconButton, { ...props.buttonProps, children: props.buttonProps.startIcon }) }));
110
- return (jsx(Button, { ...props.buttonProps }));
112
+ return jsx(Button, { ...props.buttonProps });
111
113
  };
112
114
 
113
115
  const EditButton = () => {
@@ -117,23 +119,23 @@ const EditButton = () => {
117
119
  }, [navigate]);
118
120
  // ===== || KEYDOWN || ===== //
119
121
  const handleKeyPress = useCallback((event) => {
120
- if (event.ctrlKey && event.key === 'e') {
122
+ if (event.ctrlKey && event.key === "e") {
121
123
  event.preventDefault();
122
124
  handleClick();
123
125
  }
124
126
  }, [handleClick]);
125
127
  useEffect(() => {
126
- document.addEventListener('keydown', handleKeyPress);
128
+ document.addEventListener("keydown", handleKeyPress);
127
129
  return () => {
128
- document.removeEventListener('keydown', handleKeyPress);
130
+ document.removeEventListener("keydown", handleKeyPress);
129
131
  };
130
132
  }, [handleKeyPress]);
131
133
  return (jsx(NormalOrIcon, { buttonProps: {
132
- color: 'secondary',
133
- variant: 'contained',
134
+ color: "secondary",
135
+ variant: "contained",
134
136
  startIcon: jsx(EditIcon, {}),
135
137
  onClick: handleClick,
136
- children: 'Editar',
138
+ children: "Editar",
137
139
  } }));
138
140
  };
139
141
 
@@ -25811,18 +25813,18 @@ const valueLabel = object({
25811
25813
 
25812
25814
  const MainDrawer = (props) => {
25813
25815
  const theme = useTheme();
25814
- return (jsx(Drawer, { variant: 'temporary', anchor: 'right', open: props.open, onClose: props.drawerToggle, sx: {
25816
+ return (jsx(Drawer, { variant: "temporary", anchor: "right", open: props.open, onClose: props.drawerToggle, sx: {
25815
25817
  zIndex: 1202,
25816
- '& .MuiDrawer-paper': {
25817
- width: '100%',
25818
+ "& .MuiDrawer-paper": {
25819
+ width: "100%",
25818
25820
  maxWidth: props.width ? props.width : 600,
25819
25821
  background: theme.palette.background.default,
25820
25822
  color: theme.palette.text.primary,
25821
- borderRight: 'none',
25822
- borderTopLeftRadius: '12px',
25823
- borderBottomLeftRadius: '12px',
25824
- }
25825
- }, color: 'inherit', ...props.drawerProps, children: jsxs(Grid, { container: true, direction: 'column', px: 4, py: 2, spacing: 2, children: [jsx(Grid, { display: 'flex', justifyContent: 'right', pb: 0, children: props.slots?.button ? props.slots.button : (jsx(Button, { color: 'error', startIcon: jsx(CancelIcon, {}), onClick: props.drawerToggle, children: "Cerrar" })) }), jsx(Grid, { children: jsx(PageHeader, { breadcrumbs: [], title: props.title }) }), jsx(Grid, { size: 12, container: true, position: 'relative', children: props.children })] }) }));
25823
+ borderRight: "none",
25824
+ borderTopLeftRadius: "12px",
25825
+ borderBottomLeftRadius: "12px",
25826
+ },
25827
+ }, color: "inherit", ...props.drawerProps, children: jsxs(Grid, { container: true, direction: "column", px: 4, py: 2, spacing: 2, children: [jsx(Grid, { display: "flex", justifyContent: "right", pb: 0, children: props.slots?.button ? (props.slots.button) : (jsx(Button, { color: "error", startIcon: jsx(CancelIcon, {}), onClick: props.drawerToggle, children: "Cerrar" })) }), jsx(Grid, { children: jsx(PageHeader, { breadcrumbs: [], title: props.title }) }), jsx(Grid, { size: 12, container: true, position: "relative", children: props.children })] }) }));
25826
25828
  };
25827
25829
 
25828
25830
  const LoadingComponent = (props) => {
@@ -25881,60 +25883,49 @@ const _HistorialDrawer = (props) => {
25881
25883
  const HistorialDrawer = (props) => {
25882
25884
  const [open, setOpen] = useState(false);
25883
25885
  const handleDrawer = useCallback(() => {
25884
- setOpen(prevState => !prevState);
25886
+ setOpen((prevState) => !prevState);
25885
25887
  }, []);
25886
25888
  // ===== || KEYDOWN || ===== //
25887
25889
  const handleKeyPress = useCallback((event) => {
25888
- if (event.ctrlKey && event.shiftKey && event.key === 'H') {
25890
+ if (event.ctrlKey && event.shiftKey && event.key === "H") {
25889
25891
  event.preventDefault();
25890
25892
  handleDrawer();
25891
25893
  }
25892
25894
  }, [handleDrawer]);
25893
25895
  useEffect(() => {
25894
- document.addEventListener('keydown', handleKeyPress);
25896
+ document.addEventListener("keydown", handleKeyPress);
25895
25897
  return () => {
25896
- document.removeEventListener('keydown', handleKeyPress);
25898
+ document.removeEventListener("keydown", handleKeyPress);
25897
25899
  };
25898
25900
  }, [handleKeyPress]);
25899
- return (jsxs(Fragment, { children: [jsx(Tooltip, { title: 'Historial', children: jsx(IconButton, { color: 'primary', onClick: handleDrawer, sx: {
25900
- position: 'absolute',
25901
+ return (jsxs(Fragment, { children: [jsx(Tooltip, { title: "Historial", children: jsx(IconButton, { color: "primary", onClick: handleDrawer, sx: {
25902
+ position: "absolute",
25901
25903
  right: 0,
25902
25904
  }, ...props.iconButtonProps, children: jsx(HistoryIcon, {}) }) }), jsx(_HistorialDrawer, { open: open, handleDrawer: handleDrawer, endpoint: props.endpoint })] }));
25903
25905
  };
25904
25906
 
25905
- const buildListItems = (content) => {
25906
- const items = [];
25907
- const loop = (content, error_title) => {
25908
- if (Array.isArray(content)) {
25909
- items.push({ title: error_title ? (error_title.charAt(0).toUpperCase() + error_title.slice(1)).split('_').join(' ') : 'N/A', content: content.join(', ') });
25910
- }
25911
- else {
25912
- Object.keys(content).map((row_error) => {
25913
- loop(content[row_error], row_error);
25914
- });
25915
- }
25916
- };
25917
- loop(content);
25918
- return items;
25919
- };
25920
25907
  const RowErrors = (props) => {
25921
25908
  return (jsx(List$1, { subheader: jsx(ListSubheader, { sx: {
25922
25909
  bgcolor: red[50],
25923
25910
  color: red[800],
25924
- fontWeight: 'bold',
25925
- borderRadius: '12px',
25926
- lineHeight: '40px'
25911
+ fontWeight: "bold",
25912
+ borderRadius: "12px",
25913
+ lineHeight: "40px",
25927
25914
  }, children: `Hilera ${props.row}` }), sx: {
25928
25915
  bgcolor: red[50],
25929
- borderRadius: '12px',
25930
- }, children: buildListItems(props.data[props.row]).map((item) => {
25916
+ borderRadius: "12px",
25917
+ }, children: props.data.map((item) => {
25918
+ const pre_name = item.name.split(".").at(-1);
25919
+ const name = (pre_name.charAt(0).toUpperCase() + pre_name.slice(1))
25920
+ .split("_")
25921
+ .join(" ");
25931
25922
  return (jsx(ListItem$1, { sx: {
25932
- py: 0
25933
- }, children: jsx(ListItemText, { primary: jsxs(Box, { children: [jsx(Typography$1, { variant: 'caption', pr: 0.5, sx: {
25923
+ py: 0,
25924
+ }, children: jsx(ListItemText, { primary: jsxs(Box, { children: [jsx(Typography$1, { variant: "caption", pr: 0.5, sx: {
25934
25925
  color: red[800],
25935
- }, children: `${item.title}:` }), jsx(Typography$1, { variant: 'caption', sx: {
25926
+ }, children: `${name}:` }), jsx(Typography$1, { variant: "caption", sx: {
25936
25927
  color: red[800],
25937
- }, children: item.content })] }) }) }));
25928
+ }, children: item.reason.join(", ") })] }) }) }));
25938
25929
  }) }));
25939
25930
  };
25940
25931
 
@@ -25974,9 +25965,8 @@ const FileUploadBox = (props) => {
25974
25965
  props.setValid(true);
25975
25966
  })
25976
25967
  .catch((e) => {
25977
- const columnas_inv = get(e.data, "columnas_invalidas");
25978
- if (columnas_inv)
25979
- notifications.show(columnas_inv, { severity: "error" });
25968
+ if (e.data?.detail?.length > 0)
25969
+ notifications.show(e.data.detail[0], { severity: "error" });
25980
25970
  props.setValid(false);
25981
25971
  });
25982
25972
  });
@@ -26003,19 +25993,22 @@ const FileUploadBox = (props) => {
26003
25993
  onChange(null);
26004
25994
  setFile(null);
26005
25995
  };
25996
+ const renderErrorRows = () => {
25997
+ if (!error?.data?.invalid_params)
25998
+ return;
25999
+ const rows = groupBy(error?.data?.invalid_params, function (e) {
26000
+ return e.name.split(".")[0];
26001
+ });
26002
+ if (!rows)
26003
+ return;
26004
+ return Object.entries(rows).map(([row, errors]) => (jsx(RowErrors, { row: row, data: errors }, row)));
26005
+ };
26006
26006
  return (jsx(Box$1, { width: 1, children: jsxs(Stack, { spacing: 2, children: [!file && !isLoading && (jsxs(Box$1, { component: "div", width: 1, display: "flex", justifyContent: "center", alignItems: "center", border: "1.5px dashed", borderRadius: "12px", py: 4, px: 2, borderColor: grey[800], bgcolor: grey[50], ...getRootProps(), children: [jsx(VisuallyHiddenInput, { id: "file-upload", type: "file", ...getInputProps() }), jsx(FileUploadIcon, { sx: {
26007
26007
  color: grey[800],
26008
26008
  pr: 1,
26009
26009
  } }), jsx(Typography, { variant: "body2", sx: { color: grey[800] }, children: isDragActive
26010
26010
  ? "Soltar archivo aquí."
26011
- : "Arrastra un archivo aquí o haz clic para seleccionar uno." })] })), isLoading && (jsx(Box$1, { children: jsx(LinearProgress, { sx: { height: 5 } }) })), file && (jsx(FileBox, { file: file, handleRemove: handleRemove, loadingRemove: removerLoading })), error &&
26012
- "data" in error &&
26013
- Object.keys(error.data).map((row) => {
26014
- if (typeof error.data[row] == "object") {
26015
- return jsx(RowErrors, { row: row, data: error.data }, row);
26016
- }
26017
- return null;
26018
- })] }) }));
26011
+ : "Arrastra un archivo aquí o haz clic para seleccionar uno." })] })), isLoading && (jsx(Box$1, { children: jsx(LinearProgress, { sx: { height: 5 } }) })), file && (jsx(FileBox, { file: file, handleRemove: handleRemove, loadingRemove: removerLoading })), renderErrorRows()] }) }));
26019
26012
  };
26020
26013
  return (jsx(Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value } }) => {
26021
26014
  return jsx(Dropzone, { onChange: onChange, value: value });
@@ -26200,7 +26193,7 @@ async function manualCacheRefresh(api, id, dispatch, queryFulfilled, endpoints)
26200
26193
  const initialState$1 = {};
26201
26194
  // == crea el slice == //
26202
26195
  const snackProgress = createSlice({
26203
- name: 'snackProgress',
26196
+ name: "snackProgress",
26204
26197
  initialState: initialState$1,
26205
26198
  // declarar acciones que se le pueden hacer a esta sección de la tienda
26206
26199
  reducers: {
@@ -26216,7 +26209,7 @@ const snackProgress = createSlice({
26216
26209
  closeProgressSnack(state, action) {
26217
26210
  return omit(state, action.payload);
26218
26211
  },
26219
- }
26212
+ },
26220
26213
  });
26221
26214
  // exportar acciones
26222
26215
  const { openProgressSnack, updateProgressSnackData, closeProgressSnack } = snackProgress.actions;
@@ -26242,12 +26235,14 @@ const { changeTitle, } = settings.actions;
26242
26235
  var header = settings.reducer;
26243
26236
 
26244
26237
  const ControlledDropdown = (props) => {
26245
- const [inputValue, setInputValue] = useState('');
26238
+ const [inputValue, setInputValue] = useState("");
26246
26239
  const [options, setOptions] = useState(props.extraProps?.options ? props.extraProps?.options : []);
26247
26240
  const args = useMemo(() => {
26248
26241
  if (!props.extraProps?.queryArgs)
26249
26242
  return undefined;
26250
- return mergeSettings(props.extraProps?.queryArgs, { filters: { nombre__icontains: inputValue } });
26243
+ return mergeSettings(props.extraProps?.queryArgs, {
26244
+ filters: { nombre__icontains: inputValue },
26245
+ });
26251
26246
  }, [inputValue, props.extraProps?.queryArgs]);
26252
26247
  const api = useAPI();
26253
26248
  const [getOpciones, { isLoading, isFetching, isError }] = api.useLazyGetComoOpcionesQuery();
@@ -26260,7 +26255,8 @@ const ControlledDropdown = (props) => {
26260
26255
  };
26261
26256
  const handleSearch = useCallback(debounce((args, callback) => {
26262
26257
  setOptions([]);
26263
- getOpciones(args).unwrap()
26258
+ getOpciones(args)
26259
+ .unwrap()
26264
26260
  .then(callback)
26265
26261
  .catch(() => {
26266
26262
  //
@@ -26273,7 +26269,7 @@ const ControlledDropdown = (props) => {
26273
26269
  });
26274
26270
  }
26275
26271
  }, [args, handleSearch, open]);
26276
- return (jsx(Controller, { name: props.name, control: props.control, render: ({ field: { value, onChange, }, fieldState: { error }, }) => {
26272
+ return (jsx(Controller, { name: props.name, control: props.control, render: ({ field: { value, onChange }, fieldState: { error } }) => {
26277
26273
  const handleChange = (_event, newValue) => {
26278
26274
  onChange(newValue);
26279
26275
  };
@@ -26281,10 +26277,10 @@ const ControlledDropdown = (props) => {
26281
26277
  setInputValue(newInputValue);
26282
26278
  }, isOptionEqualToValue: (option, value) => {
26283
26279
  return option.value === value.value;
26284
- }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, fullWidth: true, size: 'small', disabled: !options || isError, renderInput: (params) => (jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : props.extraProps?.disableHT ? '' : ' ', slotProps: {
26280
+ }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, fullWidth: true, size: "small", disabled: !options || isError, renderInput: (params) => (jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : props.extraProps?.disableHT ? "" : " ", slotProps: {
26285
26281
  input: {
26286
26282
  ...params.InputProps,
26287
- endAdornment: (jsxs(Fragment, { children: [(isLoading || isFetching) ? jsx(CircularProgress, { color: "inherit", size: 20 }) : null, params.InputProps.endAdornment] })),
26283
+ endAdornment: (jsxs(Fragment, { children: [isLoading || isFetching ? (jsx(CircularProgress, { color: "inherit", size: 20 })) : null, params.InputProps.endAdornment] })),
26288
26284
  },
26289
26285
  } })), ...props.fieldProps }));
26290
26286
  } }));
@@ -26313,13 +26309,15 @@ const ControlledPhoneNumber = (props) => {
26313
26309
  };
26314
26310
 
26315
26311
  const ControlledSelect = (props) => {
26316
- const [inputValue, setInputValue] = useState('');
26312
+ const [inputValue, setInputValue] = useState("");
26317
26313
  const [options, setOptions] = useState(props.extraProps?.options ? props.extraProps?.options : []);
26318
26314
  const [selectedAll, setSelectedAll] = useState(false);
26319
26315
  const args = useMemo(() => {
26320
26316
  if (!props.extraProps?.queryArgs)
26321
26317
  return undefined;
26322
- return mergeSettings(props.extraProps?.queryArgs, { filters: { nombre__icontains: inputValue } });
26318
+ return mergeSettings(props.extraProps?.queryArgs, {
26319
+ filters: { nombre__icontains: inputValue },
26320
+ });
26323
26321
  }, [inputValue, props.extraProps?.queryArgs]);
26324
26322
  const api = useAPI();
26325
26323
  const [getOpciones, { isLoading, isFetching, isError }] = api.useLazyGetComoOpcionesQuery();
@@ -26334,7 +26332,8 @@ const ControlledSelect = (props) => {
26334
26332
  };
26335
26333
  const handleSearch = useCallback(debounce((args, callback) => {
26336
26334
  setOptions([]);
26337
- getOpciones(args).unwrap()
26335
+ getOpciones(args)
26336
+ .unwrap()
26338
26337
  .then(callback)
26339
26338
  .catch(() => {
26340
26339
  //
@@ -26343,12 +26342,14 @@ const ControlledSelect = (props) => {
26343
26342
  useEffect(() => {
26344
26343
  if (args && open)
26345
26344
  handleSearch(args, (filteredOptions) => {
26346
- setOptions([{ value: 'all', label: 'All' }].concat(filteredOptions));
26345
+ setOptions([{ value: "all", label: "All" }].concat(filteredOptions));
26347
26346
  });
26348
26347
  }, [args, handleSearch, open]);
26349
26348
  return (jsx(Controller, { name: props.name, control: props.control, render: ({ field: { value, onChange }, fieldState: { error } }) => {
26350
26349
  const handleChange = (_event, newValue) => {
26351
- if (find(newValue, function (val) { return val.value == 'all'; })) {
26350
+ if (find(newValue, function (val) {
26351
+ return val.value == "all";
26352
+ })) {
26352
26353
  if (selectedAll) {
26353
26354
  setSelectedAll(false);
26354
26355
  onChange(newValue.slice(1));
@@ -26372,10 +26373,10 @@ const ControlledSelect = (props) => {
26372
26373
  setInputValue(newInputValue);
26373
26374
  }, isOptionEqualToValue: (option, value) => {
26374
26375
  return option.value === value.value;
26375
- }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, multiple: true, disableCloseOnSelect: true, limitTags: 1, fullWidth: true, size: 'small', disabled: !options || isError, renderInput: (params) => (jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : '', slotProps: {
26376
+ }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, multiple: true, disableCloseOnSelect: true, limitTags: 1, fullWidth: true, size: "small", disabled: !options || isError, renderInput: (params) => (jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : "", slotProps: {
26376
26377
  input: {
26377
26378
  ...params.InputProps,
26378
- endAdornment: (jsxs(Fragment, { children: [(isLoading || isFetching) ? jsx(CircularProgress, { color: "inherit", size: 20 }) : null, params.InputProps.endAdornment] })),
26379
+ endAdornment: (jsxs(Fragment, { children: [isLoading || isFetching ? (jsx(CircularProgress, { color: "inherit", size: 20 })) : null, params.InputProps.endAdornment] })),
26379
26380
  },
26380
26381
  } })), ...props.fieldProps, renderOption: (props, option, { selected }) => {
26381
26382
  const { key, ...optionProps } = props;
@@ -26383,7 +26384,7 @@ const ControlledSelect = (props) => {
26383
26384
  } }));
26384
26385
  } }));
26385
26386
  };
26386
- ControlledSelect.displayName = 'ControlledSelect';
26387
+ ControlledSelect.displayName = "ControlledSelect";
26387
26388
 
26388
26389
  // ==============================|| DESLIZADOR CONTROLADO ||============================== //
26389
26390
  const ControlledSlider$1 = (props) => {
@@ -26416,19 +26417,27 @@ const ControlledText = (props) => {
26416
26417
  };
26417
26418
  return (
26418
26419
  // controlador
26419
- jsx(Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error }, }) => {
26420
+ jsx(Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error } }) => {
26420
26421
  return (
26421
26422
  // campo de texto
26422
- jsx(TextField, { variant: 'outlined', size: 'small', id: props.name, label: props.label, value: value ? value.toString() : '', onChange: onChange, error: !!error, type: props.extraProps?.password ? showPassword ? 'text' : 'password' : 'text', helperText: error ? error.message : props.fieldProps?.helperText ? props.fieldProps.helperText : ' ', fullWidth: true, slotProps: {
26423
+ jsx(TextField, { variant: "outlined", size: "small", id: props.name, label: props.label, value: value ? value.toString() : "", onChange: onChange, error: !!error, type: props.extraProps?.password
26424
+ ? showPassword
26425
+ ? "text"
26426
+ : "password"
26427
+ : "text", helperText: error
26428
+ ? error.message
26429
+ : props.fieldProps?.helperText
26430
+ ? props.fieldProps.helperText
26431
+ : " ", fullWidth: true, slotProps: {
26423
26432
  input: {
26424
26433
  // ícono de mostar u ocultar si es campo de contarseña
26425
- endAdornment: props.extraProps?.password && (jsx(InputAdornment$1, { position: 'end', children: jsx(IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: 'end', size: 'large', sx: {
26426
- color: 'secondary.darker',
26427
- '&:hover': {
26428
- color: 'secondary.main',
26429
- }
26430
- }, children: showPassword ? jsx(Visibility, {}) : jsx(VisibilityOff, {}) }) }))
26431
- }
26434
+ endAdornment: props.extraProps?.password && (jsx(InputAdornment$1, { position: "end", children: jsx(IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: "end", size: "large", sx: {
26435
+ color: "secondary.darker",
26436
+ "&:hover": {
26437
+ color: "secondary.main",
26438
+ },
26439
+ }, children: showPassword ? jsx(Visibility, {}) : jsx(VisibilityOff, {}) }) })),
26440
+ },
26432
26441
  }, ...props.fieldProps }));
26433
26442
  } }));
26434
26443
  };
@@ -26488,16 +26497,15 @@ const ControlledTimePicker = (props) => {
26488
26497
  const filedProps = useMemo(() => {
26489
26498
  const defaultProps = {
26490
26499
  slotProps: {
26491
- textField: { size: 'small' },
26492
- field: { clearable: true, },
26493
- }
26500
+ textField: { size: "small" },
26501
+ field: { clearable: true },
26502
+ },
26494
26503
  };
26495
26504
  return merge$1({}, defaultProps, props.fieldProps);
26496
26505
  }, [props.fieldProps]);
26497
- return (jsx(Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error }, }) => {
26498
- const val = convertValueToDayjs(value, 'time');
26499
- return (jsxs(FormGroup, { sx: { width: 1 }, color: 'secondary', children: [jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsx(TimePicker, { label: props.label, onChange: (v) => handleChange(v, 'time', onChange), value: val || null, ...filedProps }) }), !props.extraProps?.disableHT &&
26500
- jsx(FormHelperText$1, { error: !!error, children: error ? error.message : ' ' })] }));
26506
+ return (jsx(Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error } }) => {
26507
+ const val = convertValueToDayjs(value, "time");
26508
+ return (jsxs(FormGroup, { sx: { width: 1 }, color: "secondary", children: [jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsx(TimePicker, { label: props.label, onChange: (v) => handleChange(v, "time", onChange), value: val || null, ...filedProps }) }), !props.extraProps?.disableHT && (jsx(FormHelperText$1, { error: !!error, children: error ? error.message : " " }))] }));
26501
26509
  } }));
26502
26510
  };
26503
26511
 
@@ -26517,22 +26525,23 @@ const ControlledSlider = (props) => {
26517
26525
 
26518
26526
  const DeleteConfirmationDialog = (props) => {
26519
26527
  const notifications = useNotifications();
26520
- const pathname = 'temp';
26521
- const id = useMemo(() => props.id || pathname.split('/').at(-1), [pathname, props.id]);
26528
+ const pathname = "temp";
26529
+ const id = useMemo(() => props.id || pathname.split("/").at(-1), [pathname, props.id]);
26522
26530
  const [mutation] = props.mutation();
26523
26531
  const schema = object({ confirmation: string() });
26524
26532
  const form = useForm({
26525
26533
  resolver: zodResolver(schema),
26526
- defaultValues: { confirmation: '' },
26534
+ defaultValues: { confirmation: "" },
26527
26535
  });
26528
26536
  const handleClose = () => {
26529
26537
  props.handleClose();
26530
26538
  form.reset();
26531
26539
  };
26532
- const confirmation = form.watch('confirmation').toUpperCase();
26533
- const disabled = useMemo(() => confirmation != 'ELIMINAR', [confirmation]);
26540
+ const confirmation = form.watch("confirmation").toUpperCase();
26541
+ const disabled = useMemo(() => confirmation != "ELIMINAR", [confirmation]);
26534
26542
  const onSubmitHandler = () => {
26535
- mutation({ id: id }).unwrap()
26543
+ mutation({ id: id })
26544
+ .unwrap()
26536
26545
  .then(() => {
26537
26546
  if (props.disableNavBack) {
26538
26547
  handleClose();
@@ -26541,25 +26550,25 @@ const DeleteConfirmationDialog = (props) => {
26541
26550
  // props.navigate(-1);
26542
26551
  form.reset();
26543
26552
  }
26544
- notifications.show('Objeto removido exitosamente!', { severity: 'success' });
26553
+ notifications.show("Objeto removido exitosamente!", { severity: "success" });
26545
26554
  })
26546
26555
  .catch((error) => {
26547
26556
  console.log(error);
26548
- notifications.show('Error', { severity: 'error' });
26557
+ notifications.show("Error", { severity: "error" });
26549
26558
  });
26550
26559
  };
26551
26560
  const handleKeyDown = (event) => {
26552
- if (event.key === 'Enter' && !disabled)
26561
+ if (event.key === "Enter" && !disabled)
26553
26562
  onSubmitHandler();
26554
26563
  };
26555
- return (jsxs(Dialog, { open: props.open, onClose: handleClose, children: [jsx(DialogTitle, { variant: 'h5', children: "Eliminar" }), jsxs(DialogContent$1, { children: [jsx(DialogContentText, { sx: { pb: 2 }, children: "\u00BFEst\u00E1 seguro que quiere eliminar el objeto?" }), jsx(Box, { id: 'eliminar-formulario', width: '100%', position: 'relative', children: jsx(ControlledText, { name: 'confirmation', control: form.control, fieldProps: {
26564
+ return (jsxs(Dialog, { open: props.open, onClose: handleClose, children: [jsx(DialogTitle, { variant: "h5", children: "Eliminar" }), jsxs(DialogContent$1, { children: [jsx(DialogContentText, { sx: { pb: 2 }, children: "\u00BFEst\u00E1 seguro que quiere eliminar el objeto?" }), jsx(Box, { id: "eliminar-formulario", width: "100%", position: "relative", children: jsx(ControlledText, { name: "confirmation", control: form.control, fieldProps: {
26556
26565
  autoFocus: true,
26557
26566
  required: true,
26558
- margin: 'dense',
26567
+ margin: "dense",
26559
26568
  label: "Escribir 'ELIMINAR' para confirmar.",
26560
26569
  fullWidth: true,
26561
- variant: 'standard',
26562
- helperText: '',
26570
+ variant: "standard",
26571
+ helperText: "",
26563
26572
  onKeyDown: handleKeyDown,
26564
26573
  } }) })] }), jsxs(DialogActions$1, { children: [jsx(Button, { onClick: handleClose, children: "Cancelar" }), jsx(Button, { onClick: onSubmitHandler, disabled: disabled, children: "Eliminar" })] })] }));
26565
26574
  };
@@ -26574,23 +26583,23 @@ const DeleteButton = (props) => {
26574
26583
  };
26575
26584
  // ===== || KEYDOWN || ===== //
26576
26585
  const handleKeyPress = useCallback((event) => {
26577
- if (event.ctrlKey && event.key === 'd') {
26586
+ if (event.ctrlKey && event.key === "d") {
26578
26587
  event.preventDefault();
26579
26588
  handleClick();
26580
26589
  }
26581
26590
  }, [handleClick]);
26582
26591
  useEffect(() => {
26583
- document.addEventListener('keydown', handleKeyPress);
26592
+ document.addEventListener("keydown", handleKeyPress);
26584
26593
  return () => {
26585
- document.removeEventListener('keydown', handleKeyPress);
26594
+ document.removeEventListener("keydown", handleKeyPress);
26586
26595
  };
26587
26596
  }, [handleKeyPress]);
26588
26597
  return (jsxs(Fragment, { children: [jsx(NormalOrIcon, { buttonProps: {
26589
- color: 'error',
26590
- variant: 'contained',
26598
+ color: "error",
26599
+ variant: "contained",
26591
26600
  startIcon: jsx(DeleteIcon, {}),
26592
26601
  onClick: handleClick,
26593
- children: 'Eliminar',
26602
+ children: "Eliminar",
26594
26603
  } }), jsx(DeleteConfirmationDialog, { open: open, handleClose: handleClose, ...props })] }));
26595
26604
  };
26596
26605
 
@@ -26601,104 +26610,104 @@ const SaveCancelButton = (props) => {
26601
26610
  };
26602
26611
  // ===== || KEYDOWN || ===== //
26603
26612
  const handleKeyPress = useCallback((event) => {
26604
- if (event.key === 'Escape') {
26613
+ if (event.key === "Escape") {
26605
26614
  event.preventDefault();
26606
26615
  handleCancel();
26607
26616
  }
26608
26617
  }, [handleCancel]);
26609
26618
  useEffect(() => {
26610
- document.addEventListener('keydown', handleKeyPress);
26619
+ document.addEventListener("keydown", handleKeyPress);
26611
26620
  return () => {
26612
- document.removeEventListener('keydown', handleKeyPress);
26621
+ document.removeEventListener("keydown", handleKeyPress);
26613
26622
  };
26614
26623
  }, [handleKeyPress]);
26615
26624
  return (jsxs(ButtonGroup, { sx: {
26616
26625
  maxHeight: 40,
26617
26626
  }, ...props.slotProps?.buttonGroup, children: [jsx(NormalOrIcon, { buttonProps: {
26618
- color: 'error',
26619
- variant: 'contained',
26627
+ color: "error",
26628
+ variant: "contained",
26620
26629
  startIcon: jsx(CancelIcon, {}),
26621
26630
  onClick: handleCancel,
26622
26631
  sx: { height: 1 },
26623
- children: 'Cancelar',
26624
- ...props.slotProps?.cancelBtn
26632
+ children: "Cancelar",
26633
+ ...props.slotProps?.cancelBtn,
26625
26634
  } }), jsx(NormalOrIcon, { buttonProps: {
26626
- color: 'secondary',
26627
- variant: 'contained',
26635
+ color: "secondary",
26636
+ variant: "contained",
26628
26637
  startIcon: jsx(SaveIcon, {}),
26629
- type: 'submit',
26630
- form: 'formulario',
26638
+ type: "submit",
26639
+ form: "formulario",
26631
26640
  sx: { height: 1 },
26632
- children: 'Guardar',
26633
- ...props.slotProps?.saveBtn
26641
+ children: "Guardar",
26642
+ ...props.slotProps?.saveBtn,
26634
26643
  } })] }));
26635
26644
  };
26636
26645
 
26637
26646
  const CreateButtonBase = (props) => {
26638
26647
  // ===== || KEYDOWN || ===== //
26639
26648
  const handleKeyPress = useCallback((event) => {
26640
- if (event.ctrlKey && event.key === 'e') {
26649
+ if (event.ctrlKey && event.key === "e") {
26641
26650
  event.preventDefault();
26642
26651
  props.handleClick();
26643
26652
  }
26644
26653
  }, []);
26645
26654
  useEffect(() => {
26646
- document.addEventListener('keydown', handleKeyPress);
26655
+ document.addEventListener("keydown", handleKeyPress);
26647
26656
  return () => {
26648
- document.removeEventListener('keydown', handleKeyPress);
26657
+ document.removeEventListener("keydown", handleKeyPress);
26649
26658
  };
26650
26659
  }, [handleKeyPress]);
26651
26660
  return (jsx(NormalOrIcon, { buttonProps: {
26652
- id: 'create-button',
26653
- variant: 'contained',
26654
- color: 'secondary',
26661
+ id: "create-button",
26662
+ variant: "contained",
26663
+ color: "secondary",
26655
26664
  startIcon: jsx(AddIcon, {}),
26656
26665
  onClick: props.handleClick,
26657
- 'aria-controls': props.open ? 'create-menu' : undefined,
26658
- 'aria-haspopup': true,
26659
- 'aria-expanded': props.open ? 'true' : undefined,
26666
+ "aria-controls": props.open ? "create-menu" : undefined,
26667
+ "aria-haspopup": true,
26668
+ "aria-expanded": props.open ? "true" : undefined,
26660
26669
  endIcon: jsx(KeyboardArrowDownIcon, {}),
26661
- children: 'Crear',
26670
+ children: "Crear",
26662
26671
  ...props.buttonProps,
26663
26672
  } }));
26664
26673
  };
26665
26674
 
26666
26675
  const MenuItemWithLoading = (props) => {
26667
26676
  return (jsxs(MenuItem, { onClick: props.handleClick, sx: {
26668
- position: 'relative',
26669
- }, disabled: props.disabled || props.isLoading, children: [props.children, props.isLoading &&
26670
- jsx(Box, { position: 'absolute', width: 1, top: '50%', left: '50%', sx: {
26671
- transform: 'translate(-50%, -50%)',
26672
- }, px: 2, children: jsx(LinearProgress$1, {}) })] }));
26677
+ position: "relative",
26678
+ }, disabled: props.disabled || props.isLoading, children: [props.children, props.isLoading && (jsx(Box, { position: "absolute", width: 1, top: "50%", left: "50%", sx: {
26679
+ transform: "translate(-50%, -50%)",
26680
+ }, px: 2, children: jsx(LinearProgress$1, {}) }))] }));
26673
26681
  };
26674
26682
 
26675
26683
  const StyledMenu = styled$1((props) => (jsx(Menu, { elevation: 0, anchorOrigin: {
26676
- vertical: 'bottom',
26677
- horizontal: 'right',
26684
+ vertical: "bottom",
26685
+ horizontal: "right",
26678
26686
  }, transformOrigin: {
26679
- vertical: 'top',
26680
- horizontal: 'right',
26687
+ vertical: "top",
26688
+ horizontal: "right",
26681
26689
  }, ...props })))(({ theme }) => ({
26682
- '& .MuiPaper-root': {
26690
+ "& .MuiPaper-root": {
26683
26691
  borderRadius: 6,
26684
26692
  marginTop: theme.spacing(1),
26685
26693
  minWidth: 180,
26686
- color: 'rgb(55, 65, 81)',
26687
- boxShadow: 'rgb(255, 255, 255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px',
26688
- '& .MuiMenu-list': {
26689
- padding: '4px 0',
26694
+ color: "rgb(55, 65, 81)",
26695
+ backgroundColor: theme.palette.primary.lighter,
26696
+ boxShadow: "rgb(255, 255, 255) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px",
26697
+ "& .MuiMenu-list": {
26698
+ padding: "4px 0",
26690
26699
  },
26691
- '& .MuiMenuItem-root': {
26692
- '& .MuiSvgIcon-root': {
26693
- fontSize: 18,
26694
- color: theme.palette.text.secondary,
26695
- marginRight: theme.spacing(1.5),
26696
- },
26697
- '&:active': {
26698
- backgroundColor: alpha$1(theme.palette.primary.main, theme.palette.action.selectedOpacity),
26700
+ "& .MuiMenuItem-root": {
26701
+ borderRadius: 12,
26702
+ "&:hover": {
26703
+ backgroundColor: theme.palette.primary.main,
26704
+ color: "white",
26705
+ "& .MuiSvgIcon-root": {
26706
+ color: "white",
26707
+ },
26699
26708
  },
26700
26709
  },
26701
- ...theme.applyStyles('dark', {
26710
+ ...theme.applyStyles("dark", {
26702
26711
  color: theme.palette.grey[300],
26703
26712
  }),
26704
26713
  },
@@ -26708,7 +26717,7 @@ const CreateButtonWithMenuOptions = (props) => {
26708
26717
  const [anchorEl, setAnchorEl] = useState(null);
26709
26718
  const open = Boolean(anchorEl);
26710
26719
  const handleClick = () => {
26711
- setAnchorEl(document.getElementById('create-button'));
26720
+ setAnchorEl(document.getElementById("create-button"));
26712
26721
  };
26713
26722
  const handleClose = () => {
26714
26723
  setAnchorEl(null);
@@ -26722,20 +26731,22 @@ const CreateButtonWithMenuOptions = (props) => {
26722
26731
  };
26723
26732
  if (!props.permission)
26724
26733
  return null;
26725
- return (jsxs(Fragment, { children: [jsx(CreateButtonBase, { open: open, handleClick: handleClick }), jsxs(StyledMenu, { id: 'create-menu', MenuListProps: {
26726
- 'aria-labelledby': 'create-menu-button',
26727
- }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable && ([
26728
- {
26729
- title: 'CSV',
26730
- endpoint: props.pathname,
26731
- },
26732
- ...(props.csv_upload.extraOptions || [])
26733
- ].map((option, index) => {
26734
- return (jsx(MenuItem, { onClick: () => {
26735
- handleToggleOpen(option);
26736
- handleClose();
26737
- }, disableRipple: true, children: option.title }, index));
26738
- })), jsx(MenuItem, { onClick: () => {
26734
+ return (jsxs(Fragment, { children: [jsx(CreateButtonBase, { open: open, handleClick: handleClick }), jsxs(StyledMenu, { id: "create-menu", MenuListProps: {
26735
+ "aria-labelledby": "create-menu-button",
26736
+ }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable &&
26737
+ [
26738
+ {
26739
+ title: "CSV",
26740
+ endpoint: props.pathname,
26741
+ icon: AttachFileIcon,
26742
+ },
26743
+ ...(props.csv_upload.extraOptions || []),
26744
+ ].map((option, index) => {
26745
+ return (jsxs(MenuItem, { onClick: () => {
26746
+ handleToggleOpen(option);
26747
+ handleClose();
26748
+ }, disableRipple: true, children: [option.icon && (jsx(ListItemIcon, { children: jsx(AttachFileIcon, {}) })), option.title] }, index));
26749
+ }), jsx(MenuItem, { onClick: () => {
26739
26750
  props.navigate(`crear`);
26740
26751
  handleClose();
26741
26752
  }, disableRipple: true, children: "Manual" })] }), props.csv_upload?.enable && (jsx(CSVUpload, { open: csv.open, drawerToggle: handleToggleClose, data: csv.data }))] }));
@@ -26748,12 +26759,12 @@ const ButtonWithDrawer = (props) => {
26748
26759
  let setFunc = setInternalOpen;
26749
26760
  if (props.setOpen)
26750
26761
  setFunc = props.setOpen;
26751
- setFunc(prevState => !prevState);
26762
+ setFunc((prevState) => !prevState);
26752
26763
  };
26753
26764
  const configuracionBase = {
26754
- variant: 'contained',
26765
+ variant: "contained",
26755
26766
  fullWidth: true,
26756
- color: 'primary'
26767
+ color: "primary",
26757
26768
  };
26758
26769
  const renderButton = () => {
26759
26770
  if (props.slots.button)
@@ -26762,7 +26773,10 @@ const ButtonWithDrawer = (props) => {
26762
26773
  };
26763
26774
  return (jsxs(Fragment, { children: [renderButton(), jsx(MainDrawer, { open: open, drawerToggle: handleClick, title: props.slots.drawer.title, slots: {
26764
26775
  button: props.slots.drawer.button,
26765
- }, children: props.slots.drawer.content({ ...props.slotProps?.drawer?.content, handleClose: handleClick }) })] }));
26776
+ }, children: props.slots.drawer.content({
26777
+ ...props.slotProps?.drawer?.content,
26778
+ handleClose: handleClick,
26779
+ }) })] }));
26766
26780
  };
26767
26781
 
26768
26782
  const StatusBadge = (props) => {
@@ -26951,16 +26965,16 @@ const UncontrolledText = (props) => {
26951
26965
  const handleShowPassword = () => {
26952
26966
  setShowPassword(!showPassword);
26953
26967
  };
26954
- return (jsx(TextField, { variant: 'outlined', id: props.name, name: props.name, label: props.label, type: props.password ? showPassword ? 'text' : 'password' : 'text', helperText: props.textFieldProps?.helperText ? props.textFieldProps.helperText : ' ', slotProps: {
26968
+ return (jsx(TextField, { variant: "outlined", id: props.name, name: props.name, label: props.label, type: props.password ? (showPassword ? "text" : "password") : "text", helperText: props.textFieldProps?.helperText ? props.textFieldProps.helperText : " ", slotProps: {
26955
26969
  input: {
26956
26970
  // ícono de mostar u ocultar si es campo de contarseña
26957
- endAdornment: props.password && (jsx(InputAdornment$1, { position: 'end', children: jsx(IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: 'end', size: 'large', sx: {
26958
- color: 'secondary.darker',
26959
- '&:hover': {
26960
- color: 'secondary.main',
26961
- }
26962
- }, children: showPassword ? jsx(Visibility, {}) : jsx(VisibilityOff, {}) }) }))
26963
- }
26971
+ endAdornment: props.password && (jsx(InputAdornment$1, { position: "end", children: jsx(IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: "end", size: "large", sx: {
26972
+ color: "secondary.darker",
26973
+ "&:hover": {
26974
+ color: "secondary.main",
26975
+ },
26976
+ }, children: showPassword ? jsx(Visibility, {}) : jsx(VisibilityOff, {}) }) })),
26977
+ },
26964
26978
  }, ...props.textFieldProps }));
26965
26979
  };
26966
26980
 
@@ -27032,9 +27046,8 @@ const generateSchema = (columns, columnsFilter, id) => {
27032
27046
  };
27033
27047
 
27034
27048
  const FiltersPopper = (props) => {
27035
- // const params:any = useLoaderData();
27036
- // const id = params?.id;
27037
- const id = 1;
27049
+ const params = useLoaderData();
27050
+ const id = params?.id;
27038
27051
  const columns = useGridApiContext().current.getAllColumns();
27039
27052
  const [schema, defaultValues] = useMemo(() => generateSchema(columns, props.columnsFilter, id), [columns, id, props.columnsFilter]);
27040
27053
  const form = useForm({
@@ -27044,14 +27057,16 @@ const FiltersPopper = (props) => {
27044
27057
  const [dirty, setDirty] = useState(false);
27045
27058
  useEffect(() => {
27046
27059
  if (props.filters.filterModel.items) {
27047
- if (!every(props.filters.filterModel.items, function (_value, key) { return includes$1(props.protectFilters, key); })) {
27060
+ if (!every(props.filters.filterModel.items, function (_value, key) {
27061
+ return includes$1(props.protectFilters, key);
27062
+ })) {
27048
27063
  setDirty(true);
27049
27064
  }
27050
27065
  form.reset(merge$2({}, defaultValues, props.filters.filterModel.items));
27051
27066
  }
27052
27067
  }, [defaultValues, props.filters.filterModel.items, form, props.protectFilters]);
27053
27068
  const handleClose = (event) => {
27054
- if (props.menuRef.current && event?.target.tagName == 'BODY')
27069
+ if (props.menuRef.current && event?.target.tagName == "BODY")
27055
27070
  return;
27056
27071
  props.setOpen(false);
27057
27072
  };
@@ -27059,9 +27074,9 @@ const FiltersPopper = (props) => {
27059
27074
  setDirty(false);
27060
27075
  props.filters.setFilterModel(produce((draft) => {
27061
27076
  forEach$1(props.filters.filterModel.items, function (_value, key) {
27062
- if (['ordering', 'search'].concat(props.protectFilters || []).includes(key))
27077
+ if (["ordering", "search"].concat(props.protectFilters || []).includes(key))
27063
27078
  return;
27064
- delete draft['items'][key];
27079
+ delete draft["items"][key];
27065
27080
  });
27066
27081
  }));
27067
27082
  form.reset(defaultValues);
@@ -27069,75 +27084,82 @@ const FiltersPopper = (props) => {
27069
27084
  };
27070
27085
  const onSubmitHandler = (submitData) => {
27071
27086
  props.filters.setFilterModel(produce((draft) => {
27072
- draft['items'] = { ...draft['items'], ...submitData };
27087
+ draft["items"] = { ...draft["items"], ...submitData };
27073
27088
  }));
27074
27089
  handleClose();
27075
27090
  };
27076
27091
  const onError = (errors) => {
27077
27092
  console.log(errors);
27078
27093
  };
27079
- return (jsx(Box, { id: 'filtros', children: jsx(Popper, { id: 'filters-menu', open: props.open, anchorEl: props.menuRef.current, placement: "bottom-end", transition: true, sx: { zIndex: 1202 }, children: ({ TransitionProps }) => (jsx(Grow$1, { ...TransitionProps, timeout: 350, children: jsx(Paper, { elevation: 5, sx: { zIndex: 5 }, children: jsx(ClickAwayListener, { onClickAway: handleClose, children: jsxs(Grid, { size: 12, container: true, padding: 2, width: 350, maxWidth: '100%', children: [jsx(Grid, { size: 12, container: true, rowSpacing: 2, maxHeight: 300, overflow: 'auto', children: columns.map((column, index) => {
27094
+ return (jsx(Box, { id: "filtros", children: jsx(Popper, { id: "filters-menu", open: props.open, anchorEl: props.menuRef.current, placement: "bottom-end", transition: true, sx: { zIndex: 1202 }, children: ({ TransitionProps }) => (jsx(Grow$1, { ...TransitionProps, timeout: 350, children: jsx(Paper, { elevation: 5, sx: { zIndex: 5 }, children: jsx(ClickAwayListener, { onClickAway: handleClose, children: jsxs(Grid, { size: 12, container: true, padding: 2, width: 350, maxWidth: "100%", children: [jsx(Grid, { size: 12, container: true, rowSpacing: 2, maxHeight: 300, overflow: "auto", children: columns.map((column, index) => {
27080
27095
  if (column.input)
27081
- return (jsxs(Grid, { size: 12, container: true, direction: 'column', spacing: 0, children: [jsx(Grid, { size: 12, children: jsx(Typography$1, { fontWeight: 'bold', gutterBottom: true, children: column.filterName || column.headerName }) }), jsx(Grid, { size: 12, children: Children.map(column.input, (child) => {
27082
- let addedProps = { control: form.control };
27083
- if (column.type == 'number') {
27096
+ return (jsxs(Grid, { size: 12, container: true, direction: "column", spacing: 0, children: [jsx(Grid, { size: 12, children: jsx(Typography$1, { fontWeight: "bold", gutterBottom: true, children: column.filterName ||
27097
+ column.headerName }) }), jsx(Grid, { size: 12, children: Children.map(column.input, (child) => {
27098
+ let addedProps = {
27099
+ control: form.control,
27100
+ };
27101
+ if (column.type == "number") {
27084
27102
  addedProps = {
27085
27103
  ...addedProps,
27086
27104
  extraProps: {
27087
- ...child.props.extraProps,
27105
+ ...child.props
27106
+ .extraProps,
27088
27107
  getValue: form.getValues,
27089
27108
  setValue: form.setValue,
27090
- }
27109
+ },
27091
27110
  };
27092
27111
  }
27093
27112
  return cloneElement(child, {
27094
27113
  ...child.props,
27095
- ...addedProps
27114
+ ...addedProps,
27096
27115
  });
27097
27116
  }) })] }, index));
27098
27117
  return null;
27099
- }) }), jsx(Grid, { size: 12, py: 2, children: jsx(Divider, {}) }), jsxs(Grid, { size: 12, display: 'flex', justifyContent: 'space-evenly', children: [jsx(Button, { disabled: (!form.formState.isDirty || props.disableQuickSearch) && !dirty, startIcon: jsx(ClearIcon$1, {}), variant: 'outlined', onClick: handleClear, children: "Limpiar" }), jsx(Button, { loading: props.disableQuickSearch, disabled: !form.formState.isDirty, startIcon: jsx(FilterAltIcon, {}), variant: 'outlined', onClick: form.handleSubmit(onSubmitHandler, onError), children: "Aplicar" })] })] }) }) }) })) }) }));
27118
+ }) }), jsx(Grid, { size: 12, py: 2, children: jsx(Divider, {}) }), jsxs(Grid, { size: 12, display: "flex", justifyContent: "space-evenly", children: [jsx(Button, { disabled: (!form.formState.isDirty ||
27119
+ props.disableQuickSearch) &&
27120
+ !dirty, startIcon: jsx(ClearIcon$1, {}), variant: "outlined", onClick: handleClear, children: "Limpiar" }), jsx(Button, { loading: props.disableQuickSearch, disabled: !form.formState.isDirty, startIcon: jsx(FilterAltIcon, {}), variant: "outlined", onClick: form.handleSubmit(onSubmitHandler, onError), children: "Aplicar" })] })] }) }) }) })) }) }));
27100
27121
  };
27101
27122
 
27102
27123
  const FiltersButton = (props) => {
27103
27124
  const [open, setOpen] = useState(false);
27104
27125
  const menuRef = useRef(null);
27105
27126
  const handleClick = () => {
27106
- setOpen(prevState => !prevState);
27127
+ setOpen((prevState) => !prevState);
27107
27128
  };
27108
27129
  const filterCount = useMemo(() => {
27109
27130
  return countBy(Object.entries(props.filters.filterModel.items), function (filter) {
27110
27131
  const key = filter[0];
27111
27132
  const value = filter[1];
27112
- if (key == 'ordering' || key == 'search')
27133
+ if (key == "ordering" || key == "search")
27113
27134
  return;
27114
- if (props.protectFilters && findIndex(props.protectFilters, function (x) { return x == key; }) > -1)
27135
+ if (props.protectFilters &&
27136
+ findIndex(props.protectFilters, function (x) {
27137
+ return x == key;
27138
+ }) > -1)
27115
27139
  return;
27116
27140
  return (isNumber(value) && value > 0) || !isEmpty$1(value) || isBoolean(value);
27117
27141
  }).true;
27118
- }, [
27119
- props.filters.filterModel.items, props.protectFilters
27120
- ]);
27142
+ }, [props.filters.filterModel.items, props.protectFilters]);
27121
27143
  // ===== || ABRIR CON CTRL + Shift + F || ===== //
27122
27144
  const handleKeyPress = useCallback((event) => {
27123
- if (event.ctrlKey && event.shiftKey && event.key === 'F') {
27145
+ if (event.ctrlKey && event.shiftKey && event.key === "F") {
27124
27146
  event.preventDefault();
27125
27147
  setOpen(true);
27126
27148
  }
27127
- else if (event.key === 'Escape' && open) {
27149
+ else if (event.key === "Escape" && open) {
27128
27150
  setOpen(false);
27129
27151
  }
27130
27152
  }, [open]);
27131
27153
  useEffect(() => {
27132
- document.addEventListener('keydown', handleKeyPress);
27154
+ document.addEventListener("keydown", handleKeyPress);
27133
27155
  return () => {
27134
- document.removeEventListener('keydown', handleKeyPress);
27156
+ document.removeEventListener("keydown", handleKeyPress);
27135
27157
  };
27136
27158
  }, [handleKeyPress]);
27137
- return (jsxs(Fragment, { children: [jsx(Tooltip$1, { title: "Filtros", children: jsx(ToolbarButton, { ref: menuRef, id: "filters-menu-trigger", "aria-controls": "filters-menu", "aria-haspopup": "true", "aria-expanded": open ? 'true' : undefined, color: 'default', onClick: handleClick, onKeyDown: key => {
27138
- if (key.key == 'Escape')
27159
+ return (jsxs(Fragment, { children: [jsx(Tooltip$1, { title: "Filtros", children: jsx(ToolbarButton, { ref: menuRef, id: "filters-menu-trigger", "aria-controls": "filters-menu", "aria-haspopup": "true", "aria-expanded": open ? "true" : undefined, color: "default", onClick: handleClick, onKeyDown: (key) => {
27160
+ if (key.key == "Escape")
27139
27161
  setOpen(false);
27140
- }, className: 'my-icon-button', children: jsx(Badge, { badgeContent: filterCount, color: "primary", children: jsx(FilterListIcon, { fontSize: "small" }) }) }) }), jsx(FiltersPopper, { ...props, menuRef: menuRef, open: open, setOpen: setOpen })] }));
27162
+ }, className: "my-icon-button", children: jsx(Badge, { badgeContent: filterCount, color: "primary", children: jsx(FilterListIcon, { fontSize: "small" }) }) }) }), jsx(FiltersPopper, { ...props, menuRef: menuRef, open: open, setOpen: setOpen })] }));
27141
27163
  };
27142
27164
 
27143
27165
  const ExportCSV = (props) => {
@@ -27149,41 +27171,46 @@ const ExportCSV = (props) => {
27149
27171
  const handleClick = () => {
27150
27172
  const extraItems = { variant: props.slots?.variant };
27151
27173
  if (props.rowSelectionModel.ids.size > 0)
27152
- extraItems[`${props.slots?.column_key || 'id'}__in`] = Array.from(props.rowSelectionModel.ids).join(',');
27153
- const filters = merge$2({}, omit(props.filterModel, map(props.ignore?.filters, function (filter) { return `items.${filter}`; }) || []), { items: extraItems });
27174
+ extraItems[`${props.slots?.column_key || "id"}__in`] = Array.from(props.rowSelectionModel.ids).join(",");
27175
+ const filters = merge$2({}, omit(props.filterModel, map(props.ignore?.filters, function (filter) {
27176
+ return `items.${filter}`;
27177
+ }) || []), { items: extraItems });
27154
27178
  descargarCSV({
27155
- endpoint: endpoint, filterModel: filters, sortModel: props.sortModel, ignoreSort: props.ignore?.sort,
27156
- }).unwrap()
27179
+ endpoint: endpoint,
27180
+ filterModel: filters,
27181
+ sortModel: props.sortModel,
27182
+ ignoreSort: props.ignore?.sort,
27183
+ })
27184
+ .unwrap()
27157
27185
  .then((response) => {
27158
27186
  const file = document.createElement("a");
27159
27187
  file.href = response.file;
27160
27188
  file.download = response.filename;
27161
27189
  file.click();
27162
- notifications.show('CSV descargado!', { severity: 'success' });
27190
+ notifications.show("CSV descargado!", { severity: "success" });
27163
27191
  props.handleClick();
27164
27192
  })
27165
27193
  .catch((error) => {
27166
27194
  console.log(error);
27167
- notifications.show('Error al descargar CSV.', { severity: 'error' });
27195
+ notifications.show("Error al descargar CSV.", { severity: "error" });
27168
27196
  });
27169
27197
  };
27170
- return (jsx(MenuItemWithLoading, { handleClick: handleClick, isLoading: isLoading, disabled: props.disabledWithoutSelection && !props.rowSelectionModel.ids.size, children: props.slots?.title || 'Descargar como CSV' }, 'export-dg-csv'));
27198
+ return (jsx(MenuItemWithLoading, { handleClick: handleClick, isLoading: isLoading, disabled: props.disabledWithoutSelection && !props.rowSelectionModel.ids.size, children: props.slots?.title || "Descargar como CSV" }, "export-dg-csv"));
27171
27199
  };
27172
27200
 
27173
27201
  const ExportButton = (props) => {
27174
27202
  const [exportMenuOpen, setExportMenuOpen] = useState(false);
27175
27203
  const exportMenuTriggerRef = useRef(null);
27176
- return (jsxs(Fragment, { children: [jsx(Tooltip, { title: "Exportar", children: jsx(ToolbarButton, { ref: exportMenuTriggerRef, id: "export-menu-trigger", "aria-controls": "export-menu", "aria-haspopup": "true", "aria-expanded": exportMenuOpen ? 'true' : undefined, onClick: () => setExportMenuOpen(true), className: 'my-icon-button', children: jsx(FileDownloadIcon, { fontSize: "small" }) }) }), jsxs(Menu$1, { id: "export-menu", anchorEl: exportMenuTriggerRef.current, open: exportMenuOpen, onClose: () => setExportMenuOpen(false), anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, transformOrigin: { vertical: 'top', horizontal: 'left' }, slotProps: {
27204
+ return (jsxs(Fragment, { children: [jsx(Tooltip, { title: "Exportar", children: jsx(ToolbarButton, { ref: exportMenuTriggerRef, id: "export-menu-trigger", "aria-controls": "export-menu", "aria-haspopup": "true", "aria-expanded": exportMenuOpen ? "true" : undefined, onClick: () => setExportMenuOpen(true), className: "my-icon-button", children: jsx(FileDownloadIcon, { fontSize: "small" }) }) }), jsxs(Menu$1, { id: "export-menu", anchorEl: exportMenuTriggerRef.current, open: exportMenuOpen, onClose: () => setExportMenuOpen(false), anchorOrigin: { vertical: "bottom", horizontal: "left" }, transformOrigin: { vertical: "top", horizontal: "left" }, slotProps: {
27177
27205
  list: {
27178
- 'aria-labelledby': 'export-menu-trigger',
27206
+ "aria-labelledby": "export-menu-trigger",
27179
27207
  },
27180
- }, children: [!props.csvProps?.hide &&
27181
- jsx(ExportCSV, { handleClick: () => setExportMenuOpen(false), filterModel: props.filterModel, sortModel: props.sortModel, rowSelectionModel: props.rowSelectionModel, slots: {
27182
- endpoint: props.csvProps?.endpoint
27183
- } }), props.extraOptions?.map(item => {
27208
+ }, children: [!props.csvProps?.hide && (jsx(ExportCSV, { handleClick: () => setExportMenuOpen(false), filterModel: props.filterModel, sortModel: props.sortModel, rowSelectionModel: props.rowSelectionModel, slots: {
27209
+ endpoint: props.csvProps?.endpoint,
27210
+ } })), props.extraOptions?.map((item) => {
27184
27211
  const csvExport = item.props.csvExport;
27185
- const remainingProps = omit(item.props, 'csvExport');
27186
- return (item.element({
27212
+ const remainingProps = omit(item.props, "csvExport");
27213
+ return item.element({
27187
27214
  handleClick: () => setExportMenuOpen(false),
27188
27215
  filterModel: props.filterModel,
27189
27216
  sortModel: props.sortModel,
@@ -27192,7 +27219,7 @@ const ExportButton = (props) => {
27192
27219
  ...csvExport,
27193
27220
  },
27194
27221
  ...remainingProps,
27195
- }));
27222
+ });
27196
27223
  })] })] }));
27197
27224
  };
27198
27225
 
@@ -27200,34 +27227,33 @@ const ColumnsButton = () => {
27200
27227
  const apiRef = useGridApiContext();
27201
27228
  const allCols = apiRef.current.getAllColumns().length;
27202
27229
  const visibleCols = apiRef.current.getVisibleColumns().length;
27203
- return (jsx(Tooltip, { title: "Columnas", children: jsx(ColumnsPanelTrigger, { render: jsx(ToolbarButton, { className: 'my-icon-button' }), children: jsx(Badge, { color: 'primary', variant: 'dot', invisible: visibleCols >= allCols, children: jsx(ViewColumnIcon, { fontSize: "small" }) }) }) }));
27230
+ return (jsx(Tooltip, { title: "Columnas", children: jsx(ColumnsPanelTrigger, { render: jsx(ToolbarButton, { className: "my-icon-button" }), children: jsx(Badge, { color: "primary", variant: "dot", invisible: visibleCols >= allCols, children: jsx(ViewColumnIcon, { fontSize: "small" }) }) }) }));
27204
27231
  };
27205
27232
 
27206
27233
  const RefreshButton = (props) => {
27207
27234
  // ===== || EJECUTAR CON CTRL + Shift + R || ===== //
27208
27235
  const handleKeyPress = useCallback((event) => {
27209
- if (event.ctrlKey && event.shiftKey && event.key === 'R') {
27236
+ if (event.ctrlKey && event.shiftKey && event.key === "R") {
27210
27237
  event.preventDefault();
27211
27238
  if (props.refetch)
27212
27239
  props.refetch();
27213
27240
  }
27214
27241
  }, [props]);
27215
27242
  useEffect(() => {
27216
- document.addEventListener('keydown', handleKeyPress);
27243
+ document.addEventListener("keydown", handleKeyPress);
27217
27244
  return () => {
27218
- document.removeEventListener('keydown', handleKeyPress);
27245
+ document.removeEventListener("keydown", handleKeyPress);
27219
27246
  };
27220
27247
  }, [handleKeyPress]);
27221
- return (jsx(Tooltip$1, { title: 'Refrescar', children: jsx(ToolbarButton, { onClick: props.refetch, children: jsx(RefreshIcon, { fontSize: 'small' }) }) }));
27248
+ return (jsx(Tooltip$1, { title: "Refrescar", children: jsx(ToolbarButton, { onClick: props.refetch, children: jsx(RefreshIcon, { fontSize: "small" }) }) }));
27222
27249
  };
27223
27250
 
27224
27251
  const CustomToolbar = (props) => {
27225
27252
  const [expanded, setExpanded] = useState(true);
27226
27253
  return (jsx(Toolbar, { style: {
27227
- minHeight: expanded ? 'inherit' : '10px',
27228
- }, children: expanded ? (jsxs(Fragment, { children: [jsxs(Stack, { direction: 'row', width: 0.5, justifyContent: 'left', children: [!props.buttons?.refresh?.hide && jsx(RefreshButton, { refetch: props.buttons?.refresh?.refetch }), !(props.buttons?.refresh?.hide || props.buttons?.export?.hide) && jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), !props.buttons?.export?.hide && (jsx(ExportButton, { filterModel: props.filters.filterModel, sortModel: props.sortModel, rowSelectionModel: props.selection, ...props.buttons.export }))] }), jsx(Box, { width: 1, display: 'flex', justifyContent: 'center', alignItems: 'top', children: jsx(IconButton, { size: 'small', onClick: () => setExpanded(false), children: jsx(ExpandLessIcon, {}) }) }), jsxs(Stack, { direction: 'row', width: 0.5, justifyContent: 'right', children: [jsx(ColumnsButton, {}), !props.buttons.filters?.hide &&
27229
- jsxs(Fragment, { children: [jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsx(FiltersButton, { ...props })] }), jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsx(QuickSearch, { disableQuickSearch: props.disableQuickSearch, filters: props.filters }), props.extraButtons &&
27230
- props.extraButtons.map((button, index) => (jsxs(Box, { display: 'flex', children: [jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsx(Tooltip$1, { title: button.label, children: jsx(ToolbarButton, { onClick: () => button.onClick(), className: 'my-icon-button', ...button.buttonProps, children: jsx(button.icon, { fontSize: "small" }) }) })] }, `toolbar-button-${index}`))), jsx(SelectedRowsButton, { selection: props.selection, extraActions: props.extraActions })] })] })) : (jsx(Box, { width: 1, display: 'flex', justifyContent: 'center', alignItems: 'center', children: jsx(IconButton, { onClick: () => setExpanded(true), children: jsx(ExpandMoreIcon, {}) }) })) }));
27254
+ minHeight: expanded ? "inherit" : "10px",
27255
+ }, children: expanded ? (jsxs(Fragment, { children: [jsxs(Stack, { direction: "row", width: 0.5, justifyContent: "left", children: [!props.buttons?.refresh?.hide && (jsx(RefreshButton, { refetch: props.buttons?.refresh?.refetch })), !(props.buttons?.refresh?.hide || props.buttons?.export?.hide) && (jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } })), !props.buttons?.export?.hide && (jsx(ExportButton, { filterModel: props.filters.filterModel, sortModel: props.sortModel, rowSelectionModel: props.selection, ...props.buttons.export }))] }), jsx(Box, { width: 1, display: "flex", justifyContent: "center", alignItems: "top", children: jsx(IconButton, { size: "small", onClick: () => setExpanded(false), children: jsx(ExpandLessIcon, {}) }) }), jsxs(Stack, { direction: "row", width: 0.5, justifyContent: "right", children: [jsx(ColumnsButton, {}), !props.buttons.filters?.hide && (jsxs(Fragment, { children: [jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsx(FiltersButton, { ...props })] })), jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsx(QuickSearch, { disableQuickSearch: props.disableQuickSearch, filters: props.filters }), props.extraButtons &&
27256
+ props.extraButtons.map((button, index) => (jsxs(Box, { display: "flex", children: [jsx(Divider$1, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsx(Tooltip$1, { title: button.label, children: jsx(ToolbarButton, { onClick: () => button.onClick(), className: "my-icon-button", ...button.buttonProps, children: jsx(button.icon, { fontSize: "small" }) }) })] }, `toolbar-button-${index}`))), jsx(SelectedRowsButton, { selection: props.selection, extraActions: props.extraActions })] })] })) : (jsx(Box, { width: 1, display: "flex", justifyContent: "center", alignItems: "center", children: jsx(IconButton, { onClick: () => setExpanded(true), children: jsx(ExpandMoreIcon, {}) }) })) }));
27231
27257
  };
27232
27258
 
27233
27259
  const StyledGridOverlay = styled$1('div')(({ theme }) => ({
@@ -27265,20 +27291,22 @@ function CustomPagination() {
27265
27291
  }
27266
27292
 
27267
27293
  const DraggableRow = (params) => {
27268
- const { attributes, listeners, setNodeRef, transform, transition, } = useSortable({ id: params.rowId.toString() });
27294
+ const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
27295
+ id: params.rowId.toString(),
27296
+ });
27269
27297
  const style = {
27270
27298
  transform: CSS.Transform.toString(transform),
27271
- transition
27299
+ transition,
27272
27300
  };
27273
- return (jsxs(Box, { display: 'flex', ref: setNodeRef, style: style, children: [jsx(Box, { ...attributes, ...listeners, sx: {
27274
- width: '20px',
27301
+ return (jsxs(Box, { display: "flex", ref: setNodeRef, style: style, children: [jsx(Box, { ...attributes, ...listeners, sx: {
27302
+ width: "20px",
27275
27303
  height: params.rowHeight,
27276
- background: 'repeating-linear-gradient( 45deg, #e0e0e0, #e0e0e0 5px, transparent 5px, transparent 10px)',
27277
- borderTop: '1px solid rgba(224, 224, 224, 1)',
27278
- cursor: 'grab',
27279
- '&:active': {
27280
- cursor: 'grabbing',
27281
- }
27304
+ background: "repeating-linear-gradient( 45deg, #e0e0e0, #e0e0e0 5px, transparent 5px, transparent 10px)",
27305
+ borderTop: "1px solid rgba(224, 224, 224, 1)",
27306
+ cursor: "grab",
27307
+ "&:active": {
27308
+ cursor: "grabbing",
27309
+ },
27282
27310
  } }), jsx(GridRow, { ...params })] }));
27283
27311
  };
27284
27312
 
@@ -27295,38 +27323,41 @@ const EditGridWrapper = (props) => {
27295
27323
  const handleClickEdit = () => {
27296
27324
  if (edit)
27297
27325
  handleCancelarEdit();
27298
- setEdit(prevState => !prevState);
27326
+ setEdit((prevState) => !prevState);
27299
27327
  };
27300
27328
  const processRowUpdate = async (newRow, originalRow) => {
27301
27329
  const original_data = jsonForm({ submitData: originalRow });
27302
- const data = jsonForm({ submitData: newRow, ...(props.parser ? { props: props.parser } : []) });
27330
+ const data = jsonForm({
27331
+ submitData: newRow,
27332
+ ...(props.parser ? { props: props.parser } : []),
27333
+ });
27303
27334
  if (isEqual$1(data, original_data))
27304
27335
  return originalRow;
27305
27336
  try {
27306
27337
  const result = await editMutation(data).unwrap();
27307
- setErrors(prevState => produce(prevState, draft => {
27338
+ setErrors((prevState) => produce(prevState, (draft) => {
27308
27339
  delete draft[newRow.id];
27309
27340
  }));
27310
27341
  if (props?.postAction)
27311
27342
  props.postAction(result);
27312
- notifications.show(`Información actualizada!`, { severity: 'success' });
27343
+ notifications.show(`Información actualizada!`, { severity: "success" });
27313
27344
  return result.list;
27314
27345
  }
27315
27346
  catch (e) {
27316
- setErrors(prevState => produce(prevState, draft => {
27317
- draft[newRow.id] = get(e, 'data');
27347
+ setErrors((prevState) => produce(prevState, (draft) => {
27348
+ draft[newRow.id] = get(e, "data");
27318
27349
  }));
27319
- notifications.show('Error actualizando información!', { severity: 'error' });
27350
+ notifications.show("Error actualizando información!", { severity: "error" });
27320
27351
  }
27321
27352
  };
27322
27353
  // ===== || KEYDOWN || ===== //
27323
27354
  const handleKeyPress = useCallback((event) => {
27324
27355
  if (props.permission) {
27325
- if (event.ctrlKey && event.shiftKey && event.key === 'E') {
27356
+ if (event.ctrlKey && event.shiftKey && event.key === "E") {
27326
27357
  event.preventDefault();
27327
27358
  setEdit(true);
27328
27359
  }
27329
- else if (event.key === 'Escape' && event.shiftKey && edit) {
27360
+ else if (event.key === "Escape" && event.shiftKey && edit) {
27330
27361
  event.preventDefault();
27331
27362
  handleCancelarEdit();
27332
27363
  setEdit(false);
@@ -27334,9 +27365,9 @@ const EditGridWrapper = (props) => {
27334
27365
  }
27335
27366
  }, [edit, props.permission]);
27336
27367
  useEffect(() => {
27337
- document.addEventListener('keydown', handleKeyPress);
27368
+ document.addEventListener("keydown", handleKeyPress);
27338
27369
  return () => {
27339
- document.removeEventListener('keydown', handleKeyPress);
27370
+ document.removeEventListener("keydown", handleKeyPress);
27340
27371
  };
27341
27372
  }, [handleKeyPress]);
27342
27373
  // ========================= || DRAG N DROP || ========================= //
@@ -27353,7 +27384,10 @@ const EditGridWrapper = (props) => {
27353
27384
  if (over) {
27354
27385
  const activeRow = rows.find((row) => row.id == active.id);
27355
27386
  const overRow = rows.find((row) => row.id == over.id);
27356
- const mutationArgs = { ...props.dnd?.args, id: activeRow.id };
27387
+ const mutationArgs = {
27388
+ ...props.dnd?.args,
27389
+ id: activeRow.id,
27390
+ };
27357
27391
  mutationArgs[field] = get(overRow, field);
27358
27392
  editMutation(mutationArgs);
27359
27393
  }
@@ -27371,33 +27405,37 @@ const EditGridWrapper = (props) => {
27371
27405
  slotProps: {
27372
27406
  toolbar: {
27373
27407
  extraButtons: [
27374
- ...(props.permission && !props.disabled ? [{
27375
- label: edit ? 'Cancelar' : 'Editar',
27376
- icon: edit ? CancelIcon : EditIcon,
27377
- onClick: handleClickEdit,
27378
- }] : []),
27379
- ]
27380
- }
27408
+ ...(props.permission && !props.disabled
27409
+ ? [
27410
+ {
27411
+ label: edit ? "Cancelar" : "Editar",
27412
+ icon: edit ? CancelIcon : EditIcon,
27413
+ onClick: handleClickEdit,
27414
+ },
27415
+ ]
27416
+ : []),
27417
+ ],
27418
+ },
27381
27419
  },
27382
27420
  onRowEditStart: ({ reason, row }, event) => {
27383
- if (!get(row, `obj_permissions.edit`) || (reason === GridRowEditStartReasons.cellDoubleClick && !edit)) {
27421
+ if (!get(row, `obj_permissions.edit`) ||
27422
+ (reason === GridRowEditStartReasons.cellDoubleClick && !edit)) {
27384
27423
  event.defaultMuiPrevented = true;
27385
27424
  }
27386
27425
  },
27387
27426
  // edit
27388
27427
  checkboxSelection: !edit,
27389
27428
  ...(edit ? { onRowClick: undefined } : []),
27390
- editMode: 'row',
27429
+ editMode: "row",
27391
27430
  rowModesModel: rowModesModel,
27392
27431
  onRowModesModelChange: setRowModesModel,
27393
27432
  processRowUpdate: processRowUpdate,
27394
27433
  loadingParams: [loadingMutation],
27395
27434
  }, props.dataGridProps);
27396
- const renderEditGrid = () => (jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, modifiers: [
27397
- restrictToVerticalAxis,
27398
- restrictToWindowEdges,
27399
- restrictToParentElement
27400
- ], autoScroll: false, children: jsx(SortableContext, { items: rows ? rows.map((row) => row.id.toString()) : [], strategy: verticalListSortingStrategy, children: props.renderFunction({ ...props.renderFunctionProps, dataGridProps: editGridProps }) }) }));
27435
+ const renderEditGrid = () => (jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, modifiers: [restrictToVerticalAxis, restrictToWindowEdges, restrictToParentElement], autoScroll: false, children: jsx(SortableContext, { items: rows ? rows.map((row) => row.id.toString()) : [], strategy: verticalListSortingStrategy, children: props.renderFunction({
27436
+ ...props.renderFunctionProps,
27437
+ dataGridProps: editGridProps,
27438
+ }) }) }));
27401
27439
  return renderEditGrid();
27402
27440
  };
27403
27441
 
@@ -27418,43 +27456,47 @@ const editColumn = (props) => {
27418
27456
  [id]: { mode: GridRowModes.View, ignoreModifications: true },
27419
27457
  });
27420
27458
  };
27421
- return [{
27422
- field: 'edit',
27423
- headerName: 'Editar',
27424
- type: 'actions',
27459
+ return [
27460
+ {
27461
+ field: "edit",
27462
+ headerName: "Editar",
27463
+ type: "actions",
27425
27464
  width: 80,
27426
- cellClassName: 'actions',
27465
+ cellClassName: "actions",
27427
27466
  getActions: ({ id, row }) => {
27428
- const canEdit = get$1(row, 'obj_permissions.edit');
27467
+ const canEdit = get$1(row, "obj_permissions.edit");
27429
27468
  const isInEditMode = props.rowModesModel[id]?.mode === GridRowModes.Edit;
27430
27469
  if (isInEditMode) {
27431
27470
  return [
27432
- jsx(GridActionsCellItem, { icon: jsx(SaveIcon, {}), label: 'Guardar', color: 'primary', onClick: handleSaveClick(id) }, 'save'),
27433
- jsx(GridActionsCellItem, { icon: jsx(CancelIcon, {}), label: 'Cancelar', className: 'textPrimary', onClick: handleCancelClick(id), color: 'inherit' }, 'cancel'),
27471
+ jsx(GridActionsCellItem, { icon: jsx(SaveIcon, {}), label: "Guardar", color: "primary", onClick: handleSaveClick(id) }, "save"),
27472
+ jsx(GridActionsCellItem, { icon: jsx(CancelIcon, {}), label: "Cancelar", className: "textPrimary", onClick: handleCancelClick(id), color: "inherit" }, "cancel"),
27434
27473
  ];
27435
27474
  }
27436
27475
  return [
27437
- jsx(GridActionsCellItem, { icon: jsx(EditIcon, { sx: { color: canEdit ? 'black' : 'inherit' } }), label: 'Editar', className: 'textPrimary', onClick: handleEditClick(id), disabled: !canEdit }, 'edit'),
27476
+ jsx(GridActionsCellItem, { icon: jsx(EditIcon, { sx: { color: canEdit ? "black" : "inherit" } }), label: "Editar", className: "textPrimary", onClick: handleEditClick(id), disabled: !canEdit }, "edit"),
27438
27477
  ];
27439
- }
27440
- }];
27478
+ },
27479
+ },
27480
+ ];
27441
27481
  };
27442
27482
 
27443
27483
  const deleteColumn = (props) => {
27444
27484
  if (!props.displayDelete)
27445
27485
  return [];
27446
- return [{
27447
- field: 'delete',
27448
- headerName: 'Eliminar',
27486
+ return [
27487
+ {
27488
+ field: "delete",
27489
+ headerName: "Eliminar",
27449
27490
  width: 80,
27450
- cellClassName: 'actions',
27491
+ cellClassName: "actions",
27451
27492
  renderCell: ({ id, row }) => {
27452
27493
  const canDelete = get$1(row, `obj_permissions.delete`, false);
27453
27494
  return [
27454
- jsx(GridActionsCellItem, { icon: jsx(DeleteIcon, {}), label: 'Eliminar', className: 'textPrimary', onClick: props.handleOpen(id), color: 'primary', disabled: !canDelete }, 'delete')
27495
+ jsx(GridActionsCellItem, { icon: jsx(DeleteIcon, {}), label: "Eliminar", className: "textPrimary", onClick: props.handleOpen(id), color: "primary", disabled: !canDelete }, "delete"),
27455
27496
  ];
27456
- }
27457
- }];
27497
+ },
27498
+ },
27499
+ ];
27458
27500
  };
27459
27501
 
27460
27502
  const DeleteGridWrapper = (props) => {
@@ -27468,25 +27510,25 @@ const DeleteGridWrapper = (props) => {
27468
27510
  setDeleteRowId(undefined);
27469
27511
  };
27470
27512
  const handleClickDelete = () => {
27471
- setDeleting(prevState => !prevState);
27513
+ setDeleting((prevState) => !prevState);
27472
27514
  };
27473
27515
  // ===== || KEYDOWN || ===== //
27474
27516
  const handleKeyPress = useCallback((event) => {
27475
27517
  if (props.permission) {
27476
- if (event.ctrlKey && event.shiftKey && event.key === 'D') {
27518
+ if (event.ctrlKey && event.shiftKey && event.key === "D") {
27477
27519
  event.preventDefault();
27478
27520
  setDeleting(true);
27479
27521
  }
27480
- else if (event.key === 'Escape' && event.shiftKey && deleting) {
27522
+ else if (event.key === "Escape" && event.shiftKey && deleting) {
27481
27523
  event.preventDefault();
27482
27524
  setDeleting(false);
27483
27525
  }
27484
27526
  }
27485
27527
  }, [props.permission, deleting]);
27486
27528
  useEffect(() => {
27487
- document.addEventListener('keydown', handleKeyPress);
27529
+ document.addEventListener("keydown", handleKeyPress);
27488
27530
  return () => {
27489
- document.removeEventListener('keydown', handleKeyPress);
27531
+ document.removeEventListener("keydown", handleKeyPress);
27490
27532
  };
27491
27533
  }, [handleKeyPress]);
27492
27534
  // ===== || GRID PROPS || ===== //
@@ -27500,20 +27542,23 @@ const DeleteGridWrapper = (props) => {
27500
27542
  slotProps: {
27501
27543
  toolbar: {
27502
27544
  extraButtons: [
27503
- ...(props.permission ? [{
27504
- label: deleting ? 'Cancelar' : 'Eliminar',
27505
- icon: deleting ? CancelIcon : DeleteIcon,
27506
- onClick: handleClickDelete,
27507
- }] : [])
27508
- ]
27509
- }
27545
+ ...(props.permission
27546
+ ? [
27547
+ {
27548
+ label: deleting ? "Cancelar" : "Eliminar",
27549
+ icon: deleting ? CancelIcon : DeleteIcon,
27550
+ onClick: handleClickDelete,
27551
+ },
27552
+ ]
27553
+ : []),
27554
+ ],
27555
+ },
27510
27556
  },
27511
27557
  // edit
27512
27558
  checkboxSelection: !deleting,
27513
27559
  ...(deleting ? { onRowClick: undefined } : []),
27514
27560
  }, props.dataGridProps);
27515
- const renderDeleteGrid = () => (jsxs(Fragment, { children: [props.mutation &&
27516
- jsx(DeleteConfirmationDialog, { mutation: props.mutation, open: !!deleteRowId, handleClose: handleClose, id: deleteRowId, disableNavBack: true }), props.renderFunction({ ...props.renderFunctionProps, dataGridProps: deleteGridProps })] }));
27561
+ const renderDeleteGrid = () => (jsxs(Fragment, { children: [props.mutation && (jsx(DeleteConfirmationDialog, { mutation: props.mutation, open: !!deleteRowId, handleClose: handleClose, id: deleteRowId, disableNavBack: true })), props.renderFunction({ ...props.renderFunctionProps, dataGridProps: deleteGridProps })] }));
27517
27562
  return renderDeleteGrid();
27518
27563
  };
27519
27564
 
@@ -27522,7 +27567,7 @@ const CreateGridWrapper = (props) => {
27522
27567
  const [anchorEl, setAnchorEl] = useState(null);
27523
27568
  const open = Boolean(anchorEl);
27524
27569
  const handleClick = () => {
27525
- setAnchorEl(document.getElementById('create-button'));
27570
+ setAnchorEl(document.getElementById("create-button"));
27526
27571
  };
27527
27572
  const handleClose = () => {
27528
27573
  setAnchorEl(null);
@@ -27537,51 +27582,56 @@ const CreateGridWrapper = (props) => {
27537
27582
  // ===== || KEYDOWN || ===== //
27538
27583
  const handleKeyPress = useCallback((event) => {
27539
27584
  if (props.permission) {
27540
- if (event.ctrlKey && event.key === 'e') {
27585
+ if (event.ctrlKey && event.key === "e") {
27541
27586
  event.preventDefault();
27542
27587
  handleClick();
27543
27588
  }
27544
27589
  }
27545
27590
  }, [props.permission]);
27546
27591
  useEffect(() => {
27547
- document.addEventListener('keydown', handleKeyPress);
27592
+ document.addEventListener("keydown", handleKeyPress);
27548
27593
  return () => {
27549
- document.removeEventListener('keydown', handleKeyPress);
27594
+ document.removeEventListener("keydown", handleKeyPress);
27550
27595
  };
27551
27596
  }, [handleKeyPress]);
27552
27597
  const createGridProps = mergeSettings({
27553
27598
  slotProps: {
27554
27599
  toolbar: {
27555
27600
  extraButtons: [
27556
- ...(props.permission ? [{
27557
- label: 'Crear',
27558
- icon: AddIcon,
27559
- onClick: handleClick,
27560
- buttonProps: {
27561
- id: 'create-button',
27562
- }
27563
- }] : []),
27564
- ]
27565
- }
27601
+ ...(props.permission
27602
+ ? [
27603
+ {
27604
+ label: "Crear",
27605
+ icon: AddIcon,
27606
+ onClick: handleClick,
27607
+ buttonProps: {
27608
+ id: "create-button",
27609
+ },
27610
+ },
27611
+ ]
27612
+ : []),
27613
+ ],
27614
+ },
27566
27615
  },
27567
27616
  }, props.dataGridProps);
27568
- return (jsxs(Fragment, { children: [jsxs(StyledMenu, { id: 'create-menu', MenuListProps: {
27569
- 'aria-labelledby': 'create-menu-button',
27570
- }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable && ([
27571
- {
27572
- title: 'CSV',
27573
- endpoint: props.pathname,
27574
- },
27575
- ...(props.csv_upload.extraOptions || [])
27576
- ].map((option, index) => {
27577
- return (jsx(MenuItem, { onClick: () => {
27578
- handleToggleOpen(option);
27579
- handleClose();
27580
- }, disableRipple: true, children: option.title }, index));
27581
- })), jsx(MenuItem, { onClick: () => {
27617
+ return (jsxs(Fragment, { children: [jsxs(StyledMenu, { id: "create-menu", MenuListProps: {
27618
+ "aria-labelledby": "create-menu-button",
27619
+ }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable &&
27620
+ [
27621
+ {
27622
+ title: "CSV",
27623
+ endpoint: props.pathname,
27624
+ },
27625
+ ...(props.csv_upload.extraOptions || []),
27626
+ ].map((option, index) => {
27627
+ return (jsxs(MenuItem, { onClick: () => {
27628
+ handleToggleOpen(option);
27629
+ handleClose();
27630
+ }, disableRipple: true, children: [jsx(ListItemIcon, { children: jsx(AttachFileIcon, { sx: { transform: "rotate(90deg)" } }) }), option.title] }, index));
27631
+ }), jsxs(MenuItem, { onClick: () => {
27582
27632
  navigate(props.navigation ? `${props.navigation}crear` : `crear`);
27583
27633
  handleClose();
27584
- }, disableRipple: true, children: "Manual" })] }), props.csv_upload?.enable && (jsx(CSVUpload, { open: csv.open, drawerToggle: handleToggleClose, data: csv.data })), props.renderFunction({ dataGridProps: createGridProps })] }));
27634
+ }, disableRipple: true, children: [jsx(ListItemIcon, { children: jsx(DrawIcon, {}) }), "Manual"] })] }), props.csv_upload?.enable && (jsx(CSVUpload, { open: csv.open, drawerToggle: handleToggleClose, data: csv.data })), props.renderFunction({ dataGridProps: createGridProps })] }));
27585
27635
  };
27586
27636
 
27587
27637
  const Base = (props) => {
@@ -27838,13 +27888,13 @@ const ActiveCell = ({ value }) => {
27838
27888
  }, [value]);
27839
27889
  const renderIcon = useCallback(() => {
27840
27890
  const iconProps = {
27841
- size: 'small',
27891
+ size: "small",
27842
27892
  sx: {
27843
27893
  color: color[700],
27844
- fontSize: '30px',
27894
+ fontSize: "30px",
27845
27895
  stroke: color[700],
27846
- strokeWidth: 1.5
27847
- }
27896
+ strokeWidth: 1.5,
27897
+ },
27848
27898
  };
27849
27899
  switch (value) {
27850
27900
  case true:
@@ -27855,7 +27905,7 @@ const ActiveCell = ({ value }) => {
27855
27905
  return jsx(ErrorOutlineIcon, { ...iconProps });
27856
27906
  }
27857
27907
  }, [color, value]);
27858
- return (jsx(Box, { px: 2, py: 0.5, display: 'flex', alignItems: 'center', justifyContent: 'center', borderRadius: 2, borderColor: color[900], children: renderIcon() }));
27908
+ return (jsx(Box, { px: 2, py: 0.5, display: "flex", alignItems: "center", justifyContent: "center", borderRadius: 2, borderColor: color[900], children: renderIcon() }));
27859
27909
  };
27860
27910
 
27861
27911
  const MyGridEditSingleSelect = (props) => {
@@ -28017,34 +28067,38 @@ const Field = (props) => {
28017
28067
  return true;
28018
28068
  }, [props.data, props.dependantOn]);
28019
28069
  const renderField = useCallback(() => {
28020
- if (!props.pageType || props.pageType == 'list')
28070
+ if (!props.pageType || props.pageType == "list")
28021
28071
  return;
28022
- if (props.pageType == 'detail')
28072
+ if (props.pageType == "detail")
28023
28073
  return jsx(DetailField, { ...props });
28024
28074
  else
28025
28075
  return jsx(EditField, { ...props });
28026
28076
  }, [props]);
28027
28077
  if (!show)
28028
28078
  return;
28029
- return (jsxs(Grid, { rowSpacing: 1, container: true, size: "grow", direction: 'column', ...props.gridProps, children: [jsx(Grid, { size: 12, children: jsx(Typography$1, { variant: 'body1', fontWeight: 'bold', children: props.label }) }), jsx(Grid, { size: 12, children: renderField() })] }));
28079
+ return (jsxs(Grid, { rowSpacing: 1, container: true, size: "grow", direction: "column", ...props.gridProps, children: [jsx(Grid, { size: 12, children: jsx(Typography$1, { variant: "body1", fontWeight: "bold", children: props.label }) }), jsx(Grid, { size: 12, children: renderField() })] }));
28030
28080
  };
28031
28081
 
28032
28082
  const EditToolbar = (props) => {
28033
- return (jsxs(Toolbar, { children: [props.pageType != 'detail' &&
28034
- jsx(Tooltip$1, { title: 'Crear', children: jsx(ToolbarButton, { onClick: props.handleCreate, children: jsx(AddIcon, { fontSize: "small" }) }) }), !!props.selected &&
28035
- jsx(Tooltip$1, { title: 'Borrar', children: jsx(ToolbarButton, { onClick: props.handleDelete, children: jsx(DeleteIcon, { fontSize: "small" }) }) })] }));
28083
+ return (jsxs(Toolbar, { children: [props.pageType != "detail" && (jsx(Tooltip$1, { title: "Crear", children: jsx(ToolbarButton, { onClick: props.handleCreate, children: jsx(AddIcon, { fontSize: "small" }) }) })), !!props.selected && (jsx(Tooltip$1, { title: "Borrar", children: jsx(ToolbarButton, { onClick: props.handleDelete, children: jsx(DeleteIcon, { fontSize: "small" }) }) }))] }));
28036
28084
  };
28037
28085
  const FieldArrayField = (props) => {
28038
28086
  const { fields, remove } = useFieldArray({
28039
28087
  control: props.form.control,
28040
28088
  name: props.name,
28041
- keyName: '_id'
28089
+ keyName: "_id",
28042
28090
  });
28043
- const [drawer, setDrawer] = useState({ open: false, data: undefined });
28044
- const [rowSelectionModel, setRowSelectionModel] = useState({ type: 'include', ids: new Set() });
28045
- const getIndex = useCallback((id) => (findIndex(fields, function (field) {
28091
+ const [drawer, setDrawer] = useState({
28092
+ open: false,
28093
+ data: undefined,
28094
+ });
28095
+ const [rowSelectionModel, setRowSelectionModel] = useState({
28096
+ type: "include",
28097
+ ids: new Set(),
28098
+ });
28099
+ const getIndex = useCallback((id) => findIndex(fields, function (field) {
28046
28100
  return field._id == id;
28047
- })), [fields]);
28101
+ }), [fields]);
28048
28102
  const handleCreate = () => {
28049
28103
  setDrawer({ open: true, data: undefined });
28050
28104
  };
@@ -28067,7 +28121,7 @@ const FieldArrayField = (props) => {
28067
28121
  const handleRowClick = (e) => {
28068
28122
  setDrawer({ open: true, data: e.row });
28069
28123
  };
28070
- return (jsxs(Fragment, { children: [jsxs(Grid, { rowSpacing: 1, container: true, size: "grow", direction: 'column', ...props.gridProps, children: [jsx(Grid, { size: 12, children: jsx(Typography$1, { variant: 'body1', fontWeight: 'bold', children: props.label }) }), jsx(Grid, { size: 12, children: jsx(DataGrid, { ...props.dataGridProps, rows: fields, checkboxSelection: props.pageType != 'detail', onRowSelectionModelChange: (newRowSelectionModel) => {
28124
+ return (jsxs(Fragment, { children: [jsxs(Grid, { rowSpacing: 1, container: true, size: "grow", direction: "column", ...props.gridProps, children: [jsx(Grid, { size: 12, children: jsx(Typography$1, { variant: "body1", fontWeight: "bold", children: props.label }) }), jsx(Grid, { size: 12, children: jsx(DataGrid, { ...props.dataGridProps, rows: fields, checkboxSelection: props.pageType != "detail", onRowSelectionModelChange: (newRowSelectionModel) => {
28071
28125
  setRowSelectionModel(newRowSelectionModel);
28072
28126
  }, showToolbar: true, slots: { toolbar: EditToolbar }, slotProps: {
28073
28127
  toolbar: {
@@ -28076,7 +28130,7 @@ const FieldArrayField = (props) => {
28076
28130
  handleDelete: handleDelete,
28077
28131
  pageType: props.pageType,
28078
28132
  },
28079
- }, disableRowSelectionOnClick: true, onRowClick: handleRowClick, getRowId: (row) => row._id }) })] }), jsx(MainDrawer, { open: drawer.open, drawerToggle: closeDrawer, title: 'Cargo Adicional', children: jsx(Grid, { size: 12, container: true, children: props.fields.map((field) => {
28133
+ }, disableRowSelectionOnClick: true, onRowClick: handleRowClick, getRowId: (row) => row._id }) })] }), jsx(MainDrawer, { open: drawer.open, drawerToggle: closeDrawer, title: "Cargo Adicional", children: jsx(Grid, { size: 12, container: true, children: props.fields.map((field) => {
28080
28134
  const fieldName = `${props.name}.${getIndex(drawer.data?._id)}.${field.name}`;
28081
28135
  return (jsx(Field, { ...field, form: props.form, name: fieldName, fieldData: get(drawer.data, field.name) }, fieldName));
28082
28136
  }) }) })] }));
@@ -28174,10 +28228,10 @@ const Logo = () => {
28174
28228
  // ==============================|| PESTAÑAS ||============================== //
28175
28229
  /**
28176
28230
  * Pestañas customizables
28177
- **/
28231
+ **/
28178
28232
  const Tabs = (props) => {
28179
28233
  // valor inicial
28180
- const [value, setValue] = useState(props.initialValue || '1');
28234
+ const [value, setValue] = useState(props.initialValue || "1");
28181
28235
  // manejar cambio de pestaña
28182
28236
  const handleChange = (_event, newValue) => {
28183
28237
  setValue(newValue);
@@ -28185,29 +28239,33 @@ const Tabs = (props) => {
28185
28239
  };
28186
28240
  // hacer el render del contenido de la pestaña seleccionada
28187
28241
  const renderTabs = () => {
28188
- return (props.tabs.map((option) => {
28242
+ return props.tabs.map((option) => {
28189
28243
  const renderContent = () => {
28190
28244
  return React__default.Children.map(option.children, (child) => {
28191
28245
  const cloneProps = { ...child.props };
28192
- set$1(cloneProps, 'type', props.type);
28193
- set$1(cloneProps, 'slotProps.tab', option.value);
28246
+ set$1(cloneProps, "type", props.type);
28247
+ set$1(cloneProps, "slotProps.tab", option.value);
28194
28248
  return React__default.cloneElement(child, cloneProps);
28195
28249
  });
28196
28250
  };
28197
28251
  return (jsx(TabPanel, { value: option.value, sx: {
28198
- pt: 2, pb: 0, px: 0, width: 1, height: 1,
28252
+ pt: 2,
28253
+ pb: 0,
28254
+ px: 0,
28255
+ width: 1,
28256
+ height: 1,
28199
28257
  }, children: renderContent() }, option.value));
28200
- }));
28258
+ });
28201
28259
  };
28202
28260
  return (
28203
28261
  // contexto
28204
- jsx(Box, { width: 1, height: 'calc(100vh - 175px)', children: jsxs(TabContext, { value: value, children: [jsx(TabList, { onChange: handleChange, "aria-label": "create-work-order-tabs", variant: 'scrollable', scrollButtons: 'auto', sx: {
28205
- minHeight: 40
28262
+ jsx(Box, { width: 1, height: "calc(100vh - 175px)", children: jsxs(TabContext, { value: value, children: [jsx(TabList, { onChange: handleChange, "aria-label": "create-work-order-tabs", variant: "scrollable", scrollButtons: "auto", sx: {
28263
+ minHeight: 40,
28206
28264
  }, children: props.tabs.map((option) => {
28207
- return (jsx(Tab, { label: option.label, icon: option.icon, iconPosition: 'start', value: option.value, sx: {
28208
- color: 'secondary.light',
28265
+ return (jsx(Tab, { label: option.label, icon: option.icon, iconPosition: "start", value: option.value, sx: {
28266
+ color: "secondary.light",
28209
28267
  py: 0,
28210
- minHeight: 40
28268
+ minHeight: 40,
28211
28269
  } }, option.value));
28212
28270
  }) }), jsx(Box, { width: 1, height: 0.935, children: renderTabs() })] }) }));
28213
28271
  };
@@ -28291,7 +28349,7 @@ function DetailPage(props) {
28291
28349
  resolver: zodResolver(props.edit.schema),
28292
28350
  defaultValues: props.edit?.defaultValues,
28293
28351
  });
28294
- const { data, isLoading, isFetching, error: fetchError } = props.api.data.query(!props.api.data.skipToken ? props.api.data.args : skipToken);
28352
+ const { data, isLoading, isFetching, error: fetchError, } = props.api.data.query(!props.api.data.skipToken ? props.api.data.args : skipToken);
28295
28353
  useEffect(() => {
28296
28354
  if (data) {
28297
28355
  // set form data based on query data
@@ -28299,7 +28357,7 @@ function DetailPage(props) {
28299
28357
  if (props.slots?.title) {
28300
28358
  const title = map(props.slots?.title, function (field) {
28301
28359
  return get(data, field);
28302
- }).join(' ');
28360
+ }).join(" ");
28303
28361
  if (title)
28304
28362
  dispatch(changeTitle(title));
28305
28363
  }
@@ -28310,60 +28368,64 @@ function DetailPage(props) {
28310
28368
  form.reset();
28311
28369
  navigate(-1);
28312
28370
  };
28313
- const canEdit = useMemo(() => get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ''}obj_permissions.edit`), [data, props.slotProps?.permissionsPath]);
28314
- const canDelete = useMemo(() => get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ''}obj_permissions.delete`), [data, props.slotProps?.permissionsPath]);
28371
+ const canEdit = useMemo(() => get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ""}obj_permissions.edit`), [data, props.slotProps?.permissionsPath]);
28372
+ const canDelete = useMemo(() => get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ""}obj_permissions.delete`), [data, props.slotProps?.permissionsPath]);
28315
28373
  // ==============================|| VALIDATION ||============================== //
28316
28374
  useValidateFieldData(props, form);
28317
28375
  // ==============================|| QUICK RETURN ||============================== //
28318
- if ((!canEdit && props.pageType == 'edit') || (fetchError && fetchError.originalStatus == 403))
28376
+ if ((!canEdit && props.pageType == "edit") || (fetchError && fetchError.originalStatus == 403))
28319
28377
  return jsx(NotAllowed, {});
28320
28378
  if (fetchError && fetchError.originalStatus == 404)
28321
28379
  return jsx(NotFound, {});
28322
28380
  // ==============================|| SUBMIT ||============================== //
28323
28381
  const onSubmitHandler = (submitedData) => {
28324
- const formData = 'nativeEvent' in submitedData ? form.getValues() : submitedData;
28382
+ const formData = "nativeEvent" in submitedData ? form.getValues() : submitedData;
28325
28383
  const params = { submitData: formData, data: data, props: props.slotProps?.parser };
28326
28384
  const dataToSend = props.edit.useFormData ? formDataForm(params) : jsonForm(params);
28327
- mutation(props.edit.useFormData ? dataToSend : { ...dataToSend, ...props.api.mutate.args }).unwrap()
28385
+ mutation(props.edit.useFormData ? dataToSend : { ...dataToSend, ...props.api.mutate.args })
28386
+ .unwrap()
28328
28387
  .then(() => {
28329
28388
  if (!props.slotProps?.button?.save?.disableNavBack)
28330
28389
  navigate(-1);
28331
28390
  if (props.slotProps?.button?.save?.onClick)
28332
28391
  props.slotProps?.button?.save?.onClick();
28333
28392
  form.reset();
28334
- notifications.show(`${capitalizedObject} ${props.pageType == 'edit' ? 'actualizad@' : 'cread@'}!`, { severity: 'success' });
28393
+ notifications.show(`${capitalizedObject} ${props.pageType == "edit" ? "actualizad@" : "cread@"}!`, { severity: "success" });
28335
28394
  })
28336
28395
  .catch((error) => {
28337
28396
  if (error.status === 401) ;
28338
28397
  if (error.status === 403) {
28339
- notifications.show(error.data.detail, { severity: 'error' });
28398
+ notifications.show(error.data.detail, { severity: "error" });
28340
28399
  }
28341
28400
  else {
28342
28401
  console.log(error);
28343
28402
  setErrors(form, error);
28344
- notifications.show((error.data.detail ?
28345
- error.data.detail.join(', ') :
28346
- `Error ${props.pageType == 'edit' ? 'actualizando' : 'creando'} ${props.object.name}!`), { severity: 'error' });
28403
+ notifications.show(error.data.detail
28404
+ ? error.data.detail.join(", ")
28405
+ : `Error ${props.pageType == "edit" ? "actualizando" : "creando"} ${props.object.name}!`, { severity: "error" });
28347
28406
  }
28348
28407
  });
28349
28408
  };
28350
28409
  // ==============================|| RENDER SECTIONS ||============================== //
28351
28410
  const renderContent = () => {
28352
28411
  let displayed_sections = -1;
28353
- return (jsxs(Grid, { size: 12, container: true, direction: 'column', position: 'relative', pb: 2, children: [props.pageType == 'detail' && data?.has_history && jsx(HistorialDrawer, { ...props.slotProps?.historial }), props.sections.map((section, index) => {
28412
+ return (jsxs(Grid, { size: 12, container: true, direction: "column", position: "relative", pb: 2, children: [props.pageType == "detail" && data?.has_history && (jsx(HistorialDrawer, { ...props.slotProps?.historial })), props.sections.map((section, index) => {
28354
28413
  if (!section.display)
28355
28414
  return null;
28356
- if (typeof section.display == 'object') {
28415
+ if (typeof section.display == "object") {
28357
28416
  const validateAgainst = form.watch(section.display.field)?.toString();
28358
28417
  if (!section.display.method(validateAgainst, section.display.value))
28359
28418
  return null;
28360
28419
  }
28361
28420
  displayed_sections += 1;
28362
- return (jsx(Section, { data: data, form: form, bgColor: displayed_sections % 2 == 1 ? 'white' : '#F7F7F7', pageType: props.pageType, ...section, first: displayed_sections == 0 }, index));
28421
+ return (jsx(Section, { data: data, form: form, bgColor: displayed_sections % 2 == 1 ? "white" : "#F7F7F7", pageType: props.pageType, ...section, first: displayed_sections == 0 }, index));
28363
28422
  })] }));
28364
28423
  };
28365
28424
  const renderPostAction = () => {
28366
- if (props.api.mutate.postAction && isSuccess && 'post_action' in mutationResponse && mutationResponse['post_action']['type'] === props.api.mutate.postAction.type) {
28425
+ if (props.api.mutate.postAction &&
28426
+ isSuccess &&
28427
+ "post_action" in mutationResponse &&
28428
+ mutationResponse["post_action"]["type"] === props.api.mutate.postAction.type) {
28367
28429
  switch (props.api.mutate.postAction.after) {
28368
28430
  // case 'create':
28369
28431
  // if (props.pageType === 'create') return addPropsToNode(props.api.mutate.postAction.node, mutationResponse);
@@ -28372,37 +28434,44 @@ function DetailPage(props) {
28372
28434
  // if (props.pageType === 'edit') return props.api.mutate.postAction.node;
28373
28435
  // break;
28374
28436
  default:
28375
- return addPropsToNode(props.api.mutate.postAction.node, { parent: props.api.data.args['id'], ...mutationResponse['post_action'] });
28437
+ return addPropsToNode(props.api.mutate.postAction.node, {
28438
+ parent: props.api.data.args["id"],
28439
+ ...mutationResponse["post_action"],
28440
+ });
28376
28441
  }
28377
28442
  }
28378
28443
  };
28379
- const badgeInfo = get(data, props.slots?.badge || '');
28444
+ const badgeInfo = get(data, props.slots?.badge || "");
28380
28445
  const renderButton = () => {
28381
28446
  if (props.slots?.button)
28382
28447
  return props.slots?.button;
28383
- if (props.pageType == 'detail') {
28448
+ if (props.pageType == "detail") {
28384
28449
  if (!canEdit && !canDelete)
28385
28450
  return null;
28386
- return (jsxs(Stack, { direction: 'row', spacing: 1, children: [canDelete && props.api.delete && jsx(DeleteButton, { mutation: props.api.delete.mutation, disableNavBack: props.slotProps?.deleteButton?.disableNavBack }), canEdit && jsx(EditButton, {})] }));
28451
+ return (jsxs(Stack, { direction: "row", spacing: 1, children: [canDelete && props.api.delete && (jsx(DeleteButton, { mutation: props.api.delete.mutation, disableNavBack: props.slotProps?.deleteButton?.disableNavBack })), canEdit && jsx(EditButton, {})] }));
28387
28452
  }
28388
28453
  else {
28389
28454
  return (jsx(SaveCancelButton, { slotProps: {
28390
28455
  saveBtn: {
28391
28456
  loading: mutationIsLoading,
28392
28457
  disabled: !form.formState.isDirty,
28393
- ...(props.slotProps?.button?.save?.type == 'onClick' ? {
28394
- type: 'button',
28395
- onClick: onSubmitHandler,
28396
- } : {}),
28458
+ ...(props.slotProps?.button?.save?.type == "onClick"
28459
+ ? {
28460
+ type: "button",
28461
+ onClick: onSubmitHandler,
28462
+ }
28463
+ : {}),
28397
28464
  },
28398
- ...(props.slotProps?.button?.cancel ? { cancelBtn: props.slotProps?.button?.cancel } : {
28399
- cancelBtn: { onClick: handleCancel }
28400
- }),
28465
+ ...(props.slotProps?.button?.cancel
28466
+ ? { cancelBtn: props.slotProps?.button?.cancel }
28467
+ : {
28468
+ cancelBtn: { onClick: handleCancel },
28469
+ }),
28401
28470
  } }));
28402
28471
  }
28403
28472
  };
28404
- return (jsxs(Fragment, { children: [jsx(ContentLayout, { button: renderButton(), badge: props.pageType == 'detail' && badgeInfo &&
28405
- jsx(StatusBadge, { title: badgeInfo['label'], severity: badgeInfo['value'] }), children: jsx(LoadingComponent, { height: 0.7, isLoading: isLoading || isFetching, children: jsx(FormProvider, { ...form, children: jsx(Box, { id: 'formulario', component: 'form', autoComplete: "off", noValidate: true, onSubmit: form.handleSubmit(onSubmitHandler), width: '100%', position: 'relative', children: renderContent() }) }) }) }), renderPostAction()] }));
28473
+ return (jsxs(Fragment, { children: [jsx(ContentLayout, { button: renderButton(), badge: props.pageType == "detail" &&
28474
+ badgeInfo && (jsx(StatusBadge, { title: badgeInfo["label"], severity: badgeInfo["value"] })), children: jsx(LoadingComponent, { height: 0.7, isLoading: isLoading || isFetching, children: jsx(FormProvider, { ...form, children: jsx(Box, { id: "formulario", component: "form", autoComplete: "off", noValidate: true, onSubmit: form.handleSubmit(onSubmitHandler), width: "100%", position: "relative", children: renderContent() }) }) }) }), renderPostAction()] }));
28406
28475
  }
28407
28476
 
28408
28477
  const ListPage = (props) => {
@@ -28410,19 +28479,20 @@ const ListPage = (props) => {
28410
28479
  };
28411
28480
 
28412
28481
  function SlideTransition(props) {
28413
- return jsx(Slide, { ...props, direction: 'left' });
28482
+ return jsx(Slide, { ...props, direction: "left" });
28414
28483
  }
28415
28484
  const BaseProgressSnack = (props) => {
28416
- // const dispatch = useAppDispatch();
28485
+ console.log(props);
28486
+ const dispatch = useDispatch();
28417
28487
  const handleClose = (e) => {
28418
28488
  if (e?.defaultMuiPrevented)
28419
28489
  return;
28420
- // dispatch(closeProgressSnack(props.id));
28490
+ dispatch(closeProgressSnack(props.id));
28421
28491
  };
28422
- const finished = useMemo(() => get(props.data, 'finished'), [props.data]);
28423
- const error = useMemo(() => get(props.data, 'error'), [props.data]);
28492
+ const finished = useMemo(() => get(props.data, "finished"), [props.data]);
28493
+ const error = useMemo(() => get(props.data, "error"), [props.data]);
28424
28494
  const renderItem = useCallback(() => {
28425
- return (jsx(Snackbar, { anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, open: props.open, onClose: handleClose, slots: {
28495
+ return (jsx(Snackbar, { anchorOrigin: { vertical: "bottom", horizontal: "right" }, open: props.open, onClose: handleClose, slots: {
28426
28496
  transition: SlideTransition,
28427
28497
  }, slotProps: {
28428
28498
  clickAwayListener: {
@@ -28430,27 +28500,27 @@ const BaseProgressSnack = (props) => {
28430
28500
  event.defaultMuiPrevented = true;
28431
28501
  },
28432
28502
  },
28433
- }, children: jsx(Badge, { invisible: props.index < 1, badgeContent: props.index + 1, color: 'primary', children: jsx(Paper, { elevation: 2, sx: {
28434
- bgcolor: props.data['error'] ? 'primary.main' : 'secondary.dark',
28503
+ }, children: jsx(Badge, { invisible: props.index < 1, badgeContent: props.index + 1, color: "primary", children: jsx(Paper, { elevation: 2, sx: {
28504
+ bgcolor: props.data["error"] ? "primary.main" : "secondary.dark",
28435
28505
  minWidth: 300,
28436
- maxWidth: '100vw',
28506
+ maxWidth: "100vw",
28437
28507
  p: 2,
28438
- borderRadius: '12px',
28439
- color: 'white',
28440
- }, children: jsxs(Stack, { direction: 'column', spacing: 1, children: [jsxs(Stack, { direction: 'row', alignItems: 'center', spacing: 1, justifyContent: 'space-between', children: [jsx(Typography$1, { pr: 2, color: 'inherit', children: props.data.title || 'N/A' }), finished && !error && (jsx(Tooltip, { title: 'Cerrar', placement: 'bottom', children: jsx(IconButton, { color: 'secondary', size: 'small', onClick: handleClose, sx: {
28441
- color: 'inherit',
28442
- '&:hover': {
28443
- backgroundColor: 'rgba(255, 255, 255, 0.2)'
28508
+ borderRadius: "12px",
28509
+ color: "white",
28510
+ }, children: jsxs(Stack, { direction: "column", spacing: 1, children: [jsxs(Stack, { direction: "row", alignItems: "center", spacing: 1, justifyContent: "space-between", children: [jsx(Typography$1, { pr: 2, color: "inherit", children: props.data.title || "N/A" }), finished && !error && (jsx(Tooltip, { title: "Cerrar", placement: "bottom", children: jsx(IconButton, { color: "secondary", size: "small", onClick: handleClose, sx: {
28511
+ color: "inherit",
28512
+ "&:hover": {
28513
+ backgroundColor: "rgba(255, 255, 255, 0.2)",
28444
28514
  },
28445
- }, children: jsx(CloseIcon, { fontSize: 'small' }) }) }))] }), !finished && !error && props.content(props.data)] }) }) }) }));
28515
+ }, children: jsx(CloseIcon, { fontSize: "small" }) }) }))] }), !finished && !error && props.content(props.data)] }) }) }) }));
28446
28516
  // eslint-disable-next-line react-hooks/exhaustive-deps
28447
28517
  }, [finished, props]);
28448
28518
  return renderItem();
28449
28519
  };
28450
28520
 
28451
28521
  const ObjectProgressStack = (props) => {
28452
- const snacks = useSelector(state => get(state, 'snackProgress', {}));
28453
- return (jsx(Stack, { direction: 'column', spacing: 2, children: Object.keys(snacks).map((key, index) => {
28522
+ const snacks = useSelector((state) => get(state, "snackProgress", {}));
28523
+ return (jsx(Stack, { direction: "column", spacing: 2, children: Object.keys(snacks).map((key, index) => {
28454
28524
  return (jsx(BaseProgressSnack, { id: key, index: index, ...snacks[key], content: props.content }, key));
28455
28525
  }) }));
28456
28526
  };