@solidxai/core-ui 0.1.2 → 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 (149) 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 +197 -74
  23. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  24. package/dist/components/core/common/SolidGlobalSearchElement.tsx +276 -40
  25. package/dist/components/core/common/SolidImageViewer.d.ts +10 -0
  26. package/dist/components/core/common/SolidImageViewer.d.ts.map +1 -0
  27. package/dist/components/core/common/SolidImageViewer.js +59 -0
  28. package/dist/components/core/common/SolidImageViewer.js.map +1 -0
  29. package/dist/components/core/common/SolidImageViewer.tsx +84 -0
  30. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts +19 -0
  31. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.d.ts.map +1 -0
  32. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js +90 -0
  33. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.js.map +1 -0
  34. package/dist/components/core/extension/solid-core/modelSequence/modelSequenceFormViewChangeHandler.tsx +59 -0
  35. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  36. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +7 -3
  37. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  38. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +45 -40
  39. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +2 -0
  40. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -0
  41. package/dist/components/core/filter/SolidOneToManyFilterElement.js +86 -0
  42. package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -0
  43. package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +62 -0
  44. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -0
  45. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  46. package/dist/components/core/filter/SolidVarInputsFilterElement.js +4 -1
  47. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  48. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +10 -0
  49. package/dist/components/core/filter/fields/SolidRelationField.d.ts.map +1 -1
  50. package/dist/components/core/filter/fields/SolidRelationField.js +4 -2
  51. package/dist/components/core/filter/fields/SolidRelationField.js.map +1 -1
  52. package/dist/components/core/filter/fields/SolidRelationField.tsx +4 -2
  53. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts +4 -0
  54. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -0
  55. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +25 -0
  56. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -0
  57. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +60 -0
  58. package/dist/components/core/form/SolidFormFooter.js +4 -4
  59. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  60. package/dist/components/core/form/SolidFormFooter.tsx +4 -4
  61. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidBooleanField.js +11 -8
  63. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidBooleanField.tsx +20 -8
  65. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  66. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +26 -21
  67. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  68. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +27 -17
  69. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +1 -0
  70. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +51 -0
  72. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
  73. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +51 -0
  74. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +80 -79
  76. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  77. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +92 -85
  78. package/dist/components/core/kanban/SolidKanbanView.js +5 -5
  79. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  80. package/dist/components/core/kanban/SolidKanbanView.tsx +5 -5
  81. package/dist/components/core/list/SolidListView.d.ts +12 -7
  82. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  83. package/dist/components/core/list/SolidListView.js +143 -153
  84. package/dist/components/core/list/SolidListView.js.map +1 -1
  85. package/dist/components/core/list/SolidListView.tsx +89 -94
  86. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  87. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +16 -17
  88. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  89. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +46 -44
  90. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  91. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +6 -4
  92. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  93. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +7 -5
  94. package/dist/components/core/list/listViewRegistry.js.map +1 -1
  95. package/dist/components/core/list/listViewRegistry.ts +1 -2
  96. package/dist/components/core/tree/SolidTreeView.d.ts +38 -0
  97. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -0
  98. package/dist/components/core/tree/SolidTreeView.js +1170 -0
  99. package/dist/components/core/tree/SolidTreeView.js.map +1 -0
  100. package/dist/components/core/tree/SolidTreeView.tsx +1603 -0
  101. package/dist/components/core/tree/treeViewRegistry.d.ts +7 -0
  102. package/dist/components/core/tree/treeViewRegistry.d.ts.map +1 -0
  103. package/dist/components/core/tree/treeViewRegistry.js +17 -0
  104. package/dist/components/core/tree/treeViewRegistry.js.map +1 -0
  105. package/dist/components/core/tree/treeViewRegistry.ts +23 -0
  106. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  107. package/dist/components/core/users/CreateUser.js +19 -6
  108. package/dist/components/core/users/CreateUser.js.map +1 -1
  109. package/dist/components/core/users/CreateUser.tsx +39 -0
  110. package/dist/helpers/fetchS3Url.d.ts +19 -0
  111. package/dist/helpers/fetchS3Url.d.ts.map +1 -0
  112. package/dist/helpers/fetchS3Url.js +60 -0
  113. package/dist/helpers/fetchS3Url.js.map +1 -0
  114. package/dist/helpers/fetchS3Url.ts +33 -0
  115. package/dist/helpers/helpers.d.ts +2 -0
  116. package/dist/helpers/helpers.d.ts.map +1 -1
  117. package/dist/helpers/helpers.js +3 -1
  118. package/dist/helpers/helpers.js.map +1 -1
  119. package/dist/helpers/helpers.ts +4 -1
  120. package/dist/helpers/registry.d.ts.map +1 -1
  121. package/dist/helpers/registry.js +2 -0
  122. package/dist/helpers/registry.js.map +1 -1
  123. package/dist/helpers/registry.ts +3 -1
  124. package/dist/index.d.ts +9 -2
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +6 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/index.ts +14 -2
  129. package/dist/resources/globals.css +18 -4
  130. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  131. package/dist/routes/pages/admin/core/ListPage.js +8 -3
  132. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  133. package/dist/routes/pages/admin/core/ListPage.tsx +11 -3
  134. package/dist/routes/pages/admin/core/TreePage.d.ts +2 -0
  135. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -0
  136. package/dist/routes/pages/admin/core/TreePage.js +37 -0
  137. package/dist/routes/pages/admin/core/TreePage.js.map +1 -0
  138. package/dist/routes/pages/admin/core/TreePage.tsx +30 -0
  139. package/dist/routes/solidRoutes.d.ts.map +1 -1
  140. package/dist/routes/solidRoutes.js +2 -0
  141. package/dist/routes/solidRoutes.js.map +1 -1
  142. package/dist/routes/solidRoutes.tsx +3 -1
  143. package/dist/routes/types.d.ts +1 -1
  144. package/dist/routes/types.d.ts.map +1 -1
  145. package/dist/routes/types.js.map +1 -1
  146. package/dist/routes/types.ts +1 -0
  147. package/dist/types/index.d.ts +8 -2
  148. package/dist/types/solid-core.d.ts +40 -0
  149. package/package.json +1 -1
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToManyField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { Button } from \"primereact/button\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useRelationEntityHandler } from \"./widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"./widgets/helpers/InlineRelationEntityDialog\";\nimport { capitalize } from \"lodash\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Panel } from \"primereact/panel\";\nimport { SolidFieldTooltip } from \"../../../../../components/common/SolidFieldTooltip\";\nimport qs from 'qs';\n// import Handlebars from \"handlebars/dist/handlebars\";\nimport * as Handlebars from \"handlebars\";\nimport { ERROR_MESSAGES } from \"../../../../../constants/error-messages\";\n\n\n\n\n\nexport class SolidRelationManyToManyField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n\n const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;\n if (manyToManyFieldData) {\n return manyToManyFieldData.map((e: any) => {\n const manyToManyColVal = e[userKeyField] || '';\n return {\n label: manyToManyColVal,\n value: e?.id || '',\n original: e\n };\n });\n }\n return [];\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n //if empty then clear the field\n if(value && value.length === 0) {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"clear\");\n }\n if (value && value.length > 0) {\n const shouldUseOriginal = value.every((item: any) => item.original && item.original.id);\n\n value.forEach((item: any, index: number) => {\n if (shouldUseOriginal) {\n formData.append(\n `${fieldLayoutInfo.attrs.name}Ids[${index}]`,\n item.value\n );\n } else {\n formData.append(\n `${fieldLayoutInfo.attrs.name}[${index}]`,\n JSON.stringify(item.original)\n );\n }\n });\n if (shouldUseOriginal) {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"set\")\n } else {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"update\")\n\n }\n\n }\n }\n\n validationSchema(): Yup.Schema {\n let schema = Yup.array();\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\n .min(1, ERROR_MESSAGES.SELECT_ATLEAST_ONE(fieldLabel))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultRelationManyToManyAutoCompleteFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultRelationOneToManyFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\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\nexport const DefaultRelationManyToManyAutoCompleteFormEditWidget = ({ 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 showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const readOnly = fieldLayoutInfo.attrs?.readOnly;\n const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n const { autoCompleteItems, fetchRelationEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n // const onChange = (e: any) => {\n // formik.setFieldValue(fieldContext.field.attrs.name, e.value);\n // };\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: event.query\n }\n }\n ]\n }\n };\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n let parsedFilter: any;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(parsedFilter);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {};\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n\n } else {\n // const autocompleteQs = qs.stringify(queryData, {\n // encodeValuesOnly: true,\n // });\n fetchRelationEntities(autocompleteQs);\n }\n };\n\n return (\n\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\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className=\"flex align-items-center gap-3\">\n <AutoComplete\n readOnly={readOnly || readOnlyPermission}\n disabled={disabled || readOnlyPermission}\n multiple\n {...formik.getFieldProps(fieldLayoutInfo.attrs.name)}\n id={fieldLayoutInfo.attrs.name}\n field=\"label\"\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => fieldContext.onChange(e, 'onFieldChange')}\n className=\"solid-standard-autocomplete w-full\"\n />\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <div>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n </div>\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\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\n\n\nexport const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const readOnlyPermission = fieldContext.readOnly;\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n const { autoCompleteItems, fetchRelationEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });\n\n useEffect(() => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: []\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n let parsedFilter: any;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(parsedFilter);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {};\n }\n\n }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n\n } else {\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n fetchRelationEntities(autocompleteQs);\n }\n\n }, [fieldContext, formik.values]);\n\n const handleCheckboxChange = (e: any) => {\n if (formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.value === e.value)) {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, formik.values[fieldLayoutInfo.attrs.name].filter((s: any) => s.value !== e.value));\n } else {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, [...formik.values[fieldLayoutInfo.attrs.name], e]);\n }\n };\n\n const headerTemplate = (options: any) => {\n const className = `${options.className} justify-content-space-between`;\n\n return (\n <div className={className}>\n <div className=\"flex align-items-center gap-3\">\n {showFieldLabel != false &&\n <label className=\"form-field-label\">\n {capitalize(fieldLayoutInfo.attrs.name)}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n {/* <div className=\"many-to-many-add\" >\n <Button icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n onClick={() => autoCompleteSearch()}\n />\n </div> */}\n </div>\n <div>\n {options.togglerElement}\n </div>\n </div>\n );\n };\n return (\n <div>\n <Panel toggleable headerTemplate={headerTemplate}>\n <div className=\"formgrid grid\">\n {autoCompleteItems && autoCompleteItems.map((a: any, i: number) => {\n return (\n <div key={a.label} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n readOnly={readOnlyPermission}\n inputId={a.label}\n checked={formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.label === a.label)}\n onChange={() => handleCheckboxChange(a)}\n />\n <label htmlFor={a.label} className=\"form-field-label m-0\"> {a.label}</label>\n </div>\n )\n })}\n </div>\n </Panel>\n </div>\n )\n\n}\n"]}
1
+ {"version":3,"file":"SolidRelationManyToManyField.js","sourceRoot":"","sources":["../../../../../../src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"../ISolidField\";\nimport { getExtensionComponent } from \"../../../../../helpers/registry\";\nimport { AutoComplete, AutoCompleteCompleteEvent } from \"primereact/autocomplete\";\nimport { Button } from \"primereact/button\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport { useRelationEntityHandler } from \"./widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"./widgets/helpers/InlineRelationEntityDialog\";\nimport { capitalize } from \"lodash\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Panel } from \"primereact/panel\";\nimport { SolidFieldTooltip } from \"../../../../../components/common/SolidFieldTooltip\";\nimport qs from 'qs';\n// import Handlebars from \"handlebars/dist/handlebars\";\nimport * as Handlebars from \"handlebars\";\nimport { ERROR_MESSAGES } from \"../../../../../constants/error-messages\";\n\n\n\n\n\nexport class SolidRelationManyToManyField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n\n constructor(fieldContext: SolidFieldProps) {\n this.fieldContext = fieldContext;\n }\n\n initialValue(): any {\n\n // const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];\n // const fieldMetadata = this.fieldContext.fieldMetadata;\n // const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;\n // if (manyToManyFieldData) {\n // return manyToManyFieldData.map((e: any) => {\n // const manyToManyColVal = e[userKeyField] || '';\n // return {\n // label: manyToManyColVal,\n // value: e?.id || '',\n // original: e\n // };\n // });\n // }\n return [];\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n //if empty then clear the field\n if (value && value.length === 0) {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"clear\");\n }\n if (value && value.length > 0) {\n const shouldUseOriginal = value.every((item: any) => item.original && item.original.id);\n\n value.forEach((item: any, index: number) => {\n if (shouldUseOriginal) {\n formData.append(\n `${fieldLayoutInfo.attrs.name}Ids[${index}]`,\n item.value\n );\n } else {\n formData.append(\n `${fieldLayoutInfo.attrs.name}[${index}]`,\n JSON.stringify(item.original)\n );\n }\n });\n if (shouldUseOriginal) {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"set\")\n } else {\n formData.append(`${fieldLayoutInfo.attrs.name}Command`, \"update\")\n\n }\n\n }\n }\n\n validationSchema(): Yup.Schema {\n let schema = Yup.array();\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\n .min(1, ERROR_MESSAGES.SELECT_ATLEAST_ONE(fieldLabel))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n }\n\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultRelationManyToManyAutoCompleteFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultRelationOneToManyFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\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\nexport const DefaultRelationManyToManyAutoCompleteFormEditWidget = ({ 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 showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const disabled = fieldLayoutInfo.attrs?.disabled;\n const readOnly = fieldLayoutInfo.attrs?.readOnly;\n const whereClause = fieldLayoutInfo.attrs.whereClause;\n\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n const { autoCompleteItems, fetchRelationEntities, populateFormikWithRelatedEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n // const onChange = (e: any) => {\n // formik.setFieldValue(fieldContext.field.attrs.name, e.value);\n // };\n\n useEffect(() => {\n populateFormikWithRelatedEntities();\n }, [formik.values?.id]);\n\n\n const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: [\n {\n [fieldMetadata?.relationModel?.userKeyField?.name]: {\n [fieldLayoutInfo?.attrs?.autocompleteMatchMode || '$containsi']: event.query\n }\n }\n ]\n }\n };\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n let parsedFilter: any;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(parsedFilter);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {};\n }\n\n }\n\n let autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n // if (whereClause) {\n // autocompleteQs = `${autocompleteQs}&${whereClause}`;\n // }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n\n } else {\n // const autocompleteQs = qs.stringify(queryData, {\n // encodeValuesOnly: true,\n // });\n fetchRelationEntities(autocompleteQs);\n }\n };\n\n return (\n\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\">\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className=\"flex align-items-center gap-3\">\n <AutoComplete\n readOnly={readOnly || readOnlyPermission}\n disabled={disabled || readOnlyPermission}\n multiple\n {...formik.getFieldProps(fieldLayoutInfo.attrs.name)}\n id={fieldLayoutInfo.attrs.name}\n field=\"label\"\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n dropdown={!readOnlyPermission}\n suggestions={autoCompleteItems}\n completeMethod={autoCompleteSearch}\n onChange={(e) => fieldContext.onChange(e, 'onFieldChange')}\n className=\"solid-standard-autocomplete w-full\"\n />\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <div>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n </div>\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\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\n\n\nexport const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const readOnlyPermission = fieldContext.readOnly;\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n const { autoCompleteItems, fetchRelationEntities, populateFormikWithRelatedEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });\n\n useEffect(() => {\n populateFormikWithRelatedEntities();\n }, [formik.values?.id]);\n\n\n useEffect(() => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const queryData: any = {\n offset: 0,\n limit: 1000,\n filters: {\n $and: []\n }\n };\n\n let fixedFilterToBeApplied = false;\n let fixedFilterParsed = false;\n\n if (fieldMetadata?.relationFieldFixedFilter || fieldLayoutInfo?.attrs?.whereClause) {\n const convertedFixedFilter = fieldLayoutInfo?.attrs?.whereClause ? fieldLayoutInfo?.attrs?.whereClause : fieldMetadata?.relationFieldFixedFilter;\n fixedFilterToBeApplied = true;\n const fixedFilterTemplate = Handlebars.compile(convertedFixedFilter);\n const renderedFilter = fixedFilterTemplate(formik.values);\n\n let parsedFilter: any;\n try {\n parsedFilter = JSON.parse(renderedFilter);\n const isValid = (obj: any): boolean => {\n if (!obj || typeof obj !== 'object') return false;\n\n const hasValidValue = (val: any): boolean => {\n if (val === null || val === undefined || val === '') return false;\n if (typeof val === 'object') {\n return Object.values(val).some(hasValidValue);\n }\n return true;\n };\n\n return hasValidValue(parsedFilter);\n };\n\n if (isValid(parsedFilter)) {\n queryData.filters.$and.push(parsedFilter);\n fixedFilterParsed = true;\n } else {\n console.warn(ERROR_MESSAGES.SKIPPING_EMPTY_FIXED_FILTER, parsedFilter);\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.INVALID_JSON_WHERECLAUSE, renderedFilter);\n parsedFilter = {};\n }\n\n }\n\n if (fixedFilterToBeApplied && !fixedFilterParsed) {\n console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);\n\n } else {\n const autocompleteQs = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n fetchRelationEntities(autocompleteQs);\n }\n\n }, [fieldContext, formik.values]);\n\n const handleCheckboxChange = (e: any) => {\n if (formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.value === e.value)) {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, formik.values[fieldLayoutInfo.attrs.name].filter((s: any) => s.value !== e.value));\n } else {\n formik.setFieldValue(fieldLayoutInfo.attrs.name, [...formik.values[fieldLayoutInfo.attrs.name], e]);\n }\n };\n\n const headerTemplate = (options: any) => {\n const className = `${options.className} justify-content-space-between`;\n\n return (\n <div className={className}>\n <div className=\"flex align-items-center gap-3\">\n {showFieldLabel != false &&\n <label className=\"form-field-label\">\n {capitalize(fieldLayoutInfo.attrs.name)}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n size=\"small\"\n onClick={() => setVisibleCreateDialog(true)}\n className=\"custom-add-button\"\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n {/* <div className=\"many-to-many-add\" >\n <Button icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Filter\"\n type=\"button\"\n onClick={() => autoCompleteSearch()}\n />\n </div> */}\n </div>\n <div>\n {options.togglerElement}\n </div>\n </div>\n );\n };\n return (\n <div>\n <Panel toggleable headerTemplate={headerTemplate}>\n <div className=\"formgrid grid\">\n {autoCompleteItems && autoCompleteItems.map((a: any, i: number) => {\n return (\n <div key={a.label} className={`field col-6 flex gap-2 ${i >= 2 ? 'mt-3' : ''}`}>\n <Checkbox\n readOnly={readOnlyPermission}\n inputId={a.label}\n checked={formik.values[fieldLayoutInfo.attrs.name].some((item: any) => item.label === a.label)}\n onChange={() => handleCheckboxChange(a)}\n />\n <label htmlFor={a.label} className=\"form-field-label m-0\"> {a.label}</label>\n </div>\n )\n })}\n </div>\n </Panel>\n </div>\n )\n\n}\n"]}
@@ -32,26 +32,26 @@ export class SolidRelationManyToManyField implements ISolidField {
32
32
 
33
33
  initialValue(): any {
34
34
 
35
- const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];
36
- const fieldMetadata = this.fieldContext.fieldMetadata;
37
- const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;
38
- if (manyToManyFieldData) {
39
- return manyToManyFieldData.map((e: any) => {
40
- const manyToManyColVal = e[userKeyField] || '';
41
- return {
42
- label: manyToManyColVal,
43
- value: e?.id || '',
44
- original: e
45
- };
46
- });
47
- }
35
+ // const manyToManyFieldData = this.fieldContext.data[this.fieldContext.field.attrs.name];
36
+ // const fieldMetadata = this.fieldContext.fieldMetadata;
37
+ // const userKeyField = fieldMetadata?.relationModel?.userKeyField?.name;
38
+ // if (manyToManyFieldData) {
39
+ // return manyToManyFieldData.map((e: any) => {
40
+ // const manyToManyColVal = e[userKeyField] || '';
41
+ // return {
42
+ // label: manyToManyColVal,
43
+ // value: e?.id || '',
44
+ // original: e
45
+ // };
46
+ // });
47
+ // }
48
48
  return [];
49
49
  }
50
50
 
51
51
  updateFormData(value: any, formData: FormData): any {
52
52
  const fieldLayoutInfo = this.fieldContext.field;
53
53
  //if empty then clear the field
54
- if(value && value.length === 0) {
54
+ if (value && value.length === 0) {
55
55
  formData.append(`${fieldLayoutInfo.attrs.name}Command`, "clear");
56
56
  }
57
57
  if (value && value.length > 0) {
@@ -161,13 +161,18 @@ export const DefaultRelationManyToManyAutoCompleteFormEditWidget = ({ formik, fi
161
161
  const whereClause = fieldLayoutInfo.attrs.whereClause;
162
162
 
163
163
  const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);
164
- const { autoCompleteItems, fetchRelationEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });
164
+ const { autoCompleteItems, fetchRelationEntities, populateFormikWithRelatedEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });
165
165
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
166
166
 
167
167
  // const onChange = (e: any) => {
168
168
  // formik.setFieldValue(fieldContext.field.attrs.name, e.value);
169
169
  // };
170
170
 
171
+ useEffect(() => {
172
+ populateFormikWithRelatedEntities();
173
+ }, [formik.values?.id]);
174
+
175
+
171
176
  const autoCompleteSearch = async (event: AutoCompleteCompleteEvent) => {
172
177
  const queryData: any = {
173
178
  offset: 0,
@@ -307,7 +312,12 @@ export const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldC
307
312
 
308
313
  const readOnlyPermission = fieldContext.readOnly;
309
314
  const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);
310
- const { autoCompleteItems, fetchRelationEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });
315
+ const { autoCompleteItems, fetchRelationEntities, populateFormikWithRelatedEntities, addNewRelation } = useRelationEntityHandler({ fieldContext, formik });
316
+
317
+ useEffect(() => {
318
+ populateFormikWithRelatedEntities();
319
+ }, [formik.values?.id]);
320
+
311
321
 
312
322
  useEffect(() => {
313
323
  const fieldMetadata = fieldContext.fieldMetadata;
@@ -363,7 +373,7 @@ export const DefaultRelationManyToManyCheckBoxFormEditWidget = ({ formik, fieldC
363
373
  console.error(ERROR_MESSAGES.FIXED_FILTER_NOT_APPLIED);
364
374
 
365
375
  } else {
366
- const autocompleteQs = qs.stringify(queryData, {
376
+ const autocompleteQs = qs.stringify(queryData, {
367
377
  encodeValuesOnly: true,
368
378
  });
369
379
  fetchRelationEntities(autocompleteQs);
@@ -1,6 +1,7 @@
1
1
  export declare const useRelationEntityHandler: ({ fieldContext, formik, autoCompleteLimit }: any) => {
2
2
  autoCompleteItems: never[];
3
3
  fetchRelationEntities: (autocompleteQs?: string, limit?: any) => Promise<void>;
4
+ populateFormikWithRelatedEntities: () => Promise<void>;
4
5
  addNewRelation: (values: any) => void;
5
6
  };
6
7
  //# sourceMappingURL=useRelationEntityHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useRelationEntityHandler.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,gDAAwD,GAAG;;;6BAoC9D,GAAG;CAuBpC,CAAC"}
1
+ {"version":3,"file":"useRelationEntityHandler.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,wBAAwB,gDAAwD,GAAG;;;;6BAsF9D,GAAG;CAwBpC,CAAC"}