@acvl/frontend-components 0.0.16 → 0.0.17
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/cjs/index.js +78 -82
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/src/components/v1/forms/utils.d.ts +1 -1
- package/dist/cjs/types/src/components/v1/inputs/controlled/ControlledPhotoField/index.d.ts +6 -0
- package/dist/cjs/types/src/components/v1/inputs/controlled/ControlledSimpleSlider/index.d.ts +8 -0
- package/dist/cjs/types/src/components/v1/inputs/controlled/index.d.ts +2 -0
- package/dist/cjs/types/src/components/v1/layout/pages/DetailPage/index.d.ts +1 -0
- package/dist/esm/index.js +76 -82
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/src/components/v1/forms/utils.d.ts +1 -1
- package/dist/esm/types/src/components/v1/inputs/controlled/ControlledPhotoField/index.d.ts +6 -0
- package/dist/esm/types/src/components/v1/inputs/controlled/ControlledSimpleSlider/index.d.ts +8 -0
- package/dist/esm/types/src/components/v1/inputs/controlled/index.d.ts +2 -0
- package/dist/esm/types/src/components/v1/layout/pages/DetailPage/index.d.ts +1 -0
- package/dist/index.d.ts +14 -4
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -25663,82 +25663,90 @@ dayjs.locale(es);
|
|
|
25663
25663
|
dayjs.extend(duration);
|
|
25664
25664
|
|
|
25665
25665
|
// ==============================|| JSON ||============================== //
|
|
25666
|
-
const typeSwitch = ({ base_object, base_key, response, submitData, useLabel, data, props }) => {
|
|
25666
|
+
const typeSwitch = ({ base_object, base_key, response, submitData, useLabel, data, props, formType }) => {
|
|
25667
25667
|
const ignore = get(props, `${base_key}.ignore`, false);
|
|
25668
|
-
if (ignore)
|
|
25668
|
+
if (ignore || ['obj_permissions', 'has_history'].includes(base_key))
|
|
25669
25669
|
return;
|
|
25670
25670
|
const altered_key = lodash.invoke(props, `${base_key}.alter_key`, base_key);
|
|
25671
25671
|
const key = altered_key || base_key;
|
|
25672
25672
|
const altered_obj = lodash.invoke(props, `${base_key}.alter_value`, base_object, submitData);
|
|
25673
25673
|
const object = altered_obj || base_object;
|
|
25674
|
+
const setValue = (form, key, value) => {
|
|
25675
|
+
if (formType === "json") {
|
|
25676
|
+
set(form, key, object);
|
|
25677
|
+
}
|
|
25678
|
+
else if (formType === "formData") {
|
|
25679
|
+
form.append(key, value);
|
|
25680
|
+
}
|
|
25681
|
+
};
|
|
25674
25682
|
switch (typeof object) {
|
|
25675
25683
|
case "string":
|
|
25676
25684
|
if (lodash.invoke(props, `${base_key}.extra_validation`, object))
|
|
25677
25685
|
return;
|
|
25678
|
-
|
|
25686
|
+
setValue(response, key, isEmpty(object) ? '' : object);
|
|
25679
25687
|
break;
|
|
25680
25688
|
case "number":
|
|
25681
|
-
|
|
25689
|
+
setValue(response, key, object);
|
|
25682
25690
|
break;
|
|
25683
25691
|
case "boolean":
|
|
25684
|
-
|
|
25692
|
+
setValue(response, key, object);
|
|
25685
25693
|
break;
|
|
25686
25694
|
case "object":
|
|
25687
25695
|
if (isNull(object) || isEmpty(object)) {
|
|
25688
25696
|
if (includes(key, 'after') || includes(key, 'before'))
|
|
25689
|
-
|
|
25697
|
+
setValue(response, key, '');
|
|
25690
25698
|
else
|
|
25691
|
-
|
|
25699
|
+
setValue(response, key, object);
|
|
25692
25700
|
}
|
|
25693
25701
|
else if (object instanceof dayjs) {
|
|
25694
|
-
|
|
25702
|
+
setValue(response, key, object.format(get(props, `${key}.format`, 'YYYY-MM-DD')));
|
|
25695
25703
|
}
|
|
25696
25704
|
else if ('label' in object && 'value' in object) {
|
|
25697
25705
|
if (useLabel)
|
|
25698
|
-
|
|
25706
|
+
setValue(response, key, object['label']);
|
|
25699
25707
|
else
|
|
25700
|
-
|
|
25708
|
+
setValue(response, key, object['value']);
|
|
25701
25709
|
}
|
|
25702
25710
|
else if (Array.isArray(object)) { // it is an array
|
|
25703
25711
|
if (object.length && typeof object[0] == 'object' && !Array.isArray(object[0]) && 'value' in object[0] && object[0]['value'] == 'all') { // for data grid filters
|
|
25704
|
-
|
|
25712
|
+
setValue(response, key, '');
|
|
25705
25713
|
}
|
|
25706
25714
|
else {
|
|
25707
25715
|
forEach(object, (arrayItem, idx) => {
|
|
25708
25716
|
if (typeof arrayItem == 'object') {
|
|
25709
25717
|
if ('label' in arrayItem) {
|
|
25710
|
-
|
|
25718
|
+
setValue(response, `${key}.${idx}`, function (item) {
|
|
25711
25719
|
if (useLabel)
|
|
25712
25720
|
return item.label;
|
|
25713
25721
|
else
|
|
25714
25722
|
return item.value;
|
|
25715
25723
|
});
|
|
25716
25724
|
}
|
|
25717
|
-
typeSwitch({ base_object: arrayItem, base_key: `${key}.${idx}`, response: response, useLabel: useLabel, data: data, submitData: submitData });
|
|
25725
|
+
typeSwitch({ base_object: arrayItem, base_key: `${key}.${idx}`, response: response, useLabel: useLabel, data: data, submitData: submitData, props: props, formType: formType });
|
|
25718
25726
|
}
|
|
25719
25727
|
else {
|
|
25720
25728
|
const keyArray = get(response, key);
|
|
25721
25729
|
if (keyArray)
|
|
25722
25730
|
keyArray.push(arrayItem);
|
|
25723
25731
|
else
|
|
25724
|
-
|
|
25732
|
+
setValue(response, key, [arrayItem]);
|
|
25725
25733
|
}
|
|
25726
25734
|
});
|
|
25727
25735
|
}
|
|
25728
25736
|
}
|
|
25729
25737
|
else if (object instanceof Set) {
|
|
25730
|
-
|
|
25738
|
+
setValue(response, key, Array.from(object));
|
|
25731
25739
|
}
|
|
25732
25740
|
else {
|
|
25733
25741
|
forEach(object, (value, key2) => {
|
|
25734
25742
|
if (!includes(['id', 'transporte.tarifa.cargos_adicionales'], key) && isEqual(get(data, `${key}.${key2}`), value))
|
|
25735
25743
|
return;
|
|
25736
|
-
typeSwitch({ base_object: value, base_key: `${key}.${key2}`, response: response, useLabel: useLabel, data: data, submitData: submitData, props: props });
|
|
25744
|
+
typeSwitch({ base_object: value, base_key: `${key}.${key2}`, response: response, useLabel: useLabel, data: data, submitData: submitData, props: props, formType: formType });
|
|
25737
25745
|
});
|
|
25738
25746
|
}
|
|
25739
25747
|
break;
|
|
25740
25748
|
default:
|
|
25741
|
-
|
|
25749
|
+
setValue(response, key, object);
|
|
25742
25750
|
break;
|
|
25743
25751
|
}
|
|
25744
25752
|
};
|
|
@@ -25747,69 +25755,34 @@ const jsonForm = ({ submitData, data, useLabel, props }) => {
|
|
|
25747
25755
|
forEach(submitData, function (value, key) {
|
|
25748
25756
|
if (key != 'id' && isEqual(get(data, key), value))
|
|
25749
25757
|
return;
|
|
25750
|
-
typeSwitch({
|
|
25758
|
+
typeSwitch({
|
|
25759
|
+
base_object: value,
|
|
25760
|
+
base_key: key,
|
|
25761
|
+
response: response,
|
|
25762
|
+
useLabel: useLabel,
|
|
25763
|
+
data: data,
|
|
25764
|
+
props: props,
|
|
25765
|
+
submitData: submitData,
|
|
25766
|
+
formType: 'json',
|
|
25767
|
+
});
|
|
25751
25768
|
});
|
|
25752
25769
|
return response;
|
|
25753
25770
|
};
|
|
25754
|
-
|
|
25755
|
-
const formConversion = (key, value, formData) => {
|
|
25756
|
-
switch (typeof value) {
|
|
25757
|
-
case "string":
|
|
25758
|
-
if (!value)
|
|
25759
|
-
return;
|
|
25760
|
-
formData.append(key, value);
|
|
25761
|
-
break;
|
|
25762
|
-
case "bigint":
|
|
25763
|
-
case "number":
|
|
25764
|
-
if (!value)
|
|
25765
|
-
return;
|
|
25766
|
-
formData.append(key, value.toString());
|
|
25767
|
-
break;
|
|
25768
|
-
case "boolean":
|
|
25769
|
-
if (value) {
|
|
25770
|
-
formData.append(key, 'True');
|
|
25771
|
-
}
|
|
25772
|
-
else {
|
|
25773
|
-
formData.append(key, 'False');
|
|
25774
|
-
}
|
|
25775
|
-
break;
|
|
25776
|
-
case "object":
|
|
25777
|
-
if (!value)
|
|
25778
|
-
return;
|
|
25779
|
-
if (Array.isArray(value) && value.length) {
|
|
25780
|
-
for (let i = 0; i < value.length; i++) {
|
|
25781
|
-
formConversion(`${key}[${i}]`, value[i], formData);
|
|
25782
|
-
}
|
|
25783
|
-
}
|
|
25784
|
-
else {
|
|
25785
|
-
if (value instanceof Date) {
|
|
25786
|
-
formData.append(key, dayjs(value).format('YYYY-MM-DDTHH:mmZ'));
|
|
25787
|
-
}
|
|
25788
|
-
else if (dayjs.isDayjs(value)) {
|
|
25789
|
-
// if (key == 'scheduling.end') {
|
|
25790
|
-
// formData.append(key, value.format('YYYY-MM-DD'))
|
|
25791
|
-
// } else {
|
|
25792
|
-
formData.append(key, value.format('YYYY-MM-DD'));
|
|
25793
|
-
// }
|
|
25794
|
-
}
|
|
25795
|
-
else if (value instanceof File) {
|
|
25796
|
-
formData.append(key, value);
|
|
25797
|
-
}
|
|
25798
|
-
else {
|
|
25799
|
-
Object.keys(value).forEach(key2 => {
|
|
25800
|
-
if (value[key2] != undefined) {
|
|
25801
|
-
formConversion(`${key}.${key2}`, value[key2], formData);
|
|
25802
|
-
}
|
|
25803
|
-
});
|
|
25804
|
-
}
|
|
25805
|
-
}
|
|
25806
|
-
break;
|
|
25807
|
-
}
|
|
25808
|
-
};
|
|
25809
|
-
const formDataForm = (object) => {
|
|
25771
|
+
const formDataForm = ({ submitData, data, useLabel, props }) => {
|
|
25810
25772
|
const formData = new FormData();
|
|
25811
|
-
|
|
25812
|
-
|
|
25773
|
+
forEach(submitData, function (value, key) {
|
|
25774
|
+
if (key != 'id' && isEqual(get(data, key), value))
|
|
25775
|
+
return;
|
|
25776
|
+
typeSwitch({
|
|
25777
|
+
base_object: value,
|
|
25778
|
+
base_key: key,
|
|
25779
|
+
response: formData,
|
|
25780
|
+
useLabel: useLabel,
|
|
25781
|
+
data: data,
|
|
25782
|
+
props: props,
|
|
25783
|
+
submitData: submitData,
|
|
25784
|
+
formType: 'formData',
|
|
25785
|
+
});
|
|
25813
25786
|
});
|
|
25814
25787
|
return formData;
|
|
25815
25788
|
};
|
|
@@ -25987,7 +25960,7 @@ const FileUploadBox = (props) => {
|
|
|
25987
25960
|
const Dropzone = ({ onChange, value }) => {
|
|
25988
25961
|
const onDrop = React.useCallback((acceptedFiles) => {
|
|
25989
25962
|
acceptedFiles.map(file => {
|
|
25990
|
-
const data = formDataForm({
|
|
25963
|
+
const data = formDataForm({ });
|
|
25991
25964
|
validarCSV({ endpoint: props.csvProps.endpoint || '', data: data, custom: props.csvProps.custom }).unwrap()
|
|
25992
25965
|
.then((response) => {
|
|
25993
25966
|
onChange('archivo' in response ? response.archivo : acceptedFiles[0]);
|
|
@@ -26402,7 +26375,7 @@ const ControlledSelect = (props) => {
|
|
|
26402
26375
|
};
|
|
26403
26376
|
|
|
26404
26377
|
// ==============================|| DESLIZADOR CONTROLADO ||============================== //
|
|
26405
|
-
const ControlledSlider = (props) => {
|
|
26378
|
+
const ControlledSlider$1 = (props) => {
|
|
26406
26379
|
const [_val, setVal] = React.useState([]);
|
|
26407
26380
|
return (
|
|
26408
26381
|
// controlador
|
|
@@ -26517,6 +26490,19 @@ const ControlledTimePicker = (props) => {
|
|
|
26517
26490
|
} }));
|
|
26518
26491
|
};
|
|
26519
26492
|
|
|
26493
|
+
const ControlledPhotoField = (props) => {
|
|
26494
|
+
return (jsxRuntime.jsx(reactHookForm.Controller, { control: props.control, name: props.name, render: ({ field: { onChange, onBlur, ref } }) => (jsxRuntime.jsx("input", { type: "file", accept: "image/*", ref: ref, onBlur: onBlur, onChange: (e) => onChange(e.target.files && e.target.files[0]) })) }));
|
|
26495
|
+
};
|
|
26496
|
+
|
|
26497
|
+
// ==============================|| DESLIZADOR CONTROLADO ||============================== //
|
|
26498
|
+
const ControlledSlider = (props) => {
|
|
26499
|
+
return (
|
|
26500
|
+
// controlador
|
|
26501
|
+
jsxRuntime.jsx(reactHookForm.Controller, { name: props.name, control: props.control, render: ({ field: { onChange, value }, }) => {
|
|
26502
|
+
return (jsxRuntime.jsx(material.Slider, { value: value, onChange: onChange, valueLabelDisplay: 'auto', sx: { mx: 2, width: 0.87 }, ...props.fieldProps }));
|
|
26503
|
+
} }));
|
|
26504
|
+
};
|
|
26505
|
+
|
|
26520
26506
|
const DeleteConfirmationDialog = (props) => {
|
|
26521
26507
|
const notifications = core.useNotifications();
|
|
26522
26508
|
const pathname = 'temp';
|
|
@@ -27009,7 +26995,7 @@ const generateSchema = (columns, columnsFilter, id) => {
|
|
|
27009
26995
|
dynamicSchema[`${column.field}_max`] = zod.z.number().or(zod.z.string()).optional();
|
|
27010
26996
|
dv[`${column.field}_min`] = '';
|
|
27011
26997
|
dv[`${column.field}_max`] = '';
|
|
27012
|
-
column.input = (jsxRuntime.jsx(ControlledSlider, { name: column.field, control: undefined, fieldProps: column.extra, extraProps: {
|
|
26998
|
+
column.input = (jsxRuntime.jsx(ControlledSlider$1, { name: column.field, control: undefined, fieldProps: column.extra, extraProps: {
|
|
27013
26999
|
getValue: undefined,
|
|
27014
27000
|
setValue: undefined,
|
|
27015
27001
|
} }));
|
|
@@ -27942,6 +27928,10 @@ const DetailField = (props) => {
|
|
|
27942
27928
|
return dayjs(props.fieldData).format('YYYY-MM-DD HH:mm');
|
|
27943
27929
|
}
|
|
27944
27930
|
}
|
|
27931
|
+
else if (props.type.name == 'ControlledPhotoField') {
|
|
27932
|
+
if (props.fieldData)
|
|
27933
|
+
return 'Imagen';
|
|
27934
|
+
}
|
|
27945
27935
|
else {
|
|
27946
27936
|
if (props.fieldData) {
|
|
27947
27937
|
if (props.detail_name) {
|
|
@@ -27959,6 +27949,9 @@ const DetailField = (props) => {
|
|
|
27959
27949
|
}
|
|
27960
27950
|
return (jsxRuntime.jsx(LinkField, { url: props.navigation.url, value: lodash.get(props.fieldData, 'value'), text: content }));
|
|
27961
27951
|
}
|
|
27952
|
+
else if (props.type.name == 'ControlledPhotoField') {
|
|
27953
|
+
return (jsxRuntime.jsx(material.Link, { href: props.fieldData, download: "filename.pdf", children: content }));
|
|
27954
|
+
}
|
|
27962
27955
|
else {
|
|
27963
27956
|
if (Array.isArray(props.fieldData)) {
|
|
27964
27957
|
return (props.fieldData.map((item, index) => (jsxRuntime.jsx(material.Typography, { children: `${lodash.get(item, 'label')}${index < props.fieldData.length - 1 ? ', ' : ''}` }, `${props.name}-link-${index}`))));
|
|
@@ -28314,8 +28307,9 @@ function DetailPage(props) {
|
|
|
28314
28307
|
// ==============================|| SUBMIT ||============================== //
|
|
28315
28308
|
const onSubmitHandler = (submitedData) => {
|
|
28316
28309
|
const formData = 'nativeEvent' in submitedData ? form.getValues() : submitedData;
|
|
28317
|
-
const
|
|
28318
|
-
|
|
28310
|
+
const params = { submitData: formData, data: data, props: props.slotProps?.parser };
|
|
28311
|
+
const dataToSend = props.edit.useFormData ? formDataForm(params) : jsonForm(params);
|
|
28312
|
+
mutation(props.edit.useFormData ? dataToSend : { ...dataToSend, ...props.api.mutate.args }).unwrap()
|
|
28319
28313
|
.then(() => {
|
|
28320
28314
|
if (!props.slotProps?.button?.save?.disableNavBack)
|
|
28321
28315
|
navigate(-1);
|
|
@@ -28700,8 +28694,10 @@ exports.ControlledDropdown = ControlledDropdown;
|
|
|
28700
28694
|
exports.ControlledFileUploadBox = FileUploadBox;
|
|
28701
28695
|
exports.ControlledNumber = ControlledNumber;
|
|
28702
28696
|
exports.ControlledPhoneNumber = ControlledPhoneNumber;
|
|
28697
|
+
exports.ControlledPhotoField = ControlledPhotoField;
|
|
28703
28698
|
exports.ControlledSelect = ControlledSelect;
|
|
28704
|
-
exports.
|
|
28699
|
+
exports.ControlledSimpleSlider = ControlledSlider;
|
|
28700
|
+
exports.ControlledSlider = ControlledSlider$1;
|
|
28705
28701
|
exports.ControlledSwitch = ControlledSwitch;
|
|
28706
28702
|
exports.ControlledText = ControlledText;
|
|
28707
28703
|
exports.ControlledTimePicker = ControlledTimePicker;
|