@solidxai/core-ui 0.1.9-beta.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/adapters/auth/handleLogout.d.ts +1 -1
- package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
- package/dist/adapters/auth/handleLogout.js +20 -32
- package/dist/adapters/auth/handleLogout.js.map +1 -1
- package/dist/adapters/auth/handleLogout.ts +7 -14
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +23 -19
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +62 -52
- package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
- package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts +2 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.d.ts.map +1 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js +112 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.js.map +1 -0
- package/dist/components/auth/MicrosoftActiveDirectoryAuthChecking.tsx +78 -0
- package/dist/components/auth/SolidChangeForcePassword.js +2 -2
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +13 -13
- package/dist/components/auth/SolidForgotPassword.js +1 -1
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +3 -3
- package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +2 -2
- package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +2 -2
- package/dist/components/auth/SolidLogin.js +4 -4
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +13 -13
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/auth/SolidRegister.js +6 -6
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +15 -15
- package/dist/components/auth/SolidResetPassword.js +2 -2
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +8 -8
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/common/BackButton.js +1 -1
- package/dist/components/common/BackButton.js.map +1 -1
- package/dist/components/common/BackButton.tsx +1 -1
- package/dist/components/common/CancelButton.js +2 -2
- package/dist/components/common/CancelButton.js.map +1 -1
- package/dist/components/common/CancelButton.tsx +3 -3
- package/dist/components/common/GeneralSettings.js +18 -18
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +137 -137
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +4 -1
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.module.css +95 -2
- package/dist/components/common/SettingsComponent.tsx +4 -1
- package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
- package/dist/components/common/SocialMediaLogin.js +1 -1
- package/dist/components/common/SocialMediaLogin.js.map +1 -1
- package/dist/components/common/SocialMediaLogin.tsx +4 -0
- package/dist/components/common/SolidExport.d.ts +1 -1
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +11 -4
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +12 -2
- package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
- package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
- package/dist/components/common/SolidFaviconProvider.js +102 -0
- package/dist/components/common/SolidFaviconProvider.js.map +1 -0
- package/dist/components/common/SolidFaviconProvider.tsx +55 -0
- package/dist/components/common/SolidFormHeader.js +1 -1
- package/dist/components/common/SolidFormHeader.js.map +1 -1
- package/dist/components/common/SolidFormHeader.tsx +1 -1
- package/dist/components/common/SolidModuleHome.js +2 -2
- package/dist/components/common/SolidModuleHome.js.map +1 -1
- package/dist/components/common/SolidModuleHome.tsx +7 -7
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +3 -3
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +6 -6
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +4 -4
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +4 -4
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +1 -1
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
- package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +1 -1
- package/dist/components/core/card/SolidCardView.js +1 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +6 -6
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +5 -1
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +29 -16
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +28 -14
- package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.js +2 -2
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +10 -6
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +1 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +151 -12
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +256 -15
- package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.js +3 -2
- package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
- package/dist/components/core/chatter/SolidMessageComposer.tsx +11 -9
- package/dist/components/core/chatter/chatter.module.css +1 -1
- package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
- package/dist/components/core/common/FilterComponent.js +5 -3
- package/dist/components/core/common/FilterComponent.js.map +1 -1
- package/dist/components/core/common/FilterComponent.tsx +6 -2
- package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
- package/dist/components/core/common/GroupingComponent.js +2 -2
- package/dist/components/core/common/GroupingComponent.js.map +1 -1
- package/dist/components/core/common/GroupingComponent.tsx +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
- package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +16 -1
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +18 -1
- package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +61 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +3 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +4 -2
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +19 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +16 -3
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +168 -26
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +174 -10
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +180 -90
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +167 -49
- package/dist/components/core/common/SolidLayoutViews.js +2 -2
- package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
- package/dist/components/core/common/SolidLayoutViews.tsx +4 -4
- package/dist/components/core/common/SolidListViewOptions.js +1 -1
- package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
- package/dist/components/core/common/SolidListViewOptions.tsx +1 -1
- package/dist/components/core/common/SolidPasswordHelperText.js +2 -2
- package/dist/components/core/common/SolidPasswordHelperText.js.map +1 -1
- package/dist/components/core/common/SolidPasswordHelperText.tsx +4 -4
- package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
- package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
- package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
- package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
- package/dist/components/core/common/SolidSearchBox.js +1 -1
- package/dist/components/core/common/SolidSearchBox.js.map +1 -1
- package/dist/components/core/common/SolidSearchBox.tsx +1 -1
- package/dist/components/core/common/SolidXAiIframe.js +1 -1
- package/dist/components/core/common/SolidXAiIframe.js.map +1 -1
- package/dist/components/core/common/SolidXAiIframe.tsx +1 -1
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts +4 -0
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts.map +1 -0
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.js +79 -0
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.js.map +1 -0
- package/dist/components/core/dashboard/mappers/echartsOptionMapper.ts +81 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.js +17 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.tsx +6 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.js +41 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.tsx +56 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js +14 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.tsx +19 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.js +17 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.tsx +6 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.js +17 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.tsx +6 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js +12 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx +39 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.js +7 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.tsx +9 -0
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts +3 -0
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts.map +1 -0
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js +203 -0
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js.map +1 -0
- package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.tsx +251 -0
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/listOfValues/form/SolidLovTypeChangeFormEditWidget.tsx +2 -2
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
- package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +2 -2
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +5 -5
- package/dist/components/core/field/FieldListViewData.js +2 -2
- package/dist/components/core/field/FieldListViewData.js.map +1 -1
- package/dist/components/core/field/FieldListViewData.tsx +5 -5
- package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.js +2 -2
- package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidBooleanField.tsx +5 -13
- package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidDateField.js +2 -2
- package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDateField.tsx +4 -3
- package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.js +2 -2
- package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidDatetimeField.tsx +5 -4
- package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.js +2 -2
- package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidExternalIdField.tsx +4 -3
- package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidIdField.js +2 -2
- package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIdField.tsx +3 -2
- package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidIntField.js +2 -2
- package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidIntField.tsx +4 -3
- package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
- package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +4 -3
- package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
- package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +4 -3
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +2 -2
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +5 -4
- package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js +2 -2
- package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +5 -4
- package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
- package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidShortTextField.tsx +4 -3
- package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.js +2 -2
- package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidTimeField.tsx +5 -4
- package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.js +2 -2
- package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
- package/dist/components/core/filter/fields/SolidUuidField.tsx +5 -4
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +5 -4
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +5 -4
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +5 -4
- package/dist/components/core/form/SolidFormActionHeader.js +8 -8
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +13 -13
- package/dist/components/core/form/SolidFormFieldRender.js +1 -1
- package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
- package/dist/components/core/form/SolidFormFieldRender.tsx +1 -1
- package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormFooter.js +14 -7
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +16 -7
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +207 -68
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +197 -45
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +16 -3
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +25 -16
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +19 -5
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
- package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +25 -9
- package/dist/components/core/form/SolidFormViewShimmerLoading.js +1 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
- package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +46 -46
- package/dist/components/core/form/field-quality-check-fixes.md +201 -0
- package/dist/components/core/form/fields/SolidBooleanField.js +3 -3
- package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
- package/dist/components/core/form/fields/SolidBooleanField.tsx +3 -3
- package/dist/components/core/form/fields/SolidComputedField.js +1 -1
- package/dist/components/core/form/fields/SolidComputedField.js.map +1 -1
- package/dist/components/core/form/fields/SolidComputedField.tsx +1 -1
- package/dist/components/core/form/fields/SolidDateField.js +2 -2
- package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateField.tsx +2 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js +2 -2
- package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDateTimeField.tsx +2 -2
- package/dist/components/core/form/fields/SolidDecimalField.js +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.tsx +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js +1 -1
- package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
- package/dist/components/core/form/fields/SolidEmailField.tsx +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +3 -3
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -3
- package/dist/components/core/form/fields/SolidJsonField.js +3 -3
- package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
- package/dist/components/core/form/fields/SolidJsonField.tsx +3 -3
- package/dist/components/core/form/fields/SolidLongTextField.d.ts +0 -1
- package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.js +6 -58
- package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidLongTextField.tsx +12 -107
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +11 -11
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +28 -28
- package/dist/components/core/form/fields/SolidMediaSingleField.js +5 -5
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +9 -9
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +12 -6
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -6
- package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +2 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js +2 -2
- package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +2 -2
- package/dist/components/core/form/fields/SolidSelectionStaticField.js +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
- package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidShortTextField.tsx +1 -1
- package/dist/components/core/form/fields/SolidTimeField.js +2 -2
- package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
- package/dist/components/core/form/fields/SolidTimeField.tsx +2 -2
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +8 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +123 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +140 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +20 -18
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +47 -37
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +18 -18
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +17 -13
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +19 -17
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +28 -27
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +5 -5
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +17 -17
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +2 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +1 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +15 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +27 -4
- package/dist/components/core/kanban/KanbanColumn.d.ts +2 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +4 -4
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +44 -39
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +22 -10
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +5 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +2 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +10 -21
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +10 -18
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +6 -3
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +24 -30
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/ListViewRowActionPopup.js +1 -1
- package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
- package/dist/components/core/list/ListViewRowActionPopup.tsx +1 -2
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +3 -3
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +3 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +9 -10
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
- package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +123 -100
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +70 -41
- package/dist/components/core/list/SolidListViewColumn.d.ts +3 -1
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +27 -2
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +16 -3
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +11 -10
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +9 -3
- package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.js +13 -3
- package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderButton.tsx +16 -7
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +19 -7
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +19 -6
- package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
- package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
- package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +7 -6
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +10 -9
- package/dist/components/core/list/SolidListingHeader.js +1 -1
- package/dist/components/core/list/SolidListingHeader.js.map +1 -1
- package/dist/components/core/list/SolidListingHeader.tsx +4 -4
- package/dist/components/core/list/SolidTableRowCell.js +1 -1
- package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
- package/dist/components/core/list/SolidTableRowCell.tsx +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
- package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +8 -7
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +11 -10
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +6 -5
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +6 -5
- package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
- package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -4
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -4
- package/dist/components/core/list/field-quality-check-fixes.md +178 -0
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js +1 -1
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.js.map +1 -1
- package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
- package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +1 -2
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js +39 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.tsx +50 -0
- package/dist/components/core/locales/SolidLocale.js +3 -3
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +7 -7
- package/dist/components/core/locales/solid-locale.css +5 -4
- package/dist/components/core/model/CreateModel.css +48 -0
- package/dist/components/core/model/CreateModel.d.ts +1 -0
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +80 -128
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +102 -226
- package/dist/components/core/model/FieldMetaData.d.ts +1 -1
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +7 -23
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +17 -50
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +198 -224
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +75 -302
- package/dist/components/core/model/ModelListViewData.js +4 -4
- package/dist/components/core/model/ModelListViewData.js.map +1 -1
- package/dist/components/core/model/ModelListViewData.tsx +7 -7
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +13 -25
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +18 -79
- package/dist/components/core/module/CreateModule.css +44 -0
- package/dist/components/core/module/CreateModule.d.ts +1 -0
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +40 -57
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +246 -264
- package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
- package/dist/components/core/module/ModuleListViewData.js +48 -8
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +65 -7
- package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
- package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
- package/dist/components/core/module/ModulePackageDialog.css +540 -0
- package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
- package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
- package/dist/components/core/module/ModulePackageDialog.js +625 -0
- package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
- package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
- package/dist/components/core/solid-ai/SolidAiChat.module.css +2 -2
- package/dist/components/core/tree/SolidTreeTable.js +1 -1
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +1 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +4 -4
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +16 -12
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +51 -27
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +47 -68
- package/dist/components/core/users/CreateUserRole.js +2 -2
- package/dist/components/core/users/CreateUserRole.js.map +1 -1
- package/dist/components/core/users/CreateUserRole.tsx +9 -9
- package/dist/components/core/users/UserListView.js +4 -4
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +6 -6
- package/dist/components/layout/AdminHeaderActions.d.ts +8 -0
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -0
- package/dist/components/layout/AdminHeaderActions.js +77 -0
- package/dist/components/layout/AdminHeaderActions.js.map +1 -0
- package/dist/components/layout/AdminHeaderActions.tsx +155 -0
- package/dist/components/layout/AdminSidebar.js +1 -1
- package/dist/components/layout/AdminSidebar.js.map +1 -1
- package/dist/components/layout/AdminSidebar.tsx +1 -1
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +14 -5
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +35 -28
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +2 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +2 -0
- package/dist/components/layout/CustomPagination.js +0 -1
- package/dist/components/layout/CustomPagination.js.map +1 -1
- package/dist/components/layout/CustomPagination.tsx +0 -1
- package/dist/components/layout/FilterMenu.js +1 -1
- package/dist/components/layout/FilterMenu.js.map +1 -1
- package/dist/components/layout/FilterMenu.tsx +4 -4
- package/dist/components/layout/Footer.js +1 -1
- package/dist/components/layout/Footer.js.map +1 -1
- package/dist/components/layout/Footer.tsx +1 -1
- package/dist/components/layout/GlobalSearch.js +1 -1
- package/dist/components/layout/GlobalSearch.js.map +1 -1
- package/dist/components/layout/GlobalSearch.tsx +1 -1
- package/dist/components/layout/ListingHeader.js +3 -3
- package/dist/components/layout/ListingHeader.js.map +1 -1
- package/dist/components/layout/ListingHeader.tsx +4 -4
- package/dist/components/layout/Loader.js +1 -1
- package/dist/components/layout/Loader.js.map +1 -1
- package/dist/components/layout/Loader.tsx +1 -1
- package/dist/components/layout/UserSidebar.js +1 -1
- package/dist/components/layout/UserSidebar.js.map +1 -1
- package/dist/components/layout/UserSidebar.tsx +1 -1
- package/dist/components/layout/navbar-one.js +2 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +8 -8
- package/dist/components/layout/navbar-two-menu.js +2 -2
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +7 -7
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +57 -33
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.tsx +11 -59
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +60 -6
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +81 -22
- package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidButton.js +10 -2
- package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
- package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -2
- package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.tsx +4 -0
- package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.js +38 -4
- package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.tsx +47 -3
- package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
- package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
- package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
- package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
- package/dist/components/shad-cn-ui/SolidPopover.d.ts +1 -0
- package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidPopover.js +124 -5
- package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidPopover.tsx +173 -10
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +51 -1
- package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +95 -0
- package/dist/constants/error-messages.d.ts +13 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +17 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +15 -0
- package/dist/helpers/buttonEnvironment.d.ts +5 -0
- package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
- package/dist/helpers/buttonEnvironment.js +30 -0
- package/dist/helpers/buttonEnvironment.js.map +1 -0
- package/dist/helpers/buttonEnvironment.ts +35 -0
- package/dist/helpers/buttonPresentation.d.ts +24 -0
- package/dist/helpers/buttonPresentation.d.ts.map +1 -0
- package/dist/helpers/buttonPresentation.js +28 -0
- package/dist/helpers/buttonPresentation.js.map +1 -0
- package/dist/helpers/buttonPresentation.ts +53 -0
- package/dist/helpers/fileTypeIcon.d.ts +12 -0
- package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
- package/dist/helpers/fileTypeIcon.js +37 -0
- package/dist/helpers/fileTypeIcon.js.map +1 -0
- package/dist/helpers/fileTypeIcon.tsx +65 -0
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +28 -10
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +31 -13
- package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
- package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
- package/dist/helpers/waitForBackendAvailability.js +86 -0
- package/dist/helpers/waitForBackendAvailability.js.map +1 -0
- package/dist/helpers/waitForBackendAvailability.ts +37 -0
- package/dist/index.d.ts +8 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -8
- package/dist/index.js.map +1 -1
- package/dist/index.ts +32 -13
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/api/dashboardRuntimeApi.d.ts +34 -0
- package/dist/redux/api/dashboardRuntimeApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardRuntimeApi.js +79 -0
- package/dist/redux/api/dashboardRuntimeApi.js.map +1 -0
- package/dist/redux/api/dashboardRuntimeApi.ts +75 -0
- package/dist/redux/api/moduleApi.d.ts +26 -1
- package/dist/redux/api/moduleApi.d.ts.map +1 -1
- package/dist/redux/api/moduleApi.js +237 -1
- package/dist/redux/api/moduleApi.js.map +1 -1
- package/dist/redux/api/moduleApi.ts +181 -1
- package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
- package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.js +11 -1
- package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
- package/dist/redux/api/solidChatterMessageApi.ts +10 -1
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +57 -9
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -6
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -6
- package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
- package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
- package/dist/redux/store/solidEntityApiPool.js +4 -0
- package/dist/redux/store/solidEntityApiPool.js.map +1 -1
- package/dist/redux/store/solidEntityApiPool.ts +4 -0
- package/dist/resources/globals.css +195 -20
- package/dist/resources/shadcn-base.css +392 -175
- package/dist/resources/solid-custom.css +6565 -0
- package/dist/resources/solid-primereact.css +14 -12
- package/dist/resources/solid-responsive.css +259 -51
- package/dist/resources/solid-tailwind-generated.css +1 -0
- package/dist/resources/solid-tailwind.css +3 -0
- package/dist/routes/AppEventListener.d.ts.map +1 -1
- package/dist/routes/AppEventListener.js +58 -8
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +69 -8
- package/dist/routes/pages/admin/core/DashboardPage.d.ts +1 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.js +860 -5
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.module.css +219 -0
- package/dist/routes/pages/admin/core/DashboardPage.tsx +1025 -7
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts +2 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.d.ts.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js +6 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.js.map +1 -0
- package/dist/routes/pages/auth/InitiateMicrosoftActiveDirectoryOauthPage.tsx +5 -0
- package/dist/routes/pages/auth/SsoPage.js +1 -1
- package/dist/routes/pages/auth/SsoPage.js.map +1 -1
- package/dist/routes/pages/auth/SsoPage.tsx +1 -1
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -2
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +2 -2
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -1
- package/dist/styles.d.ts +2 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +2 -1
- package/dist/styles.js.map +1 -1
- package/dist/styles.ts +2 -1
- package/dist/types/dashboard.d.ts +16 -0
- package/dist/types/dashboard.d.ts.map +1 -0
- package/dist/types/dashboard.js +2 -0
- package/dist/types/dashboard.js.map +1 -0
- package/dist/types/dashboard.ts +23 -0
- package/dist/types/extension-registry.d.ts +1 -0
- package/dist/types/extension-registry.d.ts.map +1 -1
- package/dist/types/extension-registry.js +1 -0
- package/dist/types/extension-registry.js.map +1 -1
- package/dist/types/extension-registry.ts +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/jsoneditor.d.ts +4 -0
- package/dist/types/solid-core.d.ts +1 -0
- package/package.json +9 -3
- package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.js +0 -22
- package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
- package/dist/components/solid-ui/SolidButton.d.ts +0 -14
- package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidButton.js +0 -36
- package/dist/components/solid-ui/SolidButton.js.map +0 -1
- package/dist/components/solid-ui/SolidButton.tsx +0 -54
- package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
- package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidTabs.js +0 -22
- package/dist/components/solid-ui/SolidTabs.js.map +0 -1
- package/dist/components/solid-ui/SolidTabs.tsx +0 -73
- package/dist/components/solid-ui/index.d.ts +0 -3
- package/dist/components/solid-ui/index.d.ts.map +0 -1
- package/dist/components/solid-ui/index.js +0 -3
- package/dist/components/solid-ui/index.js.map +0 -1
- package/dist/components/solid-ui/index.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldMetaDataForm.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaDataForm.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { getSingularAndPlural } from \"../../../helpers/helpers\";\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useLazyGetMediaStorageProvidersQuery } from \"../../../redux/api/mediaStorageProviderApi\";\nimport { useLazyGetModelsQuery, useUpdateUserKeyMutation } from \"../../../redux/api/modelApi\";\nimport { useLazyGetmodulesQuery } from \"../../../redux/api/moduleApi\";\nimport { useFormik } from \"formik\";\nimport { capitalize } from \"lodash\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport qs from \"qs\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport FieldSelector from \"./FieldSelector\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidCheckbox,\n SolidDatePicker,\n SolidDialog,\n SolidDialogBody,\n SolidInput,\n SolidTextarea,\n SolidNumberInput,\n SolidSelect,\n SolidSegmentedControl,\n SolidRadioGroup,\n SolidTabGroup,\n SolidMessage,\n SolidCodeEditor,\n} from \"../../shad-cn-ui\";\nimport styles from \"../form/fields/solidFields.module.css\";\n\n\n\nenum SolidFieldType {\n // numeric types\n int = 'int',\n bigint = 'bigint',\n float = 'float',\n // double = 'double',\n decimal = 'decimal',\n\n // text types\n shortText = 'shortText',\n longtext = 'longText',\n richText = 'richText',\n json = 'json',\n\n // boolean types\n boolean = 'boolean',\n\n // date\n date = 'date',\n datetime = 'datetime',\n time = 'time',\n\n // relation\n relation = 'relation',\n\n // media\n mediaSingle = 'mediaSingle',\n mediaMultiple = 'mediaMultiple',\n\n email = 'email',\n password = 'password',\n\n // selection\n selectionStatic = 'selectionStatic',\n selectionDynamic = 'selectionDynamic',\n\n computed = 'computed',\n\n uuid = 'uuid'\n}\n\ntype ClassNamesArg = string | Record<string, boolean> | undefined | null | false;\n\nfunction classNames(...args: ClassNamesArg[]) {\n const classes: string[] = [];\n args.forEach((arg) => {\n if (!arg) {\n return;\n }\n if (typeof arg === \"string\") {\n if (arg.trim()) {\n classes.push(arg);\n }\n return;\n }\n Object.entries(arg).forEach(([key, value]) => {\n if (value) {\n classes.push(key);\n }\n });\n });\n return classes.join(\" \");\n}\n\nfunction createSimpleAutocompleteValue(value: any | undefined | null) {\n if (!value) return null;\n if (typeof value === \"object\") return value;\n return { label: value, value };\n}\n\nfunction createRelationAutocompleteValue(value: any | undefined | null, labelKey: string, valueKey: string = labelKey) {\n if (!value) return null;\n if (typeof value === \"object\") return value;\n return { [labelKey]: value, [valueKey]: value };\n}\n\ntype LocalTabPanelProps = {\n header: string;\n className?: string;\n children: React.ReactNode;\n};\n\ntype LocalTabViewProps = {\n children: React.ReactNode;\n panelContainerClassName?: string;\n};\n\nfunction TabPanel(_props: LocalTabPanelProps) {\n return null;\n}\n\nfunction TabView({ children, panelContainerClassName }: LocalTabViewProps) {\n const panels = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LocalTabPanelProps> =>\n React.isValidElement(child) && child.type === TabPanel\n );\n const firstValue = panels[0]?.props.header ?? \"\";\n const [activeValue, setActiveValue] = React.useState(firstValue);\n\n React.useEffect(() => {\n if (!panels.some((panel) => panel.props.header === activeValue)) {\n setActiveValue(panels[0]?.props.header ?? \"\");\n }\n }, [panels, activeValue]);\n\n if (panels.length === 0) {\n return null;\n }\n\n const tabs = panels.map((panel) => ({\n value: panel.props.header,\n label: panel.props.header,\n hasError: panel.props.className?.includes(\"tab-error-heading\"),\n content: (\n <div className={panel.props.className}>\n {panel.props.children}\n </div>\n ),\n }));\n\n return (\n <SolidTabGroup\n tabs={tabs}\n value={activeValue}\n onValueChange={setActiveValue}\n panelClassName={panelContainerClassName}\n />\n );\n}\n\nconst SelectionStaticValues = ({ enumValue, onUpdate, onDelete, onAdd }: any) => {\n const [value, display] = enumValue.split(\":\");\n\n const handleValueChange = (newValue: string) => {\n onUpdate(`${newValue}:${display || \"\"}`);\n };\n\n const handleDisplayChange = (newDisplay: string) => {\n onUpdate(`${value || \"\"}:${newDisplay}`);\n };\n\n return (\n <div className=\"flex align-items-center gap-2 mt-2\">\n\n {/* Input field for Value */}\n <SolidInput\n value={value || \"\"}\n onChange={(e) => handleValueChange(e.target.value)}\n placeholder=\"Value\"\n className=\"w-full\"\n />\n\n {/* Input field for Display */}\n <SolidInput\n value={display || \"\"}\n onChange={(e) => handleDisplayChange(e.target.value)}\n placeholder=\"Display\"\n className=\"w-full\"\n />\n\n\n\n {/* Plus Button to add a new row */}\n <SolidButton\n icon=\"si si-plus\"\n size=\"small\"\n onClick={onAdd}\n type=\"button\"\n />\n\n {/* Trash Button to delete the row */}\n <SolidButton\n icon=\"si si-trash\"\n size=\"small\"\n onClick={onDelete}\n outlined\n severity=\"danger\"\n type=\"button\"\n />\n </div>\n );\n\n}\n\ninterface SelectComputedFieldTriggerValuesProps {\n index: number;\n row: {\n moduleName: string;\n modelName: string;\n operations: string[];\n };\n onChange: (index: number, updatedRow: any) => void;\n onDelete: (index: number) => void;\n isLastRow: boolean;\n disableDelete: boolean;\n formik: any;\n isFormFieldValid: (formik: any, field: string) => boolean;\n searchModuleName: (event: any) => Promise<any[]>;\n searchModelName: (event: any) => Promise<any[]>;\n modelMetaData?: any,\n errors?: any,\n touched?: any,\n}\n\nconst triggerOperationOptions = [\n { label: \"beforeInsert\", value: \"before-insert\" },\n { label: \"afterInsert\", value: \"after-insert\" },\n { label: \"beforeUpdate\", value: \"before-update\" },\n { label: \"afterUpdate\", value: \"after-update\" },\n { label: \"beforeRemove\", value: \"before-delete\" },\n { label: \"afterRemove\", value: \"after-delete\" },\n];\n\nconst formatDisplayName = (value: string): string => {\n return value\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n};\n\n\nconst SelectComputedFieldTriggerValues: React.FC<SelectComputedFieldTriggerValuesProps> = ({\n index,\n row,\n onChange,\n onDelete,\n disableDelete,\n formik,\n isFormFieldValid,\n searchModuleName,\n searchModelName,\n modelMetaData,\n errors,\n touched,\n}: any) => {\n const [filteredOperations, setFilteredOperations] = useState<{ label: string; value: string }[]>([]);\n\n useEffect(() => {\n if (!row.moduleName && modelMetaData?.module?.name) {\n formik.setFieldValue(`computedFieldTriggerConfig[${index}].moduleName`, modelMetaData?.module?.name);\n }\n if (!row.modelName && modelMetaData?.singularName) {\n formik.setFieldValue(`computedFieldTriggerConfig[${index}].modelName`, modelMetaData?.singularName);\n }\n }, [modelMetaData?.module?.name, modelMetaData?.singularName]);\n\n const searchOperations = (event: any) => {\n const query = event.query.toLowerCase();\n setFilteredOperations(\n triggerOperationOptions.filter((item) =>\n item.label.toLowerCase().includes(query)\n )\n );\n };\n\n const triggerModuleField = useSolidAutocompleteField({\n formik,\n fieldName: `computedFieldTriggerConfig[${index}].moduleName`,\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"name\",\n searchData: searchModuleName,\n existingData: row.moduleName\n ? {\n name: row.moduleName,\n displayName: row.displayName || formatDisplayName(row.moduleName),\n }\n : modelMetaData?.module?.name\n ? {\n name: modelMetaData.module.name,\n displayName: modelMetaData.module.displayName || formatDisplayName(modelMetaData.module.name),\n }\n : null,\n relationField: true,\n });\n\n const triggerModelField = useSolidAutocompleteField({\n formik,\n fieldName: `computedFieldTriggerConfig[${index}].modelName`,\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"singularName\",\n searchData: searchModelName,\n existingData: row.modelName\n ? {\n singularName: row.modelName,\n displayName: row.displayName || formatDisplayName(row.modelName),\n }\n : modelMetaData?.singularName\n ? {\n singularName: modelMetaData?.singularName,\n displayName: modelMetaData?.displayName || formatDisplayName(modelMetaData.displayName),\n }\n : null,\n relationField: true,\n });\n\n return (\n <div className=\"flex align-items-center gap-3 mt-2 flex-wrap md:flex-nowrap\">\n\n <div className=\"\">\n <label\n htmlFor=\"moduleName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Module\n </label>\n <div className={classNames(\"mt-2 solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: Boolean(errors?.moduleName),\n })}>\n <SolidAutocomplete\n value={triggerModuleField.selectedItem}\n suggestions={triggerModuleField.filteredItems}\n completeMethod={triggerModuleField.searchItems}\n onChange={triggerModuleField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n {errors?.moduleName && (\n <p className={styles.fieldError}>{errors.moduleName}</p>\n )}\n </div>\n\n <div className=\"\">\n <label\n htmlFor=\"modelName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Model\n </label>\n <div className={classNames(\"mt-2 solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: Boolean(errors?.modelName),\n })}>\n <SolidAutocomplete\n value={triggerModelField.selectedItem}\n suggestions={triggerModelField.filteredItems}\n completeMethod={triggerModelField.searchItems}\n onChange={triggerModelField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n {errors?.modelName && (\n <p className={styles.fieldError}>{errors.modelName}</p>\n )}\n </div>\n\n\n {/* operations */}\n <div>\n <label\n htmlFor=\"operations\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Operations\n </label>\n <div className=\"mt-2\">\n <SolidAutocomplete\n multiple\n dropdown\n value={triggerOperationOptions.filter(opt => (row.operations || []).includes(opt.value))}\n suggestions={filteredOperations}\n completeMethod={searchOperations}\n field=\"label\"\n onChange={(e) =>\n onChange(index, {\n ...row,\n operations: (e.value || []).map((val: any) => val.value),\n })\n }\n placeholder=\"Select operations\"\n className={classNames(\"solid-standard-autocomplete max-w-16rem\", {\n [styles.fieldInvalidControl]: Boolean(errors?.operations),\n })}\n />\n </div>\n {errors?.operations && (\n <p className={styles.fieldError}>{errors.operations}</p>\n )}\n </div>\n\n {/* Trash Button to delete the row */}\n <SolidButton\n icon=\"si si-trash\"\n size=\"small\"\n onClick={() => onDelete(index)}\n disabled={disableDelete}\n outlined\n severity=\"danger\"\n type=\"button\"\n />\n </div>\n );\n\n}\n\nconst fieldBasedPayloadFormating = (values: any, currentFields: string[], fieldMetaData: any) => {\n // const booleanFields: string | any[] = [\n // \"isSystem\",\n // \"defaultValue\",\n // \"required\",\n // \"unique\",\n // \"encrypt\",\n // \"index\",\n // \"private\",\n // \"relationCreateInverse\"];\n const transformedPayload = currentFields.reduce((acc: any, key: any) => {\n acc[key] = values[key]; // Set key and its value as the same string\n // if (booleanFields.includes(acc[key])) {\n // acc[key] = values[key] == \"false\" ? \"\" : true\n // }\n return acc;\n }, {});\n transformedPayload.displayName = transformedPayload.displayName.trim()\n\n transformedPayload.identifier = fieldMetaData ? fieldMetaData.identifier : Date.now();\n if (fieldMetaData?.id) {\n transformedPayload.id = fieldMetaData.id\n }\n if (currentFields.includes(\"mediaStorageProviderId\")) {\n transformedPayload.mediaStorageProvider = values.mediaStorageProvider\n }\n if (currentFields.includes(\"selectionDynamicProviderCtxt\")) {\n const prettified = JSON.stringify(JSON.parse(values.selectionDynamicProviderCtxt), null, 2);\n\n transformedPayload.selectionDynamicProviderCtxt = prettified\n }\n\n if (currentFields.includes(\"computedFieldValueProviderCtxt\")) {\n const prettified = JSON.stringify(JSON.parse(values.computedFieldValueProviderCtxt), null, 2);\n transformedPayload.computedFieldValueProviderCtxt = prettified\n }\n\n if (currentFields.includes(\"computedFieldTriggerConfig\")) {\n // const prettified = JSON.stringify(values.computedFieldTriggerConfig, null, 2);\n transformedPayload.computedFieldTriggerConfig = values.computedFieldTriggerConfig\n }\n\n if (currentFields.includes(\"relationCreateInverse\")) {\n transformedPayload.relationCreateInverse = values.relationCreateInverse == false ? false : true\n }\n if (transformedPayload.relationType == \"many-to-one\") {\n transformedPayload.relationCascade = values.relationCascade;\n }\n\n if (transformedPayload.relationType == \"many-to-many\") {\n transformedPayload.isRelationManyToManyOwner = true;\n }\n return transformedPayload\n\n}\n\nfunction fetchCurrentFields(solidFieldType: any, fieldDefaultMetaData: any) {\n\n if (solidFieldType) {\n const allowedFields = fieldDefaultMetaData?.data?.fieldTypes.filter((e: any) => e.fieldType === solidFieldType);\n if (allowedFields.length > 0) {\n return allowedFields[0].fields\n }\n\n }\n return [\n \"name\",\n \"displayName\",\n \"type\",\n \"ormType\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"isUserKey\"\n ];\n\n}\n\nconst createValidationSchema = (currentFields: any, selectedType: any, allFields: any, fieldMetaData: any, encryptState: any) => {\n\n let reservedNames;\n\n if (fieldMetaData) {\n reservedNames = allFields.length > 0 ? allFields.filter((i: any) => i.id !== fieldMetaData.id).map((f: any) => f.name) : [];\n } else {\n\n reservedNames = allFields.length > 0 ? allFields.map((f: any) => f.name) : [];\n }\n\n\n\n const selectedTypeValue = selectedType?.value;\n\n const schema = {\n name: Yup.string()\n // .matches(/^[a-z]+(-[a-z]+)*$/,\"Invalid format. Use lowercase letters and hyphens only\")\n .notOneOf(reservedNames, ERROR_MESSAGES.FIELD_ALREADY_USE('Name', 'name'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),\n displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Display Name')),\n description: Yup.string().nullable(),\n type: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Type')),\n isSystem: Yup.boolean(),\n // Conditionally add validation rules based on `currentFields`\n ...(currentFields.includes(\"ormType\") && {\n ormType: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Orm Type')),\n }),\n ...(currentFields.includes(\"length\") && {\n length: Yup.number().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Length', 'interger')).nullable(),\n }),\n // ...(currentFields.includes(\"defaultValue\") && {\n // defaultValue: Yup.string().required(\"Default Value is required\"),\n // }),\n // Conditionally validate defaultValue based on SolidFieldType\n ...(currentFields.includes(\"defaultValue\") && {\n defaultValue: Yup.mixed().nullable().when(\"type\", (type: any) => {\n switch (selectedTypeValue) {\n case \"int\":\n case \"bigint\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'integer'))\n .integer(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'integer'));\n case \"float\":\n case \"decimal\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'integer'))\n case \"shortText\":\n case \"longText\":\n case \"richText\":\n case \"json\":\n return Yup.string().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'boolean'))\n case \"boolean\":\n return Yup.boolean().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'boolean'))\n case \"date\":\n case \"datetime\":\n case \"time\":\n return Yup.date().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'Date'))\n default:\n return Yup.mixed().nullable(); // Default fallback if no match\n }\n }),\n }),\n\n // Add more conditional fields as needed\n\n ...(currentFields.includes(\"regexPattern\") && {\n regexPattern: Yup.string(),\n regexPatternNotMatchingErrorMsg: Yup.string(),\n }),\n ...(currentFields.includes(\"required\") && {\n required: Yup.boolean(),\n }),\n ...(currentFields.includes(\"unique\") && {\n unique: Yup.boolean(),\n }),\n ...(currentFields.includes(\"encrypt\") && {\n encrypt: Yup.boolean(),\n }),\n ...(currentFields.includes(\"encryptionType\") && encryptState == true && {\n encryptionType: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Encryption Type Value')\n ),\n }),\n ...(currentFields.includes(\"decryptWhen\") && encryptState == true && {\n\n decryptWhen: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Decrypt When Value')),\n }),\n ...(currentFields.includes(\"index\") && {\n index: Yup.boolean(),\n }),\n // ...(currentFields.includes(\"min\") && {\n // min: Yup.number().required(\"Min is required\"),\n // }),\n ...(currentFields.includes(\"min\") && {\n min: Yup.mixed().nullable()\n .when(\"type\", (type: any) => {\n switch (selectedTypeValue) {\n case \"int\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Min', 'interger'))\n .integer(ERROR_MESSAGES.FIELD_MUST_BE_AN('Min', 'interger'));\n case \"decimal\":\n case \"shortText\":\n case \"longText\":\n case \"richText\":\n case \"json\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Min', 'interger'));\n default:\n return Yup.mixed().nullable().nullable(); // Default fallback if no match\n }\n }),\n }),\n // ...(currentFields.includes(\"max\") && {\n // max: Yup.number().required(\"Max is required\"),\n // }),\n ...(currentFields.includes(\"max\") && {\n max: Yup.mixed()\n .when(\"type\", (type: any) => {\n switch (selectedTypeValue) {\n case \"int\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'interger'))\n .integer(ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'interger'))\n .test(\n ERROR_MESSAGES.GREATER_THAN_MIN,\n ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'greater than Min'),\n function (value) {\n const { min } = this.parent; // Access sibling field 'min'\n // if (min != null && value == null) {\n // // Trigger error if Min is filled but Max is empty\n // return this.createError({\n // message: \"Max is required if Min is specified\",\n // });\n // }\n return value == null || value > min; // Validate only if Max exists\n }\n );\n\n\n case \"decimal\":\n case \"shortText\":\n case \"longText\":\n case \"richText\":\n case \"json\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'interger'))\n .test(\n ERROR_MESSAGES.GREATER_THAN_MIN,\n ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'greater than Min'),\n function (value) {\n const { min } = this.parent; // Access sibling field 'min'\n // if (min != null && value == null) {\n // // Trigger error if Min is filled but Max is empty\n // return this.createError({\n // message: \"Max is required if Min is specified\",\n // });\n // }\n return value == null || value > min; // Validate only if Max exists\n }\n );\n\n\n default:\n return Yup.mixed().nullable().nullable(); // Default fallback if no match\n }\n }),\n }),\n ...(currentFields.includes(\"private\") && {\n private: Yup.boolean(),\n }),\n ...(currentFields.includes(\"mediaTypes\") && {\n mediaTypes: Yup.array()\n .of(Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Media Type')))\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED('Media Types'))\n .required(ERROR_MESSAGES.FIELD_MUST_BE_AN('Media Types', 'array')),\n }),\n\n ...(currentFields.includes(\"mediaMaxSizeKb\") && {\n mediaMaxSizeKb: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Media Max Size')),\n }),\n ...(currentFields.includes(\"mediaStorageProviderId\") && {\n mediaStorageProviderId: Yup.number().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Media Storage Provider')\n ),\n }),\n ...(currentFields.includes(\"mediaStorageProviderId\") && {\n mediaStorageProvider: Yup.object().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Media Storage Provider')\n ),\n }),\n\n ...(currentFields.includes(\"mediaEmbedded\") && {\n mediaEmbedded: Yup.boolean(),\n }),\n ...(currentFields.includes(\"relationType\") && {\n relationType: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Relation Type ')),\n }),\n ...(currentFields.includes(\"relationCoModelSingularName\") && {\n relationCoModelSingularName: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Relation Model Singular Name')\n ),\n }),\n ...(currentFields.includes(\"relationCoModelFieldName\") && {\n relationCoModelFieldName: Yup.string()\n // .required(\n // \"Relation Model Field Name is required\"\n // ),\n }),\n ...(currentFields.includes(\"relationCreateInverse\") && {\n relationCreateInverse: Yup.boolean(),\n }),\n ...(currentFields.includes(\"relationCoModelFieldName\") && {\n relationCoModelFieldName: Yup.string().when(\"relationCreateInverse\", (relationCreateInverse: any, schema) => {\n if (relationCreateInverse.length > 0 && relationCreateInverse[0] == true) {\n return schema.required(ERROR_MESSAGES.FIELD_REUQIRED('Relation Co Model Field Name'))\n } else {\n return schema.notRequired();\n }\n }),\n }),\n\n // ...(currentFields.includes(\"relationCascade\") && {\n // relationCascade: Yup.string().required(\n // \"Relation Cascade Value is required\"\n // ),\n // }),\n\n // Conditionally validate relationCascade based on relationType\n ...(currentFields.includes(\"relation\") && {\n relationCascade: Yup.string().when(\"relationType\", (relationType: any, schema) => {\n return relationType === \"one-to-one\"\n ? schema.required(ERROR_MESSAGES.RELATION_CASCADE)\n : schema.notRequired();\n }),\n }),\n\n\n ...(currentFields.includes(\"relationModelModuleName\") && {\n relationModelModuleName: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Relation Model Module Name Value')\n ),\n }),\n\n ...(currentFields.includes(\"relationFieldFixedFilter\") && {\n relationFieldFixedFilter: Yup.string().nullable(),\n }),\n\n ...(currentFields.includes(\"selectionDynamicProvider\") && {\n selectionDynamicProvider: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Selection Dynamic Provider Value ')\n ),\n }),\n ...(currentFields.includes(\"selectionDynamicProviderCtxt\") && {\n selectionDynamicProviderCtxt: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Selection Dynamic Provider Context Value')\n ).test(\n ERROR_MESSAGES.IS_VALID_JSON,\n ERROR_MESSAGES.COMPUTED_FIELD_VALIDATE_JSON,\n (value) => {\n if (!value) return false; // Ensure it's required\n try {\n JSON.parse(value); // Check if it's valid JSON\n return true;\n } catch {\n return false;\n }\n }\n ),\n }),\n\n ...(currentFields.includes(\"selectionStaticValues\") && {\n selectionStaticValues: Yup.array().of(\n Yup.string().matches(/^[\\w\\s\\d-]+:[\\w\\s-]+$/, ERROR_MESSAGES.FIELD_REUQIRED('Label and Value'))\n ),\n }),\n ...(currentFields.includes(\"computedFieldValueProvider\") && {\n computedFieldValueProvider: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Computed Field Function Value')\n ),\n }),\n ...(currentFields.includes(\"computedFieldValueProviderCtxt\") && {\n computedFieldValueProviderCtxt: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('\"Computed Field Value Provider Context Value')\n ).test(\n ERROR_MESSAGES.IS_VALID_JSON,\n ERROR_MESSAGES.COMPUTED_FIELD_VALIDATE_JSON,\n (value) => {\n if (!value) return false; // Ensure it's required\n try {\n JSON.parse(value); // Check if it's valid JSON\n return true;\n } catch {\n return false;\n }\n }\n ),\n\n }),\n ...(currentFields.includes(\"computedFieldValueType\") && {\n computedFieldValueType: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Computed Field Value Type')\n ),\n }),\n ...(currentFields.includes(\"computedFieldTriggerConfig\") && {\n computedFieldTriggerConfig: Yup.array()\n .of(\n Yup.object().shape({\n moduleName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Module name')),\n modelName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Model name')),\n operations: Yup.array().of(Yup.string()).min(1, ERROR_MESSAGES.SELECT_ONE_OPERATION),\n })\n )\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED('At least one trigger config'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Computed Field Trigger Config')),\n }),\n\n // ...(currentFields.includes(\"columnName\") && { columnName: Yup.string().nullable().matches(/^[a-z0-9_]+$/, ERROR_MESSAGES.SNAKE_CASE('column')), }),\n ...(currentFields.includes(\"isPrimaryKey\") && { isPrimaryKey: Yup.boolean(), }),\n\n ...(currentFields.includes(\"required\") && {\n required: Yup.boolean().when(\"isPrimaryKey\", (isPrimaryKey: any, schema) => {\n if (isPrimaryKey.length > 0 && isPrimaryKey[0] === true) {\n return schema.oneOf([true], \"Required must be true when field is marked as Primary Key\");\n }\n return schema;\n }),\n }),\n\n ...(currentFields.includes(\"unique\") && {\n unique: Yup.boolean().when(\"isPrimaryKey\", (isPrimaryKey: any, schema) => {\n if (isPrimaryKey.length > 0 && isPrimaryKey[0] === true) {\n return schema.oneOf([true], \"Unique must be true when field is marked as Primary Key\");\n }\n return schema;\n }).when(\"required\", (required: any, schema) => {\n // Disallow unique field that is not required\n if (required.length > 0 && required[0] === false) {\n return schema.oneOf([false], \"Unique fields must also be marked as Required\");\n }\n return schema;\n }),\n }),\n\n\n // ...(currentFields.includes(\"externalIdProvider\") && {\n // externalIdProvider: Yup.string().required(\n // \"ExternalId Provider Value is required\"\n // ),\n // }),\n // ...(currentFields.includes(\"externalIdProviderCtxt\") && {\n // externalIdProviderCtxt: Yup.string().required(\n // \"EexternalId Provider Context Value is required\"\n // ),\n // }),\n };\n\n return Yup.object(schema);\n};\n\nconst FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldMetaData, allFields, deleteModelFunction, setVisiblePopup, params, setIsRequiredPopUp, showToaster }: any) => {\n const booleanOptions = [\"false\", \"true\"];\n const booleanSegmentedOptions = booleanOptions.map((value) => ({\n label: capitalize(value),\n value,\n }));\n const resolveBooleanOptionValue = (value: any) =>\n typeof value === \"string\" ? value : value ? \"true\" : \"false\";\n const [isBackPopupVisible, setIsBackPopupVisible] = useState(false);\n const [showColumnName, setShowColumnName] = useState<any>(false);\n\n const pathname = usePathname();\n\n const { data: fieldDefaultMetaData, isLoading, error, refetch } = useGetFieldDefaultMetaDataQuery(null);\n const [currentFields, setCurrentFields] = useState(\n fetchCurrentFields(fieldMetaData && fieldMetaData.type, fieldDefaultMetaData)\n );\n\n const [triggerGetMediaStorageProvider, { data: MediaStorageProviderData, isFetching: isMediaStorageProviderFetching, error: MediaStorageProviderError }] = useLazyGetMediaStorageProvidersQuery();\n const [triggerGetModules, { data: moduleData, isFetching: isModuleFetching, error: moduleError }] = useLazyGetmodulesQuery();\n const [triggerGetModels, { data: modelData, isFetching: ismodelFetching, error: modelError }] = useLazyGetModelsQuery();\n const [\n updateUserKey,\n { isLoading: isUpdateUserKeyLoading, isSuccess: isUpdateUserKeySuccess, isError: isUpdateUserKeyError, error: UpdateUserKeyError, data: newModel },\n ] = useUpdateUserKeyMutation();\n\n\n const [markdownText, setMarkdownText] = useState<string>();\n const [encryptState, setEncryptState] = useState<boolean>(Boolean(fieldMetaData?.encrypt));\n\n const [showTypeFilter, setShowTypeFilter] = useState(fieldMetaData ? false : true);\n const [selectedType, setSelectedType] = useState<{ label: string; value: string } | null>(\n fieldMetaData?.type ? { label: fieldMetaData.type, value: fieldMetaData.type } : null\n );\n const selectedTypeValue = selectedType?.value || \"\";\n const [selectedComputedFieldValueType, setSelectedComputedFieldValueType] = useState(fieldMetaData?.computedFieldValueType && { label: fieldMetaData.computedFieldValueType, value: fieldMetaData.computedFieldValueType });\n const [selectionDynamicProvider, setSelectionDynamicProvider] = useState(fieldMetaData?.selectionDynamicProvider && { label: fieldMetaData.selectionDynamicProvider, value: fieldMetaData.selectionDynamicProvider });\n // const [externalIdProvider, setExternalIdProvider] = useState(fieldMetaData?.externalIdProvider && { label: fieldMetaData.externalIdProvider, value: fieldMetaData.externalIdProvider });\n const [filteredComputedFieldValueTypes, setFilteredComputedFieldValueTypes] = useState([]);\n const [\n filteredSelectionDynamicProvider,\n setFilteredSelectionDynamicProvider,\n ] = useState([]);\n\n const [ormTypeOptions, setOrmTypeOptions] = useState([]);\n const [selectedOrmType, setSelectedOrmType] = useState<any>(fieldMetaData?.ormType);\n\n const [askForUserKeyField, setAskForUserKeyField] = useState(false);\n const [userKeyFieldData, setUserKeyFieldData] = useState([]);\n\n const [\n filteredExternalIdProvider,\n setFilteredExternalIdProvider,\n ] = useState([]);\n\n const [filteredSelectionEncryptionType, setFilteredSelectionEncryptionType] = useState([]);\n\n const [filteredSelectionDecryptWhen, setFilteredSelectionDecryptWhen] = useState([]);\n\n const validationSchema = React.useMemo(\n () => createValidationSchema(currentFields, selectedType, allFields, fieldMetaData, encryptState),\n [currentFields, encryptState]\n );\n\n const [typeSelected, setTypeSelected] = useState(false);\n const showRegexFields = currentFields.includes(\"regexPattern\");\n const showMinFields = currentFields.includes(\"min\");\n const showMaxFields = currentFields.includes(\"max\");\n const showOrmOptions = currentFields.includes(\"ormType\") && Boolean(ormTypeOptions && ormTypeOptions.length);\n const showValidationSection =\n selectedTypeValue !== \"relation\" && (showRegexFields || showMinFields || showMaxFields || showOrmOptions);\n\n const searchMediaStorageProvIderId = async (event: any) => {\n try {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n // filters: {\n // name: {\n // $containsi: query,\n // },\n // },\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetMediaStorageProvider(queryString).unwrap();\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n\n const searchModel = async (event: any) => {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n // filters: {\n // title: {\n // $containsi: query\n // }\n // }\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n // Trigger the API call manually\n const result = await triggerGetModels(queryString).unwrap(); // Unwrap to access the data\n\n // Map the API response to AutoComplete format\n if (result && result.records) {\n const filteredMenu = result.records.map((m: any) => (\n {\n label: m.name,\n value: m.id,\n name: m.name,\n id: m.id,\n }\n ));\n\n // Update the suggestions in state\n return filteredMenu\n } else {\n // Handle the case where no data is returned\n return []\n }\n };\n\n\n\n\n const searchOrmTypes = async (event: any) => {\n const query = event.query;\n try {\n\n const ormType = fieldDefaultMetaData.data.ormType[modelMetaData?.dataSourceType];\n const _filteredOrmType = ormType[formik.values.type].ormTypes.map((e: any) => ({ label: e, value: e }))\n\n const suggestionData: any = _filteredOrmType.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n return suggestionData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n\n\n\n const searchRelationModelModuleNames = async (event: any) => {\n try {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n filters: {\n name: {\n $containsi: query,\n },\n },\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetModules(queryString).unwrap(); // Unwrap to access the data\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n const searchrelationCoModelSingularNames = async (event: any) => {\n try {\n const query = event.query;\n const queryData: any = {\n limit: 10,\n offset: 0,\n filters: {\n module: {\n name: {\n $containsi: formik.values.relationModelModuleName\n }\n }\n }\n };\n if (query) {\n queryData.filters.singularName = {\n $containsi: query,\n };\n }\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetModels(queryString).unwrap(); // Unwrap to access the data\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n const searchModuleName = async (event: any) => {\n try {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n filters: {\n name: {\n $containsi: query,\n },\n },\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetModules(queryString).unwrap(); // Unwrap to access the data\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n const getSearchModelNameHandler = useCallback(\n (moduleName: string) => {\n return async (event: any) => {\n try {\n const query = event.query;\n const queryData: any = {\n limit: 10,\n offset: 0,\n filters: {\n module: {\n name: {\n $containsi: moduleName,\n },\n },\n },\n };\n\n if (query) {\n queryData.filters.singularName = {\n $containsi: query,\n };\n }\n\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n const result = await triggerGetModels(queryString).unwrap();\n return result?.records ?? [];\n } catch (error) {\n return [];\n }\n };\n },\n [] // or include dependencies like triggerGetModels if needed\n );\n\n const searchUserKeyField = () => {\n return userKeyFieldData;\n }\n\n const searchComputedFieldValueType = async (event: any) => {\n const query = event.query;\n try {\n\n const _filteredTypes: any = fieldDefaultMetaData.data.computedFieldValueTypes.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n\n setFilteredComputedFieldValueTypes(_filteredTypes);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n setFilteredComputedFieldValueTypes([]);\n }\n };\n\n\n\n const searchSelectionDynamicProvider = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.selectionDynamicProviders.filter((t: any) => t.provider.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.provider, value: e.provider, help: e.help }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n\n\n const searchComputedProvider = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.computedProviders.filter((t: any) => t.provider.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.provider, value: e.provider, help: e.help }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n const searchExternalIdProvider = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.externalIdProviders.filter((t: any) => t.provider.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.provider, value: e.provider, help: e.help }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n\n\n const searchSelectionEncryptionType = async (event: any) => {\n const query = event.query;\n try {\n\n const _filteredTypes: any = fieldDefaultMetaData.data.encryptionTypes.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n\n setFilteredSelectionEncryptionType(_filteredTypes);\n return _filteredTypes\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n setFilteredSelectionEncryptionType([]);\n return []\n }\n };\n\n const searchSelectionDecryptWhen = async (event: any) => {\n const query = event.query;\n try {\n\n const _filteredTypes: any = fieldDefaultMetaData.data.decryptWhenTypes.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n\n setFilteredSelectionDecryptWhen(_filteredTypes);\n return _filteredTypes\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n setFilteredSelectionDecryptWhen([]);\n return []\n }\n };\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const mediaStorageProviderId = [\n { label: \"mediaStorageProviderId\", value: \"mediaStorageProviderId\" },\n { label: \"id2\", value: \"2\" },\n ];\n\n const selctionValueTypes = [\n { label: \"String\", value: \"string\" },\n { label: \"Int\", value: \"int\" },\n ];\n\n\n const relationCreateInverses = [\n { label: \"True\", value: \"true\" },\n { label: \"False\", value: \"false\" },\n ];\n\n const defaultPasswordPolicy = fieldMetaData?.regexPattern;\n const [selectedPasswordPolicy, setSelectedPasswordPolicy] = useState<any>(defaultPasswordPolicy);\n const passwordPolicyOptions = [\n { label: 'Lowercase and Uppercase Alphabets Required', value: '^(?=.*[a-z])(?=.*[A-Z]).*$' },\n { label: 'Lowercase and Uppercase Alphabets and Numbers Required', value: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).*$' },\n { label: 'Lowercase and Uppercase Alphabets, Numbers, and Special Characters Required', value: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&]).*$' },\n { label: 'custom', value: 'custom' },\n\n ];\n\n const mediaTypesOptions = [\n { label: 'Image (Supports JPEG, PNG, WEBP, etc.)', value: 'image' },\n { label: 'Audio (Supports MP3, WAV, AAC, etc.)', value: 'audio' },\n { label: 'Video (Supports MP4, AVI, MKV, etc.)', value: 'video' },\n { label: 'File (Supports PDF, DOCX, TXT, etc.)', value: 'file' }\n ];\n\n const resolvedMediaTypeOptions = useMemo(\n () => fieldDefaultMetaData?.data?.mediaTypes ?? mediaTypesOptions,\n [fieldDefaultMetaData?.data?.mediaTypes]\n );\n\n const [filteredMediaTypes, setFilteredMediaTypes] = useState(resolvedMediaTypeOptions);\n\n useEffect(() => {\n setFilteredMediaTypes(resolvedMediaTypeOptions);\n }, [resolvedMediaTypeOptions]);\n\n const handleMediaTypesSearch = useCallback(\n (event: { query: string }) => {\n const query = (event.query || \"\").toLowerCase();\n if (!query) {\n setFilteredMediaTypes(resolvedMediaTypeOptions);\n return;\n }\n setFilteredMediaTypes(\n resolvedMediaTypeOptions.filter(\n (option: any) =>\n option.label?.toLowerCase().includes(query) || option.value?.toLowerCase().includes(query)\n )\n );\n },\n [resolvedMediaTypeOptions]\n );\n\n\n\n const parseComputedFieldTriggerConfig = (input: any) => {\n try {\n if (typeof input === \"string\") {\n const parsed = JSON.parse(input);\n return Array.isArray(parsed) ? parsed : [parsed];\n } else if (Array.isArray(input)) {\n return input;\n } else if (typeof input === \"object\" && input !== null) {\n return [input];\n }\n } catch {\n return [{ moduleName: \"\", modelName: \"\", operations: [] }];\n }\n\n return [{ moduleName: \"\", modelName: \"\", operations: [] }];\n };\n\n\n const initialValues = {\n name: fieldMetaData ? fieldMetaData?.name : null,\n displayName: fieldMetaData ? fieldMetaData?.displayName : null,\n description: fieldMetaData ? fieldMetaData?.description : null,\n type: fieldMetaData ? fieldMetaData?.type : null,\n ormType: fieldMetaData ? fieldMetaData?.ormType : null,\n length: fieldMetaData ? fieldMetaData?.length : null,\n defaultValue: fieldMetaData ? fieldMetaData?.defaultValue : null,\n regexPattern: fieldMetaData ? fieldMetaData?.regexPattern : null,\n regexPatternNotMatchingErrorMsg: fieldMetaData ? fieldMetaData?.regexPatternNotMatchingErrorMsg : \"Invalid regex pattern\",\n required: fieldMetaData ? fieldMetaData?.required : false,\n unique: fieldMetaData ? fieldMetaData?.unique : false,\n encrypt: fieldMetaData ? fieldMetaData?.encrypt : false,\n encryptionType: fieldMetaData ? fieldMetaData?.encryptionType : null,\n decryptWhen: fieldMetaData ? fieldMetaData?.decryptWhen : null,\n index: fieldMetaData ? fieldMetaData?.index : false,\n min: fieldMetaData ? fieldMetaData?.min : null,\n max: fieldMetaData ? fieldMetaData?.max : null,\n private: fieldMetaData ? fieldMetaData?.private : false,\n mediaTypes: fieldMetaData?.mediaTypes ?? [],\n mediaMaxSizeKb: fieldMetaData ? fieldMetaData?.mediaMaxSizeKb : null,\n mediaStorageProviderId: fieldMetaData ? fieldMetaData?.mediaStorageProvider?.id : null,\n mediaStorageProvider: fieldMetaData ? fieldMetaData?.mediaStorageProvider : null,\n mediaEmbedded: fieldMetaData ? (fieldMetaData?.mediaEmbedded && fieldMetaData?.mediaEmbedded.toString()) : \"true\",\n relationType: fieldMetaData ? fieldMetaData?.relationType : null,\n relationCoModelSingularName: fieldMetaData ? fieldMetaData?.relationCoModelSingularName : null,\n relationCoModelFieldName: fieldMetaData ? fieldMetaData?.relationCoModelFieldName : null,\n relationCreateInverse: fieldMetaData ? fieldMetaData?.relationCreateInverse : false,\n relationCascade: fieldMetaData ? fieldMetaData?.relationCascade : 'cascade',\n relationModelModuleName: fieldMetaData ? fieldMetaData?.relationModelModuleName : modelMetaData?.module.name,\n relationFieldFixedFilter: fieldMetaData ? fieldMetaData?.relationFieldFixedFilter : \"\",\n selectionDynamicProvider: fieldMetaData ? fieldMetaData?.selectionDynamicProvider : null,\n selectionDynamicProviderCtxt: fieldMetaData ? fieldMetaData?.selectionDynamicProviderCtxt : \"\",\n selectionStaticValues: fieldMetaData ? fieldMetaData?.selectionStaticValues : [\"\"],\n selectionValueType: fieldMetaData ? fieldMetaData?.selectionValueType : null,\n computedFieldValueProvider: fieldMetaData ? fieldMetaData?.computedFieldValueProvider : null,\n computedFieldValueType: fieldMetaData ? fieldMetaData?.computedFieldValueType : null,\n computedFieldTriggerConfig: parseComputedFieldTriggerConfig(fieldMetaData?.computedFieldTriggerConfig),\n computedFieldValueProviderCtxt: fieldMetaData ? fieldMetaData?.computedFieldValueProviderCtxt : \"\",\n // externalIdProvider: fieldMetaData ? fieldMetaData?.externalIdProvider : null,\n // externalIdProviderCtxt: fieldMetaData ? fieldMetaData?.externalIdProviderCtxt : \"\",\n isSystem: fieldMetaData ? fieldMetaData?.isSystem : false,\n columnName: fieldMetaData ? fieldMetaData?.columnName : null,\n isUserKey: fieldMetaData ? fieldMetaData?.isUserKey : false,\n relationCoModelColumnName: fieldMetaData ? fieldMetaData?.relationCoModelColumnName : null,\n relationJoinTableName: fieldMetaData ? fieldMetaData?.relationJoinTableName : null,\n userKey: fieldMetaData ? fieldMetaData?.userKey : null,\n enableAuditTracking: fieldMetaData ? fieldMetaData?.enableAuditTracking : true,\n isPrimaryKey: fieldMetaData ? fieldMetaData?.isPrimaryKey : false,\n isMultiSelect: fieldMetaData ? fieldMetaData?.isMultiSelect : false,\n };\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n setFieldMetaData((prevItems: any) => {\n const newFieldData = { ...values, isSystem: values.isSystem == true ? true : '' }\n const formtatedFieldPayload = fieldBasedPayloadFormating(newFieldData, currentFields, fieldMetaData);\n const existingIndex = prevItems.findIndex((item: any) => item.identifier === formtatedFieldPayload.identifier);\n let updatedItems;\n if (existingIndex !== -1) {\n updatedItems = [...prevItems];\n updatedItems[existingIndex] = formtatedFieldPayload;\n return updatedItems\n }\n else {\n updatedItems = [...prevItems, formtatedFieldPayload];\n if (params?.id !== 'new' && formtatedFieldPayload?.required && !formtatedFieldPayload?.defaultValue) {\n setIsRequiredPopUp(true);\n }\n // return [...prevItems, formtatedFieldPayload]\n }\n return updatedItems;\n });\n if (values.userKey) {\n const data = {\n modelName: values.relationCoModelSingularName,\n fieldName: values.userKey\n }\n updateUserKey(data);\n }\n // nextTab()\n setVisiblePopup(false);\n\n } catch (err) {\n console.error(ERROR_MESSAGES.CREATE_MODEL, err);\n }\n },\n validateOnBlur: false // Disable validation on blur\n\n\n\n });\n\n const mediaTypeSelectedItems = useMemo(() => {\n if (!Array.isArray(formik.values.mediaTypes)) return [];\n return formik.values.mediaTypes.map((entry: any) => {\n if (entry && typeof entry === \"object\") {\n if (entry.label && entry.value) {\n return entry;\n }\n if (entry.value) {\n const fromOptions = resolvedMediaTypeOptions.find((option: any) => option.value === entry.value);\n return fromOptions || { label: entry.value, value: entry.value };\n }\n }\n const fromOptions = resolvedMediaTypeOptions.find((option: any) => option.value === entry);\n return fromOptions || { label: String(entry), value: entry };\n });\n }, [formik.values.mediaTypes, resolvedMediaTypeOptions]);\n\n const resetFormStateForTypeSelection = useCallback((options?: { keepSelectedType?: boolean }) => {\n formik.resetForm();\n const baseValues = formik.initialValues;\n setShowColumnName(Boolean(baseValues.columnName));\n setEncryptState(Boolean(baseValues.encrypt));\n setMarkdownText(undefined);\n setSelectedComputedFieldValueType(\n baseValues?.computedFieldValueType\n ? { label: baseValues.computedFieldValueType, value: baseValues.computedFieldValueType }\n : null\n );\n setSelectedPasswordPolicy(baseValues?.regexPattern || defaultPasswordPolicy || \"\");\n setOrmTypeOptions([]);\n setSelectedOrmType(baseValues?.ormType);\n setAskForUserKeyField(false);\n setUserKeyFieldData([]);\n if (!options?.keepSelectedType) {\n if (fieldMetaData?.type) {\n setSelectedType({ label: fieldMetaData.type, value: fieldMetaData.type });\n } else {\n setSelectedType(null);\n }\n }\n }, [\n defaultPasswordPolicy,\n fieldMetaData,\n formik,\n ]);\n\n const showError = async () => {\n const errors = await formik.validateForm(); // Trigger validation and get the updated errors\n const collectMessages = (value: any): string[] => {\n if (!value) return [];\n if (typeof value === \"string\") return [value];\n if (Array.isArray(value)) {\n return value.flatMap(collectMessages);\n }\n if (typeof value === \"object\") {\n return Object.values(value).flatMap(collectMessages);\n }\n return [String(value)];\n };\n const errorMessages = Object.values(errors).flatMap(collectMessages);\n\n if (errorMessages.length > 0) {\n showToaster(errorMessages, \"error\");\n }\n };\n\n useEffect(() => {\n if (isUpdateUserKeySuccess) {\n showToaster([newModel?.data?.message], \"success\");\n } if (isUpdateUserKeyError) {\n showToaster(UpdateUserKeyError, 'error')\n }\n }, [isUpdateUserKeySuccess, isUpdateUserKeyError])\n\n const handleTypeSelect = (e: any, label: string) => {\n if (!fieldMetaData) {\n resetFormStateForTypeSelection({ keepSelectedType: true });\n }\n setShowTypeFilter(false);\n setSelectedType({ label: label, value: e });\n formik.setFieldValue(\"type\", e);\n if (e == \"email\") {\n formik.setFieldValue(\"regexPattern\", \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\");\n } else {\n formik.setFieldValue(\"regexPattern\", \"\");\n }\n const ormType = fieldDefaultMetaData.data.ormType[modelMetaData?.dataSourceType];\n const availableOrmTypes = ormType[e];\n // setFilteredOrmTypes(availableOrmTypes.ormTypes.map((e: any) => ({\n // label: e,\n // value: e,\n // })));\n // setSelectedOrmType({ label: availableOrmTypes.ormTypes[0], value: availableOrmTypes.ormTypes[0] });\n setOrmTypeOptions(availableOrmTypes.ormTypes)\n formik.setFieldValue(\"ormType\", availableOrmTypes.ormTypes[0].label);\n setSelectedOrmType(availableOrmTypes.ormTypes[0].label)\n setCurrentFields(\n fetchCurrentFields(e, fieldDefaultMetaData)\n );\n // setTypeSelected(true);\n }\n\n\n useEffect(() => {\n if (!fieldDefaultMetaData || !formik.values.type || !modelMetaData?.dataSourceType) {\n setOrmTypeOptions([]);\n return;\n }\n const ormTypeBySource = fieldDefaultMetaData.data.ormType?.[modelMetaData.dataSourceType];\n const typeConfig = ormTypeBySource?.[formik.values.type];\n setOrmTypeOptions(typeConfig?.ormTypes ?? []);\n }, [fieldDefaultMetaData, formik.values.type, modelMetaData?.dataSourceType]);\n\n\n useEffect(() => {\n if (fieldMetaData && fieldMetaData.columnName) {\n setShowColumnName(true)\n }\n }, [fieldMetaData])\n\n useEffect(() => {\n const fetchFields = async () => {\n const queryData: any = {\n limit: 100,\n offset: 0,\n filters: {\n singularName: {\n $eq: formik.values.relationCoModelSingularName\n }\n },\n populate: ['fields']\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const result = await triggerGetModels(queryString).unwrap();\n\n if (result && result.records) {\n if (!result?.records[0]?.userKeyField) {\n setAskForUserKeyField(true);\n const validUserKeyFields = result?.records[0]?.fields?.filter(\n (field: any) => field?.unique === true && field?.type === 'shortText'\n );\n setUserKeyFieldData(validUserKeyFields)\n } else {\n setAskForUserKeyField(false);\n setUserKeyFieldData([]);\n }\n }\n }\n if (formik.values.relationCoModelSingularName) {\n fetchFields();\n }\n }, [formik.values.relationCoModelSingularName])\n\n const updateEnumValues = (index: number, updatedString: string) => {\n const updatedValues = formik.values.selectionStaticValues.map((enumValue: string, i: number) =>\n i === index ? updatedString : enumValue\n );\n formik.setFieldValue(\"selectionStaticValues\", updatedValues);\n };\n\n const addEnumValue = () => {\n formik.setFieldValue(\"selectionStaticValues\", [...formik.values.selectionStaticValues, \":\"]);\n };\n\n const deleteEnumValue = (index: number) => {\n if (formik.values.selectionStaticValues.length > 1) {\n const updatedRows = formik.values.selectionStaticValues.filter((_: string, rowIndex: number) => rowIndex !== index);\n formik.setFieldValue(\"selectionStaticValues\", updatedRows);\n } else {\n\n }\n };\n\n useEffect(() => {\n if (formik.dirty) {\n setIsDirty(true);\n }\n }, [formik.dirty]);\n\n const handleChange = (index: number, updatedRow: any) => {\n const updatedRows = [...formik.values.computedFieldTriggerConfig];\n updatedRows[index] = updatedRow;\n formik.setFieldValue(\"computedFieldTriggerConfig\", updatedRows);\n };\n\n const handleAdd = () => {\n const updatedRows = [\n ...formik.values.computedFieldTriggerConfig,\n { moduleName: '', modelName: '', operations: [] }\n ];\n formik.setFieldValue(\"computedFieldTriggerConfig\", updatedRows);\n };\n\n const handleDelete = (index: number) => {\n const updatedRows = formik.values.computedFieldTriggerConfig.filter((_: any, i: number) => i !== index);\n formik.setFieldValue(\"computedFieldTriggerConfig\", updatedRows.length > 0 ? updatedRows : [{ moduleName: '', modelName: '', operations: [] }]);\n };\n\n const computedFieldSearchHandlers = useMemo(() => {\n return formik.values.computedFieldTriggerConfig.map(row =>\n getSearchModelNameHandler(row.moduleName)\n );\n }, [formik.values.computedFieldTriggerConfig]);\n\n const mediaStorageProviderField = useSolidAutocompleteField({\n formik,\n fieldName: \"mediaStorageProvider\",\n fieldNameId: \"mediaStorageProviderId\",\n labelKey: \"name\",\n valueKey: \"value\",\n searchData: searchMediaStorageProvIderId,\n existingData: formik.values.mediaStorageProvider,\n relationField: true,\n });\n\n const relationModelModuleExisting = useMemo(\n () => createRelationAutocompleteValue(formik.values.relationModelModuleName, \"name\", \"name\"),\n [formik.values.relationModelModuleName]\n );\n const relationModelModuleField = useSolidAutocompleteField({\n formik,\n fieldName: \"relationModelModuleName\",\n fieldNameId: null,\n labelKey: \"name\",\n valueKey: \"name\",\n searchData: searchRelationModelModuleNames,\n existingData: relationModelModuleExisting,\n relationField: true,\n additionalAction: () => {\n formik.setFieldValue(\"relationCoModelSingularName\", \"\");\n formik.setFieldValue(\"relationCoModelColumnName\", \"\");\n formik.setFieldValue(\"relationJoinTableName\", \"\");\n }\n });\n\n const relationCoModelExisting = useMemo(\n () => createRelationAutocompleteValue(formik.values.relationCoModelSingularName, \"displayName\", \"singularName\"),\n [formik.values.relationCoModelSingularName]\n );\n const relationCoModelField = useSolidAutocompleteField({\n formik,\n fieldName: \"relationCoModelSingularName\",\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"singularName\",\n searchData: searchrelationCoModelSingularNames,\n existingData: relationCoModelExisting,\n relationField: true,\n });\n\n const userKeyExisting = useMemo(\n () => createRelationAutocompleteValue(formik.values.userKey, \"displayName\", \"name\"),\n [formik.values.userKey]\n );\n const userKeyField = useSolidAutocompleteField({\n formik,\n fieldName: \"userKey\",\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"name\",\n searchData: searchUserKeyField,\n existingData: userKeyExisting,\n relationField: true,\n });\n\n const selectionDynamicProviderExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.selectionDynamicProvider),\n [formik.values.selectionDynamicProvider]\n );\n const selectionDynamicProviderField = useSolidAutocompleteField({\n formik,\n fieldName: \"selectionDynamicProvider\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchSelectionDynamicProvider,\n existingData: selectionDynamicProviderExisting,\n additionalAction: (e: any) => setMarkdownText(e.target.value.help),\n });\n\n const computedFieldValueProviderExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.computedFieldValueProvider),\n [formik.values.computedFieldValueProvider]\n );\n const computedFieldValueProviderField = useSolidAutocompleteField({\n formik,\n fieldName: \"computedFieldValueProvider\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchComputedProvider,\n existingData: computedFieldValueProviderExisting,\n additionalAction: (e: any) => setMarkdownText(e.target.value.help),\n });\n\n const encryptionTypeExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.encryptionType),\n [formik.values.encryptionType]\n );\n const decryptWhenExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.decryptWhen),\n [formik.values.decryptWhen]\n );\n\n const encryptionTypeField = useSolidAutocompleteField({\n formik,\n fieldName: \"encryptionType\",\n fieldNameId: \"encryptionType\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchSelectionEncryptionType,\n existingData: encryptionTypeExisting,\n });\n\n const decryptWhenField = useSolidAutocompleteField({\n formik,\n fieldName: \"decryptWhen\",\n fieldNameId: \"decryptWhen\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchSelectionDecryptWhen,\n existingData: decryptWhenExisting,\n });\n\n\n return (\n <div>\n <div>\n <form\n onSubmit={formik.handleSubmit}\n onReset={(event) => {\n event.preventDefault();\n resetFormStateForTypeSelection();\n }}\n >\n <div className=\"solid-field-metadata-form-header\">\n {pathname.includes('create') ?\n <>\n <div className=\"flex align-items-center gap-3\">\n {showTypeFilter === false ?\n <>\n <SolidButton\n text\n icon='si si-arrow-left'\n size=\"small\"\n type=\"button\"\n aria-label=\"Back\"\n className='max-w-2rem bg-primary-reverse text-color solid-icon-button'\n onClick={() => {\n if (!formik.values.displayName) {\n resetFormStateForTypeSelection();\n setShowTypeFilter(true);\n } else {\n setIsBackPopupVisible(true)\n }\n }\n }\n />\n <div className=\"form-wrapper-title solid-mobile-text-wrapper text-base\">{capitalize(modelMetaData?.displayName)}</div>\n </>\n :\n <div className=\"flex text-2xl font-bold align-items-center ml-4\" style={{ color: '#000' }}>\n <div className=\"form-wrapper-title solid-mobile-text-wrapper text-base\">Model - {capitalize(modelMetaData?.displayName)}</div>\n </div>\n }\n </div>\n <div className=\"flex align-items-center gap-3 close-popup\">\n <SolidButton icon=\"si si-times\" rounded text aria-label=\"Cancel\" type=\"reset\" size=\"small\" onClick={() => setVisiblePopup(false)}\n className='max-w-2rem bg-primary-reverse text-color' />\n </div>\n </>\n :\n <>\n <div className=\"flex align-items-center gap-3\">\n {!fieldMetaData?.id &&\n <SolidButton\n text\n icon='si si-arrow-left'\n size=\"small\"\n type=\"button\"\n aria-label=\"Back\"\n className='max-w-2rem bg-primary-reverse text-color solid-icon-button'\n onClick={() => {\n if (!formik.values.displayName) {\n resetFormStateForTypeSelection();\n setShowTypeFilter(true);\n } else {\n setIsBackPopupVisible(true)\n }\n }\n } />\n }\n {fieldMetaData ?\n\n <div className=\"form-wrapper-title solid-mobile-text-wrapper\">Edit {capitalize(fieldMetaData?.displayName)}</div>\n :\n <div className=\"form-wrapper-title solid-mobile-text-wrapper\">Add New {selectedType?.label && !showTypeFilter && capitalize(selectedType.label)} Field to {capitalize(modelMetaData?.displayName)}</div>\n }\n </div>\n <div className=\"flex align-items-center gap-3 close-popup\">\n <SolidButton icon=\"si si-times\" text aria-label=\"Cancel\" type=\"reset\" size=\"small\" onClick={() => setVisiblePopup(false)}\n className='max-w-2rem bg-primary-reverse text-color'\n />\n </div>\n </>\n }\n </div>\n {showTypeFilter === true ?\n <FieldSelector\n handleTypeSelect={handleTypeSelect}\n modelMetaData={modelMetaData}\n ></FieldSelector>\n :\n <div className=\"p-3\" style={{ maxHeight: '80vh', overflowY: 'auto', overflowX: 'hidden' }}>\n <div className=\"p-d-flex p-jc-center creat-field-for form-dem\">\n <div className=\"p-fluid\" style={{ position: 'relative' }}>\n {/* <div className=\"mb-3\">\n <div className=\"form-wrapper-title\">{fieldMetaData ? `Edit ${capitalize(selectedType.label)} Field` : `Add a new ${capitalize(selectedType.label)} Field`}</div>\n </div> */}\n <TabView panelContainerClassName=\"px-0\">\n <TabPanel\n header=\"Basic Info\"\n className={(formik.touched.hasOwnProperty(\"name\") && formik.errors.hasOwnProperty(\"name\")) || (formik.touched.hasOwnProperty(\"displayName\") && formik.errors.hasOwnProperty(\"displayName\")) || (formik.touched.hasOwnProperty(\"displayName\") && formik.errors.hasOwnProperty(\"ormType\")) ? \"tab-error-heading\" : \"\"}\n // rightIcon=\"si si-info-circle ml-2\"\n >\n <div className=\"formgrid grid\">\n {currentFields.includes(\"displayName\") && (\n <div className=\"field col-12 md:col-6 mt-2\">\n <label htmlFor=\"displayName\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Display Name\n </label>\n <SolidInput\n type=\"text\"\n disabled={fieldMetaData?.id}\n id=\"displayName\"\n name=\"displayName\"\n onChange={(e) => {\n formik.setFieldValue(\"displayName\", e.target.value);\n const { toCamelCase, toSnakeCase } = getSingularAndPlural(e.target.value);\n formik.setFieldValue(\"name\", toCamelCase);\n if (showColumnName) {\n formik.setFieldValue(\"columnName\", toSnakeCase);\n }\n }}\n value={formik.values.displayName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(formik, \"displayName\"),\n })}\n />\n {isFormFieldValid(formik, \"displayName\") && (\n <p className={styles.fieldError}>{formik?.errors?.displayName?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"name\") && (\n <div className=\"field col-12 md:col-6 mt-1 md:mt-0\">\n <label htmlFor=\"name\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Name\n </label>\n <SolidInput\n disabled={fieldMetaData?.id}\n type=\"text\"\n id=\"name\"\n name=\"name\"\n onChange={formik.handleChange}\n value={formik.values.name}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(formik, \"name\"),\n })}\n />\n {isFormFieldValid(formik, \"name\") && (\n <p className={styles.fieldError}>{formik?.errors?.name?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"description\") && (\n <div className=\"field col-12 md:col-6 mt-1 md:mt-2\">\n <label htmlFor=\"description\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Description\n </label>\n <SolidTextarea\n aria-describedby=\"Description of your field\"\n id=\"description\"\n name=\"description\"\n onChange={formik.handleChange}\n value={formik.values.description}\n rows={5}\n cols={30}\n className={classNames(styles.fieldTextarea, {\n \"p-invalid\": isFormFieldValid(formik, \"description\"),\n })}\n />\n {isFormFieldValid(formik, \"description\") && (\n <p className={styles.fieldError}>{formik?.errors?.description?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"columnName\") && (\n <div className=\"field col-12 md:col-6 mt-2\">\n <div className=\"flex align-items-center gap-2\">\n <SolidCheckbox\n onChange={(event) => {\n const checked = event.currentTarget.checked;\n setShowColumnName(checked);\n if (checked === true) {\n const { toSnakeCase } = getSingularAndPlural(formik.values.displayName);\n if (pathname.includes('create')) {\n formik.setFieldValue(\"columnName\", toSnakeCase);\n }\n } else {\n formik.setFieldValue(\"columnName\", null);\n }\n }}\n checked={showColumnName}\n disabled={fieldMetaData?.id}\n />\n <label htmlFor=\"ingredient1\" className=\"form-field-label\">\n Set Column Name\n </label>\n </div>\n {showColumnName && (\n <div className=\"field col-12 gap-2 mt-4\">\n <label htmlFor=\"columnName\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Column Name\n </label>\n <SolidInput\n disabled={fieldMetaData?.id}\n type=\"text\"\n id=\"columnName\"\n name=\"columnName\"\n onChange={formik.handleChange}\n value={formik.values.columnName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(formik, \"columnName\"),\n })}\n />\n {isFormFieldValid(formik, \"columnName\") && (\n <p className={styles.fieldError}>{formik?.errors?.columnName?.toString()}</p>\n )}\n </div>\n )}\n </div>\n )}\n\n\n {/* {currentFields.includes(\"type\") && (\n <div className=\"md:col-6 sm:col-12\">\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label htmlFor=\"type\" className=\"form-field-label\">\n Type\n </label>\n <SolidAutocomplete\n value={selectedType}\n suggestions={filteredTypes}\n invalid={isFormFieldValid(formik, \"type\")}\n completeMethod={searchTypes}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n formik.setFieldTouched('type', true); // Manually mark as touched\n setSelectedType(e.value);\n formik.setFieldValue(\"type\", e.value.value);\n if (e.value.value == \"email\") {\n formik.setFieldValue(\"regexPattern\", \"/^[a-zA-Z0-9. _%+-]+@[a-zA-Z0-9. -]+\\\\. [a-zA-Z]{2,}$/\");\n } else {\n formik.setFieldValue(\"regexPattern\", \"\");\n }\n const _filteredOrmType: any = fieldDefaultMetaData.data.ormType.filter((t: any) => t.solidType == e.value.value);\n setSelectedOrmType(_filteredOrmType[0].value)\n formik.setFieldValue(\"ormType\", _filteredOrmType[0].value);\n\n setCurrentFields(\n fetchCurrentFields(e.value.value, fieldDefaultMetaData)\n );\n }}\n\n\n />\n\n {isFormFieldValid(formik, \"type\") && (\n <SolidMessage\n severity=\"error\"\n text={formik?.errors?.type?.toString()}\n />\n )}\n </div>\n </div>\n )} */}\n\n </div>\n\n </TabPanel>\n\n <TabPanel header=\"Advanced Config\"\n\n // rightIcon=\"si si-cog ml-2\"\n >\n {formik?.values?.type?.length > 0 && (\n <div className=\"formgrid grid\">\n {currentFields.includes(\"length\") && (\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label htmlFor=\"length\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Length\n </label>\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"length\"\n name=\"length\"\n value={formik.values.length}\n onChange={(event) => formik.setFieldValue(\"length\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"length\"\n ),\n })}\n />\n </div>\n {isFormFieldValid(formik, \"length\") && (\n <p className={styles.fieldError}>{formik?.errors?.length?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"defaultValue\") && selectedTypeValue === \"boolean\" &&\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-2\">\n\n <label\n style={{ marginBottom: \"0px\" }}\n htmlFor=\"defaultValue\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Default Value\n </label>\n <SolidSegmentedControl\n value={resolveBooleanOptionValue(formik.values.defaultValue)}\n onChange={(value) => formik.setFieldValue(\"defaultValue\", value)}\n options={booleanSegmentedOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n </div>\n }\n\n {currentFields.includes(\"defaultValue\") && selectedTypeValue !== \"boolean\" && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-2\">\n\n <label\n style={{ marginBottom: \"0px\" }}\n htmlFor=\"defaultValue\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Default Value\n </label>\n\n {(selectedTypeValue === \"shortText\" || selectedTypeValue === \"longText\" || selectedTypeValue === \"richText\" || selectedTypeValue === \"json\" || selectedTypeValue === \"password\" || selectedTypeValue === \"selectionStatic\") &&\n <SolidInput\n type=\"text\"\n id=\"defaultValue\"\n name=\"defaultValue\"\n onChange={formik.handleChange}\n value={formik.values.defaultValue}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"defaultValue\"\n ),\n })}\n />\n }\n {(selectedTypeValue === \"float\" || selectedTypeValue === \"decimal\") &&\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"defaultValue\"\n name=\"defaultValue\"\n step=\"0.00001\"\n value={formik.values.defaultValue}\n onChange={(event) => formik.setFieldValue(\"defaultValue\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n </div>\n }\n {(selectedTypeValue === \"int\" || selectedTypeValue === \"bigint\") &&\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"defaultValue\"\n name=\"defaultValue\"\n step=\"1\"\n value={formik.values.defaultValue}\n onChange={(event) => formik.setFieldValue(\"defaultValue\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n </div>\n }\n\n {(selectedTypeValue === \"date\" || selectedTypeValue === \"datetime\" || selectedTypeValue === \"time\") && (() => {\n const showTimeSelect = selectedTypeValue === \"datetime\" || selectedTypeValue === \"time\";\n const timeOnly = selectedTypeValue === \"time\";\n const dateFormat =\n selectedTypeValue === \"datetime\"\n ? \"yyyy-MM-dd HH:mm\"\n : timeOnly\n ? \"HH:mm\"\n : \"yyyy-MM-dd\";\n const timeFormat = \"HH:mm\";\n return (\n <SolidDatePicker\n id=\"defaultValue\"\n selected={formik.values.defaultValue ? new Date(formik.values.defaultValue) : undefined}\n onChange={(date: Date | null) => formik.setFieldValue(\"defaultValue\", date)}\n showTimeSelect={showTimeSelect}\n timeOnly={timeOnly}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n inputClassName={classNames({\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n );\n })()}\n {isFormFieldValid(formik, \"defaultValue\") && (\n <p className={styles.fieldError}>{formik?.errors?.defaultValue?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"mediaTypes\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2\">\n <label\n htmlFor=\"mediaTypes\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Type\n </label>\n <div\n className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"mediaTypes\"),\n })}\n >\n <SolidAutocomplete\n multiple\n dropdown\n field=\"label\"\n value={mediaTypeSelectedItems}\n suggestions={filteredMediaTypes}\n completeMethod={handleMediaTypesSearch}\n maxVisibleChips={3}\n onChange={({ value }) => {\n const selection = Array.isArray(value) ? value : [];\n const normalizedValues = selection\n .map((item) => {\n if (item && typeof item === \"object\") {\n if (item.value) return item.value;\n if (item.label) return item.label;\n }\n return item ?? null;\n })\n .filter(Boolean);\n formik.setFieldValue(\"mediaTypes\", normalizedValues);\n }}\n placeholder=\"Select media types\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"mediaTypes\") && (\n <p className={styles.fieldError}>{formik?.errors?.mediaTypes?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"mediaMaxSizeKb\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2 md:mt-0\">\n <label\n htmlFor=\"mediaMaxSizeKb\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Max Size (Mb)\n </label>\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"mediaMaxSizeKb\"\n name=\"mediaMaxSizeKb\"\n value={formik.values.mediaMaxSizeKb}\n onChange={(event) => formik.setFieldValue(\"mediaMaxSizeKb\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaMaxSizeKb\"\n ),\n })}\n />\n </div>\n\n {isFormFieldValid(formik, \"mediaMaxSizeKb\") && (\n <p className={styles.fieldError}>{formik?.errors?.mediaMaxSizeKb?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"mediaStorageProviderId\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"mediaStorageProviderId\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Storage Provider\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"mediaStorageProvider\"),\n })}>\n <SolidAutocomplete\n value={mediaStorageProviderField.selectedItem}\n suggestions={mediaStorageProviderField.filteredItems}\n completeMethod={mediaStorageProviderField.searchItems}\n onChange={mediaStorageProviderField.handleChange}\n dropdown\n field=\"name\"\n className=\"w-full\"\n />\n </div>\n\n {isFormFieldValid(\n formik,\n \"mediaStorageProvider\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.mediaStorageProviderId?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"mediaEmbedded\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"mediaEmbedded\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Embedded\n </label>\n {/* <SolidInput\n type=\"text\"\n id=\"mediaEmbedded\"\n name=\"mediaEmbedded\"\n onChange={formik.handleChange}\n value={formik.values.mediaEmbedded}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaEmbedded\"\n ),\n })}\n /> */}\n <SolidSegmentedControl\n value={resolveBooleanOptionValue(formik.values.mediaEmbedded)}\n onChange={(value) => {\n formik.setFieldValue(\"mediaEmbedded\", value);\n }}\n options={booleanSegmentedOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaEmbedded\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"mediaEmbedded\") && (\n <p className={styles.fieldError}>{formik?.errors?.mediaEmbedded?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"relationType\") && (\n <div className=\"field col-12 flex gap-2 mt-1 align-items-center\">\n {/* <label\n htmlFor=\"relationType\"\n className=\"form-field-label\"\n >\n Relation Type\n </label>\n <Dropdown\n id=\"relationType\"\n name=\"relationType\"\n value={formik.values.relationType}\n options={fieldDefaultMetaData.data.relationTypes}\n onChange={(e) =>\n formik.setFieldValue(\"relationType\", e.value)\n }\n placeholder=\"Select a Data Source\"\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationType\"\n ),\n })}\n /> */}\n\n <label\n style={{ marginBottom: \"0px\" }}\n htmlFor=\"relationType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Type\n </label>\n <SolidSegmentedControl\n value={formik.values.relationType}\n options={fieldDefaultMetaData.data.relationTypes}\n onChange={(value) => {\n formik.setFieldValue(\"relationType\", value);\n if (value === \"one-to-many\") {\n formik.setFieldValue(\"relationCreateInverse\", true);\n }\n }}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"relationType\"),\n })}\n />\n {/* <div className=\"align-items-center\">\n <div className=\"flex mt-1\">\n {fieldDefaultMetaData?.data?.relationTypes.map((i: any) => (\n <div key={i.value} className=\"mr-3\">\n <SolidRadioGroup\n inputId=\"ingredient1\"\n name=\"pizza\"\n value={i.value}\n onChange={(e) => formik.setFieldValue(\"relationType\", e.value)}\n checked={formik.values.relationType === i.value}\n />\n <label htmlFor=\"ingredient1\" className=\"form-field-label ml-2\">{i.value}</label>\n </div>\n ))}\n </div>\n </div> */}\n\n {isFormFieldValid(formik, \"relationType\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationType?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"relationType\") && (formik.values.relationType === \"many-to-one\" || formik.values.relationType === \"one-to-many\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"relationCascade\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Cascade\n </label>\n <SolidSelect\n value={formik.values.relationCascade}\n options={fieldDefaultMetaData.data.cascadeTypes}\n optionLabel=\"label\"\n optionValue=\"value\"\n onChange={({ value }) =>\n formik.setFieldValue(\n \"relationCascade\",\n value\n )\n }\n placeholder=\"Cascade\"\n className={classNames(\"w-full\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationCascade\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"relationCascade\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCascade?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"relationModelModuleName\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-1\">\n <label\n htmlFor=\"relationModelModuleName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Co-Module Name\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"relationModelModuleName\"\n ),\n })}>\n <SolidAutocomplete\n value={relationModelModuleField.selectedItem}\n suggestions={relationModelModuleField.filteredItems}\n completeMethod={relationModelModuleField.searchItems}\n onChange={relationModelModuleField.handleChange}\n dropdown\n field=\"name\"\n className=\"w-full\"\n />\n </div>\n\n {/* <SolidAutocomplete\n value={selectedRelationModelModuleName}\n suggestions={filteredRelationModelModuleNames}\n invalid={isFormFieldValid(\n formik,\n \"relationModelModuleName\"\n )}\n completeMethod={searchRelationModelModuleNames}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectedRelationModelModuleName(e.value);\n formik.setFieldValue(\n \"relationModelModuleName\",\n e.value\n );\n }}\n /> */}\n\n {isFormFieldValid(\n formik,\n \"relationModelModuleName\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.relationModelModuleName?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\n \"relationCoModelSingularName\"\n ) && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"relationCoModelSingularName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Co-Model Name\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"relationCoModelSingularName\"\n ),\n })}>\n <SolidAutocomplete\n value={relationCoModelField.selectedItem}\n suggestions={relationCoModelField.filteredItems}\n completeMethod={relationCoModelField.searchItems}\n onChange={relationCoModelField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n\n {isFormFieldValid(\n formik,\n \"relationCoModelSingularName\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.relationCoModelSingularName?.toString()}</p>\n )}\n {formik.values.relationType === \"one-to-many\" &&\n <p className=\"fieldSubTitle\">This is the child model.</p>\n }\n {formik.values.relationType === \"many-to-one\" &&\n <p className=\"fieldSubTitle\">This is the parent model.</p>\n }\n </div>\n )}\n {currentFields.includes(\"relationCoModelColumnName\") && (formik.values.relationType === \"many-to-many\" || formik.values.relationType === \"many-to-one\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"relationCoModelColumnName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Co-Model Column Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"relationCoModelColumnName\"\n name=\"relationCoModelColumnName\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationCoModelColumnName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationCoModelColumnName\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"relationCoModelColumnName\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCoModelColumnName?.toString()}</p>\n )}\n <p className=\"fieldSubTitle\">Allows you to control the column name of the foreign key. Eg. when adding a country field to state model, by default foreign key column in the state table will be called country_id, use this field to create a foreign key with a different name. </p>\n\n </div>\n )}\n {askForUserKeyField && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"userKey\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Set User Key\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"userKey\"\n ),\n })}>\n <SolidAutocomplete\n value={userKeyField.selectedItem}\n suggestions={userKeyField.filteredItems}\n completeMethod={userKeyField.searchItems}\n onChange={userKeyField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n <p className=\"fieldSubTitle\">The co-model you have selected does not have a user key specified. Use the above dropdown to choose from one of the \"unique\" fields in this co-model to be set as its userkey. User keys are required in co-models being used in many-to-one or one-to-many relations as in SolidX when a many-to-one field is rendered it uses an autocomplete dropdown, and the user key value is what is displayed as the label in the dropdown.</p>\n {isFormFieldValid(\n formik,\n \"userKey\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.userKey?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\n \"relationFieldFixedFilter\"\n ) && (\n <div className=\"field col-12 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"relationFieldFixedFilter\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Field Fixed Filter\n </label>\n\n <SolidTextarea\n aria-describedby=\"Fixed Filter\"\n id=\"relationFieldFixedFilter\"\n name=\"relationFieldFixedFilter\"\n onChange={formik.handleChange}\n value={formik.values.relationFieldFixedFilter}\n rows={5}\n cols={30}\n className={classNames(styles.fieldTextarea, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationFieldFixedFilter\"\n ),\n })}\n />\n {/* \n <SolidInput\n type=\"text\"\n id=\"relationFieldFixedFilter\"\n name=\"relationFieldFixedFilter\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationFieldFixedFilter}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationFieldFixedFilter\"\n ),\n })}\n /> */}\n {isFormFieldValid(formik, \"relationFieldFixedFilter\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationFieldFixedFilter?.toString()}</p>\n )}\n <p className=\"fieldSubTitle\">Many to one fields are rendered as autocomplete dropdown on the SolidX ui. Use the fixed filter to load a pre-filtered set of records from the co-model. Please note user input entered in the autocomplete is used to apply a dynamic filter.</p>\n\n </div>\n )}\n\n {currentFields.includes(\"relationCreateInverse\") && (\n <div className=\"field col-12 md:col-6 flex flex-column gap-2 mt-2\">\n <label htmlFor=\"relationCreateInverse\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Relation Create Inverse\n </label>\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n id=\"relationCreateInverse\"\n name=\"relationCreateInverse\"\n checked={formik.values.relationCreateInverse}\n disabled={formik.values.relationType === \"one-to-many\"}\n onChange={(event) => formik.setFieldValue(\"relationCreateInverse\", event.currentTarget.checked)}\n />\n <label htmlFor=\"relationCreateInverse\" className={classNames(\"ml-2\", \"form-field-label\", styles.fieldLabel)}>Create Inverse</label>\n </div>\n {isFormFieldValid(formik, \"relationCreateInverse\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCreateInverse?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"relationCoModelFieldName\") && formik.values.relationCreateInverse && !formik.values.relationCoModelSingularName && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <SolidMessage text=\"Please select Co-model\" />\n </div>\n )}\n {currentFields.includes(\"relationCoModelFieldName\") && formik.values.relationCreateInverse && formik.values.relationCoModelSingularName && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"relationCoModelFieldName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Field Name In {formik.values.relationCoModelSingularName} Model\n </label>\n <SolidInput\n type=\"text\"\n id=\"relationCoModelFieldName\"\n name=\"relationCoModelFieldName\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationCoModelFieldName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationCoModelFieldName\"\n ),\n })}\n />\n {formik.values.relationType === \"one-to-many\" &&\n <p className=\"fieldSubTitle\">This is a field that is created in the child model. In this case a <span style={{ fontWeight: \"700\" }}>{formik.values.relationCoModelFieldName ?? formik.values.relationCoModelSingularName}</span> field will be created in the {formik.values.relationCoModelSingularName} when setting create inverse true.</p>\n }\n {formik.values.relationType === \"many-to-one\" &&\n <p className=\"fieldSubTitle\">This is a field that is created in the parent model. In this case a <span style={{ fontWeight: \"700\" }}>{formik.values.relationCoModelFieldName ?? `${formik.values.relationCoModelSingularName}s`}</span> field will be created in the {formik.values.relationCoModelSingularName} when setting create inverse true.</p>\n }\n {formik.values.relationType === \"many-to-many\" &&\n <p className=\"fieldSubTitle\">In this case a {formik.values.relationCoModelFieldName} field will be created in the <span style={{ fontWeight: \"700\" }}>{formik.values.relationCoModelSingularName ?? '{{}}'}</span> when setting create inverse true.</p>\n }\n {isFormFieldValid(formik, \"relationCoModelFieldName\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCoModelFieldName?.toString()}</p>\n )}\n </div>\n )}\n\n {/* {currentFields.includes(\"joinColumnName\") && formik.values.relationType === \"many-to-many\" && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"joinColumnName\"\n className=\"form-field-label\"\n >\n Join Column Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"joinColumnName\"\n name=\"joinColumnName\"\n onChange={formik.handleChange}\n value={formik.values.joinColumnName}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"joinColumnName\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"joinColumnName\") && (\n <SolidMessage\n severity=\"error\"\n text={formik?.errors?.joinColumnName?.toString()}\n />\n )}\n\n </div>\n )} */}\n\n\n\n {currentFields.includes(\"relationJoinTableName\") && formik.values.relationType === \"many-to-many\" && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"relationJoinTableName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Join Table Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"relationJoinTableName\"\n name=\"relationJoinTableName\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationJoinTableName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationJoinTableName\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"relationJoinTableName\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationJoinTableName?.toString()}</p>\n )}\n\n </div>\n )}\n\n {currentFields.includes(\"selectionDynamicProvider\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"selectionDynamicProvider\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Selection Dynamic Provider\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"selectionDynamicProvider\"\n ),\n })}>\n <SolidAutocomplete\n value={selectionDynamicProviderField.selectedItem}\n suggestions={selectionDynamicProviderField.filteredItems}\n completeMethod={selectionDynamicProviderField.searchItems}\n onChange={selectionDynamicProviderField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n\n\n {/* <SolidAutocomplete\n value={selectionDynamicProvider}\n suggestions={filteredSelectionDynamicProvider}\n invalid={isFormFieldValid(\n formik,\n \"selectionDynamicProvider\"\n )}\n completeMethod={searchSelectionDynamicProvider}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectionDynamicProvider(e.value);\n formik.setFieldValue(\n \"selectionDynamicProvider\",\n e.value.value\n );\n }}\n /> */}\n\n {isFormFieldValid(\n formik,\n \"selectionDynamicProvider\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionDynamicProvider?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"selectionValueType\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"selectionValueType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Select Value Type\n </label>\n <SolidSelect\n value={formik.values.selectionValueType}\n options={selctionValueTypes}\n optionLabel=\"label\"\n optionValue=\"value\"\n onChange={({ value }) =>\n formik.setFieldValue(\n \"selectionValueType\",\n value\n )\n }\n placeholder=\"Select Value Type\"\n className={classNames(\"w-full\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"selectionValueType\"\n ),\n })}\n />\n {isFormFieldValid(\n formik,\n \"selectionValueType\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionValueType?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"selectionStaticValues\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"selectionStaticValues\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Selection Static Values\n </label>\n {/* <SolidTextarea\n value={selectionStaticValues}\n placeholder=\"male:Male\"\n onChange={(e) => {\n const data = e.target.value\n .split(\"\\n\")\n .filter((line) => line.trim() !== \"\");\n\n setSelectionStaticValues(e.target.value);\n formik.setFieldValue(\n \"selectionStaticValues\",\n data\n );\n }}\n rows={5}\n cols={30}\n /> */}\n {formik.values.selectionStaticValues.map((enumValue: string, index: number) => (\n <SelectionStaticValues\n key={index}\n enumValue={enumValue}\n onUpdate={(updatedString: any) => updateEnumValues(index, updatedString)}\n onDelete={() => deleteEnumValue(index)}\n onAdd={addEnumValue}\n />\n ))\n }\n {isFormFieldValid(\n formik,\n \"selectionStaticValues\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionStaticValues?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"computedFieldValueType\") && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"computedFieldValueType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Computed Field Value Type\n </label>\n <SolidAutocomplete\n value={selectedComputedFieldValueType}\n suggestions={filteredComputedFieldValueTypes}\n completeMethod={searchComputedFieldValueType}\n field=\"label\"\n dropdown\n className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"computedFieldValueType\"),\n })}\n onChange={(e) => {\n setSelectedComputedFieldValueType(e.value);\n formik.setFieldValue(\"computedFieldValueType\", e.value.value);\n }}\n />\n\n {/* <Dropdown\n id=\"mediaTypes\"\n name=\"mediaTypes\"\n value={formik.values.mediaTypes}\n options={fieldDefaultMetaData.data.mediaTypes}\n onChange={(e) =>\n formik.setFieldValue(\"mediaTypes\", e.value)\n }\n placeholder=\"Select a Data Source\"\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaTypes\"\n ),\n })}\n /> */}\n {isFormFieldValid(formik, \"computedFieldValueType\") && (\n <p className={styles.fieldError}>{formik?.errors?.computedFieldValueType?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\n \"computedFieldValueProvider\"\n ) && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"computedFieldValueProvider\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Computed Field Provider\n </label>\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"computedFieldValueProvider\"\n ),\n })}>\n <SolidAutocomplete\n value={computedFieldValueProviderField.selectedItem}\n suggestions={computedFieldValueProviderField.filteredItems}\n completeMethod={computedFieldValueProviderField.searchItems}\n onChange={computedFieldValueProviderField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(\n formik,\n \"computedFieldValueProvider\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.computedFieldValueProvider?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\n \"computedFieldTriggerConfig\"\n ) && (\n <div className=\"field col-12 flex-flex-column gap-2 mt-2\">\n {fieldMetaData?.computedFieldTriggerConfig === null\n &&\n <div className=\"mb-3\">\n <SolidMessage severity=\"error\" text={`You seem to be using an old configuration of ComputedFieldProvider. Please change your current computed field provider i.e ${fieldMetaData?.computedFieldValueProvider} to implement IEntityComputedFieldProvider before continuing.`} />\n </div>\n }\n <div className=\"flex align-items-center gap-2\">\n <label\n htmlFor=\"computedFieldTriggerConfig\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Computed Field Trigger Config\n </label>\n <div>\n <SolidButton\n icon=\"si si-plus\"\n size=\"small\"\n onClick={handleAdd}\n type=\"button\"\n className=\"ml-2\"\n />\n </div>\n </div>\n {\n formik.values.computedFieldTriggerConfig.map((row: any, index: number) => (\n <SelectComputedFieldTriggerValues\n key={index}\n index={index}\n row={row}\n onChange={handleChange}\n onDelete={handleDelete}\n isLastRow={index === formik.values.computedFieldTriggerConfig.length - 1}\n disableDelete={formik.values.computedFieldTriggerConfig.length === 1}\n formik={formik}\n isFormFieldValid={isFormFieldValid}\n searchModuleName={searchModuleName}\n searchModelName={computedFieldSearchHandlers[index]}\n modelMetaData={modelMetaData}\n errors={formik.errors.computedFieldTriggerConfig?.[index]}\n />\n ))}\n {typeof formik.errors.computedFieldTriggerConfig === 'string' && (\n <p className={styles.fieldError}>{formik.errors.computedFieldTriggerConfig}</p>\n )}\n </div>\n )}\n {/* {currentFields.includes(\"externalIdProvider\") && (\n <div className=\"md:col-6 sm:col-12\">\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label\n htmlFor=\"externalIdProvider\"\n className=\"form-field-label\"\n >\n External Id Provider\n </label>\n <SolidAutocomplete\n key=\"externalIdProvider\"\n value={formik.values.externalIdProvider}\n suggestions={[]}\n />\n \n\n {isFormFieldValid(\n formik,\n \"externalIdProvider\"\n ) && (\n <SolidMessage\n severity=\"error\"\n text={formik?.errors?.externalIdProvider?.toString()}\n />\n )}\n </div>\n </div>\n )} */}\n\n {currentFields.includes(\"selectionDynamicProviderCtxt\") && (\n <div className=\"field col-12 flex-flex-column gap-2 mt-4\">\n <label htmlFor=\"selectionDynamicProviderCtxt\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Selection Dynamic Provider Context\n </label>\n <SolidCodeEditor\n value={formik.values.selectionDynamicProviderCtxt ?? \"\"}\n onChange={(value) => {\n formik.setFieldValue(\"selectionDynamicProviderCtxt\", value ?? \"\");\n }}\n language=\"json\"\n height=\"300px\"\n />\n <div className=\" form-field-label mt-2\">{markdownText}</div>\n\n {isFormFieldValid(\n formik,\n \"selectionDynamicProviderCtxt\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionDynamicProviderCtxt?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"computedFieldValueProviderCtxt\") && (\n <div className=\"field col-12 flex-flex-column gap-2 mt-4\">\n <label htmlFor=\"computedFieldValueProviderCtxt\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Computed Field Value Provider Context\n </label>\n <SolidCodeEditor\n value={formik.values.computedFieldValueProviderCtxt ?? \"\"}\n onChange={(value) => {\n formik.setFieldValue(\"computedFieldValueProviderCtxt\", value ?? \"\");\n }}\n language=\"json\"\n height=\"300px\"\n />\n <div className=\"form-field-label mt-4\">{markdownText}</div>\n\n {isFormFieldValid(\n formik,\n \"computedFieldValueProviderCtxt\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.computedFieldValueProviderCtxt?.toString()}</p>\n )}\n </div>\n )}\n\n {/* {currentFields.includes(\"externalIdProviderCtxt\") && (\n <div className=\"md:col-12 sm:col-12\">\n\n <div className=\"formgrid grid\">\n {markdownText &&\n <div className=\"md:col-12 sm:col-12\">\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label htmlFor=\"name\" className=\"form-field-label\">\n Markdown\n </label>\n <MarkdownViewer data={markdownText}></MarkdownViewer>\n </div>\n </div>\n }\n <div className=\"md:col-12 sm:col-12\">\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label htmlFor=\"name\" className=\"form-field-label\">\n External Id Provider Context\n </label>\n <SolidCodeEditor\n value={formik.values.externalIdProviderCtxt ?? \"\"}\n onChange={(value) => {\n formik.setFieldValue(\"externalIdProviderCtxt\", value ?? \"\");\n }}\n language=\"json\"\n height=\"300px\"\n />\n {isFormFieldValid(\n formik,\n \"externalIdProviderCtxt\"\n ) && (\n <SolidMessage\n severity=\"error\"\n text={formik?.errors?.externalIdProviderCtxt?.toString()}\n />\n )}\n </div>\n </div>\n\n </div>\n </div>\n )} */}\n\n </div>\n )}\n {showValidationSection && (\n <>\n <p className=\"form-wrapper-heading\">Validations</p>\n <div className=\"formgrid grid\">\n {(showRegexFields && selectedTypeValue === \"password\") &&\n <>\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"regexPattern\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Password Policy\n </label>\n <SolidSelect\n value={selectedPasswordPolicy}\n options={passwordPolicyOptions}\n optionLabel=\"label\"\n optionValue=\"value\"\n onChange={({ value }) => {\n setSelectedPasswordPolicy(value);\n if (value !== \"custom\") {\n formik.setFieldValue(\"regexPattern\", value);\n }\n }}\n placeholder=\"Select a Password Policy\"\n className=\"w-full\"\n />\n\n </div>\n </>\n }\n {showRegexFields && (\n <>\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label\n htmlFor=\"regexPattern\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Regex Pattern\n </label>\n <SolidInput\n type=\"text\"\n id=\"regexPattern\"\n name=\"regexPattern\"\n onChange={formik.handleChange}\n value={formik.values.regexPattern}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"regexPattern\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"regexPattern\") && (\n <p className={styles.fieldError}>{formik?.errors?.regexPattern?.toString()}</p>\n )}\n </div>\n {showRegexFields && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2 mb-3 md:mb-3\">\n <label\n htmlFor=\"regexPatternNotMatchingErrorMsg\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Regex Pattern Not Matching Error Msg\n </label>\n <SolidInput\n type=\"text\"\n id=\"regexPatternNotMatchingErrorMsg\"\n name=\"regexPatternNotMatchingErrorMsg\"\n onChange={formik.handleChange}\n value={formik.values.regexPatternNotMatchingErrorMsg}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"regexPatternNotMatchingErrorMsg\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"regexPatternNotMatchingErrorMsg\") && (\n <p className={styles.fieldError}>{formik?.errors?.regexPatternNotMatchingErrorMsg?.toString()}</p>\n )}\n </div>\n )}\n </>\n\n )}\n {(showMinFields || showMaxFields) &&\n <>\n {showMinFields && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label htmlFor=\"min\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Min {(selectedTypeValue !== \"int\" && selectedTypeValue !== \"decimal\") && `(Characters Allowed)`}\n\n </label>\n {/* <SolidInput\n type=\"text\"\n id=\"min\"\n name=\"min\"\n onChange={formik.handleChange}\n value={formik.values.min}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"min\"),\n })}\n /> */}\n {/* <RenderMinValueInput></RenderMinValueInput> */}\n\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"min\"\n name=\"min\"\n step=\"0.00001\"\n value={formik.values.min}\n onChange={(event) => formik.setFieldValue(\"min\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"min\"\n ),\n })}\n disabled={fieldMetaData?.id}\n />\n </div>\n {isFormFieldValid(formik, \"min\") && (\n <p className={styles.fieldError}>{formik?.errors?.min?.toString()}</p>\n )}\n </div>\n )}\n {showMaxFields && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label htmlFor=\"max\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Max {(selectedTypeValue !== \"int\" &&\n selectedTypeValue !== \"decimal\") && `(Characters allowed)`}\n </label>\n {/* <SolidInput\n type=\"text\"\n id=\"max\"\n name=\"max\"\n onChange={formik.handleChange}\n value={formik.values.max}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"max\"),\n })}\n /> */}\n\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"max\"\n name=\"max\"\n step=\"0.00001\"\n value={formik.values.max}\n onChange={(event) => formik.setFieldValue(\"max\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"max\"\n ),\n })}\n disabled={fieldMetaData?.id}\n />\n </div>\n\n\n {isFormFieldValid(formik, \"max\") && (\n <p className={styles.fieldError}>{formik?.errors?.max?.toString()}</p>\n )}\n </div>\n )}\n </>\n }\n {showOrmOptions && (\n <div className=\"field col-12 md:col-6 flex-flex-column gap-2 mt-2\">\n <label htmlFor=\"ormType\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Type\n </label>\n\n <SolidRadioGroup\n name=\"ormType\"\n value={selectedOrmType}\n onChange={(value) => {\n formik.setFieldValue(\"ormType\", value);\n setSelectedOrmType(value);\n }}\n options={(ormTypeOptions || []).map((ormType: any) => ({\n value: ormType.label,\n label: (\n <span className={classNames(\"ml-2\", \"form-field-label\")}>\n {ormType.label}\n <br />\n <span className=\"fieldSubTitle mt-0\">{`(${ormType.description})`}</span>\n </span>\n ),\n }))}\n className=\"ormTypeflex\"\n itemClassName=\"mr-3 align-items-center\"\n />\n\n {isFormFieldValid(formik, \"ormType\") && (\n <p className={styles.fieldError}>{formik?.errors?.ormType?.toString()}</p>\n )}\n </div>\n )}\n </div>\n </>\n )}\n\n {(formik.values.relationType !== \"many-to-many\" && formik.values.relationType !== \"one-to-many\") && <p className=\"form-wrapper-heading\">Settings</p>}\n <div className=\"formgrid grid mt-1 md:mt-0\">\n {currentFields.includes(\"required\") && (formik.values.relationType !== \"many-to-many\" && formik.values.relationType !== \"one-to-many\") && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n id=\"required\"\n name=\"required\"\n onChange={(event) => {\n if (!formik.values.isPrimaryKey && !formik.values.unique) {\n formik.setFieldValue(\"required\", event.currentTarget.checked);\n }\n }}\n checked={formik.values.required}\n disabled={formik.values.isPrimaryKey || formik.values.unique}\n />\n <label htmlFor=\"required\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Required {formik.values.isPrimaryKey && \"(Auto-enabled for Primary Key)\"}\n {!formik.values.isPrimaryKey && formik.values.unique && \"(Auto-enabled for Unique)\"}\n </label>\n </div>\n <p className=\"text-xs mt-2\">You won't be able to create an entry if this field is empty</p>\n\n {isFormFieldValid(formik, \"required\") && (\n <p className={styles.fieldError}>{formik?.errors?.required?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"unique\") && selectedTypeValue !== 'relation' && (\n <div className=\"field col-6 flex-flex-column gap-2\">\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n id=\"unique\"\n name=\"unique\"\n onChange={(event) => {\n // Prevent unchecking if isPrimaryKey is true\n if (!formik.values.isPrimaryKey) {\n const nextValue = event.currentTarget.checked;\n formik.setFieldValue(\"unique\", nextValue);\n formik.setFieldValue(\"isUserKey\", false);\n // Auto-enable required when unique is checked\n if (nextValue) {\n formik.setFieldValue(\"required\", true);\n } else {\n formik.setFieldValue(\"required\", false);\n }\n }\n }}\n checked={formik.values.unique}\n disabled={formik.values.isPrimaryKey}\n />\n <label htmlFor=\"unique\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Unique {formik.values.isPrimaryKey && \"(Auto-enabled for Primary Key)\"}\n </label>\n </div>\n <p className=\"text-xs mt-2\">You won't be able to create an entry if there is an existing entry with identical content</p>\n\n {isFormFieldValid(formik, \"unique\") && (\n <p className={styles.fieldError}>{formik?.errors?.unique?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"index\") && selectedTypeValue !== 'relation' && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n id=\"index\"\n name=\"index\"\n onChange={(event) => {\n formik.setFieldValue(\"index\", event.currentTarget.checked);\n }}\n checked={formik.values.index}\n />\n <label htmlFor=\"index\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Index\n </label>\n </div>\n {isFormFieldValid(formik, \"index\") && (\n <p className={styles.fieldError}>{formik?.errors?.index?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"private\") && selectedTypeValue !== 'relation' && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n id=\"private\"\n name=\"private\"\n onChange={(event) => {\n formik.setFieldValue(\"private\", event.currentTarget.checked);\n }}\n checked={formik.values.private}\n />\n <label htmlFor=\"private\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Private\n </label>\n </div>\n <p className=\"text-xs mt-2\">This field will not show up in the API response</p>\n\n\n {isFormFieldValid(formik, \"private\") && (\n <p className={styles.fieldError}>{formik?.errors?.private?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"encrypt\") && selectedTypeValue !== 'relation' && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center gap-2\">\n <SolidCheckbox\n id=\"encrypt\"\n name=\"encrypt\"\n onChange={(event) => {\n formik.setFieldValue(\"encrypt\", event.currentTarget.checked);\n setEncryptState(event.currentTarget.checked);\n }}\n checked={formik.values.encrypt}\n />\n <label htmlFor=\"encrypt\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Encrypt\n </label>\n </div>\n {isFormFieldValid(formik, \"encrypt\") && (\n <p className={styles.fieldError}>{formik?.errors?.encrypt?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"isMultiSelect\") && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n id=\"isMultiSelect\"\n name=\"isMultiSelect\"\n onChange={(event) => {\n formik.setFieldValue(\"isMultiSelect\", event.currentTarget.checked);\n }}\n checked={formik.values.isMultiSelect}\n />\n <label htmlFor=\"isMultiSelect\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Is MultiSelect\n </label>\n </div>\n {isFormFieldValid(formik, \"isMultiSelect\") && (\n <p className={styles.fieldError}>{formik?.errors?.isMultiSelect?.toString()}</p>\n )}\n </div>\n )}\n {/* {currentFields.includes(\"isSystem\") && (\n <div className=\"md:col-6 sm:col-12\">\n <div className=\"field\">\n <div className=\"flex align-items-center\">\n <SolidCheckbox\n name=\"isSystem\"\n onChange={(event) => {\n formik.setFieldValue(\"isSystem\", event.currentTarget.checked);\n }}\n checked={formik.values.isSystem}\n />\n <label htmlFor=\"ingredient1\" className=\"form-field-label\">\n isSystem\n </label>\n </div>\n {isFormFieldValid(formik, \"isSystem\") && (\n <SolidMessage\n severity=\"error\"\n text={formik?.errors?.isSystem?.toString()}\n />\n )}\n </div>\n </div>\n )} */}\n {currentFields.includes(\"enableAuditTracking\") && formik.values.relationType !== \"one-to-many\" && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center gap-2\">\n <SolidCheckbox\n id=\"enableAuditTracking\"\n name=\"enableAuditTracking\"\n onChange={(event) => {\n formik.setFieldValue(\"enableAuditTracking\", event.currentTarget.checked);\n }}\n checked={formik.values.enableAuditTracking}\n />\n <label htmlFor=\"enableAuditTracking\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Enable Audit Tracking\n </label>\n </div>\n <p className=\"fieldSubTitle\">By selecting this option, you are setting audit trail for this field.</p>\n\n {isFormFieldValid(formik, \"enableAuditTracking\") && (\n <p className={styles.fieldError}>{formik?.errors?.enableAuditTracking?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"isUserKey\") && formik.values.unique && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center gap-2\">\n <SolidCheckbox\n id=\"isUserKey\"\n name=\"isUserKey\"\n onChange={(event) => {\n formik.setFieldValue(\"isUserKey\", event.currentTarget.checked);\n }}\n checked={formik.values.isUserKey}\n />\n <label htmlFor=\"isUserKey\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Is Userkey\n </label>\n </div>\n <p className=\"fieldSubTitle\">By selecting this option, you are setting this field as the model's user key. Any existing user key configuration will be overwritten</p>\n\n {isFormFieldValid(formik, \"isUserKey\") && (\n <p className={styles.fieldError}>{formik?.errors?.isUserKey?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"isPrimaryKey\") && (modelMetaData?.isLegacyTable || modelMetaData?.isLegacyTableWithId) && (\n <div className=\"field col-6 flex-flex-column gap-2 mt-2\">\n <div className=\"flex align-items-center gap-2\">\n <SolidCheckbox\n id=\"isPrimaryKey\"\n name=\"isPrimaryKey\"\n onChange={(event) => {\n const checked = event.currentTarget.checked;\n formik.setFieldValue(\"isPrimaryKey\", checked);\n // Auto-set required and unique when isPrimaryKey is checked\n if (checked) {\n formik.setFieldValue(\"required\", true);\n formik.setFieldValue(\"unique\", true);\n }\n }}\n checked={formik.values.isPrimaryKey}\n />\n <label htmlFor=\"isPrimaryKey\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Is Primary Key\n </label>\n </div>\n <p className=\"fieldSubTitle\">By selecting this option, you are setting this field as the primary key for this legacy table.</p>\n\n {isFormFieldValid(formik, \"isPrimaryKey\") && (\n <p className={styles.fieldError}>{formik?.errors?.isPrimaryKey?.toString()}</p>\n )}\n </div>\n )}\n </div>\n\n\n {formik.values.encrypt === true && (\n <div className=\"formgrid grid mt-2\">\n <div className=\"md:col-6 sm:col-12\">\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label\n htmlFor=\"encryptionType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Encryption Type\n </label>\n {/* <SolidAutocomplete\n value={selectedEncryptionType}\n suggestions={filteredSelectionEncryptionType}\n invalid={isFormFieldValid(\n formik,\n \"encryptionType\"\n )}\n completeMethod={searchSelectionEncryptionType}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectedEncryptionType(e.value);\n formik.setFieldValue(\"encryptionType\", e.value.value);\n }}\n /> */}\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"encryptionType\"),\n })}>\n <SolidAutocomplete\n value={encryptionTypeField.selectedItem}\n suggestions={encryptionTypeField.filteredItems}\n completeMethod={encryptionTypeField.searchItems}\n onChange={encryptionTypeField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"encryptionType\") && (\n <p className={styles.fieldError}>{formik?.errors?.encryptionType?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"md:col-6 sm:col-12\">\n <div className=\"field col-6 flex-flex-column gap-2\">\n <label htmlFor=\"decryptWhen\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Decrypt When\n </label>\n {/* <SolidAutocomplete\n value={selectedDecryptWhen}\n suggestions={filteredSelectionDecryptWhen}\n invalid={isFormFieldValid(formik, \"decryptWhen\")}\n completeMethod={searchSelectionDecryptWhen}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectedeDecryptWhen(e.value);\n formik.setFieldValue(\"decryptWhen\", e.value.value);\n }}\n /> */}\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"decryptWhen\"),\n })}>\n <SolidAutocomplete\n value={decryptWhenField.selectedItem}\n suggestions={decryptWhenField.filteredItems}\n completeMethod={decryptWhenField.searchItems}\n onChange={decryptWhenField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"decryptWhen\") && (\n <p className={styles.fieldError}>{formik?.errors?.decryptWhen?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n )}\n </TabPanel>\n </TabView>\n <div className=\"flex gap-3 mt-3\">\n <div>\n <SolidButton label=\"Finish\" size=\"small\" onClick={() => showError()} type=\"submit\" />\n </div>\n <div>\n <SolidButton label=\"Cancel\" size=\"small\" severity=\"secondary\" type=\"reset\" onClick={() => setVisiblePopup(false)} outlined />\n </div>\n </div>\n </div>\n {/* <div className=\"ml-4\">\n <SolidButton\n label=\"Save\"\n onClick={() => showError(formik.validateForm)}\n type=\"submit\"\n />\n </div> */}\n </div>\n </div>\n }\n\n </form>\n </div >\n <SolidDialog\n open={isBackPopupVisible}\n onOpenChange={(next) => {\n if (!next) {\n setIsBackPopupVisible(false);\n }\n }}\n dismissible={false}\n header=\"Unsaved Changes\"\n headerClassName=\"solid-field-confirm-header\"\n modal\n className=\"solid-confirm-dialog solid-field-confirm-dialog\"\n footer={\n <div className=\"solid-field-confirm-actions\">\n <SolidButton\n label=\"Yes\"\n icon=\"si si-check\"\n size=\"small\"\n type=\"reset\"\n severity=\"danger\"\n autoFocus\n onClick={() => {\n resetFormStateForTypeSelection();\n setIsBackPopupVisible(false);\n setShowTypeFilter(true);\n }}\n />\n <SolidButton label=\"No\" icon=\"si si-times\" size=\"small\" onClick={() => setIsBackPopupVisible(false)} />\n </div>\n }\n >\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">\n You have unsaved changes. Are you sure you want to go back?\n </p>\n </SolidDialogBody>\n </SolidDialog>\n </div >\n );\n};\n\n\nexport default FieldMetaDataForm;\n"]}
|
|
1
|
+
{"version":3,"file":"FieldMetaDataForm.js","sourceRoot":"","sources":["../../../../src/components/core/model/FieldMetaDataForm.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { getSingularAndPlural } from \"../../../helpers/helpers\";\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useLazyGetMediaStorageProvidersQuery } from \"../../../redux/api/mediaStorageProviderApi\";\nimport { useLazyGetModelsQuery, useUpdateUserKeyMutation } from \"../../../redux/api/modelApi\";\nimport { useLazyGetmodulesQuery } from \"../../../redux/api/moduleApi\";\nimport { useFormik } from \"formik\";\nimport { capitalize } from \"lodash\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport qs from \"qs\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport FieldSelector from \"./FieldSelector\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidCheckbox,\n SolidDatePicker,\n SolidDialog,\n SolidDialogBody,\n SolidInput,\n SolidTextarea,\n SolidNumberInput,\n SolidSelect,\n SolidSegmentedControl,\n SolidRadioGroup,\n SolidTabGroup,\n SolidMessage,\n SolidCodeEditor,\n} from \"../../shad-cn-ui\";\nimport styles from \"../form/fields/solidFields.module.css\";\n\n\n\nenum SolidFieldType {\n // numeric types\n int = 'int',\n bigint = 'bigint',\n float = 'float',\n // double = 'double',\n decimal = 'decimal',\n\n // text types\n shortText = 'shortText',\n longtext = 'longText',\n richText = 'richText',\n json = 'json',\n\n // boolean types\n boolean = 'boolean',\n\n // date\n date = 'date',\n datetime = 'datetime',\n time = 'time',\n\n // relation\n relation = 'relation',\n\n // media\n mediaSingle = 'mediaSingle',\n mediaMultiple = 'mediaMultiple',\n\n email = 'email',\n password = 'password',\n\n // selection\n selectionStatic = 'selectionStatic',\n selectionDynamic = 'selectionDynamic',\n\n computed = 'computed',\n\n uuid = 'uuid'\n}\n\ntype ClassNamesArg = string | Record<string, boolean> | undefined | null | false;\n\nfunction classNames(...args: ClassNamesArg[]) {\n const classes: string[] = [];\n args.forEach((arg) => {\n if (!arg) {\n return;\n }\n if (typeof arg === \"string\") {\n if (arg.trim()) {\n classes.push(arg);\n }\n return;\n }\n Object.entries(arg).forEach(([key, value]) => {\n if (value) {\n classes.push(key);\n }\n });\n });\n return classes.join(\" \");\n}\n\nfunction createSimpleAutocompleteValue(value: any | undefined | null) {\n if (!value) return null;\n if (typeof value === \"object\") return value;\n return { label: value, value };\n}\n\nfunction createRelationAutocompleteValue(value: any | undefined | null, labelKey: string, valueKey: string = labelKey) {\n if (!value) return null;\n if (typeof value === \"object\") return value;\n return { [labelKey]: value, [valueKey]: value };\n}\n\ntype LocalTabPanelProps = {\n header: string;\n className?: string;\n children: React.ReactNode;\n};\n\ntype LocalTabViewProps = {\n children: React.ReactNode;\n panelContainerClassName?: string;\n};\n\nfunction TabPanel(_props: LocalTabPanelProps) {\n return null;\n}\n\nfunction TabView({ children, panelContainerClassName }: LocalTabViewProps) {\n const panels = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LocalTabPanelProps> =>\n React.isValidElement(child) && child.type === TabPanel\n );\n const firstValue = panels[0]?.props.header ?? \"\";\n const [activeValue, setActiveValue] = React.useState(firstValue);\n\n React.useEffect(() => {\n if (!panels.some((panel) => panel.props.header === activeValue)) {\n setActiveValue(panels[0]?.props.header ?? \"\");\n }\n }, [panels, activeValue]);\n\n if (panels.length === 0) {\n return null;\n }\n\n const tabs = panels.map((panel) => ({\n value: panel.props.header,\n label: panel.props.header,\n hasError: panel.props.className?.includes(\"tab-error-heading\"),\n content: (\n <div className={panel.props.className}>\n {panel.props.children}\n </div>\n ),\n }));\n\n return (\n <SolidTabGroup\n tabs={tabs}\n value={activeValue}\n onValueChange={setActiveValue}\n panelClassName={panelContainerClassName}\n />\n );\n}\n\nconst SelectionStaticValues = ({ enumValue, onUpdate, onDelete, onAdd }: any) => {\n const [value, display] = enumValue.split(\":\");\n\n const handleValueChange = (newValue: string) => {\n onUpdate(`${newValue}:${display || \"\"}`);\n };\n\n const handleDisplayChange = (newDisplay: string) => {\n onUpdate(`${value || \"\"}:${newDisplay}`);\n };\n\n return (\n <div className=\"mt-2 flex items-center gap-2\">\n\n {/* Input field for Value */}\n <SolidInput\n value={value || \"\"}\n onChange={(e) => handleValueChange(e.target.value)}\n placeholder=\"Value\"\n className=\"w-full\"\n />\n\n {/* Input field for Display */}\n <SolidInput\n value={display || \"\"}\n onChange={(e) => handleDisplayChange(e.target.value)}\n placeholder=\"Display\"\n className=\"w-full\"\n />\n\n\n\n {/* Plus Button to add a new row */}\n <SolidButton\n icon=\"si si-plus\"\n size=\"small\"\n onClick={onAdd}\n type=\"button\"\n />\n\n {/* Trash Button to delete the row */}\n <SolidButton\n icon=\"si si-trash\"\n size=\"small\"\n onClick={onDelete}\n outlined\n severity=\"danger\"\n type=\"button\"\n />\n </div>\n );\n\n}\n\ninterface SelectComputedFieldTriggerValuesProps {\n index: number;\n row: {\n moduleName: string;\n modelName: string;\n operations: string[];\n };\n onChange: (index: number, updatedRow: any) => void;\n onDelete: (index: number) => void;\n isLastRow: boolean;\n disableDelete: boolean;\n formik: any;\n isFormFieldValid: (formik: any, field: string) => boolean;\n searchModuleName: (event: any) => Promise<any[]>;\n searchModelName: (event: any) => Promise<any[]>;\n modelMetaData?: any,\n errors?: any,\n touched?: any,\n}\n\nconst triggerOperationOptions = [\n { label: \"beforeInsert\", value: \"before-insert\" },\n { label: \"afterInsert\", value: \"after-insert\" },\n { label: \"beforeUpdate\", value: \"before-update\" },\n { label: \"afterUpdate\", value: \"after-update\" },\n { label: \"beforeRemove\", value: \"before-delete\" },\n { label: \"afterRemove\", value: \"after-delete\" },\n];\n\nconst formatDisplayName = (value: string): string => {\n return value\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n};\n\n\nconst SelectComputedFieldTriggerValues: React.FC<SelectComputedFieldTriggerValuesProps> = ({\n index,\n row,\n onChange,\n onDelete,\n disableDelete,\n formik,\n isFormFieldValid,\n searchModuleName,\n searchModelName,\n modelMetaData,\n errors,\n touched,\n}: any) => {\n const [filteredOperations, setFilteredOperations] = useState<{ label: string; value: string }[]>([]);\n\n useEffect(() => {\n if (!row.moduleName && modelMetaData?.module?.name) {\n formik.setFieldValue(`computedFieldTriggerConfig[${index}].moduleName`, modelMetaData?.module?.name);\n }\n if (!row.modelName && modelMetaData?.singularName) {\n formik.setFieldValue(`computedFieldTriggerConfig[${index}].modelName`, modelMetaData?.singularName);\n }\n }, [modelMetaData?.module?.name, modelMetaData?.singularName]);\n\n const searchOperations = (event: any) => {\n const query = event.query.toLowerCase();\n setFilteredOperations(\n triggerOperationOptions.filter((item) =>\n item.label.toLowerCase().includes(query)\n )\n );\n };\n\n const triggerModuleField = useSolidAutocompleteField({\n formik,\n fieldName: `computedFieldTriggerConfig[${index}].moduleName`,\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"name\",\n searchData: searchModuleName,\n existingData: row.moduleName\n ? {\n name: row.moduleName,\n displayName: row.displayName || formatDisplayName(row.moduleName),\n }\n : modelMetaData?.module?.name\n ? {\n name: modelMetaData.module.name,\n displayName: modelMetaData.module.displayName || formatDisplayName(modelMetaData.module.name),\n }\n : null,\n relationField: true,\n });\n\n const triggerModelField = useSolidAutocompleteField({\n formik,\n fieldName: `computedFieldTriggerConfig[${index}].modelName`,\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"singularName\",\n searchData: searchModelName,\n existingData: row.modelName\n ? {\n singularName: row.modelName,\n displayName: row.displayName || formatDisplayName(row.modelName),\n }\n : modelMetaData?.singularName\n ? {\n singularName: modelMetaData?.singularName,\n displayName: modelMetaData?.displayName || formatDisplayName(modelMetaData.displayName),\n }\n : null,\n relationField: true,\n });\n\n return (\n <div className=\"mt-2 flex flex-wrap items-center gap-4 md:flex-nowrap\">\n\n <div className=\"\">\n <label\n htmlFor=\"moduleName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Module\n </label>\n <div className={classNames(\"mt-2 solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: Boolean(errors?.moduleName),\n })}>\n <SolidAutocomplete\n value={triggerModuleField.selectedItem}\n suggestions={triggerModuleField.filteredItems}\n completeMethod={triggerModuleField.searchItems}\n onChange={triggerModuleField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n {errors?.moduleName && (\n <p className={styles.fieldError}>{errors.moduleName}</p>\n )}\n </div>\n\n <div className=\"\">\n <label\n htmlFor=\"modelName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Model\n </label>\n <div className={classNames(\"mt-2 solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: Boolean(errors?.modelName),\n })}>\n <SolidAutocomplete\n value={triggerModelField.selectedItem}\n suggestions={triggerModelField.filteredItems}\n completeMethod={triggerModelField.searchItems}\n onChange={triggerModelField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n {errors?.modelName && (\n <p className={styles.fieldError}>{errors.modelName}</p>\n )}\n </div>\n\n\n {/* operations */}\n <div>\n <label\n htmlFor=\"operations\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Operations\n </label>\n <div className=\"mt-2\">\n <SolidAutocomplete\n multiple\n dropdown\n value={triggerOperationOptions.filter(opt => (row.operations || []).includes(opt.value))}\n suggestions={filteredOperations}\n completeMethod={searchOperations}\n field=\"label\"\n onChange={(e) =>\n onChange(index, {\n ...row,\n operations: (e.value || []).map((val: any) => val.value),\n })\n }\n placeholder=\"Select operations\"\n className={classNames(\"solid-standard-autocomplete max-w-16rem\", {\n [styles.fieldInvalidControl]: Boolean(errors?.operations),\n })}\n />\n </div>\n {errors?.operations && (\n <p className={styles.fieldError}>{errors.operations}</p>\n )}\n </div>\n\n {/* Trash Button to delete the row */}\n <SolidButton\n icon=\"si si-trash\"\n size=\"small\"\n onClick={() => onDelete(index)}\n disabled={disableDelete}\n outlined\n severity=\"danger\"\n type=\"button\"\n />\n </div>\n );\n\n}\n\nconst fieldBasedPayloadFormating = (values: any, currentFields: string[], fieldMetaData: any) => {\n // const booleanFields: string | any[] = [\n // \"isSystem\",\n // \"defaultValue\",\n // \"required\",\n // \"unique\",\n // \"encrypt\",\n // \"index\",\n // \"private\",\n // \"relationCreateInverse\"];\n const transformedPayload = currentFields.reduce((acc: any, key: any) => {\n acc[key] = values[key]; // Set key and its value as the same string\n // if (booleanFields.includes(acc[key])) {\n // acc[key] = values[key] == \"false\" ? \"\" : true\n // }\n return acc;\n }, {});\n transformedPayload.displayName = transformedPayload.displayName.trim()\n\n transformedPayload.identifier = fieldMetaData ? fieldMetaData.identifier : Date.now();\n if (fieldMetaData?.id) {\n transformedPayload.id = fieldMetaData.id\n }\n if (currentFields.includes(\"mediaStorageProviderId\")) {\n transformedPayload.mediaStorageProvider = values.mediaStorageProvider\n }\n if (currentFields.includes(\"selectionDynamicProviderCtxt\")) {\n const prettified = JSON.stringify(JSON.parse(values.selectionDynamicProviderCtxt), null, 2);\n\n transformedPayload.selectionDynamicProviderCtxt = prettified\n }\n\n if (currentFields.includes(\"computedFieldValueProviderCtxt\")) {\n const prettified = JSON.stringify(JSON.parse(values.computedFieldValueProviderCtxt), null, 2);\n transformedPayload.computedFieldValueProviderCtxt = prettified\n }\n\n if (currentFields.includes(\"computedFieldTriggerConfig\")) {\n // const prettified = JSON.stringify(values.computedFieldTriggerConfig, null, 2);\n transformedPayload.computedFieldTriggerConfig = values.computedFieldTriggerConfig\n }\n\n if (currentFields.includes(\"relationCreateInverse\")) {\n transformedPayload.relationCreateInverse = values.relationCreateInverse == false ? false : true\n }\n if (transformedPayload.relationType == \"many-to-one\") {\n transformedPayload.relationCascade = values.relationCascade;\n }\n\n if (transformedPayload.relationType == \"many-to-many\") {\n transformedPayload.isRelationManyToManyOwner = true;\n }\n return transformedPayload\n\n}\n\nfunction fetchCurrentFields(solidFieldType: any, fieldDefaultMetaData: any) {\n\n if (solidFieldType) {\n const allowedFields = fieldDefaultMetaData?.data?.fieldTypes.filter((e: any) => e.fieldType === solidFieldType);\n if (allowedFields.length > 0) {\n return allowedFields[0].fields\n }\n\n }\n return [\n \"name\",\n \"displayName\",\n \"type\",\n \"ormType\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"isUserKey\"\n ];\n\n}\n\nconst createValidationSchema = (currentFields: any, selectedType: any, allFields: any, fieldMetaData: any, encryptState: any) => {\n\n let reservedNames;\n\n if (fieldMetaData) {\n reservedNames = allFields.length > 0 ? allFields.filter((i: any) => i.id !== fieldMetaData.id).map((f: any) => f.name) : [];\n } else {\n\n reservedNames = allFields.length > 0 ? allFields.map((f: any) => f.name) : [];\n }\n\n\n\n const selectedTypeValue = selectedType?.value;\n\n const schema = {\n name: Yup.string()\n // .matches(/^[a-z]+(-[a-z]+)*$/,\"Invalid format. Use lowercase letters and hyphens only\")\n .notOneOf(reservedNames, ERROR_MESSAGES.FIELD_ALREADY_USE('Name', 'name'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),\n displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Display Name')),\n description: Yup.string().nullable(),\n type: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Type')),\n isSystem: Yup.boolean(),\n // Conditionally add validation rules based on `currentFields`\n ...(currentFields.includes(\"ormType\") && {\n ormType: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Orm Type')),\n }),\n ...(currentFields.includes(\"length\") && {\n length: Yup.number().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Length', 'interger')).nullable(),\n }),\n // ...(currentFields.includes(\"defaultValue\") && {\n // defaultValue: Yup.string().required(\"Default Value is required\"),\n // }),\n // Conditionally validate defaultValue based on SolidFieldType\n ...(currentFields.includes(\"defaultValue\") && {\n defaultValue: Yup.mixed().nullable().when(\"type\", (type: any) => {\n switch (selectedTypeValue) {\n case \"int\":\n case \"bigint\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'integer'))\n .integer(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'integer'));\n case \"float\":\n case \"decimal\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'integer'))\n case \"shortText\":\n case \"longText\":\n case \"richText\":\n case \"json\":\n return Yup.string().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'boolean'))\n case \"boolean\":\n return Yup.boolean().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'boolean'))\n case \"date\":\n case \"datetime\":\n case \"time\":\n return Yup.date().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Default value', 'Date'))\n default:\n return Yup.mixed().nullable(); // Default fallback if no match\n }\n }),\n }),\n\n // Add more conditional fields as needed\n\n ...(currentFields.includes(\"regexPattern\") && {\n regexPattern: Yup.string(),\n regexPatternNotMatchingErrorMsg: Yup.string(),\n }),\n ...(currentFields.includes(\"required\") && {\n required: Yup.boolean(),\n }),\n ...(currentFields.includes(\"unique\") && {\n unique: Yup.boolean(),\n }),\n ...(currentFields.includes(\"encrypt\") && {\n encrypt: Yup.boolean(),\n }),\n ...(currentFields.includes(\"encryptionType\") && encryptState == true && {\n encryptionType: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Encryption Type Value')\n ),\n }),\n ...(currentFields.includes(\"decryptWhen\") && encryptState == true && {\n\n decryptWhen: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Decrypt When Value')),\n }),\n ...(currentFields.includes(\"index\") && {\n index: Yup.boolean(),\n }),\n // ...(currentFields.includes(\"min\") && {\n // min: Yup.number().required(\"Min is required\"),\n // }),\n ...(currentFields.includes(\"min\") && {\n min: Yup.mixed().nullable()\n .when(\"type\", (type: any) => {\n switch (selectedTypeValue) {\n case \"int\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Min', 'interger'))\n .integer(ERROR_MESSAGES.FIELD_MUST_BE_AN('Min', 'interger'));\n case \"decimal\":\n case \"shortText\":\n case \"longText\":\n case \"richText\":\n case \"json\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Min', 'interger'));\n default:\n return Yup.mixed().nullable().nullable(); // Default fallback if no match\n }\n }),\n }),\n // ...(currentFields.includes(\"max\") && {\n // max: Yup.number().required(\"Max is required\"),\n // }),\n ...(currentFields.includes(\"max\") && {\n max: Yup.mixed()\n .when(\"type\", (type: any) => {\n switch (selectedTypeValue) {\n case \"int\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'interger'))\n .integer(ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'interger'))\n .test(\n ERROR_MESSAGES.GREATER_THAN_MIN,\n ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'greater than Min'),\n function (value) {\n const { min } = this.parent; // Access sibling field 'min'\n // if (min != null && value == null) {\n // // Trigger error if Min is filled but Max is empty\n // return this.createError({\n // message: \"Max is required if Min is specified\",\n // });\n // }\n return value == null || value > min; // Validate only if Max exists\n }\n );\n\n\n case \"decimal\":\n case \"shortText\":\n case \"longText\":\n case \"richText\":\n case \"json\":\n return Yup.number().nullable().typeError(ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'interger'))\n .test(\n ERROR_MESSAGES.GREATER_THAN_MIN,\n ERROR_MESSAGES.FIELD_MUST_BE_AN('Max', 'greater than Min'),\n function (value) {\n const { min } = this.parent; // Access sibling field 'min'\n // if (min != null && value == null) {\n // // Trigger error if Min is filled but Max is empty\n // return this.createError({\n // message: \"Max is required if Min is specified\",\n // });\n // }\n return value == null || value > min; // Validate only if Max exists\n }\n );\n\n\n default:\n return Yup.mixed().nullable().nullable(); // Default fallback if no match\n }\n }),\n }),\n ...(currentFields.includes(\"private\") && {\n private: Yup.boolean(),\n }),\n ...(currentFields.includes(\"mediaTypes\") && {\n mediaTypes: Yup.array()\n .of(Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Media Type')))\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED('Media Types'))\n .required(ERROR_MESSAGES.FIELD_MUST_BE_AN('Media Types', 'array')),\n }),\n\n ...(currentFields.includes(\"mediaMaxSizeKb\") && {\n mediaMaxSizeKb: Yup.number().required(ERROR_MESSAGES.FIELD_REUQIRED('Media Max Size')),\n }),\n ...(currentFields.includes(\"mediaStorageProviderId\") && {\n mediaStorageProviderId: Yup.number().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Media Storage Provider')\n ),\n }),\n ...(currentFields.includes(\"mediaStorageProviderId\") && {\n mediaStorageProvider: Yup.object().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Media Storage Provider')\n ),\n }),\n\n ...(currentFields.includes(\"mediaEmbedded\") && {\n mediaEmbedded: Yup.boolean(),\n }),\n ...(currentFields.includes(\"relationType\") && {\n relationType: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Relation Type ')),\n }),\n ...(currentFields.includes(\"relationCoModelSingularName\") && {\n relationCoModelSingularName: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Relation Model Singular Name')\n ),\n }),\n ...(currentFields.includes(\"relationCoModelFieldName\") && {\n relationCoModelFieldName: Yup.string()\n // .required(\n // \"Relation Model Field Name is required\"\n // ),\n }),\n ...(currentFields.includes(\"relationCreateInverse\") && {\n relationCreateInverse: Yup.boolean(),\n }),\n ...(currentFields.includes(\"relationCoModelFieldName\") && {\n relationCoModelFieldName: Yup.string().when(\"relationCreateInverse\", (relationCreateInverse: any, schema) => {\n if (relationCreateInverse.length > 0 && relationCreateInverse[0] == true) {\n return schema.required(ERROR_MESSAGES.FIELD_REUQIRED('Relation Co Model Field Name'))\n } else {\n return schema.notRequired();\n }\n }),\n }),\n\n // ...(currentFields.includes(\"relationCascade\") && {\n // relationCascade: Yup.string().required(\n // \"Relation Cascade Value is required\"\n // ),\n // }),\n\n // Conditionally validate relationCascade based on relationType\n ...(currentFields.includes(\"relation\") && {\n relationCascade: Yup.string().when(\"relationType\", (relationType: any, schema) => {\n return relationType === \"one-to-one\"\n ? schema.required(ERROR_MESSAGES.RELATION_CASCADE)\n : schema.notRequired();\n }),\n }),\n\n\n ...(currentFields.includes(\"relationModelModuleName\") && {\n relationModelModuleName: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Relation Model Module Name Value')\n ),\n }),\n\n ...(currentFields.includes(\"relationFieldFixedFilter\") && {\n relationFieldFixedFilter: Yup.string().nullable(),\n }),\n\n ...(currentFields.includes(\"selectionDynamicProvider\") && {\n selectionDynamicProvider: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Selection Dynamic Provider Value ')\n ),\n }),\n ...(currentFields.includes(\"selectionDynamicProviderCtxt\") && {\n selectionDynamicProviderCtxt: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Selection Dynamic Provider Context Value')\n ).test(\n ERROR_MESSAGES.IS_VALID_JSON,\n ERROR_MESSAGES.COMPUTED_FIELD_VALIDATE_JSON,\n (value) => {\n if (!value) return false; // Ensure it's required\n try {\n JSON.parse(value); // Check if it's valid JSON\n return true;\n } catch {\n return false;\n }\n }\n ),\n }),\n\n ...(currentFields.includes(\"selectionStaticValues\") && {\n selectionStaticValues: Yup.array().of(\n Yup.string().matches(/^[\\w\\s\\d-]+:[\\w\\s-]+$/, ERROR_MESSAGES.FIELD_REUQIRED('Label and Value'))\n ),\n }),\n ...(currentFields.includes(\"computedFieldValueProvider\") && {\n computedFieldValueProvider: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Computed Field Function Value')\n ),\n }),\n ...(currentFields.includes(\"computedFieldValueProviderCtxt\") && {\n computedFieldValueProviderCtxt: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('\"Computed Field Value Provider Context Value')\n ).test(\n ERROR_MESSAGES.IS_VALID_JSON,\n ERROR_MESSAGES.COMPUTED_FIELD_VALIDATE_JSON,\n (value) => {\n if (!value) return false; // Ensure it's required\n try {\n JSON.parse(value); // Check if it's valid JSON\n return true;\n } catch {\n return false;\n }\n }\n ),\n\n }),\n ...(currentFields.includes(\"computedFieldValueType\") && {\n computedFieldValueType: Yup.string().required(\n ERROR_MESSAGES.FIELD_REUQIRED('Computed Field Value Type')\n ),\n }),\n ...(currentFields.includes(\"computedFieldTriggerConfig\") && {\n computedFieldTriggerConfig: Yup.array()\n .of(\n Yup.object().shape({\n moduleName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Module name')),\n modelName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED('Model name')),\n operations: Yup.array().of(Yup.string()).min(1, ERROR_MESSAGES.SELECT_ONE_OPERATION),\n })\n )\n .min(1, ERROR_MESSAGES.FIELD_REUQIRED('At least one trigger config'))\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Computed Field Trigger Config')),\n }),\n\n // ...(currentFields.includes(\"columnName\") && { columnName: Yup.string().nullable().matches(/^[a-z0-9_]+$/, ERROR_MESSAGES.SNAKE_CASE('column')), }),\n ...(currentFields.includes(\"isPrimaryKey\") && { isPrimaryKey: Yup.boolean(), }),\n\n ...(currentFields.includes(\"required\") && {\n required: Yup.boolean().when(\"isPrimaryKey\", (isPrimaryKey: any, schema) => {\n if (isPrimaryKey.length > 0 && isPrimaryKey[0] === true) {\n return schema.oneOf([true], \"Required must be true when field is marked as Primary Key\");\n }\n return schema;\n }),\n }),\n\n ...(currentFields.includes(\"unique\") && {\n unique: Yup.boolean().when(\"isPrimaryKey\", (isPrimaryKey: any, schema) => {\n if (isPrimaryKey.length > 0 && isPrimaryKey[0] === true) {\n return schema.oneOf([true], \"Unique must be true when field is marked as Primary Key\");\n }\n return schema;\n }).when(\"required\", (required: any, schema) => {\n // Disallow unique field that is not required\n if (required.length > 0 && required[0] === false) {\n return schema.oneOf([false], \"Unique fields must also be marked as Required\");\n }\n return schema;\n }),\n }),\n\n\n // ...(currentFields.includes(\"externalIdProvider\") && {\n // externalIdProvider: Yup.string().required(\n // \"ExternalId Provider Value is required\"\n // ),\n // }),\n // ...(currentFields.includes(\"externalIdProviderCtxt\") && {\n // externalIdProviderCtxt: Yup.string().required(\n // \"EexternalId Provider Context Value is required\"\n // ),\n // }),\n };\n\n return Yup.object(schema);\n};\n\nconst FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldMetaData, allFields, deleteModelFunction, setVisiblePopup, params, setIsRequiredPopUp, showToaster }: any) => {\n const booleanOptions = [\"false\", \"true\"];\n const booleanSegmentedOptions = booleanOptions.map((value) => ({\n label: capitalize(value),\n value,\n }));\n const resolveBooleanOptionValue = (value: any) =>\n typeof value === \"string\" ? value : value ? \"true\" : \"false\";\n const [isBackPopupVisible, setIsBackPopupVisible] = useState(false);\n const [showColumnName, setShowColumnName] = useState<any>(false);\n\n const pathname = usePathname();\n\n const { data: fieldDefaultMetaData, isLoading, error, refetch } = useGetFieldDefaultMetaDataQuery(null);\n const [currentFields, setCurrentFields] = useState(\n fetchCurrentFields(fieldMetaData && fieldMetaData.type, fieldDefaultMetaData)\n );\n\n const [triggerGetMediaStorageProvider, { data: MediaStorageProviderData, isFetching: isMediaStorageProviderFetching, error: MediaStorageProviderError }] = useLazyGetMediaStorageProvidersQuery();\n const [triggerGetModules, { data: moduleData, isFetching: isModuleFetching, error: moduleError }] = useLazyGetmodulesQuery();\n const [triggerGetModels, { data: modelData, isFetching: ismodelFetching, error: modelError }] = useLazyGetModelsQuery();\n const [\n updateUserKey,\n { isLoading: isUpdateUserKeyLoading, isSuccess: isUpdateUserKeySuccess, isError: isUpdateUserKeyError, error: UpdateUserKeyError, data: newModel },\n ] = useUpdateUserKeyMutation();\n\n\n const [markdownText, setMarkdownText] = useState<string>();\n const [encryptState, setEncryptState] = useState<boolean>(Boolean(fieldMetaData?.encrypt));\n\n const [showTypeFilter, setShowTypeFilter] = useState(fieldMetaData ? false : true);\n const [selectedType, setSelectedType] = useState<{ label: string; value: string } | null>(\n fieldMetaData?.type ? { label: fieldMetaData.type, value: fieldMetaData.type } : null\n );\n const selectedTypeValue = selectedType?.value || \"\";\n const [selectedComputedFieldValueType, setSelectedComputedFieldValueType] = useState(fieldMetaData?.computedFieldValueType && { label: fieldMetaData.computedFieldValueType, value: fieldMetaData.computedFieldValueType });\n const [selectionDynamicProvider, setSelectionDynamicProvider] = useState(fieldMetaData?.selectionDynamicProvider && { label: fieldMetaData.selectionDynamicProvider, value: fieldMetaData.selectionDynamicProvider });\n // const [externalIdProvider, setExternalIdProvider] = useState(fieldMetaData?.externalIdProvider && { label: fieldMetaData.externalIdProvider, value: fieldMetaData.externalIdProvider });\n const [filteredComputedFieldValueTypes, setFilteredComputedFieldValueTypes] = useState([]);\n const [\n filteredSelectionDynamicProvider,\n setFilteredSelectionDynamicProvider,\n ] = useState([]);\n\n const [ormTypeOptions, setOrmTypeOptions] = useState([]);\n const [selectedOrmType, setSelectedOrmType] = useState<any>(fieldMetaData?.ormType);\n\n const [askForUserKeyField, setAskForUserKeyField] = useState(false);\n const [userKeyFieldData, setUserKeyFieldData] = useState([]);\n\n const [\n filteredExternalIdProvider,\n setFilteredExternalIdProvider,\n ] = useState([]);\n\n const [filteredSelectionEncryptionType, setFilteredSelectionEncryptionType] = useState([]);\n\n const [filteredSelectionDecryptWhen, setFilteredSelectionDecryptWhen] = useState([]);\n\n const validationSchema = React.useMemo(\n () => createValidationSchema(currentFields, selectedType, allFields, fieldMetaData, encryptState),\n [currentFields, encryptState]\n );\n\n const [typeSelected, setTypeSelected] = useState(false);\n const showRegexFields = currentFields.includes(\"regexPattern\");\n const showMinFields = currentFields.includes(\"min\");\n const showMaxFields = currentFields.includes(\"max\");\n const showOrmOptions = currentFields.includes(\"ormType\") && Boolean(ormTypeOptions && ormTypeOptions.length);\n const showValidationSection =\n selectedTypeValue !== \"relation\" && (showRegexFields || showMinFields || showMaxFields || showOrmOptions);\n\n const searchMediaStorageProvIderId = async (event: any) => {\n try {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n // filters: {\n // name: {\n // $containsi: query,\n // },\n // },\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetMediaStorageProvider(queryString).unwrap();\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n\n const searchModel = async (event: any) => {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n // filters: {\n // title: {\n // $containsi: query\n // }\n // }\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n // Trigger the API call manually\n const result = await triggerGetModels(queryString).unwrap(); // Unwrap to access the data\n\n // Map the API response to AutoComplete format\n if (result && result.records) {\n const filteredMenu = result.records.map((m: any) => (\n {\n label: m.name,\n value: m.id,\n name: m.name,\n id: m.id,\n }\n ));\n\n // Update the suggestions in state\n return filteredMenu\n } else {\n // Handle the case where no data is returned\n return []\n }\n };\n\n\n\n\n const searchOrmTypes = async (event: any) => {\n const query = event.query;\n try {\n\n const ormType = fieldDefaultMetaData.data.ormType[modelMetaData?.dataSourceType];\n const _filteredOrmType = ormType[formik.values.type].ormTypes.map((e: any) => ({ label: e, value: e }))\n\n const suggestionData: any = _filteredOrmType.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n return suggestionData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n\n\n\n const searchRelationModelModuleNames = async (event: any) => {\n try {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n filters: {\n name: {\n $containsi: query,\n },\n },\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetModules(queryString).unwrap(); // Unwrap to access the data\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n const searchrelationCoModelSingularNames = async (event: any) => {\n try {\n const query = event.query;\n const queryData: any = {\n limit: 10,\n offset: 0,\n filters: {\n module: {\n name: {\n $containsi: formik.values.relationModelModuleName\n }\n }\n }\n };\n if (query) {\n queryData.filters.singularName = {\n $containsi: query,\n };\n }\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetModels(queryString).unwrap(); // Unwrap to access the data\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n const searchModuleName = async (event: any) => {\n try {\n const query = event.query;\n const queryData = {\n limit: 10,\n offset: 0,\n filters: {\n name: {\n $containsi: query,\n },\n },\n };\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n\n const result = await triggerGetModules(queryString).unwrap(); // Unwrap to access the data\n\n if (result && result.records) {\n const updatedSuggestion = [...result.records];\n return updatedSuggestion\n } else {\n return []\n }\n } catch (error) {\n return []\n }\n };\n\n const getSearchModelNameHandler = useCallback(\n (moduleName: string) => {\n return async (event: any) => {\n try {\n const query = event.query;\n const queryData: any = {\n limit: 10,\n offset: 0,\n filters: {\n module: {\n name: {\n $containsi: moduleName,\n },\n },\n },\n };\n\n if (query) {\n queryData.filters.singularName = {\n $containsi: query,\n };\n }\n\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n const result = await triggerGetModels(queryString).unwrap();\n return result?.records ?? [];\n } catch (error) {\n return [];\n }\n };\n },\n [] // or include dependencies like triggerGetModels if needed\n );\n\n const searchUserKeyField = () => {\n return userKeyFieldData;\n }\n\n const searchComputedFieldValueType = async (event: any) => {\n const query = event.query;\n try {\n\n const _filteredTypes: any = fieldDefaultMetaData.data.computedFieldValueTypes.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n\n setFilteredComputedFieldValueTypes(_filteredTypes);\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n setFilteredComputedFieldValueTypes([]);\n }\n };\n\n\n\n const searchSelectionDynamicProvider = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.selectionDynamicProviders.filter((t: any) => t.provider.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.provider, value: e.provider, help: e.help }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n\n\n const searchComputedProvider = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.computedProviders.filter((t: any) => t.provider.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.provider, value: e.provider, help: e.help }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n const searchExternalIdProvider = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.externalIdProviders.filter((t: any) => t.provider.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.provider, value: e.provider, help: e.help }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n\n\n const searchSelectionEncryptionType = async (event: any) => {\n const query = event.query;\n try {\n\n const _filteredTypes: any = fieldDefaultMetaData.data.encryptionTypes.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n\n setFilteredSelectionEncryptionType(_filteredTypes);\n return _filteredTypes\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n setFilteredSelectionEncryptionType([]);\n return []\n }\n };\n\n const searchSelectionDecryptWhen = async (event: any) => {\n const query = event.query;\n try {\n\n const _filteredTypes: any = fieldDefaultMetaData.data.decryptWhenTypes.filter((t: any) => t.label.toLowerCase().startsWith(query.toLowerCase()));\n\n setFilteredSelectionDecryptWhen(_filteredTypes);\n return _filteredTypes\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n setFilteredSelectionDecryptWhen([]);\n return []\n }\n };\n\n\n const isFormFieldValid = (formik: any, fieldName: string) => {\n return formik.touched[fieldName] && formik.errors[fieldName];\n };\n\n\n const mediaStorageProviderId = [\n { label: \"mediaStorageProviderId\", value: \"mediaStorageProviderId\" },\n { label: \"id2\", value: \"2\" },\n ];\n\n const selctionValueTypes = [\n { label: \"String\", value: \"string\" },\n { label: \"Int\", value: \"int\" },\n ];\n\n\n const relationCreateInverses = [\n { label: \"True\", value: \"true\" },\n { label: \"False\", value: \"false\" },\n ];\n\n const defaultPasswordPolicy = fieldMetaData?.regexPattern;\n const [selectedPasswordPolicy, setSelectedPasswordPolicy] = useState<any>(defaultPasswordPolicy);\n const passwordPolicyOptions = [\n { label: 'Lowercase and Uppercase Alphabets Required', value: '^(?=.*[a-z])(?=.*[A-Z]).*$' },\n { label: 'Lowercase and Uppercase Alphabets and Numbers Required', value: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).*$' },\n { label: 'Lowercase and Uppercase Alphabets, Numbers, and Special Characters Required', value: '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&]).*$' },\n { label: 'custom', value: 'custom' },\n\n ];\n\n const mediaTypesOptions = [\n { label: 'Image (Supports JPEG, PNG, WEBP, etc.)', value: 'image' },\n { label: 'Audio (Supports MP3, WAV, AAC, etc.)', value: 'audio' },\n { label: 'Video (Supports MP4, AVI, MKV, etc.)', value: 'video' },\n { label: 'File (Supports PDF, DOCX, TXT, etc.)', value: 'file' }\n ];\n\n const resolvedMediaTypeOptions = useMemo(\n () => fieldDefaultMetaData?.data?.mediaTypes ?? mediaTypesOptions,\n [fieldDefaultMetaData?.data?.mediaTypes]\n );\n\n const [filteredMediaTypes, setFilteredMediaTypes] = useState(resolvedMediaTypeOptions);\n\n useEffect(() => {\n setFilteredMediaTypes(resolvedMediaTypeOptions);\n }, [resolvedMediaTypeOptions]);\n\n const handleMediaTypesSearch = useCallback(\n (event: { query: string }) => {\n const query = (event.query || \"\").toLowerCase();\n if (!query) {\n setFilteredMediaTypes(resolvedMediaTypeOptions);\n return;\n }\n setFilteredMediaTypes(\n resolvedMediaTypeOptions.filter(\n (option: any) =>\n option.label?.toLowerCase().includes(query) || option.value?.toLowerCase().includes(query)\n )\n );\n },\n [resolvedMediaTypeOptions]\n );\n\n\n\n const parseComputedFieldTriggerConfig = (input: any) => {\n try {\n if (typeof input === \"string\") {\n const parsed = JSON.parse(input);\n return Array.isArray(parsed) ? parsed : [parsed];\n } else if (Array.isArray(input)) {\n return input;\n } else if (typeof input === \"object\" && input !== null) {\n return [input];\n }\n } catch {\n return [{ moduleName: \"\", modelName: \"\", operations: [] }];\n }\n\n return [{ moduleName: \"\", modelName: \"\", operations: [] }];\n };\n\n\n const initialValues = {\n name: fieldMetaData ? fieldMetaData?.name : null,\n displayName: fieldMetaData ? fieldMetaData?.displayName : null,\n description: fieldMetaData ? fieldMetaData?.description : null,\n type: fieldMetaData ? fieldMetaData?.type : null,\n ormType: fieldMetaData ? fieldMetaData?.ormType : null,\n length: fieldMetaData ? fieldMetaData?.length : null,\n defaultValue: fieldMetaData ? fieldMetaData?.defaultValue : null,\n regexPattern: fieldMetaData ? fieldMetaData?.regexPattern : null,\n regexPatternNotMatchingErrorMsg: fieldMetaData ? fieldMetaData?.regexPatternNotMatchingErrorMsg : \"Invalid regex pattern\",\n required: fieldMetaData ? fieldMetaData?.required : false,\n unique: fieldMetaData ? fieldMetaData?.unique : false,\n encrypt: fieldMetaData ? fieldMetaData?.encrypt : false,\n encryptionType: fieldMetaData ? fieldMetaData?.encryptionType : null,\n decryptWhen: fieldMetaData ? fieldMetaData?.decryptWhen : null,\n index: fieldMetaData ? fieldMetaData?.index : false,\n min: fieldMetaData ? fieldMetaData?.min : null,\n max: fieldMetaData ? fieldMetaData?.max : null,\n private: fieldMetaData ? fieldMetaData?.private : false,\n mediaTypes: fieldMetaData?.mediaTypes ?? [],\n mediaMaxSizeKb: fieldMetaData ? fieldMetaData?.mediaMaxSizeKb : null,\n mediaStorageProviderId: fieldMetaData ? fieldMetaData?.mediaStorageProvider?.id : null,\n mediaStorageProvider: fieldMetaData ? fieldMetaData?.mediaStorageProvider : null,\n mediaEmbedded: fieldMetaData ? (fieldMetaData?.mediaEmbedded && fieldMetaData?.mediaEmbedded.toString()) : \"true\",\n relationType: fieldMetaData ? fieldMetaData?.relationType : null,\n relationCoModelSingularName: fieldMetaData ? fieldMetaData?.relationCoModelSingularName : null,\n relationCoModelFieldName: fieldMetaData ? fieldMetaData?.relationCoModelFieldName : null,\n relationCreateInverse: fieldMetaData ? fieldMetaData?.relationCreateInverse : false,\n relationCascade: fieldMetaData ? fieldMetaData?.relationCascade : 'cascade',\n relationModelModuleName: fieldMetaData ? fieldMetaData?.relationModelModuleName : modelMetaData?.module.name,\n relationFieldFixedFilter: fieldMetaData ? fieldMetaData?.relationFieldFixedFilter : \"\",\n selectionDynamicProvider: fieldMetaData ? fieldMetaData?.selectionDynamicProvider : null,\n selectionDynamicProviderCtxt: fieldMetaData ? fieldMetaData?.selectionDynamicProviderCtxt : \"\",\n selectionStaticValues: fieldMetaData ? fieldMetaData?.selectionStaticValues : [\"\"],\n selectionValueType: fieldMetaData ? fieldMetaData?.selectionValueType : null,\n computedFieldValueProvider: fieldMetaData ? fieldMetaData?.computedFieldValueProvider : null,\n computedFieldValueType: fieldMetaData ? fieldMetaData?.computedFieldValueType : null,\n computedFieldTriggerConfig: parseComputedFieldTriggerConfig(fieldMetaData?.computedFieldTriggerConfig),\n computedFieldValueProviderCtxt: fieldMetaData ? fieldMetaData?.computedFieldValueProviderCtxt : \"\",\n // externalIdProvider: fieldMetaData ? fieldMetaData?.externalIdProvider : null,\n // externalIdProviderCtxt: fieldMetaData ? fieldMetaData?.externalIdProviderCtxt : \"\",\n isSystem: fieldMetaData ? fieldMetaData?.isSystem : false,\n columnName: fieldMetaData ? fieldMetaData?.columnName : null,\n isUserKey: fieldMetaData ? fieldMetaData?.isUserKey : false,\n relationCoModelColumnName: fieldMetaData ? fieldMetaData?.relationCoModelColumnName : null,\n relationJoinTableName: fieldMetaData ? fieldMetaData?.relationJoinTableName : null,\n userKey: fieldMetaData ? fieldMetaData?.userKey : null,\n enableAuditTracking: fieldMetaData ? fieldMetaData?.enableAuditTracking : true,\n isPrimaryKey: fieldMetaData ? fieldMetaData?.isPrimaryKey : false,\n isMultiSelect: fieldMetaData ? fieldMetaData?.isMultiSelect : false,\n };\n\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n setFieldMetaData((prevItems: any) => {\n const newFieldData = { ...values, isSystem: values.isSystem == true ? true : '' }\n const formtatedFieldPayload = fieldBasedPayloadFormating(newFieldData, currentFields, fieldMetaData);\n const existingIndex = prevItems.findIndex((item: any) => item.identifier === formtatedFieldPayload.identifier);\n let updatedItems;\n if (existingIndex !== -1) {\n updatedItems = [...prevItems];\n updatedItems[existingIndex] = formtatedFieldPayload;\n return updatedItems\n }\n else {\n updatedItems = [...prevItems, formtatedFieldPayload];\n if (params?.id !== 'new' && formtatedFieldPayload?.required && !formtatedFieldPayload?.defaultValue) {\n setIsRequiredPopUp(true);\n }\n // return [...prevItems, formtatedFieldPayload]\n }\n return updatedItems;\n });\n if (values.userKey) {\n const data = {\n modelName: values.relationCoModelSingularName,\n fieldName: values.userKey\n }\n updateUserKey(data);\n }\n // nextTab()\n setVisiblePopup(false);\n\n } catch (err) {\n console.error(ERROR_MESSAGES.CREATE_MODEL, err);\n }\n },\n validateOnBlur: false // Disable validation on blur\n\n\n\n });\n\n const mediaTypeSelectedItems = useMemo(() => {\n if (!Array.isArray(formik.values.mediaTypes)) return [];\n return formik.values.mediaTypes.map((entry: any) => {\n if (entry && typeof entry === \"object\") {\n if (entry.label && entry.value) {\n return entry;\n }\n if (entry.value) {\n const fromOptions = resolvedMediaTypeOptions.find((option: any) => option.value === entry.value);\n return fromOptions || { label: entry.value, value: entry.value };\n }\n }\n const fromOptions = resolvedMediaTypeOptions.find((option: any) => option.value === entry);\n return fromOptions || { label: String(entry), value: entry };\n });\n }, [formik.values.mediaTypes, resolvedMediaTypeOptions]);\n\n const resetFormStateForTypeSelection = useCallback((options?: { keepSelectedType?: boolean }) => {\n formik.resetForm();\n const baseValues = formik.initialValues;\n setShowColumnName(Boolean(baseValues.columnName));\n setEncryptState(Boolean(baseValues.encrypt));\n setMarkdownText(undefined);\n setSelectedComputedFieldValueType(\n baseValues?.computedFieldValueType\n ? { label: baseValues.computedFieldValueType, value: baseValues.computedFieldValueType }\n : null\n );\n setSelectedPasswordPolicy(baseValues?.regexPattern || defaultPasswordPolicy || \"\");\n setOrmTypeOptions([]);\n setSelectedOrmType(baseValues?.ormType);\n setAskForUserKeyField(false);\n setUserKeyFieldData([]);\n if (!options?.keepSelectedType) {\n if (fieldMetaData?.type) {\n setSelectedType({ label: fieldMetaData.type, value: fieldMetaData.type });\n } else {\n setSelectedType(null);\n }\n }\n }, [\n defaultPasswordPolicy,\n fieldMetaData,\n formik,\n ]);\n\n const showError = async () => {\n const errors = await formik.validateForm(); // Trigger validation and get the updated errors\n const collectMessages = (value: any): string[] => {\n if (!value) return [];\n if (typeof value === \"string\") return [value];\n if (Array.isArray(value)) {\n return value.flatMap(collectMessages);\n }\n if (typeof value === \"object\") {\n return Object.values(value).flatMap(collectMessages);\n }\n return [String(value)];\n };\n const errorMessages = Object.values(errors).flatMap(collectMessages);\n\n if (errorMessages.length > 0) {\n showToaster(errorMessages, \"error\");\n }\n };\n\n useEffect(() => {\n if (isUpdateUserKeySuccess) {\n showToaster([newModel?.data?.message], \"success\");\n } if (isUpdateUserKeyError) {\n showToaster(UpdateUserKeyError, 'error')\n }\n }, [isUpdateUserKeySuccess, isUpdateUserKeyError])\n\n const handleTypeSelect = (e: any, label: string) => {\n if (!fieldMetaData) {\n resetFormStateForTypeSelection({ keepSelectedType: true });\n }\n setShowTypeFilter(false);\n setSelectedType({ label: label, value: e });\n formik.setFieldValue(\"type\", e);\n if (e == \"email\") {\n formik.setFieldValue(\"regexPattern\", \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$\");\n } else {\n formik.setFieldValue(\"regexPattern\", \"\");\n }\n const ormType = fieldDefaultMetaData.data.ormType[modelMetaData?.dataSourceType];\n const availableOrmTypes = ormType[e];\n // setFilteredOrmTypes(availableOrmTypes.ormTypes.map((e: any) => ({\n // label: e,\n // value: e,\n // })));\n // setSelectedOrmType({ label: availableOrmTypes.ormTypes[0], value: availableOrmTypes.ormTypes[0] });\n setOrmTypeOptions(availableOrmTypes.ormTypes)\n formik.setFieldValue(\"ormType\", availableOrmTypes.ormTypes[0].label);\n setSelectedOrmType(availableOrmTypes.ormTypes[0].label)\n setCurrentFields(\n fetchCurrentFields(e, fieldDefaultMetaData)\n );\n // setTypeSelected(true);\n }\n\n\n useEffect(() => {\n if (!fieldDefaultMetaData || !formik.values.type || !modelMetaData?.dataSourceType) {\n setOrmTypeOptions([]);\n return;\n }\n const ormTypeBySource = fieldDefaultMetaData.data.ormType?.[modelMetaData.dataSourceType];\n const typeConfig = ormTypeBySource?.[formik.values.type];\n setOrmTypeOptions(typeConfig?.ormTypes ?? []);\n }, [fieldDefaultMetaData, formik.values.type, modelMetaData?.dataSourceType]);\n\n\n useEffect(() => {\n if (fieldMetaData && fieldMetaData.columnName) {\n setShowColumnName(true)\n }\n }, [fieldMetaData])\n\n useEffect(() => {\n const fetchFields = async () => {\n const queryData: any = {\n limit: 100,\n offset: 0,\n filters: {\n singularName: {\n $eq: formik.values.relationCoModelSingularName\n }\n },\n populate: ['fields']\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const result = await triggerGetModels(queryString).unwrap();\n\n if (result && result.records) {\n if (!result?.records[0]?.userKeyField) {\n setAskForUserKeyField(true);\n const validUserKeyFields = result?.records[0]?.fields?.filter(\n (field: any) => field?.unique === true && field?.type === 'shortText'\n );\n setUserKeyFieldData(validUserKeyFields)\n } else {\n setAskForUserKeyField(false);\n setUserKeyFieldData([]);\n }\n }\n }\n if (formik.values.relationCoModelSingularName) {\n fetchFields();\n }\n }, [formik.values.relationCoModelSingularName])\n\n const updateEnumValues = (index: number, updatedString: string) => {\n const updatedValues = formik.values.selectionStaticValues.map((enumValue: string, i: number) =>\n i === index ? updatedString : enumValue\n );\n formik.setFieldValue(\"selectionStaticValues\", updatedValues);\n };\n\n const addEnumValue = () => {\n formik.setFieldValue(\"selectionStaticValues\", [...formik.values.selectionStaticValues, \":\"]);\n };\n\n const deleteEnumValue = (index: number) => {\n if (formik.values.selectionStaticValues.length > 1) {\n const updatedRows = formik.values.selectionStaticValues.filter((_: string, rowIndex: number) => rowIndex !== index);\n formik.setFieldValue(\"selectionStaticValues\", updatedRows);\n } else {\n\n }\n };\n\n useEffect(() => {\n if (formik.dirty) {\n setIsDirty(true);\n }\n }, [formik.dirty]);\n\n const handleChange = (index: number, updatedRow: any) => {\n const updatedRows = [...formik.values.computedFieldTriggerConfig];\n updatedRows[index] = updatedRow;\n formik.setFieldValue(\"computedFieldTriggerConfig\", updatedRows);\n };\n\n const handleAdd = () => {\n const updatedRows = [\n ...formik.values.computedFieldTriggerConfig,\n { moduleName: '', modelName: '', operations: [] }\n ];\n formik.setFieldValue(\"computedFieldTriggerConfig\", updatedRows);\n };\n\n const handleDelete = (index: number) => {\n const updatedRows = formik.values.computedFieldTriggerConfig.filter((_: any, i: number) => i !== index);\n formik.setFieldValue(\"computedFieldTriggerConfig\", updatedRows.length > 0 ? updatedRows : [{ moduleName: '', modelName: '', operations: [] }]);\n };\n\n const computedFieldSearchHandlers = useMemo(() => {\n return formik.values.computedFieldTriggerConfig.map(row =>\n getSearchModelNameHandler(row.moduleName)\n );\n }, [formik.values.computedFieldTriggerConfig]);\n\n const mediaStorageProviderField = useSolidAutocompleteField({\n formik,\n fieldName: \"mediaStorageProvider\",\n fieldNameId: \"mediaStorageProviderId\",\n labelKey: \"name\",\n valueKey: \"value\",\n searchData: searchMediaStorageProvIderId,\n existingData: formik.values.mediaStorageProvider,\n relationField: true,\n });\n\n const relationModelModuleExisting = useMemo(\n () => createRelationAutocompleteValue(formik.values.relationModelModuleName, \"name\", \"name\"),\n [formik.values.relationModelModuleName]\n );\n const relationModelModuleField = useSolidAutocompleteField({\n formik,\n fieldName: \"relationModelModuleName\",\n fieldNameId: null,\n labelKey: \"name\",\n valueKey: \"name\",\n searchData: searchRelationModelModuleNames,\n existingData: relationModelModuleExisting,\n relationField: true,\n additionalAction: () => {\n formik.setFieldValue(\"relationCoModelSingularName\", \"\");\n formik.setFieldValue(\"relationCoModelColumnName\", \"\");\n formik.setFieldValue(\"relationJoinTableName\", \"\");\n }\n });\n\n const relationCoModelExisting = useMemo(\n () => createRelationAutocompleteValue(formik.values.relationCoModelSingularName, \"displayName\", \"singularName\"),\n [formik.values.relationCoModelSingularName]\n );\n const relationCoModelField = useSolidAutocompleteField({\n formik,\n fieldName: \"relationCoModelSingularName\",\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"singularName\",\n searchData: searchrelationCoModelSingularNames,\n existingData: relationCoModelExisting,\n relationField: true,\n });\n\n const userKeyExisting = useMemo(\n () => createRelationAutocompleteValue(formik.values.userKey, \"displayName\", \"name\"),\n [formik.values.userKey]\n );\n const userKeyField = useSolidAutocompleteField({\n formik,\n fieldName: \"userKey\",\n fieldNameId: null,\n labelKey: \"displayName\",\n valueKey: \"name\",\n searchData: searchUserKeyField,\n existingData: userKeyExisting,\n relationField: true,\n });\n\n const selectionDynamicProviderExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.selectionDynamicProvider),\n [formik.values.selectionDynamicProvider]\n );\n const selectionDynamicProviderField = useSolidAutocompleteField({\n formik,\n fieldName: \"selectionDynamicProvider\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchSelectionDynamicProvider,\n existingData: selectionDynamicProviderExisting,\n additionalAction: (e: any) => setMarkdownText(e.target.value.help),\n });\n\n const computedFieldValueProviderExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.computedFieldValueProvider),\n [formik.values.computedFieldValueProvider]\n );\n const computedFieldValueProviderField = useSolidAutocompleteField({\n formik,\n fieldName: \"computedFieldValueProvider\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchComputedProvider,\n existingData: computedFieldValueProviderExisting,\n additionalAction: (e: any) => setMarkdownText(e.target.value.help),\n });\n\n const encryptionTypeExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.encryptionType),\n [formik.values.encryptionType]\n );\n const decryptWhenExisting = useMemo(\n () => createSimpleAutocompleteValue(formik.values.decryptWhen),\n [formik.values.decryptWhen]\n );\n\n const encryptionTypeField = useSolidAutocompleteField({\n formik,\n fieldName: \"encryptionType\",\n fieldNameId: \"encryptionType\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchSelectionEncryptionType,\n existingData: encryptionTypeExisting,\n });\n\n const decryptWhenField = useSolidAutocompleteField({\n formik,\n fieldName: \"decryptWhen\",\n fieldNameId: \"decryptWhen\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: searchSelectionDecryptWhen,\n existingData: decryptWhenExisting,\n });\n\n\n return (\n <div>\n <div>\n <form\n onSubmit={formik.handleSubmit}\n onReset={(event) => {\n event.preventDefault();\n resetFormStateForTypeSelection();\n }}\n >\n {showTypeFilter === true ?\n <FieldSelector\n handleTypeSelect={handleTypeSelect}\n modelMetaData={modelMetaData}\n ></FieldSelector>\n :\n <div className=\"p-3\" style={{ maxHeight: '80vh', overflowY: 'auto', overflowX: 'hidden' }}>\n <div className=\"flex justify-center creat-field-for form-dem\">\n <div className=\"solid-fluid\" style={{ position: 'relative' }}>\n {/* <div className=\"mb-3\">\n <div className=\"form-wrapper-title\">{fieldMetaData ? `Edit ${capitalize(selectedType.label)} Field` : `Add a new ${capitalize(selectedType.label)} Field`}</div>\n </div> */}\n <TabView panelContainerClassName=\"px-0\">\n <TabPanel\n header=\"Basic Info\"\n className={(formik.touched.hasOwnProperty(\"name\") && formik.errors.hasOwnProperty(\"name\")) || (formik.touched.hasOwnProperty(\"displayName\") && formik.errors.hasOwnProperty(\"displayName\")) || (formik.touched.hasOwnProperty(\"displayName\") && formik.errors.hasOwnProperty(\"ormType\")) ? \"tab-error-heading\" : \"\"}\n // rightIcon=\"si si-info-circle ml-2\"\n >\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n {currentFields.includes(\"displayName\") && (\n <div className=\"field mt-2 w-full px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"displayName\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Display Name\n </label>\n <SolidInput\n type=\"text\"\n disabled={fieldMetaData?.id}\n id=\"displayName\"\n name=\"displayName\"\n onChange={(e) => {\n formik.setFieldValue(\"displayName\", e.target.value);\n const { toCamelCase, toSnakeCase } = getSingularAndPlural(e.target.value);\n formik.setFieldValue(\"name\", toCamelCase);\n if (showColumnName) {\n formik.setFieldValue(\"columnName\", toSnakeCase);\n }\n }}\n value={formik.values.displayName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(formik, \"displayName\"),\n })}\n />\n {isFormFieldValid(formik, \"displayName\") && (\n <p className={styles.fieldError}>{formik?.errors?.displayName?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"name\") && (\n <div className=\"field mt-1 w-full px-2 pt-2 md:mt-0 md:w-1/2\">\n <label htmlFor=\"name\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Name\n </label>\n <SolidInput\n disabled={fieldMetaData?.id}\n type=\"text\"\n id=\"name\"\n name=\"name\"\n onChange={formik.handleChange}\n value={formik.values.name}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(formik, \"name\"),\n })}\n />\n {isFormFieldValid(formik, \"name\") && (\n <p className={styles.fieldError}>{formik?.errors?.name?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"description\") && (\n <div className=\"field mt-1 w-full px-2 pt-2 md:mt-2 md:w-1/2\">\n <label htmlFor=\"description\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Description\n </label>\n <SolidTextarea\n aria-describedby=\"Description of your field\"\n id=\"description\"\n name=\"description\"\n onChange={formik.handleChange}\n value={formik.values.description}\n rows={5}\n cols={30}\n className={classNames(styles.fieldTextarea, {\n \"p-invalid\": isFormFieldValid(formik, \"description\"),\n })}\n />\n {isFormFieldValid(formik, \"description\") && (\n <p className={styles.fieldError}>{formik?.errors?.description?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"columnName\") && (\n <div className=\"field mt-2 w-full px-2 pt-2 md:w-1/2\">\n <div className=\"flex items-center gap-2\">\n <SolidCheckbox\n onChange={(event) => {\n const checked = event.currentTarget.checked;\n setShowColumnName(checked);\n if (checked === true) {\n const { toSnakeCase } = getSingularAndPlural(formik.values.displayName);\n if (pathname.includes('create')) {\n formik.setFieldValue(\"columnName\", toSnakeCase);\n }\n } else {\n formik.setFieldValue(\"columnName\", null);\n }\n }}\n checked={showColumnName}\n disabled={fieldMetaData?.id}\n />\n <label htmlFor=\"ingredient1\" className=\"form-field-label\">\n Set Column Name\n </label>\n </div>\n {showColumnName && (\n <div className=\"field mt-4 w-full gap-2\">\n <label htmlFor=\"columnName\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Column Name\n </label>\n <SolidInput\n disabled={fieldMetaData?.id}\n type=\"text\"\n id=\"columnName\"\n name=\"columnName\"\n onChange={formik.handleChange}\n value={formik.values.columnName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(formik, \"columnName\"),\n })}\n />\n {isFormFieldValid(formik, \"columnName\") && (\n <p className={styles.fieldError}>{formik?.errors?.columnName?.toString()}</p>\n )}\n </div>\n )}\n </div>\n )}\n\n\n\n </div>\n\n </TabPanel>\n\n <TabPanel header=\"Advanced Config\"\n\n // rightIcon=\"si si-cog ml-2\"\n >\n {formik?.values?.type?.length > 0 && (\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n {currentFields.includes(\"length\") && (\n <div className=\"field flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <label htmlFor=\"length\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Length\n </label>\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"length\"\n name=\"length\"\n value={formik.values.length}\n onChange={(event) => formik.setFieldValue(\"length\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"length\"\n ),\n })}\n />\n </div>\n {isFormFieldValid(formik, \"length\") && (\n <p className={styles.fieldError}>{formik?.errors?.length?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"defaultValue\") && selectedTypeValue === \"boolean\" &&\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n\n <label\n style={{ marginBottom: \"0px\" }}\n htmlFor=\"defaultValue\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Default Value\n </label>\n <SolidSegmentedControl\n value={resolveBooleanOptionValue(formik.values.defaultValue)}\n onChange={(value) => formik.setFieldValue(\"defaultValue\", value)}\n options={booleanSegmentedOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n </div>\n }\n\n {currentFields.includes(\"defaultValue\") && selectedTypeValue !== \"boolean\" && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n\n <label\n style={{ marginBottom: \"0px\" }}\n htmlFor=\"defaultValue\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Default Value\n </label>\n\n {(selectedTypeValue === \"shortText\" || selectedTypeValue === \"longText\" || selectedTypeValue === \"richText\" || selectedTypeValue === \"json\" || selectedTypeValue === \"password\" || selectedTypeValue === \"selectionStatic\") &&\n <SolidInput\n type=\"text\"\n id=\"defaultValue\"\n name=\"defaultValue\"\n onChange={formik.handleChange}\n value={formik.values.defaultValue}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"defaultValue\"\n ),\n })}\n />\n }\n {(selectedTypeValue === \"float\" || selectedTypeValue === \"decimal\") &&\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"defaultValue\"\n name=\"defaultValue\"\n step=\"0.00001\"\n value={formik.values.defaultValue}\n onChange={(event) => formik.setFieldValue(\"defaultValue\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n </div>\n }\n {(selectedTypeValue === \"int\" || selectedTypeValue === \"bigint\") &&\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"defaultValue\"\n name=\"defaultValue\"\n step=\"1\"\n value={formik.values.defaultValue}\n onChange={(event) => formik.setFieldValue(\"defaultValue\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n </div>\n }\n\n {(selectedTypeValue === \"date\" || selectedTypeValue === \"datetime\" || selectedTypeValue === \"time\") && (() => {\n const showTimeSelect = selectedTypeValue === \"datetime\" || selectedTypeValue === \"time\";\n const timeOnly = selectedTypeValue === \"time\";\n const dateFormat =\n selectedTypeValue === \"datetime\"\n ? \"yyyy-MM-dd HH:mm\"\n : timeOnly\n ? \"HH:mm\"\n : \"yyyy-MM-dd\";\n const timeFormat = \"HH:mm\";\n return (\n <SolidDatePicker\n id=\"defaultValue\"\n selected={formik.values.defaultValue ? new Date(formik.values.defaultValue) : undefined}\n onChange={(date: Date | null) => formik.setFieldValue(\"defaultValue\", date)}\n showTimeSelect={showTimeSelect}\n timeOnly={timeOnly}\n dateFormat={dateFormat}\n timeFormat={timeFormat}\n inputClassName={classNames({\n \"p-invalid\": isFormFieldValid(formik, \"defaultValue\"),\n })}\n />\n );\n })()}\n {isFormFieldValid(formik, \"defaultValue\") && (\n <p className={styles.fieldError}>{formik?.errors?.defaultValue?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"mediaTypes\") && (\n <div className=\"field flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"mediaTypes\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Type\n </label>\n <div\n className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"mediaTypes\"),\n })}\n >\n <SolidAutocomplete\n multiple\n dropdown\n field=\"label\"\n value={mediaTypeSelectedItems}\n suggestions={filteredMediaTypes}\n completeMethod={handleMediaTypesSearch}\n maxVisibleChips={3}\n onChange={({ value }) => {\n const selection = Array.isArray(value) ? value : [];\n const normalizedValues = selection\n .map((item) => {\n if (item && typeof item === \"object\") {\n if (item.value) return item.value;\n if (item.label) return item.label;\n }\n return item ?? null;\n })\n .filter(Boolean);\n formik.setFieldValue(\"mediaTypes\", normalizedValues);\n }}\n placeholder=\"Select media types\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"mediaTypes\") && (\n <p className={styles.fieldError}>{formik?.errors?.mediaTypes?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"mediaMaxSizeKb\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:mt-0 md:w-1/2\">\n <label\n htmlFor=\"mediaMaxSizeKb\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Max Size (Mb)\n </label>\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"mediaMaxSizeKb\"\n name=\"mediaMaxSizeKb\"\n value={formik.values.mediaMaxSizeKb}\n onChange={(event) => formik.setFieldValue(\"mediaMaxSizeKb\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaMaxSizeKb\"\n ),\n })}\n />\n </div>\n\n {isFormFieldValid(formik, \"mediaMaxSizeKb\") && (\n <p className={styles.fieldError}>{formik?.errors?.mediaMaxSizeKb?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"mediaStorageProviderId\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"mediaStorageProviderId\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Storage Provider\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"mediaStorageProvider\"),\n })}>\n <SolidAutocomplete\n value={mediaStorageProviderField.selectedItem}\n suggestions={mediaStorageProviderField.filteredItems}\n completeMethod={mediaStorageProviderField.searchItems}\n onChange={mediaStorageProviderField.handleChange}\n dropdown\n field=\"name\"\n className=\"w-full\"\n />\n </div>\n\n {isFormFieldValid(\n formik,\n \"mediaStorageProvider\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.mediaStorageProviderId?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"mediaEmbedded\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"mediaEmbedded\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Media Embedded\n </label>\n {/* <SolidInput\n type=\"text\"\n id=\"mediaEmbedded\"\n name=\"mediaEmbedded\"\n onChange={formik.handleChange}\n value={formik.values.mediaEmbedded}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaEmbedded\"\n ),\n })}\n /> */}\n <SolidSegmentedControl\n value={resolveBooleanOptionValue(formik.values.mediaEmbedded)}\n onChange={(value) => {\n formik.setFieldValue(\"mediaEmbedded\", value);\n }}\n options={booleanSegmentedOptions}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaEmbedded\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"mediaEmbedded\") && (\n <p className={styles.fieldError}>{formik?.errors?.mediaEmbedded?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"relationType\") && (\n <div className=\"field mt-1 flex w-full items-center gap-2 px-2 pt-2\">\n {/* <label\n htmlFor=\"relationType\"\n className=\"form-field-label\"\n >\n Relation Type\n </label>\n <Dropdown\n id=\"relationType\"\n name=\"relationType\"\n value={formik.values.relationType}\n options={fieldDefaultMetaData.data.relationTypes}\n onChange={(e) =>\n formik.setFieldValue(\"relationType\", e.value)\n }\n placeholder=\"Select a Data Source\"\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationType\"\n ),\n })}\n /> */}\n\n <label\n style={{ marginBottom: \"0px\" }}\n htmlFor=\"relationType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Type\n </label>\n <SolidSegmentedControl\n value={formik.values.relationType}\n options={fieldDefaultMetaData.data.relationTypes}\n onChange={(value) => {\n formik.setFieldValue(\"relationType\", value);\n if (value === \"one-to-many\") {\n formik.setFieldValue(\"relationCreateInverse\", true);\n }\n }}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"relationType\"),\n })}\n />\n\n {isFormFieldValid(formik, \"relationType\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationType?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"relationType\") && (formik.values.relationType === \"many-to-one\" || formik.values.relationType === \"one-to-many\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"relationCascade\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Cascade\n </label>\n <SolidSelect\n value={formik.values.relationCascade}\n options={fieldDefaultMetaData.data.cascadeTypes}\n optionLabel=\"label\"\n optionValue=\"value\"\n onChange={({ value }) =>\n formik.setFieldValue(\n \"relationCascade\",\n value\n )\n }\n placeholder=\"Cascade\"\n className={classNames(\"w-full\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationCascade\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"relationCascade\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCascade?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"relationModelModuleName\") && (\n <div className=\"field mt-1 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"relationModelModuleName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Co-Module Name\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"relationModelModuleName\"\n ),\n })}>\n <SolidAutocomplete\n value={relationModelModuleField.selectedItem}\n suggestions={relationModelModuleField.filteredItems}\n completeMethod={relationModelModuleField.searchItems}\n onChange={relationModelModuleField.handleChange}\n dropdown\n field=\"name\"\n className=\"w-full\"\n />\n </div>\n\n {/* <SolidAutocomplete\n value={selectedRelationModelModuleName}\n suggestions={filteredRelationModelModuleNames}\n invalid={isFormFieldValid(\n formik,\n \"relationModelModuleName\"\n )}\n completeMethod={searchRelationModelModuleNames}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectedRelationModelModuleName(e.value);\n formik.setFieldValue(\n \"relationModelModuleName\",\n e.value\n );\n }}\n /> */}\n\n {isFormFieldValid(\n formik,\n \"relationModelModuleName\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.relationModelModuleName?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\n \"relationCoModelSingularName\"\n ) && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"relationCoModelSingularName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Co-Model Name\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"relationCoModelSingularName\"\n ),\n })}>\n <SolidAutocomplete\n value={relationCoModelField.selectedItem}\n suggestions={relationCoModelField.filteredItems}\n completeMethod={relationCoModelField.searchItems}\n onChange={relationCoModelField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n\n {isFormFieldValid(\n formik,\n \"relationCoModelSingularName\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.relationCoModelSingularName?.toString()}</p>\n )}\n {formik.values.relationType === \"one-to-many\" &&\n <p className=\"fieldSubTitle\">This is the child model.</p>\n }\n {formik.values.relationType === \"many-to-one\" &&\n <p className=\"fieldSubTitle\">This is the parent model.</p>\n }\n </div>\n )}\n {currentFields.includes(\"relationCoModelColumnName\") && (formik.values.relationType === \"many-to-many\" || formik.values.relationType === \"many-to-one\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"relationCoModelColumnName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Co-Model Column Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"relationCoModelColumnName\"\n name=\"relationCoModelColumnName\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationCoModelColumnName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationCoModelColumnName\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"relationCoModelColumnName\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCoModelColumnName?.toString()}</p>\n )}\n <p className=\"fieldSubTitle\">Allows you to control the column name of the foreign key. Eg. when adding a country field to state model, by default foreign key column in the state table will be called country_id, use this field to create a foreign key with a different name. </p>\n\n </div>\n )}\n {askForUserKeyField && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"userKey\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Set User Key\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"userKey\"\n ),\n })}>\n <SolidAutocomplete\n value={userKeyField.selectedItem}\n suggestions={userKeyField.filteredItems}\n completeMethod={userKeyField.searchItems}\n onChange={userKeyField.handleChange}\n dropdown\n field=\"displayName\"\n className=\"w-full\"\n />\n </div>\n <p className=\"fieldSubTitle\">The co-model you have selected does not have a user key specified. Use the above dropdown to choose from one of the \"unique\" fields in this co-model to be set as its userkey. User keys are required in co-models being used in many-to-one or one-to-many relations as in SolidX when a many-to-one field is rendered it uses an autocomplete dropdown, and the user key value is what is displayed as the label in the dropdown.</p>\n {isFormFieldValid(\n formik,\n \"userKey\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.userKey?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\n \"relationFieldFixedFilter\"\n ) && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2\">\n <label\n htmlFor=\"relationFieldFixedFilter\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Field Fixed Filter\n </label>\n\n <SolidTextarea\n aria-describedby=\"Fixed Filter\"\n id=\"relationFieldFixedFilter\"\n name=\"relationFieldFixedFilter\"\n onChange={formik.handleChange}\n value={formik.values.relationFieldFixedFilter}\n rows={5}\n cols={30}\n className={classNames(styles.fieldTextarea, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationFieldFixedFilter\"\n ),\n })}\n />\n {/* \n <SolidInput\n type=\"text\"\n id=\"relationFieldFixedFilter\"\n name=\"relationFieldFixedFilter\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationFieldFixedFilter}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationFieldFixedFilter\"\n ),\n })}\n /> */}\n {isFormFieldValid(formik, \"relationFieldFixedFilter\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationFieldFixedFilter?.toString()}</p>\n )}\n <p className=\"fieldSubTitle\">Many to one fields are rendered as autocomplete dropdown on the SolidX ui. Use the fixed filter to load a pre-filtered set of records from the co-model. Please note user input entered in the autocomplete is used to apply a dynamic filter.</p>\n\n </div>\n )}\n\n {currentFields.includes(\"relationCreateInverse\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"relationCreateInverse\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Relation Create Inverse\n </label>\n <div className=\"flex items-center\">\n <SolidCheckbox\n id=\"relationCreateInverse\"\n name=\"relationCreateInverse\"\n checked={formik.values.relationCreateInverse}\n disabled={formik.values.relationType === \"one-to-many\"}\n onChange={(event) => formik.setFieldValue(\"relationCreateInverse\", event.currentTarget.checked)}\n />\n <label htmlFor=\"relationCreateInverse\" className={classNames(\"ml-2\", \"form-field-label\", styles.fieldLabel)}>Create Inverse</label>\n </div>\n {isFormFieldValid(formik, \"relationCreateInverse\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCreateInverse?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"relationCoModelFieldName\") && formik.values.relationCreateInverse && !formik.values.relationCoModelSingularName && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <SolidMessage text=\"Please select Co-model\" />\n </div>\n )}\n {currentFields.includes(\"relationCoModelFieldName\") && formik.values.relationCreateInverse && formik.values.relationCoModelSingularName && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"relationCoModelFieldName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Field Name In {formik.values.relationCoModelSingularName} Model\n </label>\n <SolidInput\n type=\"text\"\n id=\"relationCoModelFieldName\"\n name=\"relationCoModelFieldName\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationCoModelFieldName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationCoModelFieldName\"\n ),\n })}\n />\n {formik.values.relationType === \"one-to-many\" &&\n <p className=\"fieldSubTitle\">This is a field that is created in the child model. In this case a <span style={{ fontWeight: \"700\" }}>{formik.values.relationCoModelFieldName ?? formik.values.relationCoModelSingularName}</span> field will be created in the {formik.values.relationCoModelSingularName} when setting create inverse true.</p>\n }\n {formik.values.relationType === \"many-to-one\" &&\n <p className=\"fieldSubTitle\">This is a field that is created in the parent model. In this case a <span style={{ fontWeight: \"700\" }}>{formik.values.relationCoModelFieldName ?? `${formik.values.relationCoModelSingularName}s`}</span> field will be created in the {formik.values.relationCoModelSingularName} when setting create inverse true.</p>\n }\n {formik.values.relationType === \"many-to-many\" &&\n <p className=\"fieldSubTitle\">In this case a {formik.values.relationCoModelFieldName} field will be created in the <span style={{ fontWeight: \"700\" }}>{formik.values.relationCoModelSingularName ?? '{{}}'}</span> when setting create inverse true.</p>\n }\n {isFormFieldValid(formik, \"relationCoModelFieldName\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationCoModelFieldName?.toString()}</p>\n )}\n </div>\n )}\n\n {/* {currentFields.includes(\"joinColumnName\") && formik.values.relationType === \"many-to-many\" && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <label\n htmlFor=\"joinColumnName\"\n className=\"form-field-label\"\n >\n Join Column Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"joinColumnName\"\n name=\"joinColumnName\"\n onChange={formik.handleChange}\n value={formik.values.joinColumnName}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"joinColumnName\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"joinColumnName\") && (\n <SolidMessage\n severity=\"error\"\n text={formik?.errors?.joinColumnName?.toString()}\n />\n )}\n\n </div>\n )} */}\n\n\n\n {currentFields.includes(\"relationJoinTableName\") && formik.values.relationType === \"many-to-many\" && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"relationJoinTableName\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Relation Join Table Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"relationJoinTableName\"\n name=\"relationJoinTableName\"\n onChange={formik.handleChange}\n disabled={fieldMetaData?.id}\n value={formik.values.relationJoinTableName}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"relationJoinTableName\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"relationJoinTableName\") && (\n <p className={styles.fieldError}>{formik?.errors?.relationJoinTableName?.toString()}</p>\n )}\n\n </div>\n )}\n\n {currentFields.includes(\"selectionDynamicProvider\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"selectionDynamicProvider\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Selection Dynamic Provider\n </label>\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"selectionDynamicProvider\"\n ),\n })}>\n <SolidAutocomplete\n value={selectionDynamicProviderField.selectedItem}\n suggestions={selectionDynamicProviderField.filteredItems}\n completeMethod={selectionDynamicProviderField.searchItems}\n onChange={selectionDynamicProviderField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n\n\n {/* <SolidAutocomplete\n value={selectionDynamicProvider}\n suggestions={filteredSelectionDynamicProvider}\n invalid={isFormFieldValid(\n formik,\n \"selectionDynamicProvider\"\n )}\n completeMethod={searchSelectionDynamicProvider}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectionDynamicProvider(e.value);\n formik.setFieldValue(\n \"selectionDynamicProvider\",\n e.value.value\n );\n }}\n /> */}\n\n {isFormFieldValid(\n formik,\n \"selectionDynamicProvider\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionDynamicProvider?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"selectionValueType\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"selectionValueType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Select Value Type\n </label>\n <SolidSelect\n value={formik.values.selectionValueType}\n options={selctionValueTypes}\n optionLabel=\"label\"\n optionValue=\"value\"\n onChange={({ value }) =>\n formik.setFieldValue(\n \"selectionValueType\",\n value\n )\n }\n placeholder=\"Select Value Type\"\n className={classNames(\"w-full\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"selectionValueType\"\n ),\n })}\n />\n {isFormFieldValid(\n formik,\n \"selectionValueType\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionValueType?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"selectionStaticValues\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"selectionStaticValues\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Selection Static Values\n </label>\n {/* <SolidTextarea\n value={selectionStaticValues}\n placeholder=\"male:Male\"\n onChange={(e) => {\n const data = e.target.value\n .split(\"\\n\")\n .filter((line) => line.trim() !== \"\");\n\n setSelectionStaticValues(e.target.value);\n formik.setFieldValue(\n \"selectionStaticValues\",\n data\n );\n }}\n rows={5}\n cols={30}\n /> */}\n {formik.values.selectionStaticValues.map((enumValue: string, index: number) => (\n <SelectionStaticValues\n key={index}\n enumValue={enumValue}\n onUpdate={(updatedString: any) => updateEnumValues(index, updatedString)}\n onDelete={() => deleteEnumValue(index)}\n onAdd={addEnumValue}\n />\n ))\n }\n {isFormFieldValid(\n formik,\n \"selectionStaticValues\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionStaticValues?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"computedFieldValueType\") && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"computedFieldValueType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Computed Field Value Type\n </label>\n <SolidAutocomplete\n value={selectedComputedFieldValueType}\n suggestions={filteredComputedFieldValueTypes}\n completeMethod={searchComputedFieldValueType}\n field=\"label\"\n dropdown\n className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"computedFieldValueType\"),\n })}\n onChange={(e) => {\n setSelectedComputedFieldValueType(e.value);\n formik.setFieldValue(\"computedFieldValueType\", e.value.value);\n }}\n />\n\n {/* <Dropdown\n id=\"mediaTypes\"\n name=\"mediaTypes\"\n value={formik.values.mediaTypes}\n options={fieldDefaultMetaData.data.mediaTypes}\n onChange={(e) =>\n formik.setFieldValue(\"mediaTypes\", e.value)\n }\n placeholder=\"Select a Data Source\"\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"mediaTypes\"\n ),\n })}\n /> */}\n {isFormFieldValid(formik, \"computedFieldValueType\") && (\n <p className={styles.fieldError}>{formik?.errors?.computedFieldValueType?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\n \"computedFieldValueProvider\"\n ) && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"computedFieldValueProvider\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Computed Field Provider\n </label>\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(\n formik,\n \"computedFieldValueProvider\"\n ),\n })}>\n <SolidAutocomplete\n value={computedFieldValueProviderField.selectedItem}\n suggestions={computedFieldValueProviderField.filteredItems}\n completeMethod={computedFieldValueProviderField.searchItems}\n onChange={computedFieldValueProviderField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(\n formik,\n \"computedFieldValueProvider\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.computedFieldValueProvider?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\n \"computedFieldTriggerConfig\"\n ) && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2\">\n {fieldMetaData?.computedFieldTriggerConfig === null\n &&\n <div className=\"mb-3\">\n <SolidMessage severity=\"error\" text={`You seem to be using an old configuration of ComputedFieldProvider. Please change your current computed field provider i.e ${fieldMetaData?.computedFieldValueProvider} to implement IEntityComputedFieldProvider before continuing.`} />\n </div>\n }\n <div className=\"flex items-center gap-2\">\n <label\n htmlFor=\"computedFieldTriggerConfig\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Computed Field Trigger Config\n </label>\n <div>\n <SolidButton\n icon=\"si si-plus\"\n size=\"small\"\n onClick={handleAdd}\n type=\"button\"\n className=\"ml-2\"\n />\n </div>\n </div>\n {\n formik.values.computedFieldTriggerConfig.map((row: any, index: number) => (\n <SelectComputedFieldTriggerValues\n key={index}\n index={index}\n row={row}\n onChange={handleChange}\n onDelete={handleDelete}\n isLastRow={index === formik.values.computedFieldTriggerConfig.length - 1}\n disableDelete={formik.values.computedFieldTriggerConfig.length === 1}\n formik={formik}\n isFormFieldValid={isFormFieldValid}\n searchModuleName={searchModuleName}\n searchModelName={computedFieldSearchHandlers[index]}\n modelMetaData={modelMetaData}\n errors={formik.errors.computedFieldTriggerConfig?.[index]}\n />\n ))}\n {typeof formik.errors.computedFieldTriggerConfig === 'string' && (\n <p className={styles.fieldError}>{formik.errors.computedFieldTriggerConfig}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"selectionDynamicProviderCtxt\") && (\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2\">\n <label htmlFor=\"selectionDynamicProviderCtxt\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Selection Dynamic Provider Context\n </label>\n <SolidCodeEditor\n value={formik.values.selectionDynamicProviderCtxt ?? \"\"}\n onChange={(value) => {\n formik.setFieldValue(\"selectionDynamicProviderCtxt\", value ?? \"\");\n }}\n language=\"json\"\n height=\"300px\"\n />\n <div className=\" form-field-label mt-2\">{markdownText}</div>\n\n {isFormFieldValid(\n formik,\n \"selectionDynamicProviderCtxt\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.selectionDynamicProviderCtxt?.toString()}</p>\n )}\n </div>\n )}\n\n {currentFields.includes(\"computedFieldValueProviderCtxt\") && (\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2\">\n <label htmlFor=\"computedFieldValueProviderCtxt\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Computed Field Value Provider Context\n </label>\n <SolidCodeEditor\n value={formik.values.computedFieldValueProviderCtxt ?? \"\"}\n onChange={(value) => {\n formik.setFieldValue(\"computedFieldValueProviderCtxt\", value ?? \"\");\n }}\n language=\"json\"\n height=\"300px\"\n />\n <div className=\"form-field-label mt-4\">{markdownText}</div>\n\n {isFormFieldValid(\n formik,\n \"computedFieldValueProviderCtxt\"\n ) && (\n <p className={styles.fieldError}>{formik?.errors?.computedFieldValueProviderCtxt?.toString()}</p>\n )}\n </div>\n )}\n\n\n </div>\n )}\n {showValidationSection && (\n <>\n <p className=\"form-wrapper-heading\">Validations</p>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n {(showRegexFields && selectedTypeValue === \"password\") &&\n <>\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"regexPattern\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Password Policy\n </label>\n <SolidSelect\n value={selectedPasswordPolicy}\n options={passwordPolicyOptions}\n optionLabel=\"label\"\n optionValue=\"value\"\n onChange={({ value }) => {\n setSelectedPasswordPolicy(value);\n if (value !== \"custom\") {\n formik.setFieldValue(\"regexPattern\", value);\n }\n }}\n placeholder=\"Select a Password Policy\"\n className=\"w-full\"\n />\n\n </div>\n </>\n }\n {showRegexFields && (\n <>\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label\n htmlFor=\"regexPattern\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Regex Pattern\n </label>\n <SolidInput\n type=\"text\"\n id=\"regexPattern\"\n name=\"regexPattern\"\n onChange={formik.handleChange}\n value={formik.values.regexPattern}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"regexPattern\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"regexPattern\") && (\n <p className={styles.fieldError}>{formik?.errors?.regexPattern?.toString()}</p>\n )}\n </div>\n {showRegexFields && (\n <div className=\"field mt-2 mb-3 flex w-full flex-col gap-2 px-2 pt-2 md:mb-3 md:w-1/2\">\n <label\n htmlFor=\"regexPatternNotMatchingErrorMsg\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Regex Pattern Not Matching Error Msg\n </label>\n <SolidInput\n type=\"text\"\n id=\"regexPatternNotMatchingErrorMsg\"\n name=\"regexPatternNotMatchingErrorMsg\"\n onChange={formik.handleChange}\n value={formik.values.regexPatternNotMatchingErrorMsg}\n className={classNames(styles.fieldInput, {\n \"p-invalid\": isFormFieldValid(\n formik,\n \"regexPatternNotMatchingErrorMsg\"\n ),\n })}\n />\n {isFormFieldValid(formik, \"regexPatternNotMatchingErrorMsg\") && (\n <p className={styles.fieldError}>{formik?.errors?.regexPatternNotMatchingErrorMsg?.toString()}</p>\n )}\n </div>\n )}\n </>\n\n )}\n {(showMinFields || showMaxFields) &&\n <>\n {showMinFields && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"min\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Min {(selectedTypeValue !== \"int\" && selectedTypeValue !== \"decimal\") && `(Characters Allowed)`}\n\n </label>\n {/* <SolidInput\n type=\"text\"\n id=\"min\"\n name=\"min\"\n onChange={formik.handleChange}\n value={formik.values.min}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"min\"),\n })}\n /> */}\n {/* <RenderMinValueInput></RenderMinValueInput> */}\n\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"min\"\n name=\"min\"\n step=\"0.00001\"\n value={formik.values.min}\n onChange={(event) => formik.setFieldValue(\"min\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"min\"\n ),\n })}\n disabled={fieldMetaData?.id}\n />\n </div>\n {isFormFieldValid(formik, \"min\") && (\n <p className={styles.fieldError}>{formik?.errors?.min?.toString()}</p>\n )}\n </div>\n )}\n {showMaxFields && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"max\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Max {(selectedTypeValue !== \"int\" &&\n selectedTypeValue !== \"decimal\") && `(Characters allowed)`}\n </label>\n {/* <SolidInput\n type=\"text\"\n id=\"max\"\n name=\"max\"\n onChange={formik.handleChange}\n value={formik.values.max}\n className={classNames(\"\", {\n \"p-invalid\": isFormFieldValid(formik, \"max\"),\n })}\n /> */}\n\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n id=\"max\"\n name=\"max\"\n step=\"0.00001\"\n value={formik.values.max}\n onChange={(event) => formik.setFieldValue(\"max\", event.value)}\n className={classNames({\n \"p-invalid\": isFormFieldValid(\n formik,\n \"max\"\n ),\n })}\n disabled={fieldMetaData?.id}\n />\n </div>\n\n\n {isFormFieldValid(formik, \"max\") && (\n <p className={styles.fieldError}>{formik?.errors?.max?.toString()}</p>\n )}\n </div>\n )}\n </>\n }\n {showOrmOptions && (\n <div className=\"field mt-2 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"ormType\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Type\n </label>\n\n <SolidRadioGroup\n name=\"ormType\"\n value={selectedOrmType}\n onChange={(value) => {\n formik.setFieldValue(\"ormType\", value);\n setSelectedOrmType(value);\n }}\n options={(ormTypeOptions || []).map((ormType: any) => ({\n value: ormType.label,\n label: (\n <span className={classNames(\"ml-2\", \"form-field-label\")}>\n {ormType.label}\n <br />\n <span className=\"fieldSubTitle mt-0\">{`(${ormType.description})`}</span>\n </span>\n ),\n }))}\n className=\"ormTypeflex\"\n itemClassName=\"mr-4 items-center\"\n />\n\n {isFormFieldValid(formik, \"ormType\") && (\n <p className={styles.fieldError}>{formik?.errors?.ormType?.toString()}</p>\n )}\n </div>\n )}\n </div>\n </>\n )}\n\n {(formik.values.relationType !== \"many-to-many\" && formik.values.relationType !== \"one-to-many\") && <p className=\"form-wrapper-heading\">Settings</p>}\n <div className=\"mt-1 flex flex-wrap -mx-2 -mt-2 md:mt-0\">\n {currentFields.includes(\"required\") && (formik.values.relationType !== \"many-to-many\" && formik.values.relationType !== \"one-to-many\") && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center\">\n <SolidCheckbox\n id=\"required\"\n name=\"required\"\n onChange={(event) => {\n if (!formik.values.isPrimaryKey && !formik.values.unique) {\n formik.setFieldValue(\"required\", event.currentTarget.checked);\n }\n }}\n checked={formik.values.required}\n disabled={formik.values.isPrimaryKey || formik.values.unique}\n />\n <label htmlFor=\"required\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Required {formik.values.isPrimaryKey && \"(Auto-enabled for Primary Key)\"}\n {!formik.values.isPrimaryKey && formik.values.unique && \"(Auto-enabled for Unique)\"}\n </label>\n </div>\n <p className=\"text-xs mt-2\">You won't be able to create an entry if this field is empty</p>\n\n {isFormFieldValid(formik, \"required\") && (\n <p className={styles.fieldError}>{formik?.errors?.required?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"unique\") && selectedTypeValue !== 'relation' && (\n <div className=\"field flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center\">\n <SolidCheckbox\n id=\"unique\"\n name=\"unique\"\n onChange={(event) => {\n // Prevent unchecking if isPrimaryKey is true\n if (!formik.values.isPrimaryKey) {\n const nextValue = event.currentTarget.checked;\n formik.setFieldValue(\"unique\", nextValue);\n formik.setFieldValue(\"isUserKey\", false);\n // Auto-enable required when unique is checked\n if (nextValue) {\n formik.setFieldValue(\"required\", true);\n } else {\n formik.setFieldValue(\"required\", false);\n }\n }\n }}\n checked={formik.values.unique}\n disabled={formik.values.isPrimaryKey}\n />\n <label htmlFor=\"unique\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Unique {formik.values.isPrimaryKey && \"(Auto-enabled for Primary Key)\"}\n </label>\n </div>\n <p className=\"text-xs mt-2\">You won't be able to create an entry if there is an existing entry with identical content</p>\n\n {isFormFieldValid(formik, \"unique\") && (\n <p className={styles.fieldError}>{formik?.errors?.unique?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"index\") && selectedTypeValue !== 'relation' && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center\">\n <SolidCheckbox\n id=\"index\"\n name=\"index\"\n onChange={(event) => {\n formik.setFieldValue(\"index\", event.currentTarget.checked);\n }}\n checked={formik.values.index}\n />\n <label htmlFor=\"index\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Index\n </label>\n </div>\n {isFormFieldValid(formik, \"index\") && (\n <p className={styles.fieldError}>{formik?.errors?.index?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"private\") && selectedTypeValue !== 'relation' && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center\">\n <SolidCheckbox\n id=\"private\"\n name=\"private\"\n onChange={(event) => {\n formik.setFieldValue(\"private\", event.currentTarget.checked);\n }}\n checked={formik.values.private}\n />\n <label htmlFor=\"private\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Private\n </label>\n </div>\n <p className=\"text-xs mt-2\">This field will not show up in the API response</p>\n\n\n {isFormFieldValid(formik, \"private\") && (\n <p className={styles.fieldError}>{formik?.errors?.private?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"encrypt\") && selectedTypeValue !== 'relation' && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center gap-2\">\n <SolidCheckbox\n id=\"encrypt\"\n name=\"encrypt\"\n onChange={(event) => {\n formik.setFieldValue(\"encrypt\", event.currentTarget.checked);\n setEncryptState(event.currentTarget.checked);\n }}\n checked={formik.values.encrypt}\n />\n <label htmlFor=\"encrypt\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Encrypt\n </label>\n </div>\n {isFormFieldValid(formik, \"encrypt\") && (\n <p className={styles.fieldError}>{formik?.errors?.encrypt?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"isMultiSelect\") && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center\">\n <SolidCheckbox\n id=\"isMultiSelect\"\n name=\"isMultiSelect\"\n onChange={(event) => {\n formik.setFieldValue(\"isMultiSelect\", event.currentTarget.checked);\n }}\n checked={formik.values.isMultiSelect}\n />\n <label htmlFor=\"isMultiSelect\" className={classNames(\"form-field-label\", styles.fieldLabel, \"ml-2\")}>\n Is MultiSelect\n </label>\n </div>\n {isFormFieldValid(formik, \"isMultiSelect\") && (\n <p className={styles.fieldError}>{formik?.errors?.isMultiSelect?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"enableAuditTracking\") && formik.values.relationType !== \"one-to-many\" && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center gap-2\">\n <SolidCheckbox\n id=\"enableAuditTracking\"\n name=\"enableAuditTracking\"\n onChange={(event) => {\n formik.setFieldValue(\"enableAuditTracking\", event.currentTarget.checked);\n }}\n checked={formik.values.enableAuditTracking}\n />\n <label htmlFor=\"enableAuditTracking\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Enable Audit Tracking\n </label>\n </div>\n <p className=\"fieldSubTitle\">By selecting this option, you are setting audit trail for this field.</p>\n\n {isFormFieldValid(formik, \"enableAuditTracking\") && (\n <p className={styles.fieldError}>{formik?.errors?.enableAuditTracking?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"isUserKey\") && formik.values.unique && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center gap-2\">\n <SolidCheckbox\n id=\"isUserKey\"\n name=\"isUserKey\"\n onChange={(event) => {\n formik.setFieldValue(\"isUserKey\", event.currentTarget.checked);\n }}\n checked={formik.values.isUserKey}\n />\n <label htmlFor=\"isUserKey\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Is Userkey\n </label>\n </div>\n <p className=\"fieldSubTitle\">By selecting this option, you are setting this field as the model's user key. Any existing user key configuration will be overwritten</p>\n\n {isFormFieldValid(formik, \"isUserKey\") && (\n <p className={styles.fieldError}>{formik?.errors?.isUserKey?.toString()}</p>\n )}\n </div>\n )}\n {currentFields.includes(\"isPrimaryKey\") && modelMetaData?.isLegacyTable && (\n <div className=\"field mt-2 flex w-1/2 flex-col gap-2 px-2 pt-2\">\n <div className=\"flex items-center gap-2\">\n <SolidCheckbox\n id=\"isPrimaryKey\"\n name=\"isPrimaryKey\"\n onChange={(event) => {\n const checked = event.currentTarget.checked;\n formik.setFieldValue(\"isPrimaryKey\", checked);\n // Auto-set required and unique when isPrimaryKey is checked\n if (checked) {\n formik.setFieldValue(\"required\", true);\n formik.setFieldValue(\"unique\", true);\n }\n }}\n checked={formik.values.isPrimaryKey}\n />\n <label htmlFor=\"isPrimaryKey\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Is Primary Key\n </label>\n </div>\n <p className=\"fieldSubTitle\">By selecting this option, you are setting this field as the primary key for this legacy table.</p>\n\n {isFormFieldValid(formik, \"isPrimaryKey\") && (\n <p className={styles.fieldError}>{formik?.errors?.isPrimaryKey?.toString()}</p>\n )}\n </div>\n )}\n </div>\n\n\n {formik.values.encrypt === true && (\n <div className=\"mt-2 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-full px-2 pt-2 md:w-1/2\">\n <div className=\"field flex w-full flex-col gap-2\">\n <label\n htmlFor=\"encryptionType\"\n className={classNames(\"form-field-label\", styles.fieldLabel)}\n >\n Encryption Type\n </label>\n {/* <SolidAutocomplete\n value={selectedEncryptionType}\n suggestions={filteredSelectionEncryptionType}\n invalid={isFormFieldValid(\n formik,\n \"encryptionType\"\n )}\n completeMethod={searchSelectionEncryptionType}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectedEncryptionType(e.value);\n formik.setFieldValue(\"encryptionType\", e.value.value);\n }}\n /> */}\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"encryptionType\"),\n })}>\n <SolidAutocomplete\n value={encryptionTypeField.selectedItem}\n suggestions={encryptionTypeField.filteredItems}\n completeMethod={encryptionTypeField.searchItems}\n onChange={encryptionTypeField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"encryptionType\") && (\n <p className={styles.fieldError}>{formik?.errors?.encryptionType?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"w-full px-2 pt-2 md:w-1/2\">\n <div className=\"field flex w-full flex-col gap-2\">\n <label htmlFor=\"decryptWhen\" className={classNames(\"form-field-label\", styles.fieldLabel)}>\n Decrypt When\n </label>\n {/* <SolidAutocomplete\n value={selectedDecryptWhen}\n suggestions={filteredSelectionDecryptWhen}\n invalid={isFormFieldValid(formik, \"decryptWhen\")}\n completeMethod={searchSelectionDecryptWhen}\n virtualScrollerOptions={{ itemSize: 38 }}\n field=\"label\"\n className=\"small-input\"\n dropdown\n onChange={(e) => {\n setSelectedeDecryptWhen(e.value);\n formik.setFieldValue(\"decryptWhen\", e.value.value);\n }}\n /> */}\n\n <div className={classNames(\"solid-standard-autocomplete\", {\n [styles.fieldInvalidControl]: isFormFieldValid(formik, \"decryptWhen\"),\n })}>\n <SolidAutocomplete\n value={decryptWhenField.selectedItem}\n suggestions={decryptWhenField.filteredItems}\n completeMethod={decryptWhenField.searchItems}\n onChange={decryptWhenField.handleChange}\n dropdown\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"decryptWhen\") && (\n <p className={styles.fieldError}>{formik?.errors?.decryptWhen?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n )}\n </TabPanel>\n </TabView>\n <div className=\"mt-4 flex gap-4\">\n <div>\n <SolidButton label=\"Finish\" size=\"small\" onClick={() => showError()} type=\"submit\" />\n </div>\n <div>\n <SolidButton label=\"Cancel\" size=\"small\" severity=\"secondary\" type=\"reset\" onClick={() => setVisiblePopup(false)} outlined />\n </div>\n </div>\n </div>\n {/* <div className=\"ml-4\">\n <SolidButton\n label=\"Save\"\n onClick={() => showError(formik.validateForm)}\n type=\"submit\"\n />\n </div> */}\n </div>\n </div>\n }\n\n </form>\n </div >\n <SolidDialog\n open={isBackPopupVisible}\n onOpenChange={(next) => {\n if (!next) {\n setIsBackPopupVisible(false);\n }\n }}\n dismissible={false}\n header=\"Unsaved Changes\"\n headerClassName=\"solid-field-confirm-header\"\n modal\n className=\"solid-confirm-dialog solid-field-confirm-dialog\"\n footer={\n <div className=\"solid-field-confirm-actions\">\n <SolidButton\n label=\"Yes\"\n icon=\"si si-check\"\n size=\"small\"\n type=\"reset\"\n severity=\"danger\"\n autoFocus\n onClick={() => {\n resetFormStateForTypeSelection();\n setIsBackPopupVisible(false);\n setShowTypeFilter(true);\n }}\n />\n <SolidButton label=\"No\" icon=\"si si-times\" size=\"small\" onClick={() => setIsBackPopupVisible(false)} />\n </div>\n }\n >\n <SolidDialogBody className=\"solid-field-confirm-dialog-body\">\n <p className=\"solid-field-confirm-message\">\n You have unsaved changes. Are you sure you want to go back?\n </p>\n </SolidDialogBody>\n </SolidDialog>\n </div >\n );\n};\n\n\nexport default FieldMetaDataForm;\n"]}
|