componentes-sinco 1.0.7 → 1.0.9

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.
package/dist/index.cjs CHANGED
@@ -68,6 +68,7 @@ __export(src_exports, {
68
68
  PageHeader: () => PageHeader,
69
69
  SCAutocomplete: () => SCAutocomplete,
70
70
  SCCalendarSwipeable: () => SCCalendarSwipeable,
71
+ SCCard: () => SCCard,
71
72
  SCDataGrid: () => SCDataGrid,
72
73
  SCDataGridInitial: () => SCDataGridInitial,
73
74
  SCDateRange: () => SCDateRange,
@@ -79,6 +80,7 @@ __export(src_exports, {
79
80
  SCTabs: () => SCTabs,
80
81
  SCTextArea: () => SCTextArea,
81
82
  SCTextField: () => SCTextField,
83
+ SCTime: () => SCTime,
82
84
  SCToastNotification: () => SCToastNotification,
83
85
  SincoTheme: () => SincoTheme,
84
86
  ToastProgress: () => ToastProgress,
@@ -96,10 +98,12 @@ __export(src_exports, {
96
98
  module.exports = __toCommonJS(src_exports);
97
99
 
98
100
  // src/Components/Drawer/SCDrawer.tsx
99
- var import_react8 = __toESM(require("react"), 1);
101
+ var import_react9 = __toESM(require("react"), 1);
100
102
  var import_material7 = require("@mui/material");
101
103
  var import_Grid23 = __toESM(require("@mui/material/Grid2"), 1);
102
104
  var import_Close = __toESM(require("@mui/icons-material/Close"), 1);
105
+ var import_ArrowBackIos = __toESM(require("@mui/icons-material/ArrowBackIos"), 1);
106
+ var import_ArrowForwardIos = __toESM(require("@mui/icons-material/ArrowForwardIos"), 1);
103
107
 
104
108
  // src/Components/Textfield/SCTextField.tsx
105
109
  var import_react = __toESM(require("react"), 1);
@@ -733,11 +737,9 @@ function SCSelect({
733
737
  width = "100%",
734
738
  size = "small",
735
739
  variant = "outlined",
736
- deleteType = "button",
740
+ background = "white",
737
741
  required,
738
742
  disabled,
739
- background,
740
- fnAplicar,
741
743
  setState,
742
744
  state
743
745
  }) {
@@ -812,14 +814,20 @@ function SCSelect({
812
814
  MenuProps: {
813
815
  PaperProps: {
814
816
  sx: {
815
- left: "0px !important"
817
+ maxHeight: "300px",
818
+ minWidth: "100%"
816
819
  }
817
820
  },
818
- sx: {
819
- "& .MuiPaper-root": {
820
- left: "0px !important"
821
- }
822
- }
821
+ anchorOrigin: {
822
+ vertical: "bottom",
823
+ horizontal: "left"
824
+ },
825
+ transformOrigin: {
826
+ vertical: "top",
827
+ horizontal: "left"
828
+ },
829
+ disableAutoFocusItem: true,
830
+ marginThreshold: 0
823
831
  }
824
832
  },
825
833
  data.map((option, index) => {
@@ -851,7 +859,6 @@ function SCAutocomplete({
851
859
  state,
852
860
  inputChange,
853
861
  maxCheck
854
- // Agregar el parámetro maxCheck
855
862
  }) {
856
863
  const labelContent = `<span style="color: red;">* </span>` + label;
857
864
  let group = "";
@@ -945,6 +952,7 @@ function SCAutocomplete({
945
952
  {
946
953
  multiple: typeFormat === "multiselect",
947
954
  clearOnEscape: true,
955
+ noOptionsText: "No se encuentra",
948
956
  disabled,
949
957
  options: data,
950
958
  isOptionEqualToValue: (option, value) => getItemValue(option).value === getItemValue(value).value,
@@ -1188,29 +1196,81 @@ var getIcon2 = (iconName) => {
1188
1196
  };
1189
1197
 
1190
1198
  // src/Components/Drawer/Helpers/validateInput.tsx
1191
- var validateInputs = (arrayElements, onError, onSuccess) => {
1192
- var _a;
1199
+ var validateInputs = (arrayElements, onError, onSuccess, setChipFilters, setTextFilters) => {
1200
+ var _a, _b;
1193
1201
  let requiredValues = 0;
1194
1202
  let filledValues = 0;
1195
1203
  for (let i = 0; i < arrayElements.length; i++) {
1196
- if (arrayElements[i].component === void 0) {
1197
- if (arrayElements[i].required) {
1198
- requiredValues++;
1199
- }
1200
- if (arrayElements[i].required && ((_a = arrayElements[i].state) == null ? void 0 : _a.trim()) !== "") {
1204
+ const element = arrayElements[i];
1205
+ const { validation, element: typeElement } = validateTypeElements(element);
1206
+ const textValue = ((_a = typeElement.state) == null ? void 0 : _a.textValue) !== void 0 ? String((_b = typeElement.state) == null ? void 0 : _b.textValue) : String(typeElement.state);
1207
+ if (typeElement == null ? void 0 : typeElement.required) {
1208
+ requiredValues++;
1209
+ if (textValue.trim() !== "" && textValue.trim() !== ",") {
1201
1210
  filledValues++;
1202
1211
  }
1203
1212
  }
1204
1213
  }
1205
1214
  if (requiredValues === filledValues) {
1206
1215
  onSuccess();
1216
+ setChipFilters(true);
1207
1217
  } else {
1208
1218
  onError({
1209
1219
  type: "error",
1210
1220
  title: "Algunos campos son requeridos",
1211
1221
  time: 10
1212
1222
  });
1223
+ setChipFilters(false);
1224
+ }
1225
+ };
1226
+
1227
+ // src/Components/Drawer/Helpers/validateTypeElement.tsx
1228
+ var import_react8 = __toESM(require("react"), 1);
1229
+ var validateTypeElements = (element) => {
1230
+ var _a;
1231
+ let validation = "";
1232
+ let typeElement = element;
1233
+ if (element.type == "textField") {
1234
+ validation = "textField";
1235
+ typeElement = element;
1236
+ } else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCtextField") {
1237
+ validation = "textField";
1238
+ typeElement = element == null ? void 0 : element.component.props;
1239
+ } else if (element.type == "textArea") {
1240
+ validation = "textArea";
1241
+ typeElement = element;
1242
+ } else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCtextArea") {
1243
+ validation = "textArea";
1244
+ typeElement = element == null ? void 0 : element.component.props;
1245
+ } else if (element.type == "dateRange") {
1246
+ validation = "dateRange";
1247
+ typeElement = element;
1248
+ } else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCDateRange") {
1249
+ validation = "dateRange";
1250
+ typeElement = element == null ? void 0 : element.component.props;
1251
+ } else if (element.type == "autocomplete") {
1252
+ validation = "autocomplete";
1253
+ typeElement = element;
1254
+ } else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCAutocomplete") {
1255
+ validation = "autocomplete";
1256
+ typeElement = element == null ? void 0 : element.component.props;
1257
+ } else if (element.typeFormat == "multiselect") {
1258
+ validation = "multiselect";
1259
+ typeElement = element;
1260
+ } else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.props && ((_a = element == null ? void 0 : element.component) == null ? void 0 : _a.props).typeFormat == "multiselect") {
1261
+ validation = "multiselect";
1262
+ typeElement = element == null ? void 0 : element.component.props;
1263
+ } else if (element.type == "select") {
1264
+ validation = "select";
1265
+ typeElement = element;
1266
+ } else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCSelect") {
1267
+ validation = "select";
1268
+ typeElement = element == null ? void 0 : element.component.props;
1213
1269
  }
1270
+ return {
1271
+ validation,
1272
+ element: typeElement
1273
+ };
1214
1274
  };
1215
1275
 
1216
1276
  // src/Components/Drawer/SCDrawer.tsx
@@ -1225,16 +1285,42 @@ function SCDrawer({
1225
1285
  anchor = "left",
1226
1286
  width,
1227
1287
  //Funcionales
1228
- open
1288
+ open,
1289
+ setOpen,
1290
+ chipFilters
1229
1291
  }) {
1230
1292
  var _a, _b;
1231
- const [drawerOpen, setDrawerOpen] = import_react8.default.useState(open);
1232
- const [toast, setToast] = import_react8.default.useState(null);
1293
+ const scrollRef = (0, import_react9.useRef)(null);
1294
+ const [drawerOpen, setDrawerOpen] = import_react9.default.useState(open);
1295
+ const [toast, setToast] = import_react9.default.useState(null);
1296
+ const [stateChipFilters, setChipFilters] = import_react9.default.useState(false);
1297
+ const [textFilters, setTextFilters] = import_react9.default.useState([]);
1298
+ (0, import_react9.useEffect)(() => {
1299
+ if (chipFilters != void 0) {
1300
+ if (chipFilters.length > 0) {
1301
+ setTextFilters([]);
1302
+ inputValidation();
1303
+ }
1304
+ }
1305
+ }, [chipFilters]);
1306
+ (0, import_react9.useEffect)(() => {
1307
+ if (open) {
1308
+ toggleDrawer(true);
1309
+ } else {
1310
+ handleDrawerClose();
1311
+ }
1312
+ }, [open]);
1233
1313
  const handleDrawerClose = () => {
1234
1314
  setDrawerOpen(false);
1315
+ if (setOpen) {
1316
+ setOpen(false);
1317
+ }
1235
1318
  };
1236
1319
  const toggleDrawer = (newOpen) => () => {
1237
1320
  setDrawerOpen(newOpen);
1321
+ if (setOpen) {
1322
+ setOpen(true);
1323
+ }
1238
1324
  };
1239
1325
  const ButtonIcon = getIcon2(buttonDrawer == null ? void 0 : buttonDrawer.icon);
1240
1326
  const setToastWithDelay = (toastContent) => {
@@ -1243,39 +1329,179 @@ function SCDrawer({
1243
1329
  setToast(toastContent);
1244
1330
  }, 10);
1245
1331
  };
1246
- const inputValidation = () => validateInputs(arrayElements, setToastWithDelay, handleDrawerClose);
1247
- const clean = () => {
1248
- arrayElements.forEach((element, index) => {
1249
- var _a2, _b2, _c, _d, _e, _f, _g, _h;
1250
- if (element.setState || import_react8.default.isValidElement(element == null ? void 0 : element.component) && ((_a2 = element.component.props) == null ? void 0 : _a2.setState)) {
1251
- if (element.type === "textField" || import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name === "SCtextField" || (element.type === "textArea" || import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name === "SCtextArea")) {
1252
- element.setState != void 0 ? element.setState("") : null;
1253
- import_react8.default.isValidElement(element == null ? void 0 : element.component) && ((_b2 = element.component.props) == null ? void 0 : _b2.setState) && ((_d = (_c = element == null ? void 0 : element.component) == null ? void 0 : _c.props) == null ? void 0 : _d.setState(""));
1254
- } else if (element.type === "dateRange" || import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name === "SCDateRange") {
1255
- element.setState != void 0 ? element.setState([null, null]) : null;
1256
- import_react8.default.isValidElement(element == null ? void 0 : element.component) && typeof ((_e = element.component.props) == null ? void 0 : _e.setState) === "function" && element.component.props.setState([null, null]);
1257
- } else {
1258
- if (element.type == "autocomplete" || import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name === "SCAutocomplete" || (element.typeFormat == "multiselect" || import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.props && ((_f = element == null ? void 0 : element.component) == null ? void 0 : _f.props).typeFormat == "multiselect")) {
1259
- element.setState != void 0 ? element.setState({ hiddenValue: [], textValue: [] }) : null;
1260
- import_react8.default.isValidElement(element == null ? void 0 : element.component) && typeof ((_g = element.component.props) == null ? void 0 : _g.setState) === "function" && element.component.props.setState({ hiddenValue: [], textValue: [] });
1332
+ const inputValidation = () => {
1333
+ var _a2, _b2, _c, _d;
1334
+ if (chipFilters != void 0 && chipFilters.length > 0) {
1335
+ if (chipFilters && chipFilters.length > 0) {
1336
+ arrayElements.forEach((arrayElement) => {
1337
+ var _a3, _b3, _c2;
1338
+ const { validation, element: typeElement } = validateTypeElements(arrayElement);
1339
+ let currentValue = "";
1340
+ if (validation === "dateRange") {
1341
+ if (typeElement.state && typeElement.state[0] && typeElement.state[1]) {
1342
+ currentValue = `${(_a3 = typeElement.state[0]) == null ? void 0 : _a3.format("DD/MM/YYYY")} - ${(_b3 = typeElement.state[1]) == null ? void 0 : _b3.format("DD/MM/YYYY")}`;
1343
+ }
1344
+ } else {
1345
+ currentValue = ((_c2 = typeElement.state) == null ? void 0 : _c2.textValue) !== void 0 ? String(typeElement.state.textValue).trim() : String(typeElement.state).trim();
1346
+ }
1347
+ chipFilters.forEach((chipFilter) => {
1348
+ const chipValue = String(chipFilter).trim();
1349
+ if (currentValue === chipValue && currentValue !== "" && currentValue !== ",") {
1350
+ setTextFilters((prevFilters) => {
1351
+ const newFilter = { value: currentValue, arrayElement: typeElement };
1352
+ const existingFilterIndex = prevFilters.findIndex(
1353
+ (filter) => filter.arrayElement.label === arrayElement.label
1354
+ );
1355
+ if (existingFilterIndex !== -1) {
1356
+ const updatedFilters = [...prevFilters];
1357
+ updatedFilters[existingFilterIndex] = newFilter;
1358
+ return updatedFilters;
1359
+ } else {
1360
+ return [...prevFilters, newFilter];
1361
+ }
1362
+ });
1363
+ }
1364
+ });
1365
+ });
1366
+ }
1367
+ } else {
1368
+ const newFiltersToAdd = [];
1369
+ for (let i = 0; i < arrayElements.length; i++) {
1370
+ const element = arrayElements[i];
1371
+ const { validation, element: typeElement } = validateTypeElements(element);
1372
+ const textValue = ((_a2 = typeElement.state) == null ? void 0 : _a2.textValue) !== void 0 ? String((_b2 = typeElement.state) == null ? void 0 : _b2.textValue) : String(typeElement.state);
1373
+ if (textValue.trim() !== "" && textValue.trim() !== ",") {
1374
+ let newFilter;
1375
+ switch (validation) {
1376
+ case "dateRange":
1377
+ const values = `${(_c = typeElement.state[0]) == null ? void 0 : _c.format("DD/MM/YYYY")} - ${(_d = typeElement.state[1]) == null ? void 0 : _d.format("DD/MM/YYYY")}`;
1378
+ newFilter = { value: values, arrayElement: typeElement };
1379
+ break;
1380
+ default:
1381
+ newFilter = { value: textValue, arrayElement: typeElement };
1382
+ break;
1383
+ }
1384
+ const existingFilterByLabel = newFiltersToAdd.find(
1385
+ (filter) => filter.arrayElement.label === element.label
1386
+ );
1387
+ if (existingFilterByLabel) {
1388
+ existingFilterByLabel.value = newFilter.value;
1389
+ existingFilterByLabel.arrayElement = newFilter.arrayElement;
1261
1390
  } else {
1262
- element.setState != void 0 ? element.setState({ hiddenValue: "-1", textValue: "" }) : null;
1263
- import_react8.default.isValidElement(element == null ? void 0 : element.component) && typeof ((_h = element.component.props) == null ? void 0 : _h.setState) === "function" && element.component.props.setState({ hiddenValue: "-1", textValue: "" });
1391
+ newFiltersToAdd.push(newFilter);
1264
1392
  }
1265
1393
  }
1266
1394
  }
1395
+ setTextFilters((prevFilters) => {
1396
+ let updatedFilters = [...prevFilters];
1397
+ newFiltersToAdd.forEach((newFilter) => {
1398
+ const existingFilterIndex = updatedFilters.findIndex(
1399
+ (filter) => filter.arrayElement.label === newFilter.arrayElement.label
1400
+ );
1401
+ if (existingFilterIndex !== -1) {
1402
+ updatedFilters[existingFilterIndex] = newFilter;
1403
+ } else {
1404
+ updatedFilters.push(newFilter);
1405
+ }
1406
+ });
1407
+ return updatedFilters;
1408
+ });
1409
+ validateInputs(arrayElements, setToastWithDelay, handleDrawerClose, setChipFilters, setTextFilters);
1410
+ }
1411
+ };
1412
+ const resetElementByType = (originalElement, validation, typeElement) => {
1413
+ let defaultValue;
1414
+ switch (validation) {
1415
+ case "textField":
1416
+ case "textArea":
1417
+ defaultValue = "";
1418
+ break;
1419
+ case "dateRange":
1420
+ defaultValue = [null, null];
1421
+ break;
1422
+ case "multiselect":
1423
+ defaultValue = { hiddenValue: [], textValue: [] };
1424
+ break;
1425
+ default:
1426
+ defaultValue = { hiddenValue: "-1", textValue: "" };
1427
+ }
1428
+ if (typeElement.setState) {
1429
+ typeElement.setState(defaultValue);
1430
+ }
1431
+ };
1432
+ const cleanFilters = () => {
1433
+ arrayElements.forEach((element) => {
1434
+ const { validation, element: typeElement } = validateTypeElements(element);
1435
+ if (typeElement.setState) {
1436
+ resetElementByType(element, validation, typeElement);
1437
+ }
1438
+ });
1439
+ setTextFilters([]);
1440
+ };
1441
+ const deleteFilter = (element) => {
1442
+ const { validation, element: typeElement } = validateTypeElements(element);
1443
+ if (typeElement.setState && shouldShowChips == true) {
1444
+ resetElementByType(element, validation, typeElement);
1445
+ setTextFilters(
1446
+ (prevFilters) => prevFilters.filter((filter) => filter.arrayElement.label !== element.label)
1447
+ );
1448
+ }
1449
+ };
1450
+ const scroll = (offset) => {
1451
+ if (scrollRef.current) {
1452
+ scrollRef.current.scrollLeft += offset;
1453
+ }
1454
+ };
1455
+ const hasActiveFilters = () => {
1456
+ return arrayElements.some((arrayElement) => {
1457
+ const { validation, element: typeElement } = validateTypeElements(arrayElement);
1458
+ if (typeElement.state.textValue !== void 0) {
1459
+ return String(typeElement.state.textValue).trim() !== "";
1460
+ } else if (validation === "dateRange") {
1461
+ return typeElement.state && typeElement.state[0] !== null && typeElement.state[1] !== null;
1462
+ } else {
1463
+ return String(typeElement.state).trim() !== "" && String(typeElement.state).trim() !== ",";
1464
+ }
1267
1465
  });
1268
1466
  };
1269
- const actionsA = actions == false ? false : actions != void 0 ? actions : [{ text: "Aplicar filtros", fn: inputValidation }, { text: "Limpiar filtros", fn: clean }];
1270
- return /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, toast && /* @__PURE__ */ import_react8.default.createElement(SCToastNotification, __spreadValues({}, toast)), (buttonDrawer == null ? void 0 : buttonDrawer.type) == "chip" ? /* @__PURE__ */ import_react8.default.createElement(
1467
+ const shouldShowChips = chipFilters != void 0 && chipFilters.length > 0 ? true : stateChipFilters === true && hasActiveFilters();
1468
+ const actionsA = actions == false ? false : actions != void 0 ? actions : [{ text: "Aplicar filtros", fn: inputValidation }, { text: "Limpiar filtros", fn: cleanFilters }];
1469
+ return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, toast && /* @__PURE__ */ import_react9.default.createElement(SCToastNotification, __spreadValues({}, toast)), /* @__PURE__ */ import_react9.default.createElement(import_Grid23.default, { container: true, justifyContent: "flex-start", flexWrap: "nowrap", alignItems: "center", sx: { width: "100%" } }, shouldShowChips && /* @__PURE__ */ import_react9.default.createElement(import_material7.Box, { display: "flex", alignItems: "center", sx: { maxWidth: "78%" } }, /* @__PURE__ */ import_react9.default.createElement(import_material7.IconButton, { onClick: () => scroll(-150), size: "small" }, /* @__PURE__ */ import_react9.default.createElement(import_ArrowBackIos.default, { fontSize: "small" })), /* @__PURE__ */ import_react9.default.createElement(
1470
+ import_material7.Box,
1471
+ {
1472
+ ref: scrollRef,
1473
+ gap: 0.3,
1474
+ sx: {
1475
+ display: "flex",
1476
+ overflowX: "auto",
1477
+ scrollBehavior: "smooth",
1478
+ "&::-webkit-scrollbar": { display: "none" }
1479
+ }
1480
+ },
1481
+ textFilters == null ? void 0 : textFilters.map((chipData, index) => /* @__PURE__ */ import_react9.default.createElement(
1482
+ import_material7.Chip,
1483
+ __spreadProps(__spreadValues({
1484
+ key: index,
1485
+ label: chipData.value
1486
+ }, chipData.arrayElement.required == false || chipData.arrayElement.required == void 0 ? { onDelete: () => deleteFilter(chipData.arrayElement) } : {}), {
1487
+ color: "default",
1488
+ variant: "filled",
1489
+ size: "small",
1490
+ sx: {
1491
+ flexShrink: 0,
1492
+ minWidth: "auto"
1493
+ }
1494
+ })
1495
+ ))
1496
+ ), /* @__PURE__ */ import_react9.default.createElement(import_material7.IconButton, { onClick: () => scroll(150), size: "small" }, /* @__PURE__ */ import_react9.default.createElement(import_ArrowForwardIos.default, { fontSize: "small" }))), (buttonDrawer == null ? void 0 : buttonDrawer.type) == "chip" ? /* @__PURE__ */ import_react9.default.createElement(
1271
1497
  import_material7.Chip,
1272
1498
  __spreadProps(__spreadValues({
1273
1499
  onClick: toggleDrawer(true),
1274
1500
  color: buttonDrawer == null ? void 0 : buttonDrawer.color,
1275
1501
  variant: (buttonDrawer == null ? void 0 : buttonDrawer.variant) == "contained" ? "filled" : "outlined",
1276
1502
  label: (_a = buttonDrawer == null ? void 0 : buttonDrawer.text) != null ? _a : "",
1277
- icon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" && ButtonIcon ? /* @__PURE__ */ import_react8.default.createElement(ButtonIcon, { fontSize: "small" }) : void 0,
1278
- deleteIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */ import_react8.default.createElement(ButtonIcon, { fontSize: "small" }) : void 0
1503
+ icon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : void 0,
1504
+ deleteIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : void 0
1279
1505
  }, (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? { onDelete: () => {
1280
1506
  } } : {}), {
1281
1507
  sx: {
@@ -1285,7 +1511,7 @@ function SCDrawer({
1285
1511
  textTransform: "capitalize"
1286
1512
  }
1287
1513
  })
1288
- ) : /* @__PURE__ */ import_react8.default.createElement(
1514
+ ) : /* @__PURE__ */ import_react9.default.createElement(
1289
1515
  import_material7.Button,
1290
1516
  {
1291
1517
  "data-testid": "test-buttonDrawer",
@@ -1294,11 +1520,11 @@ function SCDrawer({
1294
1520
  onClick: toggleDrawer(true),
1295
1521
  size: "small",
1296
1522
  variant: (buttonDrawer == null ? void 0 : buttonDrawer.variant) != void 0 ? buttonDrawer == null ? void 0 : buttonDrawer.variant : "text",
1297
- startIcon: ((buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" || !(buttonDrawer == null ? void 0 : buttonDrawer.iconPosition)) && ButtonIcon ? /* @__PURE__ */ import_react8.default.createElement(ButtonIcon, { fontSize: "small" }) : null,
1298
- endIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */ import_react8.default.createElement(ButtonIcon, { fontSize: "small" }) : null
1523
+ startIcon: ((buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" || !(buttonDrawer == null ? void 0 : buttonDrawer.iconPosition)) && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : null,
1524
+ endIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : null
1299
1525
  },
1300
1526
  (_b = buttonDrawer == null ? void 0 : buttonDrawer.text) != null ? _b : ""
1301
- ), /* @__PURE__ */ import_react8.default.createElement(
1527
+ )), /* @__PURE__ */ import_react9.default.createElement(
1302
1528
  import_material7.Drawer,
1303
1529
  {
1304
1530
  open: drawerOpen,
@@ -1312,15 +1538,15 @@ function SCDrawer({
1312
1538
  }
1313
1539
  }
1314
1540
  },
1315
- /* @__PURE__ */ import_react8.default.createElement(import_material7.Stack, { flexDirection: "column", height: "100%" }, /* @__PURE__ */ import_react8.default.createElement(import_Grid23.default, { container: true, sx: { backgroundColor: "primary.50", alignItems: "center", height: "42px", textAlign: "left", padding: "8px 12px", justifyContent: "space-between", alignContent: "center" } }, /* @__PURE__ */ import_react8.default.createElement(import_material7.Typography, { variant: "h6", color: colorTitle || "text.primary" }, title != null ? title : "Personaliza tu b\xFAsqueda"), /* @__PURE__ */ import_react8.default.createElement(import_material7.IconButton, { onClick: handleDrawerClose }, /* @__PURE__ */ import_react8.default.createElement(import_Close.default, { "data-testid": "test-button-close", sx: { color: "text.primary" } }))), /* @__PURE__ */ import_react8.default.createElement(import_material7.Stack, { alignItems: "flex-start", height: "100%", gap: "16px", flex: 1, overflow: "auto", padding: "16px" }, arrayElements == null ? void 0 : arrayElements.map((arrayElement, index) => {
1541
+ /* @__PURE__ */ import_react9.default.createElement(import_material7.Stack, { flexDirection: "column", height: "100%" }, /* @__PURE__ */ import_react9.default.createElement(import_Grid23.default, { container: true, sx: { backgroundColor: "primary.50", alignItems: "center", height: "42px", textAlign: "left", padding: "8px 12px", justifyContent: "space-between", alignContent: "center" } }, /* @__PURE__ */ import_react9.default.createElement(import_material7.Typography, { variant: "h6", color: colorTitle || "text.primary" }, title != null ? title : "Personaliza tu b\xFAsqueda"), /* @__PURE__ */ import_react9.default.createElement(import_material7.IconButton, { onClick: handleDrawerClose }, /* @__PURE__ */ import_react9.default.createElement(import_Close.default, { "data-testid": "test-button-close", sx: { color: "text.primary" } }))), /* @__PURE__ */ import_react9.default.createElement(import_material7.Stack, { alignItems: "flex-start", height: "100%", gap: "16px", flex: 1, overflow: "auto", padding: "16px" }, arrayElements == null ? void 0 : arrayElements.map((arrayElement, index) => {
1316
1542
  var _a2, _b2, _c, _d, _e, _f;
1317
- return /* @__PURE__ */ import_react8.default.createElement(
1543
+ return /* @__PURE__ */ import_react9.default.createElement(
1318
1544
  import_material7.Box,
1319
1545
  {
1320
1546
  key: `Stack_${(_a2 = arrayElement.type) != null ? _a2 : ""} ${(_b2 = arrayElement.label) != null ? _b2 : ""}${index}`,
1321
1547
  sx: { width: "100%" }
1322
1548
  },
1323
- arrayElement.component ? /* @__PURE__ */ import_react8.default.createElement(import_material7.Stack, { direction: "row", alignItems: "left", gap: 1 }, arrayElement.component) : arrayElement.type === "textField" ? /* @__PURE__ */ import_react8.default.createElement(
1549
+ arrayElement.component ? /* @__PURE__ */ import_react9.default.createElement(import_material7.Stack, { direction: "row", alignItems: "left", gap: 1 }, arrayElement.component) : arrayElement.type === "textField" ? /* @__PURE__ */ import_react9.default.createElement(
1324
1550
  SCTextField,
1325
1551
  {
1326
1552
  title: arrayElement.title,
@@ -1346,7 +1572,7 @@ function SCDrawer({
1346
1572
  onBlur: arrayElement.onBlur,
1347
1573
  onKeyDown: arrayElement.onKeyDown
1348
1574
  }
1349
- ) : arrayElement.type === "textArea" ? /* @__PURE__ */ import_react8.default.createElement(
1575
+ ) : arrayElement.type === "textArea" ? /* @__PURE__ */ import_react9.default.createElement(
1350
1576
  SCTextArea,
1351
1577
  {
1352
1578
  title: arrayElement.title,
@@ -1365,7 +1591,7 @@ function SCDrawer({
1365
1591
  state: arrayElement.state || "",
1366
1592
  onBlur: arrayElement.onBlur
1367
1593
  }
1368
- ) : arrayElement.type === "autocomplete" ? /* @__PURE__ */ import_react8.default.createElement(
1594
+ ) : arrayElement.type === "autocomplete" ? /* @__PURE__ */ import_react9.default.createElement(
1369
1595
  SCAutocomplete,
1370
1596
  {
1371
1597
  label: arrayElement.label,
@@ -1383,7 +1609,7 @@ function SCDrawer({
1383
1609
  state: arrayElement.state || "",
1384
1610
  inputChange: arrayElement.inputChange
1385
1611
  }
1386
- ) : arrayElement.type === "select" ? /* @__PURE__ */ import_react8.default.createElement(
1612
+ ) : arrayElement.type === "select" ? /* @__PURE__ */ import_react9.default.createElement(
1387
1613
  SCSelect,
1388
1614
  {
1389
1615
  label: arrayElement.label,
@@ -1392,7 +1618,6 @@ function SCDrawer({
1392
1618
  width: arrayElement.width,
1393
1619
  size: arrayElement.size,
1394
1620
  variant: arrayElement.variant,
1395
- deleteType: arrayElement.deleteType,
1396
1621
  required: arrayElement.required,
1397
1622
  disabled: arrayElement.disabled,
1398
1623
  background: arrayElement.background,
@@ -1400,7 +1625,7 @@ function SCDrawer({
1400
1625
  setState: arrayElement.setState,
1401
1626
  state: arrayElement.state || ""
1402
1627
  }
1403
- ) : arrayElement.type === "dateRange" ? /* @__PURE__ */ import_react8.default.createElement(
1628
+ ) : arrayElement.type === "dateRange" ? /* @__PURE__ */ import_react9.default.createElement(
1404
1629
  SCDateRange,
1405
1630
  {
1406
1631
  labelDateInitial: arrayElement.labelDateInitial,
@@ -1413,7 +1638,7 @@ function SCDrawer({
1413
1638
  }
1414
1639
  ) : null
1415
1640
  );
1416
- })), actionsA != void 0 && actionsA != false ? Array.isArray(actionsA) && (actionsA == null ? void 0 : actionsA.length) > 0 ? /* @__PURE__ */ import_react8.default.createElement(
1641
+ })), actionsA != void 0 && actionsA != false ? Array.isArray(actionsA) && (actionsA == null ? void 0 : actionsA.length) > 0 ? /* @__PURE__ */ import_react9.default.createElement(
1417
1642
  import_Grid23.default,
1418
1643
  {
1419
1644
  sx: { borderTop: 1, borderColor: "#1018403B" },
@@ -1425,7 +1650,7 @@ function SCDrawer({
1425
1650
  justifyContent: actionsA.length > 1 ? "space-between" : !anchor && anchor != "right" ? "flex-end" : "flex-start",
1426
1651
  flexDirection: anchor != "right" ? "row-reverse" : "row"
1427
1652
  },
1428
- actionsA.map((btn, index) => /* @__PURE__ */ import_react8.default.createElement(
1653
+ actionsA.map((btn, index) => /* @__PURE__ */ import_react9.default.createElement(
1429
1654
  import_material7.Button,
1430
1655
  {
1431
1656
  key: index,
@@ -1442,7 +1667,7 @@ function SCDrawer({
1442
1667
  }
1443
1668
 
1444
1669
  // src/Components/FooterAction/FooterAction.tsx
1445
- var import_react9 = __toESM(require("react"), 1);
1670
+ var import_react10 = __toESM(require("react"), 1);
1446
1671
  var import_material8 = require("@mui/material");
1447
1672
  var FooterAction = ({
1448
1673
  leftContent,
@@ -1450,44 +1675,44 @@ var FooterAction = ({
1450
1675
  label,
1451
1676
  variant
1452
1677
  }) => {
1453
- return /* @__PURE__ */ import_react9.default.createElement(
1678
+ return /* @__PURE__ */ import_react10.default.createElement(
1454
1679
  import_material8.AppBar,
1455
1680
  {
1456
1681
  color: "inherit",
1457
1682
  sx: { position: variant == "float" ? "relative" : "fixed", left: 0, right: "auto", width: "100%", top: "auto", bottom: 0 }
1458
1683
  },
1459
- /* @__PURE__ */ import_react9.default.createElement(
1684
+ /* @__PURE__ */ import_react10.default.createElement(
1460
1685
  import_material8.Toolbar,
1461
1686
  {
1462
1687
  id: "footer-toolbar",
1463
1688
  sx: { gap: 1.5, minHeight: "50px !important" }
1464
1689
  },
1465
1690
  leftContent,
1466
- /* @__PURE__ */ import_react9.default.createElement(import_material8.Box, { flexGrow: 1 }),
1467
- label && /* @__PURE__ */ import_react9.default.createElement(import_material8.Typography, { variant: "body2", color: "text.secondary" }, label),
1691
+ /* @__PURE__ */ import_react10.default.createElement(import_material8.Box, { flexGrow: 1 }),
1692
+ label && /* @__PURE__ */ import_react10.default.createElement(import_material8.Typography, { variant: "body2", color: "text.secondary" }, label),
1468
1693
  rightContent
1469
1694
  )
1470
1695
  );
1471
1696
  };
1472
1697
 
1473
1698
  // src/Components/Modal/Helpers/Data.tsx
1474
- var import_react10 = __toESM(require("react"), 1);
1699
+ var import_react11 = __toESM(require("react"), 1);
1475
1700
  var import_icons_material5 = require("@mui/icons-material");
1476
1701
  var modalStateConfig = {
1477
1702
  info: {
1478
1703
  color: "info",
1479
1704
  defaultDescription: "Se [sincronizar\xE1n] los datos trabajados en modo offline y se [subir\xE1n] a los servidores.",
1480
- icon: /* @__PURE__ */ import_react10.default.createElement(import_icons_material5.Info, { color: "info", fontSize: "medium" })
1705
+ icon: /* @__PURE__ */ import_react11.default.createElement(import_icons_material5.Info, { color: "info", fontSize: "medium" })
1481
1706
  },
1482
1707
  delete: {
1483
1708
  color: "delete",
1484
1709
  defaultDescription: "[Elemento espec\xEDfico] [dejar\xE1 de existir en todos los lugares donde est\xE9 en uso]. Esta acci\xF3n es irreversible.",
1485
- icon: /* @__PURE__ */ import_react10.default.createElement(import_icons_material5.Info, { color: "error", fontSize: "medium" })
1710
+ icon: /* @__PURE__ */ import_react11.default.createElement(import_icons_material5.Info, { color: "error", fontSize: "medium" })
1486
1711
  },
1487
1712
  warning: {
1488
1713
  color: "warning",
1489
1714
  defaultDescription: "Se descartar\xE1 la [creaci\xF3n] y los cambios se perder\xE1n.",
1490
- icon: /* @__PURE__ */ import_react10.default.createElement(import_icons_material5.Warning, { color: "warning", fontSize: "medium" })
1715
+ icon: /* @__PURE__ */ import_react11.default.createElement(import_icons_material5.Warning, { color: "warning", fontSize: "medium" })
1491
1716
  }
1492
1717
  };
1493
1718
 
@@ -1517,7 +1742,7 @@ var getButtonColor = (state) => {
1517
1742
  };
1518
1743
 
1519
1744
  // src/Components/Modal/SCModal.tsx
1520
- var import_react11 = __toESM(require("react"), 1);
1745
+ var import_react12 = __toESM(require("react"), 1);
1521
1746
  var import_material9 = require("@mui/material");
1522
1747
  var import_icons_material7 = require("@mui/icons-material");
1523
1748
 
@@ -1536,34 +1761,31 @@ var SCModal = ({
1536
1761
  action
1537
1762
  }) => {
1538
1763
  var _a, _b, _c, _d, _e;
1539
- const [openModal, setOpenModal] = (0, import_react11.useState)(open != null ? open : false);
1540
- (0, import_react11.useEffect)(() => {
1541
- if (open !== void 0) {
1542
- setOpenModal(open);
1543
- }
1544
- }, [open]);
1545
- const Icon = (0, import_react11.useMemo)(() => getIconComponent2(buttonModal == null ? void 0 : buttonModal.icon), [buttonModal == null ? void 0 : buttonModal.icon]);
1546
- const handleClose = (0, import_react11.useCallback)(() => setOpenModal(false), []);
1547
- const toggleModal = (newOpen) => () => setOpenModal(newOpen);
1548
- const prevAction = (0, import_react11.useMemo)(
1764
+ const [openModal, setOpenModal] = (0, import_react12.useState)(open != null ? open : false);
1765
+ const handleOpen = import_react12.default.useCallback(() => {
1766
+ setOpenModal((prev) => !prev);
1767
+ }, []);
1768
+ const Icon = (0, import_react12.useMemo)(() => getIconComponent2(buttonModal == null ? void 0 : buttonModal.icon), [buttonModal == null ? void 0 : buttonModal.icon]);
1769
+ const handleClose = (0, import_react12.useCallback)(() => setOpenModal(false), []);
1770
+ const prevAction = (0, import_react12.useMemo)(
1549
1771
  () => action != null ? action : [{ text: "Cancelar", fn: handleClose }, { text: "Consultar", fn: () => {
1550
1772
  } }],
1551
1773
  [action, handleClose]
1552
1774
  );
1553
1775
  const { icon, defaultDescription } = modalStateConfig[state];
1554
- return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(
1776
+ return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(
1555
1777
  import_material9.Button,
1556
1778
  {
1557
1779
  "data-testid": "test-buttonModal",
1558
1780
  color: (_a = buttonModal == null ? void 0 : buttonModal.color) != null ? _a : "primary",
1559
- onClick: toggleModal(true),
1781
+ onClick: handleOpen,
1560
1782
  variant: (_b = buttonModal == null ? void 0 : buttonModal.variant) != null ? _b : "text",
1561
1783
  size: (_c = buttonModal == null ? void 0 : buttonModal.size) != null ? _c : "small",
1562
- startIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "left" && /* @__PURE__ */ import_react11.default.createElement(Icon, null),
1563
- endIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "right" && /* @__PURE__ */ import_react11.default.createElement(Icon, null)
1784
+ startIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "left" && /* @__PURE__ */ import_react12.default.createElement(Icon, null),
1785
+ endIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "right" && /* @__PURE__ */ import_react12.default.createElement(Icon, null)
1564
1786
  },
1565
1787
  capitalize((_d = buttonModal == null ? void 0 : buttonModal.text) != null ? _d : "filtrar")
1566
- ), /* @__PURE__ */ import_react11.default.createElement(import_material9.Modal, { open: openModal, onClose: toggleModal(false), sx: { boxShadow: 8 } }, /* @__PURE__ */ import_react11.default.createElement(
1788
+ ), /* @__PURE__ */ import_react12.default.createElement(import_material9.Modal, { open: openModal, onClose: handleOpen, sx: { boxShadow: 8 } }, /* @__PURE__ */ import_react12.default.createElement(
1567
1789
  import_material9.Box,
1568
1790
  {
1569
1791
  sx: {
@@ -1577,9 +1799,9 @@ var SCModal = ({
1577
1799
  boxShadow: 24
1578
1800
  }
1579
1801
  },
1580
- /* @__PURE__ */ import_react11.default.createElement(import_material9.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ import_react11.default.createElement(import_material9.Stack, { direction: "row", alignItems: "center", p: 1, gap: 1.5 }, /* @__PURE__ */ import_react11.default.createElement(import_material9.Box, { display: "flex", justifyContent: "center", alignItems: "center", borderRadius: "50%", height: 36, width: 36, bgcolor: getModalColor(state) }, icon), /* @__PURE__ */ import_react11.default.createElement(import_material9.Typography, { variant: "h6", color: "text.primary" }, title)), /* @__PURE__ */ import_react11.default.createElement(import_material9.IconButton, { onClick: toggleModal(false), "data-testid": "test-buttonClose" }, /* @__PURE__ */ import_react11.default.createElement(import_icons_material7.Close, { color: "action" }))),
1581
- /* @__PURE__ */ import_react11.default.createElement(import_material9.Stack, { py: 1, px: 3, gap: 1.5 }, /* @__PURE__ */ import_react11.default.createElement(import_material9.Typography, { variant: "body1" }, description || defaultDescription)),
1582
- action && /* @__PURE__ */ import_react11.default.createElement(
1802
+ /* @__PURE__ */ import_react12.default.createElement(import_material9.Stack, { direction: "row", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ import_react12.default.createElement(import_material9.Stack, { direction: "row", alignItems: "center", p: 1, gap: 1.5 }, /* @__PURE__ */ import_react12.default.createElement(import_material9.Box, { display: "flex", justifyContent: "center", alignItems: "center", borderRadius: "50%", height: 36, width: 36, bgcolor: getModalColor(state) }, icon), /* @__PURE__ */ import_react12.default.createElement(import_material9.Typography, { variant: "h6", color: "text.primary" }, title)), /* @__PURE__ */ import_react12.default.createElement(import_material9.IconButton, { onClick: handleOpen, "data-testid": "test-buttonClose" }, /* @__PURE__ */ import_react12.default.createElement(import_icons_material7.Close, { color: "action" }))),
1803
+ /* @__PURE__ */ import_react12.default.createElement(import_material9.Stack, { py: 1, px: 3, gap: 1.5 }, /* @__PURE__ */ import_react12.default.createElement(import_material9.Typography, { variant: "body1" }, description || defaultDescription)),
1804
+ action && /* @__PURE__ */ import_react12.default.createElement(
1583
1805
  import_material9.Stack,
1584
1806
  {
1585
1807
  id: "Action",
@@ -1590,7 +1812,7 @@ var SCModal = ({
1590
1812
  bgcolor: "grey.50",
1591
1813
  sx: { borderRadius: 1 }
1592
1814
  },
1593
- /* @__PURE__ */ import_react11.default.createElement(
1815
+ /* @__PURE__ */ import_react12.default.createElement(
1594
1816
  import_material9.Button,
1595
1817
  {
1596
1818
  color: "inherit",
@@ -1600,7 +1822,7 @@ var SCModal = ({
1600
1822
  },
1601
1823
  capitalize("cancelar")
1602
1824
  ),
1603
- /* @__PURE__ */ import_react11.default.createElement(
1825
+ /* @__PURE__ */ import_react12.default.createElement(
1604
1826
  import_material9.Button,
1605
1827
  {
1606
1828
  "data-testid": "test-aceptar",
@@ -1617,32 +1839,32 @@ var SCModal = ({
1617
1839
  };
1618
1840
 
1619
1841
  // src/Components/MultiSelect/MultiSelect.tsx
1620
- var import_react14 = __toESM(require("react"), 1);
1842
+ var import_react15 = __toESM(require("react"), 1);
1621
1843
  var import_material10 = require("@mui/material");
1622
1844
  var import_icons_material9 = require("@mui/icons-material");
1623
1845
 
1624
1846
  // src/Components/MultiSelect/helpers/useHandlers.tsx
1625
- var import_react12 = require("react");
1847
+ var import_react13 = require("react");
1626
1848
  function useMultiSelectHandlers() {
1627
- const [anchorEl, setAnchorEl] = (0, import_react12.useState)(null);
1628
- const [open, setOpen] = (0, import_react12.useState)(false);
1629
- const [selectedItems, setSelectedItems] = (0, import_react12.useState)([]);
1630
- const [filterValue, setFilterValue] = (0, import_react12.useState)("");
1631
- const handleOpen = (0, import_react12.useCallback)((e) => {
1849
+ const [anchorEl, setAnchorEl] = (0, import_react13.useState)(null);
1850
+ const [open, setOpen] = (0, import_react13.useState)(false);
1851
+ const [selectedItems, setSelectedItems] = (0, import_react13.useState)([]);
1852
+ const [filterValue, setFilterValue] = (0, import_react13.useState)("");
1853
+ const handleOpen = (0, import_react13.useCallback)((e) => {
1632
1854
  setAnchorEl(e.currentTarget);
1633
1855
  setOpen(true);
1634
1856
  }, []);
1635
- const handleClose = (0, import_react12.useCallback)(() => {
1857
+ const handleClose = (0, import_react13.useCallback)(() => {
1636
1858
  setAnchorEl(null);
1637
1859
  setOpen(false);
1638
1860
  }, []);
1639
- const handleFilterChange = (0, import_react12.useCallback)(
1861
+ const handleFilterChange = (0, import_react13.useCallback)(
1640
1862
  (e) => {
1641
1863
  setFilterValue(e.target.value);
1642
1864
  },
1643
1865
  []
1644
1866
  );
1645
- const handleCheckboxToggle = (0, import_react12.useCallback)((item) => {
1867
+ const handleCheckboxToggle = (0, import_react13.useCallback)((item) => {
1646
1868
  setSelectedItems(
1647
1869
  (prev) => prev.includes(item) ? prev.filter((i) => i !== item) : [...prev, item]
1648
1870
  );
@@ -1669,15 +1891,15 @@ function getIconMultiSelect(name) {
1669
1891
  }
1670
1892
 
1671
1893
  // src/Components/MultiSelect/helpers/useFilteredItems.tsx
1672
- var import_react13 = require("react");
1894
+ var import_react14 = require("react");
1673
1895
  function useFilteredItems(items, filterValue, getItemLabel, selectedItems) {
1674
- const filteredItems = (0, import_react13.useMemo)(
1896
+ const filteredItems = (0, import_react14.useMemo)(
1675
1897
  () => items.filter(
1676
1898
  (item) => getItemLabel(item).toLowerCase().includes(filterValue.toLowerCase())
1677
1899
  ),
1678
1900
  [items, filterValue, getItemLabel]
1679
1901
  );
1680
- const sortedItems = (0, import_react13.useMemo)(() => {
1902
+ const sortedItems = (0, import_react14.useMemo)(() => {
1681
1903
  return [
1682
1904
  ...filteredItems.filter((item) => selectedItems.includes(item)),
1683
1905
  ...filteredItems.filter((item) => !selectedItems.includes(item))
@@ -1711,16 +1933,16 @@ function MultiSelect({
1711
1933
  handleCheckboxToggle,
1712
1934
  setOpen
1713
1935
  } = useMultiSelectHandlers();
1714
- (0, import_react14.useEffect)(() => {
1936
+ (0, import_react15.useEffect)(() => {
1715
1937
  if (open !== void 0) {
1716
1938
  setOpen(open);
1717
1939
  }
1718
1940
  }, [open, setOpen]);
1719
- (0, import_react14.useEffect)(() => {
1941
+ (0, import_react15.useEffect)(() => {
1720
1942
  setSelectedItems([]);
1721
1943
  }, [items, setSelectedItems]);
1722
1944
  const { filteredItems, sortedItems } = useFilteredItems(items, filterValue, getItemLabel, selectedItems);
1723
- const Icon = (0, import_react14.useMemo)(() => {
1945
+ const Icon = (0, import_react15.useMemo)(() => {
1724
1946
  var _a2;
1725
1947
  return getIconMultiSelect((_a2 = button == null ? void 0 : button.icon) != null ? _a2 : "FilterListOutlined");
1726
1948
  }, [button == null ? void 0 : button.icon]);
@@ -1734,7 +1956,7 @@ function MultiSelect({
1734
1956
  { text: "Aplicar", fn: () => {
1735
1957
  } }
1736
1958
  ];
1737
- return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(
1959
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(
1738
1960
  import_material10.Button,
1739
1961
  {
1740
1962
  "test-id": "multiselect-button",
@@ -1742,11 +1964,11 @@ function MultiSelect({
1742
1964
  onClick: handleOpen,
1743
1965
  variant: (_b = button == null ? void 0 : button.variant) != null ? _b : "text",
1744
1966
  size: "small",
1745
- startIcon: (button == null ? void 0 : button.iconPosition) === "left" || !(button == null ? void 0 : button.iconPosition) ? /* @__PURE__ */ import_react14.default.createElement(Icon, null) : null,
1746
- endIcon: (button == null ? void 0 : button.iconPosition) === "right" ? /* @__PURE__ */ import_react14.default.createElement(Icon, null) : null
1967
+ startIcon: (button == null ? void 0 : button.iconPosition) === "left" || !(button == null ? void 0 : button.iconPosition) ? /* @__PURE__ */ import_react15.default.createElement(Icon, null) : null,
1968
+ endIcon: (button == null ? void 0 : button.iconPosition) === "right" ? /* @__PURE__ */ import_react15.default.createElement(Icon, null) : null
1747
1969
  },
1748
1970
  capitalize(textButton != null ? textButton : "MultiSelect")
1749
- ), /* @__PURE__ */ import_react14.default.createElement(
1971
+ ), /* @__PURE__ */ import_react15.default.createElement(
1750
1972
  import_material10.Popover,
1751
1973
  {
1752
1974
  elevation: 8,
@@ -1755,7 +1977,7 @@ function MultiSelect({
1755
1977
  open: openMultiselect,
1756
1978
  onClose: () => setOpen(false)
1757
1979
  },
1758
- /* @__PURE__ */ import_react14.default.createElement(import_material10.Stack, { minWidth: "320px", "data-testid": "multiselect-container", bgcolor: "white", boxShadow: 3, borderRadius: 1 }, /* @__PURE__ */ import_react14.default.createElement(import_material10.Stack, { py: 1, px: 2 }, topPanel != null ? topPanel : /* @__PURE__ */ import_react14.default.createElement(import_material10.FormControl, { fullWidth: true, size: "small" }, /* @__PURE__ */ import_react14.default.createElement(
1980
+ /* @__PURE__ */ import_react15.default.createElement(import_material10.Stack, { minWidth: "320px", "data-testid": "multiselect-container", bgcolor: "white", boxShadow: 3, borderRadius: 1 }, /* @__PURE__ */ import_react15.default.createElement(import_material10.Stack, { py: 1, px: 2 }, topPanel != null ? topPanel : /* @__PURE__ */ import_react15.default.createElement(import_material10.FormControl, { fullWidth: true, size: "small" }, /* @__PURE__ */ import_react15.default.createElement(
1759
1981
  import_material10.TextField,
1760
1982
  {
1761
1983
  "data-testid": "multiselect-input",
@@ -1767,18 +1989,18 @@ function MultiSelect({
1767
1989
  onChange: handleFilterChange,
1768
1990
  slotProps: {
1769
1991
  input: {
1770
- endAdornment: /* @__PURE__ */ import_react14.default.createElement(import_material10.InputAdornment, { position: "end" }, /* @__PURE__ */ import_react14.default.createElement(import_icons_material9.SearchOutlined, { fontSize: "small" }))
1992
+ endAdornment: /* @__PURE__ */ import_react15.default.createElement(import_material10.InputAdornment, { position: "end" }, /* @__PURE__ */ import_react15.default.createElement(import_icons_material9.SearchOutlined, { fontSize: "small" }))
1771
1993
  }
1772
1994
  }
1773
1995
  }
1774
- ))), /* @__PURE__ */ import_react14.default.createElement(import_material10.Stack, { maxHeight: "300px", overflow: "auto" }, selectAll && /* @__PURE__ */ import_react14.default.createElement(import_material10.MenuItem, { dense, onClick: handleSelectAll }, /* @__PURE__ */ import_react14.default.createElement(import_material10.ListItemIcon, null, /* @__PURE__ */ import_react14.default.createElement(import_material10.Checkbox, { checked: allSelected, color: "primary" })), "Todos los items"), sortedItems.length > 0 ? sortedItems.map((item) => /* @__PURE__ */ import_react14.default.createElement(
1996
+ ))), /* @__PURE__ */ import_react15.default.createElement(import_material10.Stack, { maxHeight: "300px", overflow: "auto" }, selectAll && /* @__PURE__ */ import_react15.default.createElement(import_material10.MenuItem, { dense, onClick: handleSelectAll }, /* @__PURE__ */ import_react15.default.createElement(import_material10.ListItemIcon, null, /* @__PURE__ */ import_react15.default.createElement(import_material10.Checkbox, { checked: allSelected, color: "primary" })), "Todos los items"), sortedItems.length > 0 ? sortedItems.map((item) => /* @__PURE__ */ import_react15.default.createElement(
1775
1997
  import_material10.MenuItem,
1776
1998
  {
1777
1999
  key: getItemLabel(item),
1778
2000
  dense,
1779
2001
  onClick: () => handleCheckboxToggle(item)
1780
2002
  },
1781
- /* @__PURE__ */ import_react14.default.createElement(import_material10.ListItemIcon, null, /* @__PURE__ */ import_react14.default.createElement(
2003
+ /* @__PURE__ */ import_react15.default.createElement(import_material10.ListItemIcon, null, /* @__PURE__ */ import_react15.default.createElement(
1782
2004
  import_material10.Checkbox,
1783
2005
  {
1784
2006
  checked: selectedItems.includes(item),
@@ -1786,9 +2008,9 @@ function MultiSelect({
1786
2008
  }
1787
2009
  )),
1788
2010
  getItemLabel(item)
1789
- )) : /* @__PURE__ */ import_react14.default.createElement(import_material10.MenuItem, { disabled: true }, "No se encontraron resultados")), /* @__PURE__ */ import_react14.default.createElement(import_material10.Stack, { direction: "row", gap: 1, p: 1, justifyContent: "space-between", bgcolor: "grey.50" }, resolvedActions.map((button2, index) => {
2011
+ )) : /* @__PURE__ */ import_react15.default.createElement(import_material10.MenuItem, { disabled: true }, "No se encontraron resultados")), /* @__PURE__ */ import_react15.default.createElement(import_material10.Stack, { direction: "row", gap: 1, p: 1, justifyContent: "space-between", bgcolor: "grey.50" }, resolvedActions.map((button2, index) => {
1790
2012
  var _a2;
1791
- return /* @__PURE__ */ import_react14.default.createElement(
2013
+ return /* @__PURE__ */ import_react15.default.createElement(
1792
2014
  import_material10.Button,
1793
2015
  {
1794
2016
  key: index,
@@ -1804,7 +2026,7 @@ function MultiSelect({
1804
2026
  }
1805
2027
 
1806
2028
  // src/Components/PageHeader/PageHeader.tsx
1807
- var import_react15 = __toESM(require("react"), 1);
2029
+ var import_react16 = __toESM(require("react"), 1);
1808
2030
  var import_material11 = require("@mui/material");
1809
2031
  var PageHeader = ({
1810
2032
  title,
@@ -1814,7 +2036,7 @@ var PageHeader = ({
1814
2036
  fixed,
1815
2037
  shadow = true
1816
2038
  }) => {
1817
- return /* @__PURE__ */ import_react15.default.createElement(
2039
+ return /* @__PURE__ */ import_react16.default.createElement(
1818
2040
  import_material11.Stack,
1819
2041
  {
1820
2042
  "data-testid": "main-container",
@@ -1826,12 +2048,12 @@ var PageHeader = ({
1826
2048
  zIndex: 10,
1827
2049
  sx: { boxShadow: shadow ? (theme) => theme.shadows[1] : "none" }
1828
2050
  },
1829
- /* @__PURE__ */ import_react15.default.createElement(import_material11.Stack, { "data-testid": "page-header-content", height: 40, px: 3, pl: buttonBack ? 1 : 3, direction: "row", alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ import_react15.default.createElement(import_material11.Stack, { id: "left-section", direction: "row", alignItems: "center", gap: 1 }, buttonBack, /* @__PURE__ */ import_react15.default.createElement(import_material11.Stack, { id: "text-section", gap: 0.5 }, /* @__PURE__ */ import_react15.default.createElement(import_material11.Typography, { "data-testid": "page-header-title", variant: "h6", color: "text.primary" }, title), subtitle && /* @__PURE__ */ import_react15.default.createElement(import_material11.Typography, { "data-testid": "page-header-subtitle", variant: "caption", color: "text.primary" }, subtitle))), actions && /* @__PURE__ */ import_react15.default.createElement(import_material11.Stack, { id: "right-actions", direction: "row", alignItems: "center", gap: 1 }, actions))
2051
+ /* @__PURE__ */ import_react16.default.createElement(import_material11.Stack, { "data-testid": "page-header-content", height: 40, px: 3, pl: buttonBack ? 1 : 3, direction: "row", alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ import_react16.default.createElement(import_material11.Stack, { id: "left-section", direction: "row", alignItems: "center", gap: 1 }, buttonBack, /* @__PURE__ */ import_react16.default.createElement(import_material11.Stack, { id: "text-section", gap: 0.5 }, /* @__PURE__ */ import_react16.default.createElement(import_material11.Typography, { "data-testid": "page-header-title", variant: "h6", color: "text.primary" }, title), subtitle && /* @__PURE__ */ import_react16.default.createElement(import_material11.Typography, { "data-testid": "page-header-subtitle", variant: "caption", color: "text.primary" }, subtitle))), actions && /* @__PURE__ */ import_react16.default.createElement(import_material11.Stack, { id: "right-actions", direction: "row", alignItems: "center", gap: 1 }, actions))
1830
2052
  );
1831
2053
  };
1832
2054
 
1833
2055
  // src/Components/SCCalendarSwipeable.tsx
1834
- var import_react16 = __toESM(require("react"), 1);
2056
+ var import_react17 = __toESM(require("react"), 1);
1835
2057
  var import_material12 = require("@mui/material");
1836
2058
  var import_Grid24 = __toESM(require("@mui/material/Grid2"), 1);
1837
2059
  var import_AdapterDateFns = require("@mui/x-date-pickers/AdapterDateFns");
@@ -1850,14 +2072,14 @@ var SCCalendarSwipeable = ({
1850
2072
  state
1851
2073
  }) => {
1852
2074
  let convertFecha;
1853
- const [fecha, setFecha] = (0, import_react16.useState)(/* @__PURE__ */ new Date());
1854
- const [fechaSeleccionada, setFechaSeleccionada] = (0, import_react16.useState)();
1855
- const [stateVal, setstateVal] = import_react16.default.useState(/* @__PURE__ */ new Date());
1856
- const [openCalendar, setOpenCalendar] = import_react16.default.useState(false);
2075
+ const [fecha, setFecha] = (0, import_react17.useState)(/* @__PURE__ */ new Date());
2076
+ const [fechaSeleccionada, setFechaSeleccionada] = (0, import_react17.useState)();
2077
+ const [stateVal, setstateVal] = import_react17.default.useState(/* @__PURE__ */ new Date());
2078
+ const [openCalendar, setOpenCalendar] = import_react17.default.useState(false);
1857
2079
  const hoy = /* @__PURE__ */ new Date();
1858
2080
  const inicioSemana = (0, import_date_fns.startOfWeek)(fecha, { weekStartsOn: 0 });
1859
2081
  const diasSemana = Array.from({ length: 7 }, (_, i) => (0, import_date_fns.addDays)(inicioSemana, i));
1860
- import_react16.default.useEffect(() => {
2082
+ import_react17.default.useEffect(() => {
1861
2083
  if (fecha != null) {
1862
2084
  handleConvertFecha(fecha);
1863
2085
  }
@@ -1876,11 +2098,11 @@ var SCCalendarSwipeable = ({
1876
2098
  setOpenCalendar(newOpen);
1877
2099
  };
1878
2100
  const locale = __spreadValues({}, import_locale.es);
1879
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(import_LocalizationProvider2.LocalizationProvider, { dateAdapter: import_AdapterDateFns.AdapterDateFns, adapterLocale: locale }, openCalendar == false ? /* @__PURE__ */ import_react16.default.createElement(import_material12.Box, { "data-testid": "calendar-mobile", sx: { width: "100%", background: background ? background : "white", display: "flex", flexDirection: "column", alignItems: "center" } }, /* @__PURE__ */ import_react16.default.createElement(import_material12.Box, { sx: { width: "100%", maxWidth: "320px", background: "transparent" } }, /* @__PURE__ */ import_react16.default.createElement(import_Grid24.default, { container: true, gap: 0.5, sx: {
2101
+ return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, /* @__PURE__ */ import_react17.default.createElement(import_LocalizationProvider2.LocalizationProvider, { dateAdapter: import_AdapterDateFns.AdapterDateFns, adapterLocale: locale }, openCalendar == false ? /* @__PURE__ */ import_react17.default.createElement(import_material12.Box, { "data-testid": "calendar-mobile", sx: { width: "100%", background: background ? background : "white", display: "flex", flexDirection: "column", alignItems: "center" } }, /* @__PURE__ */ import_react17.default.createElement(import_material12.Box, { sx: { width: "100%", maxWidth: "320px", background: "transparent" } }, /* @__PURE__ */ import_react17.default.createElement(import_Grid24.default, { container: true, gap: 0.5, sx: {
1880
2102
  justifyContent: "space-between",
1881
2103
  padding: "12px 0px",
1882
2104
  background: "transparent"
1883
- } }, diasSemana.map((dia) => /* @__PURE__ */ import_react16.default.createElement(import_Grid24.default, { sx: { width: "36px" }, key: dia.toString() }, /* @__PURE__ */ import_react16.default.createElement(import_material12.Box, { sx: { width: "36px", height: "40px", display: "flex", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ import_react16.default.createElement(import_material12.Typography, { sx: { fontSize: "12px !important", color: "#10184099" } }, (0, import_date_fns.format)(dia, "EEEE", { locale: import_locale.es }).charAt(0).toUpperCase())), /* @__PURE__ */ import_react16.default.createElement(
2105
+ } }, diasSemana.map((dia) => /* @__PURE__ */ import_react17.default.createElement(import_Grid24.default, { sx: { width: "36px" }, key: dia.toString() }, /* @__PURE__ */ import_react17.default.createElement(import_material12.Box, { sx: { width: "36px", height: "40px", display: "flex", alignItems: "center", justifyContent: "center" } }, /* @__PURE__ */ import_react17.default.createElement(import_material12.Typography, { sx: { fontSize: "12px !important", color: "#10184099" } }, (0, import_date_fns.format)(dia, "EEEE", { locale: import_locale.es }).charAt(0).toUpperCase())), /* @__PURE__ */ import_react17.default.createElement(
1884
2106
  import_material12.Box,
1885
2107
  {
1886
2108
  onClick: () => setFecha(dia),
@@ -1896,8 +2118,8 @@ var SCCalendarSwipeable = ({
1896
2118
  //height: '36px',
1897
2119
  }
1898
2120
  },
1899
- /* @__PURE__ */ import_react16.default.createElement(import_material12.Typography, { sx: { fontSize: "12px !important", color: (0, import_date_fns.isSameDay)(dia, fecha) ? "white" : "#101840DE" } }, (0, import_date_fns.format)(dia, "d"))
1900
- )))), /* @__PURE__ */ import_react16.default.createElement(import_Grid24.default, { container: true, justifyContent: "center" }, /* @__PURE__ */ import_react16.default.createElement(import_material12.IconButton, { "data-testid": "open-calendar-button", onClick: toggleCalendar(true) }, /* @__PURE__ */ import_react16.default.createElement(import_KeyboardDoubleArrowDown.default, null))))) : /* @__PURE__ */ import_react16.default.createElement(import_material12.Box, { sx: { width: "100%", background: "white" } }, /* @__PURE__ */ import_react16.default.createElement(
2121
+ /* @__PURE__ */ import_react17.default.createElement(import_material12.Typography, { sx: { fontSize: "12px !important", color: (0, import_date_fns.isSameDay)(dia, fecha) ? "white" : "#101840DE" } }, (0, import_date_fns.format)(dia, "d"))
2122
+ )))), /* @__PURE__ */ import_react17.default.createElement(import_Grid24.default, { container: true, justifyContent: "center" }, /* @__PURE__ */ import_react17.default.createElement(import_material12.IconButton, { "data-testid": "open-calendar-button", onClick: toggleCalendar(true) }, /* @__PURE__ */ import_react17.default.createElement(import_KeyboardDoubleArrowDown.default, null))))) : /* @__PURE__ */ import_react17.default.createElement(import_material12.Box, { sx: { width: "100%", background: "white" } }, /* @__PURE__ */ import_react17.default.createElement(
1901
2123
  import_StaticDatePicker.StaticDatePicker,
1902
2124
  {
1903
2125
  orientation: "landscape",
@@ -1907,17 +2129,17 @@ var SCCalendarSwipeable = ({
1907
2129
  sx: { fontSize: "12px !important", height: "300px !important", background: background ? background : "white", "& .MuiDayCalendar-header": { justifyContent: "space-between" }, "& .MuiDayCalendar-weekContainer": { justifyContent: "space-between" }, "& .MuiPickersCalendarHeader-root": { paddingLeft: "0px", paddingRight: "0px", color: "#10184099" }, "& .MuiPickersDay-root": { fontSize: "12px !important" }, "& .MuiDayCalendar-weekDayLabel": { fontSize: "12px !important" } },
1908
2130
  onChange: (newValue) => setFecha(newValue)
1909
2131
  }
1910
- ), /* @__PURE__ */ import_react16.default.createElement(import_Grid24.default, { container: true, justifyContent: "center" }, /* @__PURE__ */ import_react16.default.createElement(import_material12.IconButton, { "data-testid": "close-calendar-button", onClick: toggleCalendar(false) }, /* @__PURE__ */ import_react16.default.createElement(import_KeyboardDoubleArrowUp.default, null))))));
2132
+ ), /* @__PURE__ */ import_react17.default.createElement(import_Grid24.default, { container: true, justifyContent: "center" }, /* @__PURE__ */ import_react17.default.createElement(import_material12.IconButton, { "data-testid": "close-calendar-button", onClick: toggleCalendar(false) }, /* @__PURE__ */ import_react17.default.createElement(import_KeyboardDoubleArrowUp.default, null))))));
1911
2133
  };
1912
2134
 
1913
2135
  // src/Components/SCDataGrid.tsx
1914
- var import_react17 = __toESM(require("react"), 1);
2136
+ var import_react18 = __toESM(require("react"), 1);
1915
2137
  var import_x_data_grid_pro = require("@mui/x-data-grid-pro");
1916
2138
  var import_x_license_pro2 = require("@mui/x-license-pro");
1917
2139
  var import_KeyboardArrowDown = __toESM(require("@mui/icons-material/KeyboardArrowDown"), 1);
1918
2140
  var import_KeyboardArrowUp = __toESM(require("@mui/icons-material/KeyboardArrowUp"), 1);
1919
2141
  var import_styles = require("@mui/material/styles");
1920
- var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelection, width, maxHeight, density }) => {
2142
+ function SCDataGridInitial({ data, columns, groupColumns, rowsTable, checkboxSelection, width, maxHeight, density }) {
1921
2143
  import_x_license_pro2.LicenseInfo.setLicenseKey(
1922
2144
  "77d49a57fbc5f4af35ddb05c5f1742e0Tz0xMTI3MjgsRT0xNzc4MzcxMTk5MDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1RMy0yMDI0LEtWPTI="
1923
2145
  );
@@ -1928,45 +2150,80 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
1928
2150
  return Math.floor(Math.random() * 1e6);
1929
2151
  }
1930
2152
  const getTreeDataPaths = (row) => {
2153
+ var _a, _b, _c;
2154
+ const group1Value = groupColumns && ((_a = groupColumns(row)) == null ? void 0 : _a.valueGroup1);
2155
+ const group2Value = groupColumns && ((_b = groupColumns(row)) == null ? void 0 : _b.valueGroup2);
2156
+ const fieldValue = groupColumns && ((_c = groupColumns(row)) == null ? void 0 : _c.fieldFirstColumn);
1931
2157
  return [
1932
- row[groupColumns[0].split("[")[1].split("]")[0].trim()],
1933
- ...groupColumns.length > 2 ? [row[groupColumns[1].split("[")[1].split("]")[0].trim()]] : [],
1934
- `${row[groupColumns[groupColumns.length - 1].split("[")[1].split("]")[0].trim()].toString()}/${generateRandomId()}`
2158
+ String(group1Value || ""),
2159
+ ...group2Value ? [String(group2Value)] : [],
2160
+ `${String(fieldValue || "")}/${generateRandomId()}`
1935
2161
  ];
1936
2162
  };
1937
2163
  const groupingColDefs = {
1938
2164
  field: "grouping",
1939
- headerName: groupColumns != void 0 ? groupColumns[groupColumns.length - 1].split("[").length == 2 ? groupColumns[groupColumns.length - 1].split("[")[0].trim() : "Agrupador" : "",
2165
+ headerName: groupColumns ? groupColumns(data[0]).headerNameFirstColumn : "Agrupador",
1940
2166
  renderCell: (params) => {
1941
- var _a;
2167
+ var _a, _b;
1942
2168
  let label = params.value.toString().includes("/") ? params.value.split("/")[0].toString() : params.value.toString();
1943
- const maxDepth = groupColumns ? groupColumns.length - 2 : 0;
1944
- if (groupColumns != void 0) {
2169
+ let maxDepth = 0;
2170
+ if (groupColumns && data.length > 0) {
2171
+ const sampleItem = groupColumns(data[0]);
2172
+ if (sampleItem.valueGroup1) maxDepth++;
2173
+ if (sampleItem.valueGroup2) maxDepth++;
2174
+ maxDepth = Math.max(0, maxDepth - 1);
2175
+ }
2176
+ if (groupColumns) {
1945
2177
  if (params.rowNode.depth === 0) {
1946
- const textBegin = groupColumns[0] ? groupColumns[0].split("[")[0].trim() : "";
1947
- const textEnd = groupColumns[0] ? groupColumns[0].split("]")[1].trim() : "";
1948
- const labelGrouping1 = `${textBegin} ${label} ${textEnd}`;
1949
- const fieldGrouping1 = groupColumns[0].split("[")[1].split("]")[0].trim();
1950
- const fieldGrouping2 = groupColumns[1].split("[")[1].split("]")[0].trim();
1951
- const subgroup1 = arrayRows.filter((r) => r[fieldGrouping1].toString() === label).map((r) => r[fieldGrouping2]);
2178
+ let customLabel = label;
2179
+ if (groupColumns) {
2180
+ const originalItem = data.find(
2181
+ (item) => {
2182
+ var _a2;
2183
+ return String((_a2 = groupColumns(item)) == null ? void 0 : _a2.valueGroup1) === label;
2184
+ }
2185
+ );
2186
+ if (originalItem) {
2187
+ const itemValue = groupColumns(originalItem);
2188
+ customLabel = itemValue.textGroup1 || label;
2189
+ }
2190
+ }
2191
+ const subgroup1 = arrayRows.filter((r) => {
2192
+ var _a2;
2193
+ return groupColumns && String((_a2 = groupColumns(r)) == null ? void 0 : _a2.valueGroup1) === label;
2194
+ }).map((r) => {
2195
+ var _a2;
2196
+ return groupColumns && String((_a2 = groupColumns(r)) == null ? void 0 : _a2.valueGroup2);
2197
+ });
1952
2198
  const groupedDataLength1 = subgroup1.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual);
1953
- label = `${labelGrouping1} (${groupedDataLength1.length})`;
1954
- } else if (groupColumns.length > 2 && params.rowNode.depth === 1) {
1955
- const labelGrouping1 = (_a = params.api.getRowNode(params.rowNode.parent)) == null ? void 0 : _a.groupingKey;
1956
- const textBegin = groupColumns[1] ? groupColumns[1].split("[")[0] : "";
1957
- const textEnd = groupColumns[1] ? groupColumns[1].split("]")[1].trim() : "";
1958
- const labelGrouping2 = `${textBegin} ${label} ${textEnd}`;
1959
- const fieldGrouping1 = groupColumns[0].split("[")[1].split("]")[0].trim();
1960
- const fieldGrouping2 = groupColumns[1].split("[")[1].split("]")[0].trim();
2199
+ label = `${customLabel} (${groupedDataLength1.length})`;
2200
+ } else if (((_a = groupColumns(data[0])) == null ? void 0 : _a.valueGroup2) && params.rowNode.depth === 1) {
2201
+ const labelGrouping1 = (_b = params.api.getRowNode(params.rowNode.parent)) == null ? void 0 : _b.groupingKey.toString();
2202
+ let customLabel = label;
2203
+ if (groupColumns) {
2204
+ const originalItem = data.find(
2205
+ (item) => {
2206
+ var _a2;
2207
+ return String((_a2 = groupColumns(item)) == null ? void 0 : _a2.valueGroup2) === label;
2208
+ }
2209
+ );
2210
+ if (originalItem) {
2211
+ const itemValue = groupColumns(originalItem);
2212
+ customLabel = itemValue.textGroup2 || label;
2213
+ }
2214
+ }
1961
2215
  const groupedDataLength2 = arrayRows.filter(
1962
- (r) => r[fieldGrouping1] === labelGrouping1 && r[fieldGrouping2] === label
2216
+ (r) => {
2217
+ var _a2, _b2;
2218
+ return groupColumns && String((_a2 = groupColumns(r)) == null ? void 0 : _a2.valueGroup1) === labelGrouping1 && groupColumns && String((_b2 = groupColumns(r)) == null ? void 0 : _b2.valueGroup2) === label;
2219
+ }
1963
2220
  ).length;
1964
- label = `${labelGrouping2} (${groupedDataLength2})`;
2221
+ label = `${customLabel} (${groupedDataLength2})`;
1965
2222
  } else {
1966
2223
  label = label;
1967
2224
  }
1968
2225
  }
1969
- return /* @__PURE__ */ import_react17.default.createElement(
2226
+ return /* @__PURE__ */ import_react18.default.createElement(
1970
2227
  "div",
1971
2228
  {
1972
2229
  style: {
@@ -1983,7 +2240,7 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
1983
2240
  fontWeight: params.rowNode.type == "group" ? "400" : "300"
1984
2241
  }
1985
2242
  },
1986
- params.rowNode.type === "group" && /* @__PURE__ */ import_react17.default.createElement(
2243
+ params.rowNode.type === "group" && /* @__PURE__ */ import_react18.default.createElement(
1987
2244
  "span",
1988
2245
  {
1989
2246
  style: {
@@ -1996,25 +2253,32 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
1996
2253
  params.api.setRowChildrenExpansion(params.id, !params.rowNode.childrenExpanded);
1997
2254
  }
1998
2255
  },
1999
- params.rowNode.childrenExpanded ? /* @__PURE__ */ import_react17.default.createElement(import_KeyboardArrowUp.default, { fontSize: "small", color: "action" }) : /* @__PURE__ */ import_react17.default.createElement(import_KeyboardArrowDown.default, { fontSize: "small", color: "action" })
2256
+ params.rowNode.childrenExpanded ? /* @__PURE__ */ import_react18.default.createElement(import_KeyboardArrowUp.default, { fontSize: "small", color: "action" }) : /* @__PURE__ */ import_react18.default.createElement(import_KeyboardArrowDown.default, { fontSize: "small", color: "action" })
2000
2257
  ),
2001
2258
  label
2002
2259
  );
2003
2260
  },
2004
2261
  colSpan: (params) => {
2262
+ var _a, _b;
2005
2263
  const value = String(params);
2006
- const fieldGrouping1 = groupColumns[0].split("[")[1].split("]")[0].trim();
2007
- const fieldGrouping2 = groupColumns.length > 2 ? groupColumns[1].split("[")[1].split("]")[0].trim() : void 0;
2264
+ const fieldGrouping1 = groupColumns ? (_a = groupColumns(data[0])) == null ? void 0 : _a.valueGroup1 : void 0;
2265
+ const fieldGrouping2 = groupColumns ? (_b = groupColumns(data[0])) == null ? void 0 : _b.valueGroup2 : void 0;
2008
2266
  let agrupado1 = false;
2009
2267
  let agrupado2 = false;
2010
2268
  if (fieldGrouping1 != void 0) {
2011
2269
  agrupado1 = arrayRows.some(
2012
- (row) => String(row[fieldGrouping1]) === value
2270
+ (row) => {
2271
+ var _a2;
2272
+ return groupColumns && String((_a2 = groupColumns(row)) == null ? void 0 : _a2.valueGroup1) === value;
2273
+ }
2013
2274
  );
2014
2275
  }
2015
2276
  if (fieldGrouping2 != void 0) {
2016
2277
  agrupado2 = arrayRows.some(
2017
- (row) => String(row[fieldGrouping2]) === value
2278
+ (row) => {
2279
+ var _a2;
2280
+ return groupColumns && String((_a2 = groupColumns(row)) == null ? void 0 : _a2.valueGroup2) === value;
2281
+ }
2018
2282
  );
2019
2283
  }
2020
2284
  if (agrupado1 || agrupado2) {
@@ -2031,11 +2295,11 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
2031
2295
  let styleRowHeight = density == "compact" ? 32 : density == "standard" ? 28 : density == "comfortable" ? 36 : 32;
2032
2296
  let rows = rowsTable ? rowsTable : validationTreeData != false ? parseInt(data.length.toString()) : data.length < 10 ? parseInt(data.length.toString()) : 10;
2033
2297
  let validationGroupingColDef = groupingColDefs || {};
2034
- const [groupDataLenght, setGroupDataLengh] = (0, import_react17.useState)(0);
2035
- const [pageSize, setPageSize] = (0, import_react17.useState)(rows);
2036
- const [arrayRows, setArrayRows] = (0, import_react17.useState)([]);
2037
- const [selectionModel, setSelectionModel] = (0, import_react17.useState)([]);
2038
- (0, import_react17.useEffect)(() => {
2298
+ const [groupDataLenght, setGroupDataLengh] = (0, import_react18.useState)(0);
2299
+ const [pageSize, setPageSize] = (0, import_react18.useState)(rows);
2300
+ const [arrayRows, setArrayRows] = (0, import_react18.useState)([]);
2301
+ const [selectionModel, setSelectionModel] = (0, import_react18.useState)([]);
2302
+ (0, import_react18.useEffect)(() => {
2039
2303
  if ((data == null ? void 0 : data.length) > 0) {
2040
2304
  dataConvertRows(data, void 0);
2041
2305
  }
@@ -2091,7 +2355,7 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
2091
2355
  setSelectionModel([...newSelection]);
2092
2356
  }
2093
2357
  };
2094
- return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, data && /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, /* @__PURE__ */ import_react17.default.createElement("div", { style: { width: width || "100%", maxHeight: maxHeight ? `${maxHeight}px` : "none" } }, /* @__PURE__ */ import_react17.default.createElement(
2358
+ return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, data && /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement("div", { style: { width: width || "100%", maxHeight: maxHeight ? `${maxHeight}px` : "none" } }, /* @__PURE__ */ import_react18.default.createElement(
2095
2359
  import_x_data_grid_pro.DataGridPro,
2096
2360
  {
2097
2361
  apiRef,
@@ -2125,7 +2389,6 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
2125
2389
  },
2126
2390
  sx: {
2127
2391
  maxHeight: maxHeight ? `${maxHeight}px` : "none",
2128
- //overflow: 'auto',
2129
2392
  "& .MuiDataGrid-filler": {
2130
2393
  display: "none !important"
2131
2394
  },
@@ -2155,14 +2418,14 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
2155
2418
  }
2156
2419
  }
2157
2420
  ))));
2158
- };
2159
- var SCDataGrid = import_react17.default.memo(SCDataGridInitial, (prevProps, nextProps) => {
2160
- const isEqual = prevProps.data === nextProps.data && prevProps.columns === nextProps.columns && prevProps.groupColumns === nextProps.groupColumns && prevProps.rowsTable === nextProps.rowsTable && prevProps.checkboxSelection === nextProps.checkboxSelection && prevProps.width === nextProps.width && prevProps.maxHeight === nextProps.maxHeight && prevProps.density === nextProps.density;
2421
+ }
2422
+ var SCDataGrid = import_react18.default.memo(SCDataGridInitial, (prevProps, nextProps) => {
2423
+ const isEqual = prevProps.rowsTable === nextProps.rowsTable && prevProps.checkboxSelection === nextProps.checkboxSelection && prevProps.width === nextProps.width && prevProps.maxHeight === nextProps.maxHeight && prevProps.density === nextProps.density;
2161
2424
  return isEqual;
2162
2425
  });
2163
2426
 
2164
2427
  // src/Components/EmptyState/EmptyState.tsx
2165
- var import_react18 = __toESM(require("react"), 1);
2428
+ var import_react19 = __toESM(require("react"), 1);
2166
2429
  var import_material13 = require("@mui/material");
2167
2430
 
2168
2431
  // src/assets/ImgEmptyState/create.svg
@@ -2190,7 +2453,7 @@ var DefaultIcon = ({
2190
2453
  }) => {
2191
2454
  const imageUrl = EmptyStateImageUrls[state];
2192
2455
  const iconSize = size === "small" ? { width: "40px", height: "40px" } : { width: "60px", height: "60px" };
2193
- return /* @__PURE__ */ import_react18.default.createElement("img", { src: imageUrl, alt: state, style: iconSize });
2456
+ return /* @__PURE__ */ import_react19.default.createElement("img", { src: imageUrl, alt: state, style: iconSize });
2194
2457
  };
2195
2458
  var EmptyState = ({
2196
2459
  state = "create",
@@ -2199,11 +2462,11 @@ var EmptyState = ({
2199
2462
  subtitle,
2200
2463
  actions,
2201
2464
  containerHeight = "100vh",
2202
- icon = /* @__PURE__ */ import_react18.default.createElement(DefaultIcon, { state, size })
2465
+ icon = /* @__PURE__ */ import_react19.default.createElement(DefaultIcon, { state, size })
2203
2466
  }) => {
2204
2467
  const titleVariant = size === "small" ? "subtitle2" : "h6";
2205
2468
  const subtitleVariant = size === "small" ? "caption" : "body1";
2206
- return /* @__PURE__ */ import_react18.default.createElement(
2469
+ return /* @__PURE__ */ import_react19.default.createElement(
2207
2470
  import_material13.Stack,
2208
2471
  {
2209
2472
  alignItems: "center",
@@ -2212,8 +2475,8 @@ var EmptyState = ({
2212
2475
  height: containerHeight,
2213
2476
  "data-testid": "empty-state-container"
2214
2477
  },
2215
- icon && /* @__PURE__ */ import_react18.default.createElement(import_material13.Stack, null, icon),
2216
- /* @__PURE__ */ import_react18.default.createElement(import_material13.Stack, { gap: 0.5 }, /* @__PURE__ */ import_react18.default.createElement(import_material13.Typography, { color: "text.primary", variant: titleVariant, textAlign: "center" }, title), subtitle && /* @__PURE__ */ import_react18.default.createElement(
2478
+ icon && /* @__PURE__ */ import_react19.default.createElement(import_material13.Stack, null, icon),
2479
+ /* @__PURE__ */ import_react19.default.createElement(import_material13.Stack, { gap: 0.5 }, /* @__PURE__ */ import_react19.default.createElement(import_material13.Typography, { color: "text.primary", variant: titleVariant, textAlign: "center" }, title), subtitle && /* @__PURE__ */ import_react19.default.createElement(
2217
2480
  import_material13.Typography,
2218
2481
  {
2219
2482
  variant: subtitleVariant,
@@ -2221,7 +2484,7 @@ var EmptyState = ({
2221
2484
  color: "text.secondary"
2222
2485
  },
2223
2486
  subtitle
2224
- ), actions && (actions == null ? void 0 : actions.length) > 0 && /* @__PURE__ */ import_react18.default.createElement(
2487
+ ), actions && (actions == null ? void 0 : actions.length) > 0 && /* @__PURE__ */ import_react19.default.createElement(
2225
2488
  import_material13.Stack,
2226
2489
  {
2227
2490
  direction: "row",
@@ -2231,15 +2494,15 @@ var EmptyState = ({
2231
2494
  },
2232
2495
  actions.map((action, index) => {
2233
2496
  var _a, _b, _c, _d;
2234
- return /* @__PURE__ */ import_react18.default.createElement(
2497
+ return /* @__PURE__ */ import_react19.default.createElement(
2235
2498
  import_material13.Button,
2236
2499
  {
2237
2500
  key: index,
2238
2501
  color: (_a = action.color) != null ? _a : "primary",
2239
2502
  variant: (_b = action.variant) != null ? _b : "text",
2240
2503
  size: (_c = action.size) != null ? _c : "small",
2241
- startIcon: action.icon && action.iconPosition === "left" ? /* @__PURE__ */ import_react18.default.createElement("img", { src: action.icon, alt: "icon" }) : void 0,
2242
- endIcon: action.icon && action.iconPosition === "right" ? /* @__PURE__ */ import_react18.default.createElement("img", { src: action.icon, alt: "icon" }) : void 0,
2504
+ startIcon: action.icon && action.iconPosition === "left" ? /* @__PURE__ */ import_react19.default.createElement("img", { src: action.icon, alt: "icon" }) : void 0,
2505
+ endIcon: action.icon && action.iconPosition === "right" ? /* @__PURE__ */ import_react19.default.createElement("img", { src: action.icon, alt: "icon" }) : void 0,
2243
2506
  onClick: action.onClick
2244
2507
  },
2245
2508
  capitalize((_d = action.text) != null ? _d : "action")
@@ -2250,7 +2513,7 @@ var EmptyState = ({
2250
2513
  };
2251
2514
 
2252
2515
  // src/Components/SCDialog.tsx
2253
- var import_react19 = __toESM(require("react"), 1);
2516
+ var import_react20 = __toESM(require("react"), 1);
2254
2517
  var import_material14 = require("@mui/material");
2255
2518
  var import_Grid25 = __toESM(require("@mui/material/Grid2"), 1);
2256
2519
  var import_Close2 = __toESM(require("@mui/icons-material/Close"), 1);
@@ -2260,8 +2523,8 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2260
2523
  let iconTitleValidation = "";
2261
2524
  let IconTitle;
2262
2525
  let ButtonIcon;
2263
- const [open, setOpen] = (0, import_react19.useState)(show);
2264
- (0, import_react19.useEffect)(() => {
2526
+ const [open, setOpen] = (0, import_react20.useState)(show);
2527
+ (0, import_react20.useEffect)(() => {
2265
2528
  if (show) {
2266
2529
  handleOpen();
2267
2530
  } else {
@@ -2286,7 +2549,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2286
2549
  });
2287
2550
  if (iconTitle) {
2288
2551
  if (Muicon5[iconTitle] == void 0) {
2289
- if (iconTitle && import_react19.default.isValidElement(iconTitle) && iconTitle.type == void 0) {
2552
+ if (iconTitle && import_react20.default.isValidElement(iconTitle) && iconTitle.type == void 0) {
2290
2553
  iconTitleValidation = "image";
2291
2554
  IconTitle = iconTitle;
2292
2555
  } else {
@@ -2311,8 +2574,8 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2311
2574
  }
2312
2575
  };
2313
2576
  const dialogActions = actions != null ? actions : [{ text: "Cerrar", fn: handleClose }];
2314
- content = content != null ? content : { component: /* @__PURE__ */ import_react19.default.createElement(import_material14.Box, null, " Aqui va el contenido ") };
2315
- return /* @__PURE__ */ import_react19.default.createElement("div", null, buttonDialog ? /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, buttonDialog.text != void 0 ? /* @__PURE__ */ import_react19.default.createElement(import_material14.Tooltip, { placement: "bottom-start", title: buttonDialog.tooltip != void 0 ? buttonDialog.tooltip : "", slotProps: { popper: { modifiers: [{ name: "offset", options: { offset: [0, -14] } }] } } }, /* @__PURE__ */ import_react19.default.createElement(import_material14.Button, { size: "small", color: buttonDialog.color != void 0 ? buttonDialog.color : "primary", variant: (buttonDialog == null ? void 0 : buttonDialog.variant) != void 0 ? buttonDialog == null ? void 0 : buttonDialog.variant : "text", startIcon: (buttonDialog == null ? void 0 : buttonDialog.iconPosition) != void 0 ? (buttonDialog == null ? void 0 : buttonDialog.iconPosition) == "left" ? /* @__PURE__ */ import_react19.default.createElement(ButtonIcon, { color: buttonDialog.color != void 0 ? buttonDialog.color : "primary" }) : "" : "", endIcon: (buttonDialog == null ? void 0 : buttonDialog.iconPosition) != void 0 ? (buttonDialog == null ? void 0 : buttonDialog.iconPosition) == "right" ? /* @__PURE__ */ import_react19.default.createElement(ButtonIcon, { color: buttonDialog.color != void 0 ? buttonDialog.color : "primary" }) : "" : "", onClick: handleOpen }, " ", (buttonDialog == null ? void 0 : buttonDialog.text) != void 0 ? buttonDialog.text : "", " ")) : /* @__PURE__ */ import_react19.default.createElement(import_material14.IconButton, { style: { cursor: "pointer" }, onClick: handleOpen }, /* @__PURE__ */ import_react19.default.createElement(import_material14.SvgIcon, { fontSize: "small", color: (buttonDialog == null ? void 0 : buttonDialog.color) != void 0 ? buttonDialog == null ? void 0 : buttonDialog.color : "action", component: ButtonIcon }))) : "", /* @__PURE__ */ import_react19.default.createElement(import_material14.Modal, { open: open || false, onClose: handleClose }, /* @__PURE__ */ import_react19.default.createElement(
2577
+ content = content != null ? content : { component: /* @__PURE__ */ import_react20.default.createElement(import_material14.Box, null, " Aqui va el contenido ") };
2578
+ return /* @__PURE__ */ import_react20.default.createElement("div", null, buttonDialog ? /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, buttonDialog.text != void 0 ? /* @__PURE__ */ import_react20.default.createElement(import_material14.Tooltip, { placement: "bottom-start", title: buttonDialog.tooltip != void 0 ? buttonDialog.tooltip : "", slotProps: { popper: { modifiers: [{ name: "offset", options: { offset: [0, -14] } }] } } }, /* @__PURE__ */ import_react20.default.createElement(import_material14.Button, { size: "small", color: buttonDialog.color != void 0 ? buttonDialog.color : "primary", variant: (buttonDialog == null ? void 0 : buttonDialog.variant) != void 0 ? buttonDialog == null ? void 0 : buttonDialog.variant : "text", startIcon: (buttonDialog == null ? void 0 : buttonDialog.iconPosition) != void 0 ? (buttonDialog == null ? void 0 : buttonDialog.iconPosition) == "left" ? /* @__PURE__ */ import_react20.default.createElement(ButtonIcon, null) : "" : "", endIcon: (buttonDialog == null ? void 0 : buttonDialog.iconPosition) != void 0 ? (buttonDialog == null ? void 0 : buttonDialog.iconPosition) == "right" ? /* @__PURE__ */ import_react20.default.createElement(ButtonIcon, null) : "" : "", onClick: handleOpen }, " ", (buttonDialog == null ? void 0 : buttonDialog.text) != void 0 ? buttonDialog.text : "", " ")) : /* @__PURE__ */ import_react20.default.createElement(import_material14.IconButton, { style: { cursor: "pointer" }, onClick: handleOpen }, /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", color: (buttonDialog == null ? void 0 : buttonDialog.color) != void 0 ? buttonDialog == null ? void 0 : buttonDialog.color : "action", component: ButtonIcon }))) : "", /* @__PURE__ */ import_react20.default.createElement(import_material14.Modal, { open: open || false, onClose: handleClose }, /* @__PURE__ */ import_react20.default.createElement(
2316
2579
  import_material14.Dialog,
2317
2580
  {
2318
2581
  "data-testid": "dialog-element",
@@ -2326,8 +2589,8 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2326
2589
  }
2327
2590
  }
2328
2591
  },
2329
- title && /* @__PURE__ */ import_react19.default.createElement(import_material14.DialogTitle, { sx: { m: 0, padding: "8px 16px 8px 16px" }, "data-testid": "dialog-icon-title" }, /* @__PURE__ */ import_react19.default.createElement(import_Grid25.default, { container: true, size: 12, sx: { justifyContent: "space-between", flexWrap: "nowrap" } }, /* @__PURE__ */ import_react19.default.createElement(import_Grid25.default, { container: true, size: 11, sx: { alignItems: "center" } }, iconTitle ? iconTitleValidation == "image" ? /* @__PURE__ */ import_react19.default.createElement(import_material14.Box, { sx: { marginRight: "16px", width: "44px", height: "44px", borderRadius: "1px" } }, /* @__PURE__ */ import_react19.default.createElement("img", { src: IconTitle, width: "44px", height: "44px" })) : /* @__PURE__ */ import_react19.default.createElement(import_material14.SvgIcon, { color: "action", fontSize: "small", component: IconTitle, sx: { marginRight: "16px" } }) : "", /* @__PURE__ */ import_react19.default.createElement(import_Grid25.default, null, /* @__PURE__ */ import_react19.default.createElement(import_material14.Typography, { color: "text.primary", variant: "h6", gutterBottom: true }, title ? title : ""), /* @__PURE__ */ import_react19.default.createElement(import_material14.Typography, { color: "text.secondary", variant: "body2", gutterBottom: true }, subtitle ? subtitle : ""))), disableClose != true ? /* @__PURE__ */ import_react19.default.createElement(import_material14.IconButton, { "data-testid": "close-dialog-button", onClick: handleClose, size: "small", color: "default", sx: { height: 22, width: 22 } }, /* @__PURE__ */ import_react19.default.createElement(import_Close2.default, null)) : "")),
2330
- /* @__PURE__ */ import_react19.default.createElement(
2592
+ title && /* @__PURE__ */ import_react20.default.createElement(import_material14.DialogTitle, { sx: { m: 0, padding: "8px 16px 8px 16px" }, "data-testid": "dialog-icon-title" }, /* @__PURE__ */ import_react20.default.createElement(import_Grid25.default, { container: true, size: 12, sx: { justifyContent: "space-between", flexWrap: "nowrap" } }, /* @__PURE__ */ import_react20.default.createElement(import_Grid25.default, { container: true, size: 11, sx: { alignItems: "center" } }, iconTitle ? iconTitleValidation == "image" ? /* @__PURE__ */ import_react20.default.createElement(import_material14.Box, { sx: { marginRight: "16px", width: "44px", height: "44px", borderRadius: "1px" } }, /* @__PURE__ */ import_react20.default.createElement("img", { src: IconTitle, width: "44px", height: "44px" })) : /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { color: "action", fontSize: "small", component: IconTitle, sx: { marginRight: "16px" } }) : "", /* @__PURE__ */ import_react20.default.createElement(import_Grid25.default, null, /* @__PURE__ */ import_react20.default.createElement(import_material14.Typography, { color: "text.primary", variant: "h6", gutterBottom: true }, title ? title : ""), /* @__PURE__ */ import_react20.default.createElement(import_material14.Typography, { color: "text.secondary", variant: "body2", gutterBottom: true }, subtitle ? subtitle : ""))), disableClose != true ? /* @__PURE__ */ import_react20.default.createElement(import_material14.IconButton, { "data-testid": "close-dialog-button", onClick: handleClose, size: "small", color: "default", sx: { height: 22, width: 22 } }, /* @__PURE__ */ import_react20.default.createElement(import_Close2.default, null)) : "")),
2593
+ /* @__PURE__ */ import_react20.default.createElement(
2331
2594
  import_material14.DialogContent,
2332
2595
  {
2333
2596
  "data-testid": "dialog-content",
@@ -2355,7 +2618,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2355
2618
  }
2356
2619
  }
2357
2620
  },
2358
- content.url ? /* @__PURE__ */ import_react19.default.createElement(
2621
+ content.url ? /* @__PURE__ */ import_react20.default.createElement(
2359
2622
  "iframe",
2360
2623
  {
2361
2624
  style: { border: "none", minWidth: "100%", minHeight: "100%" },
@@ -2365,7 +2628,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2365
2628
  }
2366
2629
  ) : content.component
2367
2630
  ),
2368
- dialogActions.length > 0 ? /* @__PURE__ */ import_react19.default.createElement(import_material14.DialogActions, { sx: { gap: 1, m: 0, padding: "12px 16px 12px 16px", justifyContent: dialogActions.length >= 3 ? "space-between" : "flex-end" } }, dialogActions.length >= 3 ? /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
2631
+ dialogActions.length > 0 ? /* @__PURE__ */ import_react20.default.createElement(import_material14.DialogActions, { sx: { gap: 1, m: 0, padding: "12px 16px 12px 16px", justifyContent: dialogActions.length >= 3 ? "space-between" : "flex-end" } }, dialogActions.length >= 3 ? /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
2369
2632
  import_material14.Button,
2370
2633
  {
2371
2634
  variant: "text",
@@ -2373,11 +2636,11 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2373
2636
  size: "small",
2374
2637
  onClick: dialogActions[0].fn,
2375
2638
  disabled: dialogActions[0].disabled || false,
2376
- startIcon: dialogActions[0].icon ? /* @__PURE__ */ import_react19.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: dialogActions[0].icon }) : void 0
2639
+ startIcon: dialogActions[0].icon ? /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: dialogActions[0].icon }) : void 0
2377
2640
  },
2378
2641
  dialogActions[0].text
2379
- ), /* @__PURE__ */ import_react19.default.createElement(import_material14.Box, { sx: { display: "flex", gap: 1 } }, dialogActions.slice(1).map((boton, index) => {
2380
- return /* @__PURE__ */ import_react19.default.createElement(
2642
+ ), /* @__PURE__ */ import_react20.default.createElement(import_material14.Box, { sx: { display: "flex", gap: 1 } }, dialogActions.slice(1).map((boton, index) => {
2643
+ return /* @__PURE__ */ import_react20.default.createElement(
2381
2644
  import_material14.Button,
2382
2645
  {
2383
2646
  key: index + 1,
@@ -2386,12 +2649,12 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2386
2649
  size: "small",
2387
2650
  onClick: boton.fn,
2388
2651
  disabled: boton.disabled || false,
2389
- startIcon: boton.icon ? /* @__PURE__ */ import_react19.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: boton.icon }) : void 0
2652
+ startIcon: boton.icon ? /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: boton.icon }) : void 0
2390
2653
  },
2391
2654
  boton.text
2392
2655
  );
2393
2656
  }))) : dialogActions.map((boton, index) => {
2394
- return /* @__PURE__ */ import_react19.default.createElement(
2657
+ return /* @__PURE__ */ import_react20.default.createElement(
2395
2658
  import_material14.Button,
2396
2659
  {
2397
2660
  key: index,
@@ -2400,7 +2663,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2400
2663
  size: "small",
2401
2664
  onClick: boton.fn,
2402
2665
  disabled: boton.disabled || false,
2403
- startIcon: boton.icon ? /* @__PURE__ */ import_react19.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: boton.icon }) : void 0
2666
+ startIcon: boton.icon ? /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: boton.icon }) : void 0
2404
2667
  },
2405
2668
  boton.text
2406
2669
  );
@@ -2409,12 +2672,12 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
2409
2672
  };
2410
2673
 
2411
2674
  // src/Components/SCMenu.tsx
2412
- var import_react21 = __toESM(require("react"), 1);
2675
+ var import_react22 = __toESM(require("react"), 1);
2413
2676
  var import_material15 = require("@mui/material");
2414
2677
  var import_Grid26 = __toESM(require("@mui/material/Grid2"), 1);
2415
2678
 
2416
2679
  // src/Components/Hooks/useWindowDimensions.ts
2417
- var import_react20 = require("react");
2680
+ var import_react21 = require("react");
2418
2681
  function getWindowDimensions() {
2419
2682
  const { innerWidth: width, innerHeight: height } = window;
2420
2683
  return {
@@ -2423,8 +2686,8 @@ function getWindowDimensions() {
2423
2686
  };
2424
2687
  }
2425
2688
  function useWindowDimensions() {
2426
- const [windowDimensions, setWindowDimensions] = (0, import_react20.useState)(getWindowDimensions());
2427
- (0, import_react20.useEffect)(() => {
2689
+ const [windowDimensions, setWindowDimensions] = (0, import_react21.useState)(getWindowDimensions());
2690
+ (0, import_react21.useEffect)(() => {
2428
2691
  function handleResize() {
2429
2692
  setWindowDimensions(getWindowDimensions());
2430
2693
  }
@@ -2442,12 +2705,12 @@ var SCMenu = ({ header, options, defaultOption, disable, widthMenu, heightMenu,
2442
2705
  const pageSize = widthPage ? parseInt(widthPage) : width - menuSize;
2443
2706
  const widthContainer = menuSize + pageSize;
2444
2707
  let heightContainer = heightMenu ? parseInt(heightMenu) : height - 76;
2445
- const [selectedIndex, setSelectedIndex] = import_react21.default.useState("1");
2446
- const [value, setValue] = import_react21.default.useState("1");
2447
- import_react21.default.useEffect(() => {
2708
+ const [selectedIndex, setSelectedIndex] = import_react22.default.useState("1");
2709
+ const [value, setValue] = import_react22.default.useState("1");
2710
+ import_react22.default.useEffect(() => {
2448
2711
  heightContainer = heightMenu ? parseInt(heightMenu) : height - 76;
2449
2712
  }, [height]);
2450
- import_react21.default.useEffect(() => {
2713
+ import_react22.default.useEffect(() => {
2451
2714
  if (defaultOption) {
2452
2715
  handleClickMenusItem(event, void 0);
2453
2716
  }
@@ -2477,7 +2740,7 @@ var SCMenu = ({ header, options, defaultOption, disable, widthMenu, heightMenu,
2477
2740
  setValue(String(index + 1));
2478
2741
  }
2479
2742
  };
2480
- return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(import_Grid26.default, { container: true, sx: { height: heightContainer, width: widthContainer, flexDirection: "column" } }, /* @__PURE__ */ import_react21.default.createElement(import_material15.Paper, { "data-testid": "menu-content", sx: { width: menuSize, height: heightContainer, overflow: "auto" } }, header && header.component, /* @__PURE__ */ import_react21.default.createElement(import_material15.MenuList, { sx: { height: options.length * 45, padding: "8px 0px" } }, options.map((option, index) => /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
2743
+ return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(import_Grid26.default, { container: true, sx: { height: heightContainer, width: widthContainer, flexDirection: "column" } }, /* @__PURE__ */ import_react22.default.createElement(import_material15.Paper, { "data-testid": "menu-content", sx: { width: menuSize, height: heightContainer, overflow: "auto" } }, header && header.component, /* @__PURE__ */ import_react22.default.createElement(import_material15.MenuList, { sx: { height: options.length * 45, padding: "8px 0px" } }, options.map((option, index) => /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(
2481
2744
  import_material15.MenuItem,
2482
2745
  {
2483
2746
  disabled: disable == true ? true : false,
@@ -2485,26 +2748,26 @@ var SCMenu = ({ header, options, defaultOption, disable, widthMenu, heightMenu,
2485
2748
  selected: String(index + 1) === selectedIndex,
2486
2749
  onClick: (event2) => handleClickMenusItem(event2, index)
2487
2750
  },
2488
- option.iconLeft ? /* @__PURE__ */ import_react21.default.createElement(import_material15.ListItemIcon, { sx: { color: String(index + 1) === selectedIndex ? "primary" : "active" } }, /* @__PURE__ */ import_react21.default.createElement(import_material15.SvgIcon, { fontSize: "small", color: String(index + 1) === selectedIndex ? "primary" : "action", component: option.iconLeft })) : "",
2489
- /* @__PURE__ */ import_react21.default.createElement(import_Grid26.default, { container: true, size: 12, sx: { maxWidth: 220, flexWrap: "noWrap", alignItems: "center" } }, /* @__PURE__ */ import_react21.default.createElement(import_material15.Typography, { noWrap: true, variant: "caption", color: String(index + 1) === selectedIndex ? "primary" : "active" }, option.name), option.iconRight ? /* @__PURE__ */ import_react21.default.createElement(import_material15.ListItemIcon, { sx: { minWidth: "0px !important", color: String(index + 1) === selectedIndex ? "primary" : "active" } }, /* @__PURE__ */ import_react21.default.createElement(import_material15.SvgIcon, { fontSize: "small", color: String(index + 1) === selectedIndex ? "primary" : "action", component: option.iconRight })) : "")
2490
- ), option.divider == true ? /* @__PURE__ */ import_react21.default.createElement(import_material15.Divider, null) : "")))), /* @__PURE__ */ import_react21.default.createElement(import_Grid26.default, { container: true }, options.map((option, index) => option.page ? String(index + 1) == value ? /* @__PURE__ */ import_react21.default.createElement(import_material15.Box, { "data-testid": "menu-page-content", sx: { padding: "16px", width: pageSize, height: heightContainer }, key: index }, option.page) : "" : /* @__PURE__ */ import_react21.default.createElement(import_material15.Typography, { color: "error" }, "No se ha configurado el componente a visualizar")))));
2751
+ option.iconLeft ? /* @__PURE__ */ import_react22.default.createElement(import_material15.ListItemIcon, { sx: { color: String(index + 1) === selectedIndex ? "primary" : "active" } }, /* @__PURE__ */ import_react22.default.createElement(import_material15.SvgIcon, { fontSize: "small", color: String(index + 1) === selectedIndex ? "primary" : "action", component: option.iconLeft })) : "",
2752
+ /* @__PURE__ */ import_react22.default.createElement(import_Grid26.default, { container: true, size: 12, sx: { maxWidth: 220, flexWrap: "noWrap", alignItems: "center" } }, /* @__PURE__ */ import_react22.default.createElement(import_material15.Typography, { noWrap: true, variant: "caption", color: String(index + 1) === selectedIndex ? "primary" : "active" }, option.name), option.iconRight ? /* @__PURE__ */ import_react22.default.createElement(import_material15.ListItemIcon, { sx: { minWidth: "0px !important", color: String(index + 1) === selectedIndex ? "primary" : "active" } }, /* @__PURE__ */ import_react22.default.createElement(import_material15.SvgIcon, { fontSize: "small", color: String(index + 1) === selectedIndex ? "primary" : "action", component: option.iconRight })) : "")
2753
+ ), option.divider == true ? /* @__PURE__ */ import_react22.default.createElement(import_material15.Divider, null) : "")))), /* @__PURE__ */ import_react22.default.createElement(import_Grid26.default, { container: true }, options.map((option, index) => option.page ? String(index + 1) == value ? /* @__PURE__ */ import_react22.default.createElement(import_material15.Box, { "data-testid": "menu-page-content", sx: { padding: "16px", width: pageSize, height: heightContainer }, key: index }, option.page) : "" : /* @__PURE__ */ import_react22.default.createElement(import_material15.Typography, { color: "error" }, "No se ha configurado el componente a visualizar")))));
2491
2754
  };
2492
2755
 
2493
2756
  // src/Components/SCTabs.tsx
2494
- var import_react22 = __toESM(require("react"), 1);
2757
+ var import_react23 = __toESM(require("react"), 1);
2495
2758
  var import_material16 = require("@mui/material");
2496
2759
  var import_TabPanel = __toESM(require("@mui/lab/TabPanel"), 1);
2497
2760
  var import_TabContext = __toESM(require("@mui/lab/TabContext"), 1);
2498
2761
  var Muicon7 = __toESM(require("@mui/icons-material"), 1);
2499
2762
  var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colorTab, orientation, variant, scrollButtons, children }) => {
2500
- const [toast, setToast] = import_react22.default.useState(null);
2763
+ const [toast, setToast] = import_react23.default.useState(null);
2501
2764
  let i = 0;
2502
2765
  let j = 0;
2503
2766
  let k = 0;
2504
2767
  let l = 0;
2505
2768
  let validateTypeIcon = true;
2506
- const [value, setValue] = import_react22.default.useState("1");
2507
- (0, import_react22.useEffect)(() => {
2769
+ const [value, setValue] = import_react23.default.useState("1");
2770
+ (0, import_react23.useEffect)(() => {
2508
2771
  if (defaultOption) {
2509
2772
  handleChange(event, void 0);
2510
2773
  }
@@ -2554,7 +2817,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
2554
2817
  setValue(newValue);
2555
2818
  }
2556
2819
  };
2557
- return /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, validateTypeIcon == true ? /* @__PURE__ */ import_react22.default.createElement(import_material16.Box, { sx: { height: orientation == "vertical" ? "100%" : "auto", display: "flex", flexDirection: orientation == "vertical" ? "row" : "column" }, id: "tabsitos" }, /* @__PURE__ */ import_react22.default.createElement(import_TabContext.default, { value }, /* @__PURE__ */ import_react22.default.createElement(
2820
+ return /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, validateTypeIcon == true ? /* @__PURE__ */ import_react23.default.createElement(import_material16.Box, { sx: { height: orientation == "vertical" ? "100%" : "auto", display: "flex", flexDirection: orientation == "vertical" ? "row" : "column" }, id: "tabsitos" }, /* @__PURE__ */ import_react23.default.createElement(import_TabContext.default, { value }, /* @__PURE__ */ import_react23.default.createElement(
2558
2821
  import_material16.Tabs,
2559
2822
  {
2560
2823
  "data-testid": "tab-container",
@@ -2568,7 +2831,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
2568
2831
  orientation: orientation || "horizontal",
2569
2832
  sx: { borderBottom: orientation == "vertical" ? 0 : 1, borderRight: orientation == "vertical" ? 1 : 0, borderColor: "divider", background: background || "" }
2570
2833
  },
2571
- options.map((option) => /* @__PURE__ */ import_react22.default.createElement(
2834
+ options.map((option) => /* @__PURE__ */ import_react23.default.createElement(
2572
2835
  import_material16.Tab,
2573
2836
  {
2574
2837
  "data-testid": "tab-item",
@@ -2577,7 +2840,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
2577
2840
  label: option.name || "",
2578
2841
  disabled: option.disabled || false,
2579
2842
  iconPosition: iconPosition || "end",
2580
- icon: typeIcon == "badge" ? /* @__PURE__ */ import_react22.default.createElement(
2843
+ icon: typeIcon == "badge" ? /* @__PURE__ */ import_react23.default.createElement(
2581
2844
  import_material16.Badge,
2582
2845
  {
2583
2846
  sx: {
@@ -2592,33 +2855,38 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
2592
2855
  badgeContent: option.iconOrBadge,
2593
2856
  color: value == String(i) ? colorTab ? colorTab : "primary" : "default"
2594
2857
  }
2595
- ) : typeIcon == "icon" ? /* @__PURE__ */ import_react22.default.createElement(import_material16.SvgIcon, { fontSize: "small", component: option.iconOrBadge, color: value == String(i) ? colorTab ? colorTab : "primary" : "action", sx: { width: "20px", height: "20px" } }) : "",
2858
+ ) : typeIcon == "icon" ? /* @__PURE__ */ import_react23.default.createElement(import_material16.SvgIcon, { fontSize: "small", component: option.iconOrBadge, color: value == String(i) ? colorTab ? colorTab : "primary" : "action", sx: { width: "20px", height: "20px" } }) : "",
2596
2859
  sx: { "& .MuiTab-icon": { margin: "0px !important" }, padding: "10px 16px", gap: "4px" }
2597
2860
  }
2598
2861
  ))
2599
- ), children, options.map((option) => /* @__PURE__ */ import_react22.default.createElement(
2862
+ ), children, options.map((option) => /* @__PURE__ */ import_react23.default.createElement(
2600
2863
  import_TabPanel.default,
2601
2864
  {
2602
2865
  key: k = k + 1,
2603
2866
  value: String(l = l + 1),
2604
2867
  sx: { padding: "16px" }
2605
2868
  },
2606
- option.page ? option.page : /* @__PURE__ */ import_react22.default.createElement(import_material16.Typography, null, "No se ha configurado el componente a visualizar ")
2607
- )))) : /* @__PURE__ */ import_react22.default.createElement(import_material16.Box, { sx: { height: "200px" } }, toast && /* @__PURE__ */ import_react22.default.createElement(SCToastNotification, __spreadValues({ "data-testid": "error-tab-message" }, toast))));
2869
+ option.page ? option.page : /* @__PURE__ */ import_react23.default.createElement(import_material16.Typography, null, "No se ha configurado el componente a visualizar ")
2870
+ )))) : /* @__PURE__ */ import_react23.default.createElement(import_material16.Box, { sx: { height: "200px" } }, toast && /* @__PURE__ */ import_react23.default.createElement(SCToastNotification, __spreadValues({ "data-testid": "error-tab-message" }, toast))));
2608
2871
  };
2609
2872
 
2610
2873
  // src/Components/Calendario/Calendar.tsx
2611
- var import_react28 = __toESM(require("react"), 1);
2874
+ var import_react29 = __toESM(require("react"), 1);
2612
2875
  var import_material22 = require("@mui/material");
2613
- var import_dayjs7 = __toESM(require("dayjs"), 1);
2614
2876
 
2615
2877
  // src/Components/Calendario/CalendarToolbar.tsx
2616
- var import_react23 = __toESM(require("react"), 1);
2878
+ var import_react24 = __toESM(require("react"), 1);
2617
2879
  var import_icons_material10 = require("@mui/icons-material");
2618
2880
  var import_material17 = require("@mui/material");
2619
2881
  var import_dayjs2 = __toESM(require("dayjs"), 1);
2882
+ var import_updateLocale = __toESM(require("dayjs/plugin/updateLocale"), 1);
2620
2883
  var import_es2 = require("dayjs/locale/es");
2621
2884
  import_dayjs2.default.locale("es");
2885
+ import_dayjs2.default.extend(import_updateLocale.default);
2886
+ import_dayjs2.default.updateLocale("en", {
2887
+ weekStart: 0
2888
+ // 0 = domingo
2889
+ });
2622
2890
  var CalendarToolbar = ({
2623
2891
  labelDate,
2624
2892
  view,
@@ -2626,7 +2894,7 @@ var CalendarToolbar = ({
2626
2894
  onNavigate,
2627
2895
  children
2628
2896
  }) => {
2629
- const [anchorEl, setAnchorEl] = (0, import_react23.useState)(null);
2897
+ const [anchorEl, setAnchorEl] = (0, import_react24.useState)(null);
2630
2898
  const open = Boolean(anchorEl);
2631
2899
  const handleMenuOpen = (event2) => {
2632
2900
  setAnchorEl(event2.currentTarget);
@@ -2639,23 +2907,25 @@ var CalendarToolbar = ({
2639
2907
  handleMenuClose();
2640
2908
  };
2641
2909
  const getFormattedDate = () => {
2910
+ const sunday = labelDate.day(0);
2642
2911
  if (view === "month") {
2643
- return labelDate.format("MMMM YYYY");
2912
+ const textMonth = labelDate.format("MMMM YYYY");
2913
+ return textMonth.charAt(0).toUpperCase() + textMonth.slice(1);
2644
2914
  }
2645
2915
  if (view === "week") {
2646
- return `${labelDate.startOf("week").add(1, "day").format("DD MMM")} - ${labelDate.endOf("week").format("DD MMM YYYY")}`;
2916
+ return `${labelDate.startOf("week").format("DD MMM")} - ${labelDate.endOf("week").format("DD MMM YYYY")}`;
2647
2917
  }
2648
2918
  return labelDate.format(" DD MMMM YYYY");
2649
2919
  };
2650
- return /* @__PURE__ */ import_react23.default.createElement(import_material17.Stack, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 0.5, px: 1, py: 0.5 }, /* @__PURE__ */ import_react23.default.createElement(import_material17.Box, null, /* @__PURE__ */ import_react23.default.createElement(
2920
+ return /* @__PURE__ */ import_react24.default.createElement(import_material17.Stack, { direction: "row", alignItems: "center", justifyContent: "space-between", gap: 0.5, px: 1, py: 0.5 }, /* @__PURE__ */ import_react24.default.createElement(import_material17.Box, null, /* @__PURE__ */ import_react24.default.createElement(
2651
2921
  import_material17.Chip,
2652
2922
  {
2653
2923
  label: "Hoy",
2654
- icon: /* @__PURE__ */ import_react23.default.createElement(import_icons_material10.LightModeOutlined, { fontSize: "small" }),
2924
+ icon: /* @__PURE__ */ import_react24.default.createElement(import_icons_material10.LightModeOutlined, { fontSize: "small" }),
2655
2925
  color: "primary",
2656
2926
  onClick: () => onNavigate("TODAY")
2657
2927
  }
2658
- )), /* @__PURE__ */ import_react23.default.createElement(import_material17.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react23.default.createElement(import_material17.IconButton, { "aria-label": "Anterior", onClick: () => onNavigate("PREV"), size: "small", color: "primary" }, /* @__PURE__ */ import_react23.default.createElement(import_icons_material10.ChevronLeft, { fontSize: "small" })), /* @__PURE__ */ import_react23.default.createElement(import_material17.IconButton, { "aria-label": "Siguiente", onClick: () => onNavigate("NEXT"), size: "small", color: "primary" }, /* @__PURE__ */ import_react23.default.createElement(import_icons_material10.ChevronRight, { fontSize: "small" })), /* @__PURE__ */ import_react23.default.createElement(import_material17.Typography, { variant: "h6", color: "primary", "data-testid": "currentDate" }, getFormattedDate()), /* @__PURE__ */ import_react23.default.createElement(import_material17.IconButton, { onClick: handleMenuOpen, size: "small", color: "primary", "aria-label": "Cambiar vista" }, /* @__PURE__ */ import_react23.default.createElement(import_icons_material10.KeyboardArrowDown, { fontSize: "small" })), /* @__PURE__ */ import_react23.default.createElement(
2928
+ )), /* @__PURE__ */ import_react24.default.createElement(import_material17.Stack, { direction: "row", alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react24.default.createElement(import_material17.IconButton, { "aria-label": "Anterior", onClick: () => onNavigate("PREV"), size: "small", color: "primary" }, /* @__PURE__ */ import_react24.default.createElement(import_icons_material10.ChevronLeft, { fontSize: "small" })), /* @__PURE__ */ import_react24.default.createElement(import_material17.IconButton, { "aria-label": "Siguiente", onClick: () => onNavigate("NEXT"), size: "small", color: "primary" }, /* @__PURE__ */ import_react24.default.createElement(import_icons_material10.ChevronRight, { fontSize: "small" })), /* @__PURE__ */ import_react24.default.createElement(import_material17.Typography, { variant: "h6", color: "primary", "data-testid": "currentDate" }, getFormattedDate()), /* @__PURE__ */ import_react24.default.createElement(import_material17.IconButton, { onClick: handleMenuOpen, size: "small", color: "primary", "aria-label": "Cambiar vista" }, /* @__PURE__ */ import_react24.default.createElement(import_icons_material10.KeyboardArrowDown, { fontSize: "small" })), /* @__PURE__ */ import_react24.default.createElement(
2659
2929
  import_material17.Menu,
2660
2930
  {
2661
2931
  anchorEl,
@@ -2664,14 +2934,14 @@ var CalendarToolbar = ({
2664
2934
  anchorOrigin: { vertical: "bottom", horizontal: "center" },
2665
2935
  transformOrigin: { vertical: "top", horizontal: "center" }
2666
2936
  },
2667
- /* @__PURE__ */ import_react23.default.createElement(import_material17.MenuItem, { onClick: () => handleViewChange("month") }, "Mes"),
2668
- /* @__PURE__ */ import_react23.default.createElement(import_material17.MenuItem, { onClick: () => handleViewChange("week") }, "Semana"),
2669
- /* @__PURE__ */ import_react23.default.createElement(import_material17.MenuItem, { onClick: () => handleViewChange("day") }, "D\xEDa")
2670
- )), children ? /* @__PURE__ */ import_react23.default.createElement(import_material17.Box, null, children) : /* @__PURE__ */ import_react23.default.createElement(import_material17.Box, { width: "24px" }), " ");
2937
+ /* @__PURE__ */ import_react24.default.createElement(import_material17.MenuItem, { onClick: () => handleViewChange("month") }, "Mes"),
2938
+ /* @__PURE__ */ import_react24.default.createElement(import_material17.MenuItem, { onClick: () => handleViewChange("week") }, "Semana"),
2939
+ /* @__PURE__ */ import_react24.default.createElement(import_material17.MenuItem, { onClick: () => handleViewChange("day") }, "D\xEDa")
2940
+ )), children ? /* @__PURE__ */ import_react24.default.createElement(import_material17.Box, null, children) : /* @__PURE__ */ import_react24.default.createElement(import_material17.Box, { width: "24px" }), " ");
2671
2941
  };
2672
2942
 
2673
2943
  // src/Components/Calendario/Views/MonthView.tsx
2674
- var import_react25 = __toESM(require("react"), 1);
2944
+ var import_react26 = __toESM(require("react"), 1);
2675
2945
  var import_material19 = require("@mui/material");
2676
2946
  var import_Add = __toESM(require("@mui/icons-material/Add"), 1);
2677
2947
  var import_dayjs4 = __toESM(require("dayjs"), 1);
@@ -2698,14 +2968,24 @@ var stateColors = {
2698
2968
  Asignada: "warning.main",
2699
2969
  Finalizado: "primary.main",
2700
2970
  Vencida: "error.main",
2701
- EnProgreso: "success.main"
2971
+ EnProgreso: "success.main",
2972
+ Aplazada: "grey.400",
2973
+ Generada: "secondary.main"
2702
2974
  };
2703
2975
 
2704
2976
  // src/Components/Calendario/Event.tsx
2705
- var import_react24 = __toESM(require("react"), 1);
2977
+ var import_react25 = __toESM(require("react"), 1);
2706
2978
  var import_material18 = require("@mui/material");
2707
- var CalendarEventCard = ({ event: event2, color, sx, onClick }) => {
2708
- return /* @__PURE__ */ import_react24.default.createElement(
2979
+ var CalendarEventCard = ({ event: event2, color, sx, onClick, onHover }) => {
2980
+ const [anchorEl, setAnchorEl] = import_react25.default.useState(null);
2981
+ const handlePopoverOpen = (event3) => {
2982
+ setAnchorEl(event3.currentTarget);
2983
+ };
2984
+ const handlePopoverClose = () => {
2985
+ setAnchorEl(null);
2986
+ };
2987
+ const open = Boolean(anchorEl);
2988
+ return /* @__PURE__ */ import_react25.default.createElement(
2709
2989
  import_material18.Stack,
2710
2990
  {
2711
2991
  direction: "row",
@@ -2713,6 +2993,7 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick }) => {
2713
2993
  borderRadius: 0.5,
2714
2994
  alignItems: "flex-start",
2715
2995
  minHeight: "20px",
2996
+ onMouseOver: () => onHover == null ? void 0 : onHover(event2),
2716
2997
  onClick: (e) => {
2717
2998
  e.stopPropagation();
2718
2999
  onClick == null ? void 0 : onClick(event2);
@@ -2725,7 +3006,7 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick }) => {
2725
3006
  cursor: onClick ? "pointer" : "default"
2726
3007
  }, sx)
2727
3008
  },
2728
- /* @__PURE__ */ import_react24.default.createElement(
3009
+ /* @__PURE__ */ import_react25.default.createElement(
2729
3010
  import_material18.Divider,
2730
3011
  {
2731
3012
  orientation: "vertical",
@@ -2737,7 +3018,7 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick }) => {
2737
3018
  }
2738
3019
  }
2739
3020
  ),
2740
- /* @__PURE__ */ import_react24.default.createElement(
3021
+ /* @__PURE__ */ import_react25.default.createElement(
2741
3022
  import_material18.Box,
2742
3023
  {
2743
3024
  px: 1,
@@ -2747,7 +3028,7 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick }) => {
2747
3028
  display: "flex",
2748
3029
  alignItems: "center"
2749
3030
  },
2750
- /* @__PURE__ */ import_react24.default.createElement(
3031
+ /* @__PURE__ */ import_react25.default.createElement(
2751
3032
  import_material18.Typography,
2752
3033
  {
2753
3034
  color: "text.primary",
@@ -2757,29 +3038,62 @@ var CalendarEventCard = ({ event: event2, color, sx, onClick }) => {
2757
3038
  overflow: "hidden",
2758
3039
  textOverflow: "ellipsis",
2759
3040
  whiteSpace: "nowrap"
2760
- }
3041
+ },
3042
+ onMouseEnter: handlePopoverOpen,
3043
+ onMouseLeave: handlePopoverClose
2761
3044
  },
2762
- capitalize(event2.title)
3045
+ event2.title.charAt(0).toUpperCase() + event2.title.slice(1).toLowerCase()
3046
+ ),
3047
+ /* @__PURE__ */ import_react25.default.createElement(
3048
+ import_material18.Popover,
3049
+ {
3050
+ id: "mouse-over-popover",
3051
+ sx: { pointerEvents: "none" },
3052
+ open,
3053
+ anchorEl,
3054
+ anchorOrigin: {
3055
+ vertical: "top",
3056
+ horizontal: "right"
3057
+ },
3058
+ transformOrigin: {
3059
+ vertical: "bottom",
3060
+ horizontal: "right"
3061
+ },
3062
+ onClose: handlePopoverClose,
3063
+ disableRestoreFocus: true
3064
+ },
3065
+ onHover ? onHover(event2) : " "
2763
3066
  )
2764
3067
  )
2765
3068
  );
2766
3069
  };
2767
3070
 
3071
+ // src/assets/Icon Scheduler.svg
3072
+ var Icon_Scheduler_default = "./Icon Scheduler-WX62PISD.svg";
3073
+
2768
3074
  // src/Components/Calendario/Views/MonthView.tsx
2769
3075
  import_dayjs4.default.extend(import_localeData.default);
2770
3076
  import_dayjs4.default.extend(import_isBetween.default);
2771
- var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick }) => {
3077
+ var MonthView = ({ events, isLoading, onDayClick, onMoreClick, currentDate, onEventClick, onEventHover }) => {
3078
+ const noEvents = events.length === 0;
2772
3079
  const days = getMonthDays(currentDate);
2773
3080
  const weekDays = Array.from({ length: 7 }, (_, i) => (0, import_dayjs4.default)().day(i));
2774
- const [openDrawer, setOpenDrawer] = import_react25.default.useState(false);
2775
- const [selectedDay, setSelectedDay] = import_react25.default.useState(null);
2776
- const [selectedEvents, setSelectedEvents] = import_react25.default.useState([]);
2777
- return /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { width: "100%", sx: { overflowX: "auto" } }, /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { minWidth: "1050px" }, /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { display: "grid", gridTemplateColumns: "repeat(7, minmax(150px, 1fr))", gap: 0.5, mb: 1 }, weekDays.map((day) => /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { key: day.day(), textAlign: "center", py: 0.5 }, /* @__PURE__ */ import_react25.default.createElement(import_material19.Typography, { variant: "caption", color: "text.secondary" }, day.format("dddd"))))), /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { display: "grid", gridTemplateColumns: "repeat(7, minmax(150px, 1fr))", gap: 0.5 }, days.map((day) => {
3081
+ const [openDrawer, setOpenDrawer] = import_react26.default.useState(false);
3082
+ const [selectedDay, setSelectedDay] = import_react26.default.useState(null);
3083
+ const [selectedEvents, setSelectedEvents] = import_react26.default.useState([]);
3084
+ return /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { width: "100%", sx: { overflowX: "auto" } }, /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { minWidth: "1050px" }, /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { display: "grid", gridTemplateColumns: "repeat(7, minmax(150px, 1fr))", gap: 0.5, mb: 1 }, weekDays.map((day) => /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { key: day.day(), textAlign: "center", py: 0.5 }, /* @__PURE__ */ import_react26.default.createElement(import_material19.Typography, { variant: "caption", color: "text.secondary" }, day.format("dddd"))))), isLoading ? /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ import_react26.default.createElement(import_material19.CircularProgress, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : !isLoading && noEvents ? /* @__PURE__ */ import_react26.default.createElement(
3085
+ EmptyState,
3086
+ {
3087
+ title: "Inicia la gesti\xF3n de las actividades",
3088
+ subtitle: "Selecciona un mec\xE1nico y as\xEDgnale las actividades a realizar.",
3089
+ icon: /* @__PURE__ */ import_react26.default.createElement("img", { src: Icon_Scheduler_default, alt: "icon_calendario", style: { width: 60, height: 60 } })
3090
+ }
3091
+ ) : /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { display: "grid", gridTemplateColumns: "repeat(7, minmax(150px, 1fr))", gap: 0.5 }, days.map((day) => {
2778
3092
  const dayEvents = events.filter(
2779
3093
  (e) => day.isBetween(e.start.startOf("day"), e.end.endOf("day"), null, "[]")
2780
3094
  );
2781
3095
  const isCurrentMonth = day.month() === currentDate.month();
2782
- return /* @__PURE__ */ import_react25.default.createElement(
3096
+ return /* @__PURE__ */ import_react26.default.createElement(
2783
3097
  import_material19.Paper,
2784
3098
  {
2785
3099
  key: day.toString(),
@@ -2796,7 +3110,7 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2796
3110
  overflow: "hidden"
2797
3111
  }
2798
3112
  },
2799
- /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { p: 1, flexShrink: 0 }, /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { display: "flex", alignItems: "center", justifyContent: "flex-start" }, /* @__PURE__ */ import_react25.default.createElement(
3113
+ /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { p: 1, flexShrink: 0 }, /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { display: "flex", alignItems: "center", justifyContent: "flex-start" }, /* @__PURE__ */ import_react26.default.createElement(
2800
3114
  import_material19.Box,
2801
3115
  {
2802
3116
  sx: {
@@ -2809,7 +3123,7 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2809
3123
  justifyContent: "center"
2810
3124
  }
2811
3125
  },
2812
- /* @__PURE__ */ import_react25.default.createElement(
3126
+ /* @__PURE__ */ import_react26.default.createElement(
2813
3127
  import_material19.Typography,
2814
3128
  {
2815
3129
  variant: "body2",
@@ -2817,7 +3131,7 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2817
3131
  },
2818
3132
  day.date()
2819
3133
  )
2820
- ), dayEvents.length > 2 && /* @__PURE__ */ import_react25.default.createElement(import_material19.Tooltip, { title: "M\xE1s eventos" }, /* @__PURE__ */ import_react25.default.createElement(
3134
+ ), dayEvents.length > 2 && /* @__PURE__ */ import_react26.default.createElement(import_material19.Tooltip, { title: "M\xE1s eventos" }, /* @__PURE__ */ import_react26.default.createElement(
2821
3135
  import_material19.IconButton,
2822
3136
  {
2823
3137
  color: "primary",
@@ -2829,18 +3143,19 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2829
3143
  setSelectedEvents(dayEvents);
2830
3144
  }
2831
3145
  },
2832
- /* @__PURE__ */ import_react25.default.createElement(import_Add.default, { fontSize: "small" })
3146
+ /* @__PURE__ */ import_react26.default.createElement(import_Add.default, { fontSize: "small" })
2833
3147
  )))),
2834
- /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { display: "flex", flexDirection: "column", gap: 0.5, p: 1, pt: 0, overflow: "hidden" }, dayEvents.slice(0, 2).map((event2) => /* @__PURE__ */ import_react25.default.createElement(
3148
+ /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { display: "flex", flexDirection: "column", gap: 0.5, p: 1, pt: 0, overflow: "hidden" }, dayEvents.slice(0, 2).map((event2) => /* @__PURE__ */ import_react26.default.createElement(
2835
3149
  CalendarEventCard,
2836
3150
  {
2837
3151
  key: `${event2.id}-${day.toString()}`,
2838
3152
  event: event2,
2839
3153
  color: stateColors[event2.state],
2840
- onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day)
3154
+ onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
3155
+ onHover: onEventHover
2841
3156
  }
2842
3157
  ))),
2843
- dayEvents.length > 2 && /* @__PURE__ */ import_react25.default.createElement(import_material19.Stack, { justifyContent: "flex-end", px: 1, pb: 0.5, onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react25.default.createElement(
3158
+ dayEvents.length > 2 && /* @__PURE__ */ import_react26.default.createElement(import_material19.Stack, { justifyContent: "flex-end", px: 1, pb: 0.5, onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react26.default.createElement(
2844
3159
  SCDrawer,
2845
3160
  {
2846
3161
  width: "350px",
@@ -2852,7 +3167,7 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2852
3167
  arrayElements: [{
2853
3168
  component: (() => {
2854
3169
  const [first, ...rest] = dayEvents;
2855
- return /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { display: "flex", width: "100%", flexDirection: "column", height: "100%", pr: 1.5 }, /* @__PURE__ */ import_react25.default.createElement(import_material19.Typography, { width: "100%", color: "text.secondary" }, " Proximo evento "), first && /* @__PURE__ */ import_react25.default.createElement(import_material19.Box, { p: 1, pb: 1, width: "100%" }, /* @__PURE__ */ import_react25.default.createElement(
3170
+ return /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { display: "flex", width: "100%", flexDirection: "column", height: "100%", pr: 1.5 }, /* @__PURE__ */ import_react26.default.createElement(import_material19.Typography, { width: "100%", color: "text.secondary" }, " Proximo evento "), first && /* @__PURE__ */ import_react26.default.createElement(import_material19.Box, { p: 1, pb: 1, width: "100%" }, /* @__PURE__ */ import_react26.default.createElement(
2856
3171
  CalendarEventCard,
2857
3172
  {
2858
3173
  event: first,
@@ -2867,7 +3182,7 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2867
3182
  }
2868
3183
  }
2869
3184
  }
2870
- )), /* @__PURE__ */ import_react25.default.createElement(import_material19.Divider, { flexItem: true, sx: { width: "100%" } }), /* @__PURE__ */ import_react25.default.createElement(import_material19.Typography, { width: "100%", py: 1, color: "text.secondary" }, " Eventos restantes "), /* @__PURE__ */ import_react25.default.createElement(
3185
+ )), /* @__PURE__ */ import_react26.default.createElement(import_material19.Divider, { flexItem: true, sx: { width: "100%" } }), /* @__PURE__ */ import_react26.default.createElement(import_material19.Typography, { width: "100%", py: 1, color: "text.secondary" }, " Eventos restantes "), /* @__PURE__ */ import_react26.default.createElement(
2871
3186
  import_material19.Box,
2872
3187
  {
2873
3188
  width: "100%",
@@ -2880,13 +3195,14 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2880
3195
  flexDirection: "column",
2881
3196
  gap: 1.5
2882
3197
  },
2883
- rest.map((event2) => /* @__PURE__ */ import_react25.default.createElement(
3198
+ rest.map((event2) => /* @__PURE__ */ import_react26.default.createElement(
2884
3199
  CalendarEventCard,
2885
3200
  {
2886
3201
  key: `${event2.id}-${day.toString()}`,
2887
3202
  event: event2,
2888
3203
  color: stateColors[event2.state],
2889
3204
  onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
3205
+ onHover: onEventHover,
2890
3206
  sx: {
2891
3207
  whiteSpace: "normal",
2892
3208
  "& .MuiTypography-root": {
@@ -2907,15 +3223,26 @@ var MonthView = ({ events, onDayClick, onMoreClick, currentDate, onEventClick })
2907
3223
  };
2908
3224
 
2909
3225
  // src/Components/Calendario/Views/WeekView.tsx
2910
- var import_react26 = __toESM(require("react"), 1);
3226
+ var import_react27 = __toESM(require("react"), 1);
2911
3227
  var import_material20 = require("@mui/material");
2912
3228
  var import_dayjs5 = __toESM(require("dayjs"), 1);
2913
3229
  var import_localeData2 = __toESM(require("dayjs/plugin/localeData"), 1);
2914
3230
  import_dayjs5.default.extend(import_localeData2.default);
2915
- var WeekView = ({ events, currentDate, onDayClick, onEventClick }) => {
3231
+ var WeekView = ({
3232
+ events,
3233
+ currentDate,
3234
+ isLoading,
3235
+ onDayClick,
3236
+ onEventClick,
3237
+ onEventHover,
3238
+ startHour = 0,
3239
+ endHour = 23
3240
+ }) => {
3241
+ const noEvents = events.length === 0;
3242
+ const todayString = (0, import_dayjs5.default)().format("YYYY-MM-DD");
2916
3243
  const startOfWeek2 = currentDate.startOf("week");
2917
3244
  const days = Array.from({ length: 7 }, (_, i) => startOfWeek2.add(i, "day"));
2918
- const hours2 = Array.from({ length: 24 }, (_, i) => i);
3245
+ const hours = Array.from({ length: endHour - startHour + 1 }, (_, i) => startHour + i);
2919
3246
  const getCellBorderType = (cellHour, dayEvents) => {
2920
3247
  for (const event2 of dayEvents) {
2921
3248
  const start = event2.start.hour() + event2.start.minute() / 60;
@@ -2923,8 +3250,7 @@ var WeekView = ({ events, currentDate, onDayClick, onEventClick }) => {
2923
3250
  const cellStart = cellHour;
2924
3251
  const cellEnd = cellHour + 1;
2925
3252
  if (cellEnd > start && cellStart < end) {
2926
- if (Math.abs(cellStart - start) < 0.01 && Math.abs(cellEnd - end) < 0.01)
2927
- return "full";
3253
+ if (Math.abs(cellStart - start) < 0.01 && Math.abs(cellEnd - end) < 0.01) return "full";
2928
3254
  if (Math.abs(cellStart - start) < 0.01) return "start";
2929
3255
  if (Math.abs(cellEnd - end) < 0.01) return "end";
2930
3256
  return "middle";
@@ -2932,92 +3258,122 @@ var WeekView = ({ events, currentDate, onDayClick, onEventClick }) => {
2932
3258
  }
2933
3259
  return "none";
2934
3260
  };
2935
- return /* @__PURE__ */ import_react26.default.createElement(import_material20.Box, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ import_react26.default.createElement(import_material20.Box, { display: "flex", bgcolor: "background.default" }, /* @__PURE__ */ import_react26.default.createElement(import_material20.Box, { width: 45, bgcolor: "background.default" }), days.map((day) => /* @__PURE__ */ import_react26.default.createElement(
2936
- import_material20.Box,
2937
- {
2938
- key: day.toString(),
2939
- height: 40,
2940
- flex: 1,
2941
- pl: 0.5,
2942
- textAlign: "center",
2943
- display: "flex",
2944
- flexDirection: "column",
2945
- justifyContent: "center",
2946
- alignItems: "flex-start"
2947
- },
2948
- /* @__PURE__ */ import_react26.default.createElement(import_material20.Typography, { variant: "caption", color: "text.secondary" }, day.format("dddd"))
2949
- ))), /* @__PURE__ */ import_react26.default.createElement(import_material20.Box, { display: "flex", flex: 1 }, /* @__PURE__ */ import_react26.default.createElement(import_material20.Box, { width: 45, bgcolor: "background.default" }, hours2.map((h) => /* @__PURE__ */ import_react26.default.createElement(
2950
- import_material20.Box,
2951
- {
2952
- key: h,
2953
- height: 60,
2954
- textAlign: "right",
2955
- pr: 1,
2956
- borderTop: "1px solid",
2957
- borderColor: "divider"
2958
- },
2959
- /* @__PURE__ */ import_react26.default.createElement(import_material20.Typography, { variant: "caption", color: "text.secondary" }, (0, import_dayjs5.default)().hour(h).format("h A"))
2960
- ))), days.map((day) => {
2961
- const dayEvents = events.filter(
2962
- (event2) => day.isBetween(event2.start.startOf("day"), event2.end.endOf("day"), null, "[]")
2963
- );
2964
- return /* @__PURE__ */ import_react26.default.createElement(
3261
+ return /* @__PURE__ */ import_react27.default.createElement(import_material20.Box, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ import_react27.default.createElement(import_material20.Box, { display: "flex", bgcolor: "transparent" }, /* @__PURE__ */ import_react27.default.createElement(import_material20.Box, { width: 45, bgcolor: "transparent" }), days.map((day) => {
3262
+ const isToday2 = day.format("YYYY-MM-DD") === todayString;
3263
+ return /* @__PURE__ */ import_react27.default.createElement(
2965
3264
  import_material20.Box,
2966
3265
  {
2967
3266
  key: day.toString(),
3267
+ height: 40,
2968
3268
  flex: 1,
2969
- borderLeft: "1px solid",
2970
- borderColor: "divider",
2971
- position: "relative",
2972
- "data-testid": `week-day-column-${day.format("YYYY-MM-DD")}`,
2973
- onClick: () => onDayClick == null ? void 0 : onDayClick(day)
3269
+ pl: 0.5,
3270
+ textAlign: "center",
3271
+ display: "flex",
3272
+ flexDirection: "column",
3273
+ justifyContent: "center",
3274
+ alignItems: "flex-start",
3275
+ bgcolor: isToday2 ? "primary.100" : "transparent",
3276
+ borderRadius: isToday2 ? "6px 6px 0 0" : "0",
3277
+ borderBottom: isToday2 ? 2 : 0,
3278
+ borderColor: isToday2 ? "primary.main" : "transparent"
2974
3279
  },
2975
- hours2.map((hourIdx) => {
2976
- const borderType = getCellBorderType(hourIdx, dayEvents);
2977
- return /* @__PURE__ */ import_react26.default.createElement(
2978
- import_material20.Box,
2979
- {
2980
- key: hourIdx,
2981
- height: 60,
2982
- borderTop: "1px solid",
2983
- borderColor: borderType === "start" || borderType === "full" || borderType === "none" ? "divider" : "transparent",
2984
- borderBottom: borderType === "end" || borderType === "full" ? "1px solid divider" : void 0
2985
- }
2986
- );
2987
- }),
2988
- dayEvents.map((event2) => {
2989
- const eventStart = day.isSame(event2.start, "day") ? event2.start : day.startOf("day").hour(0).minute(0);
2990
- const eventEnd = day.isSame(event2.end, "day") ? event2.end : day.endOf("day").hour(23).minute(59);
2991
- const startMinutes = eventStart.hour() * 60 + eventStart.minute();
2992
- const durationMinutes = eventEnd.diff(eventStart, "minute");
2993
- return /* @__PURE__ */ import_react26.default.createElement(
2994
- CalendarEventCard,
2995
- {
2996
- key: `${event2.id}-${day.toString()}`,
2997
- event: event2,
2998
- color: stateColors[event2.state],
2999
- onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
3000
- sx: {
3001
- position: "absolute",
3002
- top: `${startMinutes + 15}px`,
3003
- left: 4,
3004
- right: 4,
3005
- cursor: "pointer",
3006
- height: "auto"
3007
- }
3008
- }
3009
- );
3010
- })
3280
+ /* @__PURE__ */ import_react27.default.createElement(import_material20.Typography, { variant: "h6", color: "text.primary" }, day.format("D")),
3281
+ /* @__PURE__ */ import_react27.default.createElement(import_material20.Typography, { variant: "caption", color: "text.secondary" }, day.format("dddd"))
3011
3282
  );
3012
- })));
3283
+ })), isLoading ? /* @__PURE__ */ import_react27.default.createElement(import_material20.Box, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ import_react27.default.createElement(import_material20.CircularProgress, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : !isLoading && noEvents ? /* @__PURE__ */ import_react27.default.createElement(
3284
+ EmptyState,
3285
+ {
3286
+ title: "Inicia la gesti\xF3n de las actividades",
3287
+ subtitle: "Selecciona un mec\xE1nico y as\xEDgnale las actividades a realizar.",
3288
+ icon: /* @__PURE__ */ import_react27.default.createElement("img", { src: Icon_Scheduler_default, alt: "icon_calendario", style: { width: 60, height: 60 } })
3289
+ }
3290
+ ) : (
3291
+ // Grid de horas y eventos
3292
+ /* @__PURE__ */ import_react27.default.createElement(import_material20.Box, { display: "flex", flex: 1 }, /* @__PURE__ */ import_react27.default.createElement(import_material20.Box, { width: 45, bgcolor: "transparent" }, hours.map((h) => /* @__PURE__ */ import_react27.default.createElement(
3293
+ import_material20.Box,
3294
+ {
3295
+ key: h,
3296
+ height: 60,
3297
+ textAlign: "right",
3298
+ pr: 1,
3299
+ borderColor: "divider"
3300
+ },
3301
+ /* @__PURE__ */ import_react27.default.createElement(import_material20.Typography, { variant: "caption", color: "text.secondary" }, (0, import_dayjs5.default)().hour(h).format("h A"))
3302
+ ))), days.map((day) => {
3303
+ const dayEvents = events.filter(
3304
+ (event2) => day.isBetween(event2.start.startOf("day"), event2.end.endOf("day"), null, "[]")
3305
+ ).filter((event2) => {
3306
+ const startsInRange = event2.start.hour() >= startHour && event2.start.hour() <= endHour;
3307
+ const endsInRange = event2.end.hour() >= startHour && event2.end.hour() <= endHour;
3308
+ return startsInRange || endsInRange;
3309
+ }).sort((a, b) => a.start.valueOf() - b.start.valueOf());
3310
+ return /* @__PURE__ */ import_react27.default.createElement(
3311
+ import_material20.Box,
3312
+ {
3313
+ key: day.toString(),
3314
+ flex: 1,
3315
+ borderLeft: "1px solid",
3316
+ borderColor: "divider",
3317
+ position: "relative",
3318
+ "data-testid": `week-day-column-${day.format("YYYY-MM-DD")}`,
3319
+ onClick: () => onDayClick == null ? void 0 : onDayClick(day)
3320
+ },
3321
+ hours.map((hourIdx) => {
3322
+ const borderType = getCellBorderType(hourIdx, dayEvents);
3323
+ return /* @__PURE__ */ import_react27.default.createElement(
3324
+ import_material20.Box,
3325
+ {
3326
+ key: hourIdx,
3327
+ height: 60,
3328
+ borderTop: "1px solid",
3329
+ borderColor: borderType === "start" || borderType === "full" || borderType === "none" ? "divider" : "transparent",
3330
+ borderBottom: borderType === "end" || borderType === "full" ? "1px solid divider" : void 0
3331
+ }
3332
+ );
3333
+ }),
3334
+ dayEvents.map((event2) => {
3335
+ const eventStart = day.isSame(event2.start, "day") ? event2.start : day.startOf("day").hour(startHour).minute(0);
3336
+ const eventEnd = day.isSame(event2.end, "day") ? event2.end : day.endOf("day").hour(endHour).minute(59);
3337
+ const startMinutes = (eventStart.hour() - startHour) * 60 + eventStart.minute();
3338
+ const durationMinutes = eventEnd.diff(eventStart, "minute");
3339
+ return /* @__PURE__ */ import_react27.default.createElement(
3340
+ CalendarEventCard,
3341
+ {
3342
+ key: `${event2.id}-${day.toString()}`,
3343
+ event: event2,
3344
+ color: stateColors[event2.state],
3345
+ onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
3346
+ onHover: onEventHover,
3347
+ sx: {
3348
+ position: "absolute",
3349
+ top: `${startMinutes}px`,
3350
+ left: 4,
3351
+ right: 4,
3352
+ cursor: "pointer",
3353
+ height: `${durationMinutes}px`
3354
+ }
3355
+ }
3356
+ );
3357
+ })
3358
+ );
3359
+ }))
3360
+ ));
3013
3361
  };
3014
3362
 
3015
3363
  // src/Components/Calendario/Views/DayView.tsx
3016
- var import_react27 = __toESM(require("react"), 1);
3364
+ var import_react28 = __toESM(require("react"), 1);
3017
3365
  var import_material21 = require("@mui/material");
3018
3366
  var import_dayjs6 = __toESM(require("dayjs"), 1);
3019
- var hours = Array.from({ length: 24 }, (_, i) => i);
3020
- var DayView = ({ events, currentDate, onEventClick }) => {
3367
+ var DayView = ({
3368
+ events,
3369
+ currentDate,
3370
+ isLoading,
3371
+ onEventClick,
3372
+ onEventHover,
3373
+ startHour = 0,
3374
+ endHour = 24
3375
+ }) => {
3376
+ const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i);
3021
3377
  const getCellBorderType = (cellHour, dayEvents2) => {
3022
3378
  for (const event2 of dayEvents2) {
3023
3379
  const start = event2.start.hour() + event2.start.minute() / 60;
@@ -3025,8 +3381,7 @@ var DayView = ({ events, currentDate, onEventClick }) => {
3025
3381
  const cellStart = cellHour;
3026
3382
  const cellEnd = cellHour + 1;
3027
3383
  if (cellEnd > start && cellStart < end) {
3028
- if (Math.abs(cellStart - start) < 0.01 && Math.abs(cellEnd - end) < 0.01)
3029
- return "full";
3384
+ if (Math.abs(cellStart - start) < 0.01 && Math.abs(cellEnd - end) < 0.01) return "full";
3030
3385
  if (Math.abs(cellStart - start) < 0.01) return "start";
3031
3386
  if (Math.abs(cellEnd - end) < 0.01) return "end";
3032
3387
  return "middle";
@@ -3037,20 +3392,15 @@ var DayView = ({ events, currentDate, onEventClick }) => {
3037
3392
  const dayEvents = events.filter(
3038
3393
  (event2) => currentDate.isBetween(event2.start.startOf("day"), event2.end.endOf("day"), null, "[]")
3039
3394
  );
3040
- return /* @__PURE__ */ import_react27.default.createElement(import_material21.Box, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ import_react27.default.createElement(import_material21.Box, { display: "flex", borderBottom: "1px solid", borderColor: "primary.main", bgcolor: "background.paper" }, /* @__PURE__ */ import_react27.default.createElement(import_material21.Box, { width: 47, bgcolor: "background.default", borderBottom: "1px solid", borderColor: "transparent" }), /* @__PURE__ */ import_react27.default.createElement(
3041
- import_material21.Box,
3395
+ const noEvents = events.length === 0;
3396
+ return /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { display: "flex", flexDirection: "column", height: "100%" }, /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { display: "flex", borderBottom: "1px solid", borderColor: "primary.main", bgcolor: "background.paper" }, /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { width: 47, bgcolor: "background.default", borderBottom: "1px solid", borderColor: "transparent" }), /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { flex: 1, display: "flex", flexDirection: "column", textAlign: "start", gap: 0.5, py: 1, bgcolor: "primary.50" }, /* @__PURE__ */ import_react28.default.createElement(import_material21.Typography, { variant: "h6", color: "text.secondary" }, currentDate.format("D")), /* @__PURE__ */ import_react28.default.createElement(import_material21.Typography, { variant: "caption", color: "text.secondary" }, currentDate.format("dddd")))), isLoading ? /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { display: "flex", alignItems: "center", justifyContent: "center", width: "100%", height: "450px" }, /* @__PURE__ */ import_react28.default.createElement(import_material21.CircularProgress, { sx: { width: "60px", height: "60px" }, variant: "indeterminate" })) : noEvents ? /* @__PURE__ */ import_react28.default.createElement(
3397
+ EmptyState,
3042
3398
  {
3043
- flex: 1,
3044
- display: "flex",
3045
- flexDirection: "column",
3046
- textAlign: "start",
3047
- gap: 0.5,
3048
- py: 1,
3049
- bgcolor: "primary.50"
3050
- },
3051
- /* @__PURE__ */ import_react27.default.createElement(import_material21.Typography, { variant: "h6", color: "text.secondary" }, currentDate.format("D")),
3052
- /* @__PURE__ */ import_react27.default.createElement(import_material21.Typography, { variant: "caption", color: "text.secondary" }, currentDate.format("dddd"))
3053
- )), /* @__PURE__ */ import_react27.default.createElement(import_material21.Box, { display: "flex", flex: 1 }, /* @__PURE__ */ import_react27.default.createElement(import_material21.Box, { width: 47, bgcolor: "background.default" }, hours.map((h) => /* @__PURE__ */ import_react27.default.createElement(
3399
+ title: "Inicia la gesti\xF3n de las actividades",
3400
+ subtitle: "Selecciona un mec\xE1nico y as\xEDgnale las actividades a realizar.",
3401
+ icon: /* @__PURE__ */ import_react28.default.createElement("img", { src: Icon_Scheduler_default, alt: "icon_calendario", style: { width: 60, height: 60 } })
3402
+ }
3403
+ ) : /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { display: "flex", flex: 1 }, /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { width: 47, bgcolor: "background.default" }, hours.map((h) => /* @__PURE__ */ import_react28.default.createElement(
3054
3404
  import_material21.Box,
3055
3405
  {
3056
3406
  key: h,
@@ -3061,10 +3411,10 @@ var DayView = ({ events, currentDate, onEventClick }) => {
3061
3411
  borderRight: "1px solid",
3062
3412
  borderColor: "divider"
3063
3413
  },
3064
- /* @__PURE__ */ import_react27.default.createElement(import_material21.Typography, { variant: "caption", color: "text.secondary" }, (0, import_dayjs6.default)().hour(h).format("h A"))
3065
- ))), /* @__PURE__ */ import_react27.default.createElement(import_material21.Box, { flex: 1, position: "relative" }, hours.map((hourIdx) => {
3414
+ /* @__PURE__ */ import_react28.default.createElement(import_material21.Typography, { variant: "caption", color: "text.secondary" }, (0, import_dayjs6.default)().hour(h).format("h A"))
3415
+ ))), /* @__PURE__ */ import_react28.default.createElement(import_material21.Box, { flex: 1, position: "relative" }, hours.map((hourIdx) => {
3066
3416
  const borderType = getCellBorderType(hourIdx, dayEvents);
3067
- return /* @__PURE__ */ import_react27.default.createElement(
3417
+ return /* @__PURE__ */ import_react28.default.createElement(
3068
3418
  import_material21.Box,
3069
3419
  {
3070
3420
  key: hourIdx,
@@ -3075,20 +3425,26 @@ var DayView = ({ events, currentDate, onEventClick }) => {
3075
3425
  }
3076
3426
  );
3077
3427
  }), dayEvents.map((event2) => {
3078
- const eventStart = currentDate.isSame(event2.start, "day") ? event2.start : currentDate.startOf("day").hour(0).minute(0);
3079
- const eventEnd = currentDate.isSame(event2.end, "day") ? event2.end : currentDate.endOf("day").hour(23).minute(59);
3080
- const startMinutes = eventStart.hour() * 60 + eventStart.minute();
3081
- const durationMinutes = eventEnd.diff(eventStart, "minute");
3082
- return /* @__PURE__ */ import_react27.default.createElement(
3428
+ const eventStart = currentDate.isSame(event2.start, "day") ? event2.start : currentDate.startOf("day");
3429
+ const eventEnd = currentDate.isSame(event2.end, "day") ? event2.end : currentDate.endOf("day");
3430
+ const minStart = currentDate.hour(startHour).minute(0);
3431
+ const maxEnd = currentDate.hour(endHour).minute(0);
3432
+ const clampedStart = eventStart.isBefore(minStart) ? minStart : eventStart;
3433
+ const clampedEnd = eventEnd.isAfter(maxEnd) ? maxEnd : eventEnd;
3434
+ const startMinutes = (clampedStart.hour() - startHour) * 60 + clampedStart.minute();
3435
+ const durationMinutes = clampedEnd.diff(clampedStart, "minute");
3436
+ return /* @__PURE__ */ import_react28.default.createElement(
3083
3437
  CalendarEventCard,
3084
3438
  {
3085
3439
  key: `${event2.id}-${currentDate.toString()}`,
3086
3440
  event: event2,
3087
3441
  color: stateColors[event2.state],
3088
- onClick: () => onEventClick == null ? void 0 : onEventClick(event2),
3442
+ onClick: () => onEventClick == null ? void 0 : onEventClick(event2, currentDate),
3443
+ onHover: onEventHover,
3089
3444
  sx: {
3090
3445
  position: "absolute",
3091
- top: `${startMinutes + 15}px`,
3446
+ top: `${startMinutes}px`,
3447
+ height: `${durationMinutes}px`,
3092
3448
  left: 4,
3093
3449
  right: 4
3094
3450
  }
@@ -3098,17 +3454,23 @@ var DayView = ({ events, currentDate, onEventClick }) => {
3098
3454
  };
3099
3455
 
3100
3456
  // src/Components/Calendario/Calendar.tsx
3457
+ var import_dayjs7 = __toESM(require("dayjs"), 1);
3101
3458
  var Calendar = ({
3102
3459
  events,
3103
3460
  onDayClick,
3104
3461
  onMoreClick,
3105
3462
  onEventClick,
3463
+ onEventHover,
3106
3464
  view: initialView = "month",
3107
3465
  onViewChange,
3108
- toolbar
3466
+ toolbar,
3467
+ isLoading = false,
3468
+ startHour = 0,
3469
+ // <- valor por defecto
3470
+ endHour = 23
3109
3471
  }) => {
3110
- const [view, setView] = (0, import_react28.useState)(initialView);
3111
- const [currentDate, setCurrentDate] = (0, import_react28.useState)((0, import_dayjs7.default)());
3472
+ const [view, setView] = (0, import_react29.useState)(initialView);
3473
+ const [currentDate, setCurrentDate] = (0, import_react29.useState)((0, import_dayjs7.default)());
3112
3474
  const handleViewChange = (newView) => {
3113
3475
  setView(newView);
3114
3476
  onViewChange == null ? void 0 : onViewChange(newView);
@@ -3116,12 +3478,18 @@ var Calendar = ({
3116
3478
  const handleNavigate = (action) => {
3117
3479
  let newDate = currentDate;
3118
3480
  const unit = view === "month" ? "month" : "day";
3119
- if (action === "PREV") newDate = currentDate.subtract(1, unit);
3120
- else if (action === "NEXT") newDate = currentDate.add(1, unit);
3121
- else if (action === "TODAY") newDate = (0, import_dayjs7.default)();
3481
+ if (action === "PREV") {
3482
+ if (view === "day") newDate = currentDate.subtract(1, "day");
3483
+ if (view === "week") newDate = currentDate.subtract(1, "week");
3484
+ if (view === "month") newDate = currentDate.subtract(1, "month");
3485
+ } else if (action === "NEXT") {
3486
+ if (view === "day") newDate = currentDate.add(1, "day");
3487
+ if (view === "week") newDate = currentDate.add(1, "week");
3488
+ if (view === "month") newDate = currentDate.add(1, "month");
3489
+ } else if (action === "TODAY") newDate = (0, import_dayjs7.default)();
3122
3490
  setCurrentDate(newDate);
3123
3491
  };
3124
- return /* @__PURE__ */ import_react28.default.createElement(import_material22.Box, null, /* @__PURE__ */ import_react28.default.createElement(
3492
+ return /* @__PURE__ */ import_react29.default.createElement(import_material22.Box, null, /* @__PURE__ */ import_react29.default.createElement(
3125
3493
  CalendarToolbar,
3126
3494
  {
3127
3495
  labelDate: currentDate,
@@ -3130,39 +3498,280 @@ var Calendar = ({
3130
3498
  onNavigate: handleNavigate
3131
3499
  },
3132
3500
  toolbar
3133
- ), view === "month" && /* @__PURE__ */ import_react28.default.createElement(
3501
+ ), isLoading ? /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(import_material22.Box, null, /* @__PURE__ */ import_react29.default.createElement(
3502
+ import_material22.Box,
3503
+ {
3504
+ display: "flex",
3505
+ justifyContent: "center",
3506
+ alignItems: "center",
3507
+ height: "400px"
3508
+ },
3509
+ /* @__PURE__ */ import_react29.default.createElement(import_material22.CircularProgress, { variant: "indeterminate" })
3510
+ ))) : /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, view === "month" && /* @__PURE__ */ import_react29.default.createElement(
3134
3511
  MonthView,
3135
3512
  {
3136
3513
  events,
3514
+ currentDate,
3137
3515
  onDayClick,
3138
3516
  onMoreClick,
3139
3517
  onEventClick,
3140
- currentDate
3518
+ onEventHover
3141
3519
  }
3142
- ), view === "week" && /* @__PURE__ */ import_react28.default.createElement(
3520
+ ), view === "week" && /* @__PURE__ */ import_react29.default.createElement(
3143
3521
  WeekView,
3144
3522
  {
3145
3523
  events,
3146
3524
  currentDate,
3147
3525
  onDayClick,
3148
3526
  onMoreClick,
3149
- onEventClick
3527
+ onEventClick,
3528
+ onEventHover,
3529
+ startHour,
3530
+ endHour
3150
3531
  }
3151
- ), view === "day" && /* @__PURE__ */ import_react28.default.createElement(
3532
+ ), view === "day" && /* @__PURE__ */ import_react29.default.createElement(
3152
3533
  DayView,
3153
3534
  {
3154
3535
  events,
3155
3536
  currentDate,
3156
- onEventClick
3537
+ onEventClick,
3538
+ onEventHover,
3539
+ startHour,
3540
+ endHour
3157
3541
  }
3158
- ));
3542
+ )));
3543
+ };
3544
+
3545
+ // src/Components/SCTime.tsx
3546
+ var import_react30 = __toESM(require("react"), 1);
3547
+ var import_material23 = require("@mui/material");
3548
+ var import_LocalizationProvider3 = require("@mui/x-date-pickers/LocalizationProvider");
3549
+ var import_AdapterDayjs2 = require("@mui/x-date-pickers/AdapterDayjs");
3550
+ var import_dayjs8 = __toESM(require("dayjs"), 1);
3551
+ var import_es3 = require("dayjs/locale/es");
3552
+ var import_x_license_pro3 = require("@mui/x-license-pro");
3553
+ var import_AccessTime = __toESM(require("@mui/icons-material/AccessTime"), 1);
3554
+ var import_TimeField = require("@mui/x-date-pickers/TimeField");
3555
+ var import_DigitalClock = require("@mui/x-date-pickers/DigitalClock");
3556
+ var SCTime = ({
3557
+ label = "Hora",
3558
+ required = false,
3559
+ disabled = false,
3560
+ background = "transparent",
3561
+ timeStep = 5,
3562
+ state,
3563
+ setState
3564
+ }) => {
3565
+ import_x_license_pro3.LicenseInfo.setLicenseKey(
3566
+ "77d49a57fbc5f4af35ddb05c5f1742e0Tz0xMTI3MjgsRT0xNzc4MzcxMTk5MDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1RMy0yMDI0LEtWPTI="
3567
+ );
3568
+ const isTimeEmpty = required && !state;
3569
+ const hasError = isTimeEmpty;
3570
+ const [anchorEl, setAnchorEl] = (0, import_react30.useState)(null);
3571
+ const [isOpenPopover, setIsOpenPopover] = (0, import_react30.useState)(false);
3572
+ const [popoverPlacement, setPopoverPlacement] = (0, import_react30.useState)("bottom");
3573
+ const detectPlacement = (element) => {
3574
+ const rect = element.getBoundingClientRect();
3575
+ const windowHeight = window.innerHeight;
3576
+ const spaceBelow = windowHeight - rect.bottom;
3577
+ const spaceAbove = rect.top;
3578
+ const popoverHeight = 300;
3579
+ if (spaceBelow < popoverHeight && spaceAbove > spaceBelow) {
3580
+ setPopoverPlacement("top");
3581
+ } else {
3582
+ setPopoverPlacement("bottom");
3583
+ }
3584
+ };
3585
+ const handleTimeFieldClick = (event2) => {
3586
+ if (!disabled) {
3587
+ const target = event2.currentTarget;
3588
+ setAnchorEl(target);
3589
+ detectPlacement(target);
3590
+ setIsOpenPopover(true);
3591
+ }
3592
+ };
3593
+ const handleTimeChange = (newValue) => {
3594
+ const dayjsValue = newValue ? (0, import_dayjs8.default)(newValue) : null;
3595
+ setState(dayjsValue);
3596
+ setIsOpenPopover(false);
3597
+ setAnchorEl(null);
3598
+ };
3599
+ const handleClose = () => {
3600
+ setIsOpenPopover(false);
3601
+ setAnchorEl(null);
3602
+ };
3603
+ return /* @__PURE__ */ import_react30.default.createElement(import_LocalizationProvider3.LocalizationProvider, { dateAdapter: import_AdapterDayjs2.AdapterDayjs }, /* @__PURE__ */ import_react30.default.createElement(import_material23.Box, { sx: { position: "relative", width: "120px" } }, /* @__PURE__ */ import_react30.default.createElement(
3604
+ import_TimeField.TimeField,
3605
+ {
3606
+ label,
3607
+ value: state,
3608
+ disabled,
3609
+ required,
3610
+ error: hasError,
3611
+ onClick: handleTimeFieldClick,
3612
+ slotProps: {
3613
+ textField: {
3614
+ InputProps: {
3615
+ endAdornment: /* @__PURE__ */ import_react30.default.createElement(import_material23.InputAdornment, { position: "end" }, /* @__PURE__ */ import_react30.default.createElement(
3616
+ import_AccessTime.default,
3617
+ {
3618
+ color: disabled ? "disabled" : "action",
3619
+ sx: { cursor: disabled ? "default" : "pointer" },
3620
+ fontSize: "small"
3621
+ }
3622
+ )),
3623
+ sx: {
3624
+ backgroundColor: background,
3625
+ padding: "8px 12px",
3626
+ cursor: disabled ? "default" : "pointer",
3627
+ "& input": {
3628
+ cursor: disabled ? "default" : "pointer"
3629
+ }
3630
+ }
3631
+ }
3632
+ }
3633
+ },
3634
+ sx: {
3635
+ width: "100%",
3636
+ "& .MuiInputBase-input": {
3637
+ cursor: disabled ? "default" : "pointer"
3638
+ },
3639
+ "& .MuiPickersSectionList-root": {
3640
+ padding: "0px !important"
3641
+ }
3642
+ }
3643
+ }
3644
+ ), /* @__PURE__ */ import_react30.default.createElement(
3645
+ import_material23.Popover,
3646
+ {
3647
+ open: isOpenPopover,
3648
+ anchorEl,
3649
+ onClose: handleClose,
3650
+ anchorOrigin: {
3651
+ vertical: popoverPlacement === "top" ? "top" : "bottom",
3652
+ horizontal: "left"
3653
+ },
3654
+ transformOrigin: {
3655
+ vertical: popoverPlacement === "top" ? "bottom" : "top",
3656
+ horizontal: "left"
3657
+ },
3658
+ marginThreshold: 0,
3659
+ disableScrollLock: true,
3660
+ slotProps: {
3661
+ paper: {
3662
+ sx: {
3663
+ boxShadow: "0px 4px 20px rgba(0, 0, 0, 0.1)",
3664
+ borderRadius: 1,
3665
+ border: "1px solid #e0e0e0",
3666
+ maxHeight: "300px",
3667
+ overflow: "visible"
3668
+ }
3669
+ }
3670
+ }
3671
+ },
3672
+ /* @__PURE__ */ import_react30.default.createElement(import_material23.ClickAwayListener, { onClickAway: handleClose }, /* @__PURE__ */ import_react30.default.createElement(import_material23.Box, { sx: { p: 0 } }, /* @__PURE__ */ import_react30.default.createElement(
3673
+ import_DigitalClock.DigitalClock,
3674
+ {
3675
+ value: state,
3676
+ onChange: handleTimeChange,
3677
+ timeStep,
3678
+ sx: {
3679
+ "& .MuiList-root": {
3680
+ maxHeight: "250px",
3681
+ overflow: "auto"
3682
+ },
3683
+ "& .MuiMenuItem-root": {
3684
+ fontSize: "0.875rem",
3685
+ py: 0.5
3686
+ }
3687
+ }
3688
+ }
3689
+ )))
3690
+ )));
3691
+ };
3692
+
3693
+ // src/Components/SCCard.tsx
3694
+ var import_react31 = __toESM(require("react"), 1);
3695
+ var import_material24 = require("@mui/material");
3696
+ var import_IconButton = __toESM(require("@mui/material/IconButton"), 1);
3697
+ var import_Card = __toESM(require("@mui/material/Card"), 1);
3698
+ var import_CardHeader = __toESM(require("@mui/material/CardHeader"), 1);
3699
+ var import_CardMedia = __toESM(require("@mui/material/CardMedia"), 1);
3700
+ var import_CardContent = __toESM(require("@mui/material/CardContent"), 1);
3701
+ var import_CardActions = __toESM(require("@mui/material/CardActions"), 1);
3702
+ var import_Collapse = __toESM(require("@mui/material/Collapse"), 1);
3703
+ var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"), 1);
3704
+ var Muicon8 = __toESM(require("@mui/icons-material"), 1);
3705
+ var SCCard = ({ title, image, iconTitle, actionsTitle, subtitle, content, actions, expand }) => {
3706
+ let iconTitleValidation = "";
3707
+ let IconTitle;
3708
+ const [expanded, setExpanded] = import_react31.default.useState(false);
3709
+ if (iconTitle) {
3710
+ if (Muicon8[iconTitle] == void 0) {
3711
+ if (iconTitle && import_react31.default.isValidElement(iconTitle) && iconTitle.type == void 0) {
3712
+ iconTitleValidation = "image";
3713
+ IconTitle = iconTitle;
3714
+ } else {
3715
+ iconTitleValidation = "icon";
3716
+ IconTitle = iconTitle;
3717
+ }
3718
+ } else {
3719
+ iconTitleValidation = "icon";
3720
+ IconTitle = Muicon8[iconTitle];
3721
+ }
3722
+ }
3723
+ const handleExpandClick = () => {
3724
+ setExpanded(!expanded);
3725
+ };
3726
+ return /* @__PURE__ */ import_react31.default.createElement(import_Card.default, { sx: { maxWidth: 345 } }, title && /* @__PURE__ */ import_react31.default.createElement(
3727
+ import_CardHeader.default,
3728
+ {
3729
+ avatar: iconTitle ? iconTitleValidation === "image" ? /* @__PURE__ */ import_react31.default.createElement(import_material24.Box, { sx: { marginRight: "16px", width: "44px", height: "44px", borderRadius: "1px" } }, /* @__PURE__ */ import_react31.default.createElement("img", { src: IconTitle, width: "44px", height: "44px" })) : /* @__PURE__ */ import_react31.default.createElement(import_material24.SvgIcon, { color: "action", fontSize: "small", component: IconTitle, sx: { marginRight: "16px" } }) : void 0,
3730
+ action: (expand == null ? void 0 : expand.position) == "top" ? (expand == null ? void 0 : expand.type) === "text" ? /* @__PURE__ */ import_react31.default.createElement(import_material24.Button, { onClick: handleExpandClick, sx: { marginRight: "auto" } }, "Expandir") : (expand == null ? void 0 : expand.type) === "icon" && /* @__PURE__ */ import_react31.default.createElement(import_IconButton.default, { onClick: handleExpandClick, sx: { marginRight: "auto" }, size: "small" }, /* @__PURE__ */ import_react31.default.createElement(import_ExpandMore.default, { fontSize: "small" })) : actionsTitle,
3731
+ title,
3732
+ subheader: subtitle,
3733
+ sx: {
3734
+ "& .MuiCardHeader-title": {
3735
+ fontSize: "14px",
3736
+ color: "text.primary"
3737
+ },
3738
+ "& .MuiCardHeader-subheader": {
3739
+ fontSize: "13px",
3740
+ color: "text.secondary"
3741
+ },
3742
+ "& .MuiCardHeader-action": {
3743
+ height: "40px !important",
3744
+ display: "flex",
3745
+ alignItems: "center"
3746
+ }
3747
+ }
3748
+ }
3749
+ ), image && /* @__PURE__ */ import_react31.default.createElement(
3750
+ import_CardMedia.default,
3751
+ {
3752
+ component: "img",
3753
+ height: "194",
3754
+ image
3755
+ }
3756
+ ), content && /* @__PURE__ */ import_react31.default.createElement(import_CardContent.default, { sx: { padding: "8px 16px !important" } }, content), ((expand == null ? void 0 : expand.position) == "bottom" || actions != void 0) && /* @__PURE__ */ import_react31.default.createElement(import_CardActions.default, { disableSpacing: true, sx: { justifyContent: "flex-end" } }, (expand == null ? void 0 : expand.position) === "bottom" ? (expand == null ? void 0 : expand.type) === "text" ? /* @__PURE__ */ import_react31.default.createElement(import_material24.Button, { onClick: handleExpandClick, sx: { marginRight: "auto" } }, "Expandir") : (expand == null ? void 0 : expand.type) === "icon" && /* @__PURE__ */ import_react31.default.createElement(import_IconButton.default, { onClick: handleExpandClick, sx: { marginRight: "auto" } }, /* @__PURE__ */ import_react31.default.createElement(import_ExpandMore.default, null)) : null, actions && actions.length > 0 ? actions.map((action, index) => /* @__PURE__ */ import_react31.default.createElement(
3757
+ import_material24.Button,
3758
+ {
3759
+ key: index,
3760
+ size: "small",
3761
+ color: action.color || "primary",
3762
+ variant: action.variant || "text",
3763
+ onClick: action.fn,
3764
+ disabled: action.disabled || false
3765
+ },
3766
+ action.text
3767
+ )) : ""), expand && /* @__PURE__ */ import_react31.default.createElement(import_Collapse.default, { in: expanded, timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ import_react31.default.createElement(import_CardContent.default, { sx: { padding: "8px 16px !important" } }, expand.content)));
3159
3768
  };
3160
3769
 
3161
3770
  // src/Theme/index.ts
3162
3771
  var import_styles3 = require("@mui/material/styles");
3163
3772
 
3164
3773
  // src/Theme/components.ts
3165
- var import_react29 = __toESM(require("react"), 1);
3774
+ var import_react32 = __toESM(require("react"), 1);
3166
3775
  var import_icons_material11 = require("@mui/icons-material");
3167
3776
  var components = {
3168
3777
  MuiSelect: {
@@ -3860,10 +4469,10 @@ var components = {
3860
4469
  MuiAlert: {
3861
4470
  defaultProps: {
3862
4471
  iconMapping: {
3863
- success: import_react29.default.createElement(import_icons_material11.CheckCircleRounded),
3864
- error: import_react29.default.createElement(import_icons_material11.ErrorRounded),
3865
- warning: import_react29.default.createElement(import_icons_material11.WarningRounded),
3866
- info: import_react29.default.createElement(import_icons_material11.InfoRounded)
4472
+ success: import_react32.default.createElement(import_icons_material11.CheckCircleRounded),
4473
+ error: import_react32.default.createElement(import_icons_material11.ErrorRounded),
4474
+ warning: import_react32.default.createElement(import_icons_material11.WarningRounded),
4475
+ info: import_react32.default.createElement(import_icons_material11.InfoRounded)
3867
4476
  }
3868
4477
  },
3869
4478
  variants: [
@@ -4912,6 +5521,7 @@ var ADCSincoTheme = (0, import_styles3.createTheme)(__spreadValues({}, ADCTheme)
4912
5521
  PageHeader,
4913
5522
  SCAutocomplete,
4914
5523
  SCCalendarSwipeable,
5524
+ SCCard,
4915
5525
  SCDataGrid,
4916
5526
  SCDataGridInitial,
4917
5527
  SCDateRange,
@@ -4923,6 +5533,7 @@ var ADCSincoTheme = (0, import_styles3.createTheme)(__spreadValues({}, ADCTheme)
4923
5533
  SCTabs,
4924
5534
  SCTextArea,
4925
5535
  SCTextField,
5536
+ SCTime,
4926
5537
  SCToastNotification,
4927
5538
  SincoTheme,
4928
5539
  ToastProgress,