componentes-sinco 1.0.6 → 1.0.8
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/Icon Scheduler-WX62PISD.svg +17 -0
- package/dist/index.cjs +1303 -223
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +55 -11
- package/dist/index.d.ts +55 -11
- package/dist/index.js +1287 -209
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -61,6 +61,7 @@ var src_exports = {};
|
|
|
61
61
|
__export(src_exports, {
|
|
62
62
|
ADCSincoTheme: () => ADCSincoTheme,
|
|
63
63
|
AdproSincoTheme: () => AdproSincoTheme,
|
|
64
|
+
Calendar: () => Calendar,
|
|
64
65
|
EmptyState: () => EmptyState,
|
|
65
66
|
FooterAction: () => FooterAction,
|
|
66
67
|
MultiSelect: () => MultiSelect,
|
|
@@ -78,6 +79,7 @@ __export(src_exports, {
|
|
|
78
79
|
SCTabs: () => SCTabs,
|
|
79
80
|
SCTextArea: () => SCTextArea,
|
|
80
81
|
SCTextField: () => SCTextField,
|
|
82
|
+
SCTime: () => SCTime,
|
|
81
83
|
SCToastNotification: () => SCToastNotification,
|
|
82
84
|
SincoTheme: () => SincoTheme,
|
|
83
85
|
ToastProgress: () => ToastProgress,
|
|
@@ -95,10 +97,12 @@ __export(src_exports, {
|
|
|
95
97
|
module.exports = __toCommonJS(src_exports);
|
|
96
98
|
|
|
97
99
|
// src/Components/Drawer/SCDrawer.tsx
|
|
98
|
-
var
|
|
100
|
+
var import_react9 = __toESM(require("react"), 1);
|
|
99
101
|
var import_material7 = require("@mui/material");
|
|
100
102
|
var import_Grid23 = __toESM(require("@mui/material/Grid2"), 1);
|
|
101
103
|
var import_Close = __toESM(require("@mui/icons-material/Close"), 1);
|
|
104
|
+
var import_ArrowBackIos = __toESM(require("@mui/icons-material/ArrowBackIos"), 1);
|
|
105
|
+
var import_ArrowForwardIos = __toESM(require("@mui/icons-material/ArrowForwardIos"), 1);
|
|
102
106
|
|
|
103
107
|
// src/Components/Textfield/SCTextField.tsx
|
|
104
108
|
var import_react = __toESM(require("react"), 1);
|
|
@@ -732,11 +736,9 @@ function SCSelect({
|
|
|
732
736
|
width = "100%",
|
|
733
737
|
size = "small",
|
|
734
738
|
variant = "outlined",
|
|
735
|
-
|
|
739
|
+
background = "white",
|
|
736
740
|
required,
|
|
737
741
|
disabled,
|
|
738
|
-
background,
|
|
739
|
-
fnAplicar,
|
|
740
742
|
setState,
|
|
741
743
|
state
|
|
742
744
|
}) {
|
|
@@ -811,14 +813,20 @@ function SCSelect({
|
|
|
811
813
|
MenuProps: {
|
|
812
814
|
PaperProps: {
|
|
813
815
|
sx: {
|
|
814
|
-
|
|
816
|
+
maxHeight: "300px",
|
|
817
|
+
minWidth: "100%"
|
|
815
818
|
}
|
|
816
819
|
},
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
820
|
+
anchorOrigin: {
|
|
821
|
+
vertical: "bottom",
|
|
822
|
+
horizontal: "left"
|
|
823
|
+
},
|
|
824
|
+
transformOrigin: {
|
|
825
|
+
vertical: "top",
|
|
826
|
+
horizontal: "left"
|
|
827
|
+
},
|
|
828
|
+
disableAutoFocusItem: true,
|
|
829
|
+
marginThreshold: 0
|
|
822
830
|
}
|
|
823
831
|
},
|
|
824
832
|
data.map((option, index) => {
|
|
@@ -850,7 +858,6 @@ function SCAutocomplete({
|
|
|
850
858
|
state,
|
|
851
859
|
inputChange,
|
|
852
860
|
maxCheck
|
|
853
|
-
// Agregar el parámetro maxCheck
|
|
854
861
|
}) {
|
|
855
862
|
const labelContent = `<span style="color: red;">* </span>` + label;
|
|
856
863
|
let group = "";
|
|
@@ -944,6 +951,7 @@ function SCAutocomplete({
|
|
|
944
951
|
{
|
|
945
952
|
multiple: typeFormat === "multiselect",
|
|
946
953
|
clearOnEscape: true,
|
|
954
|
+
noOptionsText: "No se encuentra",
|
|
947
955
|
disabled,
|
|
948
956
|
options: data,
|
|
949
957
|
isOptionEqualToValue: (option, value) => getItemValue(option).value === getItemValue(value).value,
|
|
@@ -1187,31 +1195,83 @@ var getIcon2 = (iconName) => {
|
|
|
1187
1195
|
};
|
|
1188
1196
|
|
|
1189
1197
|
// src/Components/Drawer/Helpers/validateInput.tsx
|
|
1190
|
-
var validateInputs = (arrayElements, onError, onSuccess) => {
|
|
1191
|
-
var _a;
|
|
1198
|
+
var validateInputs = (arrayElements, onError, onSuccess, setChipFilters, setTextFilters) => {
|
|
1199
|
+
var _a, _b;
|
|
1192
1200
|
let requiredValues = 0;
|
|
1193
1201
|
let filledValues = 0;
|
|
1194
1202
|
for (let i = 0; i < arrayElements.length; i++) {
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1203
|
+
const element = arrayElements[i];
|
|
1204
|
+
const { validation, element: typeElement } = validateTypeElements(element);
|
|
1205
|
+
const textValue = ((_a = typeElement.state) == null ? void 0 : _a.textValue) !== void 0 ? String((_b = typeElement.state) == null ? void 0 : _b.textValue) : String(typeElement.state);
|
|
1206
|
+
if (typeElement == null ? void 0 : typeElement.required) {
|
|
1207
|
+
requiredValues++;
|
|
1208
|
+
if (textValue.trim() !== "" && textValue.trim() !== ",") {
|
|
1200
1209
|
filledValues++;
|
|
1201
1210
|
}
|
|
1202
1211
|
}
|
|
1203
1212
|
}
|
|
1204
1213
|
if (requiredValues === filledValues) {
|
|
1205
1214
|
onSuccess();
|
|
1215
|
+
setChipFilters(true);
|
|
1206
1216
|
} else {
|
|
1207
1217
|
onError({
|
|
1208
1218
|
type: "error",
|
|
1209
1219
|
title: "Algunos campos son requeridos",
|
|
1210
1220
|
time: 10
|
|
1211
1221
|
});
|
|
1222
|
+
setChipFilters(false);
|
|
1212
1223
|
}
|
|
1213
1224
|
};
|
|
1214
1225
|
|
|
1226
|
+
// src/Components/Drawer/Helpers/validateTypeElement.tsx
|
|
1227
|
+
var import_react8 = __toESM(require("react"), 1);
|
|
1228
|
+
var validateTypeElements = (element) => {
|
|
1229
|
+
var _a;
|
|
1230
|
+
let validation = "";
|
|
1231
|
+
let typeElement = element;
|
|
1232
|
+
if (element.type == "textField") {
|
|
1233
|
+
validation = "textField";
|
|
1234
|
+
typeElement = element;
|
|
1235
|
+
} else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCtextField") {
|
|
1236
|
+
validation = "textField";
|
|
1237
|
+
typeElement = element == null ? void 0 : element.component.props;
|
|
1238
|
+
} else if (element.type == "textArea") {
|
|
1239
|
+
validation = "textArea";
|
|
1240
|
+
typeElement = element;
|
|
1241
|
+
} else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCtextArea") {
|
|
1242
|
+
validation = "textArea";
|
|
1243
|
+
typeElement = element == null ? void 0 : element.component.props;
|
|
1244
|
+
} else if (element.type == "dateRange") {
|
|
1245
|
+
validation = "dateRange";
|
|
1246
|
+
typeElement = element;
|
|
1247
|
+
} else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCDateRange") {
|
|
1248
|
+
validation = "dateRange";
|
|
1249
|
+
typeElement = element == null ? void 0 : element.component.props;
|
|
1250
|
+
} else if (element.type == "autocomplete") {
|
|
1251
|
+
validation = "autocomplete";
|
|
1252
|
+
typeElement = element;
|
|
1253
|
+
} else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCAutocomplete") {
|
|
1254
|
+
validation = "autocomplete";
|
|
1255
|
+
typeElement = element == null ? void 0 : element.component.props;
|
|
1256
|
+
} else if (element.typeFormat == "multiselect") {
|
|
1257
|
+
validation = "multiselect";
|
|
1258
|
+
typeElement = element;
|
|
1259
|
+
} 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") {
|
|
1260
|
+
validation = "multiselect";
|
|
1261
|
+
typeElement = element == null ? void 0 : element.component.props;
|
|
1262
|
+
} else if (element.type == "select") {
|
|
1263
|
+
validation = "select";
|
|
1264
|
+
typeElement = element;
|
|
1265
|
+
} else if (import_react8.default.isValidElement(element == null ? void 0 : element.component) && element.component.type && element.component.type.name == "SCSelect") {
|
|
1266
|
+
validation = "select";
|
|
1267
|
+
typeElement = element == null ? void 0 : element.component.props;
|
|
1268
|
+
}
|
|
1269
|
+
return {
|
|
1270
|
+
validation,
|
|
1271
|
+
element: typeElement
|
|
1272
|
+
};
|
|
1273
|
+
};
|
|
1274
|
+
|
|
1215
1275
|
// src/Components/Drawer/SCDrawer.tsx
|
|
1216
1276
|
function SCDrawer({
|
|
1217
1277
|
//informativas
|
|
@@ -1224,16 +1284,42 @@ function SCDrawer({
|
|
|
1224
1284
|
anchor = "left",
|
|
1225
1285
|
width,
|
|
1226
1286
|
//Funcionales
|
|
1227
|
-
open
|
|
1287
|
+
open,
|
|
1288
|
+
setOpen,
|
|
1289
|
+
chipFilters
|
|
1228
1290
|
}) {
|
|
1229
1291
|
var _a, _b;
|
|
1230
|
-
const
|
|
1231
|
-
const [
|
|
1292
|
+
const scrollRef = (0, import_react9.useRef)(null);
|
|
1293
|
+
const [drawerOpen, setDrawerOpen] = import_react9.default.useState(open);
|
|
1294
|
+
const [toast, setToast] = import_react9.default.useState(null);
|
|
1295
|
+
const [stateChipFilters, setChipFilters] = import_react9.default.useState(false);
|
|
1296
|
+
const [textFilters, setTextFilters] = import_react9.default.useState([]);
|
|
1297
|
+
(0, import_react9.useEffect)(() => {
|
|
1298
|
+
if (chipFilters != void 0) {
|
|
1299
|
+
if (chipFilters.length > 0) {
|
|
1300
|
+
setTextFilters([]);
|
|
1301
|
+
inputValidation();
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
}, [chipFilters]);
|
|
1305
|
+
(0, import_react9.useEffect)(() => {
|
|
1306
|
+
if (open) {
|
|
1307
|
+
toggleDrawer(true);
|
|
1308
|
+
} else {
|
|
1309
|
+
handleDrawerClose();
|
|
1310
|
+
}
|
|
1311
|
+
}, [open]);
|
|
1232
1312
|
const handleDrawerClose = () => {
|
|
1233
1313
|
setDrawerOpen(false);
|
|
1314
|
+
if (setOpen) {
|
|
1315
|
+
setOpen(false);
|
|
1316
|
+
}
|
|
1234
1317
|
};
|
|
1235
1318
|
const toggleDrawer = (newOpen) => () => {
|
|
1236
1319
|
setDrawerOpen(newOpen);
|
|
1320
|
+
if (setOpen) {
|
|
1321
|
+
setOpen(true);
|
|
1322
|
+
}
|
|
1237
1323
|
};
|
|
1238
1324
|
const ButtonIcon = getIcon2(buttonDrawer == null ? void 0 : buttonDrawer.icon);
|
|
1239
1325
|
const setToastWithDelay = (toastContent) => {
|
|
@@ -1242,39 +1328,179 @@ function SCDrawer({
|
|
|
1242
1328
|
setToast(toastContent);
|
|
1243
1329
|
}, 10);
|
|
1244
1330
|
};
|
|
1245
|
-
const inputValidation = () =>
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
element
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
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")) {
|
|
1258
|
-
element.setState != void 0 ? element.setState({ hiddenValue: [], textValue: [] }) : null;
|
|
1259
|
-
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: [] });
|
|
1331
|
+
const inputValidation = () => {
|
|
1332
|
+
var _a2, _b2, _c, _d;
|
|
1333
|
+
if (chipFilters != void 0 && chipFilters.length > 0) {
|
|
1334
|
+
if (chipFilters && chipFilters.length > 0) {
|
|
1335
|
+
arrayElements.forEach((arrayElement) => {
|
|
1336
|
+
var _a3, _b3, _c2;
|
|
1337
|
+
const { validation, element: typeElement } = validateTypeElements(arrayElement);
|
|
1338
|
+
let currentValue = "";
|
|
1339
|
+
if (validation === "dateRange") {
|
|
1340
|
+
if (typeElement.state && typeElement.state[0] && typeElement.state[1]) {
|
|
1341
|
+
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")}`;
|
|
1342
|
+
}
|
|
1260
1343
|
} else {
|
|
1261
|
-
|
|
1262
|
-
|
|
1344
|
+
currentValue = ((_c2 = typeElement.state) == null ? void 0 : _c2.textValue) !== void 0 ? String(typeElement.state.textValue).trim() : String(typeElement.state).trim();
|
|
1345
|
+
}
|
|
1346
|
+
chipFilters.forEach((chipFilter) => {
|
|
1347
|
+
const chipValue = String(chipFilter).trim();
|
|
1348
|
+
if (currentValue === chipValue && currentValue !== "" && currentValue !== ",") {
|
|
1349
|
+
setTextFilters((prevFilters) => {
|
|
1350
|
+
const newFilter = { value: currentValue, arrayElement: typeElement };
|
|
1351
|
+
const existingFilterIndex = prevFilters.findIndex(
|
|
1352
|
+
(filter) => filter.arrayElement.label === arrayElement.label
|
|
1353
|
+
);
|
|
1354
|
+
if (existingFilterIndex !== -1) {
|
|
1355
|
+
const updatedFilters = [...prevFilters];
|
|
1356
|
+
updatedFilters[existingFilterIndex] = newFilter;
|
|
1357
|
+
return updatedFilters;
|
|
1358
|
+
} else {
|
|
1359
|
+
return [...prevFilters, newFilter];
|
|
1360
|
+
}
|
|
1361
|
+
});
|
|
1362
|
+
}
|
|
1363
|
+
});
|
|
1364
|
+
});
|
|
1365
|
+
}
|
|
1366
|
+
} else {
|
|
1367
|
+
const newFiltersToAdd = [];
|
|
1368
|
+
for (let i = 0; i < arrayElements.length; i++) {
|
|
1369
|
+
const element = arrayElements[i];
|
|
1370
|
+
const { validation, element: typeElement } = validateTypeElements(element);
|
|
1371
|
+
const textValue = ((_a2 = typeElement.state) == null ? void 0 : _a2.textValue) !== void 0 ? String((_b2 = typeElement.state) == null ? void 0 : _b2.textValue) : String(typeElement.state);
|
|
1372
|
+
if (textValue.trim() !== "" && textValue.trim() !== ",") {
|
|
1373
|
+
let newFilter;
|
|
1374
|
+
switch (validation) {
|
|
1375
|
+
case "dateRange":
|
|
1376
|
+
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")}`;
|
|
1377
|
+
newFilter = { value: values, arrayElement: typeElement };
|
|
1378
|
+
break;
|
|
1379
|
+
default:
|
|
1380
|
+
newFilter = { value: textValue, arrayElement: typeElement };
|
|
1381
|
+
break;
|
|
1382
|
+
}
|
|
1383
|
+
const existingFilterByLabel = newFiltersToAdd.find(
|
|
1384
|
+
(filter) => filter.arrayElement.label === element.label
|
|
1385
|
+
);
|
|
1386
|
+
if (existingFilterByLabel) {
|
|
1387
|
+
existingFilterByLabel.value = newFilter.value;
|
|
1388
|
+
existingFilterByLabel.arrayElement = newFilter.arrayElement;
|
|
1389
|
+
} else {
|
|
1390
|
+
newFiltersToAdd.push(newFilter);
|
|
1263
1391
|
}
|
|
1264
1392
|
}
|
|
1265
1393
|
}
|
|
1394
|
+
setTextFilters((prevFilters) => {
|
|
1395
|
+
let updatedFilters = [...prevFilters];
|
|
1396
|
+
newFiltersToAdd.forEach((newFilter) => {
|
|
1397
|
+
const existingFilterIndex = updatedFilters.findIndex(
|
|
1398
|
+
(filter) => filter.arrayElement.label === newFilter.arrayElement.label
|
|
1399
|
+
);
|
|
1400
|
+
if (existingFilterIndex !== -1) {
|
|
1401
|
+
updatedFilters[existingFilterIndex] = newFilter;
|
|
1402
|
+
} else {
|
|
1403
|
+
updatedFilters.push(newFilter);
|
|
1404
|
+
}
|
|
1405
|
+
});
|
|
1406
|
+
return updatedFilters;
|
|
1407
|
+
});
|
|
1408
|
+
validateInputs(arrayElements, setToastWithDelay, handleDrawerClose, setChipFilters, setTextFilters);
|
|
1409
|
+
}
|
|
1410
|
+
};
|
|
1411
|
+
const resetElementByType = (originalElement, validation, typeElement) => {
|
|
1412
|
+
let defaultValue;
|
|
1413
|
+
switch (validation) {
|
|
1414
|
+
case "textField":
|
|
1415
|
+
case "textArea":
|
|
1416
|
+
defaultValue = "";
|
|
1417
|
+
break;
|
|
1418
|
+
case "dateRange":
|
|
1419
|
+
defaultValue = [null, null];
|
|
1420
|
+
break;
|
|
1421
|
+
case "multiselect":
|
|
1422
|
+
defaultValue = { hiddenValue: [], textValue: [] };
|
|
1423
|
+
break;
|
|
1424
|
+
default:
|
|
1425
|
+
defaultValue = { hiddenValue: "-1", textValue: "" };
|
|
1426
|
+
}
|
|
1427
|
+
if (typeElement.setState) {
|
|
1428
|
+
typeElement.setState(defaultValue);
|
|
1429
|
+
}
|
|
1430
|
+
};
|
|
1431
|
+
const cleanFilters = () => {
|
|
1432
|
+
arrayElements.forEach((element) => {
|
|
1433
|
+
const { validation, element: typeElement } = validateTypeElements(element);
|
|
1434
|
+
if (typeElement.setState) {
|
|
1435
|
+
resetElementByType(element, validation, typeElement);
|
|
1436
|
+
}
|
|
1266
1437
|
});
|
|
1438
|
+
setTextFilters([]);
|
|
1439
|
+
};
|
|
1440
|
+
const deleteFilter = (element) => {
|
|
1441
|
+
const { validation, element: typeElement } = validateTypeElements(element);
|
|
1442
|
+
if (typeElement.setState && shouldShowChips == true) {
|
|
1443
|
+
resetElementByType(element, validation, typeElement);
|
|
1444
|
+
setTextFilters(
|
|
1445
|
+
(prevFilters) => prevFilters.filter((filter) => filter.arrayElement.label !== element.label)
|
|
1446
|
+
);
|
|
1447
|
+
}
|
|
1448
|
+
};
|
|
1449
|
+
const scroll = (offset) => {
|
|
1450
|
+
if (scrollRef.current) {
|
|
1451
|
+
scrollRef.current.scrollLeft += offset;
|
|
1452
|
+
}
|
|
1267
1453
|
};
|
|
1268
|
-
const
|
|
1269
|
-
|
|
1454
|
+
const hasActiveFilters = () => {
|
|
1455
|
+
return arrayElements.some((arrayElement) => {
|
|
1456
|
+
const { validation, element: typeElement } = validateTypeElements(arrayElement);
|
|
1457
|
+
if (typeElement.state.textValue !== void 0) {
|
|
1458
|
+
return String(typeElement.state.textValue).trim() !== "";
|
|
1459
|
+
} else if (validation === "dateRange") {
|
|
1460
|
+
return typeElement.state && typeElement.state[0] !== null && typeElement.state[1] !== null;
|
|
1461
|
+
} else {
|
|
1462
|
+
return String(typeElement.state).trim() !== "" && String(typeElement.state).trim() !== ",";
|
|
1463
|
+
}
|
|
1464
|
+
});
|
|
1465
|
+
};
|
|
1466
|
+
const shouldShowChips = chipFilters != void 0 && chipFilters.length > 0 ? true : stateChipFilters === true && hasActiveFilters();
|
|
1467
|
+
const actionsA = actions == false ? false : actions != void 0 ? actions : [{ text: "Aplicar filtros", fn: inputValidation }, { text: "Limpiar filtros", fn: cleanFilters }];
|
|
1468
|
+
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(
|
|
1469
|
+
import_material7.Box,
|
|
1470
|
+
{
|
|
1471
|
+
ref: scrollRef,
|
|
1472
|
+
gap: 0.3,
|
|
1473
|
+
sx: {
|
|
1474
|
+
display: "flex",
|
|
1475
|
+
overflowX: "auto",
|
|
1476
|
+
scrollBehavior: "smooth",
|
|
1477
|
+
"&::-webkit-scrollbar": { display: "none" }
|
|
1478
|
+
}
|
|
1479
|
+
},
|
|
1480
|
+
textFilters == null ? void 0 : textFilters.map((chipData, index) => /* @__PURE__ */ import_react9.default.createElement(
|
|
1481
|
+
import_material7.Chip,
|
|
1482
|
+
__spreadProps(__spreadValues({
|
|
1483
|
+
key: index,
|
|
1484
|
+
label: chipData.value
|
|
1485
|
+
}, chipData.arrayElement.required == false || chipData.arrayElement.required == void 0 ? { onDelete: () => deleteFilter(chipData.arrayElement) } : {}), {
|
|
1486
|
+
color: "default",
|
|
1487
|
+
variant: "filled",
|
|
1488
|
+
size: "small",
|
|
1489
|
+
sx: {
|
|
1490
|
+
flexShrink: 0,
|
|
1491
|
+
minWidth: "auto"
|
|
1492
|
+
}
|
|
1493
|
+
})
|
|
1494
|
+
))
|
|
1495
|
+
), /* @__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(
|
|
1270
1496
|
import_material7.Chip,
|
|
1271
1497
|
__spreadProps(__spreadValues({
|
|
1272
1498
|
onClick: toggleDrawer(true),
|
|
1273
1499
|
color: buttonDrawer == null ? void 0 : buttonDrawer.color,
|
|
1274
1500
|
variant: (buttonDrawer == null ? void 0 : buttonDrawer.variant) == "contained" ? "filled" : "outlined",
|
|
1275
1501
|
label: (_a = buttonDrawer == null ? void 0 : buttonDrawer.text) != null ? _a : "",
|
|
1276
|
-
icon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" && ButtonIcon ? /* @__PURE__ */
|
|
1277
|
-
deleteIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */
|
|
1502
|
+
icon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : void 0,
|
|
1503
|
+
deleteIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : void 0
|
|
1278
1504
|
}, (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? { onDelete: () => {
|
|
1279
1505
|
} } : {}), {
|
|
1280
1506
|
sx: {
|
|
@@ -1284,7 +1510,7 @@ function SCDrawer({
|
|
|
1284
1510
|
textTransform: "capitalize"
|
|
1285
1511
|
}
|
|
1286
1512
|
})
|
|
1287
|
-
) : /* @__PURE__ */
|
|
1513
|
+
) : /* @__PURE__ */ import_react9.default.createElement(
|
|
1288
1514
|
import_material7.Button,
|
|
1289
1515
|
{
|
|
1290
1516
|
"data-testid": "test-buttonDrawer",
|
|
@@ -1293,11 +1519,11 @@ function SCDrawer({
|
|
|
1293
1519
|
onClick: toggleDrawer(true),
|
|
1294
1520
|
size: "small",
|
|
1295
1521
|
variant: (buttonDrawer == null ? void 0 : buttonDrawer.variant) != void 0 ? buttonDrawer == null ? void 0 : buttonDrawer.variant : "text",
|
|
1296
|
-
startIcon: ((buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" || !(buttonDrawer == null ? void 0 : buttonDrawer.iconPosition)) && ButtonIcon ? /* @__PURE__ */
|
|
1297
|
-
endIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */
|
|
1522
|
+
startIcon: ((buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "left" || !(buttonDrawer == null ? void 0 : buttonDrawer.iconPosition)) && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : null,
|
|
1523
|
+
endIcon: (buttonDrawer == null ? void 0 : buttonDrawer.iconPosition) === "right" && ButtonIcon ? /* @__PURE__ */ import_react9.default.createElement(ButtonIcon, { fontSize: "small" }) : null
|
|
1298
1524
|
},
|
|
1299
1525
|
(_b = buttonDrawer == null ? void 0 : buttonDrawer.text) != null ? _b : ""
|
|
1300
|
-
), /* @__PURE__ */
|
|
1526
|
+
)), /* @__PURE__ */ import_react9.default.createElement(
|
|
1301
1527
|
import_material7.Drawer,
|
|
1302
1528
|
{
|
|
1303
1529
|
open: drawerOpen,
|
|
@@ -1311,15 +1537,15 @@ function SCDrawer({
|
|
|
1311
1537
|
}
|
|
1312
1538
|
}
|
|
1313
1539
|
},
|
|
1314
|
-
/* @__PURE__ */
|
|
1540
|
+
/* @__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) => {
|
|
1315
1541
|
var _a2, _b2, _c, _d, _e, _f;
|
|
1316
|
-
return /* @__PURE__ */
|
|
1542
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
1317
1543
|
import_material7.Box,
|
|
1318
1544
|
{
|
|
1319
1545
|
key: `Stack_${(_a2 = arrayElement.type) != null ? _a2 : ""} ${(_b2 = arrayElement.label) != null ? _b2 : ""}${index}`,
|
|
1320
1546
|
sx: { width: "100%" }
|
|
1321
1547
|
},
|
|
1322
|
-
arrayElement.component ? /* @__PURE__ */
|
|
1548
|
+
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(
|
|
1323
1549
|
SCTextField,
|
|
1324
1550
|
{
|
|
1325
1551
|
title: arrayElement.title,
|
|
@@ -1345,7 +1571,7 @@ function SCDrawer({
|
|
|
1345
1571
|
onBlur: arrayElement.onBlur,
|
|
1346
1572
|
onKeyDown: arrayElement.onKeyDown
|
|
1347
1573
|
}
|
|
1348
|
-
) : arrayElement.type === "textArea" ? /* @__PURE__ */
|
|
1574
|
+
) : arrayElement.type === "textArea" ? /* @__PURE__ */ import_react9.default.createElement(
|
|
1349
1575
|
SCTextArea,
|
|
1350
1576
|
{
|
|
1351
1577
|
title: arrayElement.title,
|
|
@@ -1364,7 +1590,7 @@ function SCDrawer({
|
|
|
1364
1590
|
state: arrayElement.state || "",
|
|
1365
1591
|
onBlur: arrayElement.onBlur
|
|
1366
1592
|
}
|
|
1367
|
-
) : arrayElement.type === "autocomplete" ? /* @__PURE__ */
|
|
1593
|
+
) : arrayElement.type === "autocomplete" ? /* @__PURE__ */ import_react9.default.createElement(
|
|
1368
1594
|
SCAutocomplete,
|
|
1369
1595
|
{
|
|
1370
1596
|
label: arrayElement.label,
|
|
@@ -1382,7 +1608,7 @@ function SCDrawer({
|
|
|
1382
1608
|
state: arrayElement.state || "",
|
|
1383
1609
|
inputChange: arrayElement.inputChange
|
|
1384
1610
|
}
|
|
1385
|
-
) : arrayElement.type === "select" ? /* @__PURE__ */
|
|
1611
|
+
) : arrayElement.type === "select" ? /* @__PURE__ */ import_react9.default.createElement(
|
|
1386
1612
|
SCSelect,
|
|
1387
1613
|
{
|
|
1388
1614
|
label: arrayElement.label,
|
|
@@ -1391,7 +1617,6 @@ function SCDrawer({
|
|
|
1391
1617
|
width: arrayElement.width,
|
|
1392
1618
|
size: arrayElement.size,
|
|
1393
1619
|
variant: arrayElement.variant,
|
|
1394
|
-
deleteType: arrayElement.deleteType,
|
|
1395
1620
|
required: arrayElement.required,
|
|
1396
1621
|
disabled: arrayElement.disabled,
|
|
1397
1622
|
background: arrayElement.background,
|
|
@@ -1399,7 +1624,7 @@ function SCDrawer({
|
|
|
1399
1624
|
setState: arrayElement.setState,
|
|
1400
1625
|
state: arrayElement.state || ""
|
|
1401
1626
|
}
|
|
1402
|
-
) : arrayElement.type === "dateRange" ? /* @__PURE__ */
|
|
1627
|
+
) : arrayElement.type === "dateRange" ? /* @__PURE__ */ import_react9.default.createElement(
|
|
1403
1628
|
SCDateRange,
|
|
1404
1629
|
{
|
|
1405
1630
|
labelDateInitial: arrayElement.labelDateInitial,
|
|
@@ -1412,7 +1637,7 @@ function SCDrawer({
|
|
|
1412
1637
|
}
|
|
1413
1638
|
) : null
|
|
1414
1639
|
);
|
|
1415
|
-
})), actionsA != void 0 && actionsA != false ? Array.isArray(actionsA) && (actionsA == null ? void 0 : actionsA.length) > 0 ? /* @__PURE__ */
|
|
1640
|
+
})), actionsA != void 0 && actionsA != false ? Array.isArray(actionsA) && (actionsA == null ? void 0 : actionsA.length) > 0 ? /* @__PURE__ */ import_react9.default.createElement(
|
|
1416
1641
|
import_Grid23.default,
|
|
1417
1642
|
{
|
|
1418
1643
|
sx: { borderTop: 1, borderColor: "#1018403B" },
|
|
@@ -1424,7 +1649,7 @@ function SCDrawer({
|
|
|
1424
1649
|
justifyContent: actionsA.length > 1 ? "space-between" : !anchor && anchor != "right" ? "flex-end" : "flex-start",
|
|
1425
1650
|
flexDirection: anchor != "right" ? "row-reverse" : "row"
|
|
1426
1651
|
},
|
|
1427
|
-
actionsA.map((btn, index) => /* @__PURE__ */
|
|
1652
|
+
actionsA.map((btn, index) => /* @__PURE__ */ import_react9.default.createElement(
|
|
1428
1653
|
import_material7.Button,
|
|
1429
1654
|
{
|
|
1430
1655
|
key: index,
|
|
@@ -1441,7 +1666,7 @@ function SCDrawer({
|
|
|
1441
1666
|
}
|
|
1442
1667
|
|
|
1443
1668
|
// src/Components/FooterAction/FooterAction.tsx
|
|
1444
|
-
var
|
|
1669
|
+
var import_react10 = __toESM(require("react"), 1);
|
|
1445
1670
|
var import_material8 = require("@mui/material");
|
|
1446
1671
|
var FooterAction = ({
|
|
1447
1672
|
leftContent,
|
|
@@ -1449,44 +1674,44 @@ var FooterAction = ({
|
|
|
1449
1674
|
label,
|
|
1450
1675
|
variant
|
|
1451
1676
|
}) => {
|
|
1452
|
-
return /* @__PURE__ */
|
|
1677
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
1453
1678
|
import_material8.AppBar,
|
|
1454
1679
|
{
|
|
1455
1680
|
color: "inherit",
|
|
1456
1681
|
sx: { position: variant == "float" ? "relative" : "fixed", left: 0, right: "auto", width: "100%", top: "auto", bottom: 0 }
|
|
1457
1682
|
},
|
|
1458
|
-
/* @__PURE__ */
|
|
1683
|
+
/* @__PURE__ */ import_react10.default.createElement(
|
|
1459
1684
|
import_material8.Toolbar,
|
|
1460
1685
|
{
|
|
1461
1686
|
id: "footer-toolbar",
|
|
1462
1687
|
sx: { gap: 1.5, minHeight: "50px !important" }
|
|
1463
1688
|
},
|
|
1464
1689
|
leftContent,
|
|
1465
|
-
/* @__PURE__ */
|
|
1466
|
-
label && /* @__PURE__ */
|
|
1690
|
+
/* @__PURE__ */ import_react10.default.createElement(import_material8.Box, { flexGrow: 1 }),
|
|
1691
|
+
label && /* @__PURE__ */ import_react10.default.createElement(import_material8.Typography, { variant: "body2", color: "text.secondary" }, label),
|
|
1467
1692
|
rightContent
|
|
1468
1693
|
)
|
|
1469
1694
|
);
|
|
1470
1695
|
};
|
|
1471
1696
|
|
|
1472
1697
|
// src/Components/Modal/Helpers/Data.tsx
|
|
1473
|
-
var
|
|
1698
|
+
var import_react11 = __toESM(require("react"), 1);
|
|
1474
1699
|
var import_icons_material5 = require("@mui/icons-material");
|
|
1475
1700
|
var modalStateConfig = {
|
|
1476
1701
|
info: {
|
|
1477
1702
|
color: "info",
|
|
1478
1703
|
defaultDescription: "Se [sincronizar\xE1n] los datos trabajados en modo offline y se [subir\xE1n] a los servidores.",
|
|
1479
|
-
icon: /* @__PURE__ */
|
|
1704
|
+
icon: /* @__PURE__ */ import_react11.default.createElement(import_icons_material5.Info, { color: "info", fontSize: "medium" })
|
|
1480
1705
|
},
|
|
1481
1706
|
delete: {
|
|
1482
1707
|
color: "delete",
|
|
1483
1708
|
defaultDescription: "[Elemento espec\xEDfico] [dejar\xE1 de existir en todos los lugares donde est\xE9 en uso]. Esta acci\xF3n es irreversible.",
|
|
1484
|
-
icon: /* @__PURE__ */
|
|
1709
|
+
icon: /* @__PURE__ */ import_react11.default.createElement(import_icons_material5.Info, { color: "error", fontSize: "medium" })
|
|
1485
1710
|
},
|
|
1486
1711
|
warning: {
|
|
1487
1712
|
color: "warning",
|
|
1488
1713
|
defaultDescription: "Se descartar\xE1 la [creaci\xF3n] y los cambios se perder\xE1n.",
|
|
1489
|
-
icon: /* @__PURE__ */
|
|
1714
|
+
icon: /* @__PURE__ */ import_react11.default.createElement(import_icons_material5.Warning, { color: "warning", fontSize: "medium" })
|
|
1490
1715
|
}
|
|
1491
1716
|
};
|
|
1492
1717
|
|
|
@@ -1516,7 +1741,7 @@ var getButtonColor = (state) => {
|
|
|
1516
1741
|
};
|
|
1517
1742
|
|
|
1518
1743
|
// src/Components/Modal/SCModal.tsx
|
|
1519
|
-
var
|
|
1744
|
+
var import_react12 = __toESM(require("react"), 1);
|
|
1520
1745
|
var import_material9 = require("@mui/material");
|
|
1521
1746
|
var import_icons_material7 = require("@mui/icons-material");
|
|
1522
1747
|
|
|
@@ -1535,34 +1760,31 @@ var SCModal = ({
|
|
|
1535
1760
|
action
|
|
1536
1761
|
}) => {
|
|
1537
1762
|
var _a, _b, _c, _d, _e;
|
|
1538
|
-
const [openModal, setOpenModal] = (0,
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
const
|
|
1545
|
-
const handleClose = (0, import_react11.useCallback)(() => setOpenModal(false), []);
|
|
1546
|
-
const toggleModal = (newOpen) => () => setOpenModal(newOpen);
|
|
1547
|
-
const prevAction = (0, import_react11.useMemo)(
|
|
1763
|
+
const [openModal, setOpenModal] = (0, import_react12.useState)(open != null ? open : false);
|
|
1764
|
+
const handleOpen = import_react12.default.useCallback(() => {
|
|
1765
|
+
setOpenModal((prev) => !prev);
|
|
1766
|
+
}, []);
|
|
1767
|
+
const Icon = (0, import_react12.useMemo)(() => getIconComponent2(buttonModal == null ? void 0 : buttonModal.icon), [buttonModal == null ? void 0 : buttonModal.icon]);
|
|
1768
|
+
const handleClose = (0, import_react12.useCallback)(() => setOpenModal(false), []);
|
|
1769
|
+
const prevAction = (0, import_react12.useMemo)(
|
|
1548
1770
|
() => action != null ? action : [{ text: "Cancelar", fn: handleClose }, { text: "Consultar", fn: () => {
|
|
1549
1771
|
} }],
|
|
1550
1772
|
[action, handleClose]
|
|
1551
1773
|
);
|
|
1552
1774
|
const { icon, defaultDescription } = modalStateConfig[state];
|
|
1553
|
-
return /* @__PURE__ */
|
|
1775
|
+
return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(
|
|
1554
1776
|
import_material9.Button,
|
|
1555
1777
|
{
|
|
1556
1778
|
"data-testid": "test-buttonModal",
|
|
1557
1779
|
color: (_a = buttonModal == null ? void 0 : buttonModal.color) != null ? _a : "primary",
|
|
1558
|
-
onClick:
|
|
1780
|
+
onClick: handleOpen,
|
|
1559
1781
|
variant: (_b = buttonModal == null ? void 0 : buttonModal.variant) != null ? _b : "text",
|
|
1560
1782
|
size: (_c = buttonModal == null ? void 0 : buttonModal.size) != null ? _c : "small",
|
|
1561
|
-
startIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "left" && /* @__PURE__ */
|
|
1562
|
-
endIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "right" && /* @__PURE__ */
|
|
1783
|
+
startIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "left" && /* @__PURE__ */ import_react12.default.createElement(Icon, null),
|
|
1784
|
+
endIcon: (buttonModal == null ? void 0 : buttonModal.iconPosition) === "right" && /* @__PURE__ */ import_react12.default.createElement(Icon, null)
|
|
1563
1785
|
},
|
|
1564
1786
|
capitalize((_d = buttonModal == null ? void 0 : buttonModal.text) != null ? _d : "filtrar")
|
|
1565
|
-
), /* @__PURE__ */
|
|
1787
|
+
), /* @__PURE__ */ import_react12.default.createElement(import_material9.Modal, { open: openModal, onClose: handleOpen, sx: { boxShadow: 8 } }, /* @__PURE__ */ import_react12.default.createElement(
|
|
1566
1788
|
import_material9.Box,
|
|
1567
1789
|
{
|
|
1568
1790
|
sx: {
|
|
@@ -1576,9 +1798,9 @@ var SCModal = ({
|
|
|
1576
1798
|
boxShadow: 24
|
|
1577
1799
|
}
|
|
1578
1800
|
},
|
|
1579
|
-
/* @__PURE__ */
|
|
1580
|
-
/* @__PURE__ */
|
|
1581
|
-
action && /* @__PURE__ */
|
|
1801
|
+
/* @__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" }))),
|
|
1802
|
+
/* @__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)),
|
|
1803
|
+
action && /* @__PURE__ */ import_react12.default.createElement(
|
|
1582
1804
|
import_material9.Stack,
|
|
1583
1805
|
{
|
|
1584
1806
|
id: "Action",
|
|
@@ -1589,7 +1811,7 @@ var SCModal = ({
|
|
|
1589
1811
|
bgcolor: "grey.50",
|
|
1590
1812
|
sx: { borderRadius: 1 }
|
|
1591
1813
|
},
|
|
1592
|
-
/* @__PURE__ */
|
|
1814
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
1593
1815
|
import_material9.Button,
|
|
1594
1816
|
{
|
|
1595
1817
|
color: "inherit",
|
|
@@ -1599,7 +1821,7 @@ var SCModal = ({
|
|
|
1599
1821
|
},
|
|
1600
1822
|
capitalize("cancelar")
|
|
1601
1823
|
),
|
|
1602
|
-
/* @__PURE__ */
|
|
1824
|
+
/* @__PURE__ */ import_react12.default.createElement(
|
|
1603
1825
|
import_material9.Button,
|
|
1604
1826
|
{
|
|
1605
1827
|
"data-testid": "test-aceptar",
|
|
@@ -1616,32 +1838,32 @@ var SCModal = ({
|
|
|
1616
1838
|
};
|
|
1617
1839
|
|
|
1618
1840
|
// src/Components/MultiSelect/MultiSelect.tsx
|
|
1619
|
-
var
|
|
1841
|
+
var import_react15 = __toESM(require("react"), 1);
|
|
1620
1842
|
var import_material10 = require("@mui/material");
|
|
1621
1843
|
var import_icons_material9 = require("@mui/icons-material");
|
|
1622
1844
|
|
|
1623
1845
|
// src/Components/MultiSelect/helpers/useHandlers.tsx
|
|
1624
|
-
var
|
|
1846
|
+
var import_react13 = require("react");
|
|
1625
1847
|
function useMultiSelectHandlers() {
|
|
1626
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
1627
|
-
const [open, setOpen] = (0,
|
|
1628
|
-
const [selectedItems, setSelectedItems] = (0,
|
|
1629
|
-
const [filterValue, setFilterValue] = (0,
|
|
1630
|
-
const handleOpen = (0,
|
|
1848
|
+
const [anchorEl, setAnchorEl] = (0, import_react13.useState)(null);
|
|
1849
|
+
const [open, setOpen] = (0, import_react13.useState)(false);
|
|
1850
|
+
const [selectedItems, setSelectedItems] = (0, import_react13.useState)([]);
|
|
1851
|
+
const [filterValue, setFilterValue] = (0, import_react13.useState)("");
|
|
1852
|
+
const handleOpen = (0, import_react13.useCallback)((e) => {
|
|
1631
1853
|
setAnchorEl(e.currentTarget);
|
|
1632
1854
|
setOpen(true);
|
|
1633
1855
|
}, []);
|
|
1634
|
-
const handleClose = (0,
|
|
1856
|
+
const handleClose = (0, import_react13.useCallback)(() => {
|
|
1635
1857
|
setAnchorEl(null);
|
|
1636
1858
|
setOpen(false);
|
|
1637
1859
|
}, []);
|
|
1638
|
-
const handleFilterChange = (0,
|
|
1860
|
+
const handleFilterChange = (0, import_react13.useCallback)(
|
|
1639
1861
|
(e) => {
|
|
1640
1862
|
setFilterValue(e.target.value);
|
|
1641
1863
|
},
|
|
1642
1864
|
[]
|
|
1643
1865
|
);
|
|
1644
|
-
const handleCheckboxToggle = (0,
|
|
1866
|
+
const handleCheckboxToggle = (0, import_react13.useCallback)((item) => {
|
|
1645
1867
|
setSelectedItems(
|
|
1646
1868
|
(prev) => prev.includes(item) ? prev.filter((i) => i !== item) : [...prev, item]
|
|
1647
1869
|
);
|
|
@@ -1668,15 +1890,15 @@ function getIconMultiSelect(name) {
|
|
|
1668
1890
|
}
|
|
1669
1891
|
|
|
1670
1892
|
// src/Components/MultiSelect/helpers/useFilteredItems.tsx
|
|
1671
|
-
var
|
|
1893
|
+
var import_react14 = require("react");
|
|
1672
1894
|
function useFilteredItems(items, filterValue, getItemLabel, selectedItems) {
|
|
1673
|
-
const filteredItems = (0,
|
|
1895
|
+
const filteredItems = (0, import_react14.useMemo)(
|
|
1674
1896
|
() => items.filter(
|
|
1675
1897
|
(item) => getItemLabel(item).toLowerCase().includes(filterValue.toLowerCase())
|
|
1676
1898
|
),
|
|
1677
1899
|
[items, filterValue, getItemLabel]
|
|
1678
1900
|
);
|
|
1679
|
-
const sortedItems = (0,
|
|
1901
|
+
const sortedItems = (0, import_react14.useMemo)(() => {
|
|
1680
1902
|
return [
|
|
1681
1903
|
...filteredItems.filter((item) => selectedItems.includes(item)),
|
|
1682
1904
|
...filteredItems.filter((item) => !selectedItems.includes(item))
|
|
@@ -1710,16 +1932,16 @@ function MultiSelect({
|
|
|
1710
1932
|
handleCheckboxToggle,
|
|
1711
1933
|
setOpen
|
|
1712
1934
|
} = useMultiSelectHandlers();
|
|
1713
|
-
(0,
|
|
1935
|
+
(0, import_react15.useEffect)(() => {
|
|
1714
1936
|
if (open !== void 0) {
|
|
1715
1937
|
setOpen(open);
|
|
1716
1938
|
}
|
|
1717
1939
|
}, [open, setOpen]);
|
|
1718
|
-
(0,
|
|
1940
|
+
(0, import_react15.useEffect)(() => {
|
|
1719
1941
|
setSelectedItems([]);
|
|
1720
1942
|
}, [items, setSelectedItems]);
|
|
1721
1943
|
const { filteredItems, sortedItems } = useFilteredItems(items, filterValue, getItemLabel, selectedItems);
|
|
1722
|
-
const Icon = (0,
|
|
1944
|
+
const Icon = (0, import_react15.useMemo)(() => {
|
|
1723
1945
|
var _a2;
|
|
1724
1946
|
return getIconMultiSelect((_a2 = button == null ? void 0 : button.icon) != null ? _a2 : "FilterListOutlined");
|
|
1725
1947
|
}, [button == null ? void 0 : button.icon]);
|
|
@@ -1733,7 +1955,7 @@ function MultiSelect({
|
|
|
1733
1955
|
{ text: "Aplicar", fn: () => {
|
|
1734
1956
|
} }
|
|
1735
1957
|
];
|
|
1736
|
-
return /* @__PURE__ */
|
|
1958
|
+
return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(
|
|
1737
1959
|
import_material10.Button,
|
|
1738
1960
|
{
|
|
1739
1961
|
"test-id": "multiselect-button",
|
|
@@ -1741,11 +1963,11 @@ function MultiSelect({
|
|
|
1741
1963
|
onClick: handleOpen,
|
|
1742
1964
|
variant: (_b = button == null ? void 0 : button.variant) != null ? _b : "text",
|
|
1743
1965
|
size: "small",
|
|
1744
|
-
startIcon: (button == null ? void 0 : button.iconPosition) === "left" || !(button == null ? void 0 : button.iconPosition) ? /* @__PURE__ */
|
|
1745
|
-
endIcon: (button == null ? void 0 : button.iconPosition) === "right" ? /* @__PURE__ */
|
|
1966
|
+
startIcon: (button == null ? void 0 : button.iconPosition) === "left" || !(button == null ? void 0 : button.iconPosition) ? /* @__PURE__ */ import_react15.default.createElement(Icon, null) : null,
|
|
1967
|
+
endIcon: (button == null ? void 0 : button.iconPosition) === "right" ? /* @__PURE__ */ import_react15.default.createElement(Icon, null) : null
|
|
1746
1968
|
},
|
|
1747
1969
|
capitalize(textButton != null ? textButton : "MultiSelect")
|
|
1748
|
-
), /* @__PURE__ */
|
|
1970
|
+
), /* @__PURE__ */ import_react15.default.createElement(
|
|
1749
1971
|
import_material10.Popover,
|
|
1750
1972
|
{
|
|
1751
1973
|
elevation: 8,
|
|
@@ -1754,7 +1976,7 @@ function MultiSelect({
|
|
|
1754
1976
|
open: openMultiselect,
|
|
1755
1977
|
onClose: () => setOpen(false)
|
|
1756
1978
|
},
|
|
1757
|
-
/* @__PURE__ */
|
|
1979
|
+
/* @__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(
|
|
1758
1980
|
import_material10.TextField,
|
|
1759
1981
|
{
|
|
1760
1982
|
"data-testid": "multiselect-input",
|
|
@@ -1766,18 +1988,18 @@ function MultiSelect({
|
|
|
1766
1988
|
onChange: handleFilterChange,
|
|
1767
1989
|
slotProps: {
|
|
1768
1990
|
input: {
|
|
1769
|
-
endAdornment: /* @__PURE__ */
|
|
1991
|
+
endAdornment: /* @__PURE__ */ import_react15.default.createElement(import_material10.InputAdornment, { position: "end" }, /* @__PURE__ */ import_react15.default.createElement(import_icons_material9.SearchOutlined, { fontSize: "small" }))
|
|
1770
1992
|
}
|
|
1771
1993
|
}
|
|
1772
1994
|
}
|
|
1773
|
-
))), /* @__PURE__ */
|
|
1995
|
+
))), /* @__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(
|
|
1774
1996
|
import_material10.MenuItem,
|
|
1775
1997
|
{
|
|
1776
1998
|
key: getItemLabel(item),
|
|
1777
1999
|
dense,
|
|
1778
2000
|
onClick: () => handleCheckboxToggle(item)
|
|
1779
2001
|
},
|
|
1780
|
-
/* @__PURE__ */
|
|
2002
|
+
/* @__PURE__ */ import_react15.default.createElement(import_material10.ListItemIcon, null, /* @__PURE__ */ import_react15.default.createElement(
|
|
1781
2003
|
import_material10.Checkbox,
|
|
1782
2004
|
{
|
|
1783
2005
|
checked: selectedItems.includes(item),
|
|
@@ -1785,9 +2007,9 @@ function MultiSelect({
|
|
|
1785
2007
|
}
|
|
1786
2008
|
)),
|
|
1787
2009
|
getItemLabel(item)
|
|
1788
|
-
)) : /* @__PURE__ */
|
|
2010
|
+
)) : /* @__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) => {
|
|
1789
2011
|
var _a2;
|
|
1790
|
-
return /* @__PURE__ */
|
|
2012
|
+
return /* @__PURE__ */ import_react15.default.createElement(
|
|
1791
2013
|
import_material10.Button,
|
|
1792
2014
|
{
|
|
1793
2015
|
key: index,
|
|
@@ -1803,7 +2025,7 @@ function MultiSelect({
|
|
|
1803
2025
|
}
|
|
1804
2026
|
|
|
1805
2027
|
// src/Components/PageHeader/PageHeader.tsx
|
|
1806
|
-
var
|
|
2028
|
+
var import_react16 = __toESM(require("react"), 1);
|
|
1807
2029
|
var import_material11 = require("@mui/material");
|
|
1808
2030
|
var PageHeader = ({
|
|
1809
2031
|
title,
|
|
@@ -1813,7 +2035,7 @@ var PageHeader = ({
|
|
|
1813
2035
|
fixed,
|
|
1814
2036
|
shadow = true
|
|
1815
2037
|
}) => {
|
|
1816
|
-
return /* @__PURE__ */
|
|
2038
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
1817
2039
|
import_material11.Stack,
|
|
1818
2040
|
{
|
|
1819
2041
|
"data-testid": "main-container",
|
|
@@ -1825,12 +2047,12 @@ var PageHeader = ({
|
|
|
1825
2047
|
zIndex: 10,
|
|
1826
2048
|
sx: { boxShadow: shadow ? (theme) => theme.shadows[1] : "none" }
|
|
1827
2049
|
},
|
|
1828
|
-
/* @__PURE__ */
|
|
2050
|
+
/* @__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))
|
|
1829
2051
|
);
|
|
1830
2052
|
};
|
|
1831
2053
|
|
|
1832
2054
|
// src/Components/SCCalendarSwipeable.tsx
|
|
1833
|
-
var
|
|
2055
|
+
var import_react17 = __toESM(require("react"), 1);
|
|
1834
2056
|
var import_material12 = require("@mui/material");
|
|
1835
2057
|
var import_Grid24 = __toESM(require("@mui/material/Grid2"), 1);
|
|
1836
2058
|
var import_AdapterDateFns = require("@mui/x-date-pickers/AdapterDateFns");
|
|
@@ -1849,14 +2071,14 @@ var SCCalendarSwipeable = ({
|
|
|
1849
2071
|
state
|
|
1850
2072
|
}) => {
|
|
1851
2073
|
let convertFecha;
|
|
1852
|
-
const [fecha, setFecha] = (0,
|
|
1853
|
-
const [fechaSeleccionada, setFechaSeleccionada] = (0,
|
|
1854
|
-
const [stateVal, setstateVal] =
|
|
1855
|
-
const [openCalendar, setOpenCalendar] =
|
|
2074
|
+
const [fecha, setFecha] = (0, import_react17.useState)(/* @__PURE__ */ new Date());
|
|
2075
|
+
const [fechaSeleccionada, setFechaSeleccionada] = (0, import_react17.useState)();
|
|
2076
|
+
const [stateVal, setstateVal] = import_react17.default.useState(/* @__PURE__ */ new Date());
|
|
2077
|
+
const [openCalendar, setOpenCalendar] = import_react17.default.useState(false);
|
|
1856
2078
|
const hoy = /* @__PURE__ */ new Date();
|
|
1857
2079
|
const inicioSemana = (0, import_date_fns.startOfWeek)(fecha, { weekStartsOn: 0 });
|
|
1858
2080
|
const diasSemana = Array.from({ length: 7 }, (_, i) => (0, import_date_fns.addDays)(inicioSemana, i));
|
|
1859
|
-
|
|
2081
|
+
import_react17.default.useEffect(() => {
|
|
1860
2082
|
if (fecha != null) {
|
|
1861
2083
|
handleConvertFecha(fecha);
|
|
1862
2084
|
}
|
|
@@ -1875,11 +2097,11 @@ var SCCalendarSwipeable = ({
|
|
|
1875
2097
|
setOpenCalendar(newOpen);
|
|
1876
2098
|
};
|
|
1877
2099
|
const locale = __spreadValues({}, import_locale.es);
|
|
1878
|
-
return /* @__PURE__ */
|
|
2100
|
+
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: {
|
|
1879
2101
|
justifyContent: "space-between",
|
|
1880
2102
|
padding: "12px 0px",
|
|
1881
2103
|
background: "transparent"
|
|
1882
|
-
} }, diasSemana.map((dia) => /* @__PURE__ */
|
|
2104
|
+
} }, 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(
|
|
1883
2105
|
import_material12.Box,
|
|
1884
2106
|
{
|
|
1885
2107
|
onClick: () => setFecha(dia),
|
|
@@ -1895,8 +2117,8 @@ var SCCalendarSwipeable = ({
|
|
|
1895
2117
|
//height: '36px',
|
|
1896
2118
|
}
|
|
1897
2119
|
},
|
|
1898
|
-
/* @__PURE__ */
|
|
1899
|
-
)))), /* @__PURE__ */
|
|
2120
|
+
/* @__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"))
|
|
2121
|
+
)))), /* @__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(
|
|
1900
2122
|
import_StaticDatePicker.StaticDatePicker,
|
|
1901
2123
|
{
|
|
1902
2124
|
orientation: "landscape",
|
|
@@ -1906,17 +2128,17 @@ var SCCalendarSwipeable = ({
|
|
|
1906
2128
|
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" } },
|
|
1907
2129
|
onChange: (newValue) => setFecha(newValue)
|
|
1908
2130
|
}
|
|
1909
|
-
), /* @__PURE__ */
|
|
2131
|
+
), /* @__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))))));
|
|
1910
2132
|
};
|
|
1911
2133
|
|
|
1912
2134
|
// src/Components/SCDataGrid.tsx
|
|
1913
|
-
var
|
|
2135
|
+
var import_react18 = __toESM(require("react"), 1);
|
|
1914
2136
|
var import_x_data_grid_pro = require("@mui/x-data-grid-pro");
|
|
1915
2137
|
var import_x_license_pro2 = require("@mui/x-license-pro");
|
|
1916
2138
|
var import_KeyboardArrowDown = __toESM(require("@mui/icons-material/KeyboardArrowDown"), 1);
|
|
1917
2139
|
var import_KeyboardArrowUp = __toESM(require("@mui/icons-material/KeyboardArrowUp"), 1);
|
|
1918
2140
|
var import_styles = require("@mui/material/styles");
|
|
1919
|
-
|
|
2141
|
+
function SCDataGridInitial({ data, columns, groupColumns, rowsTable, checkboxSelection, width, maxHeight, density }) {
|
|
1920
2142
|
import_x_license_pro2.LicenseInfo.setLicenseKey(
|
|
1921
2143
|
"77d49a57fbc5f4af35ddb05c5f1742e0Tz0xMTI3MjgsRT0xNzc4MzcxMTk5MDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1RMy0yMDI0LEtWPTI="
|
|
1922
2144
|
);
|
|
@@ -1927,45 +2149,80 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
1927
2149
|
return Math.floor(Math.random() * 1e6);
|
|
1928
2150
|
}
|
|
1929
2151
|
const getTreeDataPaths = (row) => {
|
|
2152
|
+
var _a, _b, _c;
|
|
2153
|
+
const group1Value = groupColumns && ((_a = groupColumns(row)) == null ? void 0 : _a.valueGroup1);
|
|
2154
|
+
const group2Value = groupColumns && ((_b = groupColumns(row)) == null ? void 0 : _b.valueGroup2);
|
|
2155
|
+
const fieldValue = groupColumns && ((_c = groupColumns(row)) == null ? void 0 : _c.fieldFirstColumn);
|
|
1930
2156
|
return [
|
|
1931
|
-
|
|
1932
|
-
...
|
|
1933
|
-
`${
|
|
2157
|
+
String(group1Value || ""),
|
|
2158
|
+
...group2Value ? [String(group2Value)] : [],
|
|
2159
|
+
`${String(fieldValue || "")}/${generateRandomId()}`
|
|
1934
2160
|
];
|
|
1935
2161
|
};
|
|
1936
2162
|
const groupingColDefs = {
|
|
1937
2163
|
field: "grouping",
|
|
1938
|
-
headerName: groupColumns
|
|
2164
|
+
headerName: groupColumns ? groupColumns(data[0]).headerNameFirstColumn : "Agrupador",
|
|
1939
2165
|
renderCell: (params) => {
|
|
1940
|
-
var _a;
|
|
2166
|
+
var _a, _b;
|
|
1941
2167
|
let label = params.value.toString().includes("/") ? params.value.split("/")[0].toString() : params.value.toString();
|
|
1942
|
-
|
|
1943
|
-
if (groupColumns
|
|
2168
|
+
let maxDepth = 0;
|
|
2169
|
+
if (groupColumns && data.length > 0) {
|
|
2170
|
+
const sampleItem = groupColumns(data[0]);
|
|
2171
|
+
if (sampleItem.valueGroup1) maxDepth++;
|
|
2172
|
+
if (sampleItem.valueGroup2) maxDepth++;
|
|
2173
|
+
maxDepth = Math.max(0, maxDepth - 1);
|
|
2174
|
+
}
|
|
2175
|
+
if (groupColumns) {
|
|
1944
2176
|
if (params.rowNode.depth === 0) {
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
2177
|
+
let customLabel = label;
|
|
2178
|
+
if (groupColumns) {
|
|
2179
|
+
const originalItem = data.find(
|
|
2180
|
+
(item) => {
|
|
2181
|
+
var _a2;
|
|
2182
|
+
return String((_a2 = groupColumns(item)) == null ? void 0 : _a2.valueGroup1) === label;
|
|
2183
|
+
}
|
|
2184
|
+
);
|
|
2185
|
+
if (originalItem) {
|
|
2186
|
+
const itemValue = groupColumns(originalItem);
|
|
2187
|
+
customLabel = itemValue.textGroup1 || label;
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
const subgroup1 = arrayRows.filter((r) => {
|
|
2191
|
+
var _a2;
|
|
2192
|
+
return groupColumns && String((_a2 = groupColumns(r)) == null ? void 0 : _a2.valueGroup1) === label;
|
|
2193
|
+
}).map((r) => {
|
|
2194
|
+
var _a2;
|
|
2195
|
+
return groupColumns && String((_a2 = groupColumns(r)) == null ? void 0 : _a2.valueGroup2);
|
|
2196
|
+
});
|
|
1951
2197
|
const groupedDataLength1 = subgroup1.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual);
|
|
1952
|
-
label = `${
|
|
1953
|
-
} else if (groupColumns
|
|
1954
|
-
const labelGrouping1 = (
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
2198
|
+
label = `${customLabel} (${groupedDataLength1.length})`;
|
|
2199
|
+
} else if (((_a = groupColumns(data[0])) == null ? void 0 : _a.valueGroup2) && params.rowNode.depth === 1) {
|
|
2200
|
+
const labelGrouping1 = (_b = params.api.getRowNode(params.rowNode.parent)) == null ? void 0 : _b.groupingKey.toString();
|
|
2201
|
+
let customLabel = label;
|
|
2202
|
+
if (groupColumns) {
|
|
2203
|
+
const originalItem = data.find(
|
|
2204
|
+
(item) => {
|
|
2205
|
+
var _a2;
|
|
2206
|
+
return String((_a2 = groupColumns(item)) == null ? void 0 : _a2.valueGroup2) === label;
|
|
2207
|
+
}
|
|
2208
|
+
);
|
|
2209
|
+
if (originalItem) {
|
|
2210
|
+
const itemValue = groupColumns(originalItem);
|
|
2211
|
+
customLabel = itemValue.textGroup2 || label;
|
|
2212
|
+
}
|
|
2213
|
+
}
|
|
1960
2214
|
const groupedDataLength2 = arrayRows.filter(
|
|
1961
|
-
(r) =>
|
|
2215
|
+
(r) => {
|
|
2216
|
+
var _a2, _b2;
|
|
2217
|
+
return groupColumns && String((_a2 = groupColumns(r)) == null ? void 0 : _a2.valueGroup1) === labelGrouping1 && groupColumns && String((_b2 = groupColumns(r)) == null ? void 0 : _b2.valueGroup2) === label;
|
|
2218
|
+
}
|
|
1962
2219
|
).length;
|
|
1963
|
-
label = `${
|
|
2220
|
+
label = `${customLabel} (${groupedDataLength2})`;
|
|
1964
2221
|
} else {
|
|
1965
2222
|
label = label;
|
|
1966
2223
|
}
|
|
1967
2224
|
}
|
|
1968
|
-
return /* @__PURE__ */
|
|
2225
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
1969
2226
|
"div",
|
|
1970
2227
|
{
|
|
1971
2228
|
style: {
|
|
@@ -1982,7 +2239,7 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
1982
2239
|
fontWeight: params.rowNode.type == "group" ? "400" : "300"
|
|
1983
2240
|
}
|
|
1984
2241
|
},
|
|
1985
|
-
params.rowNode.type === "group" && /* @__PURE__ */
|
|
2242
|
+
params.rowNode.type === "group" && /* @__PURE__ */ import_react18.default.createElement(
|
|
1986
2243
|
"span",
|
|
1987
2244
|
{
|
|
1988
2245
|
style: {
|
|
@@ -1995,25 +2252,32 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
1995
2252
|
params.api.setRowChildrenExpansion(params.id, !params.rowNode.childrenExpanded);
|
|
1996
2253
|
}
|
|
1997
2254
|
},
|
|
1998
|
-
params.rowNode.childrenExpanded ? /* @__PURE__ */
|
|
2255
|
+
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" })
|
|
1999
2256
|
),
|
|
2000
2257
|
label
|
|
2001
2258
|
);
|
|
2002
2259
|
},
|
|
2003
2260
|
colSpan: (params) => {
|
|
2261
|
+
var _a, _b;
|
|
2004
2262
|
const value = String(params);
|
|
2005
|
-
const fieldGrouping1 = groupColumns[0]
|
|
2006
|
-
const fieldGrouping2 = groupColumns
|
|
2263
|
+
const fieldGrouping1 = groupColumns ? (_a = groupColumns(data[0])) == null ? void 0 : _a.valueGroup1 : void 0;
|
|
2264
|
+
const fieldGrouping2 = groupColumns ? (_b = groupColumns(data[0])) == null ? void 0 : _b.valueGroup2 : void 0;
|
|
2007
2265
|
let agrupado1 = false;
|
|
2008
2266
|
let agrupado2 = false;
|
|
2009
2267
|
if (fieldGrouping1 != void 0) {
|
|
2010
2268
|
agrupado1 = arrayRows.some(
|
|
2011
|
-
(row) =>
|
|
2269
|
+
(row) => {
|
|
2270
|
+
var _a2;
|
|
2271
|
+
return groupColumns && String((_a2 = groupColumns(row)) == null ? void 0 : _a2.valueGroup1) === value;
|
|
2272
|
+
}
|
|
2012
2273
|
);
|
|
2013
2274
|
}
|
|
2014
2275
|
if (fieldGrouping2 != void 0) {
|
|
2015
2276
|
agrupado2 = arrayRows.some(
|
|
2016
|
-
(row) =>
|
|
2277
|
+
(row) => {
|
|
2278
|
+
var _a2;
|
|
2279
|
+
return groupColumns && String((_a2 = groupColumns(row)) == null ? void 0 : _a2.valueGroup2) === value;
|
|
2280
|
+
}
|
|
2017
2281
|
);
|
|
2018
2282
|
}
|
|
2019
2283
|
if (agrupado1 || agrupado2) {
|
|
@@ -2030,11 +2294,11 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
2030
2294
|
let styleRowHeight = density == "compact" ? 32 : density == "standard" ? 28 : density == "comfortable" ? 36 : 32;
|
|
2031
2295
|
let rows = rowsTable ? rowsTable : validationTreeData != false ? parseInt(data.length.toString()) : data.length < 10 ? parseInt(data.length.toString()) : 10;
|
|
2032
2296
|
let validationGroupingColDef = groupingColDefs || {};
|
|
2033
|
-
const [groupDataLenght, setGroupDataLengh] = (0,
|
|
2034
|
-
const [pageSize, setPageSize] = (0,
|
|
2035
|
-
const [arrayRows, setArrayRows] = (0,
|
|
2036
|
-
const [selectionModel, setSelectionModel] = (0,
|
|
2037
|
-
(0,
|
|
2297
|
+
const [groupDataLenght, setGroupDataLengh] = (0, import_react18.useState)(0);
|
|
2298
|
+
const [pageSize, setPageSize] = (0, import_react18.useState)(rows);
|
|
2299
|
+
const [arrayRows, setArrayRows] = (0, import_react18.useState)([]);
|
|
2300
|
+
const [selectionModel, setSelectionModel] = (0, import_react18.useState)([]);
|
|
2301
|
+
(0, import_react18.useEffect)(() => {
|
|
2038
2302
|
if ((data == null ? void 0 : data.length) > 0) {
|
|
2039
2303
|
dataConvertRows(data, void 0);
|
|
2040
2304
|
}
|
|
@@ -2090,7 +2354,7 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
2090
2354
|
setSelectionModel([...newSelection]);
|
|
2091
2355
|
}
|
|
2092
2356
|
};
|
|
2093
|
-
return /* @__PURE__ */
|
|
2357
|
+
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(
|
|
2094
2358
|
import_x_data_grid_pro.DataGridPro,
|
|
2095
2359
|
{
|
|
2096
2360
|
apiRef,
|
|
@@ -2124,7 +2388,6 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
2124
2388
|
},
|
|
2125
2389
|
sx: {
|
|
2126
2390
|
maxHeight: maxHeight ? `${maxHeight}px` : "none",
|
|
2127
|
-
//overflow: 'auto',
|
|
2128
2391
|
"& .MuiDataGrid-filler": {
|
|
2129
2392
|
display: "none !important"
|
|
2130
2393
|
},
|
|
@@ -2154,14 +2417,14 @@ var SCDataGridInitial = ({ data, columns, groupColumns, rowsTable, checkboxSelec
|
|
|
2154
2417
|
}
|
|
2155
2418
|
}
|
|
2156
2419
|
))));
|
|
2157
|
-
}
|
|
2158
|
-
var SCDataGrid =
|
|
2159
|
-
const isEqual = prevProps.
|
|
2420
|
+
}
|
|
2421
|
+
var SCDataGrid = import_react18.default.memo(SCDataGridInitial, (prevProps, nextProps) => {
|
|
2422
|
+
const isEqual = prevProps.rowsTable === nextProps.rowsTable && prevProps.checkboxSelection === nextProps.checkboxSelection && prevProps.width === nextProps.width && prevProps.maxHeight === nextProps.maxHeight && prevProps.density === nextProps.density;
|
|
2160
2423
|
return isEqual;
|
|
2161
2424
|
});
|
|
2162
2425
|
|
|
2163
2426
|
// src/Components/EmptyState/EmptyState.tsx
|
|
2164
|
-
var
|
|
2427
|
+
var import_react19 = __toESM(require("react"), 1);
|
|
2165
2428
|
var import_material13 = require("@mui/material");
|
|
2166
2429
|
|
|
2167
2430
|
// src/assets/ImgEmptyState/create.svg
|
|
@@ -2189,7 +2452,7 @@ var DefaultIcon = ({
|
|
|
2189
2452
|
}) => {
|
|
2190
2453
|
const imageUrl = EmptyStateImageUrls[state];
|
|
2191
2454
|
const iconSize = size === "small" ? { width: "40px", height: "40px" } : { width: "60px", height: "60px" };
|
|
2192
|
-
return /* @__PURE__ */
|
|
2455
|
+
return /* @__PURE__ */ import_react19.default.createElement("img", { src: imageUrl, alt: state, style: iconSize });
|
|
2193
2456
|
};
|
|
2194
2457
|
var EmptyState = ({
|
|
2195
2458
|
state = "create",
|
|
@@ -2198,11 +2461,11 @@ var EmptyState = ({
|
|
|
2198
2461
|
subtitle,
|
|
2199
2462
|
actions,
|
|
2200
2463
|
containerHeight = "100vh",
|
|
2201
|
-
icon = /* @__PURE__ */
|
|
2464
|
+
icon = /* @__PURE__ */ import_react19.default.createElement(DefaultIcon, { state, size })
|
|
2202
2465
|
}) => {
|
|
2203
2466
|
const titleVariant = size === "small" ? "subtitle2" : "h6";
|
|
2204
2467
|
const subtitleVariant = size === "small" ? "caption" : "body1";
|
|
2205
|
-
return /* @__PURE__ */
|
|
2468
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
2206
2469
|
import_material13.Stack,
|
|
2207
2470
|
{
|
|
2208
2471
|
alignItems: "center",
|
|
@@ -2211,8 +2474,8 @@ var EmptyState = ({
|
|
|
2211
2474
|
height: containerHeight,
|
|
2212
2475
|
"data-testid": "empty-state-container"
|
|
2213
2476
|
},
|
|
2214
|
-
icon && /* @__PURE__ */
|
|
2215
|
-
/* @__PURE__ */
|
|
2477
|
+
icon && /* @__PURE__ */ import_react19.default.createElement(import_material13.Stack, null, icon),
|
|
2478
|
+
/* @__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(
|
|
2216
2479
|
import_material13.Typography,
|
|
2217
2480
|
{
|
|
2218
2481
|
variant: subtitleVariant,
|
|
@@ -2220,7 +2483,7 @@ var EmptyState = ({
|
|
|
2220
2483
|
color: "text.secondary"
|
|
2221
2484
|
},
|
|
2222
2485
|
subtitle
|
|
2223
|
-
), actions && (actions == null ? void 0 : actions.length) > 0 && /* @__PURE__ */
|
|
2486
|
+
), actions && (actions == null ? void 0 : actions.length) > 0 && /* @__PURE__ */ import_react19.default.createElement(
|
|
2224
2487
|
import_material13.Stack,
|
|
2225
2488
|
{
|
|
2226
2489
|
direction: "row",
|
|
@@ -2230,15 +2493,15 @@ var EmptyState = ({
|
|
|
2230
2493
|
},
|
|
2231
2494
|
actions.map((action, index) => {
|
|
2232
2495
|
var _a, _b, _c, _d;
|
|
2233
|
-
return /* @__PURE__ */
|
|
2496
|
+
return /* @__PURE__ */ import_react19.default.createElement(
|
|
2234
2497
|
import_material13.Button,
|
|
2235
2498
|
{
|
|
2236
2499
|
key: index,
|
|
2237
2500
|
color: (_a = action.color) != null ? _a : "primary",
|
|
2238
2501
|
variant: (_b = action.variant) != null ? _b : "text",
|
|
2239
2502
|
size: (_c = action.size) != null ? _c : "small",
|
|
2240
|
-
startIcon: action.icon && action.iconPosition === "left" ? /* @__PURE__ */
|
|
2241
|
-
endIcon: action.icon && action.iconPosition === "right" ? /* @__PURE__ */
|
|
2503
|
+
startIcon: action.icon && action.iconPosition === "left" ? /* @__PURE__ */ import_react19.default.createElement("img", { src: action.icon, alt: "icon" }) : void 0,
|
|
2504
|
+
endIcon: action.icon && action.iconPosition === "right" ? /* @__PURE__ */ import_react19.default.createElement("img", { src: action.icon, alt: "icon" }) : void 0,
|
|
2242
2505
|
onClick: action.onClick
|
|
2243
2506
|
},
|
|
2244
2507
|
capitalize((_d = action.text) != null ? _d : "action")
|
|
@@ -2249,7 +2512,7 @@ var EmptyState = ({
|
|
|
2249
2512
|
};
|
|
2250
2513
|
|
|
2251
2514
|
// src/Components/SCDialog.tsx
|
|
2252
|
-
var
|
|
2515
|
+
var import_react20 = __toESM(require("react"), 1);
|
|
2253
2516
|
var import_material14 = require("@mui/material");
|
|
2254
2517
|
var import_Grid25 = __toESM(require("@mui/material/Grid2"), 1);
|
|
2255
2518
|
var import_Close2 = __toESM(require("@mui/icons-material/Close"), 1);
|
|
@@ -2259,8 +2522,8 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2259
2522
|
let iconTitleValidation = "";
|
|
2260
2523
|
let IconTitle;
|
|
2261
2524
|
let ButtonIcon;
|
|
2262
|
-
const [open, setOpen] = (0,
|
|
2263
|
-
(0,
|
|
2525
|
+
const [open, setOpen] = (0, import_react20.useState)(show);
|
|
2526
|
+
(0, import_react20.useEffect)(() => {
|
|
2264
2527
|
if (show) {
|
|
2265
2528
|
handleOpen();
|
|
2266
2529
|
} else {
|
|
@@ -2285,7 +2548,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2285
2548
|
});
|
|
2286
2549
|
if (iconTitle) {
|
|
2287
2550
|
if (Muicon5[iconTitle] == void 0) {
|
|
2288
|
-
if (iconTitle &&
|
|
2551
|
+
if (iconTitle && import_react20.default.isValidElement(iconTitle) && iconTitle.type == void 0) {
|
|
2289
2552
|
iconTitleValidation = "image";
|
|
2290
2553
|
IconTitle = iconTitle;
|
|
2291
2554
|
} else {
|
|
@@ -2310,8 +2573,8 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2310
2573
|
}
|
|
2311
2574
|
};
|
|
2312
2575
|
const dialogActions = actions != null ? actions : [{ text: "Cerrar", fn: handleClose }];
|
|
2313
|
-
content = content != null ? content : { component: /* @__PURE__ */
|
|
2314
|
-
return /* @__PURE__ */
|
|
2576
|
+
content = content != null ? content : { component: /* @__PURE__ */ import_react20.default.createElement(import_material14.Box, null, " Aqui va el contenido ") };
|
|
2577
|
+
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(
|
|
2315
2578
|
import_material14.Dialog,
|
|
2316
2579
|
{
|
|
2317
2580
|
"data-testid": "dialog-element",
|
|
@@ -2325,8 +2588,8 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2325
2588
|
}
|
|
2326
2589
|
}
|
|
2327
2590
|
},
|
|
2328
|
-
title && /* @__PURE__ */
|
|
2329
|
-
/* @__PURE__ */
|
|
2591
|
+
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)) : "")),
|
|
2592
|
+
/* @__PURE__ */ import_react20.default.createElement(
|
|
2330
2593
|
import_material14.DialogContent,
|
|
2331
2594
|
{
|
|
2332
2595
|
"data-testid": "dialog-content",
|
|
@@ -2354,7 +2617,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2354
2617
|
}
|
|
2355
2618
|
}
|
|
2356
2619
|
},
|
|
2357
|
-
content.url ? /* @__PURE__ */
|
|
2620
|
+
content.url ? /* @__PURE__ */ import_react20.default.createElement(
|
|
2358
2621
|
"iframe",
|
|
2359
2622
|
{
|
|
2360
2623
|
style: { border: "none", minWidth: "100%", minHeight: "100%" },
|
|
@@ -2364,7 +2627,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2364
2627
|
}
|
|
2365
2628
|
) : content.component
|
|
2366
2629
|
),
|
|
2367
|
-
dialogActions.length > 0 ? /* @__PURE__ */
|
|
2630
|
+
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(
|
|
2368
2631
|
import_material14.Button,
|
|
2369
2632
|
{
|
|
2370
2633
|
variant: "text",
|
|
@@ -2372,11 +2635,11 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2372
2635
|
size: "small",
|
|
2373
2636
|
onClick: dialogActions[0].fn,
|
|
2374
2637
|
disabled: dialogActions[0].disabled || false,
|
|
2375
|
-
startIcon: dialogActions[0].icon ? /* @__PURE__ */
|
|
2638
|
+
startIcon: dialogActions[0].icon ? /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: dialogActions[0].icon }) : void 0
|
|
2376
2639
|
},
|
|
2377
2640
|
dialogActions[0].text
|
|
2378
|
-
), /* @__PURE__ */
|
|
2379
|
-
return /* @__PURE__ */
|
|
2641
|
+
), /* @__PURE__ */ import_react20.default.createElement(import_material14.Box, { sx: { display: "flex", gap: 1 } }, dialogActions.slice(1).map((boton, index) => {
|
|
2642
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2380
2643
|
import_material14.Button,
|
|
2381
2644
|
{
|
|
2382
2645
|
key: index + 1,
|
|
@@ -2385,12 +2648,12 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2385
2648
|
size: "small",
|
|
2386
2649
|
onClick: boton.fn,
|
|
2387
2650
|
disabled: boton.disabled || false,
|
|
2388
|
-
startIcon: boton.icon ? /* @__PURE__ */
|
|
2651
|
+
startIcon: boton.icon ? /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: boton.icon }) : void 0
|
|
2389
2652
|
},
|
|
2390
2653
|
boton.text
|
|
2391
2654
|
);
|
|
2392
2655
|
}))) : dialogActions.map((boton, index) => {
|
|
2393
|
-
return /* @__PURE__ */
|
|
2656
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2394
2657
|
import_material14.Button,
|
|
2395
2658
|
{
|
|
2396
2659
|
key: index,
|
|
@@ -2399,7 +2662,7 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2399
2662
|
size: "small",
|
|
2400
2663
|
onClick: boton.fn,
|
|
2401
2664
|
disabled: boton.disabled || false,
|
|
2402
|
-
startIcon: boton.icon ? /* @__PURE__ */
|
|
2665
|
+
startIcon: boton.icon ? /* @__PURE__ */ import_react20.default.createElement(import_material14.SvgIcon, { fontSize: "small", component: boton.icon }) : void 0
|
|
2403
2666
|
},
|
|
2404
2667
|
boton.text
|
|
2405
2668
|
);
|
|
@@ -2408,12 +2671,12 @@ var SCDialog = ({ title, iconTitle, subtitle, content, actions, buttonDialog, di
|
|
|
2408
2671
|
};
|
|
2409
2672
|
|
|
2410
2673
|
// src/Components/SCMenu.tsx
|
|
2411
|
-
var
|
|
2674
|
+
var import_react22 = __toESM(require("react"), 1);
|
|
2412
2675
|
var import_material15 = require("@mui/material");
|
|
2413
2676
|
var import_Grid26 = __toESM(require("@mui/material/Grid2"), 1);
|
|
2414
2677
|
|
|
2415
2678
|
// src/Components/Hooks/useWindowDimensions.ts
|
|
2416
|
-
var
|
|
2679
|
+
var import_react21 = require("react");
|
|
2417
2680
|
function getWindowDimensions() {
|
|
2418
2681
|
const { innerWidth: width, innerHeight: height } = window;
|
|
2419
2682
|
return {
|
|
@@ -2422,8 +2685,8 @@ function getWindowDimensions() {
|
|
|
2422
2685
|
};
|
|
2423
2686
|
}
|
|
2424
2687
|
function useWindowDimensions() {
|
|
2425
|
-
const [windowDimensions, setWindowDimensions] = (0,
|
|
2426
|
-
(0,
|
|
2688
|
+
const [windowDimensions, setWindowDimensions] = (0, import_react21.useState)(getWindowDimensions());
|
|
2689
|
+
(0, import_react21.useEffect)(() => {
|
|
2427
2690
|
function handleResize() {
|
|
2428
2691
|
setWindowDimensions(getWindowDimensions());
|
|
2429
2692
|
}
|
|
@@ -2441,12 +2704,12 @@ var SCMenu = ({ header, options, defaultOption, disable, widthMenu, heightMenu,
|
|
|
2441
2704
|
const pageSize = widthPage ? parseInt(widthPage) : width - menuSize;
|
|
2442
2705
|
const widthContainer = menuSize + pageSize;
|
|
2443
2706
|
let heightContainer = heightMenu ? parseInt(heightMenu) : height - 76;
|
|
2444
|
-
const [selectedIndex, setSelectedIndex] =
|
|
2445
|
-
const [value, setValue] =
|
|
2446
|
-
|
|
2707
|
+
const [selectedIndex, setSelectedIndex] = import_react22.default.useState("1");
|
|
2708
|
+
const [value, setValue] = import_react22.default.useState("1");
|
|
2709
|
+
import_react22.default.useEffect(() => {
|
|
2447
2710
|
heightContainer = heightMenu ? parseInt(heightMenu) : height - 76;
|
|
2448
2711
|
}, [height]);
|
|
2449
|
-
|
|
2712
|
+
import_react22.default.useEffect(() => {
|
|
2450
2713
|
if (defaultOption) {
|
|
2451
2714
|
handleClickMenusItem(event, void 0);
|
|
2452
2715
|
}
|
|
@@ -2476,7 +2739,7 @@ var SCMenu = ({ header, options, defaultOption, disable, widthMenu, heightMenu,
|
|
|
2476
2739
|
setValue(String(index + 1));
|
|
2477
2740
|
}
|
|
2478
2741
|
};
|
|
2479
|
-
return /* @__PURE__ */
|
|
2742
|
+
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(
|
|
2480
2743
|
import_material15.MenuItem,
|
|
2481
2744
|
{
|
|
2482
2745
|
disabled: disable == true ? true : false,
|
|
@@ -2484,26 +2747,26 @@ var SCMenu = ({ header, options, defaultOption, disable, widthMenu, heightMenu,
|
|
|
2484
2747
|
selected: String(index + 1) === selectedIndex,
|
|
2485
2748
|
onClick: (event2) => handleClickMenusItem(event2, index)
|
|
2486
2749
|
},
|
|
2487
|
-
option.iconLeft ? /* @__PURE__ */
|
|
2488
|
-
/* @__PURE__ */
|
|
2489
|
-
), option.divider == true ? /* @__PURE__ */
|
|
2750
|
+
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 })) : "",
|
|
2751
|
+
/* @__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 })) : "")
|
|
2752
|
+
), 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")))));
|
|
2490
2753
|
};
|
|
2491
2754
|
|
|
2492
2755
|
// src/Components/SCTabs.tsx
|
|
2493
|
-
var
|
|
2756
|
+
var import_react23 = __toESM(require("react"), 1);
|
|
2494
2757
|
var import_material16 = require("@mui/material");
|
|
2495
2758
|
var import_TabPanel = __toESM(require("@mui/lab/TabPanel"), 1);
|
|
2496
2759
|
var import_TabContext = __toESM(require("@mui/lab/TabContext"), 1);
|
|
2497
2760
|
var Muicon7 = __toESM(require("@mui/icons-material"), 1);
|
|
2498
2761
|
var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colorTab, orientation, variant, scrollButtons, children }) => {
|
|
2499
|
-
const [toast, setToast] =
|
|
2762
|
+
const [toast, setToast] = import_react23.default.useState(null);
|
|
2500
2763
|
let i = 0;
|
|
2501
2764
|
let j = 0;
|
|
2502
2765
|
let k = 0;
|
|
2503
2766
|
let l = 0;
|
|
2504
2767
|
let validateTypeIcon = true;
|
|
2505
|
-
const [value, setValue] =
|
|
2506
|
-
(0,
|
|
2768
|
+
const [value, setValue] = import_react23.default.useState("1");
|
|
2769
|
+
(0, import_react23.useEffect)(() => {
|
|
2507
2770
|
if (defaultOption) {
|
|
2508
2771
|
handleChange(event, void 0);
|
|
2509
2772
|
}
|
|
@@ -2553,7 +2816,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
|
|
|
2553
2816
|
setValue(newValue);
|
|
2554
2817
|
}
|
|
2555
2818
|
};
|
|
2556
|
-
return /* @__PURE__ */
|
|
2819
|
+
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(
|
|
2557
2820
|
import_material16.Tabs,
|
|
2558
2821
|
{
|
|
2559
2822
|
"data-testid": "tab-container",
|
|
@@ -2567,7 +2830,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
|
|
|
2567
2830
|
orientation: orientation || "horizontal",
|
|
2568
2831
|
sx: { borderBottom: orientation == "vertical" ? 0 : 1, borderRight: orientation == "vertical" ? 1 : 0, borderColor: "divider", background: background || "" }
|
|
2569
2832
|
},
|
|
2570
|
-
options.map((option) => /* @__PURE__ */
|
|
2833
|
+
options.map((option) => /* @__PURE__ */ import_react23.default.createElement(
|
|
2571
2834
|
import_material16.Tab,
|
|
2572
2835
|
{
|
|
2573
2836
|
"data-testid": "tab-item",
|
|
@@ -2576,7 +2839,7 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
|
|
|
2576
2839
|
label: option.name || "",
|
|
2577
2840
|
disabled: option.disabled || false,
|
|
2578
2841
|
iconPosition: iconPosition || "end",
|
|
2579
|
-
icon: typeIcon == "badge" ? /* @__PURE__ */
|
|
2842
|
+
icon: typeIcon == "badge" ? /* @__PURE__ */ import_react23.default.createElement(
|
|
2580
2843
|
import_material16.Badge,
|
|
2581
2844
|
{
|
|
2582
2845
|
sx: {
|
|
@@ -2591,27 +2854,842 @@ var SCTabs = ({ options, defaultOption, typeIcon, background, iconPosition, colo
|
|
|
2591
2854
|
badgeContent: option.iconOrBadge,
|
|
2592
2855
|
color: value == String(i) ? colorTab ? colorTab : "primary" : "default"
|
|
2593
2856
|
}
|
|
2594
|
-
) : typeIcon == "icon" ? /* @__PURE__ */
|
|
2857
|
+
) : 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" } }) : "",
|
|
2595
2858
|
sx: { "& .MuiTab-icon": { margin: "0px !important" }, padding: "10px 16px", gap: "4px" }
|
|
2596
2859
|
}
|
|
2597
2860
|
))
|
|
2598
|
-
), children, options.map((option) => /* @__PURE__ */
|
|
2861
|
+
), children, options.map((option) => /* @__PURE__ */ import_react23.default.createElement(
|
|
2599
2862
|
import_TabPanel.default,
|
|
2600
2863
|
{
|
|
2601
2864
|
key: k = k + 1,
|
|
2602
2865
|
value: String(l = l + 1),
|
|
2603
2866
|
sx: { padding: "16px" }
|
|
2604
2867
|
},
|
|
2605
|
-
option.page ? option.page : /* @__PURE__ */
|
|
2606
|
-
)))) : /* @__PURE__ */
|
|
2868
|
+
option.page ? option.page : /* @__PURE__ */ import_react23.default.createElement(import_material16.Typography, null, "No se ha configurado el componente a visualizar ")
|
|
2869
|
+
)))) : /* @__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))));
|
|
2870
|
+
};
|
|
2871
|
+
|
|
2872
|
+
// src/Components/Calendario/Calendar.tsx
|
|
2873
|
+
var import_react29 = __toESM(require("react"), 1);
|
|
2874
|
+
var import_material22 = require("@mui/material");
|
|
2875
|
+
|
|
2876
|
+
// src/Components/Calendario/CalendarToolbar.tsx
|
|
2877
|
+
var import_react24 = __toESM(require("react"), 1);
|
|
2878
|
+
var import_icons_material10 = require("@mui/icons-material");
|
|
2879
|
+
var import_material17 = require("@mui/material");
|
|
2880
|
+
var import_dayjs2 = __toESM(require("dayjs"), 1);
|
|
2881
|
+
var import_updateLocale = __toESM(require("dayjs/plugin/updateLocale"), 1);
|
|
2882
|
+
var import_es2 = require("dayjs/locale/es");
|
|
2883
|
+
import_dayjs2.default.locale("es");
|
|
2884
|
+
import_dayjs2.default.extend(import_updateLocale.default);
|
|
2885
|
+
import_dayjs2.default.updateLocale("en", {
|
|
2886
|
+
weekStart: 0
|
|
2887
|
+
// 0 = domingo
|
|
2888
|
+
});
|
|
2889
|
+
var CalendarToolbar = ({
|
|
2890
|
+
labelDate,
|
|
2891
|
+
view,
|
|
2892
|
+
onView,
|
|
2893
|
+
onNavigate,
|
|
2894
|
+
children
|
|
2895
|
+
}) => {
|
|
2896
|
+
const [anchorEl, setAnchorEl] = (0, import_react24.useState)(null);
|
|
2897
|
+
const open = Boolean(anchorEl);
|
|
2898
|
+
const handleMenuOpen = (event2) => {
|
|
2899
|
+
setAnchorEl(event2.currentTarget);
|
|
2900
|
+
};
|
|
2901
|
+
const handleMenuClose = () => {
|
|
2902
|
+
setAnchorEl(null);
|
|
2903
|
+
};
|
|
2904
|
+
const handleViewChange = (newView) => {
|
|
2905
|
+
onView(newView);
|
|
2906
|
+
handleMenuClose();
|
|
2907
|
+
};
|
|
2908
|
+
const getFormattedDate = () => {
|
|
2909
|
+
const sunday = labelDate.day(0);
|
|
2910
|
+
const saturday = sunday.add(6, "day");
|
|
2911
|
+
if (view === "month") {
|
|
2912
|
+
const textMonth = labelDate.format("MMMM YYYY");
|
|
2913
|
+
return textMonth.charAt(0).toUpperCase() + textMonth.slice(1);
|
|
2914
|
+
}
|
|
2915
|
+
if (view === "week") {
|
|
2916
|
+
return `${labelDate.startOf("week").format("DD MMM")} - ${labelDate.endOf("week").format("DD MMM YYYY")}`;
|
|
2917
|
+
}
|
|
2918
|
+
return labelDate.format(" DD MMMM YYYY");
|
|
2919
|
+
};
|
|
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(
|
|
2921
|
+
import_material17.Chip,
|
|
2922
|
+
{
|
|
2923
|
+
label: "Hoy",
|
|
2924
|
+
icon: /* @__PURE__ */ import_react24.default.createElement(import_icons_material10.LightModeOutlined, { fontSize: "small" }),
|
|
2925
|
+
color: "primary",
|
|
2926
|
+
onClick: () => onNavigate("TODAY")
|
|
2927
|
+
}
|
|
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(
|
|
2929
|
+
import_material17.Menu,
|
|
2930
|
+
{
|
|
2931
|
+
anchorEl,
|
|
2932
|
+
open,
|
|
2933
|
+
onClose: handleMenuClose,
|
|
2934
|
+
anchorOrigin: { vertical: "bottom", horizontal: "center" },
|
|
2935
|
+
transformOrigin: { vertical: "top", horizontal: "center" }
|
|
2936
|
+
},
|
|
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" }), " ");
|
|
2941
|
+
};
|
|
2942
|
+
|
|
2943
|
+
// src/Components/Calendario/Views/MonthView.tsx
|
|
2944
|
+
var import_react26 = __toESM(require("react"), 1);
|
|
2945
|
+
var import_material19 = require("@mui/material");
|
|
2946
|
+
var import_Add = __toESM(require("@mui/icons-material/Add"), 1);
|
|
2947
|
+
var import_dayjs4 = __toESM(require("dayjs"), 1);
|
|
2948
|
+
var import_localeData = __toESM(require("dayjs/plugin/localeData"), 1);
|
|
2949
|
+
var import_isBetween = __toESM(require("dayjs/plugin/isBetween"), 1);
|
|
2950
|
+
|
|
2951
|
+
// src/Components/Calendario/Utils.tsx
|
|
2952
|
+
var import_dayjs3 = __toESM(require("dayjs"), 1);
|
|
2953
|
+
function getMonthDays(date) {
|
|
2954
|
+
const start = date.startOf("month").day(0);
|
|
2955
|
+
const end = date.endOf("month").day(6);
|
|
2956
|
+
const days = [];
|
|
2957
|
+
let current = start;
|
|
2958
|
+
while (current.isBefore(end) || current.isSame(end, "day")) {
|
|
2959
|
+
days.push(current);
|
|
2960
|
+
current = current.add(1, "day");
|
|
2961
|
+
}
|
|
2962
|
+
return days;
|
|
2963
|
+
}
|
|
2964
|
+
var isToday = (date) => {
|
|
2965
|
+
return date.isSame((0, import_dayjs3.default)(), "day");
|
|
2966
|
+
};
|
|
2967
|
+
var stateColors = {
|
|
2968
|
+
Asignada: "warning.main",
|
|
2969
|
+
Finalizado: "primary.main",
|
|
2970
|
+
Vencida: "error.main",
|
|
2971
|
+
EnProgreso: "success.main",
|
|
2972
|
+
Aplazada: "grey.400",
|
|
2973
|
+
Generada: "secondary.main"
|
|
2974
|
+
};
|
|
2975
|
+
|
|
2976
|
+
// src/Components/Calendario/Event.tsx
|
|
2977
|
+
var import_react25 = __toESM(require("react"), 1);
|
|
2978
|
+
var import_material18 = require("@mui/material");
|
|
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(
|
|
2989
|
+
import_material18.Stack,
|
|
2990
|
+
{
|
|
2991
|
+
direction: "row",
|
|
2992
|
+
padding: 0.5,
|
|
2993
|
+
borderRadius: 0.5,
|
|
2994
|
+
alignItems: "flex-start",
|
|
2995
|
+
minHeight: "20px",
|
|
2996
|
+
onMouseOver: () => onHover == null ? void 0 : onHover(event2),
|
|
2997
|
+
onClick: (e) => {
|
|
2998
|
+
e.stopPropagation();
|
|
2999
|
+
onClick == null ? void 0 : onClick(event2);
|
|
3000
|
+
},
|
|
3001
|
+
sx: (theme) => __spreadValues({
|
|
3002
|
+
backgroundColor: theme.palette.common.white,
|
|
3003
|
+
boxShadow: theme.shadows[2],
|
|
3004
|
+
color: theme.palette.text.secondary,
|
|
3005
|
+
overflow: "hidden",
|
|
3006
|
+
cursor: onClick ? "pointer" : "default"
|
|
3007
|
+
}, sx)
|
|
3008
|
+
},
|
|
3009
|
+
/* @__PURE__ */ import_react25.default.createElement(
|
|
3010
|
+
import_material18.Divider,
|
|
3011
|
+
{
|
|
3012
|
+
orientation: "vertical",
|
|
3013
|
+
flexItem: true,
|
|
3014
|
+
sx: {
|
|
3015
|
+
width: "2px",
|
|
3016
|
+
backgroundColor: color != null ? color : "primary.main",
|
|
3017
|
+
borderRadius: "2px"
|
|
3018
|
+
}
|
|
3019
|
+
}
|
|
3020
|
+
),
|
|
3021
|
+
/* @__PURE__ */ import_react25.default.createElement(
|
|
3022
|
+
import_material18.Box,
|
|
3023
|
+
{
|
|
3024
|
+
px: 1,
|
|
3025
|
+
py: 0.5,
|
|
3026
|
+
flex: "1",
|
|
3027
|
+
minWidth: 0,
|
|
3028
|
+
display: "flex",
|
|
3029
|
+
alignItems: "center"
|
|
3030
|
+
},
|
|
3031
|
+
/* @__PURE__ */ import_react25.default.createElement(
|
|
3032
|
+
import_material18.Typography,
|
|
3033
|
+
{
|
|
3034
|
+
color: "text.primary",
|
|
3035
|
+
variant: "caption",
|
|
3036
|
+
noWrap: true,
|
|
3037
|
+
sx: {
|
|
3038
|
+
overflow: "hidden",
|
|
3039
|
+
textOverflow: "ellipsis",
|
|
3040
|
+
whiteSpace: "nowrap"
|
|
3041
|
+
},
|
|
3042
|
+
onMouseEnter: handlePopoverOpen,
|
|
3043
|
+
onMouseLeave: handlePopoverClose
|
|
3044
|
+
},
|
|
3045
|
+
capitalize(event2.title)
|
|
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) : /* @__PURE__ */ import_react25.default.createElement(import_material18.Typography, null, "Sin contenido")
|
|
3066
|
+
)
|
|
3067
|
+
)
|
|
3068
|
+
);
|
|
3069
|
+
};
|
|
3070
|
+
|
|
3071
|
+
// src/assets/Icon Scheduler.svg
|
|
3072
|
+
var Icon_Scheduler_default = "./Icon Scheduler-WX62PISD.svg";
|
|
3073
|
+
|
|
3074
|
+
// src/Components/Calendario/Views/MonthView.tsx
|
|
3075
|
+
import_dayjs4.default.extend(import_localeData.default);
|
|
3076
|
+
import_dayjs4.default.extend(import_isBetween.default);
|
|
3077
|
+
var MonthView = ({ events, isLoading, onDayClick, onMoreClick, currentDate, onEventClick, onEventHover }) => {
|
|
3078
|
+
const noEvents = events.length === 0;
|
|
3079
|
+
const days = getMonthDays(currentDate);
|
|
3080
|
+
const weekDays = Array.from({ length: 7 }, (_, i) => (0, import_dayjs4.default)().day(i));
|
|
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) => {
|
|
3092
|
+
const dayEvents = events.filter(
|
|
3093
|
+
(e) => day.isBetween(e.start.startOf("day"), e.end.endOf("day"), null, "[]")
|
|
3094
|
+
);
|
|
3095
|
+
const isCurrentMonth = day.month() === currentDate.month();
|
|
3096
|
+
return /* @__PURE__ */ import_react26.default.createElement(
|
|
3097
|
+
import_material19.Paper,
|
|
3098
|
+
{
|
|
3099
|
+
key: day.toString(),
|
|
3100
|
+
onClick: () => onDayClick == null ? void 0 : onDayClick(day),
|
|
3101
|
+
sx: {
|
|
3102
|
+
minHeight: 120,
|
|
3103
|
+
display: "flex",
|
|
3104
|
+
flexDirection: "column",
|
|
3105
|
+
justifyContent: "space-between",
|
|
3106
|
+
boxShadow: "none",
|
|
3107
|
+
bgcolor: isCurrentMonth ? "grey.50" : "background.default",
|
|
3108
|
+
cursor: "pointer",
|
|
3109
|
+
"&:hover": { bgcolor: "primary.50" },
|
|
3110
|
+
overflow: "hidden"
|
|
3111
|
+
}
|
|
3112
|
+
},
|
|
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(
|
|
3114
|
+
import_material19.Box,
|
|
3115
|
+
{
|
|
3116
|
+
sx: {
|
|
3117
|
+
width: 24,
|
|
3118
|
+
height: 24,
|
|
3119
|
+
borderRadius: "50%",
|
|
3120
|
+
backgroundColor: isToday(day) ? "primary.main" : void 0,
|
|
3121
|
+
display: "flex",
|
|
3122
|
+
alignItems: "center",
|
|
3123
|
+
justifyContent: "center"
|
|
3124
|
+
}
|
|
3125
|
+
},
|
|
3126
|
+
/* @__PURE__ */ import_react26.default.createElement(
|
|
3127
|
+
import_material19.Typography,
|
|
3128
|
+
{
|
|
3129
|
+
variant: "body2",
|
|
3130
|
+
sx: { color: isToday(day) ? "white" : "text.secondary" }
|
|
3131
|
+
},
|
|
3132
|
+
day.date()
|
|
3133
|
+
)
|
|
3134
|
+
), dayEvents.length > 2 && /* @__PURE__ */ import_react26.default.createElement(import_material19.Tooltip, { title: "M\xE1s eventos" }, /* @__PURE__ */ import_react26.default.createElement(
|
|
3135
|
+
import_material19.IconButton,
|
|
3136
|
+
{
|
|
3137
|
+
color: "primary",
|
|
3138
|
+
size: "small",
|
|
3139
|
+
onClick: (e) => {
|
|
3140
|
+
e.stopPropagation();
|
|
3141
|
+
onMoreClick == null ? void 0 : onMoreClick(day, dayEvents);
|
|
3142
|
+
setSelectedDay(day);
|
|
3143
|
+
setSelectedEvents(dayEvents);
|
|
3144
|
+
}
|
|
3145
|
+
},
|
|
3146
|
+
/* @__PURE__ */ import_react26.default.createElement(import_Add.default, { fontSize: "small" })
|
|
3147
|
+
)))),
|
|
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(
|
|
3149
|
+
CalendarEventCard,
|
|
3150
|
+
{
|
|
3151
|
+
key: `${event2.id}-${day.toString()}`,
|
|
3152
|
+
event: event2,
|
|
3153
|
+
color: stateColors[event2.state],
|
|
3154
|
+
onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
|
|
3155
|
+
onHover: onEventHover
|
|
3156
|
+
}
|
|
3157
|
+
))),
|
|
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(
|
|
3159
|
+
SCDrawer,
|
|
3160
|
+
{
|
|
3161
|
+
width: "350px",
|
|
3162
|
+
title: day.format("DD [de] MMMM YYYY"),
|
|
3163
|
+
open: openDrawer,
|
|
3164
|
+
buttonDrawer: { text: `+ ${dayEvents.length}` },
|
|
3165
|
+
anchor: "right",
|
|
3166
|
+
actions: false,
|
|
3167
|
+
arrayElements: [{
|
|
3168
|
+
component: (() => {
|
|
3169
|
+
const [first, ...rest] = dayEvents;
|
|
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(
|
|
3171
|
+
CalendarEventCard,
|
|
3172
|
+
{
|
|
3173
|
+
event: first,
|
|
3174
|
+
color: stateColors[first.state],
|
|
3175
|
+
onClick: () => onEventClick == null ? void 0 : onEventClick(first, day),
|
|
3176
|
+
sx: {
|
|
3177
|
+
whiteSpace: "normal",
|
|
3178
|
+
"& .MuiTypography-root": {
|
|
3179
|
+
whiteSpace: "normal",
|
|
3180
|
+
overflow: "visible",
|
|
3181
|
+
textOverflow: "unset"
|
|
3182
|
+
}
|
|
3183
|
+
}
|
|
3184
|
+
}
|
|
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(
|
|
3186
|
+
import_material19.Box,
|
|
3187
|
+
{
|
|
3188
|
+
width: "100%",
|
|
3189
|
+
height: "100%",
|
|
3190
|
+
flex: 1,
|
|
3191
|
+
overflow: "auto",
|
|
3192
|
+
p: 1,
|
|
3193
|
+
pt: 1,
|
|
3194
|
+
display: "flex",
|
|
3195
|
+
flexDirection: "column",
|
|
3196
|
+
gap: 1.5
|
|
3197
|
+
},
|
|
3198
|
+
rest.map((event2) => /* @__PURE__ */ import_react26.default.createElement(
|
|
3199
|
+
CalendarEventCard,
|
|
3200
|
+
{
|
|
3201
|
+
key: `${event2.id}-${day.toString()}`,
|
|
3202
|
+
event: event2,
|
|
3203
|
+
color: stateColors[event2.state],
|
|
3204
|
+
onClick: () => onEventClick == null ? void 0 : onEventClick(event2, day),
|
|
3205
|
+
onHover: onEventHover,
|
|
3206
|
+
sx: {
|
|
3207
|
+
whiteSpace: "normal",
|
|
3208
|
+
"& .MuiTypography-root": {
|
|
3209
|
+
whiteSpace: "normal",
|
|
3210
|
+
overflow: "visible",
|
|
3211
|
+
textOverflow: "unset"
|
|
3212
|
+
}
|
|
3213
|
+
}
|
|
3214
|
+
}
|
|
3215
|
+
))
|
|
3216
|
+
));
|
|
3217
|
+
})()
|
|
3218
|
+
}]
|
|
3219
|
+
}
|
|
3220
|
+
))
|
|
3221
|
+
);
|
|
3222
|
+
}))));
|
|
3223
|
+
};
|
|
3224
|
+
|
|
3225
|
+
// src/Components/Calendario/Views/WeekView.tsx
|
|
3226
|
+
var import_react27 = __toESM(require("react"), 1);
|
|
3227
|
+
var import_material20 = require("@mui/material");
|
|
3228
|
+
var import_dayjs5 = __toESM(require("dayjs"), 1);
|
|
3229
|
+
var import_localeData2 = __toESM(require("dayjs/plugin/localeData"), 1);
|
|
3230
|
+
import_dayjs5.default.extend(import_localeData2.default);
|
|
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");
|
|
3243
|
+
const startOfWeek2 = currentDate.startOf("week");
|
|
3244
|
+
const days = Array.from({ length: 7 }, (_, i) => startOfWeek2.add(i, "day"));
|
|
3245
|
+
const hours = Array.from({ length: endHour - startHour + 1 }, (_, i) => startHour + i);
|
|
3246
|
+
const getCellBorderType = (cellHour, dayEvents) => {
|
|
3247
|
+
for (const event2 of dayEvents) {
|
|
3248
|
+
const start = event2.start.hour() + event2.start.minute() / 60;
|
|
3249
|
+
const end = event2.end.hour() + event2.end.minute() / 60;
|
|
3250
|
+
const cellStart = cellHour;
|
|
3251
|
+
const cellEnd = cellHour + 1;
|
|
3252
|
+
if (cellEnd > start && cellStart < end) {
|
|
3253
|
+
if (Math.abs(cellStart - start) < 0.01 && Math.abs(cellEnd - end) < 0.01) return "full";
|
|
3254
|
+
if (Math.abs(cellStart - start) < 0.01) return "start";
|
|
3255
|
+
if (Math.abs(cellEnd - end) < 0.01) return "end";
|
|
3256
|
+
return "middle";
|
|
3257
|
+
}
|
|
3258
|
+
}
|
|
3259
|
+
return "none";
|
|
3260
|
+
};
|
|
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(
|
|
3264
|
+
import_material20.Box,
|
|
3265
|
+
{
|
|
3266
|
+
key: day.toString(),
|
|
3267
|
+
height: 40,
|
|
3268
|
+
flex: 1,
|
|
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"
|
|
3279
|
+
},
|
|
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"))
|
|
3282
|
+
);
|
|
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
|
+
));
|
|
3361
|
+
};
|
|
3362
|
+
|
|
3363
|
+
// src/Components/Calendario/Views/DayView.tsx
|
|
3364
|
+
var import_react28 = __toESM(require("react"), 1);
|
|
3365
|
+
var import_material21 = require("@mui/material");
|
|
3366
|
+
var import_dayjs6 = __toESM(require("dayjs"), 1);
|
|
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);
|
|
3377
|
+
const getCellBorderType = (cellHour, dayEvents2) => {
|
|
3378
|
+
for (const event2 of dayEvents2) {
|
|
3379
|
+
const start = event2.start.hour() + event2.start.minute() / 60;
|
|
3380
|
+
const end = event2.end.hour() + event2.end.minute() / 60;
|
|
3381
|
+
const cellStart = cellHour;
|
|
3382
|
+
const cellEnd = cellHour + 1;
|
|
3383
|
+
if (cellEnd > start && cellStart < end) {
|
|
3384
|
+
if (Math.abs(cellStart - start) < 0.01 && Math.abs(cellEnd - end) < 0.01) return "full";
|
|
3385
|
+
if (Math.abs(cellStart - start) < 0.01) return "start";
|
|
3386
|
+
if (Math.abs(cellEnd - end) < 0.01) return "end";
|
|
3387
|
+
return "middle";
|
|
3388
|
+
}
|
|
3389
|
+
}
|
|
3390
|
+
return "none";
|
|
3391
|
+
};
|
|
3392
|
+
const dayEvents = events.filter(
|
|
3393
|
+
(event2) => currentDate.isBetween(event2.start.startOf("day"), event2.end.endOf("day"), null, "[]")
|
|
3394
|
+
);
|
|
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,
|
|
3398
|
+
{
|
|
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(
|
|
3404
|
+
import_material21.Box,
|
|
3405
|
+
{
|
|
3406
|
+
key: h,
|
|
3407
|
+
height: 60,
|
|
3408
|
+
textAlign: "right",
|
|
3409
|
+
pr: 1,
|
|
3410
|
+
borderTop: "1px solid",
|
|
3411
|
+
borderRight: "1px solid",
|
|
3412
|
+
borderColor: "divider"
|
|
3413
|
+
},
|
|
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) => {
|
|
3416
|
+
const borderType = getCellBorderType(hourIdx, dayEvents);
|
|
3417
|
+
return /* @__PURE__ */ import_react28.default.createElement(
|
|
3418
|
+
import_material21.Box,
|
|
3419
|
+
{
|
|
3420
|
+
key: hourIdx,
|
|
3421
|
+
height: 60,
|
|
3422
|
+
borderTop: "1px solid",
|
|
3423
|
+
borderColor: borderType === "start" || borderType === "full" || borderType === "none" ? "divider" : "transparent",
|
|
3424
|
+
borderBottom: borderType === "end" || borderType === "full" ? "1px solid divider" : void 0
|
|
3425
|
+
}
|
|
3426
|
+
);
|
|
3427
|
+
}), dayEvents.map((event2) => {
|
|
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(
|
|
3437
|
+
CalendarEventCard,
|
|
3438
|
+
{
|
|
3439
|
+
key: `${event2.id}-${currentDate.toString()}`,
|
|
3440
|
+
event: event2,
|
|
3441
|
+
color: stateColors[event2.state],
|
|
3442
|
+
onClick: () => onEventClick == null ? void 0 : onEventClick(event2, currentDate),
|
|
3443
|
+
onHover: onEventHover,
|
|
3444
|
+
sx: {
|
|
3445
|
+
position: "absolute",
|
|
3446
|
+
top: `${startMinutes}px`,
|
|
3447
|
+
height: `${durationMinutes}px`,
|
|
3448
|
+
left: 4,
|
|
3449
|
+
right: 4
|
|
3450
|
+
}
|
|
3451
|
+
}
|
|
3452
|
+
);
|
|
3453
|
+
}))));
|
|
3454
|
+
};
|
|
3455
|
+
|
|
3456
|
+
// src/Components/Calendario/Calendar.tsx
|
|
3457
|
+
var import_dayjs7 = __toESM(require("dayjs"), 1);
|
|
3458
|
+
var Calendar = ({
|
|
3459
|
+
events,
|
|
3460
|
+
onDayClick,
|
|
3461
|
+
onMoreClick,
|
|
3462
|
+
onEventClick,
|
|
3463
|
+
onEventHover,
|
|
3464
|
+
view: initialView = "month",
|
|
3465
|
+
onViewChange,
|
|
3466
|
+
toolbar,
|
|
3467
|
+
isLoading = false,
|
|
3468
|
+
startHour = 0,
|
|
3469
|
+
// <- valor por defecto
|
|
3470
|
+
endHour = 23
|
|
3471
|
+
}) => {
|
|
3472
|
+
const [view, setView] = (0, import_react29.useState)(initialView);
|
|
3473
|
+
const [currentDate, setCurrentDate] = (0, import_react29.useState)((0, import_dayjs7.default)());
|
|
3474
|
+
const handleViewChange = (newView) => {
|
|
3475
|
+
setView(newView);
|
|
3476
|
+
onViewChange == null ? void 0 : onViewChange(newView);
|
|
3477
|
+
};
|
|
3478
|
+
const handleNavigate = (action) => {
|
|
3479
|
+
let newDate = currentDate;
|
|
3480
|
+
const unit = view === "month" ? "month" : "day";
|
|
3481
|
+
if (action === "PREV") newDate = currentDate.subtract(1, unit);
|
|
3482
|
+
else if (action === "NEXT") newDate = currentDate.add(1, unit);
|
|
3483
|
+
else if (action === "TODAY") newDate = (0, import_dayjs7.default)();
|
|
3484
|
+
setCurrentDate(newDate);
|
|
3485
|
+
};
|
|
3486
|
+
return /* @__PURE__ */ import_react29.default.createElement(import_material22.Box, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
3487
|
+
CalendarToolbar,
|
|
3488
|
+
{
|
|
3489
|
+
labelDate: currentDate,
|
|
3490
|
+
view,
|
|
3491
|
+
onView: handleViewChange,
|
|
3492
|
+
onNavigate: handleNavigate
|
|
3493
|
+
},
|
|
3494
|
+
toolbar
|
|
3495
|
+
), 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(
|
|
3496
|
+
import_material22.Box,
|
|
3497
|
+
{
|
|
3498
|
+
display: "flex",
|
|
3499
|
+
justifyContent: "center",
|
|
3500
|
+
alignItems: "center",
|
|
3501
|
+
height: "400px"
|
|
3502
|
+
},
|
|
3503
|
+
/* @__PURE__ */ import_react29.default.createElement(import_material22.CircularProgress, { variant: "indeterminate" })
|
|
3504
|
+
))) : /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, view === "month" && /* @__PURE__ */ import_react29.default.createElement(
|
|
3505
|
+
MonthView,
|
|
3506
|
+
{
|
|
3507
|
+
events,
|
|
3508
|
+
currentDate,
|
|
3509
|
+
onDayClick,
|
|
3510
|
+
onMoreClick,
|
|
3511
|
+
onEventClick,
|
|
3512
|
+
onEventHover
|
|
3513
|
+
}
|
|
3514
|
+
), view === "week" && /* @__PURE__ */ import_react29.default.createElement(
|
|
3515
|
+
WeekView,
|
|
3516
|
+
{
|
|
3517
|
+
events,
|
|
3518
|
+
currentDate,
|
|
3519
|
+
onDayClick,
|
|
3520
|
+
onMoreClick,
|
|
3521
|
+
onEventClick,
|
|
3522
|
+
onEventHover,
|
|
3523
|
+
startHour,
|
|
3524
|
+
endHour
|
|
3525
|
+
}
|
|
3526
|
+
), view === "day" && /* @__PURE__ */ import_react29.default.createElement(
|
|
3527
|
+
DayView,
|
|
3528
|
+
{
|
|
3529
|
+
events,
|
|
3530
|
+
currentDate,
|
|
3531
|
+
onEventClick,
|
|
3532
|
+
onEventHover,
|
|
3533
|
+
startHour,
|
|
3534
|
+
endHour
|
|
3535
|
+
}
|
|
3536
|
+
)));
|
|
3537
|
+
};
|
|
3538
|
+
|
|
3539
|
+
// src/Components/SCTime.tsx
|
|
3540
|
+
var import_react30 = __toESM(require("react"), 1);
|
|
3541
|
+
var import_material23 = require("@mui/material");
|
|
3542
|
+
var import_LocalizationProvider3 = require("@mui/x-date-pickers/LocalizationProvider");
|
|
3543
|
+
var import_AdapterDayjs2 = require("@mui/x-date-pickers/AdapterDayjs");
|
|
3544
|
+
var import_dayjs8 = __toESM(require("dayjs"), 1);
|
|
3545
|
+
var import_es3 = require("dayjs/locale/es");
|
|
3546
|
+
var import_x_license_pro3 = require("@mui/x-license-pro");
|
|
3547
|
+
var import_AccessTime = __toESM(require("@mui/icons-material/AccessTime"), 1);
|
|
3548
|
+
var import_TimeField = require("@mui/x-date-pickers/TimeField");
|
|
3549
|
+
var import_DigitalClock = require("@mui/x-date-pickers/DigitalClock");
|
|
3550
|
+
var SCTime = ({
|
|
3551
|
+
label = "Hora",
|
|
3552
|
+
required = false,
|
|
3553
|
+
disabled = false,
|
|
3554
|
+
background = "transparent",
|
|
3555
|
+
timeStep = 5,
|
|
3556
|
+
state,
|
|
3557
|
+
setState
|
|
3558
|
+
}) => {
|
|
3559
|
+
import_x_license_pro3.LicenseInfo.setLicenseKey(
|
|
3560
|
+
"77d49a57fbc5f4af35ddb05c5f1742e0Tz0xMTI3MjgsRT0xNzc4MzcxMTk5MDAwLFM9cHJvLExNPXN1YnNjcmlwdGlvbixQVj1RMy0yMDI0LEtWPTI="
|
|
3561
|
+
);
|
|
3562
|
+
const isTimeEmpty = required && !state;
|
|
3563
|
+
const hasError = isTimeEmpty;
|
|
3564
|
+
const [anchorEl, setAnchorEl] = (0, import_react30.useState)(null);
|
|
3565
|
+
const [isOpenPopover, setIsOpenPopover] = (0, import_react30.useState)(false);
|
|
3566
|
+
const [popoverPlacement, setPopoverPlacement] = (0, import_react30.useState)("bottom");
|
|
3567
|
+
const detectPlacement = (element) => {
|
|
3568
|
+
const rect = element.getBoundingClientRect();
|
|
3569
|
+
const windowHeight = window.innerHeight;
|
|
3570
|
+
const spaceBelow = windowHeight - rect.bottom;
|
|
3571
|
+
const spaceAbove = rect.top;
|
|
3572
|
+
const popoverHeight = 300;
|
|
3573
|
+
if (spaceBelow < popoverHeight && spaceAbove > spaceBelow) {
|
|
3574
|
+
setPopoverPlacement("top");
|
|
3575
|
+
} else {
|
|
3576
|
+
setPopoverPlacement("bottom");
|
|
3577
|
+
}
|
|
3578
|
+
};
|
|
3579
|
+
const handleTimeFieldClick = (event2) => {
|
|
3580
|
+
if (!disabled) {
|
|
3581
|
+
const target = event2.currentTarget;
|
|
3582
|
+
setAnchorEl(target);
|
|
3583
|
+
detectPlacement(target);
|
|
3584
|
+
setIsOpenPopover(true);
|
|
3585
|
+
}
|
|
3586
|
+
};
|
|
3587
|
+
const handleTimeChange = (newValue) => {
|
|
3588
|
+
const dayjsValue = newValue ? (0, import_dayjs8.default)(newValue) : null;
|
|
3589
|
+
setState(dayjsValue);
|
|
3590
|
+
setIsOpenPopover(false);
|
|
3591
|
+
setAnchorEl(null);
|
|
3592
|
+
};
|
|
3593
|
+
const handleClose = () => {
|
|
3594
|
+
setIsOpenPopover(false);
|
|
3595
|
+
setAnchorEl(null);
|
|
3596
|
+
};
|
|
3597
|
+
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(
|
|
3598
|
+
import_TimeField.TimeField,
|
|
3599
|
+
{
|
|
3600
|
+
label,
|
|
3601
|
+
value: state,
|
|
3602
|
+
disabled,
|
|
3603
|
+
required,
|
|
3604
|
+
error: hasError,
|
|
3605
|
+
onClick: handleTimeFieldClick,
|
|
3606
|
+
slotProps: {
|
|
3607
|
+
textField: {
|
|
3608
|
+
InputProps: {
|
|
3609
|
+
endAdornment: /* @__PURE__ */ import_react30.default.createElement(import_material23.InputAdornment, { position: "end" }, /* @__PURE__ */ import_react30.default.createElement(
|
|
3610
|
+
import_AccessTime.default,
|
|
3611
|
+
{
|
|
3612
|
+
color: disabled ? "disabled" : "action",
|
|
3613
|
+
sx: { cursor: disabled ? "default" : "pointer" },
|
|
3614
|
+
fontSize: "small"
|
|
3615
|
+
}
|
|
3616
|
+
)),
|
|
3617
|
+
sx: {
|
|
3618
|
+
backgroundColor: background,
|
|
3619
|
+
padding: "8px 12px",
|
|
3620
|
+
cursor: disabled ? "default" : "pointer",
|
|
3621
|
+
"& input": {
|
|
3622
|
+
cursor: disabled ? "default" : "pointer"
|
|
3623
|
+
}
|
|
3624
|
+
}
|
|
3625
|
+
}
|
|
3626
|
+
}
|
|
3627
|
+
},
|
|
3628
|
+
sx: {
|
|
3629
|
+
width: "100%",
|
|
3630
|
+
"& .MuiInputBase-input": {
|
|
3631
|
+
cursor: disabled ? "default" : "pointer"
|
|
3632
|
+
},
|
|
3633
|
+
"& .MuiPickersSectionList-root": {
|
|
3634
|
+
padding: "0px !important"
|
|
3635
|
+
}
|
|
3636
|
+
}
|
|
3637
|
+
}
|
|
3638
|
+
), /* @__PURE__ */ import_react30.default.createElement(
|
|
3639
|
+
import_material23.Popover,
|
|
3640
|
+
{
|
|
3641
|
+
open: isOpenPopover,
|
|
3642
|
+
anchorEl,
|
|
3643
|
+
onClose: handleClose,
|
|
3644
|
+
anchorOrigin: {
|
|
3645
|
+
vertical: popoverPlacement === "top" ? "top" : "bottom",
|
|
3646
|
+
horizontal: "left"
|
|
3647
|
+
},
|
|
3648
|
+
transformOrigin: {
|
|
3649
|
+
vertical: popoverPlacement === "top" ? "bottom" : "top",
|
|
3650
|
+
horizontal: "left"
|
|
3651
|
+
},
|
|
3652
|
+
marginThreshold: 0,
|
|
3653
|
+
disableScrollLock: true,
|
|
3654
|
+
slotProps: {
|
|
3655
|
+
paper: {
|
|
3656
|
+
sx: {
|
|
3657
|
+
boxShadow: "0px 4px 20px rgba(0, 0, 0, 0.1)",
|
|
3658
|
+
borderRadius: 1,
|
|
3659
|
+
border: "1px solid #e0e0e0",
|
|
3660
|
+
maxHeight: "300px",
|
|
3661
|
+
overflow: "visible"
|
|
3662
|
+
}
|
|
3663
|
+
}
|
|
3664
|
+
}
|
|
3665
|
+
},
|
|
3666
|
+
/* @__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(
|
|
3667
|
+
import_DigitalClock.DigitalClock,
|
|
3668
|
+
{
|
|
3669
|
+
value: state,
|
|
3670
|
+
onChange: handleTimeChange,
|
|
3671
|
+
timeStep,
|
|
3672
|
+
sx: {
|
|
3673
|
+
"& .MuiList-root": {
|
|
3674
|
+
maxHeight: "250px",
|
|
3675
|
+
overflow: "auto"
|
|
3676
|
+
},
|
|
3677
|
+
"& .MuiMenuItem-root": {
|
|
3678
|
+
fontSize: "0.875rem",
|
|
3679
|
+
py: 0.5
|
|
3680
|
+
}
|
|
3681
|
+
}
|
|
3682
|
+
}
|
|
3683
|
+
)))
|
|
3684
|
+
)));
|
|
2607
3685
|
};
|
|
2608
3686
|
|
|
2609
3687
|
// src/Theme/index.ts
|
|
2610
3688
|
var import_styles3 = require("@mui/material/styles");
|
|
2611
3689
|
|
|
2612
3690
|
// src/Theme/components.ts
|
|
2613
|
-
var
|
|
2614
|
-
var
|
|
3691
|
+
var import_react31 = __toESM(require("react"), 1);
|
|
3692
|
+
var import_icons_material11 = require("@mui/icons-material");
|
|
2615
3693
|
var components = {
|
|
2616
3694
|
MuiSelect: {
|
|
2617
3695
|
styleOverrides: {
|
|
@@ -3308,10 +4386,10 @@ var components = {
|
|
|
3308
4386
|
MuiAlert: {
|
|
3309
4387
|
defaultProps: {
|
|
3310
4388
|
iconMapping: {
|
|
3311
|
-
success:
|
|
3312
|
-
error:
|
|
3313
|
-
warning:
|
|
3314
|
-
info:
|
|
4389
|
+
success: import_react31.default.createElement(import_icons_material11.CheckCircleRounded),
|
|
4390
|
+
error: import_react31.default.createElement(import_icons_material11.ErrorRounded),
|
|
4391
|
+
warning: import_react31.default.createElement(import_icons_material11.WarningRounded),
|
|
4392
|
+
info: import_react31.default.createElement(import_icons_material11.InfoRounded)
|
|
3315
4393
|
}
|
|
3316
4394
|
},
|
|
3317
4395
|
variants: [
|
|
@@ -4353,6 +5431,7 @@ var ADCSincoTheme = (0, import_styles3.createTheme)(__spreadValues({}, ADCTheme)
|
|
|
4353
5431
|
0 && (module.exports = {
|
|
4354
5432
|
ADCSincoTheme,
|
|
4355
5433
|
AdproSincoTheme,
|
|
5434
|
+
Calendar,
|
|
4356
5435
|
EmptyState,
|
|
4357
5436
|
FooterAction,
|
|
4358
5437
|
MultiSelect,
|
|
@@ -4370,6 +5449,7 @@ var ADCSincoTheme = (0, import_styles3.createTheme)(__spreadValues({}, ADCTheme)
|
|
|
4370
5449
|
SCTabs,
|
|
4371
5450
|
SCTextArea,
|
|
4372
5451
|
SCTextField,
|
|
5452
|
+
SCTime,
|
|
4373
5453
|
SCToastNotification,
|
|
4374
5454
|
SincoTheme,
|
|
4375
5455
|
ToastProgress,
|