@solidxai/core-ui 0.1.3 → 0.1.4-beta.0

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.
Files changed (127) hide show
  1. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  2. package/dist/components/auth/SolidInitialLoginOtp.js +0 -5
  3. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  4. package/dist/components/auth/SolidInitialLoginOtp.tsx +0 -5
  5. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  6. package/dist/components/auth/SolidLogin.js +7 -5
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +10 -8
  9. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  10. package/dist/components/common/GeneralSettings.js +48 -47
  11. package/dist/components/common/GeneralSettings.js.map +1 -1
  12. package/dist/components/common/GeneralSettings.tsx +41 -10
  13. package/dist/components/core/common/FilterComponent.js.map +1 -1
  14. package/dist/components/core/common/FilterComponent.tsx +1 -1
  15. package/dist/components/core/common/GroupingComponent.d.ts +54 -0
  16. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -0
  17. package/dist/components/core/common/GroupingComponent.js +196 -0
  18. package/dist/components/core/common/GroupingComponent.js.map +1 -0
  19. package/dist/components/core/common/GroupingComponent.tsx +452 -0
  20. package/dist/components/core/common/SolidGlobalSearchElement.d.ts +18 -1
  21. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  22. package/dist/components/core/common/SolidGlobalSearchElement.js +146 -47
  23. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  24. package/dist/components/core/common/SolidGlobalSearchElement.tsx +191 -18
  25. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
  26. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
  27. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
  28. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
  29. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
  30. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  31. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +7 -3
  32. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  33. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +45 -40
  34. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
  35. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
  36. package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
  37. package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
  38. package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
  39. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
  40. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  41. package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
  42. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  43. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
  44. package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
  45. package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
  46. package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
  47. package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
  48. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
  49. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
  50. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
  51. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
  52. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
  53. package/dist/components/core/form/SolidFormFooter.js +4 -4
  54. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  55. package/dist/components/core/form/SolidFormFooter.tsx +4 -4
  56. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  57. package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
  58. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  59. package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
  60. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  61. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +26 -21
  62. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  63. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +27 -17
  64. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +1 -0
  65. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +51 -0
  67. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
  68. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +51 -0
  69. package/dist/components/core/kanban/SolidKanbanView.js +5 -5
  70. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  71. package/dist/components/core/kanban/SolidKanbanView.tsx +5 -5
  72. package/dist/components/core/list/SolidListView.d.ts +12 -7
  73. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  74. package/dist/components/core/list/SolidListView.js +138 -150
  75. package/dist/components/core/list/SolidListView.js.map +1 -1
  76. package/dist/components/core/list/SolidListView.tsx +84 -91
  77. package/dist/components/core/list/listViewRegistry.js.map +1 -1
  78. package/dist/components/core/list/listViewRegistry.ts +1 -2
  79. package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
  80. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
  81. package/dist/components/core/tree/SolidTreeView.js +1170 -0
  82. package/dist/components/core/tree/SolidTreeView.js.map +1 -0
  83. package/dist/components/core/tree/SolidTreeView.tsx +1603 -0
  84. package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
  85. package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
  86. package/dist/components/core/tree/treeViewRegistry.js +17 -0
  87. package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
  88. package/dist/components/core/tree/treeViewRegistry.ts +23 -0
  89. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  90. package/dist/components/core/users/CreateUser.js +19 -6
  91. package/dist/components/core/users/CreateUser.js.map +1 -1
  92. package/dist/components/core/users/CreateUser.tsx +39 -0
  93. package/dist/helpers/helpers.d.ts +2 -0
  94. package/dist/helpers/helpers.d.ts.map +1 -1
  95. package/dist/helpers/helpers.js +3 -1
  96. package/dist/helpers/helpers.js.map +1 -1
  97. package/dist/helpers/helpers.ts +4 -1
  98. package/dist/helpers/registry.d.ts.map +1 -1
  99. package/dist/helpers/registry.js +2 -0
  100. package/dist/helpers/registry.js.map +1 -1
  101. package/dist/helpers/registry.ts +3 -1
  102. package/dist/index.d.ts +3 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +2 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/index.ts +6 -1
  107. package/dist/resources/globals.css +18 -4
  108. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  109. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  110. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  111. package/dist/routes/pages/admin/core/ListPage.tsx +2 -1
  112. package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
  113. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
  114. package/dist/routes/pages/admin/core/TreePage.js +37 -0
  115. package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
  116. package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
  117. package/dist/routes/solidRoutes.d.ts.map +1 -1
  118. package/dist/routes/solidRoutes.js +2 -0
  119. package/dist/routes/solidRoutes.js.map +1 -1
  120. package/dist/routes/solidRoutes.tsx +3 -1
  121. package/dist/routes/types.d.ts +1 -1
  122. package/dist/routes/types.d.ts.map +1 -1
  123. package/dist/routes/types.js.map +1 -1
  124. package/dist/routes/types.ts +1 -0
  125. package/dist/types/index.d.ts +8 -2
  126. package/dist/types/solid-core.d.ts +40 -0
  127. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+
2
+
3
+ import { SolidFilterFieldsParams, getNumberOfInputs } from '../../../../../components/core/filter/SolidFilterFields';
4
+ import { SolidVarInputsFilterElement, InputTypes } from '../../../../../components/core/filter/SolidVarInputsFilterElement';
5
+ import { Dropdown } from 'primereact/dropdown';
6
+
7
+ const SolidRelationOneToManyField = ({
8
+ fieldMetadata,
9
+ onChange,
10
+ index,
11
+ rule,
12
+ }: SolidFilterFieldsParams) => {
13
+
14
+ const filterMatchModeOptions = [
15
+ { label: 'In', value: '$in' },
16
+ { label: 'Not In', value: '$notIn' }
17
+ ];
18
+
19
+ const noInputOperators = ['$null', '$notNull'];
20
+ const needsInput = !noInputOperators.includes(rule.matchMode);
21
+ const numberOfInputs = needsInput ? getNumberOfInputs(rule.matchMode) : 0;
22
+
23
+ return (
24
+ <div className="flex flex-column md:flex-row align-items-start gap-2 md:gap-0">
25
+ {/* Operator */}
26
+ <div className="col-12 md:col-6 px-0 md:pr-2 md:pl-0">
27
+ <Dropdown
28
+ value={rule.matchMode}
29
+ onChange={(e) => {
30
+ onChange(rule.id, 'matchMode', e.value);
31
+ // Clear value if switching to no-input operator
32
+ if (noInputOperators.includes(e.value)) {
33
+ onChange(rule.id, 'value', []);
34
+ }
35
+ }}
36
+ options={filterMatchModeOptions}
37
+ optionLabel="label"
38
+ optionValue="value"
39
+ placeholder="Select Operator"
40
+ className="p-inputtext-sm w-full"
41
+ />
42
+ </div>
43
+
44
+ {/* MultiSelect input */}
45
+ <div className="flex flex-column gap-2 col-12 md:col-6 px-0 md:pl-2 md:pr-0">
46
+ <SolidVarInputsFilterElement
47
+ values={rule.value}
48
+ onChange={(value: any) => {
49
+ onChange(index, 'value', value);
50
+ }}
51
+ numberOfInputs={numberOfInputs}
52
+ inputType={InputTypes.RelationOneToMany}
53
+ fieldMetadata={fieldMetadata}
54
+ />
55
+ </div>
56
+ </div>
57
+ );
58
+ };
59
+
60
+ export default SolidRelationOneToManyField;
@@ -49,7 +49,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
49
  import { useLazyNavigationQuery } from "../../../redux/api/modelApi";
50
50
  import { useEffect, useState } from "react";
51
51
  import qs from "qs";
52
- import { queryObjectToQueryStringByUrl, queryStringToQueryObjectByUrl } from "../list/SolidListView";
52
+ import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../list/SolidListView";
53
53
  import { usePathname } from "../../../hooks/usePathname";
54
54
  import { useSearchParams } from "../../../hooks/useSearchParams";
55
55
  import { useRouter } from "../../../hooks/useRouter";
@@ -68,9 +68,9 @@ export var SolidFormFooter = function (_a) {
68
68
  // -----------------------------
69
69
  var updatePaginationInLocalStorage = function (offset, limit) {
70
70
  var listPath = window.location.pathname.replace(/\/form\/[^/]+/, "/list");
71
- var queryObject = queryStringToQueryObjectByUrl(listPath);
71
+ var queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
72
72
  var updatedQueryObj = __assign(__assign({}, queryObject), { offset: offset, limit: limit });
73
- queryObjectToQueryStringByUrl(listPath, updatedQueryObj);
73
+ setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj);
74
74
  };
75
75
  var getNewUrl = function (recordId) {
76
76
  // Replace the id after /form/
@@ -111,7 +111,7 @@ export var SolidFormFooter = function (_a) {
111
111
  switch (_g.label) {
112
112
  case 0:
113
113
  listPath = window.location.pathname.replace(/\/form\/[^/]+/, "/list");
114
- queryObject = queryStringToQueryObjectByUrl(listPath);
114
+ queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
115
115
  queryData = {
116
116
  offset: queryObject.offset || 0,
117
117
  limit: queryObject.limit || 25,
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormFooter.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormFooter.tsx"],"names":[],"mappings":"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","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { queryObjectToQueryStringByUrl, queryStringToQueryObjectByUrl } from \"../list/SolidListView\";\nimport { SolidFormViewProps } from \"./SolidFormView\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\n\nexport type SolidFormFooterProps = {\n params: SolidFormViewProps;\n};\n\ntype NavItem = {\n recordId: number;\n offset: number;\n limit: number;\n};\n\nexport const SolidFormFooter = ({ params }: SolidFormFooterProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n\n const [prevNav, setPrevNav] = useState<NavItem | null>(null);\n const [nextNav, setNextNav] = useState<NavItem | null>(null);\n const [meta, setMeta] = useState<any>(null);\n\n const [triggerGetNavigation, { isLoading }] =\n useLazyNavigationQuery();\n\n // -----------------------------\n // Helper: update local storage\n // -----------------------------\n const updatePaginationInLocalStorage = (offset: number, limit: number) => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n const queryObject = queryStringToQueryObjectByUrl(listPath);\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n queryObjectToQueryStringByUrl(listPath, updatedQueryObj)\n };\n\n const getNewUrl = (recordId: number): string => {\n // Replace the id after /form/\n const newPathname = pathname.replace(\n /\\/form\\/[^/]+/,\n `/form/${recordId}`,\n );\n\n // Clone search params (immutable in Next.js)\n const params = new URLSearchParams(searchParams.toString());\n\n // Remove only userKeyField\n params.delete(\"userKeyField\");\n\n const query = params.toString();\n return query ? `${newPathname}?${query}` : newPathname;\n }\n\n\n // -----------------------------\n // Click handlers\n // -----------------------------\n const handlePrev = () => {\n\n if (!prevNav) return;\n\n updatePaginationInLocalStorage(prevNav.offset, prevNav.limit);\n const newUrl = getNewUrl(prevNav.recordId)\n router.push(newUrl);\n };\n\n const handleNext = () => {\n if (!nextNav) return;\n\n updatePaginationInLocalStorage(nextNav.offset, nextNav.limit);\n const newUrl = getNewUrl(nextNav.recordId)\n router.push(newUrl);\n };\n\n // -----------------------------\n // Fetch navigation data\n // -----------------------------\n useEffect(() => {\n if (params.id !== \"new\") {\n\n const fetchNavigation = async () => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n\n const queryObject = queryStringToQueryObjectByUrl(listPath);\n\n const queryData = {\n offset: queryObject.offset || 0,\n limit: queryObject.limit || 25,\n filters: queryObject.filters,\n fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: queryObject.sort\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const response: any = await triggerGetNavigation(queryString).unwrap();\n console.log(\"response nav\", response);\n if (response.statusCode == 200) {\n setPrevNav(response?.data?.prev ?? null);\n setNextNav(response?.data?.next ?? null);\n setMeta(response?.data?.meta ?? null);\n }\n };\n fetchNavigation();\n }\n }, [params.id]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"flex justify-content-end align-items-center gap-2 p-1\"\n style={{ borderTop: \"1px solid var(--surface-border)\" }}\n >{meta &&\n <span>{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <Button\n icon=\"pi pi-angle-left\"\n className=\"p-button-sm p-button-text\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n tooltip=\"Previous\"\n tooltipOptions={{ position: \"top\" }}\n />\n )}\n\n {nextNav && (\n <Button\n icon=\"pi pi-angle-right\"\n className=\"p-button-sm p-button-text\"\n onClick={() => handleNext()}\n disabled={isLoading}\n tooltip=\"Next\"\n tooltipOptions={{ position: \"top\" }}\n />\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidFormFooter.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormFooter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,kCAAkC,EAAE,oCAAoC,EAAE,MAAM,uBAAuB,CAAC;AAEjH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAY3C,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,EAAgC;QAA9B,MAAM,YAAA;IACpC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAErB,IAAA,KAAwB,QAAQ,CAAiB,IAAI,CAAC,EAArD,OAAO,QAAA,EAAE,UAAU,QAAkC,CAAC;IACvD,IAAA,KAAwB,QAAQ,CAAiB,IAAI,CAAC,EAArD,OAAO,QAAA,EAAE,UAAU,QAAkC,CAAC;IACvD,IAAA,KAAkB,QAAQ,CAAM,IAAI,CAAC,EAApC,IAAI,QAAA,EAAE,OAAO,QAAuB,CAAC;IAEtC,IAAA,KACF,sBAAsB,EAAE,EADrB,oBAAoB,QAAA,EAAI,SAAS,kBACZ,CAAC;IAE7B,gCAAgC;IAChC,+BAA+B;IAC/B,gCAAgC;IAChC,IAAM,8BAA8B,GAAG,UAAC,MAAc,EAAE,KAAa;QACjE,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAC7C,eAAe,EACf,OAAO,CACV,CAAC;QACF,IAAM,WAAW,GAAG,oCAAoC,CAAC,QAAQ,CAAC,CAAC;QAEnE,IAAM,eAAe,yBACd,WAAW,KACd,MAAM,QAAA,EACN,KAAK,OAAA,GACR,CAAC;QACF,kCAAkC,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;IACjE,CAAC,CAAC;IAEF,IAAM,SAAS,GAAG,UAAC,QAAgB;QAC/B,8BAA8B;QAC9B,IAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAChC,eAAe,EACf,gBAAS,QAAQ,CAAE,CACtB,CAAC;QAEF,6CAA6C;QAC7C,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5D,2BAA2B;QAC3B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,CAAC,CAAC,UAAG,WAAW,cAAI,KAAK,CAAE,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3D,CAAC,CAAA;IAGD,gCAAgC;IAChC,iBAAiB;IACjB,gCAAgC;IAChC,IAAM,UAAU,GAAG;QAEf,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,8BAA8B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG;QACf,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,8BAA8B,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,gCAAgC;IAChC,wBAAwB;IACxB,gCAAgC;IAChC,SAAS,CAAC;QACN,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE;YAErB,IAAM,eAAe,GAAG;;;;;;4BACd,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAC7C,eAAe,EACf,OAAO,CACV,CAAC;4BAEI,WAAW,GAAG,oCAAoC,CAAC,QAAQ,CAAC,CAAC;4BAE7D,SAAS,GAAG;gCACd,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC;gCAC/B,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gCAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;gCAC5B,MAAM,EAAE,CAAC,IAAI,CAAC;gCACd,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,QAAQ,EAAE,MAAM,CAAC,EAAE;gCACnB,IAAI,EAAE,WAAW,CAAC,IAAI;6BACzB,CAAC;4BAEI,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE;gCACxC,gBAAgB,EAAE,IAAI;6BACzB,CAAC,CAAC;4BAEmB,qBAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAA;;4BAAhE,QAAQ,GAAQ,SAAgD;4BACtE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;4BACtC,IAAI,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE;gCAC5B,UAAU,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;gCACzC,UAAU,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;gCACzC,OAAO,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,IAAI,mCAAI,IAAI,CAAC,CAAC;6BACzC;;;;iBACJ,CAAC;YACF,eAAe,EAAE,CAAC;SACrB;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhB,gCAAgC;IAChC,KAAK;IACL,gCAAgC;IAChC,OAAO,CACH,eACI,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,SAAS,EAAE,iCAAiC,EAAE,aACzD,IAAI;gBACF,yBAAO,UAAG,IAAI,CAAC,kBAAkB,iBAAO,IAAI,CAAC,YAAY,CAAE,GAAQ,EAElE,OAAO,IAAI,CACR,KAAC,MAAM,IACH,IAAI,EAAC,kBAAkB,EACvB,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,EAC3B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAC,UAAU,EAClB,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GACrC,CACL,EAEA,OAAO,IAAI,CACR,KAAC,MAAM,IACH,IAAI,EAAC,mBAAmB,EACxB,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,EAC3B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAC,MAAM,EACd,cAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GACrC,CACL,IACC,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\n\nimport { useLazyNavigationQuery } from \"../../../redux/api/modelApi\";\nimport { useEffect, useState } from \"react\";\nimport qs from \"qs\";\nimport { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from \"../list/SolidListView\";\nimport { SolidFormViewProps } from \"./SolidFormView\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Button } from \"primereact/button\";\n\nexport type SolidFormFooterProps = {\n params: SolidFormViewProps;\n};\n\ntype NavItem = {\n recordId: number;\n offset: number;\n limit: number;\n};\n\nexport const SolidFormFooter = ({ params }: SolidFormFooterProps) => {\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const router = useRouter();\n\n const [prevNav, setPrevNav] = useState<NavItem | null>(null);\n const [nextNav, setNextNav] = useState<NavItem | null>(null);\n const [meta, setMeta] = useState<any>(null);\n\n const [triggerGetNavigation, { isLoading }] =\n useLazyNavigationQuery();\n\n // -----------------------------\n // Helper: update local storage\n // -----------------------------\n const updatePaginationInLocalStorage = (offset: number, limit: number) => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);\n\n const updatedQueryObj = {\n ...queryObject,\n offset,\n limit,\n };\n setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)\n };\n\n const getNewUrl = (recordId: number): string => {\n // Replace the id after /form/\n const newPathname = pathname.replace(\n /\\/form\\/[^/]+/,\n `/form/${recordId}`,\n );\n\n // Clone search params (immutable in Next.js)\n const params = new URLSearchParams(searchParams.toString());\n\n // Remove only userKeyField\n params.delete(\"userKeyField\");\n\n const query = params.toString();\n return query ? `${newPathname}?${query}` : newPathname;\n }\n\n\n // -----------------------------\n // Click handlers\n // -----------------------------\n const handlePrev = () => {\n\n if (!prevNav) return;\n\n updatePaginationInLocalStorage(prevNav.offset, prevNav.limit);\n const newUrl = getNewUrl(prevNav.recordId)\n router.push(newUrl);\n };\n\n const handleNext = () => {\n if (!nextNav) return;\n\n updatePaginationInLocalStorage(nextNav.offset, nextNav.limit);\n const newUrl = getNewUrl(nextNav.recordId)\n router.push(newUrl);\n };\n\n // -----------------------------\n // Fetch navigation data\n // -----------------------------\n useEffect(() => {\n if (params.id !== \"new\") {\n\n const fetchNavigation = async () => {\n const listPath = window.location.pathname.replace(\n /\\/form\\/[^/]+/,\n \"/list\",\n );\n\n const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);\n\n const queryData = {\n offset: queryObject.offset || 0,\n limit: queryObject.limit || 25,\n filters: queryObject.filters,\n fields: [\"id\"],\n modelName: params.modelName,\n recordId: params.id,\n sort: queryObject.sort\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const response: any = await triggerGetNavigation(queryString).unwrap();\n console.log(\"response nav\", response);\n if (response.statusCode == 200) {\n setPrevNav(response?.data?.prev ?? null);\n setNextNav(response?.data?.next ?? null);\n setMeta(response?.data?.meta ?? null);\n }\n };\n fetchNavigation();\n }\n }, [params.id]);\n\n // -----------------------------\n // UI\n // -----------------------------\n return (\n <div\n className=\"flex justify-content-end align-items-center gap-2 p-1\"\n style={{ borderTop: \"1px solid var(--surface-border)\" }}\n >{meta &&\n <span>{`${meta.currentIndexGlobal} of ${meta.totalRecords}`}</span>\n }\n {prevNav && (\n <Button\n icon=\"pi pi-angle-left\"\n className=\"p-button-sm p-button-text\"\n onClick={() => handlePrev()}\n disabled={isLoading}\n tooltip=\"Previous\"\n tooltipOptions={{ position: \"top\" }}\n />\n )}\n\n {nextNav && (\n <Button\n icon=\"pi pi-angle-right\"\n className=\"p-button-sm p-button-text\"\n onClick={() => handleNext()}\n disabled={isLoading}\n tooltip=\"Next\"\n tooltipOptions={{ position: \"top\" }}\n />\n )}\n </div>\n );\n};\n"]}
@@ -3,7 +3,7 @@
3
3
  import { useLazyNavigationQuery } from "../../../redux/api/modelApi";
4
4
  import { useEffect, useState } from "react";
5
5
  import qs from "qs";
6
- import { queryObjectToQueryStringByUrl, queryStringToQueryObjectByUrl } from "../list/SolidListView";
6
+ import { setFilterObjectToLocalStorageByUrl, getFilterObjectFromLocalStorageByUrl } from "../list/SolidListView";
7
7
  import { SolidFormViewProps } from "./SolidFormView";
8
8
  import { usePathname } from "../../../hooks/usePathname";
9
9
  import { useSearchParams } from "../../../hooks/useSearchParams";
@@ -40,14 +40,14 @@ export const SolidFormFooter = ({ params }: SolidFormFooterProps) => {
40
40
  /\/form\/[^/]+/,
41
41
  "/list",
42
42
  );
43
- const queryObject = queryStringToQueryObjectByUrl(listPath);
43
+ const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
44
44
 
45
45
  const updatedQueryObj = {
46
46
  ...queryObject,
47
47
  offset,
48
48
  limit,
49
49
  };
50
- queryObjectToQueryStringByUrl(listPath, updatedQueryObj)
50
+ setFilterObjectToLocalStorageByUrl(listPath, updatedQueryObj)
51
51
  };
52
52
 
53
53
  const getNewUrl = (recordId: number): string => {
@@ -100,7 +100,7 @@ export const SolidFormFooter = ({ params }: SolidFormFooterProps) => {
100
100
  "/list",
101
101
  );
102
102
 
103
- const queryObject = queryStringToQueryObjectByUrl(listPath);
103
+ const queryObject = getFilterObjectFromLocalStorageByUrl(listPath);
104
104
 
105
105
  const queryData = {
106
106
  offset: queryObject.offset || 0,
@@ -1 +1 @@
1
- {"version":3,"file":"SolidBooleanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAY3E,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAKnD,YAAY,IAAI,GAAG;IAoBnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IA8B9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAyC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAuF/F,CAAA;AAED,eAAO,MAAM,uCAAuC,6BAA8B,yBAAyB,4CA4E1G,CAAA;AAED,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA2FxG,CAAA;AAED,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CA0C/F,CAAA"}
1
+ {"version":3,"file":"SolidBooleanField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAY3E,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAKnD,YAAY,IAAI,GAAG;IAoBnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IA8B9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAyC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAuF/F,CAAA;AAED,eAAO,MAAM,uCAAuC,6BAA8B,yBAAyB,4CAwF1G,CAAA;AAED,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA2FxG,CAAA;AAED,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CA0C/F,CAAA"}
@@ -103,7 +103,7 @@ var SolidBooleanField = /** @class */ (function () {
103
103
  var fieldLayoutInfo = this.fieldContext.field;
104
104
  var fieldLabel = (_a = fieldLayoutInfo.attrs.label) !== null && _a !== void 0 ? _a : fieldMetadata.displayName;
105
105
  var className = ((_b = fieldLayoutInfo.attrs) === null || _b === void 0 ? void 0 : _b.className) || 'field col-12';
106
- useEffect(function () { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false"); }, []);
106
+ //useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
107
107
  var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
108
108
  var viewWidget = fieldLayoutInfo.attrs.viewWidget;
109
109
  var editWidget = fieldLayoutInfo.attrs.editWidget;
@@ -196,12 +196,12 @@ export var SolidBooleanCheckboxStyleFormEditWidget = function (_a) {
196
196
  var checkboxLabel = (_e = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _e === void 0 ? void 0 : _e.checkboxLabel;
197
197
  var readOnlyPermission = fieldContext.readOnly;
198
198
  // Set default value to false on mount
199
- useEffect(function () {
200
- if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
201
- console.log("Setting default value:", false);
202
- formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
203
- }
204
- }, []);
199
+ // useEffect(() => {
200
+ // if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
201
+ // console.log("Setting default value:", false);
202
+ // //formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
203
+ // }
204
+ // }, []);
205
205
  var handleChange = function (e) {
206
206
  var _a;
207
207
  var newValue = e.checked; // This returns `true` or `false`
@@ -222,7 +222,10 @@ export var SolidBooleanCheckboxStyleFormEditWidget = function (_a) {
222
222
  var formReadonly = (_o = (_m = (_l = solidFormViewMetaData.data.solidView) === null || _l === void 0 ? void 0 : _l.layout) === null || _m === void 0 ? void 0 : _m.attrs) === null || _o === void 0 ? void 0 : _o.readonly;
223
223
  return (_jsx("div", { className: className, children: _jsxs("div", { className: "relative", children: [_jsxs("div", { className: "flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4", children: [showFieldLabel !== false && (_jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label font-medium", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] })), _jsxs("div", { className: "flex align-items-center", children: [_jsx(Checkbox, { id: fieldLayoutInfo.attrs.name, checked: formik.values[fieldLayoutInfo.attrs.name] === true,
224
224
  // onChange={handleChange}
225
- onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, disabled: formDisabled || fieldDisabled, readOnly: formReadonly || fieldReadonly || readOnlyPermission, className: classNames("", {
225
+ onChange: function (e) {
226
+ var normalizedEvent = __assign(__assign({}, e), { target: __assign(__assign({}, e.target), { name: fieldLayoutInfo.attrs.name, value: e.checked, checked: e.checked, type: 'checkbox' }) });
227
+ fieldContext.onChange(normalizedEvent, 'onFieldChange');
228
+ }, disabled: formDisabled || fieldDisabled, readOnly: formReadonly || fieldReadonly || readOnlyPermission, className: classNames("", {
226
229
  "p-invalid": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),
227
230
  }) }), checkboxLabel &&
228
231
  _jsx("span", { className: "ml-2", children: checkboxLabel || "Yes" })] })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (_p = formik.errors[fieldLayoutInfo.attrs.name]) === null || _p === void 0 ? void 0 : _p.toString() }) }))] }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidBooleanField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { Message } from \"primereact/message\";\nimport { SelectButton } from \"primereact/selectbutton\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { Checkbox, CheckboxChangeEvent } from \"primereact/checkbox\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { InputSwitch } from \"primereact/inputswitch\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\ntype BooleanOption = {\n label: string;\n value: string;\n};\n\n\nexport class SolidBooleanField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n formData.append(fieldLayoutInfo.attrs.name, value === \"true\" || value === true ? \"true\" : \"\");\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n // return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n\n // Ensure the value is always a string \"true\" or \"false\"\n // const result = existingValue\n // ? (existingValue === true || existingValue === \"true\" ? \"true\" : \"false\")\n // : (fieldDefaultValue === true || fieldDefaultValue === \"true\" ? \"true\" : \"false\");\n // return result;\n\n if (existingValue !== undefined && existingValue !== null) {\n return existingValue === true || existingValue === \"true\";\n }\n return fieldDefaultValue === true || fieldDefaultValue === \"true\";\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.BooleanSchema<boolean | null | undefined> = Yup.boolean();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema.required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // // 2. length (min/max)\n // if (fieldMetadata.min && fieldMetadata.min > 0) {\n // schema = schema.min(fieldMetadata.min, `${fieldLabel} should be at-least ${fieldMetadata.min} characters long.`);\n // }\n // if (fieldMetadata.max && fieldMetadata.max > 0) {\n // schema = schema.max(fieldMetadata.max, `${fieldLabel} should not be more than ${fieldMetadata.max} characters long.`);\n // }\n // 3. regular expression\n //*********Regex doesnt make sense in boolean right? */\n // if (fieldMetadata.regexPattern) {\n // const regexPatternNotMatchingErrorMsg = fieldMetadata.regexPatternNotMatchingErrorMsg ?? `${fieldLabel} has invalid data.`\n // schema = schema.matches(fieldMetadata.regexPattern, regexPatternNotMatchingErrorMsg);\n // }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'booleanCheckbox';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultBooleanFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n (\n <>\n {\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n\n\n}\n\n\n\nexport const DefaultBooleanFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n const readOnlyPermission = fieldContext.readOnly;\n // const [booleanOptions, setBooleanOptions] = useState<string[]>([\"false\", \"true\"]);\n const [booleanOptions, setBooleanOptions] = useState<BooleanOption[]>([\n { label: \"False\", value: \"false\" },\n { label: \"True\", value: \"true\" },\n ]);\n\n // let booleanOptions = [\"false\", \"true\"];\n useEffect(() => {\n if (trueLabel || falseLabel) {\n setBooleanOptions([\n {\n label: falseLabel ?? \"False\",\n value: \"false\",\n },\n {\n label: trueLabel ?? \"True\",\n value: \"true\",\n },\n ]);\n }\n }, [trueLabel, falseLabel]);\n\n // useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n useEffect(() => {\n const name = fieldLayoutInfo.attrs.name;\n if (formik.values[name] === undefined || formik.values[name] === null) {\n formik.setFieldValue(name, \"false\");\n }\n }, []);\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* &nbsp; {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n {/* <InputText\n id={fieldLayoutInfo.attrs.name}\n className=\"small-input\"\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={formik.handleChange}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n /> */}\n <SelectButton\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n optionLabel=\"label\"\n optionValue=\"value\"\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e) => { formik.setFieldValue(fieldLayoutInfo.attrs.name, e.value); console.log(\"value is\", e.value) }} // Custom handling for boolean input\n value={formik.values[fieldLayoutInfo.attrs.name] ? formik.values[fieldLayoutInfo.attrs.name].toString() : \"false\"}\n options={booleanOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\nexport const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const checkboxLabel = fieldLayoutInfo?.attrs?.checkboxLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n useEffect(() => {\n if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n console.log(\"Setting default value:\", false);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n }\n }, []);\n\n const handleChange = (e: CheckboxChangeEvent) => {\n const newValue = e.checked; // This returns `true` or `false`\n console.log(`${fieldLayoutInfo.attrs.name}, new value:`, newValue);\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? 'true' : 'false');\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // ✅ Check if Formik updated the value correctly\n setTimeout(() => {\n console.log(\"Formik values after update:\", formik.values);\n }, 0);\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <Checkbox\n id={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true}\n // onChange={handleChange}\n onChange={(e) => fieldContext.onChange(e, 'onFieldChange')}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n {checkboxLabel &&\n <span className=\"ml-2\">{checkboxLabel || \"Yes\"}</span>\n }\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const SolidBooleanSwitchStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n useEffect(() => {\n if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n console.log(\"Setting default value:\", false);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n }\n }, []);\n\n const handleChange = (e: any) => {\n const newValue = e.value;\n console.log(`${fieldLayoutInfo.attrs.name} switch clicked, new value:`, newValue);\n\n // formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? true : false);\n // formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // // ✅ Check if Formik updated the value correctly\n // setTimeout(() => {\n // console.log(\"Formik values after update:\", formik.values);\n // }, 0);\n\n // 1: BYPASS Formik's validation by directly mutating the values object\n // This is necessary because the validation schema was rejecting boolean values\n // Direct assignment skips all validation logic that was causing the issue\n formik.values[fieldLayoutInfo.attrs.name] = newValue;\n\n // 2: Force Formik to recognize the change and trigger re-renders\n // setValues() with the second parameter as 'false' means:\n // - false = skip validation (avoid the schema conflict)\n // - This triggers Formik's internal change detection and component re-renders\n formik.setValues({ ...formik.values }, false);\n\n // 3: Mark the field as \"touched\" to indicate user interaction\n // This is important for validation state and form submission logic\n // The 'false' parameter means don't validate immediately\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }, false);\n fieldContext.onChange(e, 'onFieldChange');\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <InputSwitch\n id={fieldLayoutInfo.attrs.name}\n name={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true || formik.values[fieldLayoutInfo.attrs.name] === \"true\"}\n onChange={handleChange}\n // onChange={(e) => {fieldContext.onChange(e, 'onFieldChange')}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n <span className=\"ml-2\">{fieldLabel || \"Yes\"}</span>\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const DefaultBooleanFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n // const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n // const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n\n const [trueLabel, setTrueLabel] = useState<string>(\"true\");\n const [falseLabel, setFalseLabel] = useState<string>(\"false\");\n\n useEffect(() => {\n if (fieldLayoutInfo?.attrs?.trueLabel) {\n setTrueLabel(fieldLayoutInfo?.attrs?.trueLabel)\n }\n if (fieldLayoutInfo?.attrs?.falseLabel) {\n setFalseLabel(fieldLayoutInfo?.attrs?.falseLabel)\n }\n }, [fieldLayoutInfo?.attrs?.falseLabel, fieldLayoutInfo?.attrs?.trueLabel])\n\n\n return (\n <div className=\"mt-2 flex-column gap-2\">\n {showFieldLabel !== false && (\n <p className=\"m-0 form-field-label font-medium\">{fieldLabel}</p>\n )}\n <p className=\"m-0\">\n {(() => {\n const value = formik.values[fieldLayoutInfo.attrs.name];\n if (value === true) {\n return trueLabel;\n }\n if (value === false) {\n return falseLabel;\n }\n return '';\n })()}\n </p>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidBooleanField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidBooleanField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { Message } from \"primereact/message\";\nimport { SelectButton } from \"primereact/selectbutton\";\nimport { classNames } from \"primereact/utils\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { Checkbox, CheckboxChangeEvent } from \"primereact/checkbox\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { InputSwitch } from \"primereact/inputswitch\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\ntype BooleanOption = {\n label: string;\n value: string;\n};\n\n\nexport class SolidBooleanField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n formData.append(fieldLayoutInfo.attrs.name, value === \"true\" || value === true ? \"true\" : \"\");\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n // return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n\n // Ensure the value is always a string \"true\" or \"false\"\n // const result = existingValue\n // ? (existingValue === true || existingValue === \"true\" ? \"true\" : \"false\")\n // : (fieldDefaultValue === true || fieldDefaultValue === \"true\" ? \"true\" : \"false\");\n // return result;\n\n if (existingValue !== undefined && existingValue !== null) {\n return existingValue === true || existingValue === \"true\";\n }\n return fieldDefaultValue === true || fieldDefaultValue === \"true\";\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.BooleanSchema<boolean | null | undefined> = Yup.boolean();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n // 1. required \n if (fieldMetadata.required) {\n schema = schema.required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // // 2. length (min/max)\n // if (fieldMetadata.min && fieldMetadata.min > 0) {\n // schema = schema.min(fieldMetadata.min, `${fieldLabel} should be at-least ${fieldMetadata.min} characters long.`);\n // }\n // if (fieldMetadata.max && fieldMetadata.max > 0) {\n // schema = schema.max(fieldMetadata.max, `${fieldLabel} should not be more than ${fieldMetadata.max} characters long.`);\n // }\n // 3. regular expression\n //*********Regex doesnt make sense in boolean right? */\n // if (fieldMetadata.regexPattern) {\n // const regexPatternNotMatchingErrorMsg = fieldMetadata.regexPatternNotMatchingErrorMsg ?? `${fieldLabel} has invalid data.`\n // schema = schema.matches(fieldMetadata.regexPattern, regexPatternNotMatchingErrorMsg);\n // }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n //useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'booleanCheckbox';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultBooleanFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n (\n <>\n {\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n\n\n}\n\n\n\nexport const DefaultBooleanFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n const readOnlyPermission = fieldContext.readOnly;\n // const [booleanOptions, setBooleanOptions] = useState<string[]>([\"false\", \"true\"]);\n const [booleanOptions, setBooleanOptions] = useState<BooleanOption[]>([\n { label: \"False\", value: \"false\" },\n { label: \"True\", value: \"true\" },\n ]);\n\n // let booleanOptions = [\"false\", \"true\"];\n useEffect(() => {\n if (trueLabel || falseLabel) {\n setBooleanOptions([\n {\n label: falseLabel ?? \"False\",\n value: \"false\",\n },\n {\n label: trueLabel ?? \"True\",\n value: \"true\",\n },\n ]);\n }\n }, [trueLabel, falseLabel]);\n\n // useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n useEffect(() => {\n const name = fieldLayoutInfo.attrs.name;\n if (formik.values[name] === undefined || formik.values[name] === null) {\n formik.setFieldValue(name, \"false\");\n }\n }, []);\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* &nbsp; {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n {/* <InputText\n id={fieldLayoutInfo.attrs.name}\n className=\"small-input\"\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={formik.handleChange}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n /> */}\n <SelectButton\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n optionLabel=\"label\"\n optionValue=\"value\"\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e) => { formik.setFieldValue(fieldLayoutInfo.attrs.name, e.value); console.log(\"value is\", e.value) }} // Custom handling for boolean input\n value={formik.values[fieldLayoutInfo.attrs.name] ? formik.values[fieldLayoutInfo.attrs.name].toString() : \"false\"}\n options={booleanOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\nexport const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const checkboxLabel = fieldLayoutInfo?.attrs?.checkboxLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n // useEffect(() => {\n // if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n // console.log(\"Setting default value:\", false);\n // //formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n // }\n // }, []);\n\n const handleChange = (e: CheckboxChangeEvent) => {\n const newValue = e.checked; // This returns `true` or `false`\n console.log(`${fieldLayoutInfo.attrs.name}, new value:`, newValue);\n\n formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? 'true' : 'false');\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // ✅ Check if Formik updated the value correctly\n setTimeout(() => {\n console.log(\"Formik values after update:\", formik.values);\n }, 0);\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <Checkbox\n id={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true}\n // onChange={handleChange}\n onChange={(e) => {\n const normalizedEvent = {\n ...e,\n target: {\n ...e.target,\n name: fieldLayoutInfo.attrs.name,\n value: e.checked,\n checked: e.checked,\n type: 'checkbox'\n }\n };\n fieldContext.onChange(normalizedEvent, 'onFieldChange')\n }}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n {checkboxLabel &&\n <span className=\"ml-2\">{checkboxLabel || \"Yes\"}</span>\n }\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const SolidBooleanSwitchStyleFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || \"field col-12\";\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n // Set default value to false on mount\n useEffect(() => {\n if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {\n console.log(\"Setting default value:\", false);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, false);\n }\n }, []);\n\n const handleChange = (e: any) => {\n const newValue = e.value;\n console.log(`${fieldLayoutInfo.attrs.name} switch clicked, new value:`, newValue);\n\n // formik.setFieldValue(fieldLayoutInfo.attrs.name, newValue === true ? true : false);\n // formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }); // Ensure Formik registers the change\n // // ✅ Check if Formik updated the value correctly\n // setTimeout(() => {\n // console.log(\"Formik values after update:\", formik.values);\n // }, 0);\n\n // 1: BYPASS Formik's validation by directly mutating the values object\n // This is necessary because the validation schema was rejecting boolean values\n // Direct assignment skips all validation logic that was causing the issue\n formik.values[fieldLayoutInfo.attrs.name] = newValue;\n\n // 2: Force Formik to recognize the change and trigger re-renders\n // setValues() with the second parameter as 'false' means:\n // - false = skip validation (avoid the schema conflict)\n // - This triggers Formik's internal change detection and component re-renders\n formik.setValues({ ...formik.values }, false);\n\n // 3: Mark the field as \"touched\" to indicate user interaction\n // This is important for validation state and form submission logic\n // The 'false' parameter means don't validate immediately\n formik.setTouched({ ...formik.touched, [fieldLayoutInfo.attrs.name]: true }, false);\n fieldContext.onChange(e, 'onFieldChange');\n };\n\n const isFormFieldValid = (formik: any, fieldName: any) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\n <div className={className}>\n <div className=\"relative\">\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4\">\n {showFieldLabel !== false && (\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n )}\n\n <div className=\"flex align-items-center\">\n <InputSwitch\n id={fieldLayoutInfo.attrs.name}\n name={fieldLayoutInfo.attrs.name}\n checked={formik.values[fieldLayoutInfo.attrs.name] === true || formik.values[fieldLayoutInfo.attrs.name] === \"true\"}\n onChange={handleChange}\n // onChange={(e) => {fieldContext.onChange(e, 'onFieldChange')}\n disabled={formDisabled || fieldDisabled}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, fieldLayoutInfo.attrs.name),\n })}\n />\n <span className=\"ml-2\">{fieldLabel || \"Yes\"}</span>\n </div>\n </div>\n\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport const DefaultBooleanFormViewWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n // const trueLabel = fieldLayoutInfo?.attrs?.trueLabel;\n // const falseLabel = fieldLayoutInfo?.attrs?.falseLabel;\n\n const [trueLabel, setTrueLabel] = useState<string>(\"true\");\n const [falseLabel, setFalseLabel] = useState<string>(\"false\");\n\n useEffect(() => {\n if (fieldLayoutInfo?.attrs?.trueLabel) {\n setTrueLabel(fieldLayoutInfo?.attrs?.trueLabel)\n }\n if (fieldLayoutInfo?.attrs?.falseLabel) {\n setFalseLabel(fieldLayoutInfo?.attrs?.falseLabel)\n }\n }, [fieldLayoutInfo?.attrs?.falseLabel, fieldLayoutInfo?.attrs?.trueLabel])\n\n\n return (\n <div className=\"mt-2 flex-column gap-2\">\n {showFieldLabel !== false && (\n <p className=\"m-0 form-field-label font-medium\">{fieldLabel}</p>\n )}\n <p className=\"m-0\">\n {(() => {\n const value = formik.values[fieldLayoutInfo.attrs.name];\n if (value === true) {\n return trueLabel;\n }\n if (value === false) {\n return falseLabel;\n }\n return '';\n })()}\n </p>\n </div>\n );\n}\n"]}
@@ -87,7 +87,7 @@ export class SolidBooleanField implements ISolidField {
87
87
  const fieldLayoutInfo = this.fieldContext.field;
88
88
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
89
89
  const className = fieldLayoutInfo.attrs?.className || 'field col-12';
90
- useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
90
+ //useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, "false") }, [])
91
91
 
92
92
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
93
93
 
@@ -240,12 +240,12 @@ export const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }
240
240
  const readOnlyPermission = fieldContext.readOnly;
241
241
 
242
242
  // Set default value to false on mount
243
- useEffect(() => {
244
- if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
245
- console.log("Setting default value:", false);
246
- formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
247
- }
248
- }, []);
243
+ // useEffect(() => {
244
+ // if (formik.values[fieldLayoutInfo.attrs.name] === undefined) {
245
+ // console.log("Setting default value:", false);
246
+ // //formik.setFieldValue(fieldLayoutInfo.attrs.name, false);
247
+ // }
248
+ // }, []);
249
249
 
250
250
  const handleChange = (e: CheckboxChangeEvent) => {
251
251
  const newValue = e.checked; // This returns `true` or `false`
@@ -284,7 +284,19 @@ export const SolidBooleanCheckboxStyleFormEditWidget = ({ formik, fieldContext }
284
284
  id={fieldLayoutInfo.attrs.name}
285
285
  checked={formik.values[fieldLayoutInfo.attrs.name] === true}
286
286
  // onChange={handleChange}
287
- onChange={(e) => fieldContext.onChange(e, 'onFieldChange')}
287
+ onChange={(e) => {
288
+ const normalizedEvent = {
289
+ ...e,
290
+ target: {
291
+ ...e.target,
292
+ name: fieldLayoutInfo.attrs.name,
293
+ value: e.checked,
294
+ checked: e.checked,
295
+ type: 'checkbox'
296
+ }
297
+ };
298
+ fieldContext.onChange(normalizedEvent, 'onFieldChange')
299
+ }}
288
300
  disabled={formDisabled || fieldDisabled}
289
301
  readOnly={formReadonly || fieldReadonly || readOnlyPermission}
290
302
  className={classNames("", {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToManyField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAgB5E,qBAAa,4BAA6B,YAAW,WAAW;IAE5D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAkBnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAgCnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAID,eAAO,MAAM,mDAAmD,6BAA8B,yBAAyB,4CAmJtH,CAAA;AAID,eAAO,MAAM,+CAA+C,6BAA8B,yBAAyB,4CAsJlH,CAAA"}
1
+ {"version":3,"file":"SolidRelationManyToManyField.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAgB5E,qBAAa,4BAA6B,YAAW,WAAW;IAE5D,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,YAAY,IAAI,GAAG;IAkBnB,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAgCnD,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAiB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAID,eAAO,MAAM,mDAAmD,6BAA8B,yBAAyB,4CAwJtH,CAAA;AAID,eAAO,MAAM,+CAA+C,6BAA8B,yBAAyB,4CA2JlH,CAAA"}
@@ -86,20 +86,19 @@ var SolidRelationManyToManyField = /** @class */ (function () {
86
86
  configurable: true,
87
87
  writable: true,
88
88
  value: function () {
89
- var _a, _b;
90
- var manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];
91
- var fieldMetadata = this.fieldContext.fieldMetadata;
92
- var userKeyField = (_b = (_a = fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.relationModel) === null || _a === void 0 ? void 0 : _a.userKeyField) === null || _b === void 0 ? void 0 : _b.name;
93
- if (manyToManyFieldData) {
94
- return manyToManyFieldData.map(function (e) {
95
- var manyToManyColVal = e[userKeyField] || '';
96
- return {
97
- label: manyToManyColVal,
98
- value: (e === null || e === void 0 ? void 0 : e.id) || '',
99
- original: e
100
- };
101
- });
102
- }
89
+ // const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];
90
+ // const fieldMetadata = this.fieldContext.fieldMetadata;
91
+ // const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;
92
+ // if (manyToManyFieldData) {
93
+ // return manyToManyFieldData.map((e: any) => {
94
+ // const manyToManyColVal = e[userKeyField] || '';
95
+ // return {
96
+ // label: manyToManyColVal,
97
+ // value: e?.id || '',
98
+ // original: e
99
+ // };
100
+ // });
101
+ // }
103
102
  return [];
104
103
  }
105
104
  });
@@ -193,7 +192,7 @@ var SolidRelationManyToManyField = /** @class */ (function () {
193
192
  }());
194
193
  export { SolidRelationManyToManyField };
195
194
  export var DefaultRelationManyToManyAutoCompleteFormEditWidget = function (_a) {
196
- var _b, _c, _d, _e, _f, _g;
195
+ var _b, _c, _d, _e, _f, _g, _h;
197
196
  var formik = _a.formik, fieldContext = _a.fieldContext;
198
197
  var fieldMetadata = fieldContext.fieldMetadata;
199
198
  var fieldLayoutInfo = fieldContext.field;
@@ -204,12 +203,15 @@ export var DefaultRelationManyToManyAutoCompleteFormEditWidget = function (_a) {
204
203
  var disabled = (_e = fieldLayoutInfo.attrs) === null || _e === void 0 ? void 0 : _e.disabled;
205
204
  var readOnly = (_f = fieldLayoutInfo.attrs) === null || _f === void 0 ? void 0 : _f.readOnly;
206
205
  var whereClause = fieldLayoutInfo.attrs.whereClause;
207
- var _h = useState(false), visibleCreateDialog = _h[0], setVisibleCreateDialog = _h[1];
208
- var _j = useRelationEntityHandler({ fieldContext: fieldContext, formik: formik }), autoCompleteItems = _j.autoCompleteItems, fetchRelationEntities = _j.fetchRelationEntities, addNewRelation = _j.addNewRelation;
206
+ var _j = useState(false), visibleCreateDialog = _j[0], setVisibleCreateDialog = _j[1];
207
+ var _k = useRelationEntityHandler({ fieldContext: fieldContext, formik: formik }), autoCompleteItems = _k.autoCompleteItems, fetchRelationEntities = _k.fetchRelationEntities, populateFormikWithRelatedEntities = _k.populateFormikWithRelatedEntities, addNewRelation = _k.addNewRelation;
209
208
  var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
210
209
  // const onChange = (e: any) => {
211
210
  // formik.setFieldValue(fieldContext.field.attrs.name, e.value);
212
211
  // };
212
+ useEffect(function () {
213
+ populateFormikWithRelatedEntities();
214
+ }, [(_g = formik.values) === null || _g === void 0 ? void 0 : _g.id]);
213
215
  var autoCompleteSearch = function (event) { return __awaiter(void 0, void 0, void 0, function () {
214
216
  var queryData, fixedFilterToBeApplied, fixedFilterParsed, convertedFixedFilter, fixedFilterTemplate, renderedFilter, parsedFilter_1, isValid, autocompleteQs;
215
217
  var _a, _b;
@@ -282,17 +284,20 @@ export var DefaultRelationManyToManyAutoCompleteFormEditWidget = function (_a) {
282
284
  });
283
285
  }); };
284
286
  return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: "flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4", children: [showFieldLabel != false &&
285
- _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(AutoComplete, __assign({ readOnly: readOnly || readOnlyPermission, disabled: disabled || readOnlyPermission, multiple: true }, formik.getFieldProps(fieldLayoutInfo.attrs.name), { id: fieldLayoutInfo.attrs.name, field: "label", value: formik.values[fieldLayoutInfo.attrs.name] || '', dropdown: !readOnlyPermission, suggestions: autoCompleteItems, completeMethod: autoCompleteSearch, onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, className: "solid-standard-autocomplete w-full" })), fieldContext.field.attrs.inlineCreate && (_jsxs(_Fragment, { children: [_jsx("div", { children: _jsx(Button, { icon: "pi pi-plus", rounded: true, outlined: true, "aria-label": "Filter", type: "button", size: "small", onClick: function () { return setVisibleCreateDialog(true); }, className: "custom-add-button" }) }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (_g = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _g === void 0 ? void 0 : _g.toString() }) }))] }));
287
+ _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsxs("div", { className: "flex align-items-center gap-3", children: [_jsx(AutoComplete, __assign({ readOnly: readOnly || readOnlyPermission, disabled: disabled || readOnlyPermission, multiple: true }, formik.getFieldProps(fieldLayoutInfo.attrs.name), { id: fieldLayoutInfo.attrs.name, field: "label", value: formik.values[fieldLayoutInfo.attrs.name] || '', dropdown: !readOnlyPermission, suggestions: autoCompleteItems, completeMethod: autoCompleteSearch, onChange: function (e) { return fieldContext.onChange(e, 'onFieldChange'); }, className: "solid-standard-autocomplete w-full" })), fieldContext.field.attrs.inlineCreate && (_jsxs(_Fragment, { children: [_jsx("div", { children: _jsx(Button, { icon: "pi pi-plus", rounded: true, outlined: true, "aria-label": "Filter", type: "button", size: "small", onClick: function () { return setVisibleCreateDialog(true); }, className: "custom-add-button" }) }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (_h = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _h === void 0 ? void 0 : _h.toString() }) }))] }));
286
288
  };
287
289
  export var DefaultRelationManyToManyCheckBoxFormEditWidget = function (_a) {
288
- var _b;
290
+ var _b, _c;
289
291
  var formik = _a.formik, fieldContext = _a.fieldContext;
290
292
  var fieldMetadata = fieldContext.fieldMetadata;
291
293
  var fieldLayoutInfo = fieldContext.field;
292
294
  var showFieldLabel = (_b = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _b === void 0 ? void 0 : _b.showLabel;
293
295
  var readOnlyPermission = fieldContext.readOnly;
294
- var _c = useState(false), visibleCreateDialog = _c[0], setVisibleCreateDialog = _c[1];
295
- var _d = useRelationEntityHandler({ fieldContext: fieldContext, formik: formik }), autoCompleteItems = _d.autoCompleteItems, fetchRelationEntities = _d.fetchRelationEntities, addNewRelation = _d.addNewRelation;
296
+ var _d = useState(false), visibleCreateDialog = _d[0], setVisibleCreateDialog = _d[1];
297
+ var _e = useRelationEntityHandler({ fieldContext: fieldContext, formik: formik }), autoCompleteItems = _e.autoCompleteItems, fetchRelationEntities = _e.fetchRelationEntities, populateFormikWithRelatedEntities = _e.populateFormikWithRelatedEntities, addNewRelation = _e.addNewRelation;
298
+ useEffect(function () {
299
+ populateFormikWithRelatedEntities();
300
+ }, [(_c = formik.values) === null || _c === void 0 ? void 0 : _c.id]);
296
301
  useEffect(function () {
297
302
  var _a, _b, _c;
298
303
  var fieldMetadata = fieldContext.fieldMetadata;