@erpsquad/common 1.8.114 → 1.8.115
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/_virtual/index/index.esm10.js +3 -3
- package/dist/_virtual/index/index.esm11.js +2 -4
- package/dist/_virtual/index/index.esm11.js.map +1 -1
- package/dist/_virtual/index/index.esm2.js +4 -2
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +3 -3
- package/dist/_virtual/index/index.esm4.js +3 -3
- package/dist/_virtual/index/index.esm5.js +3 -3
- package/dist/_virtual/index/index.esm6.js +3 -3
- package/dist/_virtual/index/index.esm7.js +3 -3
- package/dist/_virtual/index/index.esm8.js +3 -3
- package/dist/_virtual/index/index.esm9.js +3 -3
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/_virtual/index/index2.js +1 -1
- package/dist/_virtual/index/index3.js +1 -1
- package/dist/_virtual/index/index4.js +1 -1
- package/dist/_virtual/index/index5.js +1 -1
- package/dist/_virtual/index/index6.js +1 -1
- package/dist/_virtual/index/index7.js +1 -1
- package/dist/_virtual/index/index8.js +1 -1
- package/dist/_virtual/index/index9.js +1 -1
- package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
- package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
- package/dist/components/form-control/form-parser/form-parser/index.js.map +1 -1
- package/dist/index.esm.js +64 -64
- package/dist/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
- package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
- package/dist/src/utils/form-builder-deconversion.d.ts +0 -43
- package/dist/style.css +70 -70
- package/dist/utils/form-builder-deconversion/index.esm.js +5 -4
- package/dist/utils/form-builder-deconversion/index.esm.js.map +1 -1
- package/dist/utils/form-builder-deconversion/index.js +1 -1
- package/dist/utils/form-builder-deconversion/index.js.map +1 -1
- package/dist/utils/form-builder-deconversion.d.ts +0 -43
- package/dist/utils/index.esm.js +4 -4
- package/dist/utils/index.js +1 -1
- package/dist/views/form-builder/utils/common/index.esm.js +1 -1
- package/dist/views/form-builder/utils/common/index.js +1 -1
- package/dist/views/form-builder/utils/common/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/utils/esm/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/utils/esm/clamp/index/index.esm.js";
|
|
3
|
+
var require$$2 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$2 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm10.js.map
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import * as index from "../../node_modules/@mui/utils/esm/clamp/index/index.esm.js";
|
|
3
|
-
var require$$2 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
1
|
+
var dist = { exports: {} };
|
|
4
2
|
export {
|
|
5
|
-
|
|
3
|
+
dist as __module
|
|
6
4
|
};
|
|
7
5
|
//# sourceMappingURL=index.esm11.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm11.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm11.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
+
import * as index from "../../node_modules/@mui/material/utils/index/index.esm.js";
|
|
3
|
+
var require$$0 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
2
4
|
export {
|
|
3
|
-
|
|
5
|
+
require$$0 as default
|
|
4
6
|
};
|
|
5
7
|
//# sourceMappingURL=index.esm2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/styled-engine/index/index.esm.js";
|
|
3
|
+
var require$$1 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$1 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm3.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/utils/esm/deepmerge/index/index.esm.js";
|
|
3
|
+
var require$$4 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$4 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm4.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/utils/esm/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/utils/esm/capitalize/index/index.esm.js";
|
|
3
|
+
var require$$5 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$5 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm5.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/utils/esm/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/utils/esm/getDisplayName/index/index.esm.js";
|
|
3
|
+
var require$$6 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$6 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm6.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/system/esm/createTheme/index/index.esm.js";
|
|
3
|
+
var require$$7 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$7 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm7.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/system/esm/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/system/esm/styleFunctionSx/index/index.esm.js";
|
|
3
|
+
var require$$8 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$8 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm8.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
-
import * as index from "../../node_modules/@mui/
|
|
3
|
-
var require$$
|
|
2
|
+
import * as index from "../../node_modules/@mui/utils/esm/formatMuiErrorMessage/index/index.esm.js";
|
|
3
|
+
var require$$1 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
4
4
|
export {
|
|
5
|
-
require$$
|
|
5
|
+
require$$1 as default
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.esm9.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/clamp/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
|
|
2
2
|
//# sourceMappingURL=index10.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0})
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.__module={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index11.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/material/utils/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
|
|
2
2
|
//# sourceMappingURL=index2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/styled-engine/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
|
|
2
2
|
//# sourceMappingURL=index3.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/deepmerge/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
|
|
2
2
|
//# sourceMappingURL=index4.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/capitalize/index/index.js"),i=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=i;
|
|
2
2
|
//# sourceMappingURL=index5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/utils/esm/getDisplayName/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
|
|
2
2
|
//# sourceMappingURL=index6.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/system/esm/createTheme/index/index.js"),r=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=r;
|
|
2
2
|
//# sourceMappingURL=index7.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/system/esm/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),s=require("../../node_modules/@mui/system/esm/styleFunctionSx/index/index.js"),t=/* @__PURE__ */e.getAugmentedNamespace(s);exports.default=t;
|
|
2
2
|
//# sourceMappingURL=index8.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/utils/esm/formatMuiErrorMessage/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
|
|
2
2
|
//# sourceMappingURL=index9.js.map
|
|
@@ -4,7 +4,7 @@ import { useState, useCallback, useEffect } from "react";
|
|
|
4
4
|
import { images } from "../../../../images/index.esm.js";
|
|
5
5
|
/* empty css */
|
|
6
6
|
import { TabBar } from "../../../tabs/tabs/index.esm.js";
|
|
7
|
-
import
|
|
7
|
+
import formBuilderDeConversion from "../../../../utils/form-builder-deconversion/index.esm.js";
|
|
8
8
|
import { yupResolver as o } from "../../../../node_modules/@hookform/resolvers/yup/dist/yup/index.esm.js";
|
|
9
9
|
import * as Yup from "yup";
|
|
10
10
|
import dayjs from "dayjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react-hook-form"),r=require("react"),l=;/* empty css */;/* empty css */var i=,/* empty css */n=,/* empty css */a=,/* empty css */s=require("yup"),o=require("dayjs"),u=,/* empty css */d=,/* empty css */c=require("lodash"),m=require("react-i18next"),f=,/* empty css */v=;/* empty css */function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=/* @__PURE__ */Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,l.get?l:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var y=/* @__PURE__ */_(s),p=/* @__PURE__ */h(o),b=/* @__PURE__ */h(c);const g=(e,t,r,l)=>{var i;switch(t.type){case"required":return(null==(i=r.field_properties)?void 0:i.is_multiselect)?e.required(l(t.msg_en)).min(1,l(t.msg_en)):t.value?e.required(l(t.msg_en)).test("not-empty",l(t.msg_en),e=>{var t;return"string"!=typeof e||e&&(null==(t=null==e?void 0:e.trim())?void 0:t.length)>0}):e.nullable();case"min_length":case"min_val":return e.min(t.value,l(t.msg_en));case"max_length":case"max_val":return e.max(t.value,l(t.msg_en));case"postive_number":return e.test("is-positive-number",l(t.msg_en),e=>e>=0);case"email":return e.email(t.msg_en);case"no_special_char":return e.test("no-special-char",l(t.msg_en),e=>"string"!=typeof e||/^[^.\-\W_]+$/u.test(e));case"when":return e.when(t.relation,{is:e=>e===t.values,then:()=>{var i;return(null==(i=null==t?void 0:t.thenValidations)?void 0:i.reduce((e,t)=>g(e,t,r,l),e))||e},otherwise:()=>{var i;return(null==(i=null==t?void 0:t.otherWiseValidations)?void 0:i.reduce((e,t)=>g(e,t,r,l),e))||e}});default:return e}};exports.default=({data:s,defaultValues:o,handleFormSubmit:c,fieldArrayName:h,mode:_,displayAvtar:w=!1,onTableAddClick:j,handleFormValues:A,getFormMethods:E,setFields:S,onSelectFooterClick:x,setActiveTabValue:C,activeTab:q=0,recieveTabDataLenght:F,recieveIsValidForm:k,activeTabs:T,onTableCellChange:V,containerStyles:O,isButton:$=!0,getSelectedData:N,refreshOptions:B=!1,onBlur:D})=>{const{t:M}=m.useTranslation(),P=e=>{var t;switch(e.field_type){case"select":return(null==(t=e.field_properties)?void 0:t.is_multiselect)?y.array():y.string();case"number":case"currency":return y.number().transform((e,t)=>""===t?void 0:e).typeError("Please enter valid number").nullable();case"currency_with_amount":return y.number();case"url":return y.string().matches(/^(https?:\/\/)?((([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,})|localhost)(:\d{2,5})?(\/[a-zA-Z0-9#_-]+\/?)*(\?[a-zA-Z0-9&=_-]+)?(#\S+)?$/,{excludeEmptyString:!0,message:"Please enter valid URL."});default:return y.string()}},L=e=>{const t={};for(const r in e)"object"!=typeof e[r]||Object.hasOwn(e[r],"tests")?t[r]=e[r]:t[r]=y.object().shape(L(e[r]));return t},{control:I,handleSubmit:z,formState:{errors:W},setValue:Z,reset:R,getValues:U,watch:H,resetField:J,unregister:Y,trigger:G,getFieldState:K,...Q}=t.useForm({...o&&"object"==typeof o?{defaultValues:o}:{},resolver:a.yupResolver((e=>{const t={};let r={},l={};return e&&(null==e||e.forEach(e=>{var i;let n;e.validation&&e.validation.length>0&&((null==(i=e.name)?void 0:i.includes("."))?r=function(e,t,r={}){const l=e.split(".");let i=r;return l.forEach((e,r)=>{if(r===l.length-1)if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else{const r=t.validation.reduce((e,r)=>{var l;switch(r.type){case"required":return r.value?e.required(M(r.msg_en)).test("not-empty",M(r.msg_en),e=>{var t;return"string"!=typeof e||e&&(null==(t=null==e?void 0:e.trim())?void 0:t.length)>0}):(null==(l=t.field_properties)?void 0:l.is_multiselect)?e.min(1,M(r.msg_en)):e.nullable();case"min_length":case"min_val":return e.min(r.value,M(r.msg_en));case"max_length":case"max_val":return e.max(r.value,M(r.msg_en));default:return e}},P(t));i[e]=r}else{if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else i[e]={};i=i[e]}}),r}(e.name,e,r):(n=e.validation.reduce((t,r)=>g(t,r,e,M),P(e)),t[e.name]=n),l=L(r))})),y.object().shape({[h]:y.object().shape({...t,...l})})})(s)),mode:"all"}),X=t.useWatch({control:I,name:h}),[ee,te]=r.useState([]),[re,le]=r.useState([]),[ie,ne]=r.useState(!1),[ae,se]=r.useState(""),[oe,ue]=r.useState(!1),[de,ce]=r.useState([]),me=e=>{null==j||j(e)},fe=r.useCallback(e=>{var t,r,l;const i=(null==(t=null==e?void 0:e.members)?void 0:t.map(e=>e))||[],n=U(h),a=e.section_type===u.SECTION_TYPES.FORM_SWITCH_SECTION,s=(null==e?void 0:e.form_switcher_name)||(null==(r=null==e?void 0:e.form_switcher_label)?void 0:r.toLowerCase().split(" ").join("_")),o=null==(l=null==e?void 0:e.switcher_forms)?void 0:l.map(e=>({...e,formMembers:i.filter(t=>t.section_form_id===e.id)})),d=(null==n?void 0:n[s])?o.find(e=>e.name===(null==n?void 0:n[s])):{};let c;return c=a?[...i.filter(e=>!e.section_form_id&&!e.is_form_switcher_section),...(null==d?void 0:d.formMembers)||[]]:null==e?void 0:e.members,{isFormSwitcher:a,formSwitcherName:s,switchForms:o,selectedSectionForm:d,members:c,values:n}},[h,U]),ve=r.useCallback((e,t,r,l)=>{var i;const n=null==(i=null==l?void 0:l[r])?void 0:i[null==t?void 0:t.country_code_field_name],a=`+${e.dialCode}`;(null==t?void 0:t.is_country_code_separate)&&(null==t?void 0:t.country_code_field_name)&&n!==a&&Z(`${r}.${null==t?void 0:t.country_code_field_name}`,a)},[Z]),he=r.useCallback(e=>{e.forEach(e=>{null==e||e.formMembers.forEach(e=>{const t=(null==e?void 0:e.name)||e.label.toLowerCase().split(" ").join("_"),r=b.default.get(o,`${h}.${t}`,null),l=s.map(t=>((null==e?void 0:e.section_form_id)===(null==t?void 0:t.section_form_id)&&delete t.value,{...t,...r?{value:r}:{}}));r||(J(`${h}.${t}`),Y(`${h}.${t}`)),null==S||S(l)})})},[s,o,h,J,S,Y]),_e=r.useCallback((e,t,r={})=>{const l=e.split(".");let i=r;return l.forEach((e,r)=>{if(r===l.length-1)if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else{let r=t.value;if(r&&("image"!==t.field_type||"file"!==t.field_type))if("date"===t.field_type)r=p.default(r);else if("time"===t.field_type){const[e,t,l]=r.split(":").map(Number);r=p.default().set("hour",e).set("minute",t).set("second",l).set("millisecond",0)}else t.name.includes("_id")&&!Array.isArray(null==t?void 0:t.value)&&(r=Number(r));i[e]=r}else{if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else i[e]={};i=i[e]}}),r},[]),ye=r.useCallback((e,t)=>(b.default.forOwn(e,(r,l)=>{b.default.has(t,l)&&b.default.isEqual(r,t[l])&&delete e[l]}),e),[]),pe=r.useCallback(e=>{var t;const r=[];e&&e&&(null==(t=e[0])||t.formMembers.forEach(e=>{(null==e?void 0:e.validation)&&Array.isArray(null==e?void 0:e.validation)&&(null==e||e.validation.forEach(t=>{(null==t?void 0:t.thenValidations)&&Array.isArray(null==t?void 0:t.thenValidations)?null==t||t.thenValidations.forEach(t=>{"required"===(null==t?void 0:t.type)&&!0===(null==t?void 0:t.value)&&(null==e?void 0:e.name)&&r.push(e.name)}):e.validation.some(e=>"required"===e.type&&!0===e.value)&&r.push(e.name)}))})),r&&ce(b.default.uniq(r))},[]),be=r.useCallback(e=>null==e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length,[]),ge=r.useCallback((e,t)=>{const r=[];return t.forEach(t=>{const l=t.split(".");let i=e;for(let e=0;e<l.length;e++){const n=l[e];if(!(null==i?void 0:i[n])&&0!==(null==i?void 0:i[n]))return void r.push(t);i=i[n]}be(i)&&r.push(t)}),r},[be]);return r.useEffect(()=>{F&&F(re.length)},[F,re]),r.useEffect(()=>{const e=e=>{if(e.origin!==window.origin)return;const{state:t}=e.data;if(null==t?void 0:t.length){const e=n.formBuilderDeConversion(t);e.tab?le(e.tab):e.section&&te(e.section)}};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[]),r.useEffect(()=>{var e,t;if(s){const r=n.formBuilderDeConversion(s);(null==r?void 0:r.tab)?(le(r.tab),void 0!==q&&te((null==(e=r.tab[q])?void 0:e.data)||[])):te(r.section);const l=b.default.get(o,h,{}),i=ye(X||{},l||{});if("edit"===_&&!(null==(t=Object.keys(i))?void 0:t.length)){let e={},t={};s.forEach(r=>{var l;const i=r.value;if(null==(l=r.name)?void 0:l.includes("."))t=_e(r.name,r,t);else if(i&&("image"!==r.field_type||"file"!==r.field_type))if(null==r?void 0:r.is_section_field){const t=(null==r?void 0:r.form_switcher_name)||(null==r?void 0:r.form_switcher_label);e={...e,[t]:i}}else if((null==r?void 0:r.name)&&["company_id","email_ids"].includes(null==r?void 0:r.name)&&["edit_customer","add_customer","edit_vendor","add_vendor"].includes(h))e={...e,[r.name]:i};else if("date"===r.field_type)e={...e,[r.name]:p.default(i)};else if("time"===r.field_type){const[t,l,n]=i.split(":").map(Number);e={...e,[r.name]:p.default().set("hour",t).set("minute",l).set("second",n).set("millisecond",0)}}else e=r.name.includes("_id")&&!Array.isArray(null==r?void 0:r.value)?"edit_user"===h&&"role_id"===r.name?{...e,[r.name]:i}:{...e,[r.name]:Number(i)}:{...e,[r.name]:i}});const r={...e,...t};R({[h]:{...r}})}null==E||E({control:I,handleSubmit:z,setValue:Z,reset:R,resetField:J,getValues:U,unregister:Y,trigger:G,watch:H,getFieldState:K,errors:W,...Q})}},[s]),r.useEffect(()=>{(null==q?void 0:q.toString())&&re&&re[q]&&te(re[q].data)},[q,re]),r.useEffect(()=>{X&&A&&(null==A||A(X))},[A,X]),r.useEffect(()=>{(null==W?void 0:W[h])?ne(!0):ne(!1)},[h,JSON.stringify(W)]),r.useEffect(()=>{var e;const t=[];null!=q&&(null==(e=re[q])||e.data.forEach(e=>{e.members&&Array.isArray(e.members)&&e.members.forEach(e=>{e.validation&&Array.isArray(e.validation)&&e.validation.some(e=>"required"===e.type&&!0===e.value)&&t.push(e.name)})}),ce(t))},[re,q]),r.useEffect(()=>{if(null==X?void 0:X.account_type){const e=[];ee&&ee.forEach(t=>{var r,l;const i=ee&&(null==(r=null==t?void 0:t.members)?void 0:r.map(e=>e))||[],n=ee&&(null==(l=null==t?void 0:t.switcher_forms)?void 0:l.map(e=>({...e,formMembers:i.filter(t=>t.section_form_id===e.id)})));n&&e.push(n)});const t=(null==X?void 0:X.account_type)||"Individual",r=e&&Array.isArray(e[0])?e[0].filter(e=>e.name===t):[];r&&pe(r)}},[null==X?void 0:X.account_type,ee,pe]),r.useEffect(()=>{de.length>0?0===ge(X,de).length?ue(!0):ue(!1):ue(!0)},[de,X,q]),r.useEffect(()=>{k&&k(oe)},[k,oe]),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react-hook-form"),r=require("react"),l=;/* empty css */;/* empty css */var i=,/* empty css */n=,/* empty css */a=,/* empty css */s=require("yup"),o=require("dayjs"),u=,/* empty css */d=,/* empty css */c=require("lodash"),m=require("react-i18next"),f=,/* empty css */v=;/* empty css */function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _(e){if(e&&"object"==typeof e&&"default"in e)return e;var t=/* @__PURE__ */Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,l.get?l:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var y=/* @__PURE__ */_(s),p=/* @__PURE__ */h(o),b=/* @__PURE__ */h(c);const g=(e,t,r,l)=>{var i;switch(t.type){case"required":return(null==(i=r.field_properties)?void 0:i.is_multiselect)?e.required(l(t.msg_en)).min(1,l(t.msg_en)):t.value?e.required(l(t.msg_en)).test("not-empty",l(t.msg_en),e=>{var t;return"string"!=typeof e||e&&(null==(t=null==e?void 0:e.trim())?void 0:t.length)>0}):e.nullable();case"min_length":case"min_val":return e.min(t.value,l(t.msg_en));case"max_length":case"max_val":return e.max(t.value,l(t.msg_en));case"postive_number":return e.test("is-positive-number",l(t.msg_en),e=>e>=0);case"email":return e.email(t.msg_en);case"no_special_char":return e.test("no-special-char",l(t.msg_en),e=>"string"!=typeof e||/^[^.\-\W_]+$/u.test(e));case"when":return e.when(t.relation,{is:e=>e===t.values,then:()=>{var i;return(null==(i=null==t?void 0:t.thenValidations)?void 0:i.reduce((e,t)=>g(e,t,r,l),e))||e},otherwise:()=>{var i;return(null==(i=null==t?void 0:t.otherWiseValidations)?void 0:i.reduce((e,t)=>g(e,t,r,l),e))||e}});default:return e}};exports.default=({data:s,defaultValues:o,handleFormSubmit:c,fieldArrayName:h,mode:_,displayAvtar:w=!1,onTableAddClick:j,handleFormValues:A,getFormMethods:E,setFields:S,onSelectFooterClick:x,setActiveTabValue:C,activeTab:q=0,recieveTabDataLenght:F,recieveIsValidForm:k,activeTabs:T,onTableCellChange:V,containerStyles:O,isButton:$=!0,getSelectedData:N,refreshOptions:B=!1,onBlur:D})=>{const{t:M}=m.useTranslation(),P=e=>{var t;switch(e.field_type){case"select":return(null==(t=e.field_properties)?void 0:t.is_multiselect)?y.array():y.string();case"number":case"currency":return y.number().transform((e,t)=>""===t?void 0:e).typeError("Please enter valid number").nullable();case"currency_with_amount":return y.number();case"url":return y.string().matches(/^(https?:\/\/)?((([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,})|localhost)(:\d{2,5})?(\/[a-zA-Z0-9#_-]+\/?)*(\?[a-zA-Z0-9&=_-]+)?(#\S+)?$/,{excludeEmptyString:!0,message:"Please enter valid URL."});default:return y.string()}},L=e=>{const t={};for(const r in e)"object"!=typeof e[r]||Object.hasOwn(e[r],"tests")?t[r]=e[r]:t[r]=y.object().shape(L(e[r]));return t},{control:I,handleSubmit:z,formState:{errors:W},setValue:Z,reset:R,getValues:U,watch:H,resetField:J,unregister:Y,trigger:G,getFieldState:K,...Q}=t.useForm({...o&&"object"==typeof o?{defaultValues:o}:{},resolver:a.yupResolver((e=>{const t={};let r={},l={};return e&&(null==e||e.forEach(e=>{var i;let n;e.validation&&e.validation.length>0&&((null==(i=e.name)?void 0:i.includes("."))?r=function(e,t,r={}){const l=e.split(".");let i=r;return l.forEach((e,r)=>{if(r===l.length-1)if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else{const r=t.validation.reduce((e,r)=>{var l;switch(r.type){case"required":return r.value?e.required(M(r.msg_en)).test("not-empty",M(r.msg_en),e=>{var t;return"string"!=typeof e||e&&(null==(t=null==e?void 0:e.trim())?void 0:t.length)>0}):(null==(l=t.field_properties)?void 0:l.is_multiselect)?e.min(1,M(r.msg_en)):e.nullable();case"min_length":case"min_val":return e.min(r.value,M(r.msg_en));case"max_length":case"max_val":return e.max(r.value,M(r.msg_en));default:return e}},P(t));i[e]=r}else{if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else i[e]={};i=i[e]}}),r}(e.name,e,r):(n=e.validation.reduce((t,r)=>g(t,r,e,M),P(e)),t[e.name]=n),l=L(r))})),y.object().shape({[h]:y.object().shape({...t,...l})})})(s)),mode:"all"}),X=t.useWatch({control:I,name:h}),[ee,te]=r.useState([]),[re,le]=r.useState([]),[ie,ne]=r.useState(!1),[ae,se]=r.useState(""),[oe,ue]=r.useState(!1),[de,ce]=r.useState([]),me=e=>{null==j||j(e)},fe=r.useCallback(e=>{var t,r,l;const i=(null==(t=null==e?void 0:e.members)?void 0:t.map(e=>e))||[],n=U(h),a=e.section_type===u.SECTION_TYPES.FORM_SWITCH_SECTION,s=(null==e?void 0:e.form_switcher_name)||(null==(r=null==e?void 0:e.form_switcher_label)?void 0:r.toLowerCase().split(" ").join("_")),o=null==(l=null==e?void 0:e.switcher_forms)?void 0:l.map(e=>({...e,formMembers:i.filter(t=>t.section_form_id===e.id)})),d=(null==n?void 0:n[s])?o.find(e=>e.name===(null==n?void 0:n[s])):{};let c;return c=a?[...i.filter(e=>!e.section_form_id&&!e.is_form_switcher_section),...(null==d?void 0:d.formMembers)||[]]:null==e?void 0:e.members,{isFormSwitcher:a,formSwitcherName:s,switchForms:o,selectedSectionForm:d,members:c,values:n}},[h,U]),ve=r.useCallback((e,t,r,l)=>{var i;const n=null==(i=null==l?void 0:l[r])?void 0:i[null==t?void 0:t.country_code_field_name],a=`+${e.dialCode}`;(null==t?void 0:t.is_country_code_separate)&&(null==t?void 0:t.country_code_field_name)&&n!==a&&Z(`${r}.${null==t?void 0:t.country_code_field_name}`,a)},[Z]),he=r.useCallback(e=>{e.forEach(e=>{null==e||e.formMembers.forEach(e=>{const t=(null==e?void 0:e.name)||e.label.toLowerCase().split(" ").join("_"),r=b.default.get(o,`${h}.${t}`,null),l=s.map(t=>((null==e?void 0:e.section_form_id)===(null==t?void 0:t.section_form_id)&&delete t.value,{...t,...r?{value:r}:{}}));r||(J(`${h}.${t}`),Y(`${h}.${t}`)),null==S||S(l)})})},[s,o,h,J,S,Y]),_e=r.useCallback((e,t,r={})=>{const l=e.split(".");let i=r;return l.forEach((e,r)=>{if(r===l.length-1)if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else{let r=t.value;if(r&&("image"!==t.field_type||"file"!==t.field_type))if("date"===t.field_type)r=p.default(r);else if("time"===t.field_type){const[e,t,l]=r.split(":").map(Number);r=p.default().set("hour",e).set("minute",t).set("second",l).set("millisecond",0)}else t.name.includes("_id")&&!Array.isArray(null==t?void 0:t.value)&&(r=Number(r));i[e]=r}else{if(i[e]){if("object"!=typeof i[e]||Array.isArray(i[e]))throw new Error(`Conflict: The key "${e}" already exists and is not an object.`)}else i[e]={};i=i[e]}}),r},[]),ye=r.useCallback((e,t)=>(b.default.forOwn(e,(r,l)=>{b.default.has(t,l)&&b.default.isEqual(r,t[l])&&delete e[l]}),e),[]),pe=r.useCallback(e=>{var t;const r=[];e&&e&&(null==(t=e[0])||t.formMembers.forEach(e=>{(null==e?void 0:e.validation)&&Array.isArray(null==e?void 0:e.validation)&&(null==e||e.validation.forEach(t=>{(null==t?void 0:t.thenValidations)&&Array.isArray(null==t?void 0:t.thenValidations)?null==t||t.thenValidations.forEach(t=>{"required"===(null==t?void 0:t.type)&&!0===(null==t?void 0:t.value)&&(null==e?void 0:e.name)&&r.push(e.name)}):e.validation.some(e=>"required"===e.type&&!0===e.value)&&r.push(e.name)}))})),r&&ce(b.default.uniq(r))},[]),be=r.useCallback(e=>null==e||Array.isArray(e)&&0===e.length||"object"==typeof e&&0===Object.keys(e).length,[]),ge=r.useCallback((e,t)=>{const r=[];return t.forEach(t=>{const l=t.split(".");let i=e;for(let e=0;e<l.length;e++){const n=l[e];if(!(null==i?void 0:i[n])&&0!==(null==i?void 0:i[n]))return void r.push(t);i=i[n]}be(i)&&r.push(t)}),r},[be]);return r.useEffect(()=>{F&&F(re.length)},[F,re]),r.useEffect(()=>{const e=e=>{if(e.origin!==window.origin)return;const{state:t}=e.data;if(null==t?void 0:t.length){const e=n.default(t);e.tab?le(e.tab):e.section&&te(e.section)}};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[]),r.useEffect(()=>{var e,t;if(s){const r=n.default(s);(null==r?void 0:r.tab)?(le(r.tab),void 0!==q&&te((null==(e=r.tab[q])?void 0:e.data)||[])):te(r.section);const l=b.default.get(o,h,{}),i=ye(X||{},l||{});if("edit"===_&&!(null==(t=Object.keys(i))?void 0:t.length)){let e={},t={};s.forEach(r=>{var l;const i=r.value;if(null==(l=r.name)?void 0:l.includes("."))t=_e(r.name,r,t);else if(i&&("image"!==r.field_type||"file"!==r.field_type))if(null==r?void 0:r.is_section_field){const t=(null==r?void 0:r.form_switcher_name)||(null==r?void 0:r.form_switcher_label);e={...e,[t]:i}}else if((null==r?void 0:r.name)&&["company_id","email_ids"].includes(null==r?void 0:r.name)&&["edit_customer","add_customer","edit_vendor","add_vendor"].includes(h))e={...e,[r.name]:i};else if("date"===r.field_type)e={...e,[r.name]:p.default(i)};else if("time"===r.field_type){const[t,l,n]=i.split(":").map(Number);e={...e,[r.name]:p.default().set("hour",t).set("minute",l).set("second",n).set("millisecond",0)}}else e=r.name.includes("_id")&&!Array.isArray(null==r?void 0:r.value)?"edit_user"===h&&"role_id"===r.name?{...e,[r.name]:i}:{...e,[r.name]:Number(i)}:{...e,[r.name]:i}});const r={...e,...t};R({[h]:{...r}})}null==E||E({control:I,handleSubmit:z,setValue:Z,reset:R,resetField:J,getValues:U,unregister:Y,trigger:G,watch:H,getFieldState:K,errors:W,...Q})}},[s]),r.useEffect(()=>{(null==q?void 0:q.toString())&&re&&re[q]&&te(re[q].data)},[q,re]),r.useEffect(()=>{X&&A&&(null==A||A(X))},[A,X]),r.useEffect(()=>{(null==W?void 0:W[h])?ne(!0):ne(!1)},[h,JSON.stringify(W)]),r.useEffect(()=>{var e;const t=[];null!=q&&(null==(e=re[q])||e.data.forEach(e=>{e.members&&Array.isArray(e.members)&&e.members.forEach(e=>{e.validation&&Array.isArray(e.validation)&&e.validation.some(e=>"required"===e.type&&!0===e.value)&&t.push(e.name)})}),ce(t))},[re,q]),r.useEffect(()=>{if(null==X?void 0:X.account_type){const e=[];ee&&ee.forEach(t=>{var r,l;const i=ee&&(null==(r=null==t?void 0:t.members)?void 0:r.map(e=>e))||[],n=ee&&(null==(l=null==t?void 0:t.switcher_forms)?void 0:l.map(e=>({...e,formMembers:i.filter(t=>t.section_form_id===e.id)})));n&&e.push(n)});const t=(null==X?void 0:X.account_type)||"Individual",r=e&&Array.isArray(e[0])?e[0].filter(e=>e.name===t):[];r&&pe(r)}},[null==X?void 0:X.account_type,ee,pe]),r.useEffect(()=>{de.length>0?0===ge(X,de).length?ue(!0):ue(!1):ue(!0)},[de,X,q]),r.useEffect(()=>{k&&k(oe)},[k,oe]),
|
|
2
2
|
/* @__PURE__ */e.jsx(v.default,{sx:{width:"100%",padding:"2rem",...O},children:/* @__PURE__ */e.jsx(t.FormProvider,{...{control:I,handleSubmit:z,setValue:Z,reset:R,resetField:J,getValues:U,unregister:Y,trigger:G,watch:H,errors:W,...Q},children:/* @__PURE__ */e.jsxs("form",{id:h,name:h,onSubmit:z(c),children:[Boolean(null==re?void 0:re.length)&&/* @__PURE__ */e.jsxs(e.Fragment,{children:[ie&&/* @__PURE__ */e.jsx(d.Alert,{severity:"error",onClose:()=>ne(!1),children:"Please fill all the required fields."}),
|
|
3
3
|
/* @__PURE__ */e.jsx(i.TabBar,{tabs:re,activeTabs:T,activeValue:q,setActiveValue:C,isFormTabValid:oe})]}),ee&&ee.map((t,r)=>{const{isFormSwitcher:i,formSwitcherName:n,switchForms:a,members:s,values:o}=fe(t);/* @__PURE__ */
|
|
4
4
|
return e.jsx(f.FormSection,{section:t,index:r,members:s,switchForms:a,isFormSwitcher:i,control:I,fieldArrayName:h,formSwitcherName:n,displayAvtar:w,isButton:$,currencyOption:ae,values:o,onBlur:D,setValue:Z,onSelectFooterClick:x,getSelectedData:N,setCurrencyOptions:se,refreshOptions:B,handleFieldCleanUp:he,handleSetCountryCodeField:ve,handleTableAddClick:me,onTableCellChange:V,setDetailsData:setDetailsData,t:M,images:l.images})})]})})})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/form-control/form-parser/form-parser.tsx"],"sourcesContent":["import { FormProvider, useForm, useWatch } from \"react-hook-form\";\n// import { useLocation } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\n\n// import FullScreenLayout from \"../../../layout/fullScreen/fullScreen\";\n\nimport { useState, useEffect, useCallback } from \"react\";\nimport images from \"../../../assets/images\";\nimport \"./form-parser.scss\";\nimport TabBar from \"../../tabs/tabs\";\nimport formBuilderDeConversion from \"../../../utils/form-builder-deconversion\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport dayjs from \"dayjs\";\nimport { SECTION_TYPES } from '../../../utils/constant';\nimport { CountryData } from 'react-phone-input-2';\nimport Alert from '../../alert/alert';\nimport _ from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport FormSection from \"./form-section\";\nconst validationReducer = (validations: any, validation: any, field: any, translationFn: any) => {\n switch (validation.type) {\n case \"required\":\n return (field.field_properties?.is_multiselect ? validations.required(translationFn(validation.msg_en)).min(1, translationFn(validation.msg_en)) : validation.value\n ? validations.required(translationFn(validation.msg_en)).test('not-empty', translationFn(validation.msg_en), value => typeof value === 'string' ? value && value?.trim()?.length > 0 : true) : validations.nullable());\n case \"min_length\":\n return validations.min(validation.value, translationFn(validation.msg_en));\n case \"max_length\":\n return validations.max(validation.value, translationFn(validation.msg_en));\n case \"min_val\":\n return validations.min(validation.value, translationFn(validation.msg_en));\n case \"max_val\":\n return validations.max(validation.value, translationFn(validation.msg_en));\n case \"postive_number\":\n return validations.test('is-positive-number', translationFn(validation.msg_en), (value) => value >= 0)\n case 'email':\n return validations.email(validation.msg_en);\n case \"no_special_char\":\n return validations.test(\n \"no-special-char\",\n translationFn(validation.msg_en),\n value =>\n typeof value === \"string\"\n ? /^[^.\\-\\W_]+$/u.test(value) // allow letters/digits only\n : true\n );\n case \"when\":\n return validations.when(validation.relation, {\n is: (val: any) => val === validation.values,\n then: () => validation?.thenValidations?.reduce(\n (validations: any, validation: any) => validationReducer(validations, validation, field, translationFn),\n validations\n ) || validations,\n otherwise: () => validation?.otherWiseValidations?.reduce(\n (validations: any, validation: any) => validationReducer(validations, validation, field, translationFn),\n validations\n ) || validations,\n });\n // Add more cases for other validation types as needed\n default:\n return validations;\n }\n}\n\nconst FormParser = ({\n data,\n defaultValues,\n handleFormSubmit,\n fieldArrayName,\n mode,\n displayAvtar = false,\n onTableAddClick,\n handleFormValues,\n getFormMethods,\n setFields,\n onSelectFooterClick,\n setActiveTabValue,\n activeTab = 0,\n recieveTabDataLenght,\n recieveIsValidForm,\n activeTabs,\n onTableCellChange,\n containerStyles = undefined,\n isButton = true,\n getSelectedData,\n refreshOptions = false,\n onBlur,\n}: any) => {\n\n const { t } = useTranslation();\n\n function convertToNestedObject(dotNotationString: string, field: any, existingObject: any = {}) {\n const keys = dotNotationString.split('.');\n let currentLevel = existingObject;\n\n keys.forEach((key, index) => {\n if (index === keys.length - 1) {\n if (!currentLevel[key]) {\n const fieldValidations = field.validation.reduce(\n (validations: any, validation: any) => {\n switch (validation.type) {\n case \"required\":\n return validation.value\n ? validations.required(t(validation.msg_en)).test('not-empty', t(validation.msg_en), value => typeof value === 'string' ? value && value?.trim()?.length > 0 : true)\n : (field.field_properties?.is_multiselect ? validations.min(1, t(validation.msg_en)) : validations.nullable());\n case \"min_length\":\n return validations.min(validation.value, t(validation.msg_en));\n case \"max_length\":\n return validations.max(validation.value, t(validation.msg_en));\n case \"min_val\":\n return validations.min(validation.value, t(validation.msg_en));\n case \"max_val\":\n return validations.max(validation.value, t(validation.msg_en));\n // Add more cases for other validation types as needed\n default:\n return validations;\n }\n },\n getValidationType(field)\n );\n currentLevel[key] = fieldValidations;\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n } else {\n if (!currentLevel[key]) {\n currentLevel[key] = {};\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n currentLevel = currentLevel[key];\n\n }\n });\n\n return existingObject;\n }\n\n const getValidationType = (field: any) => {\n switch (field.field_type) {\n case 'select':\n return field.field_properties?.is_multiselect\n ? yup.array()\n : yup.string()\n\n case 'number':\n case 'currency':\n return yup.number().transform((value, originalValue) => (originalValue === '' ? undefined : value)).typeError('Please enter valid number').nullable()\n case 'currency_with_amount':\n return yup.number()\n case 'url':\n return yup.string().matches(/^(https?:\\/\\/)?((([a-zA-Z0-9_-]+\\.)+[a-zA-Z]{2,})|localhost)(:\\d{2,5})?(\\/[a-zA-Z0-9#_-]+\\/?)*(\\?[a-zA-Z0-9&=_-]+)?(#\\S+)?$/, { excludeEmptyString: true, message: \"Please enter valid URL.\" })\n\n default:\n return yup.string()\n }\n }\n\n const convertNestedFieldSchemaObject = (nestedFields: any) => {\n const schema: any = {};\n\n for (const key in nestedFields) {\n if (typeof nestedFields[key] === 'object' && !Object.hasOwn(nestedFields[key], 'tests')) {\n schema[key] = yup.object().shape(convertNestedFieldSchemaObject(nestedFields[key]));\n } else {\n schema[key] = nestedFields[key]\n }\n }\n return schema;\n }\n\n\n const generateValidationSchema = (data: any[]) => {\n const yupSchemaObject: any = {};\n let nestedFielvalidations: any = {},\n nestedYupSchemaObj: any = {};\n\n data &&\n data?.forEach((field: any) => {\n let fieldValidations: any;\n if (field.validation && field.validation.length > 0) {\n if (field.name?.includes(\".\")) {\n nestedFielvalidations = convertToNestedObject(field.name, field, nestedFielvalidations);\n } else {\n fieldValidations = field.validation.reduce((validations: any, validation: any) => validationReducer(validations, validation, field, t),\n getValidationType(field)\n );\n yupSchemaObject[field.name] = fieldValidations;\n }\n\n nestedYupSchemaObj = convertNestedFieldSchemaObject(nestedFielvalidations)\n }\n\n });\n\n return yup.object().shape({\n [fieldArrayName]: yup.object().shape({ ...yupSchemaObject, ...nestedYupSchemaObj }),\n });\n };\n\n const {\n control,\n handleSubmit,\n formState: { errors },\n setValue,\n reset,\n getValues,\n watch,\n resetField,\n unregister,\n trigger,\n getFieldState,\n ...rest\n } = useForm({\n ...(defaultValues && typeof defaultValues === 'object' ? { defaultValues } : {}),\n resolver: yupResolver(generateValidationSchema(data)),\n mode: \"all\",\n });\n\n const watchedValues = useWatch({\n control,\n name: fieldArrayName,\n });\n\n // Local States\n const [schema, setSchema] = useState<[]>([]);\n const [tabsData, setTabsData] = useState<any[]>([]);\n const [errorAlert, setErrorAlert] = useState<boolean>(false);\n const [currencyOption, setCurrencyOptions] = useState<string>('');\n const [isTabFormValid, setTabFormValid] = useState<boolean>(false);\n const [validateRequiredFields, setValidRequiredFields] = useState<any[]>([]);\n\n // Local Functions\n const handleTableAddClick = (tableName?: string) => {\n onTableAddClick?.(tableName)\n }\n\n const getSectionData = useCallback((section: any) => {\n const sectionMembers = section?.members?.map((ele: any) => ele) || []\n const values = getValues(fieldArrayName)\n const isFormSwitcher = section.section_type === SECTION_TYPES.FORM_SWITCH_SECTION\n const formSwitcherName =\n section?.form_switcher_name ||\n section?.form_switcher_label?.toLowerCase().split(\" \").join(\"_\");\n const switchForms = section?.switcher_forms?.map((form: any) => ({\n ...form,\n formMembers: sectionMembers.filter(\n (member: any) => member.section_form_id === form.id,\n )\n }));\n const selectedSectionForm =\n values?.[formSwitcherName] ?\n switchForms.find((ele: any) =>\n ele.name === values?.[formSwitcherName]\n ) : {};\n\n // When form switcher is active, include:\n // 1. Common fields (fields without section_form_id or is_form_switcher_section)\n // 2. Form-specific fields (fields with section_form_id matching the selected form)\n let members;\n if (isFormSwitcher) {\n const commonFields = sectionMembers.filter(\n (member: any) => !member.section_form_id && !member.is_form_switcher_section\n );\n const formSpecificFields = selectedSectionForm?.formMembers || [];\n members = [...commonFields, ...formSpecificFields];\n } else {\n members = section?.members;\n }\n\n return {\n isFormSwitcher,\n formSwitcherName,\n switchForms,\n selectedSectionForm,\n members,\n values\n }\n }, [fieldArrayName, getValues])\n\n const handleSetCountryCodeField = useCallback((country: CountryData, field: any, fieldArrayName: any, values: any) => {\n const oldVal = values?.[fieldArrayName]?.[field?.country_code_field_name]\n const newVal = `+${country.dialCode}`\n if (\n field?.is_country_code_separate &&\n field?.country_code_field_name &&\n oldVal !== newVal\n ) {\n setValue(\n `${fieldArrayName}.${field?.country_code_field_name}` as never,\n newVal as never\n )\n }\n }, [setValue])\n\n const handleFieldCleanUp = useCallback((switchForms: any) => {\n switchForms.forEach((form: any) => {\n form?.formMembers.forEach((member: any) => {\n const memberName = member?.name || member.label.toLowerCase().split(\" \").join(\"_\")\n const v = _.get(defaultValues, `${fieldArrayName}.${memberName}`, null)\n const newData = data.map((ele: any) => {\n if (member?.section_form_id === ele?.section_form_id) {\n delete ele.value\n }\n return ({\n ...ele,\n ...(v ? { value: v } : {}),\n })\n })\n if (!v) {\n resetField(`${fieldArrayName}.${memberName}` as never)\n unregister(`${fieldArrayName}.${memberName}` as never)\n }\n setFields?.(newData)\n })\n\n })\n }, [data, defaultValues, fieldArrayName, resetField, setFields, unregister])\n\n const createNestedObjectFromDot = useCallback((dotNotationString: string, field: any, existingObject: any = {}) => {\n const keys = dotNotationString.split('.');\n let currentLevel = existingObject;\n\n keys.forEach((key, index) => {\n if (index === keys.length - 1) {\n if (!currentLevel[key]) {\n let fieldValue = field.value\n if (fieldValue && (field.field_type !== 'image' || field.field_type !== 'file')) {\n if (field.field_type === 'date') {\n fieldValue = dayjs(fieldValue)\n } else if (field.field_type === 'time') {\n const [hours, minutes, seconds] = fieldValue.split(\":\").map(Number);\n fieldValue = dayjs().set('hour', hours).set('minute', minutes).set('second', seconds).set('millisecond', 0)\n } else if (field.name.includes('_id') && !Array.isArray(field?.value)) {\n fieldValue = Number(fieldValue)\n }\n }\n currentLevel[key] = fieldValue;\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n } else {\n if (!currentLevel[key]) {\n currentLevel[key] = {};\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n currentLevel = currentLevel[key];\n\n }\n });\n\n return existingObject;\n }, [])\n\n const removeMatchingKeyValuePairs = useCallback((obj1, obj2) => {\n _.forOwn(obj1, (value, key) => {\n if (_.has(obj2, key) && _.isEqual(value, obj2[key])) {\n delete obj1[key];\n }\n });\n return obj1;\n }, [])\n\n const validateRequiredSwitchFormData = useCallback((switchData: any) => {\n const requiredFields: string[] = [];\n if (switchData) {\n switchData && switchData[0]?.formMembers.forEach((member: any) => {\n if (member?.validation && Array.isArray(member?.validation)) {\n member?.validation.forEach((validation: any) => {\n if (validation?.thenValidations && Array.isArray(validation?.thenValidations)) {\n validation?.thenValidations.forEach((thenValidation: any) => {\n if (thenValidation?.type === \"required\" && thenValidation?.value === true) {\n if (member?.name) {\n requiredFields.push(member.name);\n }\n }\n });\n } else {\n const hasRequiredValidation = member.validation.some(\n (validation: any) => validation.type === 'required' && validation.value === true\n )\n if (hasRequiredValidation) {\n requiredFields.push(member.name);\n }\n }\n });\n }\n });\n\n }\n if (requiredFields) {\n setValidRequiredFields(_.uniq(requiredFields))\n }\n\n }, [])\n\n const isEmpty = useCallback((value: any): boolean => {\n return (\n value === null ||\n value === undefined ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n );\n }, [])\n\n const getMissingFields = useCallback((watchedFields: any, validationReqFields: string[]): string[] => {\n const missingFields: string[] = [];\n\n validationReqFields.forEach((fieldPath) => {\n const keys = fieldPath.split(\".\");\n let currentLevel = watchedFields;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (!currentLevel?.[key] && currentLevel?.[key] !== 0) {\n // If any key in the path is missing, mark the field as missing\n missingFields.push(fieldPath);\n return;\n }\n\n // Move deeper into the object\n currentLevel = currentLevel[key];\n }\n\n // After navigating the full path, check if the final value is empty\n if (isEmpty(currentLevel)) {\n missingFields.push(fieldPath);\n }\n });\n\n\n return missingFields;\n }, [isEmpty])\n\n // Use Effects\n useEffect(() => {\n if (recieveTabDataLenght) {\n recieveTabDataLenght(tabsData.length)\n }\n }, [recieveTabDataLenght, tabsData])\n\n useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (event.origin !== window.origin) {\n return;\n }\n const { state } = event.data;\n\n if (state?.length) {\n const data: any = formBuilderDeConversion(state);\n\n if (data.tab) {\n setTabsData(data.tab);\n } else if (data.section) {\n setSchema(data.section);\n }\n }\n };\n\n window.addEventListener(\"message\", handleMessage);\n\n return () => {\n window.removeEventListener(\"message\", handleMessage);\n };\n }, []);\n\n useEffect(() => {\n if (data) {\n const formData = formBuilderDeConversion(data)\n if (formData?.tab) {\n // setSchema([])\n setTabsData(formData.tab);\n if (activeTab !== undefined) {\n setSchema(formData.tab[activeTab]?.data || []);\n }\n } else {\n setSchema(formData.section);\n // setTabsData([])\n }\n const dVals = _.get(defaultValues, fieldArrayName, {})\n const wVals = removeMatchingKeyValuePairs((watchedValues || {}), (dVals || {}))\n if (mode === 'edit' && !Object.keys(wVals)?.length) {\n let formValues: any = {};\n let nestedFormValues: any = {};\n data.forEach((field: any) => {\n const fieldValue = field.value\n if (field.name?.includes(\".\")) {\n nestedFormValues = createNestedObjectFromDot(field.name, field, nestedFormValues)\n } else {\n if (fieldValue && (field.field_type !== 'image' || field.field_type !== 'file')) {\n if (field?.is_section_field) {\n const fieldName = field?.form_switcher_name || field?.form_switcher_label;\n formValues = { ...formValues, [fieldName]: fieldValue }\n } else if (\n field?.name &&\n ['company_id', 'email_ids'].includes(field?.name) &&\n ['edit_customer', 'add_customer', 'edit_vendor', 'add_vendor'].includes(fieldArrayName)\n ) {\n formValues = { ...formValues, [field.name]: fieldValue }\n } else if (field.field_type === 'date') {\n formValues = { ...formValues, [field.name]: dayjs(fieldValue) }\n } else if (field.field_type === 'time') {\n const [hours, minutes, seconds] = fieldValue.split(\":\").map(Number);\n formValues = { ...formValues, [field.name]: dayjs().set('hour', hours).set('minute', minutes).set('second', seconds).set('millisecond', 0) }\n } else if (field.name.includes('_id') && !Array.isArray(field?.value)) {\n if (fieldArrayName === \"edit_user\" && field.name === \"role_id\") {\n formValues = { ...formValues, [field.name]: fieldValue }\n } else {\n formValues = { ...formValues, [field.name]: Number(fieldValue) }\n }\n } else {\n formValues = { ...formValues, [field.name]: fieldValue }\n }\n }\n }\n })\n const finalFormValues = { ...formValues, ...nestedFormValues }\n reset({ [fieldArrayName]: { ...finalFormValues } })\n }\n getFormMethods?.({ control, handleSubmit, setValue, reset, resetField, getValues, unregister, trigger, watch, getFieldState, errors, ...rest })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data])\n\n useEffect(() => {\n if (activeTab?.toString()) {\n if (tabsData && tabsData[activeTab]) {\n setSchema(tabsData[activeTab].data);\n }\n }\n }, [activeTab, tabsData]);\n\n useEffect(() => {\n if (watchedValues && handleFormValues) {\n handleFormValues?.(watchedValues);\n }\n }, [handleFormValues, watchedValues])\n\n useEffect(() => {\n if (errors?.[fieldArrayName]) {\n setErrorAlert(true)\n } else {\n setErrorAlert(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldArrayName, JSON.stringify(errors)])\n\n useEffect(() => {\n const validatedFields: string[] = [];\n if (activeTab != undefined) {\n tabsData[activeTab]?.data.forEach((section: any) => {\n\n if (section.members && Array.isArray(section.members)) {\n\n section.members.forEach((member: any) => {\n if (member.validation && Array.isArray(member.validation)) {\n const hasRequiredValidation = member.validation.some(\n (validation: any) => validation.type === 'required' && validation.value === true\n )\n if (hasRequiredValidation) {\n // validatedFields.push(fieldArrayName + '.' + member.name);\n validatedFields.push(member.name);\n }\n }\n });\n }\n })\n setValidRequiredFields(validatedFields);\n }\n }, [tabsData, activeTab]);\n\n useEffect(() => {\n if (watchedValues?.account_type) {\n\n const switchFormData: any[] = [];\n schema && schema.forEach((section: any) => {\n const sectionMembers = schema && section?.members?.map((ele: any) => ele) || [];\n\n const switchForms = schema && section?.switcher_forms?.map((form: any) => ({\n ...form,\n formMembers: sectionMembers.filter(\n (member: any) => member.section_form_id === form.id,\n ),\n }));\n if (switchForms) {\n switchFormData.push(switchForms)\n }\n })\n\n const selectValue = watchedValues?.account_type || \"Individual\";\n const switchData = switchFormData && Array.isArray(switchFormData[0])\n ? switchFormData[0].filter((form: any) => form.name === selectValue)\n : [];\n\n if (switchData) {\n validateRequiredSwitchFormData(switchData)\n }\n\n }\n }, [watchedValues?.account_type, schema, validateRequiredSwitchFormData]);\n\n useEffect(() => {\n if (validateRequiredFields.length > 0) {\n const updatedRequiredFields = getMissingFields(watchedValues, validateRequiredFields)\n\n // const updatedRequiredFields = validateRequiredFields.filter((fieldPath) => {\n // const watchedValue = watchedFields[fieldPath] ;\n // return watchedValue === undefined || watchedValue === null || watchedValue === 0 ;\n // });\n\n updatedRequiredFields.length === 0 ? setTabFormValid(true) : setTabFormValid(false);\n } else {\n setTabFormValid(true)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateRequiredFields, watchedValues, activeTab])\n\n useEffect(() => {\n if (recieveIsValidForm) {\n recieveIsValidForm(isTabFormValid)\n }\n }, [recieveIsValidForm, isTabFormValid])\n\n\n return (\n // <FullScreenLayout>\n <Box sx={{ width: \"100%\", padding: \"2rem\", ...containerStyles }}>\n <FormProvider {...{ control, handleSubmit, setValue, reset, resetField, getValues, unregister, trigger, watch, errors, ...rest }}>\n <form id={fieldArrayName} name={fieldArrayName} onSubmit={handleSubmit(handleFormSubmit)}>\n {Boolean(tabsData?.length) && (\n <>\n {errorAlert &&\n <Alert severity='error' onClose={() => setErrorAlert(false)}>\n Please fill all the required fields.\n </Alert>\n }\n <TabBar\n tabs={tabsData}\n activeTabs={activeTabs}\n activeValue={activeTab}\n setActiveValue={setActiveTabValue}\n isFormTabValid={isTabFormValid}\n />\n </>\n )}\n {schema &&\n schema.map((section: any, index: number) => {\n const {\n isFormSwitcher,\n formSwitcherName,\n switchForms,\n members,\n values,\n } = getSectionData(section)\n\n return (\n <FormSection\n section={section}\n index={index}\n members={members}\n switchForms={switchForms}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n displayAvtar={displayAvtar}\n isButton={isButton}\n currencyOption={currencyOption}\n values={values}\n onBlur={onBlur}\n setValue={setValue}\n onSelectFooterClick={onSelectFooterClick}\n getSelectedData={getSelectedData}\n setCurrencyOptions={setCurrencyOptions}\n refreshOptions={refreshOptions}\n handleFieldCleanUp={handleFieldCleanUp}\n handleSetCountryCodeField={handleSetCountryCodeField}\n handleTableAddClick={handleTableAddClick}\n onTableCellChange={onTableCellChange}\n setDetailsData={setDetailsData}\n t={t}\n images={images}\n />\n );\n })}\n </form>\n </FormProvider>\n </Box>\n // </FullScreenLayout>\n );\n};\n\nexport default FormParser;"],"names":["validationReducer","validations","validation","field","translationFn","type","_a","field_properties","is_multiselect","required","msg_en","min","value","test","trim","length","nullable","max","email","when","relation","is","val","values","then","thenValidations","reduce","otherwise","otherWiseValidations","data","defaultValues","handleFormSubmit","fieldArrayName","mode","displayAvtar","onTableAddClick","handleFormValues","getFormMethods","setFields","onSelectFooterClick","setActiveTabValue","activeTab","recieveTabDataLenght","recieveIsValidForm","activeTabs","onTableCellChange","containerStyles","isButton","getSelectedData","refreshOptions","onBlur","t","useTranslation","getValidationType","field_type","yup","array","string","number","transform","originalValue","typeError","matches","excludeEmptyString","message","convertNestedFieldSchemaObject","nestedFields","schema","key","Object","hasOwn","object","shape","control","handleSubmit","formState","errors","setValue","reset","getValues","watch","resetField","unregister","trigger","getFieldState","rest","useForm","resolver","yupResolver","yupSchemaObject","nestedFielvalidations","nestedYupSchemaObj","forEach","fieldValidations","name","includes","dotNotationString","existingObject","keys","split","currentLevel","index","Array","isArray","Error","convertToNestedObject","generateValidationSchema","watchedValues","useWatch","setSchema","useState","tabsData","setTabsData","errorAlert","setErrorAlert","currencyOption","setCurrencyOptions","isTabFormValid","setTabFormValid","validateRequiredFields","setValidRequiredFields","handleTableAddClick","tableName","getSectionData","useCallback","section","sectionMembers","members","map","ele","isFormSwitcher","section_type","SECTION_TYPES","FORM_SWITCH_SECTION","formSwitcherName","form_switcher_name","_b","form_switcher_label","toLowerCase","join","switchForms","_c","switcher_forms","form","formMembers","filter","member","section_form_id","id","selectedSectionForm","find","is_form_switcher_section","handleSetCountryCodeField","country","oldVal","country_code_field_name","newVal","dialCode","is_country_code_separate","handleFieldCleanUp","memberName","label","v","_","get","newData","createNestedObjectFromDot","fieldValue","dayjs","hours","minutes","seconds","Number","set","removeMatchingKeyValuePairs","obj1","obj2","forOwn","has","isEqual","validateRequiredSwitchFormData","switchData","requiredFields","thenValidation","push","some","uniq","isEmpty","getMissingFields","watchedFields","validationReqFields","missingFields","fieldPath","i","useEffect","handleMessage","event","origin","window","state","formBuilderDeConversion","tab","addEventListener","removeEventListener","formData","dVals","wVals","formValues","nestedFormValues","is_section_field","fieldName","finalFormValues","toString","JSON","stringify","validatedFields","account_type","switchFormData","selectValue","Box","sx","width","padding","children","jsx","FormProvider","jsxs","onSubmit","Boolean","Fragment","Alert","severity","onClose","TabBar","tabs","activeValue","setActiveValue","isFormTabValid","FormSection","setDetailsData","images"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/form-control/form-parser/form-parser.tsx"],"sourcesContent":["import { FormProvider, useForm, useWatch } from \"react-hook-form\";\n// import { useLocation } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\n\n// import FullScreenLayout from \"../../../layout/fullScreen/fullScreen\";\n\nimport { useState, useEffect, useCallback } from \"react\";\nimport images from \"../../../assets/images\";\nimport \"./form-parser.scss\";\nimport TabBar from \"../../tabs/tabs\";\nimport formBuilderDeConversion from \"../../../utils/form-builder-deconversion\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as yup from \"yup\";\nimport dayjs from \"dayjs\";\nimport { SECTION_TYPES } from '../../../utils/constant';\nimport { CountryData } from 'react-phone-input-2';\nimport Alert from '../../alert/alert';\nimport _ from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport FormSection from \"./form-section\";\nconst validationReducer = (validations: any, validation: any, field: any, translationFn: any) => {\n switch (validation.type) {\n case \"required\":\n return (field.field_properties?.is_multiselect ? validations.required(translationFn(validation.msg_en)).min(1, translationFn(validation.msg_en)) : validation.value\n ? validations.required(translationFn(validation.msg_en)).test('not-empty', translationFn(validation.msg_en), value => typeof value === 'string' ? value && value?.trim()?.length > 0 : true) : validations.nullable());\n case \"min_length\":\n return validations.min(validation.value, translationFn(validation.msg_en));\n case \"max_length\":\n return validations.max(validation.value, translationFn(validation.msg_en));\n case \"min_val\":\n return validations.min(validation.value, translationFn(validation.msg_en));\n case \"max_val\":\n return validations.max(validation.value, translationFn(validation.msg_en));\n case \"postive_number\":\n return validations.test('is-positive-number', translationFn(validation.msg_en), (value) => value >= 0)\n case 'email':\n return validations.email(validation.msg_en);\n case \"no_special_char\":\n return validations.test(\n \"no-special-char\",\n translationFn(validation.msg_en),\n value =>\n typeof value === \"string\"\n ? /^[^.\\-\\W_]+$/u.test(value) // allow letters/digits only\n : true\n );\n case \"when\":\n return validations.when(validation.relation, {\n is: (val: any) => val === validation.values,\n then: () => validation?.thenValidations?.reduce(\n (validations: any, validation: any) => validationReducer(validations, validation, field, translationFn),\n validations\n ) || validations,\n otherwise: () => validation?.otherWiseValidations?.reduce(\n (validations: any, validation: any) => validationReducer(validations, validation, field, translationFn),\n validations\n ) || validations,\n });\n // Add more cases for other validation types as needed\n default:\n return validations;\n }\n}\n\nconst FormParser = ({\n data,\n defaultValues,\n handleFormSubmit,\n fieldArrayName,\n mode,\n displayAvtar = false,\n onTableAddClick,\n handleFormValues,\n getFormMethods,\n setFields,\n onSelectFooterClick,\n setActiveTabValue,\n activeTab = 0,\n recieveTabDataLenght,\n recieveIsValidForm,\n activeTabs,\n onTableCellChange,\n containerStyles = undefined,\n isButton = true,\n getSelectedData,\n refreshOptions = false,\n onBlur,\n}: any) => {\n\n const { t } = useTranslation();\n\n function convertToNestedObject(dotNotationString: string, field: any, existingObject: any = {}) {\n const keys = dotNotationString.split('.');\n let currentLevel = existingObject;\n\n keys.forEach((key, index) => {\n if (index === keys.length - 1) {\n if (!currentLevel[key]) {\n const fieldValidations = field.validation.reduce(\n (validations: any, validation: any) => {\n switch (validation.type) {\n case \"required\":\n return validation.value\n ? validations.required(t(validation.msg_en)).test('not-empty', t(validation.msg_en), value => typeof value === 'string' ? value && value?.trim()?.length > 0 : true)\n : (field.field_properties?.is_multiselect ? validations.min(1, t(validation.msg_en)) : validations.nullable());\n case \"min_length\":\n return validations.min(validation.value, t(validation.msg_en));\n case \"max_length\":\n return validations.max(validation.value, t(validation.msg_en));\n case \"min_val\":\n return validations.min(validation.value, t(validation.msg_en));\n case \"max_val\":\n return validations.max(validation.value, t(validation.msg_en));\n // Add more cases for other validation types as needed\n default:\n return validations;\n }\n },\n getValidationType(field)\n );\n currentLevel[key] = fieldValidations;\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n } else {\n if (!currentLevel[key]) {\n currentLevel[key] = {};\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n currentLevel = currentLevel[key];\n\n }\n });\n\n return existingObject;\n }\n\n const getValidationType = (field: any) => {\n switch (field.field_type) {\n case 'select':\n return field.field_properties?.is_multiselect\n ? yup.array()\n : yup.string()\n\n case 'number':\n case 'currency':\n return yup.number().transform((value, originalValue) => (originalValue === '' ? undefined : value)).typeError('Please enter valid number').nullable()\n case 'currency_with_amount':\n return yup.number()\n case 'url':\n return yup.string().matches(/^(https?:\\/\\/)?((([a-zA-Z0-9_-]+\\.)+[a-zA-Z]{2,})|localhost)(:\\d{2,5})?(\\/[a-zA-Z0-9#_-]+\\/?)*(\\?[a-zA-Z0-9&=_-]+)?(#\\S+)?$/, { excludeEmptyString: true, message: \"Please enter valid URL.\" })\n\n default:\n return yup.string()\n }\n }\n\n const convertNestedFieldSchemaObject = (nestedFields: any) => {\n const schema: any = {};\n\n for (const key in nestedFields) {\n if (typeof nestedFields[key] === 'object' && !Object.hasOwn(nestedFields[key], 'tests')) {\n schema[key] = yup.object().shape(convertNestedFieldSchemaObject(nestedFields[key]));\n } else {\n schema[key] = nestedFields[key]\n }\n }\n return schema;\n }\n\n\n const generateValidationSchema = (data: any[]) => {\n const yupSchemaObject: any = {};\n let nestedFielvalidations: any = {},\n nestedYupSchemaObj: any = {};\n\n data &&\n data?.forEach((field: any) => {\n let fieldValidations: any;\n if (field.validation && field.validation.length > 0) {\n if (field.name?.includes(\".\")) {\n nestedFielvalidations = convertToNestedObject(field.name, field, nestedFielvalidations);\n } else {\n fieldValidations = field.validation.reduce((validations: any, validation: any) => validationReducer(validations, validation, field, t),\n getValidationType(field)\n );\n yupSchemaObject[field.name] = fieldValidations;\n }\n\n nestedYupSchemaObj = convertNestedFieldSchemaObject(nestedFielvalidations)\n }\n\n });\n\n return yup.object().shape({\n [fieldArrayName]: yup.object().shape({ ...yupSchemaObject, ...nestedYupSchemaObj }),\n });\n };\n\n const {\n control,\n handleSubmit,\n formState: { errors },\n setValue,\n reset,\n getValues,\n watch,\n resetField,\n unregister,\n trigger,\n getFieldState,\n ...rest\n } = useForm({\n ...(defaultValues && typeof defaultValues === 'object' ? { defaultValues } : {}),\n resolver: yupResolver(generateValidationSchema(data)),\n mode: \"all\",\n });\n\n const watchedValues = useWatch({\n control,\n name: fieldArrayName,\n });\n\n // Local States\n const [schema, setSchema] = useState<[]>([]);\n const [tabsData, setTabsData] = useState<any[]>([]);\n const [errorAlert, setErrorAlert] = useState<boolean>(false);\n const [currencyOption, setCurrencyOptions] = useState<string>('');\n const [isTabFormValid, setTabFormValid] = useState<boolean>(false);\n const [validateRequiredFields, setValidRequiredFields] = useState<any[]>([]);\n\n // Local Functions\n const handleTableAddClick = (tableName?: string) => {\n onTableAddClick?.(tableName)\n }\n\n const getSectionData = useCallback((section: any) => {\n const sectionMembers = section?.members?.map((ele: any) => ele) || []\n const values = getValues(fieldArrayName)\n const isFormSwitcher = section.section_type === SECTION_TYPES.FORM_SWITCH_SECTION\n const formSwitcherName =\n section?.form_switcher_name ||\n section?.form_switcher_label?.toLowerCase().split(\" \").join(\"_\");\n const switchForms = section?.switcher_forms?.map((form: any) => ({\n ...form,\n formMembers: sectionMembers.filter(\n (member: any) => member.section_form_id === form.id,\n )\n }));\n const selectedSectionForm =\n values?.[formSwitcherName] ?\n switchForms.find((ele: any) =>\n ele.name === values?.[formSwitcherName]\n ) : {};\n\n // When form switcher is active, include:\n // 1. Common fields (fields without section_form_id or is_form_switcher_section)\n // 2. Form-specific fields (fields with section_form_id matching the selected form)\n let members;\n if (isFormSwitcher) {\n const commonFields = sectionMembers.filter(\n (member: any) => !member.section_form_id && !member.is_form_switcher_section\n );\n const formSpecificFields = selectedSectionForm?.formMembers || [];\n members = [...commonFields, ...formSpecificFields];\n } else {\n members = section?.members;\n }\n\n return {\n isFormSwitcher,\n formSwitcherName,\n switchForms,\n selectedSectionForm,\n members,\n values\n }\n }, [fieldArrayName, getValues])\n\n const handleSetCountryCodeField = useCallback((country: CountryData, field: any, fieldArrayName: any, values: any) => {\n const oldVal = values?.[fieldArrayName]?.[field?.country_code_field_name]\n const newVal = `+${country.dialCode}`\n if (\n field?.is_country_code_separate &&\n field?.country_code_field_name &&\n oldVal !== newVal\n ) {\n setValue(\n `${fieldArrayName}.${field?.country_code_field_name}` as never,\n newVal as never\n )\n }\n }, [setValue])\n\n const handleFieldCleanUp = useCallback((switchForms: any) => {\n switchForms.forEach((form: any) => {\n form?.formMembers.forEach((member: any) => {\n const memberName = member?.name || member.label.toLowerCase().split(\" \").join(\"_\")\n const v = _.get(defaultValues, `${fieldArrayName}.${memberName}`, null)\n const newData = data.map((ele: any) => {\n if (member?.section_form_id === ele?.section_form_id) {\n delete ele.value\n }\n return ({\n ...ele,\n ...(v ? { value: v } : {}),\n })\n })\n if (!v) {\n resetField(`${fieldArrayName}.${memberName}` as never)\n unregister(`${fieldArrayName}.${memberName}` as never)\n }\n setFields?.(newData)\n })\n\n })\n }, [data, defaultValues, fieldArrayName, resetField, setFields, unregister])\n\n const createNestedObjectFromDot = useCallback((dotNotationString: string, field: any, existingObject: any = {}) => {\n const keys = dotNotationString.split('.');\n let currentLevel = existingObject;\n\n keys.forEach((key, index) => {\n if (index === keys.length - 1) {\n if (!currentLevel[key]) {\n let fieldValue = field.value\n if (fieldValue && (field.field_type !== 'image' || field.field_type !== 'file')) {\n if (field.field_type === 'date') {\n fieldValue = dayjs(fieldValue)\n } else if (field.field_type === 'time') {\n const [hours, minutes, seconds] = fieldValue.split(\":\").map(Number);\n fieldValue = dayjs().set('hour', hours).set('minute', minutes).set('second', seconds).set('millisecond', 0)\n } else if (field.name.includes('_id') && !Array.isArray(field?.value)) {\n fieldValue = Number(fieldValue)\n }\n }\n currentLevel[key] = fieldValue;\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n } else {\n if (!currentLevel[key]) {\n currentLevel[key] = {};\n } else if (typeof currentLevel[key] !== 'object' || Array.isArray(currentLevel[key])) {\n throw new Error(`Conflict: The key \"${key}\" already exists and is not an object.`);\n }\n currentLevel = currentLevel[key];\n\n }\n });\n\n return existingObject;\n }, [])\n\n const removeMatchingKeyValuePairs = useCallback((obj1, obj2) => {\n _.forOwn(obj1, (value, key) => {\n if (_.has(obj2, key) && _.isEqual(value, obj2[key])) {\n delete obj1[key];\n }\n });\n return obj1;\n }, [])\n\n const validateRequiredSwitchFormData = useCallback((switchData: any) => {\n const requiredFields: string[] = [];\n if (switchData) {\n switchData && switchData[0]?.formMembers.forEach((member: any) => {\n if (member?.validation && Array.isArray(member?.validation)) {\n member?.validation.forEach((validation: any) => {\n if (validation?.thenValidations && Array.isArray(validation?.thenValidations)) {\n validation?.thenValidations.forEach((thenValidation: any) => {\n if (thenValidation?.type === \"required\" && thenValidation?.value === true) {\n if (member?.name) {\n requiredFields.push(member.name);\n }\n }\n });\n } else {\n const hasRequiredValidation = member.validation.some(\n (validation: any) => validation.type === 'required' && validation.value === true\n )\n if (hasRequiredValidation) {\n requiredFields.push(member.name);\n }\n }\n });\n }\n });\n\n }\n if (requiredFields) {\n setValidRequiredFields(_.uniq(requiredFields))\n }\n\n }, [])\n\n const isEmpty = useCallback((value: any): boolean => {\n return (\n value === null ||\n value === undefined ||\n (Array.isArray(value) && value.length === 0) ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n );\n }, [])\n\n const getMissingFields = useCallback((watchedFields: any, validationReqFields: string[]): string[] => {\n const missingFields: string[] = [];\n\n validationReqFields.forEach((fieldPath) => {\n const keys = fieldPath.split(\".\");\n let currentLevel = watchedFields;\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n if (!currentLevel?.[key] && currentLevel?.[key] !== 0) {\n // If any key in the path is missing, mark the field as missing\n missingFields.push(fieldPath);\n return;\n }\n\n // Move deeper into the object\n currentLevel = currentLevel[key];\n }\n\n // After navigating the full path, check if the final value is empty\n if (isEmpty(currentLevel)) {\n missingFields.push(fieldPath);\n }\n });\n\n\n return missingFields;\n }, [isEmpty])\n\n // Use Effects\n useEffect(() => {\n if (recieveTabDataLenght) {\n recieveTabDataLenght(tabsData.length)\n }\n }, [recieveTabDataLenght, tabsData])\n\n useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (event.origin !== window.origin) {\n return;\n }\n const { state } = event.data;\n\n if (state?.length) {\n const data: any = formBuilderDeConversion(state);\n\n if (data.tab) {\n setTabsData(data.tab);\n } else if (data.section) {\n setSchema(data.section);\n }\n }\n };\n\n window.addEventListener(\"message\", handleMessage);\n\n return () => {\n window.removeEventListener(\"message\", handleMessage);\n };\n }, []);\n\n useEffect(() => {\n if (data) {\n const formData = formBuilderDeConversion(data)\n if (formData?.tab) {\n // setSchema([])\n setTabsData(formData.tab);\n if (activeTab !== undefined) {\n setSchema(formData.tab[activeTab]?.data || []);\n }\n } else {\n setSchema(formData.section);\n // setTabsData([])\n }\n const dVals = _.get(defaultValues, fieldArrayName, {})\n const wVals = removeMatchingKeyValuePairs((watchedValues || {}), (dVals || {}))\n if (mode === 'edit' && !Object.keys(wVals)?.length) {\n let formValues: any = {};\n let nestedFormValues: any = {};\n data.forEach((field: any) => {\n const fieldValue = field.value\n if (field.name?.includes(\".\")) {\n nestedFormValues = createNestedObjectFromDot(field.name, field, nestedFormValues)\n } else {\n if (fieldValue && (field.field_type !== 'image' || field.field_type !== 'file')) {\n if (field?.is_section_field) {\n const fieldName = field?.form_switcher_name || field?.form_switcher_label;\n formValues = { ...formValues, [fieldName]: fieldValue }\n } else if (\n field?.name &&\n ['company_id', 'email_ids'].includes(field?.name) &&\n ['edit_customer', 'add_customer', 'edit_vendor', 'add_vendor'].includes(fieldArrayName)\n ) {\n formValues = { ...formValues, [field.name]: fieldValue }\n } else if (field.field_type === 'date') {\n formValues = { ...formValues, [field.name]: dayjs(fieldValue) }\n } else if (field.field_type === 'time') {\n const [hours, minutes, seconds] = fieldValue.split(\":\").map(Number);\n formValues = { ...formValues, [field.name]: dayjs().set('hour', hours).set('minute', minutes).set('second', seconds).set('millisecond', 0) }\n } else if (field.name.includes('_id') && !Array.isArray(field?.value)) {\n if (fieldArrayName === \"edit_user\" && field.name === \"role_id\") {\n formValues = { ...formValues, [field.name]: fieldValue }\n } else {\n formValues = { ...formValues, [field.name]: Number(fieldValue) }\n }\n } else {\n formValues = { ...formValues, [field.name]: fieldValue }\n }\n }\n }\n })\n const finalFormValues = { ...formValues, ...nestedFormValues }\n reset({ [fieldArrayName]: { ...finalFormValues } })\n }\n getFormMethods?.({ control, handleSubmit, setValue, reset, resetField, getValues, unregister, trigger, watch, getFieldState, errors, ...rest })\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data])\n\n useEffect(() => {\n if (activeTab?.toString()) {\n if (tabsData && tabsData[activeTab]) {\n setSchema(tabsData[activeTab].data);\n }\n }\n }, [activeTab, tabsData]);\n\n useEffect(() => {\n if (watchedValues && handleFormValues) {\n handleFormValues?.(watchedValues);\n }\n }, [handleFormValues, watchedValues])\n\n useEffect(() => {\n if (errors?.[fieldArrayName]) {\n setErrorAlert(true)\n } else {\n setErrorAlert(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldArrayName, JSON.stringify(errors)])\n\n useEffect(() => {\n const validatedFields: string[] = [];\n if (activeTab != undefined) {\n tabsData[activeTab]?.data.forEach((section: any) => {\n\n if (section.members && Array.isArray(section.members)) {\n\n section.members.forEach((member: any) => {\n if (member.validation && Array.isArray(member.validation)) {\n const hasRequiredValidation = member.validation.some(\n (validation: any) => validation.type === 'required' && validation.value === true\n )\n if (hasRequiredValidation) {\n // validatedFields.push(fieldArrayName + '.' + member.name);\n validatedFields.push(member.name);\n }\n }\n });\n }\n })\n setValidRequiredFields(validatedFields);\n }\n }, [tabsData, activeTab]);\n\n useEffect(() => {\n if (watchedValues?.account_type) {\n\n const switchFormData: any[] = [];\n schema && schema.forEach((section: any) => {\n const sectionMembers = schema && section?.members?.map((ele: any) => ele) || [];\n\n const switchForms = schema && section?.switcher_forms?.map((form: any) => ({\n ...form,\n formMembers: sectionMembers.filter(\n (member: any) => member.section_form_id === form.id,\n ),\n }));\n if (switchForms) {\n switchFormData.push(switchForms)\n }\n })\n\n const selectValue = watchedValues?.account_type || \"Individual\";\n const switchData = switchFormData && Array.isArray(switchFormData[0])\n ? switchFormData[0].filter((form: any) => form.name === selectValue)\n : [];\n\n if (switchData) {\n validateRequiredSwitchFormData(switchData)\n }\n\n }\n }, [watchedValues?.account_type, schema, validateRequiredSwitchFormData]);\n\n useEffect(() => {\n if (validateRequiredFields.length > 0) {\n const updatedRequiredFields = getMissingFields(watchedValues, validateRequiredFields)\n\n // const updatedRequiredFields = validateRequiredFields.filter((fieldPath) => {\n // const watchedValue = watchedFields[fieldPath] ;\n // return watchedValue === undefined || watchedValue === null || watchedValue === 0 ;\n // });\n\n updatedRequiredFields.length === 0 ? setTabFormValid(true) : setTabFormValid(false);\n } else {\n setTabFormValid(true)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateRequiredFields, watchedValues, activeTab])\n\n useEffect(() => {\n if (recieveIsValidForm) {\n recieveIsValidForm(isTabFormValid)\n }\n }, [recieveIsValidForm, isTabFormValid])\n\n\n return (\n // <FullScreenLayout>\n <Box sx={{ width: \"100%\", padding: \"2rem\", ...containerStyles }}>\n <FormProvider {...{ control, handleSubmit, setValue, reset, resetField, getValues, unregister, trigger, watch, errors, ...rest }}>\n <form id={fieldArrayName} name={fieldArrayName} onSubmit={handleSubmit(handleFormSubmit)}>\n {Boolean(tabsData?.length) && (\n <>\n {errorAlert &&\n <Alert severity='error' onClose={() => setErrorAlert(false)}>\n Please fill all the required fields.\n </Alert>\n }\n <TabBar\n tabs={tabsData}\n activeTabs={activeTabs}\n activeValue={activeTab}\n setActiveValue={setActiveTabValue}\n isFormTabValid={isTabFormValid}\n />\n </>\n )}\n {schema &&\n schema.map((section: any, index: number) => {\n const {\n isFormSwitcher,\n formSwitcherName,\n switchForms,\n members,\n values,\n } = getSectionData(section)\n\n return (\n <FormSection\n section={section}\n index={index}\n members={members}\n switchForms={switchForms}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n displayAvtar={displayAvtar}\n isButton={isButton}\n currencyOption={currencyOption}\n values={values}\n onBlur={onBlur}\n setValue={setValue}\n onSelectFooterClick={onSelectFooterClick}\n getSelectedData={getSelectedData}\n setCurrencyOptions={setCurrencyOptions}\n refreshOptions={refreshOptions}\n handleFieldCleanUp={handleFieldCleanUp}\n handleSetCountryCodeField={handleSetCountryCodeField}\n handleTableAddClick={handleTableAddClick}\n onTableCellChange={onTableCellChange}\n setDetailsData={setDetailsData}\n t={t}\n images={images}\n />\n );\n })}\n </form>\n </FormProvider>\n </Box>\n // </FullScreenLayout>\n );\n};\n\nexport default FormParser;"],"names":["validationReducer","validations","validation","field","translationFn","type","_a","field_properties","is_multiselect","required","msg_en","min","value","test","trim","length","nullable","max","email","when","relation","is","val","values","then","thenValidations","reduce","otherwise","otherWiseValidations","data","defaultValues","handleFormSubmit","fieldArrayName","mode","displayAvtar","onTableAddClick","handleFormValues","getFormMethods","setFields","onSelectFooterClick","setActiveTabValue","activeTab","recieveTabDataLenght","recieveIsValidForm","activeTabs","onTableCellChange","containerStyles","isButton","getSelectedData","refreshOptions","onBlur","t","useTranslation","getValidationType","field_type","yup","array","string","number","transform","originalValue","typeError","matches","excludeEmptyString","message","convertNestedFieldSchemaObject","nestedFields","schema","key","Object","hasOwn","object","shape","control","handleSubmit","formState","errors","setValue","reset","getValues","watch","resetField","unregister","trigger","getFieldState","rest","useForm","resolver","yupResolver","yupSchemaObject","nestedFielvalidations","nestedYupSchemaObj","forEach","fieldValidations","name","includes","dotNotationString","existingObject","keys","split","currentLevel","index","Array","isArray","Error","convertToNestedObject","generateValidationSchema","watchedValues","useWatch","setSchema","useState","tabsData","setTabsData","errorAlert","setErrorAlert","currencyOption","setCurrencyOptions","isTabFormValid","setTabFormValid","validateRequiredFields","setValidRequiredFields","handleTableAddClick","tableName","getSectionData","useCallback","section","sectionMembers","members","map","ele","isFormSwitcher","section_type","SECTION_TYPES","FORM_SWITCH_SECTION","formSwitcherName","form_switcher_name","_b","form_switcher_label","toLowerCase","join","switchForms","_c","switcher_forms","form","formMembers","filter","member","section_form_id","id","selectedSectionForm","find","is_form_switcher_section","handleSetCountryCodeField","country","oldVal","country_code_field_name","newVal","dialCode","is_country_code_separate","handleFieldCleanUp","memberName","label","v","_","get","newData","createNestedObjectFromDot","fieldValue","dayjs","hours","minutes","seconds","Number","set","removeMatchingKeyValuePairs","obj1","obj2","forOwn","has","isEqual","validateRequiredSwitchFormData","switchData","requiredFields","thenValidation","push","some","uniq","isEmpty","getMissingFields","watchedFields","validationReqFields","missingFields","fieldPath","i","useEffect","handleMessage","event","origin","window","state","formBuilderDeConversion","tab","addEventListener","removeEventListener","formData","dVals","wVals","formValues","nestedFormValues","is_section_field","fieldName","finalFormValues","toString","JSON","stringify","validatedFields","account_type","switchFormData","selectValue","Box","sx","width","padding","children","jsx","FormProvider","jsxs","onSubmit","Boolean","Fragment","Alert","severity","onClose","TabBar","tabs","activeValue","setActiveValue","isFormTabValid","FormSection","setDetailsData","images"],"mappings":"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"}
|