@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/cjs/index.js CHANGED
@@ -74,6 +74,7 @@ var SaveIcon = require('@mui/icons-material/Save');
74
74
  var AddIcon = require('@mui/icons-material/Add');
75
75
  var KeyboardArrowDownIcon = require('@mui/icons-material/KeyboardArrowDown');
76
76
  var LinearProgress = require('@mui/material/LinearProgress');
77
+ var AttachFileIcon = require('@mui/icons-material/AttachFile');
77
78
  var xDataGrid = require('@mui/x-data-grid');
78
79
  var Tooltip = require('@mui/material/Tooltip');
79
80
  var ExpandMoreIcon = require('@mui/icons-material/ExpandMore');
@@ -95,6 +96,7 @@ var sortable = require('@dnd-kit/sortable');
95
96
  var utilities = require('@dnd-kit/utilities');
96
97
  var core$1 = require('@dnd-kit/core');
97
98
  var modifiers = require('@dnd-kit/modifiers');
99
+ var DrawIcon = require('@mui/icons-material/Draw');
98
100
  var CloseIcon = require('@mui/icons-material/Close');
99
101
  var ErrorOutlineIcon = require('@mui/icons-material/ErrorOutline');
100
102
  var query$1 = require('@reduxjs/toolkit/query');
@@ -124,10 +126,10 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
124
126
 
125
127
  const NormalOrIcon = (props) => {
126
128
  const theme = material.useTheme();
127
- const belowLG = material.useMediaQuery(theme.breakpoints.down('lg'));
128
- if ((belowLG && !(props.type == 'button')) || props.type == 'icon')
129
+ const belowLG = material.useMediaQuery(theme.breakpoints.down("lg"));
130
+ if ((belowLG && !(props.type == "button")) || props.type == "icon")
129
131
  return (jsxRuntime.jsx(material.Tooltip, { title: props.buttonProps.children, children: jsxRuntime.jsx(material.IconButton, { ...props.buttonProps, children: props.buttonProps.startIcon }) }));
130
- return (jsxRuntime.jsx(material.Button, { ...props.buttonProps }));
132
+ return jsxRuntime.jsx(material.Button, { ...props.buttonProps });
131
133
  };
132
134
 
133
135
  const EditButton = () => {
@@ -137,23 +139,23 @@ const EditButton = () => {
137
139
  }, [navigate]);
138
140
  // ===== || KEYDOWN || ===== //
139
141
  const handleKeyPress = React.useCallback((event) => {
140
- if (event.ctrlKey && event.key === 'e') {
142
+ if (event.ctrlKey && event.key === "e") {
141
143
  event.preventDefault();
142
144
  handleClick();
143
145
  }
144
146
  }, [handleClick]);
145
147
  React.useEffect(() => {
146
- document.addEventListener('keydown', handleKeyPress);
148
+ document.addEventListener("keydown", handleKeyPress);
147
149
  return () => {
148
- document.removeEventListener('keydown', handleKeyPress);
150
+ document.removeEventListener("keydown", handleKeyPress);
149
151
  };
150
152
  }, [handleKeyPress]);
151
153
  return (jsxRuntime.jsx(NormalOrIcon, { buttonProps: {
152
- color: 'secondary',
153
- variant: 'contained',
154
+ color: "secondary",
155
+ variant: "contained",
154
156
  startIcon: jsxRuntime.jsx(EditIcon, {}),
155
157
  onClick: handleClick,
156
- children: 'Editar',
158
+ children: "Editar",
157
159
  } }));
158
160
  };
159
161
 
@@ -25831,18 +25833,18 @@ const valueLabel = zod.object({
25831
25833
 
25832
25834
  const MainDrawer = (props) => {
25833
25835
  const theme = material.useTheme();
25834
- return (jsxRuntime.jsx(material.Drawer, { variant: 'temporary', anchor: 'right', open: props.open, onClose: props.drawerToggle, sx: {
25836
+ return (jsxRuntime.jsx(material.Drawer, { variant: "temporary", anchor: "right", open: props.open, onClose: props.drawerToggle, sx: {
25835
25837
  zIndex: 1202,
25836
- '& .MuiDrawer-paper': {
25837
- width: '100%',
25838
+ "& .MuiDrawer-paper": {
25839
+ width: "100%",
25838
25840
  maxWidth: props.width ? props.width : 600,
25839
25841
  background: theme.palette.background.default,
25840
25842
  color: theme.palette.text.primary,
25841
- borderRight: 'none',
25842
- borderTopLeftRadius: '12px',
25843
- borderBottomLeftRadius: '12px',
25844
- }
25845
- }, color: 'inherit', ...props.drawerProps, children: jsxRuntime.jsxs(material.Grid, { container: true, direction: 'column', px: 4, py: 2, spacing: 2, children: [jsxRuntime.jsx(material.Grid, { display: 'flex', justifyContent: 'right', pb: 0, children: props.slots?.button ? props.slots.button : (jsxRuntime.jsx(material.Button, { color: 'error', startIcon: jsxRuntime.jsx(CancelIcon, {}), onClick: props.drawerToggle, children: "Cerrar" })) }), jsxRuntime.jsx(material.Grid, { children: jsxRuntime.jsx(core.PageHeader, { breadcrumbs: [], title: props.title }) }), jsxRuntime.jsx(material.Grid, { size: 12, container: true, position: 'relative', children: props.children })] }) }));
25843
+ borderRight: "none",
25844
+ borderTopLeftRadius: "12px",
25845
+ borderBottomLeftRadius: "12px",
25846
+ },
25847
+ }, color: "inherit", ...props.drawerProps, children: jsxRuntime.jsxs(material.Grid, { container: true, direction: "column", px: 4, py: 2, spacing: 2, children: [jsxRuntime.jsx(material.Grid, { display: "flex", justifyContent: "right", pb: 0, children: props.slots?.button ? (props.slots.button) : (jsxRuntime.jsx(material.Button, { color: "error", startIcon: jsxRuntime.jsx(CancelIcon, {}), onClick: props.drawerToggle, children: "Cerrar" })) }), jsxRuntime.jsx(material.Grid, { children: jsxRuntime.jsx(core.PageHeader, { breadcrumbs: [], title: props.title }) }), jsxRuntime.jsx(material.Grid, { size: 12, container: true, position: "relative", children: props.children })] }) }));
25846
25848
  };
25847
25849
 
25848
25850
  const LoadingComponent = (props) => {
@@ -25901,60 +25903,49 @@ const _HistorialDrawer = (props) => {
25901
25903
  const HistorialDrawer = (props) => {
25902
25904
  const [open, setOpen] = React.useState(false);
25903
25905
  const handleDrawer = React.useCallback(() => {
25904
- setOpen(prevState => !prevState);
25906
+ setOpen((prevState) => !prevState);
25905
25907
  }, []);
25906
25908
  // ===== || KEYDOWN || ===== //
25907
25909
  const handleKeyPress = React.useCallback((event) => {
25908
- if (event.ctrlKey && event.shiftKey && event.key === 'H') {
25910
+ if (event.ctrlKey && event.shiftKey && event.key === "H") {
25909
25911
  event.preventDefault();
25910
25912
  handleDrawer();
25911
25913
  }
25912
25914
  }, [handleDrawer]);
25913
25915
  React.useEffect(() => {
25914
- document.addEventListener('keydown', handleKeyPress);
25916
+ document.addEventListener("keydown", handleKeyPress);
25915
25917
  return () => {
25916
- document.removeEventListener('keydown', handleKeyPress);
25918
+ document.removeEventListener("keydown", handleKeyPress);
25917
25919
  };
25918
25920
  }, [handleKeyPress]);
25919
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.Tooltip, { title: 'Historial', children: jsxRuntime.jsx(material.IconButton, { color: 'primary', onClick: handleDrawer, sx: {
25920
- position: 'absolute',
25921
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.Tooltip, { title: "Historial", children: jsxRuntime.jsx(material.IconButton, { color: "primary", onClick: handleDrawer, sx: {
25922
+ position: "absolute",
25921
25923
  right: 0,
25922
25924
  }, ...props.iconButtonProps, children: jsxRuntime.jsx(HistoryIcon, {}) }) }), jsxRuntime.jsx(_HistorialDrawer, { open: open, handleDrawer: handleDrawer, endpoint: props.endpoint })] }));
25923
25925
  };
25924
25926
 
25925
- const buildListItems = (content) => {
25926
- const items = [];
25927
- const loop = (content, error_title) => {
25928
- if (Array.isArray(content)) {
25929
- items.push({ title: error_title ? (error_title.charAt(0).toUpperCase() + error_title.slice(1)).split('_').join(' ') : 'N/A', content: content.join(', ') });
25930
- }
25931
- else {
25932
- Object.keys(content).map((row_error) => {
25933
- loop(content[row_error], row_error);
25934
- });
25935
- }
25936
- };
25937
- loop(content);
25938
- return items;
25939
- };
25940
25927
  const RowErrors = (props) => {
25941
25928
  return (jsxRuntime.jsx(material.List, { subheader: jsxRuntime.jsx(material.ListSubheader, { sx: {
25942
25929
  bgcolor: colors.red[50],
25943
25930
  color: colors.red[800],
25944
- fontWeight: 'bold',
25945
- borderRadius: '12px',
25946
- lineHeight: '40px'
25931
+ fontWeight: "bold",
25932
+ borderRadius: "12px",
25933
+ lineHeight: "40px",
25947
25934
  }, children: `Hilera ${props.row}` }), sx: {
25948
25935
  bgcolor: colors.red[50],
25949
- borderRadius: '12px',
25950
- }, children: buildListItems(props.data[props.row]).map((item) => {
25936
+ borderRadius: "12px",
25937
+ }, children: props.data.map((item) => {
25938
+ const pre_name = item.name.split(".").at(-1);
25939
+ const name = (pre_name.charAt(0).toUpperCase() + pre_name.slice(1))
25940
+ .split("_")
25941
+ .join(" ");
25951
25942
  return (jsxRuntime.jsx(material.ListItem, { sx: {
25952
- py: 0
25953
- }, children: jsxRuntime.jsx(ListItemText, { primary: jsxRuntime.jsxs(material.Box, { children: [jsxRuntime.jsx(material.Typography, { variant: 'caption', pr: 0.5, sx: {
25943
+ py: 0,
25944
+ }, children: jsxRuntime.jsx(ListItemText, { primary: jsxRuntime.jsxs(material.Box, { children: [jsxRuntime.jsx(material.Typography, { variant: "caption", pr: 0.5, sx: {
25954
25945
  color: colors.red[800],
25955
- }, children: `${item.title}:` }), jsxRuntime.jsx(material.Typography, { variant: 'caption', sx: {
25946
+ }, children: `${name}:` }), jsxRuntime.jsx(material.Typography, { variant: "caption", sx: {
25956
25947
  color: colors.red[800],
25957
- }, children: item.content })] }) }) }));
25948
+ }, children: item.reason.join(", ") })] }) }) }));
25958
25949
  }) }));
25959
25950
  };
25960
25951
 
@@ -25994,9 +25985,8 @@ const FileUploadBox = (props) => {
25994
25985
  props.setValid(true);
25995
25986
  })
25996
25987
  .catch((e) => {
25997
- const columnas_inv = lodash.get(e.data, "columnas_invalidas");
25998
- if (columnas_inv)
25999
- notifications.show(columnas_inv, { severity: "error" });
25988
+ if (e.data?.detail?.length > 0)
25989
+ notifications.show(e.data.detail[0], { severity: "error" });
26000
25990
  props.setValid(false);
26001
25991
  });
26002
25992
  });
@@ -26023,19 +26013,22 @@ const FileUploadBox = (props) => {
26023
26013
  onChange(null);
26024
26014
  setFile(null);
26025
26015
  };
26016
+ const renderErrorRows = () => {
26017
+ if (!error?.data?.invalid_params)
26018
+ return;
26019
+ const rows = lodash.groupBy(error?.data?.invalid_params, function (e) {
26020
+ return e.name.split(".")[0];
26021
+ });
26022
+ if (!rows)
26023
+ return;
26024
+ return Object.entries(rows).map(([row, errors]) => (jsxRuntime.jsx(RowErrors, { row: row, data: errors }, row)));
26025
+ };
26026
26026
  return (jsxRuntime.jsx(Box, { width: 1, children: jsxRuntime.jsxs(material.Stack, { spacing: 2, children: [!file && !isLoading && (jsxRuntime.jsxs(Box, { component: "div", width: 1, display: "flex", justifyContent: "center", alignItems: "center", border: "1.5px dashed", borderRadius: "12px", py: 4, px: 2, borderColor: colors.grey[800], bgcolor: colors.grey[50], ...getRootProps(), children: [jsxRuntime.jsx(VisuallyHiddenInput, { id: "file-upload", type: "file", ...getInputProps() }), jsxRuntime.jsx(FileUploadIcon, { sx: {
26027
26027
  color: colors.grey[800],
26028
26028
  pr: 1,
26029
26029
  } }), jsxRuntime.jsx(Typography, { variant: "body2", sx: { color: colors.grey[800] }, children: isDragActive
26030
26030
  ? "Soltar archivo aquí."
26031
- : "Arrastra un archivo aquí o haz clic para seleccionar uno." })] })), isLoading && (jsxRuntime.jsx(Box, { children: jsxRuntime.jsx(material.LinearProgress, { sx: { height: 5 } }) })), file && (jsxRuntime.jsx(FileBox, { file: file, handleRemove: handleRemove, loadingRemove: removerLoading })), error &&
26032
- "data" in error &&
26033
- Object.keys(error.data).map((row) => {
26034
- if (typeof error.data[row] == "object") {
26035
- return jsxRuntime.jsx(RowErrors, { row: row, data: error.data }, row);
26036
- }
26037
- return null;
26038
- })] }) }));
26031
+ : "Arrastra un archivo aquí o haz clic para seleccionar uno." })] })), isLoading && (jsxRuntime.jsx(Box, { children: jsxRuntime.jsx(material.LinearProgress, { sx: { height: 5 } }) })), file && (jsxRuntime.jsx(FileBox, { file: file, handleRemove: handleRemove, loadingRemove: removerLoading })), renderErrorRows()] }) }));
26039
26032
  };
26040
26033
  return (jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value } }) => {
26041
26034
  return jsxRuntime.jsx(Dropzone, { onChange: onChange, value: value });
@@ -26220,7 +26213,7 @@ async function manualCacheRefresh(api, id, dispatch, queryFulfilled, endpoints)
26220
26213
  const initialState$1 = {};
26221
26214
  // == crea el slice == //
26222
26215
  const snackProgress = toolkit.createSlice({
26223
- name: 'snackProgress',
26216
+ name: "snackProgress",
26224
26217
  initialState: initialState$1,
26225
26218
  // declarar acciones que se le pueden hacer a esta sección de la tienda
26226
26219
  reducers: {
@@ -26236,7 +26229,7 @@ const snackProgress = toolkit.createSlice({
26236
26229
  closeProgressSnack(state, action) {
26237
26230
  return lodash.omit(state, action.payload);
26238
26231
  },
26239
- }
26232
+ },
26240
26233
  });
26241
26234
  // exportar acciones
26242
26235
  const { openProgressSnack, updateProgressSnackData, closeProgressSnack } = snackProgress.actions;
@@ -26262,12 +26255,14 @@ const { changeTitle, } = settings.actions;
26262
26255
  var header = settings.reducer;
26263
26256
 
26264
26257
  const ControlledDropdown = (props) => {
26265
- const [inputValue, setInputValue] = React.useState('');
26258
+ const [inputValue, setInputValue] = React.useState("");
26266
26259
  const [options, setOptions] = React.useState(props.extraProps?.options ? props.extraProps?.options : []);
26267
26260
  const args = React.useMemo(() => {
26268
26261
  if (!props.extraProps?.queryArgs)
26269
26262
  return undefined;
26270
- return mergeSettings(props.extraProps?.queryArgs, { filters: { nombre__icontains: inputValue } });
26263
+ return mergeSettings(props.extraProps?.queryArgs, {
26264
+ filters: { nombre__icontains: inputValue },
26265
+ });
26271
26266
  }, [inputValue, props.extraProps?.queryArgs]);
26272
26267
  const api = useAPI();
26273
26268
  const [getOpciones, { isLoading, isFetching, isError }] = api.useLazyGetComoOpcionesQuery();
@@ -26280,7 +26275,8 @@ const ControlledDropdown = (props) => {
26280
26275
  };
26281
26276
  const handleSearch = React.useCallback(debounce((args, callback) => {
26282
26277
  setOptions([]);
26283
- getOpciones(args).unwrap()
26278
+ getOpciones(args)
26279
+ .unwrap()
26284
26280
  .then(callback)
26285
26281
  .catch(() => {
26286
26282
  //
@@ -26293,7 +26289,7 @@ const ControlledDropdown = (props) => {
26293
26289
  });
26294
26290
  }
26295
26291
  }, [args, handleSearch, open]);
26296
- return (jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { value, onChange, }, fieldState: { error }, }) => {
26292
+ return (jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { value, onChange }, fieldState: { error } }) => {
26297
26293
  const handleChange = (_event, newValue) => {
26298
26294
  onChange(newValue);
26299
26295
  };
@@ -26301,10 +26297,10 @@ const ControlledDropdown = (props) => {
26301
26297
  setInputValue(newInputValue);
26302
26298
  }, isOptionEqualToValue: (option, value) => {
26303
26299
  return option.value === value.value;
26304
- }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, fullWidth: true, size: 'small', disabled: !options || isError, renderInput: (params) => (jsxRuntime.jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : props.extraProps?.disableHT ? '' : ' ', slotProps: {
26300
+ }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, fullWidth: true, size: "small", disabled: !options || isError, renderInput: (params) => (jsxRuntime.jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : props.extraProps?.disableHT ? "" : " ", slotProps: {
26305
26301
  input: {
26306
26302
  ...params.InputProps,
26307
- endAdornment: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [(isLoading || isFetching) ? jsxRuntime.jsx(material.CircularProgress, { color: "inherit", size: 20 }) : null, params.InputProps.endAdornment] })),
26303
+ endAdornment: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isLoading || isFetching ? (jsxRuntime.jsx(material.CircularProgress, { color: "inherit", size: 20 })) : null, params.InputProps.endAdornment] })),
26308
26304
  },
26309
26305
  } })), ...props.fieldProps }));
26310
26306
  } }));
@@ -26333,13 +26329,15 @@ const ControlledPhoneNumber = (props) => {
26333
26329
  };
26334
26330
 
26335
26331
  const ControlledSelect = (props) => {
26336
- const [inputValue, setInputValue] = React.useState('');
26332
+ const [inputValue, setInputValue] = React.useState("");
26337
26333
  const [options, setOptions] = React.useState(props.extraProps?.options ? props.extraProps?.options : []);
26338
26334
  const [selectedAll, setSelectedAll] = React.useState(false);
26339
26335
  const args = React.useMemo(() => {
26340
26336
  if (!props.extraProps?.queryArgs)
26341
26337
  return undefined;
26342
- return mergeSettings(props.extraProps?.queryArgs, { filters: { nombre__icontains: inputValue } });
26338
+ return mergeSettings(props.extraProps?.queryArgs, {
26339
+ filters: { nombre__icontains: inputValue },
26340
+ });
26343
26341
  }, [inputValue, props.extraProps?.queryArgs]);
26344
26342
  const api = useAPI();
26345
26343
  const [getOpciones, { isLoading, isFetching, isError }] = api.useLazyGetComoOpcionesQuery();
@@ -26354,7 +26352,8 @@ const ControlledSelect = (props) => {
26354
26352
  };
26355
26353
  const handleSearch = React.useCallback(debounce((args, callback) => {
26356
26354
  setOptions([]);
26357
- getOpciones(args).unwrap()
26355
+ getOpciones(args)
26356
+ .unwrap()
26358
26357
  .then(callback)
26359
26358
  .catch(() => {
26360
26359
  //
@@ -26363,12 +26362,14 @@ const ControlledSelect = (props) => {
26363
26362
  React.useEffect(() => {
26364
26363
  if (args && open)
26365
26364
  handleSearch(args, (filteredOptions) => {
26366
- setOptions([{ value: 'all', label: 'All' }].concat(filteredOptions));
26365
+ setOptions([{ value: "all", label: "All" }].concat(filteredOptions));
26367
26366
  });
26368
26367
  }, [args, handleSearch, open]);
26369
26368
  return (jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { value, onChange }, fieldState: { error } }) => {
26370
26369
  const handleChange = (_event, newValue) => {
26371
- if (lodash.find(newValue, function (val) { return val.value == 'all'; })) {
26370
+ if (lodash.find(newValue, function (val) {
26371
+ return val.value == "all";
26372
+ })) {
26372
26373
  if (selectedAll) {
26373
26374
  setSelectedAll(false);
26374
26375
  onChange(newValue.slice(1));
@@ -26392,10 +26393,10 @@ const ControlledSelect = (props) => {
26392
26393
  setInputValue(newInputValue);
26393
26394
  }, isOptionEqualToValue: (option, value) => {
26394
26395
  return option.value === value.value;
26395
- }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, multiple: true, disableCloseOnSelect: true, limitTags: 1, fullWidth: true, size: 'small', disabled: !options || isError, renderInput: (params) => (jsxRuntime.jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : '', slotProps: {
26396
+ }, filterOptions: props.extraProps.queryArgs ? (x) => x : undefined, multiple: true, disableCloseOnSelect: true, limitTags: 1, fullWidth: true, size: "small", disabled: !options || isError, renderInput: (params) => (jsxRuntime.jsx(TextField, { ...params, label: props.label, error: !!error, helperText: error ? error.message : "", slotProps: {
26396
26397
  input: {
26397
26398
  ...params.InputProps,
26398
- endAdornment: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [(isLoading || isFetching) ? jsxRuntime.jsx(material.CircularProgress, { color: "inherit", size: 20 }) : null, params.InputProps.endAdornment] })),
26399
+ endAdornment: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isLoading || isFetching ? (jsxRuntime.jsx(material.CircularProgress, { color: "inherit", size: 20 })) : null, params.InputProps.endAdornment] })),
26399
26400
  },
26400
26401
  } })), ...props.fieldProps, renderOption: (props, option, { selected }) => {
26401
26402
  const { key, ...optionProps } = props;
@@ -26403,7 +26404,7 @@ const ControlledSelect = (props) => {
26403
26404
  } }));
26404
26405
  } }));
26405
26406
  };
26406
- ControlledSelect.displayName = 'ControlledSelect';
26407
+ ControlledSelect.displayName = "ControlledSelect";
26407
26408
 
26408
26409
  // ==============================|| DESLIZADOR CONTROLADO ||============================== //
26409
26410
  const ControlledSlider$1 = (props) => {
@@ -26436,19 +26437,27 @@ const ControlledText = (props) => {
26436
26437
  };
26437
26438
  return (
26438
26439
  // controlador
26439
- jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error }, }) => {
26440
+ jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error } }) => {
26440
26441
  return (
26441
26442
  // campo de texto
26442
- jsxRuntime.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: {
26443
+ jsxRuntime.jsx(TextField, { variant: "outlined", size: "small", id: props.name, label: props.label, value: value ? value.toString() : "", onChange: onChange, error: !!error, type: props.extraProps?.password
26444
+ ? showPassword
26445
+ ? "text"
26446
+ : "password"
26447
+ : "text", helperText: error
26448
+ ? error.message
26449
+ : props.fieldProps?.helperText
26450
+ ? props.fieldProps.helperText
26451
+ : " ", fullWidth: true, slotProps: {
26443
26452
  input: {
26444
26453
  // ícono de mostar u ocultar si es campo de contarseña
26445
- endAdornment: props.extraProps?.password && (jsxRuntime.jsx(material.InputAdornment, { position: 'end', children: jsxRuntime.jsx(material.IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: 'end', size: 'large', sx: {
26446
- color: 'secondary.darker',
26447
- '&:hover': {
26448
- color: 'secondary.main',
26449
- }
26450
- }, children: showPassword ? jsxRuntime.jsx(iconsMaterial.Visibility, {}) : jsxRuntime.jsx(iconsMaterial.VisibilityOff, {}) }) }))
26451
- }
26454
+ endAdornment: props.extraProps?.password && (jsxRuntime.jsx(material.InputAdornment, { position: "end", children: jsxRuntime.jsx(material.IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: "end", size: "large", sx: {
26455
+ color: "secondary.darker",
26456
+ "&:hover": {
26457
+ color: "secondary.main",
26458
+ },
26459
+ }, children: showPassword ? jsxRuntime.jsx(iconsMaterial.Visibility, {}) : jsxRuntime.jsx(iconsMaterial.VisibilityOff, {}) }) })),
26460
+ },
26452
26461
  }, ...props.fieldProps }));
26453
26462
  } }));
26454
26463
  };
@@ -26508,16 +26517,15 @@ const ControlledTimePicker = (props) => {
26508
26517
  const filedProps = React.useMemo(() => {
26509
26518
  const defaultProps = {
26510
26519
  slotProps: {
26511
- textField: { size: 'small' },
26512
- field: { clearable: true, },
26513
- }
26520
+ textField: { size: "small" },
26521
+ field: { clearable: true },
26522
+ },
26514
26523
  };
26515
26524
  return merge$1({}, defaultProps, props.fieldProps);
26516
26525
  }, [props.fieldProps]);
26517
- return (jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error }, }) => {
26518
- const val = convertValueToDayjs(value, 'time');
26519
- return (jsxRuntime.jsxs(material.FormGroup, { sx: { width: 1 }, color: 'secondary', children: [jsxRuntime.jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsxRuntime.jsx(TimePicker, { label: props.label, onChange: (v) => handleChange(v, 'time', onChange), value: val || null, ...filedProps }) }), !props.extraProps?.disableHT &&
26520
- jsxRuntime.jsx(material.FormHelperText, { error: !!error, children: error ? error.message : ' ' })] }));
26526
+ return (jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, fieldState: { error } }) => {
26527
+ const val = convertValueToDayjs(value, "time");
26528
+ return (jsxRuntime.jsxs(material.FormGroup, { sx: { width: 1 }, color: "secondary", children: [jsxRuntime.jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsxRuntime.jsx(TimePicker, { label: props.label, onChange: (v) => handleChange(v, "time", onChange), value: val || null, ...filedProps }) }), !props.extraProps?.disableHT && (jsxRuntime.jsx(material.FormHelperText, { error: !!error, children: error ? error.message : " " }))] }));
26521
26529
  } }));
26522
26530
  };
26523
26531
 
@@ -26537,22 +26545,23 @@ const ControlledSlider = (props) => {
26537
26545
 
26538
26546
  const DeleteConfirmationDialog = (props) => {
26539
26547
  const notifications = core.useNotifications();
26540
- const pathname = 'temp';
26541
- const id = React.useMemo(() => props.id || pathname.split('/').at(-1), [pathname, props.id]);
26548
+ const pathname = "temp";
26549
+ const id = React.useMemo(() => props.id || pathname.split("/").at(-1), [pathname, props.id]);
26542
26550
  const [mutation] = props.mutation();
26543
26551
  const schema = zod.object({ confirmation: zod.string() });
26544
26552
  const form = reactHookForm.useForm({
26545
26553
  resolver: zod$1.zodResolver(schema),
26546
- defaultValues: { confirmation: '' },
26554
+ defaultValues: { confirmation: "" },
26547
26555
  });
26548
26556
  const handleClose = () => {
26549
26557
  props.handleClose();
26550
26558
  form.reset();
26551
26559
  };
26552
- const confirmation = form.watch('confirmation').toUpperCase();
26553
- const disabled = React.useMemo(() => confirmation != 'ELIMINAR', [confirmation]);
26560
+ const confirmation = form.watch("confirmation").toUpperCase();
26561
+ const disabled = React.useMemo(() => confirmation != "ELIMINAR", [confirmation]);
26554
26562
  const onSubmitHandler = () => {
26555
- mutation({ id: id }).unwrap()
26563
+ mutation({ id: id })
26564
+ .unwrap()
26556
26565
  .then(() => {
26557
26566
  if (props.disableNavBack) {
26558
26567
  handleClose();
@@ -26561,25 +26570,25 @@ const DeleteConfirmationDialog = (props) => {
26561
26570
  // props.navigate(-1);
26562
26571
  form.reset();
26563
26572
  }
26564
- notifications.show('Objeto removido exitosamente!', { severity: 'success' });
26573
+ notifications.show("Objeto removido exitosamente!", { severity: "success" });
26565
26574
  })
26566
26575
  .catch((error) => {
26567
26576
  console.log(error);
26568
- notifications.show('Error', { severity: 'error' });
26577
+ notifications.show("Error", { severity: "error" });
26569
26578
  });
26570
26579
  };
26571
26580
  const handleKeyDown = (event) => {
26572
- if (event.key === 'Enter' && !disabled)
26581
+ if (event.key === "Enter" && !disabled)
26573
26582
  onSubmitHandler();
26574
26583
  };
26575
- return (jsxRuntime.jsxs(material.Dialog, { open: props.open, onClose: handleClose, children: [jsxRuntime.jsx(material.DialogTitle, { variant: 'h5', children: "Eliminar" }), jsxRuntime.jsxs(material.DialogContent, { children: [jsxRuntime.jsx(material.DialogContentText, { sx: { pb: 2 }, children: "\u00BFEst\u00E1 seguro que quiere eliminar el objeto?" }), jsxRuntime.jsx(material.Box, { id: 'eliminar-formulario', width: '100%', position: 'relative', children: jsxRuntime.jsx(ControlledText, { name: 'confirmation', control: form.control, fieldProps: {
26584
+ return (jsxRuntime.jsxs(material.Dialog, { open: props.open, onClose: handleClose, children: [jsxRuntime.jsx(material.DialogTitle, { variant: "h5", children: "Eliminar" }), jsxRuntime.jsxs(material.DialogContent, { children: [jsxRuntime.jsx(material.DialogContentText, { sx: { pb: 2 }, children: "\u00BFEst\u00E1 seguro que quiere eliminar el objeto?" }), jsxRuntime.jsx(material.Box, { id: "eliminar-formulario", width: "100%", position: "relative", children: jsxRuntime.jsx(ControlledText, { name: "confirmation", control: form.control, fieldProps: {
26576
26585
  autoFocus: true,
26577
26586
  required: true,
26578
- margin: 'dense',
26587
+ margin: "dense",
26579
26588
  label: "Escribir 'ELIMINAR' para confirmar.",
26580
26589
  fullWidth: true,
26581
- variant: 'standard',
26582
- helperText: '',
26590
+ variant: "standard",
26591
+ helperText: "",
26583
26592
  onKeyDown: handleKeyDown,
26584
26593
  } }) })] }), jsxRuntime.jsxs(material.DialogActions, { children: [jsxRuntime.jsx(material.Button, { onClick: handleClose, children: "Cancelar" }), jsxRuntime.jsx(material.Button, { onClick: onSubmitHandler, disabled: disabled, children: "Eliminar" })] })] }));
26585
26594
  };
@@ -26594,23 +26603,23 @@ const DeleteButton = (props) => {
26594
26603
  };
26595
26604
  // ===== || KEYDOWN || ===== //
26596
26605
  const handleKeyPress = React.useCallback((event) => {
26597
- if (event.ctrlKey && event.key === 'd') {
26606
+ if (event.ctrlKey && event.key === "d") {
26598
26607
  event.preventDefault();
26599
26608
  handleClick();
26600
26609
  }
26601
26610
  }, [handleClick]);
26602
26611
  React.useEffect(() => {
26603
- document.addEventListener('keydown', handleKeyPress);
26612
+ document.addEventListener("keydown", handleKeyPress);
26604
26613
  return () => {
26605
- document.removeEventListener('keydown', handleKeyPress);
26614
+ document.removeEventListener("keydown", handleKeyPress);
26606
26615
  };
26607
26616
  }, [handleKeyPress]);
26608
26617
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(NormalOrIcon, { buttonProps: {
26609
- color: 'error',
26610
- variant: 'contained',
26618
+ color: "error",
26619
+ variant: "contained",
26611
26620
  startIcon: jsxRuntime.jsx(DeleteIcon, {}),
26612
26621
  onClick: handleClick,
26613
- children: 'Eliminar',
26622
+ children: "Eliminar",
26614
26623
  } }), jsxRuntime.jsx(DeleteConfirmationDialog, { open: open, handleClose: handleClose, ...props })] }));
26615
26624
  };
26616
26625
 
@@ -26621,104 +26630,104 @@ const SaveCancelButton = (props) => {
26621
26630
  };
26622
26631
  // ===== || KEYDOWN || ===== //
26623
26632
  const handleKeyPress = React.useCallback((event) => {
26624
- if (event.key === 'Escape') {
26633
+ if (event.key === "Escape") {
26625
26634
  event.preventDefault();
26626
26635
  handleCancel();
26627
26636
  }
26628
26637
  }, [handleCancel]);
26629
26638
  React.useEffect(() => {
26630
- document.addEventListener('keydown', handleKeyPress);
26639
+ document.addEventListener("keydown", handleKeyPress);
26631
26640
  return () => {
26632
- document.removeEventListener('keydown', handleKeyPress);
26641
+ document.removeEventListener("keydown", handleKeyPress);
26633
26642
  };
26634
26643
  }, [handleKeyPress]);
26635
26644
  return (jsxRuntime.jsxs(material.ButtonGroup, { sx: {
26636
26645
  maxHeight: 40,
26637
26646
  }, ...props.slotProps?.buttonGroup, children: [jsxRuntime.jsx(NormalOrIcon, { buttonProps: {
26638
- color: 'error',
26639
- variant: 'contained',
26647
+ color: "error",
26648
+ variant: "contained",
26640
26649
  startIcon: jsxRuntime.jsx(CancelIcon, {}),
26641
26650
  onClick: handleCancel,
26642
26651
  sx: { height: 1 },
26643
- children: 'Cancelar',
26644
- ...props.slotProps?.cancelBtn
26652
+ children: "Cancelar",
26653
+ ...props.slotProps?.cancelBtn,
26645
26654
  } }), jsxRuntime.jsx(NormalOrIcon, { buttonProps: {
26646
- color: 'secondary',
26647
- variant: 'contained',
26655
+ color: "secondary",
26656
+ variant: "contained",
26648
26657
  startIcon: jsxRuntime.jsx(SaveIcon, {}),
26649
- type: 'submit',
26650
- form: 'formulario',
26658
+ type: "submit",
26659
+ form: "formulario",
26651
26660
  sx: { height: 1 },
26652
- children: 'Guardar',
26653
- ...props.slotProps?.saveBtn
26661
+ children: "Guardar",
26662
+ ...props.slotProps?.saveBtn,
26654
26663
  } })] }));
26655
26664
  };
26656
26665
 
26657
26666
  const CreateButtonBase = (props) => {
26658
26667
  // ===== || KEYDOWN || ===== //
26659
26668
  const handleKeyPress = React.useCallback((event) => {
26660
- if (event.ctrlKey && event.key === 'e') {
26669
+ if (event.ctrlKey && event.key === "e") {
26661
26670
  event.preventDefault();
26662
26671
  props.handleClick();
26663
26672
  }
26664
26673
  }, []);
26665
26674
  React.useEffect(() => {
26666
- document.addEventListener('keydown', handleKeyPress);
26675
+ document.addEventListener("keydown", handleKeyPress);
26667
26676
  return () => {
26668
- document.removeEventListener('keydown', handleKeyPress);
26677
+ document.removeEventListener("keydown", handleKeyPress);
26669
26678
  };
26670
26679
  }, [handleKeyPress]);
26671
26680
  return (jsxRuntime.jsx(NormalOrIcon, { buttonProps: {
26672
- id: 'create-button',
26673
- variant: 'contained',
26674
- color: 'secondary',
26681
+ id: "create-button",
26682
+ variant: "contained",
26683
+ color: "secondary",
26675
26684
  startIcon: jsxRuntime.jsx(AddIcon, {}),
26676
26685
  onClick: props.handleClick,
26677
- 'aria-controls': props.open ? 'create-menu' : undefined,
26678
- 'aria-haspopup': true,
26679
- 'aria-expanded': props.open ? 'true' : undefined,
26686
+ "aria-controls": props.open ? "create-menu" : undefined,
26687
+ "aria-haspopup": true,
26688
+ "aria-expanded": props.open ? "true" : undefined,
26680
26689
  endIcon: jsxRuntime.jsx(KeyboardArrowDownIcon, {}),
26681
- children: 'Crear',
26690
+ children: "Crear",
26682
26691
  ...props.buttonProps,
26683
26692
  } }));
26684
26693
  };
26685
26694
 
26686
26695
  const MenuItemWithLoading = (props) => {
26687
26696
  return (jsxRuntime.jsxs(MenuItem, { onClick: props.handleClick, sx: {
26688
- position: 'relative',
26689
- }, disabled: props.disabled || props.isLoading, children: [props.children, props.isLoading &&
26690
- jsxRuntime.jsx(material.Box, { position: 'absolute', width: 1, top: '50%', left: '50%', sx: {
26691
- transform: 'translate(-50%, -50%)',
26692
- }, px: 2, children: jsxRuntime.jsx(LinearProgress, {}) })] }));
26697
+ position: "relative",
26698
+ }, disabled: props.disabled || props.isLoading, children: [props.children, props.isLoading && (jsxRuntime.jsx(material.Box, { position: "absolute", width: 1, top: "50%", left: "50%", sx: {
26699
+ transform: "translate(-50%, -50%)",
26700
+ }, px: 2, children: jsxRuntime.jsx(LinearProgress, {}) }))] }));
26693
26701
  };
26694
26702
 
26695
26703
  const StyledMenu = material.styled((props) => (jsxRuntime.jsx(material.Menu, { elevation: 0, anchorOrigin: {
26696
- vertical: 'bottom',
26697
- horizontal: 'right',
26704
+ vertical: "bottom",
26705
+ horizontal: "right",
26698
26706
  }, transformOrigin: {
26699
- vertical: 'top',
26700
- horizontal: 'right',
26707
+ vertical: "top",
26708
+ horizontal: "right",
26701
26709
  }, ...props })))(({ theme }) => ({
26702
- '& .MuiPaper-root': {
26710
+ "& .MuiPaper-root": {
26703
26711
  borderRadius: 6,
26704
26712
  marginTop: theme.spacing(1),
26705
26713
  minWidth: 180,
26706
- color: 'rgb(55, 65, 81)',
26707
- 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',
26708
- '& .MuiMenu-list': {
26709
- padding: '4px 0',
26714
+ color: "rgb(55, 65, 81)",
26715
+ backgroundColor: theme.palette.primary.lighter,
26716
+ 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",
26717
+ "& .MuiMenu-list": {
26718
+ padding: "4px 0",
26710
26719
  },
26711
- '& .MuiMenuItem-root': {
26712
- '& .MuiSvgIcon-root': {
26713
- fontSize: 18,
26714
- color: theme.palette.text.secondary,
26715
- marginRight: theme.spacing(1.5),
26716
- },
26717
- '&:active': {
26718
- backgroundColor: material.alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
26720
+ "& .MuiMenuItem-root": {
26721
+ borderRadius: 12,
26722
+ "&:hover": {
26723
+ backgroundColor: theme.palette.primary.main,
26724
+ color: "white",
26725
+ "& .MuiSvgIcon-root": {
26726
+ color: "white",
26727
+ },
26719
26728
  },
26720
26729
  },
26721
- ...theme.applyStyles('dark', {
26730
+ ...theme.applyStyles("dark", {
26722
26731
  color: theme.palette.grey[300],
26723
26732
  }),
26724
26733
  },
@@ -26728,7 +26737,7 @@ const CreateButtonWithMenuOptions = (props) => {
26728
26737
  const [anchorEl, setAnchorEl] = React.useState(null);
26729
26738
  const open = Boolean(anchorEl);
26730
26739
  const handleClick = () => {
26731
- setAnchorEl(document.getElementById('create-button'));
26740
+ setAnchorEl(document.getElementById("create-button"));
26732
26741
  };
26733
26742
  const handleClose = () => {
26734
26743
  setAnchorEl(null);
@@ -26742,20 +26751,22 @@ const CreateButtonWithMenuOptions = (props) => {
26742
26751
  };
26743
26752
  if (!props.permission)
26744
26753
  return null;
26745
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(CreateButtonBase, { open: open, handleClick: handleClick }), jsxRuntime.jsxs(StyledMenu, { id: 'create-menu', MenuListProps: {
26746
- 'aria-labelledby': 'create-menu-button',
26747
- }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable && ([
26748
- {
26749
- title: 'CSV',
26750
- endpoint: props.pathname,
26751
- },
26752
- ...(props.csv_upload.extraOptions || [])
26753
- ].map((option, index) => {
26754
- return (jsxRuntime.jsx(MenuItem, { onClick: () => {
26755
- handleToggleOpen(option);
26756
- handleClose();
26757
- }, disableRipple: true, children: option.title }, index));
26758
- })), jsxRuntime.jsx(MenuItem, { onClick: () => {
26754
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(CreateButtonBase, { open: open, handleClick: handleClick }), jsxRuntime.jsxs(StyledMenu, { id: "create-menu", MenuListProps: {
26755
+ "aria-labelledby": "create-menu-button",
26756
+ }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable &&
26757
+ [
26758
+ {
26759
+ title: "CSV",
26760
+ endpoint: props.pathname,
26761
+ icon: AttachFileIcon,
26762
+ },
26763
+ ...(props.csv_upload.extraOptions || []),
26764
+ ].map((option, index) => {
26765
+ return (jsxRuntime.jsxs(MenuItem, { onClick: () => {
26766
+ handleToggleOpen(option);
26767
+ handleClose();
26768
+ }, disableRipple: true, children: [option.icon && (jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(AttachFileIcon, {}) })), option.title] }, index));
26769
+ }), jsxRuntime.jsx(MenuItem, { onClick: () => {
26759
26770
  props.navigate(`crear`);
26760
26771
  handleClose();
26761
26772
  }, disableRipple: true, children: "Manual" })] }), props.csv_upload?.enable && (jsxRuntime.jsx(CSVUpload, { open: csv.open, drawerToggle: handleToggleClose, data: csv.data }))] }));
@@ -26768,12 +26779,12 @@ const ButtonWithDrawer = (props) => {
26768
26779
  let setFunc = setInternalOpen;
26769
26780
  if (props.setOpen)
26770
26781
  setFunc = props.setOpen;
26771
- setFunc(prevState => !prevState);
26782
+ setFunc((prevState) => !prevState);
26772
26783
  };
26773
26784
  const configuracionBase = {
26774
- variant: 'contained',
26785
+ variant: "contained",
26775
26786
  fullWidth: true,
26776
- color: 'primary'
26787
+ color: "primary",
26777
26788
  };
26778
26789
  const renderButton = () => {
26779
26790
  if (props.slots.button)
@@ -26782,7 +26793,10 @@ const ButtonWithDrawer = (props) => {
26782
26793
  };
26783
26794
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [renderButton(), jsxRuntime.jsx(MainDrawer, { open: open, drawerToggle: handleClick, title: props.slots.drawer.title, slots: {
26784
26795
  button: props.slots.drawer.button,
26785
- }, children: props.slots.drawer.content({ ...props.slotProps?.drawer?.content, handleClose: handleClick }) })] }));
26796
+ }, children: props.slots.drawer.content({
26797
+ ...props.slotProps?.drawer?.content,
26798
+ handleClose: handleClick,
26799
+ }) })] }));
26786
26800
  };
26787
26801
 
26788
26802
  const StatusBadge = (props) => {
@@ -26971,16 +26985,16 @@ const UncontrolledText = (props) => {
26971
26985
  const handleShowPassword = () => {
26972
26986
  setShowPassword(!showPassword);
26973
26987
  };
26974
- return (jsxRuntime.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: {
26988
+ return (jsxRuntime.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: {
26975
26989
  input: {
26976
26990
  // ícono de mostar u ocultar si es campo de contarseña
26977
- endAdornment: props.password && (jsxRuntime.jsx(material.InputAdornment, { position: 'end', children: jsxRuntime.jsx(material.IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: 'end', size: 'large', sx: {
26978
- color: 'secondary.darker',
26979
- '&:hover': {
26980
- color: 'secondary.main',
26981
- }
26982
- }, children: showPassword ? jsxRuntime.jsx(iconsMaterial.Visibility, {}) : jsxRuntime.jsx(iconsMaterial.VisibilityOff, {}) }) }))
26983
- }
26991
+ endAdornment: props.password && (jsxRuntime.jsx(material.InputAdornment, { position: "end", children: jsxRuntime.jsx(material.IconButton, { "aria-label": "toggle password visibility", tabIndex: -1, onClick: handleShowPassword, edge: "end", size: "large", sx: {
26992
+ color: "secondary.darker",
26993
+ "&:hover": {
26994
+ color: "secondary.main",
26995
+ },
26996
+ }, children: showPassword ? jsxRuntime.jsx(iconsMaterial.Visibility, {}) : jsxRuntime.jsx(iconsMaterial.VisibilityOff, {}) }) })),
26997
+ },
26984
26998
  }, ...props.textFieldProps }));
26985
26999
  };
26986
27000
 
@@ -27052,9 +27066,8 @@ const generateSchema = (columns, columnsFilter, id) => {
27052
27066
  };
27053
27067
 
27054
27068
  const FiltersPopper = (props) => {
27055
- // const params:any = useLoaderData();
27056
- // const id = params?.id;
27057
- const id = 1;
27069
+ const params = reactRouterDom.useLoaderData();
27070
+ const id = params?.id;
27058
27071
  const columns = xDataGrid.useGridApiContext().current.getAllColumns();
27059
27072
  const [schema, defaultValues] = React.useMemo(() => generateSchema(columns, props.columnsFilter, id), [columns, id, props.columnsFilter]);
27060
27073
  const form = reactHookForm.useForm({
@@ -27064,14 +27077,16 @@ const FiltersPopper = (props) => {
27064
27077
  const [dirty, setDirty] = React.useState(false);
27065
27078
  React.useEffect(() => {
27066
27079
  if (props.filters.filterModel.items) {
27067
- if (!lodash.every(props.filters.filterModel.items, function (_value, key) { return lodash.includes(props.protectFilters, key); })) {
27080
+ if (!lodash.every(props.filters.filterModel.items, function (_value, key) {
27081
+ return lodash.includes(props.protectFilters, key);
27082
+ })) {
27068
27083
  setDirty(true);
27069
27084
  }
27070
27085
  form.reset(lodash.merge({}, defaultValues, props.filters.filterModel.items));
27071
27086
  }
27072
27087
  }, [defaultValues, props.filters.filterModel.items, form, props.protectFilters]);
27073
27088
  const handleClose = (event) => {
27074
- if (props.menuRef.current && event?.target.tagName == 'BODY')
27089
+ if (props.menuRef.current && event?.target.tagName == "BODY")
27075
27090
  return;
27076
27091
  props.setOpen(false);
27077
27092
  };
@@ -27079,9 +27094,9 @@ const FiltersPopper = (props) => {
27079
27094
  setDirty(false);
27080
27095
  props.filters.setFilterModel(immer.produce((draft) => {
27081
27096
  lodash.forEach(props.filters.filterModel.items, function (_value, key) {
27082
- if (['ordering', 'search'].concat(props.protectFilters || []).includes(key))
27097
+ if (["ordering", "search"].concat(props.protectFilters || []).includes(key))
27083
27098
  return;
27084
- delete draft['items'][key];
27099
+ delete draft["items"][key];
27085
27100
  });
27086
27101
  }));
27087
27102
  form.reset(defaultValues);
@@ -27089,75 +27104,82 @@ const FiltersPopper = (props) => {
27089
27104
  };
27090
27105
  const onSubmitHandler = (submitData) => {
27091
27106
  props.filters.setFilterModel(immer.produce((draft) => {
27092
- draft['items'] = { ...draft['items'], ...submitData };
27107
+ draft["items"] = { ...draft["items"], ...submitData };
27093
27108
  }));
27094
27109
  handleClose();
27095
27110
  };
27096
27111
  const onError = (errors) => {
27097
27112
  console.log(errors);
27098
27113
  };
27099
- return (jsxRuntime.jsx(material.Box, { id: 'filtros', children: jsxRuntime.jsx(material.Popper, { id: 'filters-menu', open: props.open, anchorEl: props.menuRef.current, placement: "bottom-end", transition: true, sx: { zIndex: 1202 }, children: ({ TransitionProps }) => (jsxRuntime.jsx(material.Grow, { ...TransitionProps, timeout: 350, children: jsxRuntime.jsx(material.Paper, { elevation: 5, sx: { zIndex: 5 }, children: jsxRuntime.jsx(material.ClickAwayListener, { onClickAway: handleClose, children: jsxRuntime.jsxs(material.Grid, { size: 12, container: true, padding: 2, width: 350, maxWidth: '100%', children: [jsxRuntime.jsx(material.Grid, { size: 12, container: true, rowSpacing: 2, maxHeight: 300, overflow: 'auto', children: columns.map((column, index) => {
27114
+ return (jsxRuntime.jsx(material.Box, { id: "filtros", children: jsxRuntime.jsx(material.Popper, { id: "filters-menu", open: props.open, anchorEl: props.menuRef.current, placement: "bottom-end", transition: true, sx: { zIndex: 1202 }, children: ({ TransitionProps }) => (jsxRuntime.jsx(material.Grow, { ...TransitionProps, timeout: 350, children: jsxRuntime.jsx(material.Paper, { elevation: 5, sx: { zIndex: 5 }, children: jsxRuntime.jsx(material.ClickAwayListener, { onClickAway: handleClose, children: jsxRuntime.jsxs(material.Grid, { size: 12, container: true, padding: 2, width: 350, maxWidth: "100%", children: [jsxRuntime.jsx(material.Grid, { size: 12, container: true, rowSpacing: 2, maxHeight: 300, overflow: "auto", children: columns.map((column, index) => {
27100
27115
  if (column.input)
27101
- return (jsxRuntime.jsxs(material.Grid, { size: 12, container: true, direction: 'column', spacing: 0, children: [jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(material.Typography, { fontWeight: 'bold', gutterBottom: true, children: column.filterName || column.headerName }) }), jsxRuntime.jsx(material.Grid, { size: 12, children: React.Children.map(column.input, (child) => {
27102
- let addedProps = { control: form.control };
27103
- if (column.type == 'number') {
27116
+ return (jsxRuntime.jsxs(material.Grid, { size: 12, container: true, direction: "column", spacing: 0, children: [jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(material.Typography, { fontWeight: "bold", gutterBottom: true, children: column.filterName ||
27117
+ column.headerName }) }), jsxRuntime.jsx(material.Grid, { size: 12, children: React.Children.map(column.input, (child) => {
27118
+ let addedProps = {
27119
+ control: form.control,
27120
+ };
27121
+ if (column.type == "number") {
27104
27122
  addedProps = {
27105
27123
  ...addedProps,
27106
27124
  extraProps: {
27107
- ...child.props.extraProps,
27125
+ ...child.props
27126
+ .extraProps,
27108
27127
  getValue: form.getValues,
27109
27128
  setValue: form.setValue,
27110
- }
27129
+ },
27111
27130
  };
27112
27131
  }
27113
27132
  return React.cloneElement(child, {
27114
27133
  ...child.props,
27115
- ...addedProps
27134
+ ...addedProps,
27116
27135
  });
27117
27136
  }) })] }, index));
27118
27137
  return null;
27119
- }) }), jsxRuntime.jsx(material.Grid, { size: 12, py: 2, children: jsxRuntime.jsx(Divider, {}) }), jsxRuntime.jsxs(material.Grid, { size: 12, display: 'flex', justifyContent: 'space-evenly', children: [jsxRuntime.jsx(material.Button, { disabled: (!form.formState.isDirty || props.disableQuickSearch) && !dirty, startIcon: jsxRuntime.jsx(ClearIcon$1, {}), variant: 'outlined', onClick: handleClear, children: "Limpiar" }), jsxRuntime.jsx(material.Button, { loading: props.disableQuickSearch, disabled: !form.formState.isDirty, startIcon: jsxRuntime.jsx(FilterAltIcon, {}), variant: 'outlined', onClick: form.handleSubmit(onSubmitHandler, onError), children: "Aplicar" })] })] }) }) }) })) }) }));
27138
+ }) }), jsxRuntime.jsx(material.Grid, { size: 12, py: 2, children: jsxRuntime.jsx(Divider, {}) }), jsxRuntime.jsxs(material.Grid, { size: 12, display: "flex", justifyContent: "space-evenly", children: [jsxRuntime.jsx(material.Button, { disabled: (!form.formState.isDirty ||
27139
+ props.disableQuickSearch) &&
27140
+ !dirty, startIcon: jsxRuntime.jsx(ClearIcon$1, {}), variant: "outlined", onClick: handleClear, children: "Limpiar" }), jsxRuntime.jsx(material.Button, { loading: props.disableQuickSearch, disabled: !form.formState.isDirty, startIcon: jsxRuntime.jsx(FilterAltIcon, {}), variant: "outlined", onClick: form.handleSubmit(onSubmitHandler, onError), children: "Aplicar" })] })] }) }) }) })) }) }));
27120
27141
  };
27121
27142
 
27122
27143
  const FiltersButton = (props) => {
27123
27144
  const [open, setOpen] = React.useState(false);
27124
27145
  const menuRef = React.useRef(null);
27125
27146
  const handleClick = () => {
27126
- setOpen(prevState => !prevState);
27147
+ setOpen((prevState) => !prevState);
27127
27148
  };
27128
27149
  const filterCount = React.useMemo(() => {
27129
27150
  return lodash.countBy(Object.entries(props.filters.filterModel.items), function (filter) {
27130
27151
  const key = filter[0];
27131
27152
  const value = filter[1];
27132
- if (key == 'ordering' || key == 'search')
27153
+ if (key == "ordering" || key == "search")
27133
27154
  return;
27134
- if (props.protectFilters && lodash.findIndex(props.protectFilters, function (x) { return x == key; }) > -1)
27155
+ if (props.protectFilters &&
27156
+ lodash.findIndex(props.protectFilters, function (x) {
27157
+ return x == key;
27158
+ }) > -1)
27135
27159
  return;
27136
27160
  return (lodash.isNumber(value) && value > 0) || !lodash.isEmpty(value) || lodash.isBoolean(value);
27137
27161
  }).true;
27138
- }, [
27139
- props.filters.filterModel.items, props.protectFilters
27140
- ]);
27162
+ }, [props.filters.filterModel.items, props.protectFilters]);
27141
27163
  // ===== || ABRIR CON CTRL + Shift + F || ===== //
27142
27164
  const handleKeyPress = React.useCallback((event) => {
27143
- if (event.ctrlKey && event.shiftKey && event.key === 'F') {
27165
+ if (event.ctrlKey && event.shiftKey && event.key === "F") {
27144
27166
  event.preventDefault();
27145
27167
  setOpen(true);
27146
27168
  }
27147
- else if (event.key === 'Escape' && open) {
27169
+ else if (event.key === "Escape" && open) {
27148
27170
  setOpen(false);
27149
27171
  }
27150
27172
  }, [open]);
27151
27173
  React.useEffect(() => {
27152
- document.addEventListener('keydown', handleKeyPress);
27174
+ document.addEventListener("keydown", handleKeyPress);
27153
27175
  return () => {
27154
- document.removeEventListener('keydown', handleKeyPress);
27176
+ document.removeEventListener("keydown", handleKeyPress);
27155
27177
  };
27156
27178
  }, [handleKeyPress]);
27157
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Tooltip, { title: "Filtros", children: jsxRuntime.jsx(xDataGrid.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 => {
27158
- if (key.key == 'Escape')
27179
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Tooltip, { title: "Filtros", children: jsxRuntime.jsx(xDataGrid.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) => {
27180
+ if (key.key == "Escape")
27159
27181
  setOpen(false);
27160
- }, className: 'my-icon-button', children: jsxRuntime.jsx(material.Badge, { badgeContent: filterCount, color: "primary", children: jsxRuntime.jsx(FilterListIcon, { fontSize: "small" }) }) }) }), jsxRuntime.jsx(FiltersPopper, { ...props, menuRef: menuRef, open: open, setOpen: setOpen })] }));
27182
+ }, className: "my-icon-button", children: jsxRuntime.jsx(material.Badge, { badgeContent: filterCount, color: "primary", children: jsxRuntime.jsx(FilterListIcon, { fontSize: "small" }) }) }) }), jsxRuntime.jsx(FiltersPopper, { ...props, menuRef: menuRef, open: open, setOpen: setOpen })] }));
27161
27183
  };
27162
27184
 
27163
27185
  const ExportCSV = (props) => {
@@ -27169,41 +27191,46 @@ const ExportCSV = (props) => {
27169
27191
  const handleClick = () => {
27170
27192
  const extraItems = { variant: props.slots?.variant };
27171
27193
  if (props.rowSelectionModel.ids.size > 0)
27172
- extraItems[`${props.slots?.column_key || 'id'}__in`] = Array.from(props.rowSelectionModel.ids).join(',');
27173
- const filters = lodash.merge({}, lodash.omit(props.filterModel, lodash.map(props.ignore?.filters, function (filter) { return `items.${filter}`; }) || []), { items: extraItems });
27194
+ extraItems[`${props.slots?.column_key || "id"}__in`] = Array.from(props.rowSelectionModel.ids).join(",");
27195
+ const filters = lodash.merge({}, lodash.omit(props.filterModel, lodash.map(props.ignore?.filters, function (filter) {
27196
+ return `items.${filter}`;
27197
+ }) || []), { items: extraItems });
27174
27198
  descargarCSV({
27175
- endpoint: endpoint, filterModel: filters, sortModel: props.sortModel, ignoreSort: props.ignore?.sort,
27176
- }).unwrap()
27199
+ endpoint: endpoint,
27200
+ filterModel: filters,
27201
+ sortModel: props.sortModel,
27202
+ ignoreSort: props.ignore?.sort,
27203
+ })
27204
+ .unwrap()
27177
27205
  .then((response) => {
27178
27206
  const file = document.createElement("a");
27179
27207
  file.href = response.file;
27180
27208
  file.download = response.filename;
27181
27209
  file.click();
27182
- notifications.show('CSV descargado!', { severity: 'success' });
27210
+ notifications.show("CSV descargado!", { severity: "success" });
27183
27211
  props.handleClick();
27184
27212
  })
27185
27213
  .catch((error) => {
27186
27214
  console.log(error);
27187
- notifications.show('Error al descargar CSV.', { severity: 'error' });
27215
+ notifications.show("Error al descargar CSV.", { severity: "error" });
27188
27216
  });
27189
27217
  };
27190
- return (jsxRuntime.jsx(MenuItemWithLoading, { handleClick: handleClick, isLoading: isLoading, disabled: props.disabledWithoutSelection && !props.rowSelectionModel.ids.size, children: props.slots?.title || 'Descargar como CSV' }, 'export-dg-csv'));
27218
+ return (jsxRuntime.jsx(MenuItemWithLoading, { handleClick: handleClick, isLoading: isLoading, disabled: props.disabledWithoutSelection && !props.rowSelectionModel.ids.size, children: props.slots?.title || "Descargar como CSV" }, "export-dg-csv"));
27191
27219
  };
27192
27220
 
27193
27221
  const ExportButton = (props) => {
27194
27222
  const [exportMenuOpen, setExportMenuOpen] = React.useState(false);
27195
27223
  const exportMenuTriggerRef = React.useRef(null);
27196
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.Tooltip, { title: "Exportar", children: jsxRuntime.jsx(xDataGrid.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: jsxRuntime.jsx(FileDownloadIcon, { fontSize: "small" }) }) }), jsxRuntime.jsxs(Menu, { id: "export-menu", anchorEl: exportMenuTriggerRef.current, open: exportMenuOpen, onClose: () => setExportMenuOpen(false), anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, transformOrigin: { vertical: 'top', horizontal: 'left' }, slotProps: {
27224
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.Tooltip, { title: "Exportar", children: jsxRuntime.jsx(xDataGrid.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: jsxRuntime.jsx(FileDownloadIcon, { fontSize: "small" }) }) }), jsxRuntime.jsxs(Menu, { id: "export-menu", anchorEl: exportMenuTriggerRef.current, open: exportMenuOpen, onClose: () => setExportMenuOpen(false), anchorOrigin: { vertical: "bottom", horizontal: "left" }, transformOrigin: { vertical: "top", horizontal: "left" }, slotProps: {
27197
27225
  list: {
27198
- 'aria-labelledby': 'export-menu-trigger',
27226
+ "aria-labelledby": "export-menu-trigger",
27199
27227
  },
27200
- }, children: [!props.csvProps?.hide &&
27201
- jsxRuntime.jsx(ExportCSV, { handleClick: () => setExportMenuOpen(false), filterModel: props.filterModel, sortModel: props.sortModel, rowSelectionModel: props.rowSelectionModel, slots: {
27202
- endpoint: props.csvProps?.endpoint
27203
- } }), props.extraOptions?.map(item => {
27228
+ }, children: [!props.csvProps?.hide && (jsxRuntime.jsx(ExportCSV, { handleClick: () => setExportMenuOpen(false), filterModel: props.filterModel, sortModel: props.sortModel, rowSelectionModel: props.rowSelectionModel, slots: {
27229
+ endpoint: props.csvProps?.endpoint,
27230
+ } })), props.extraOptions?.map((item) => {
27204
27231
  const csvExport = item.props.csvExport;
27205
- const remainingProps = lodash.omit(item.props, 'csvExport');
27206
- return (item.element({
27232
+ const remainingProps = lodash.omit(item.props, "csvExport");
27233
+ return item.element({
27207
27234
  handleClick: () => setExportMenuOpen(false),
27208
27235
  filterModel: props.filterModel,
27209
27236
  sortModel: props.sortModel,
@@ -27212,7 +27239,7 @@ const ExportButton = (props) => {
27212
27239
  ...csvExport,
27213
27240
  },
27214
27241
  ...remainingProps,
27215
- }));
27242
+ });
27216
27243
  })] })] }));
27217
27244
  };
27218
27245
 
@@ -27220,34 +27247,33 @@ const ColumnsButton = () => {
27220
27247
  const apiRef = xDataGrid.useGridApiContext();
27221
27248
  const allCols = apiRef.current.getAllColumns().length;
27222
27249
  const visibleCols = apiRef.current.getVisibleColumns().length;
27223
- return (jsxRuntime.jsx(material.Tooltip, { title: "Columnas", children: jsxRuntime.jsx(xDataGrid.ColumnsPanelTrigger, { render: jsxRuntime.jsx(xDataGrid.ToolbarButton, { className: 'my-icon-button' }), children: jsxRuntime.jsx(material.Badge, { color: 'primary', variant: 'dot', invisible: visibleCols >= allCols, children: jsxRuntime.jsx(ViewColumnIcon, { fontSize: "small" }) }) }) }));
27250
+ return (jsxRuntime.jsx(material.Tooltip, { title: "Columnas", children: jsxRuntime.jsx(xDataGrid.ColumnsPanelTrigger, { render: jsxRuntime.jsx(xDataGrid.ToolbarButton, { className: "my-icon-button" }), children: jsxRuntime.jsx(material.Badge, { color: "primary", variant: "dot", invisible: visibleCols >= allCols, children: jsxRuntime.jsx(ViewColumnIcon, { fontSize: "small" }) }) }) }));
27224
27251
  };
27225
27252
 
27226
27253
  const RefreshButton = (props) => {
27227
27254
  // ===== || EJECUTAR CON CTRL + Shift + R || ===== //
27228
27255
  const handleKeyPress = React.useCallback((event) => {
27229
- if (event.ctrlKey && event.shiftKey && event.key === 'R') {
27256
+ if (event.ctrlKey && event.shiftKey && event.key === "R") {
27230
27257
  event.preventDefault();
27231
27258
  if (props.refetch)
27232
27259
  props.refetch();
27233
27260
  }
27234
27261
  }, [props]);
27235
27262
  React.useEffect(() => {
27236
- document.addEventListener('keydown', handleKeyPress);
27263
+ document.addEventListener("keydown", handleKeyPress);
27237
27264
  return () => {
27238
- document.removeEventListener('keydown', handleKeyPress);
27265
+ document.removeEventListener("keydown", handleKeyPress);
27239
27266
  };
27240
27267
  }, [handleKeyPress]);
27241
- return (jsxRuntime.jsx(Tooltip, { title: 'Refrescar', children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: props.refetch, children: jsxRuntime.jsx(RefreshIcon, { fontSize: 'small' }) }) }));
27268
+ return (jsxRuntime.jsx(Tooltip, { title: "Refrescar", children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: props.refetch, children: jsxRuntime.jsx(RefreshIcon, { fontSize: "small" }) }) }));
27242
27269
  };
27243
27270
 
27244
27271
  const CustomToolbar = (props) => {
27245
27272
  const [expanded, setExpanded] = React.useState(true);
27246
27273
  return (jsxRuntime.jsx(xDataGrid.Toolbar, { style: {
27247
- minHeight: expanded ? 'inherit' : '10px',
27248
- }, children: expanded ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(material.Stack, { direction: 'row', width: 0.5, justifyContent: 'left', children: [!props.buttons?.refresh?.hide && jsxRuntime.jsx(RefreshButton, { refetch: props.buttons?.refresh?.refetch }), !(props.buttons?.refresh?.hide || props.buttons?.export?.hide) && jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), !props.buttons?.export?.hide && (jsxRuntime.jsx(ExportButton, { filterModel: props.filters.filterModel, sortModel: props.sortModel, rowSelectionModel: props.selection, ...props.buttons.export }))] }), jsxRuntime.jsx(material.Box, { width: 1, display: 'flex', justifyContent: 'center', alignItems: 'top', children: jsxRuntime.jsx(material.IconButton, { size: 'small', onClick: () => setExpanded(false), children: jsxRuntime.jsx(ExpandLessIcon, {}) }) }), jsxRuntime.jsxs(material.Stack, { direction: 'row', width: 0.5, justifyContent: 'right', children: [jsxRuntime.jsx(ColumnsButton, {}), !props.buttons.filters?.hide &&
27249
- jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsxRuntime.jsx(FiltersButton, { ...props })] }), jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsxRuntime.jsx(QuickSearch, { disableQuickSearch: props.disableQuickSearch, filters: props.filters }), props.extraButtons &&
27250
- props.extraButtons.map((button, index) => (jsxRuntime.jsxs(material.Box, { display: 'flex', children: [jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsxRuntime.jsx(Tooltip, { title: button.label, children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: () => button.onClick(), className: 'my-icon-button', ...button.buttonProps, children: jsxRuntime.jsx(button.icon, { fontSize: "small" }) }) })] }, `toolbar-button-${index}`))), jsxRuntime.jsx(SelectedRowsButton, { selection: props.selection, extraActions: props.extraActions })] })] })) : (jsxRuntime.jsx(material.Box, { width: 1, display: 'flex', justifyContent: 'center', alignItems: 'center', children: jsxRuntime.jsx(material.IconButton, { onClick: () => setExpanded(true), children: jsxRuntime.jsx(ExpandMoreIcon, {}) }) })) }));
27274
+ minHeight: expanded ? "inherit" : "10px",
27275
+ }, children: expanded ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(material.Stack, { direction: "row", width: 0.5, justifyContent: "left", children: [!props.buttons?.refresh?.hide && (jsxRuntime.jsx(RefreshButton, { refetch: props.buttons?.refresh?.refetch })), !(props.buttons?.refresh?.hide || props.buttons?.export?.hide) && (jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } })), !props.buttons?.export?.hide && (jsxRuntime.jsx(ExportButton, { filterModel: props.filters.filterModel, sortModel: props.sortModel, rowSelectionModel: props.selection, ...props.buttons.export }))] }), jsxRuntime.jsx(material.Box, { width: 1, display: "flex", justifyContent: "center", alignItems: "top", children: jsxRuntime.jsx(material.IconButton, { size: "small", onClick: () => setExpanded(false), children: jsxRuntime.jsx(ExpandLessIcon, {}) }) }), jsxRuntime.jsxs(material.Stack, { direction: "row", width: 0.5, justifyContent: "right", children: [jsxRuntime.jsx(ColumnsButton, {}), !props.buttons.filters?.hide && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsxRuntime.jsx(FiltersButton, { ...props })] })), jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsxRuntime.jsx(QuickSearch, { disableQuickSearch: props.disableQuickSearch, filters: props.filters }), props.extraButtons &&
27276
+ props.extraButtons.map((button, index) => (jsxRuntime.jsxs(material.Box, { display: "flex", children: [jsxRuntime.jsx(material.Divider, { orientation: "vertical", variant: "middle", flexItem: true, sx: { mx: 0.5 } }), jsxRuntime.jsx(Tooltip, { title: button.label, children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: () => button.onClick(), className: "my-icon-button", ...button.buttonProps, children: jsxRuntime.jsx(button.icon, { fontSize: "small" }) }) })] }, `toolbar-button-${index}`))), jsxRuntime.jsx(SelectedRowsButton, { selection: props.selection, extraActions: props.extraActions })] })] })) : (jsxRuntime.jsx(material.Box, { width: 1, display: "flex", justifyContent: "center", alignItems: "center", children: jsxRuntime.jsx(material.IconButton, { onClick: () => setExpanded(true), children: jsxRuntime.jsx(ExpandMoreIcon, {}) }) })) }));
27251
27277
  };
27252
27278
 
27253
27279
  const StyledGridOverlay = material.styled('div')(({ theme }) => ({
@@ -27285,20 +27311,22 @@ function CustomPagination() {
27285
27311
  }
27286
27312
 
27287
27313
  const DraggableRow = (params) => {
27288
- const { attributes, listeners, setNodeRef, transform, transition, } = sortable.useSortable({ id: params.rowId.toString() });
27314
+ const { attributes, listeners, setNodeRef, transform, transition } = sortable.useSortable({
27315
+ id: params.rowId.toString(),
27316
+ });
27289
27317
  const style = {
27290
27318
  transform: utilities.CSS.Transform.toString(transform),
27291
- transition
27319
+ transition,
27292
27320
  };
27293
- return (jsxRuntime.jsxs(material.Box, { display: 'flex', ref: setNodeRef, style: style, children: [jsxRuntime.jsx(material.Box, { ...attributes, ...listeners, sx: {
27294
- width: '20px',
27321
+ return (jsxRuntime.jsxs(material.Box, { display: "flex", ref: setNodeRef, style: style, children: [jsxRuntime.jsx(material.Box, { ...attributes, ...listeners, sx: {
27322
+ width: "20px",
27295
27323
  height: params.rowHeight,
27296
- background: 'repeating-linear-gradient( 45deg, #e0e0e0, #e0e0e0 5px, transparent 5px, transparent 10px)',
27297
- borderTop: '1px solid rgba(224, 224, 224, 1)',
27298
- cursor: 'grab',
27299
- '&:active': {
27300
- cursor: 'grabbing',
27301
- }
27324
+ background: "repeating-linear-gradient( 45deg, #e0e0e0, #e0e0e0 5px, transparent 5px, transparent 10px)",
27325
+ borderTop: "1px solid rgba(224, 224, 224, 1)",
27326
+ cursor: "grab",
27327
+ "&:active": {
27328
+ cursor: "grabbing",
27329
+ },
27302
27330
  } }), jsxRuntime.jsx(xDataGrid.GridRow, { ...params })] }));
27303
27331
  };
27304
27332
 
@@ -27315,38 +27343,41 @@ const EditGridWrapper = (props) => {
27315
27343
  const handleClickEdit = () => {
27316
27344
  if (edit)
27317
27345
  handleCancelarEdit();
27318
- setEdit(prevState => !prevState);
27346
+ setEdit((prevState) => !prevState);
27319
27347
  };
27320
27348
  const processRowUpdate = async (newRow, originalRow) => {
27321
27349
  const original_data = jsonForm({ submitData: originalRow });
27322
- const data = jsonForm({ submitData: newRow, ...(props.parser ? { props: props.parser } : []) });
27350
+ const data = jsonForm({
27351
+ submitData: newRow,
27352
+ ...(props.parser ? { props: props.parser } : []),
27353
+ });
27323
27354
  if (lodash.isEqual(data, original_data))
27324
27355
  return originalRow;
27325
27356
  try {
27326
27357
  const result = await editMutation(data).unwrap();
27327
- setErrors(prevState => immer.produce(prevState, draft => {
27358
+ setErrors((prevState) => immer.produce(prevState, (draft) => {
27328
27359
  delete draft[newRow.id];
27329
27360
  }));
27330
27361
  if (props?.postAction)
27331
27362
  props.postAction(result);
27332
- notifications.show(`Información actualizada!`, { severity: 'success' });
27363
+ notifications.show(`Información actualizada!`, { severity: "success" });
27333
27364
  return result.list;
27334
27365
  }
27335
27366
  catch (e) {
27336
- setErrors(prevState => immer.produce(prevState, draft => {
27337
- draft[newRow.id] = lodash.get(e, 'data');
27367
+ setErrors((prevState) => immer.produce(prevState, (draft) => {
27368
+ draft[newRow.id] = lodash.get(e, "data");
27338
27369
  }));
27339
- notifications.show('Error actualizando información!', { severity: 'error' });
27370
+ notifications.show("Error actualizando información!", { severity: "error" });
27340
27371
  }
27341
27372
  };
27342
27373
  // ===== || KEYDOWN || ===== //
27343
27374
  const handleKeyPress = React.useCallback((event) => {
27344
27375
  if (props.permission) {
27345
- if (event.ctrlKey && event.shiftKey && event.key === 'E') {
27376
+ if (event.ctrlKey && event.shiftKey && event.key === "E") {
27346
27377
  event.preventDefault();
27347
27378
  setEdit(true);
27348
27379
  }
27349
- else if (event.key === 'Escape' && event.shiftKey && edit) {
27380
+ else if (event.key === "Escape" && event.shiftKey && edit) {
27350
27381
  event.preventDefault();
27351
27382
  handleCancelarEdit();
27352
27383
  setEdit(false);
@@ -27354,9 +27385,9 @@ const EditGridWrapper = (props) => {
27354
27385
  }
27355
27386
  }, [edit, props.permission]);
27356
27387
  React.useEffect(() => {
27357
- document.addEventListener('keydown', handleKeyPress);
27388
+ document.addEventListener("keydown", handleKeyPress);
27358
27389
  return () => {
27359
- document.removeEventListener('keydown', handleKeyPress);
27390
+ document.removeEventListener("keydown", handleKeyPress);
27360
27391
  };
27361
27392
  }, [handleKeyPress]);
27362
27393
  // ========================= || DRAG N DROP || ========================= //
@@ -27373,7 +27404,10 @@ const EditGridWrapper = (props) => {
27373
27404
  if (over) {
27374
27405
  const activeRow = rows.find((row) => row.id == active.id);
27375
27406
  const overRow = rows.find((row) => row.id == over.id);
27376
- const mutationArgs = { ...props.dnd?.args, id: activeRow.id };
27407
+ const mutationArgs = {
27408
+ ...props.dnd?.args,
27409
+ id: activeRow.id,
27410
+ };
27377
27411
  mutationArgs[field] = lodash.get(overRow, field);
27378
27412
  editMutation(mutationArgs);
27379
27413
  }
@@ -27391,33 +27425,37 @@ const EditGridWrapper = (props) => {
27391
27425
  slotProps: {
27392
27426
  toolbar: {
27393
27427
  extraButtons: [
27394
- ...(props.permission && !props.disabled ? [{
27395
- label: edit ? 'Cancelar' : 'Editar',
27396
- icon: edit ? CancelIcon : EditIcon,
27397
- onClick: handleClickEdit,
27398
- }] : []),
27399
- ]
27400
- }
27428
+ ...(props.permission && !props.disabled
27429
+ ? [
27430
+ {
27431
+ label: edit ? "Cancelar" : "Editar",
27432
+ icon: edit ? CancelIcon : EditIcon,
27433
+ onClick: handleClickEdit,
27434
+ },
27435
+ ]
27436
+ : []),
27437
+ ],
27438
+ },
27401
27439
  },
27402
27440
  onRowEditStart: ({ reason, row }, event) => {
27403
- if (!lodash.get(row, `obj_permissions.edit`) || (reason === xDataGrid.GridRowEditStartReasons.cellDoubleClick && !edit)) {
27441
+ if (!lodash.get(row, `obj_permissions.edit`) ||
27442
+ (reason === xDataGrid.GridRowEditStartReasons.cellDoubleClick && !edit)) {
27404
27443
  event.defaultMuiPrevented = true;
27405
27444
  }
27406
27445
  },
27407
27446
  // edit
27408
27447
  checkboxSelection: !edit,
27409
27448
  ...(edit ? { onRowClick: undefined } : []),
27410
- editMode: 'row',
27449
+ editMode: "row",
27411
27450
  rowModesModel: rowModesModel,
27412
27451
  onRowModesModelChange: setRowModesModel,
27413
27452
  processRowUpdate: processRowUpdate,
27414
27453
  loadingParams: [loadingMutation],
27415
27454
  }, props.dataGridProps);
27416
- const renderEditGrid = () => (jsxRuntime.jsx(core$1.DndContext, { sensors: sensors, collisionDetection: core$1.closestCenter, onDragEnd: handleDragEnd, modifiers: [
27417
- modifiers.restrictToVerticalAxis,
27418
- modifiers.restrictToWindowEdges,
27419
- modifiers.restrictToParentElement
27420
- ], autoScroll: false, children: jsxRuntime.jsx(sortable.SortableContext, { items: rows ? rows.map((row) => row.id.toString()) : [], strategy: sortable.verticalListSortingStrategy, children: props.renderFunction({ ...props.renderFunctionProps, dataGridProps: editGridProps }) }) }));
27455
+ const renderEditGrid = () => (jsxRuntime.jsx(core$1.DndContext, { sensors: sensors, collisionDetection: core$1.closestCenter, onDragEnd: handleDragEnd, modifiers: [modifiers.restrictToVerticalAxis, modifiers.restrictToWindowEdges, modifiers.restrictToParentElement], autoScroll: false, children: jsxRuntime.jsx(sortable.SortableContext, { items: rows ? rows.map((row) => row.id.toString()) : [], strategy: sortable.verticalListSortingStrategy, children: props.renderFunction({
27456
+ ...props.renderFunctionProps,
27457
+ dataGridProps: editGridProps,
27458
+ }) }) }));
27421
27459
  return renderEditGrid();
27422
27460
  };
27423
27461
 
@@ -27438,43 +27476,47 @@ const editColumn = (props) => {
27438
27476
  [id]: { mode: xDataGrid.GridRowModes.View, ignoreModifications: true },
27439
27477
  });
27440
27478
  };
27441
- return [{
27442
- field: 'edit',
27443
- headerName: 'Editar',
27444
- type: 'actions',
27479
+ return [
27480
+ {
27481
+ field: "edit",
27482
+ headerName: "Editar",
27483
+ type: "actions",
27445
27484
  width: 80,
27446
- cellClassName: 'actions',
27485
+ cellClassName: "actions",
27447
27486
  getActions: ({ id, row }) => {
27448
- const canEdit = get(row, 'obj_permissions.edit');
27487
+ const canEdit = get(row, "obj_permissions.edit");
27449
27488
  const isInEditMode = props.rowModesModel[id]?.mode === xDataGrid.GridRowModes.Edit;
27450
27489
  if (isInEditMode) {
27451
27490
  return [
27452
- jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(SaveIcon, {}), label: 'Guardar', color: 'primary', onClick: handleSaveClick(id) }, 'save'),
27453
- jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(CancelIcon, {}), label: 'Cancelar', className: 'textPrimary', onClick: handleCancelClick(id), color: 'inherit' }, 'cancel'),
27491
+ jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(SaveIcon, {}), label: "Guardar", color: "primary", onClick: handleSaveClick(id) }, "save"),
27492
+ jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(CancelIcon, {}), label: "Cancelar", className: "textPrimary", onClick: handleCancelClick(id), color: "inherit" }, "cancel"),
27454
27493
  ];
27455
27494
  }
27456
27495
  return [
27457
- jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(EditIcon, { sx: { color: canEdit ? 'black' : 'inherit' } }), label: 'Editar', className: 'textPrimary', onClick: handleEditClick(id), disabled: !canEdit }, 'edit'),
27496
+ jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(EditIcon, { sx: { color: canEdit ? "black" : "inherit" } }), label: "Editar", className: "textPrimary", onClick: handleEditClick(id), disabled: !canEdit }, "edit"),
27458
27497
  ];
27459
- }
27460
- }];
27498
+ },
27499
+ },
27500
+ ];
27461
27501
  };
27462
27502
 
27463
27503
  const deleteColumn = (props) => {
27464
27504
  if (!props.displayDelete)
27465
27505
  return [];
27466
- return [{
27467
- field: 'delete',
27468
- headerName: 'Eliminar',
27506
+ return [
27507
+ {
27508
+ field: "delete",
27509
+ headerName: "Eliminar",
27469
27510
  width: 80,
27470
- cellClassName: 'actions',
27511
+ cellClassName: "actions",
27471
27512
  renderCell: ({ id, row }) => {
27472
27513
  const canDelete = get(row, `obj_permissions.delete`, false);
27473
27514
  return [
27474
- jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(DeleteIcon, {}), label: 'Eliminar', className: 'textPrimary', onClick: props.handleOpen(id), color: 'primary', disabled: !canDelete }, 'delete')
27515
+ jsxRuntime.jsx(xDataGrid.GridActionsCellItem, { icon: jsxRuntime.jsx(DeleteIcon, {}), label: "Eliminar", className: "textPrimary", onClick: props.handleOpen(id), color: "primary", disabled: !canDelete }, "delete"),
27475
27516
  ];
27476
- }
27477
- }];
27517
+ },
27518
+ },
27519
+ ];
27478
27520
  };
27479
27521
 
27480
27522
  const DeleteGridWrapper = (props) => {
@@ -27488,25 +27530,25 @@ const DeleteGridWrapper = (props) => {
27488
27530
  setDeleteRowId(undefined);
27489
27531
  };
27490
27532
  const handleClickDelete = () => {
27491
- setDeleting(prevState => !prevState);
27533
+ setDeleting((prevState) => !prevState);
27492
27534
  };
27493
27535
  // ===== || KEYDOWN || ===== //
27494
27536
  const handleKeyPress = React.useCallback((event) => {
27495
27537
  if (props.permission) {
27496
- if (event.ctrlKey && event.shiftKey && event.key === 'D') {
27538
+ if (event.ctrlKey && event.shiftKey && event.key === "D") {
27497
27539
  event.preventDefault();
27498
27540
  setDeleting(true);
27499
27541
  }
27500
- else if (event.key === 'Escape' && event.shiftKey && deleting) {
27542
+ else if (event.key === "Escape" && event.shiftKey && deleting) {
27501
27543
  event.preventDefault();
27502
27544
  setDeleting(false);
27503
27545
  }
27504
27546
  }
27505
27547
  }, [props.permission, deleting]);
27506
27548
  React.useEffect(() => {
27507
- document.addEventListener('keydown', handleKeyPress);
27549
+ document.addEventListener("keydown", handleKeyPress);
27508
27550
  return () => {
27509
- document.removeEventListener('keydown', handleKeyPress);
27551
+ document.removeEventListener("keydown", handleKeyPress);
27510
27552
  };
27511
27553
  }, [handleKeyPress]);
27512
27554
  // ===== || GRID PROPS || ===== //
@@ -27520,20 +27562,23 @@ const DeleteGridWrapper = (props) => {
27520
27562
  slotProps: {
27521
27563
  toolbar: {
27522
27564
  extraButtons: [
27523
- ...(props.permission ? [{
27524
- label: deleting ? 'Cancelar' : 'Eliminar',
27525
- icon: deleting ? CancelIcon : DeleteIcon,
27526
- onClick: handleClickDelete,
27527
- }] : [])
27528
- ]
27529
- }
27565
+ ...(props.permission
27566
+ ? [
27567
+ {
27568
+ label: deleting ? "Cancelar" : "Eliminar",
27569
+ icon: deleting ? CancelIcon : DeleteIcon,
27570
+ onClick: handleClickDelete,
27571
+ },
27572
+ ]
27573
+ : []),
27574
+ ],
27575
+ },
27530
27576
  },
27531
27577
  // edit
27532
27578
  checkboxSelection: !deleting,
27533
27579
  ...(deleting ? { onRowClick: undefined } : []),
27534
27580
  }, props.dataGridProps);
27535
- const renderDeleteGrid = () => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.mutation &&
27536
- jsxRuntime.jsx(DeleteConfirmationDialog, { mutation: props.mutation, open: !!deleteRowId, handleClose: handleClose, id: deleteRowId, disableNavBack: true }), props.renderFunction({ ...props.renderFunctionProps, dataGridProps: deleteGridProps })] }));
27581
+ const renderDeleteGrid = () => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.mutation && (jsxRuntime.jsx(DeleteConfirmationDialog, { mutation: props.mutation, open: !!deleteRowId, handleClose: handleClose, id: deleteRowId, disableNavBack: true })), props.renderFunction({ ...props.renderFunctionProps, dataGridProps: deleteGridProps })] }));
27537
27582
  return renderDeleteGrid();
27538
27583
  };
27539
27584
 
@@ -27542,7 +27587,7 @@ const CreateGridWrapper = (props) => {
27542
27587
  const [anchorEl, setAnchorEl] = React.useState(null);
27543
27588
  const open = Boolean(anchorEl);
27544
27589
  const handleClick = () => {
27545
- setAnchorEl(document.getElementById('create-button'));
27590
+ setAnchorEl(document.getElementById("create-button"));
27546
27591
  };
27547
27592
  const handleClose = () => {
27548
27593
  setAnchorEl(null);
@@ -27557,51 +27602,56 @@ const CreateGridWrapper = (props) => {
27557
27602
  // ===== || KEYDOWN || ===== //
27558
27603
  const handleKeyPress = React.useCallback((event) => {
27559
27604
  if (props.permission) {
27560
- if (event.ctrlKey && event.key === 'e') {
27605
+ if (event.ctrlKey && event.key === "e") {
27561
27606
  event.preventDefault();
27562
27607
  handleClick();
27563
27608
  }
27564
27609
  }
27565
27610
  }, [props.permission]);
27566
27611
  React.useEffect(() => {
27567
- document.addEventListener('keydown', handleKeyPress);
27612
+ document.addEventListener("keydown", handleKeyPress);
27568
27613
  return () => {
27569
- document.removeEventListener('keydown', handleKeyPress);
27614
+ document.removeEventListener("keydown", handleKeyPress);
27570
27615
  };
27571
27616
  }, [handleKeyPress]);
27572
27617
  const createGridProps = mergeSettings({
27573
27618
  slotProps: {
27574
27619
  toolbar: {
27575
27620
  extraButtons: [
27576
- ...(props.permission ? [{
27577
- label: 'Crear',
27578
- icon: AddIcon,
27579
- onClick: handleClick,
27580
- buttonProps: {
27581
- id: 'create-button',
27582
- }
27583
- }] : []),
27584
- ]
27585
- }
27621
+ ...(props.permission
27622
+ ? [
27623
+ {
27624
+ label: "Crear",
27625
+ icon: AddIcon,
27626
+ onClick: handleClick,
27627
+ buttonProps: {
27628
+ id: "create-button",
27629
+ },
27630
+ },
27631
+ ]
27632
+ : []),
27633
+ ],
27634
+ },
27586
27635
  },
27587
27636
  }, props.dataGridProps);
27588
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(StyledMenu, { id: 'create-menu', MenuListProps: {
27589
- 'aria-labelledby': 'create-menu-button',
27590
- }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable && ([
27591
- {
27592
- title: 'CSV',
27593
- endpoint: props.pathname,
27594
- },
27595
- ...(props.csv_upload.extraOptions || [])
27596
- ].map((option, index) => {
27597
- return (jsxRuntime.jsx(MenuItem, { onClick: () => {
27598
- handleToggleOpen(option);
27599
- handleClose();
27600
- }, disableRipple: true, children: option.title }, index));
27601
- })), jsxRuntime.jsx(MenuItem, { onClick: () => {
27637
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(StyledMenu, { id: "create-menu", MenuListProps: {
27638
+ "aria-labelledby": "create-menu-button",
27639
+ }, anchorEl: anchorEl, open: open, onClose: handleClose, children: [props.csv_upload?.enable &&
27640
+ [
27641
+ {
27642
+ title: "CSV",
27643
+ endpoint: props.pathname,
27644
+ },
27645
+ ...(props.csv_upload.extraOptions || []),
27646
+ ].map((option, index) => {
27647
+ return (jsxRuntime.jsxs(MenuItem, { onClick: () => {
27648
+ handleToggleOpen(option);
27649
+ handleClose();
27650
+ }, disableRipple: true, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(AttachFileIcon, { sx: { transform: "rotate(90deg)" } }) }), option.title] }, index));
27651
+ }), jsxRuntime.jsxs(MenuItem, { onClick: () => {
27602
27652
  navigate(props.navigation ? `${props.navigation}crear` : `crear`);
27603
27653
  handleClose();
27604
- }, disableRipple: true, children: "Manual" })] }), props.csv_upload?.enable && (jsxRuntime.jsx(CSVUpload, { open: csv.open, drawerToggle: handleToggleClose, data: csv.data })), props.renderFunction({ dataGridProps: createGridProps })] }));
27654
+ }, disableRipple: true, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(DrawIcon, {}) }), "Manual"] })] }), props.csv_upload?.enable && (jsxRuntime.jsx(CSVUpload, { open: csv.open, drawerToggle: handleToggleClose, data: csv.data })), props.renderFunction({ dataGridProps: createGridProps })] }));
27605
27655
  };
27606
27656
 
27607
27657
  const Base = (props) => {
@@ -27858,13 +27908,13 @@ const ActiveCell = ({ value }) => {
27858
27908
  }, [value]);
27859
27909
  const renderIcon = React.useCallback(() => {
27860
27910
  const iconProps = {
27861
- size: 'small',
27911
+ size: "small",
27862
27912
  sx: {
27863
27913
  color: color[700],
27864
- fontSize: '30px',
27914
+ fontSize: "30px",
27865
27915
  stroke: color[700],
27866
- strokeWidth: 1.5
27867
- }
27916
+ strokeWidth: 1.5,
27917
+ },
27868
27918
  };
27869
27919
  switch (value) {
27870
27920
  case true:
@@ -27875,7 +27925,7 @@ const ActiveCell = ({ value }) => {
27875
27925
  return jsxRuntime.jsx(ErrorOutlineIcon, { ...iconProps });
27876
27926
  }
27877
27927
  }, [color, value]);
27878
- return (jsxRuntime.jsx(material.Box, { px: 2, py: 0.5, display: 'flex', alignItems: 'center', justifyContent: 'center', borderRadius: 2, borderColor: color[900], children: renderIcon() }));
27928
+ return (jsxRuntime.jsx(material.Box, { px: 2, py: 0.5, display: "flex", alignItems: "center", justifyContent: "center", borderRadius: 2, borderColor: color[900], children: renderIcon() }));
27879
27929
  };
27880
27930
 
27881
27931
  const MyGridEditSingleSelect = (props) => {
@@ -28037,34 +28087,38 @@ const Field = (props) => {
28037
28087
  return true;
28038
28088
  }, [props.data, props.dependantOn]);
28039
28089
  const renderField = React.useCallback(() => {
28040
- if (!props.pageType || props.pageType == 'list')
28090
+ if (!props.pageType || props.pageType == "list")
28041
28091
  return;
28042
- if (props.pageType == 'detail')
28092
+ if (props.pageType == "detail")
28043
28093
  return jsxRuntime.jsx(DetailField, { ...props });
28044
28094
  else
28045
28095
  return jsxRuntime.jsx(EditField, { ...props });
28046
28096
  }, [props]);
28047
28097
  if (!show)
28048
28098
  return;
28049
- return (jsxRuntime.jsxs(material.Grid, { rowSpacing: 1, container: true, size: "grow", direction: 'column', ...props.gridProps, children: [jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(material.Typography, { variant: 'body1', fontWeight: 'bold', children: props.label }) }), jsxRuntime.jsx(material.Grid, { size: 12, children: renderField() })] }));
28099
+ return (jsxRuntime.jsxs(material.Grid, { rowSpacing: 1, container: true, size: "grow", direction: "column", ...props.gridProps, children: [jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(material.Typography, { variant: "body1", fontWeight: "bold", children: props.label }) }), jsxRuntime.jsx(material.Grid, { size: 12, children: renderField() })] }));
28050
28100
  };
28051
28101
 
28052
28102
  const EditToolbar = (props) => {
28053
- return (jsxRuntime.jsxs(xDataGrid.Toolbar, { children: [props.pageType != 'detail' &&
28054
- jsxRuntime.jsx(Tooltip, { title: 'Crear', children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: props.handleCreate, children: jsxRuntime.jsx(AddIcon, { fontSize: "small" }) }) }), !!props.selected &&
28055
- jsxRuntime.jsx(Tooltip, { title: 'Borrar', children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: props.handleDelete, children: jsxRuntime.jsx(DeleteIcon, { fontSize: "small" }) }) })] }));
28103
+ return (jsxRuntime.jsxs(xDataGrid.Toolbar, { children: [props.pageType != "detail" && (jsxRuntime.jsx(Tooltip, { title: "Crear", children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: props.handleCreate, children: jsxRuntime.jsx(AddIcon, { fontSize: "small" }) }) })), !!props.selected && (jsxRuntime.jsx(Tooltip, { title: "Borrar", children: jsxRuntime.jsx(xDataGrid.ToolbarButton, { onClick: props.handleDelete, children: jsxRuntime.jsx(DeleteIcon, { fontSize: "small" }) }) }))] }));
28056
28104
  };
28057
28105
  const FieldArrayField = (props) => {
28058
28106
  const { fields, remove } = reactHookForm.useFieldArray({
28059
28107
  control: props.form.control,
28060
28108
  name: props.name,
28061
- keyName: '_id'
28109
+ keyName: "_id",
28062
28110
  });
28063
- const [drawer, setDrawer] = React.useState({ open: false, data: undefined });
28064
- const [rowSelectionModel, setRowSelectionModel] = React.useState({ type: 'include', ids: new Set() });
28065
- const getIndex = React.useCallback((id) => (lodash.findIndex(fields, function (field) {
28111
+ const [drawer, setDrawer] = React.useState({
28112
+ open: false,
28113
+ data: undefined,
28114
+ });
28115
+ const [rowSelectionModel, setRowSelectionModel] = React.useState({
28116
+ type: "include",
28117
+ ids: new Set(),
28118
+ });
28119
+ const getIndex = React.useCallback((id) => lodash.findIndex(fields, function (field) {
28066
28120
  return field._id == id;
28067
- })), [fields]);
28121
+ }), [fields]);
28068
28122
  const handleCreate = () => {
28069
28123
  setDrawer({ open: true, data: undefined });
28070
28124
  };
@@ -28087,7 +28141,7 @@ const FieldArrayField = (props) => {
28087
28141
  const handleRowClick = (e) => {
28088
28142
  setDrawer({ open: true, data: e.row });
28089
28143
  };
28090
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(material.Grid, { rowSpacing: 1, container: true, size: "grow", direction: 'column', ...props.gridProps, children: [jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(material.Typography, { variant: 'body1', fontWeight: 'bold', children: props.label }) }), jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(xDataGrid.DataGrid, { ...props.dataGridProps, rows: fields, checkboxSelection: props.pageType != 'detail', onRowSelectionModelChange: (newRowSelectionModel) => {
28144
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(material.Grid, { rowSpacing: 1, container: true, size: "grow", direction: "column", ...props.gridProps, children: [jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(material.Typography, { variant: "body1", fontWeight: "bold", children: props.label }) }), jsxRuntime.jsx(material.Grid, { size: 12, children: jsxRuntime.jsx(xDataGrid.DataGrid, { ...props.dataGridProps, rows: fields, checkboxSelection: props.pageType != "detail", onRowSelectionModelChange: (newRowSelectionModel) => {
28091
28145
  setRowSelectionModel(newRowSelectionModel);
28092
28146
  }, showToolbar: true, slots: { toolbar: EditToolbar }, slotProps: {
28093
28147
  toolbar: {
@@ -28096,7 +28150,7 @@ const FieldArrayField = (props) => {
28096
28150
  handleDelete: handleDelete,
28097
28151
  pageType: props.pageType,
28098
28152
  },
28099
- }, disableRowSelectionOnClick: true, onRowClick: handleRowClick, getRowId: (row) => row._id }) })] }), jsxRuntime.jsx(MainDrawer, { open: drawer.open, drawerToggle: closeDrawer, title: 'Cargo Adicional', children: jsxRuntime.jsx(material.Grid, { size: 12, container: true, children: props.fields.map((field) => {
28153
+ }, disableRowSelectionOnClick: true, onRowClick: handleRowClick, getRowId: (row) => row._id }) })] }), jsxRuntime.jsx(MainDrawer, { open: drawer.open, drawerToggle: closeDrawer, title: "Cargo Adicional", children: jsxRuntime.jsx(material.Grid, { size: 12, container: true, children: props.fields.map((field) => {
28100
28154
  const fieldName = `${props.name}.${getIndex(drawer.data?._id)}.${field.name}`;
28101
28155
  return (jsxRuntime.jsx(Field, { ...field, form: props.form, name: fieldName, fieldData: lodash.get(drawer.data, field.name) }, fieldName));
28102
28156
  }) }) })] }));
@@ -28194,10 +28248,10 @@ const Logo = () => {
28194
28248
  // ==============================|| PESTAÑAS ||============================== //
28195
28249
  /**
28196
28250
  * Pestañas customizables
28197
- **/
28251
+ **/
28198
28252
  const Tabs = (props) => {
28199
28253
  // valor inicial
28200
- const [value, setValue] = React.useState(props.initialValue || '1');
28254
+ const [value, setValue] = React.useState(props.initialValue || "1");
28201
28255
  // manejar cambio de pestaña
28202
28256
  const handleChange = (_event, newValue) => {
28203
28257
  setValue(newValue);
@@ -28205,29 +28259,33 @@ const Tabs = (props) => {
28205
28259
  };
28206
28260
  // hacer el render del contenido de la pestaña seleccionada
28207
28261
  const renderTabs = () => {
28208
- return (props.tabs.map((option) => {
28262
+ return props.tabs.map((option) => {
28209
28263
  const renderContent = () => {
28210
28264
  return React.Children.map(option.children, (child) => {
28211
28265
  const cloneProps = { ...child.props };
28212
- lodash.set(cloneProps, 'type', props.type);
28213
- lodash.set(cloneProps, 'slotProps.tab', option.value);
28266
+ lodash.set(cloneProps, "type", props.type);
28267
+ lodash.set(cloneProps, "slotProps.tab", option.value);
28214
28268
  return React.cloneElement(child, cloneProps);
28215
28269
  });
28216
28270
  };
28217
28271
  return (jsxRuntime.jsx(TabPanel, { value: option.value, sx: {
28218
- pt: 2, pb: 0, px: 0, width: 1, height: 1,
28272
+ pt: 2,
28273
+ pb: 0,
28274
+ px: 0,
28275
+ width: 1,
28276
+ height: 1,
28219
28277
  }, children: renderContent() }, option.value));
28220
- }));
28278
+ });
28221
28279
  };
28222
28280
  return (
28223
28281
  // contexto
28224
- jsxRuntime.jsx(material.Box, { width: 1, height: 'calc(100vh - 175px)', children: jsxRuntime.jsxs(TabContext, { value: value, children: [jsxRuntime.jsx(TabList, { onChange: handleChange, "aria-label": "create-work-order-tabs", variant: 'scrollable', scrollButtons: 'auto', sx: {
28225
- minHeight: 40
28282
+ jsxRuntime.jsx(material.Box, { width: 1, height: "calc(100vh - 175px)", children: jsxRuntime.jsxs(TabContext, { value: value, children: [jsxRuntime.jsx(TabList, { onChange: handleChange, "aria-label": "create-work-order-tabs", variant: "scrollable", scrollButtons: "auto", sx: {
28283
+ minHeight: 40,
28226
28284
  }, children: props.tabs.map((option) => {
28227
- return (jsxRuntime.jsx(Tab, { label: option.label, icon: option.icon, iconPosition: 'start', value: option.value, sx: {
28228
- color: 'secondary.light',
28285
+ return (jsxRuntime.jsx(Tab, { label: option.label, icon: option.icon, iconPosition: "start", value: option.value, sx: {
28286
+ color: "secondary.light",
28229
28287
  py: 0,
28230
- minHeight: 40
28288
+ minHeight: 40,
28231
28289
  } }, option.value));
28232
28290
  }) }), jsxRuntime.jsx(material.Box, { width: 1, height: 0.935, children: renderTabs() })] }) }));
28233
28291
  };
@@ -28311,7 +28369,7 @@ function DetailPage(props) {
28311
28369
  resolver: zod$1.zodResolver(props.edit.schema),
28312
28370
  defaultValues: props.edit?.defaultValues,
28313
28371
  });
28314
- const { data, isLoading, isFetching, error: fetchError } = props.api.data.query(!props.api.data.skipToken ? props.api.data.args : query$1.skipToken);
28372
+ const { data, isLoading, isFetching, error: fetchError, } = props.api.data.query(!props.api.data.skipToken ? props.api.data.args : query$1.skipToken);
28315
28373
  React.useEffect(() => {
28316
28374
  if (data) {
28317
28375
  // set form data based on query data
@@ -28319,7 +28377,7 @@ function DetailPage(props) {
28319
28377
  if (props.slots?.title) {
28320
28378
  const title = lodash.map(props.slots?.title, function (field) {
28321
28379
  return lodash.get(data, field);
28322
- }).join(' ');
28380
+ }).join(" ");
28323
28381
  if (title)
28324
28382
  dispatch(changeTitle(title));
28325
28383
  }
@@ -28330,60 +28388,64 @@ function DetailPage(props) {
28330
28388
  form.reset();
28331
28389
  navigate(-1);
28332
28390
  };
28333
- const canEdit = React.useMemo(() => lodash.get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ''}obj_permissions.edit`), [data, props.slotProps?.permissionsPath]);
28334
- const canDelete = React.useMemo(() => lodash.get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ''}obj_permissions.delete`), [data, props.slotProps?.permissionsPath]);
28391
+ const canEdit = React.useMemo(() => lodash.get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ""}obj_permissions.edit`), [data, props.slotProps?.permissionsPath]);
28392
+ const canDelete = React.useMemo(() => lodash.get(data, `${props.slotProps?.permissionsPath ? `${props.slotProps?.permissionsPath}.` : ""}obj_permissions.delete`), [data, props.slotProps?.permissionsPath]);
28335
28393
  // ==============================|| VALIDATION ||============================== //
28336
28394
  useValidateFieldData(props, form);
28337
28395
  // ==============================|| QUICK RETURN ||============================== //
28338
- if ((!canEdit && props.pageType == 'edit') || (fetchError && fetchError.originalStatus == 403))
28396
+ if ((!canEdit && props.pageType == "edit") || (fetchError && fetchError.originalStatus == 403))
28339
28397
  return jsxRuntime.jsx(NotAllowed, {});
28340
28398
  if (fetchError && fetchError.originalStatus == 404)
28341
28399
  return jsxRuntime.jsx(NotFound, {});
28342
28400
  // ==============================|| SUBMIT ||============================== //
28343
28401
  const onSubmitHandler = (submitedData) => {
28344
- const formData = 'nativeEvent' in submitedData ? form.getValues() : submitedData;
28402
+ const formData = "nativeEvent" in submitedData ? form.getValues() : submitedData;
28345
28403
  const params = { submitData: formData, data: data, props: props.slotProps?.parser };
28346
28404
  const dataToSend = props.edit.useFormData ? formDataForm(params) : jsonForm(params);
28347
- mutation(props.edit.useFormData ? dataToSend : { ...dataToSend, ...props.api.mutate.args }).unwrap()
28405
+ mutation(props.edit.useFormData ? dataToSend : { ...dataToSend, ...props.api.mutate.args })
28406
+ .unwrap()
28348
28407
  .then(() => {
28349
28408
  if (!props.slotProps?.button?.save?.disableNavBack)
28350
28409
  navigate(-1);
28351
28410
  if (props.slotProps?.button?.save?.onClick)
28352
28411
  props.slotProps?.button?.save?.onClick();
28353
28412
  form.reset();
28354
- notifications.show(`${capitalizedObject} ${props.pageType == 'edit' ? 'actualizad@' : 'cread@'}!`, { severity: 'success' });
28413
+ notifications.show(`${capitalizedObject} ${props.pageType == "edit" ? "actualizad@" : "cread@"}!`, { severity: "success" });
28355
28414
  })
28356
28415
  .catch((error) => {
28357
28416
  if (error.status === 401) ;
28358
28417
  if (error.status === 403) {
28359
- notifications.show(error.data.detail, { severity: 'error' });
28418
+ notifications.show(error.data.detail, { severity: "error" });
28360
28419
  }
28361
28420
  else {
28362
28421
  console.log(error);
28363
28422
  setErrors(form, error);
28364
- notifications.show((error.data.detail ?
28365
- error.data.detail.join(', ') :
28366
- `Error ${props.pageType == 'edit' ? 'actualizando' : 'creando'} ${props.object.name}!`), { severity: 'error' });
28423
+ notifications.show(error.data.detail
28424
+ ? error.data.detail.join(", ")
28425
+ : `Error ${props.pageType == "edit" ? "actualizando" : "creando"} ${props.object.name}!`, { severity: "error" });
28367
28426
  }
28368
28427
  });
28369
28428
  };
28370
28429
  // ==============================|| RENDER SECTIONS ||============================== //
28371
28430
  const renderContent = () => {
28372
28431
  let displayed_sections = -1;
28373
- return (jsxRuntime.jsxs(material.Grid, { size: 12, container: true, direction: 'column', position: 'relative', pb: 2, children: [props.pageType == 'detail' && data?.has_history && jsxRuntime.jsx(HistorialDrawer, { ...props.slotProps?.historial }), props.sections.map((section, index) => {
28432
+ return (jsxRuntime.jsxs(material.Grid, { size: 12, container: true, direction: "column", position: "relative", pb: 2, children: [props.pageType == "detail" && data?.has_history && (jsxRuntime.jsx(HistorialDrawer, { ...props.slotProps?.historial })), props.sections.map((section, index) => {
28374
28433
  if (!section.display)
28375
28434
  return null;
28376
- if (typeof section.display == 'object') {
28435
+ if (typeof section.display == "object") {
28377
28436
  const validateAgainst = form.watch(section.display.field)?.toString();
28378
28437
  if (!section.display.method(validateAgainst, section.display.value))
28379
28438
  return null;
28380
28439
  }
28381
28440
  displayed_sections += 1;
28382
- return (jsxRuntime.jsx(Section, { data: data, form: form, bgColor: displayed_sections % 2 == 1 ? 'white' : '#F7F7F7', pageType: props.pageType, ...section, first: displayed_sections == 0 }, index));
28441
+ return (jsxRuntime.jsx(Section, { data: data, form: form, bgColor: displayed_sections % 2 == 1 ? "white" : "#F7F7F7", pageType: props.pageType, ...section, first: displayed_sections == 0 }, index));
28383
28442
  })] }));
28384
28443
  };
28385
28444
  const renderPostAction = () => {
28386
- if (props.api.mutate.postAction && isSuccess && 'post_action' in mutationResponse && mutationResponse['post_action']['type'] === props.api.mutate.postAction.type) {
28445
+ if (props.api.mutate.postAction &&
28446
+ isSuccess &&
28447
+ "post_action" in mutationResponse &&
28448
+ mutationResponse["post_action"]["type"] === props.api.mutate.postAction.type) {
28387
28449
  switch (props.api.mutate.postAction.after) {
28388
28450
  // case 'create':
28389
28451
  // if (props.pageType === 'create') return addPropsToNode(props.api.mutate.postAction.node, mutationResponse);
@@ -28392,37 +28454,44 @@ function DetailPage(props) {
28392
28454
  // if (props.pageType === 'edit') return props.api.mutate.postAction.node;
28393
28455
  // break;
28394
28456
  default:
28395
- return addPropsToNode(props.api.mutate.postAction.node, { parent: props.api.data.args['id'], ...mutationResponse['post_action'] });
28457
+ return addPropsToNode(props.api.mutate.postAction.node, {
28458
+ parent: props.api.data.args["id"],
28459
+ ...mutationResponse["post_action"],
28460
+ });
28396
28461
  }
28397
28462
  }
28398
28463
  };
28399
- const badgeInfo = lodash.get(data, props.slots?.badge || '');
28464
+ const badgeInfo = lodash.get(data, props.slots?.badge || "");
28400
28465
  const renderButton = () => {
28401
28466
  if (props.slots?.button)
28402
28467
  return props.slots?.button;
28403
- if (props.pageType == 'detail') {
28468
+ if (props.pageType == "detail") {
28404
28469
  if (!canEdit && !canDelete)
28405
28470
  return null;
28406
- return (jsxRuntime.jsxs(material.Stack, { direction: 'row', spacing: 1, children: [canDelete && props.api.delete && jsxRuntime.jsx(DeleteButton, { mutation: props.api.delete.mutation, disableNavBack: props.slotProps?.deleteButton?.disableNavBack }), canEdit && jsxRuntime.jsx(EditButton, {})] }));
28471
+ return (jsxRuntime.jsxs(material.Stack, { direction: "row", spacing: 1, children: [canDelete && props.api.delete && (jsxRuntime.jsx(DeleteButton, { mutation: props.api.delete.mutation, disableNavBack: props.slotProps?.deleteButton?.disableNavBack })), canEdit && jsxRuntime.jsx(EditButton, {})] }));
28407
28472
  }
28408
28473
  else {
28409
28474
  return (jsxRuntime.jsx(SaveCancelButton, { slotProps: {
28410
28475
  saveBtn: {
28411
28476
  loading: mutationIsLoading,
28412
28477
  disabled: !form.formState.isDirty,
28413
- ...(props.slotProps?.button?.save?.type == 'onClick' ? {
28414
- type: 'button',
28415
- onClick: onSubmitHandler,
28416
- } : {}),
28478
+ ...(props.slotProps?.button?.save?.type == "onClick"
28479
+ ? {
28480
+ type: "button",
28481
+ onClick: onSubmitHandler,
28482
+ }
28483
+ : {}),
28417
28484
  },
28418
- ...(props.slotProps?.button?.cancel ? { cancelBtn: props.slotProps?.button?.cancel } : {
28419
- cancelBtn: { onClick: handleCancel }
28420
- }),
28485
+ ...(props.slotProps?.button?.cancel
28486
+ ? { cancelBtn: props.slotProps?.button?.cancel }
28487
+ : {
28488
+ cancelBtn: { onClick: handleCancel },
28489
+ }),
28421
28490
  } }));
28422
28491
  }
28423
28492
  };
28424
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ContentLayout, { button: renderButton(), badge: props.pageType == 'detail' && badgeInfo &&
28425
- jsxRuntime.jsx(StatusBadge, { title: badgeInfo['label'], severity: badgeInfo['value'] }), children: jsxRuntime.jsx(LoadingComponent, { height: 0.7, isLoading: isLoading || isFetching, children: jsxRuntime.jsx(reactHookForm.FormProvider, { ...form, children: jsxRuntime.jsx(material.Box, { id: 'formulario', component: 'form', autoComplete: "off", noValidate: true, onSubmit: form.handleSubmit(onSubmitHandler), width: '100%', position: 'relative', children: renderContent() }) }) }) }), renderPostAction()] }));
28493
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ContentLayout, { button: renderButton(), badge: props.pageType == "detail" &&
28494
+ badgeInfo && (jsxRuntime.jsx(StatusBadge, { title: badgeInfo["label"], severity: badgeInfo["value"] })), children: jsxRuntime.jsx(LoadingComponent, { height: 0.7, isLoading: isLoading || isFetching, children: jsxRuntime.jsx(reactHookForm.FormProvider, { ...form, children: jsxRuntime.jsx(material.Box, { id: "formulario", component: "form", autoComplete: "off", noValidate: true, onSubmit: form.handleSubmit(onSubmitHandler), width: "100%", position: "relative", children: renderContent() }) }) }) }), renderPostAction()] }));
28426
28495
  }
28427
28496
 
28428
28497
  const ListPage = (props) => {
@@ -28430,19 +28499,20 @@ const ListPage = (props) => {
28430
28499
  };
28431
28500
 
28432
28501
  function SlideTransition(props) {
28433
- return jsxRuntime.jsx(material.Slide, { ...props, direction: 'left' });
28502
+ return jsxRuntime.jsx(material.Slide, { ...props, direction: "left" });
28434
28503
  }
28435
28504
  const BaseProgressSnack = (props) => {
28436
- // const dispatch = useAppDispatch();
28505
+ console.log(props);
28506
+ const dispatch = reactRedux.useDispatch();
28437
28507
  const handleClose = (e) => {
28438
28508
  if (e?.defaultMuiPrevented)
28439
28509
  return;
28440
- // dispatch(closeProgressSnack(props.id));
28510
+ dispatch(closeProgressSnack(props.id));
28441
28511
  };
28442
- const finished = React.useMemo(() => lodash.get(props.data, 'finished'), [props.data]);
28443
- const error = React.useMemo(() => lodash.get(props.data, 'error'), [props.data]);
28512
+ const finished = React.useMemo(() => lodash.get(props.data, "finished"), [props.data]);
28513
+ const error = React.useMemo(() => lodash.get(props.data, "error"), [props.data]);
28444
28514
  const renderItem = React.useCallback(() => {
28445
- return (jsxRuntime.jsx(material.Snackbar, { anchorOrigin: { vertical: 'bottom', horizontal: 'right' }, open: props.open, onClose: handleClose, slots: {
28515
+ return (jsxRuntime.jsx(material.Snackbar, { anchorOrigin: { vertical: "bottom", horizontal: "right" }, open: props.open, onClose: handleClose, slots: {
28446
28516
  transition: SlideTransition,
28447
28517
  }, slotProps: {
28448
28518
  clickAwayListener: {
@@ -28450,27 +28520,27 @@ const BaseProgressSnack = (props) => {
28450
28520
  event.defaultMuiPrevented = true;
28451
28521
  },
28452
28522
  },
28453
- }, children: jsxRuntime.jsx(material.Badge, { invisible: props.index < 1, badgeContent: props.index + 1, color: 'primary', children: jsxRuntime.jsx(material.Paper, { elevation: 2, sx: {
28454
- bgcolor: props.data['error'] ? 'primary.main' : 'secondary.dark',
28523
+ }, children: jsxRuntime.jsx(material.Badge, { invisible: props.index < 1, badgeContent: props.index + 1, color: "primary", children: jsxRuntime.jsx(material.Paper, { elevation: 2, sx: {
28524
+ bgcolor: props.data["error"] ? "primary.main" : "secondary.dark",
28455
28525
  minWidth: 300,
28456
- maxWidth: '100vw',
28526
+ maxWidth: "100vw",
28457
28527
  p: 2,
28458
- borderRadius: '12px',
28459
- color: 'white',
28460
- }, children: jsxRuntime.jsxs(material.Stack, { direction: 'column', spacing: 1, children: [jsxRuntime.jsxs(material.Stack, { direction: 'row', alignItems: 'center', spacing: 1, justifyContent: 'space-between', children: [jsxRuntime.jsx(material.Typography, { pr: 2, color: 'inherit', children: props.data.title || 'N/A' }), finished && !error && (jsxRuntime.jsx(material.Tooltip, { title: 'Cerrar', placement: 'bottom', children: jsxRuntime.jsx(material.IconButton, { color: 'secondary', size: 'small', onClick: handleClose, sx: {
28461
- color: 'inherit',
28462
- '&:hover': {
28463
- backgroundColor: 'rgba(255, 255, 255, 0.2)'
28528
+ borderRadius: "12px",
28529
+ color: "white",
28530
+ }, children: jsxRuntime.jsxs(material.Stack, { direction: "column", spacing: 1, children: [jsxRuntime.jsxs(material.Stack, { direction: "row", alignItems: "center", spacing: 1, justifyContent: "space-between", children: [jsxRuntime.jsx(material.Typography, { pr: 2, color: "inherit", children: props.data.title || "N/A" }), finished && !error && (jsxRuntime.jsx(material.Tooltip, { title: "Cerrar", placement: "bottom", children: jsxRuntime.jsx(material.IconButton, { color: "secondary", size: "small", onClick: handleClose, sx: {
28531
+ color: "inherit",
28532
+ "&:hover": {
28533
+ backgroundColor: "rgba(255, 255, 255, 0.2)",
28464
28534
  },
28465
- }, children: jsxRuntime.jsx(CloseIcon, { fontSize: 'small' }) }) }))] }), !finished && !error && props.content(props.data)] }) }) }) }));
28535
+ }, children: jsxRuntime.jsx(CloseIcon, { fontSize: "small" }) }) }))] }), !finished && !error && props.content(props.data)] }) }) }) }));
28466
28536
  // eslint-disable-next-line react-hooks/exhaustive-deps
28467
28537
  }, [finished, props]);
28468
28538
  return renderItem();
28469
28539
  };
28470
28540
 
28471
28541
  const ObjectProgressStack = (props) => {
28472
- const snacks = reactRedux.useSelector(state => lodash.get(state, 'snackProgress', {}));
28473
- return (jsxRuntime.jsx(material.Stack, { direction: 'column', spacing: 2, children: Object.keys(snacks).map((key, index) => {
28542
+ const snacks = reactRedux.useSelector((state) => lodash.get(state, "snackProgress", {}));
28543
+ return (jsxRuntime.jsx(material.Stack, { direction: "column", spacing: 2, children: Object.keys(snacks).map((key, index) => {
28474
28544
  return (jsxRuntime.jsx(BaseProgressSnack, { id: key, index: index, ...snacks[key], content: props.content }, key));
28475
28545
  }) }));
28476
28546
  };