tp-react-elements-dev 1.9.0 → 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -59252,6 +59252,79 @@ function TimePickerFieldWrapper({ props, }) {
|
|
|
59252
59252
|
}, label: props.variant === "standard" ? "" : props.item.label, disabled: props.item.disable, slotProps: { textField: { readOnly: true, size: "small" } } }))] })) }), jsxRuntimeExports.jsx(ErrorMessageComponent, { children: jsxRuntimeExports.jsx(s, { errors: props.errors, name: props.item.name }) })] })));
|
|
59253
59253
|
}
|
|
59254
59254
|
|
|
59255
|
+
const FormRenderMultiFileUpload = ({ props, variant, }) => {
|
|
59256
|
+
var _a;
|
|
59257
|
+
React$1.useEffect(() => {
|
|
59258
|
+
if (props.getValues(props.item.name) === null ||
|
|
59259
|
+
props.getValues(props.item.name) === undefined) {
|
|
59260
|
+
const element = document.getElementById(props.item.name);
|
|
59261
|
+
console.log(element, "elementelement");
|
|
59262
|
+
if (element) {
|
|
59263
|
+
element.value = ""; // Ensure it's an input element
|
|
59264
|
+
}
|
|
59265
|
+
}
|
|
59266
|
+
}, [props.getValues(props.item.name)]);
|
|
59267
|
+
return (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(Box, Object.assign({ paddingLeft: "4px", sx: Object.assign({}, props.item.sx) }, { children: [((_a = props.item) === null || _a === void 0 ? void 0 : _a.label) && (jsxRuntimeExports.jsx(Box, Object.assign({ sx: { fontSize: "10px;" } }, { children: renderLabel(variant, props) }))), jsxRuntimeExports.jsx(TextField, { type: "file", id: props.item.name, inputProps: {
|
|
59268
|
+
multiple: true,
|
|
59269
|
+
accept: props.item.fileType === "excel"
|
|
59270
|
+
? ".xls,.xlsx"
|
|
59271
|
+
: props.item.fileType === "pdf"
|
|
59272
|
+
? ".pdf"
|
|
59273
|
+
: props.item.fileType === "image"
|
|
59274
|
+
? ".jpg,.jpeg,.png"
|
|
59275
|
+
: props.item.fileType === "all"
|
|
59276
|
+
? ".pdf,.jpg,.jpeg,.png,.xls,.xlsx,.doc,.docx"
|
|
59277
|
+
: "",
|
|
59278
|
+
}, onChange: (event) => {
|
|
59279
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
59280
|
+
const file = event.target.files;
|
|
59281
|
+
const fileName = file && file.length > 0
|
|
59282
|
+
? Array.from(file)
|
|
59283
|
+
.map((item) => item.name)
|
|
59284
|
+
.join(",")
|
|
59285
|
+
: null;
|
|
59286
|
+
console.log(file, "filefile", file.length, fileName);
|
|
59287
|
+
const allowedExtensions = {
|
|
59288
|
+
excel: ["xls", "xlsx"],
|
|
59289
|
+
pdf: ["pdf"],
|
|
59290
|
+
image: ["jpg", "jpeg", "png"],
|
|
59291
|
+
all: ["pdf", "jpg", "jpeg", "png", "xls", "xlsx", "doc", "docx"],
|
|
59292
|
+
};
|
|
59293
|
+
const fileExtension = fileName
|
|
59294
|
+
? fileName.split(".").pop().toLowerCase()
|
|
59295
|
+
: null;
|
|
59296
|
+
const validExtensions = props.item.fileType === "excel"
|
|
59297
|
+
? allowedExtensions.excel
|
|
59298
|
+
: props.item.fileType === "pdf"
|
|
59299
|
+
? allowedExtensions.pdf
|
|
59300
|
+
: props.item.fileType === "image"
|
|
59301
|
+
? allowedExtensions.image
|
|
59302
|
+
: allowedExtensions.all;
|
|
59303
|
+
if (((_a = props.item) === null || _a === void 0 ? void 0 : _a.fileType) &&
|
|
59304
|
+
fileExtension &&
|
|
59305
|
+
!validExtensions.includes(fileExtension)) {
|
|
59306
|
+
((_b = props.item) === null || _b === void 0 ? void 0 : _b.handleFileError) &&
|
|
59307
|
+
((_c = props.item) === null || _c === void 0 ? void 0 : _c.handleFileError(`Please upload ${allowedExtensions[props.item.fileType].join(",")} Files only`));
|
|
59308
|
+
event.target.value = ""; // Clear the file input\
|
|
59309
|
+
props.setValue((_d = props.item) === null || _d === void 0 ? void 0 : _d.name, null);
|
|
59310
|
+
props.setValue(((_e = props.item) === null || _e === void 0 ? void 0 : _e.name) + "Name", "");
|
|
59311
|
+
return;
|
|
59312
|
+
}
|
|
59313
|
+
else if (event.target.files[event.target.files.length - 1].size > 20000000) {
|
|
59314
|
+
((_f = props.item) === null || _f === void 0 ? void 0 : _f.handleFileError) &&
|
|
59315
|
+
((_g = props.item) === null || _g === void 0 ? void 0 : _g.handleFileError(`File size should be less than 20MB`));
|
|
59316
|
+
event.target.files = null; // Clear the file input
|
|
59317
|
+
props.setValue((_h = props.item) === null || _h === void 0 ? void 0 : _h.name, null);
|
|
59318
|
+
props.setValue(((_j = props.item) === null || _j === void 0 ? void 0 : _j.name) + "File", []);
|
|
59319
|
+
return;
|
|
59320
|
+
}
|
|
59321
|
+
const fileArray = Array.from(file);
|
|
59322
|
+
console.log(fileArray, 'fileArrayfileArray');
|
|
59323
|
+
props.setValue((_k = props.item) === null || _k === void 0 ? void 0 : _k.name, fileName);
|
|
59324
|
+
props.setValue(((_l = props.item) === null || _l === void 0 ? void 0 : _l.name) + "File", fileArray);
|
|
59325
|
+
}, sx: { width: "100%" } })] })), jsxRuntimeExports.jsx(ErrorMessageComponent, { children: jsxRuntimeExports.jsx(s, { errors: props.errors, name: props.item.name }) })] }));
|
|
59326
|
+
};
|
|
59327
|
+
|
|
59255
59328
|
// export const renderLabel = (
|
|
59256
59329
|
// label: string,
|
|
59257
59330
|
// isRequired?: boolean,
|
|
@@ -59663,6 +59736,8 @@ const RenderForm = (props) => {
|
|
|
59663
59736
|
return (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: jsxRuntimeExports.jsx(MultiSelectV1, { props: props, variant: variant }) }));
|
|
59664
59737
|
case "file":
|
|
59665
59738
|
return jsxRuntimeExports.jsx(FormRenderFileUpload, { props: props, variant: variant });
|
|
59739
|
+
case "multifile":
|
|
59740
|
+
return jsxRuntimeExports.jsx(FormRenderMultiFileUpload, { props: props, variant: variant });
|
|
59666
59741
|
case "textarea":
|
|
59667
59742
|
return (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: jsxRuntimeExports.jsx(Controller, { control: props.control, name: props.item.name, render: ({ field }) => (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [renderLabel(variant, props), jsxRuntimeExports.jsx(TextField, Object.assign({ multiline: true, size: "small", InputProps: {
|
|
59668
59743
|
style: {
|
|
@@ -62199,6 +62274,25 @@ const useFormValidatingContext = (formArray) => {
|
|
|
62199
62274
|
}
|
|
62200
62275
|
renderCustomError(field);
|
|
62201
62276
|
break;
|
|
62277
|
+
case "multifile":
|
|
62278
|
+
initialValues[field.name] = null;
|
|
62279
|
+
if (field.required && field.errorMessage) {
|
|
62280
|
+
validationShape[field.name] = create$6()
|
|
62281
|
+
.test("hasAtLeastOneFile", field.errorMessage, (value) => {
|
|
62282
|
+
if (!value)
|
|
62283
|
+
return false;
|
|
62284
|
+
// Split by comma, trim, and filter out empty values
|
|
62285
|
+
const files = value
|
|
62286
|
+
.split(",")
|
|
62287
|
+
.map((f) => f.trim())
|
|
62288
|
+
.filter((f) => f !== "");
|
|
62289
|
+
return files.length > 0;
|
|
62290
|
+
})
|
|
62291
|
+
.required(field.errorMessage);
|
|
62292
|
+
renderCustomError(field);
|
|
62293
|
+
}
|
|
62294
|
+
renderCustomError(field);
|
|
62295
|
+
break;
|
|
62202
62296
|
case "number":
|
|
62203
62297
|
initialValues[field.name] = null;
|
|
62204
62298
|
if (field.required && field.errorMessage) {
|
|
@@ -62302,6 +62396,16 @@ const useFormValidatingContext = (formArray) => {
|
|
|
62302
62396
|
}
|
|
62303
62397
|
renderCustomError(field);
|
|
62304
62398
|
break;
|
|
62399
|
+
case "checkbox-group":
|
|
62400
|
+
initialValues[field.name] = "";
|
|
62401
|
+
if (field.required && field.errorMessage) {
|
|
62402
|
+
validationShape[field.name] = create$6()
|
|
62403
|
+
.typeError(`Select ${field.label}`)
|
|
62404
|
+
.required(field.errorMessage);
|
|
62405
|
+
renderCustomError(field);
|
|
62406
|
+
}
|
|
62407
|
+
renderCustomError(field);
|
|
62408
|
+
break;
|
|
62305
62409
|
case "multiselect":
|
|
62306
62410
|
initialValues[field.name] = null;
|
|
62307
62411
|
if (field.required && field.errorMessage) {
|