@solidstarters/solid-core-ui 1.1.211 → 1.1.212

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/dist/components/Svg/DevDocs.tsx +9 -0
  2. package/dist/components/Svg/DocsSvg.tsx +9 -0
  3. package/dist/components/Svg/ExcelSvg.tsx +15 -0
  4. package/dist/components/Svg/FieldSvg.tsx +9 -0
  5. package/dist/components/Svg/FileSvg.tsx +18 -0
  6. package/dist/components/Svg/HomePageModuleSvg.tsx +179 -0
  7. package/dist/components/Svg/ModelSvg.tsx +9 -0
  8. package/dist/components/Svg/ModuleSvg.tsx +9 -0
  9. package/dist/components/Svg/PDFSvg.tsx +15 -0
  10. package/dist/components/Svg/RightArrowSvg.tsx +9 -0
  11. package/dist/components/Svg/SettingsSvg.tsx +9 -0
  12. package/dist/components/auth/AuthLayout.tsx +223 -0
  13. package/dist/components/auth/ForgotPasswordThankYou.tsx +33 -0
  14. package/dist/components/auth/GoogleAuthChecking.tsx +63 -0
  15. package/dist/components/auth/SolidChangeForcePassword.tsx +222 -0
  16. package/dist/components/auth/SolidForgotPassword.tsx +127 -0
  17. package/dist/components/auth/SolidInitialLoginOtp.tsx +271 -0
  18. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +218 -0
  19. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  20. package/dist/components/auth/SolidLogin.js +14 -8
  21. package/dist/components/auth/SolidLogin.js.map +1 -1
  22. package/dist/components/auth/SolidLogin.tsx +428 -0
  23. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  24. package/dist/components/auth/SolidRegister.tsx +454 -0
  25. package/dist/components/auth/SolidResetPassword.tsx +194 -0
  26. package/dist/components/common/AuthBanner.tsx +41 -0
  27. package/dist/components/common/AutoCompleteField.tsx +79 -0
  28. package/dist/components/common/BackButton.tsx +72 -0
  29. package/dist/components/common/CancelButton.tsx +61 -0
  30. package/dist/components/common/CodeEditor.tsx +38 -0
  31. package/dist/components/common/CreateButton.tsx +17 -0
  32. package/dist/components/common/DownloadProgressToast.tsx +55 -0
  33. package/dist/components/common/DropzonePlaceholder.tsx +31 -0
  34. package/dist/components/common/DropzoneUpload.tsx +11 -0
  35. package/dist/components/common/FileReaderExt.tsx +20 -0
  36. package/dist/components/common/GeneralSettings.tsx +1225 -0
  37. package/dist/components/common/HeaderDynamicTitles.tsx +13 -0
  38. package/dist/components/common/MarkdownViewer.tsx +84 -0
  39. package/dist/components/common/MultipleSelectAutoCompleteField.tsx +64 -0
  40. package/dist/components/common/NotFound.tsx +22 -0
  41. package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
  42. package/dist/components/common/SocialMediaLogin.tsx +53 -0
  43. package/dist/components/common/SolidAdmin.tsx +6 -0
  44. package/dist/components/common/SolidBreadcrumb.tsx +129 -0
  45. package/dist/components/common/SolidExport.tsx +563 -0
  46. package/dist/components/common/SolidExportStepper.tsx +135 -0
  47. package/dist/components/common/SolidFieldTooltip.tsx +23 -0
  48. package/dist/components/common/SolidFormHeader.tsx +25 -0
  49. package/dist/components/common/SolidFormStepper.tsx +350 -0
  50. package/dist/components/common/SolidModuleHome.tsx +128 -0
  51. package/dist/components/common/SolidPopupContainer.tsx +37 -0
  52. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +45 -0
  53. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +45 -0
  54. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +20 -0
  55. package/dist/components/common/SolidSettings/SettingsImageRemoveButton.tsx +15 -0
  56. package/dist/components/common/SolidSettings/SolidUploadedImage.tsx +16 -0
  57. package/dist/components/common/SolidThemeLink.tsx +6 -0
  58. package/dist/components/common/SolidThemeProvider.tsx +44 -0
  59. package/dist/components/common/StepperArrows/ActiveArrowStep.tsx +18 -0
  60. package/dist/components/common/StepperArrows/ActiveBeforeStepArrow.tsx +18 -0
  61. package/dist/components/common/StepperArrows/InactiveStepArrow.tsx +19 -0
  62. package/dist/components/common/error.tsx +30 -0
  63. package/dist/components/common/useHandleFormCustomButtonClick.ts +40 -0
  64. package/dist/components/common/useHandleListCustomButtonClick.ts +42 -0
  65. package/dist/components/core/chatter/SolidChatter.tsx +248 -0
  66. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +35 -0
  67. package/dist/components/core/chatter/SolidChatterCustomMessage.tsx +46 -0
  68. package/dist/components/core/chatter/SolidChatterDateDivider.tsx +16 -0
  69. package/dist/components/core/chatter/SolidChatterHeader.tsx +218 -0
  70. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +163 -0
  71. package/dist/components/core/chatter/SolidMessageComposer.tsx +146 -0
  72. package/dist/components/core/common/AvatarWidget.tsx +55 -0
  73. package/dist/components/core/common/DateFieldViewComponent.tsx +36 -0
  74. package/dist/components/core/common/FilterComponent.tsx +458 -0
  75. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  76. package/dist/components/core/common/PDFViewer.tsx +117 -0
  77. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +89 -0
  78. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +188 -0
  79. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +139 -0
  80. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +311 -0
  81. package/dist/components/core/common/SolidCreateButton.tsx +48 -0
  82. package/dist/components/core/common/SolidGenericImport/DocumentSvg.tsx +15 -0
  83. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +64 -0
  84. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +125 -0
  85. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +122 -0
  86. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.tsx +217 -0
  87. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +205 -0
  88. package/dist/components/core/common/SolidGenericImport/SolidImportTransactionStatus.tsx +158 -0
  89. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
  90. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1470 -0
  91. package/dist/components/core/common/SolidLayoutViews.tsx +87 -0
  92. package/dist/components/core/common/SolidListViewOptions.tsx +31 -0
  93. package/dist/components/core/common/SolidLoaders/SolidCircularLoader.tsx +7 -0
  94. package/dist/components/core/common/SolidPasswordHelperText.tsx +34 -0
  95. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +75 -0
  96. package/dist/components/core/common/SolidSearchBox.tsx +17 -0
  97. package/dist/components/core/common/SolidViewLayoutManager.ts +421 -0
  98. package/dist/components/core/common/SolidXAiIframe.tsx +77 -0
  99. package/dist/components/core/dashboard/SolidDashboard.tsx +332 -0
  100. package/dist/components/core/dashboard/SolidDashboardBody.tsx +117 -0
  101. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
  102. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
  103. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +55 -0
  104. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
  105. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +29 -0
  106. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +256 -0
  107. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +78 -0
  108. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +18 -0
  109. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +54 -0
  110. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
  111. package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
  112. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.tsx +17 -0
  113. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
  114. package/dist/components/core/extension/solid-core/emailTemplate/emailFormTypeChangeHandler.ts +18 -0
  115. package/dist/components/core/extension/solid-core/emailTemplate/emailFormTypeLoad.ts +18 -0
  116. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +114 -0
  117. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +213 -0
  118. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +138 -0
  119. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +209 -0
  120. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +131 -0
  121. package/dist/components/core/field/FieldListViewData.tsx +313 -0
  122. package/dist/components/core/filter/SolidBooleanFilterElement.tsx +30 -0
  123. package/dist/components/core/filter/SolidFilterFields.tsx +131 -0
  124. package/dist/components/core/filter/SolidManyToManyFilterElement.tsx +64 -0
  125. package/dist/components/core/filter/SolidManyToOneFilterElement.tsx +61 -0
  126. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.tsx +50 -0
  127. package/dist/components/core/filter/SolidSelectionStaticFilterElement.tsx +32 -0
  128. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +209 -0
  129. package/dist/components/core/filter/fields/SolidBigintField.tsx +9 -0
  130. package/dist/components/core/filter/fields/SolidBooleanField.tsx +68 -0
  131. package/dist/components/core/filter/fields/SolidComputedField.tsx +23 -0
  132. package/dist/components/core/filter/fields/SolidDateField.tsx +63 -0
  133. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +54 -0
  134. package/dist/components/core/filter/fields/SolidDecimalField.tsx +9 -0
  135. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +52 -0
  136. package/dist/components/core/filter/fields/SolidFloatField.tsx +9 -0
  137. package/dist/components/core/filter/fields/SolidIdField.tsx +46 -0
  138. package/dist/components/core/filter/fields/SolidIntField.tsx +61 -0
  139. package/dist/components/core/filter/fields/SolidLongTextField.tsx +9 -0
  140. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +60 -0
  141. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +62 -0
  142. package/dist/components/core/filter/fields/SolidRelationField.tsx +17 -0
  143. package/dist/components/core/filter/fields/SolidRichTextField.tsx +9 -0
  144. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +52 -0
  145. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +54 -0
  146. package/dist/components/core/filter/fields/SolidShortTextField.tsx +60 -0
  147. package/dist/components/core/filter/fields/SolidTimeField.tsx +48 -0
  148. package/dist/components/core/filter/fields/SolidUuidField.tsx +51 -0
  149. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +62 -0
  150. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +84 -0
  151. package/dist/components/core/form/SolidFormActionHeader.tsx +497 -0
  152. package/dist/components/core/form/SolidFormFieldRender.tsx +53 -0
  153. package/dist/components/core/form/SolidFormFieldRenderExtension.tsx +26 -0
  154. package/dist/components/core/form/SolidFormFooter.tsx +162 -0
  155. package/dist/components/core/form/SolidFormLayouts.tsx +104 -0
  156. package/dist/components/core/form/SolidFormUserViewLayout.tsx +84 -0
  157. package/dist/components/core/form/SolidFormView.tsx +1856 -0
  158. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +52 -0
  159. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +52 -0
  160. package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +109 -0
  161. package/dist/components/core/form/fields/ISolidField.tsx +71 -0
  162. package/dist/components/core/form/fields/SolidBooleanField.tsx +434 -0
  163. package/dist/components/core/form/fields/SolidDateField.tsx +247 -0
  164. package/dist/components/core/form/fields/SolidDateTimeField.tsx +229 -0
  165. package/dist/components/core/form/fields/SolidDecimalField.tsx +171 -0
  166. package/dist/components/core/form/fields/SolidEmailField.tsx +176 -0
  167. package/dist/components/core/form/fields/SolidIntegerField.tsx +282 -0
  168. package/dist/components/core/form/fields/SolidJsonField.tsx +185 -0
  169. package/dist/components/core/form/fields/SolidLongTextField.tsx +618 -0
  170. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +663 -0
  171. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +547 -0
  172. package/dist/components/core/form/fields/SolidPasswordField.tsx +390 -0
  173. package/dist/components/core/form/fields/SolidRelationField.tsx +56 -0
  174. package/dist/components/core/form/fields/SolidRichTextField.tsx +188 -0
  175. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +340 -0
  176. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +462 -0
  177. package/dist/components/core/form/fields/SolidShortTextField.tsx +399 -0
  178. package/dist/components/core/form/fields/SolidTimeField.tsx +245 -0
  179. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +453 -0
  180. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1036 -0
  181. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +627 -0
  182. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +38 -0
  183. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +64 -0
  184. package/dist/components/core/form/fields/widgets/SolidAiInteractionMessageFieldFormWidget.tsx +135 -0
  185. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +144 -0
  186. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +265 -0
  187. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +32 -0
  188. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +50 -0
  189. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +222 -0
  190. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +70 -0
  191. package/dist/components/core/form/widgets/CustomHtml.tsx +20 -0
  192. package/dist/components/core/kanban/KanbanBoard.tsx +150 -0
  193. package/dist/components/core/kanban/KanbanCard.tsx +279 -0
  194. package/dist/components/core/kanban/KanbanColumn.tsx +139 -0
  195. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +84 -0
  196. package/dist/components/core/kanban/SolidKanbanView.tsx +894 -0
  197. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +154 -0
  198. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  199. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  200. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  201. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  202. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  203. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  204. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
  205. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  206. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  207. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  208. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  209. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  210. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  211. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  212. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  213. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  214. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
  215. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
  216. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  217. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  218. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
  219. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  220. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  221. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  222. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  223. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  224. package/dist/components/core/list/ListViewRowActionPopup.tsx +41 -0
  225. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +242 -0
  226. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +111 -0
  227. package/dist/components/core/list/SolidListView.tsx +2007 -0
  228. package/dist/components/core/list/SolidListViewColumn.tsx +165 -0
  229. package/dist/components/core/list/SolidListViewConfigure.tsx +339 -0
  230. package/dist/components/core/list/SolidListViewHeaderButton.tsx +31 -0
  231. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +30 -0
  232. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +41 -0
  233. package/dist/components/core/list/SolidListViewShimmerLoading.tsx +78 -0
  234. package/dist/components/core/list/SolidListingHeader.tsx +42 -0
  235. package/dist/components/core/list/SolidManyToOneFilterElement.tsx +60 -0
  236. package/dist/components/core/list/SolidSelectionDynamicFilterElement.tsx +50 -0
  237. package/dist/components/core/list/SolidSelectionStaticFilterElement.tsx +32 -0
  238. package/dist/components/core/list/SolidTableRowCell.tsx +35 -0
  239. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  240. package/dist/components/core/list/columns/SolidBigintColumn.tsx +9 -0
  241. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +90 -0
  242. package/dist/components/core/list/columns/SolidComputedColumn.tsx +27 -0
  243. package/dist/components/core/list/columns/SolidDateColumn.tsx +90 -0
  244. package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +79 -0
  245. package/dist/components/core/list/columns/SolidDecimalColumn.tsx +9 -0
  246. package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +80 -0
  247. package/dist/components/core/list/columns/SolidFloatColumn.tsx +9 -0
  248. package/dist/components/core/list/columns/SolidIdColumn.tsx +79 -0
  249. package/dist/components/core/list/columns/SolidIntColumn.tsx +87 -0
  250. package/dist/components/core/list/columns/SolidLongTextColumn.tsx +9 -0
  251. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +301 -0
  252. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +170 -0
  253. package/dist/components/core/list/columns/SolidRelationColumn.tsx +21 -0
  254. package/dist/components/core/list/columns/SolidRichTextColumn.tsx +9 -0
  255. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +80 -0
  256. package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +81 -0
  257. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +160 -0
  258. package/dist/components/core/list/columns/SolidTimeColumn.tsx +78 -0
  259. package/dist/components/core/list/columns/SolidUuidColumn.tsx +79 -0
  260. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +106 -0
  261. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +117 -0
  262. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +110 -0
  263. package/dist/components/core/list/widgets/SolidManyToManyRelationAvatarListWidget.tsx +30 -0
  264. package/dist/components/core/list/widgets/SolidManyToOneRelationAvatarListWidget.tsx +30 -0
  265. package/dist/components/core/list/widgets/SolidShortTextAvatarWidget.tsx +70 -0
  266. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +21 -0
  267. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +91 -0
  268. package/dist/components/core/locales/SolidLocale.tsx +127 -0
  269. package/dist/components/core/model/CreateModel.tsx +495 -0
  270. package/dist/components/core/model/FieldMetaData.tsx +263 -0
  271. package/dist/components/core/model/FieldMetaDataForm.tsx +3509 -0
  272. package/dist/components/core/model/FieldSelector.tsx +62 -0
  273. package/dist/components/core/model/ModelListViewData.tsx +384 -0
  274. package/dist/components/core/model/ModelMetaData.tsx +921 -0
  275. package/dist/components/core/module/CreateModule.tsx +617 -0
  276. package/dist/components/core/module/ModuleListViewData.tsx +431 -0
  277. package/dist/components/core/solid-ai/SolidAiMainWrapper.tsx +8 -0
  278. package/dist/components/core/solid-ai/SolidXAIIcon.tsx +37 -0
  279. package/dist/components/core/users/CreateUser.tsx +467 -0
  280. package/dist/components/core/users/CreateUserRole.tsx +212 -0
  281. package/dist/components/core/users/UserListView.tsx +376 -0
  282. package/dist/components/layout/AdminLayout.tsx +57 -0
  283. package/dist/components/layout/AdminSidebar.tsx +65 -0
  284. package/dist/components/layout/AppConfig.tsx +104 -0
  285. package/dist/components/layout/AppSidebar.tsx +232 -0
  286. package/dist/components/layout/ButtonLoader.tsx +7 -0
  287. package/dist/components/layout/CustomPagination.tsx +55 -0
  288. package/dist/components/layout/DashboardHeader.tsx +89 -0
  289. package/dist/components/layout/FilterMenu.tsx +122 -0
  290. package/dist/components/layout/Footer.tsx +13 -0
  291. package/dist/components/layout/GlobalSearch.tsx +37 -0
  292. package/dist/components/layout/Header.tsx +8 -0
  293. package/dist/components/layout/Layout.tsx +205 -0
  294. package/dist/components/layout/ListingHeader.tsx +204 -0
  295. package/dist/components/layout/Loader.tsx +16 -0
  296. package/dist/components/layout/UserSidebar.tsx +53 -0
  297. package/dist/components/layout/context/layoutcontext.tsx +52 -0
  298. package/dist/components/layout/navbar-one.tsx +258 -0
  299. package/dist/components/layout/navbar-two-menu.tsx +72 -0
  300. package/dist/components/layout/navbar-two.tsx +37 -0
  301. package/dist/components/layout/user-profile-menu.tsx +213 -0
  302. package/dist/components/layout/user-profile.tsx +7 -0
  303. package/dist/components/modelsComponents/filterIcon.tsx +9 -0
  304. package/dist/constants/error-messages.ts +238 -0
  305. package/dist/declarations.d.ts +22 -0
  306. package/dist/helpers/AppTitle.tsx +12 -0
  307. package/dist/helpers/ToastContainer.tsx +94 -0
  308. package/dist/helpers/autoCompleteVirtualScroll.ts +41 -0
  309. package/dist/helpers/countries.tsx +260 -0
  310. package/dist/helpers/downloadFileWithProgress.ts +91 -0
  311. package/dist/helpers/downloadMediaFile.tsx +21 -0
  312. package/dist/helpers/getAcceptedFileTypes.tsx +22 -0
  313. package/dist/helpers/getRandomColors.tsx +68 -0
  314. package/dist/helpers/helpers.ts +61 -0
  315. package/dist/helpers/hydrateRelationRules.ts +120 -0
  316. package/dist/helpers/permissions.ts +7 -0
  317. package/dist/helpers/registry.ts +337 -0
  318. package/dist/helpers/resendOtpHelper.tsx +5 -0
  319. package/dist/helpers/revalidate.ts +7 -0
  320. package/dist/helpers/rolesHelper.ts +17 -0
  321. package/dist/helpers/solidIcons.tsx +1831 -0
  322. package/dist/helpers/updatePasswordField.ts +41 -0
  323. package/dist/index.ts +421 -0
  324. package/dist/nextAuth/authProviders.d.ts.map +1 -1
  325. package/dist/nextAuth/authProviders.js +6 -5
  326. package/dist/nextAuth/authProviders.js.map +1 -1
  327. package/dist/nextAuth/authProviders.tsx +232 -0
  328. package/dist/nextAuth/handleLogout.tsx +39 -0
  329. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  330. package/dist/redux/api/aiInteractionApi.ts +59 -0
  331. package/dist/redux/api/authApi.ts +131 -0
  332. package/dist/redux/api/dashboardApi.ts +56 -0
  333. package/dist/redux/api/dashboardQuestionApi.ts +17 -0
  334. package/dist/redux/api/exportTemplateApi.tsx +59 -0
  335. package/dist/redux/api/fetchBaseQuery.tsx +118 -0
  336. package/dist/redux/api/fieldApi.ts +86 -0
  337. package/dist/redux/api/importTransactionApi.tsx +69 -0
  338. package/dist/redux/api/mediaApi.ts +55 -0
  339. package/dist/redux/api/mediaStorageProviderApi.ts +55 -0
  340. package/dist/redux/api/modelApi.ts +80 -0
  341. package/dist/redux/api/moduleApi.ts +72 -0
  342. package/dist/redux/api/permissionApi.ts +32 -0
  343. package/dist/redux/api/pincodeApi.tsx +56 -0
  344. package/dist/redux/api/roleApi.ts +58 -0
  345. package/dist/redux/api/solidActionApi.ts +66 -0
  346. package/dist/redux/api/solidChatterMessageApi.ts +25 -0
  347. package/dist/redux/api/solidEntityApi.tsx +164 -0
  348. package/dist/redux/api/solidMenuApi.ts +71 -0
  349. package/dist/redux/api/solidServiceApi.ts +31 -0
  350. package/dist/redux/api/solidSettingsApi.tsx +83 -0
  351. package/dist/redux/api/solidViewApi.ts +73 -0
  352. package/dist/redux/api/stateApi.tsx +56 -0
  353. package/dist/redux/api/testApi.ts +21 -0
  354. package/dist/redux/api/userApi.ts +135 -0
  355. package/dist/redux/features/authSlice.ts +19 -0
  356. package/dist/redux/features/dataViewSlice.ts +26 -0
  357. package/dist/redux/features/navbarSlice.ts +21 -0
  358. package/dist/redux/features/popupSlice.ts +37 -0
  359. package/dist/redux/features/settingsSlice.ts +60 -0
  360. package/dist/redux/features/themeSlice.ts +17 -0
  361. package/dist/redux/features/userSlice.ts +28 -0
  362. package/dist/redux/hooks/useSolidPopup.ts +20 -0
  363. package/dist/redux/store/defaultStoreConfig.ts +62 -0
  364. package/dist/styles.ts +4 -0
  365. package/dist/types/handlebars.d.ts +4 -0
  366. package/dist/types/index.d.ts +76 -0
  367. package/dist/types/layout.d.ts +94 -0
  368. package/dist/types/next-auth.d.ts +0 -0
  369. package/dist/types/next.d.ts +46 -0
  370. package/dist/types/solid-core.d.ts +320 -0
  371. package/package.json +1 -1
  372. package/src/components/auth/SolidLogin.tsx +26 -13
  373. package/src/nextAuth/authProviders.tsx +9 -5
@@ -0,0 +1,617 @@
1
+ "use client"
2
+ import { BackButton } from "../../../components/common/BackButton";
3
+ import { CancelButton } from "../../../components/common/CancelButton";
4
+ import { DropzonePlaceholder } from "../../../components/common/DropzonePlaceholder";
5
+ import { DropzoneUpload } from "../../../components/common/DropzoneUpload";
6
+ import { FileReaderExt } from "../../../components/common/FileReaderExt";
7
+ import { SingleSelectAutoCompleteField } from "../../../components/common/SingleSelectAutoCompleteField";
8
+ import { SolidBreadcrumb } from "../../../components/common/SolidBreadcrumb";
9
+ import { SolidFormHeader } from "../../../components/common/SolidFormHeader";
10
+ import { SolidFormStepper } from "../../../components/common/SolidFormStepper";
11
+ import { ERROR_MESSAGES } from "../../../constants/error-messages";
12
+ import { getSingularAndPlural } from "../../../helpers/helpers";
13
+ import { handleError } from "../../../helpers/ToastContainer";
14
+ import { useGetFieldDefaultMetaDataQuery } from "../../../redux/api/fieldApi";
15
+ import { useDeleteMediaMutation } from "../../../redux/api/mediaApi";
16
+ import { useCreatemoduleMutation, useDeletemoduleMutation, useUpdatemoduleMutation } from "../../../redux/api/moduleApi";
17
+ import { useFormik } from "formik";
18
+ import { usePathname, useRouter } from "next/navigation";
19
+ import { Button } from "primereact/button";
20
+ import { Checkbox } from "primereact/checkbox";
21
+ import { Divider } from "primereact/divider";
22
+ import { InputText } from "primereact/inputtext";
23
+ import { InputTextarea } from "primereact/inputtextarea";
24
+ import { Message } from "primereact/message";
25
+ import { OverlayPanel } from "primereact/overlaypanel";
26
+ import { Panel } from "primereact/panel";
27
+ import { ProgressBar } from "primereact/progressbar";
28
+ import { Toast } from "primereact/toast";
29
+ import { classNames } from "primereact/utils";
30
+ import React, { useEffect, useRef, useState } from "react";
31
+ import { useDropzone } from "react-dropzone";
32
+ import { useSelector } from "react-redux";
33
+ import * as Yup from "yup";
34
+
35
+ const footer = (
36
+ <>
37
+ <Divider />
38
+ <p className="mt-2">Suggestions</p>
39
+ <ul className="pl-2 ml-2 mt-0 line-height-3">
40
+ <li>At least one lowercase</li>
41
+ <li>At least one uppercase</li>
42
+ <li>At least one numeric</li>
43
+ <li>Minimum 8 characters</li>
44
+ </ul>
45
+ </>
46
+ );
47
+
48
+ const CreateModule = ({ data }: any) => {
49
+ const toast = useRef<Toast>(null);
50
+ const router = useRouter();
51
+ const pathname = usePathname()
52
+ const [isDialogVisible, setDialogVisible] = useState(false);
53
+ const [isImageDialogVisible, setImageDialogVisible] = useState(false);
54
+ const [isLoadingData, setIsLoadingData] = useState(data ? true : false);
55
+
56
+ const [menuIconPreview, setmenuIconPreview] = useState<
57
+ string | ArrayBuffer | null
58
+ >(null);
59
+ const [uploadProgress, setUploadProgress] = useState<number>(0);
60
+ const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);
61
+ const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);
62
+ const [uploadedSize, setUploadedSize] = useState<string>("0 MB");
63
+ const [totalSize, setTotalSize] = useState<string>("0 KB");
64
+
65
+ const formatFileSize = (size: number) => {
66
+ return size >= 1024 * 1024
67
+ ? `${(size / (1024 * 1024)).toFixed(1)} MB`
68
+ : `${(size / 1024).toFixed(1)} KB`;
69
+ };
70
+
71
+ const [
72
+ CreateModule,
73
+ { isLoading, isSuccess, isError, error, data: newModule },
74
+ ] = useCreatemoduleMutation();
75
+
76
+ const [
77
+ UpdateModule,
78
+ { isLoading: isModuleUpdateLoading, isSuccess: isModuleUpdateSuccess, isError: isModuleUpdateError, error: updateModuleError, data: updatedModule },
79
+ ] = useUpdatemoduleMutation();
80
+
81
+ const { data: fieldDefaultMetaData, isLoading: isFieldDefaultMetaDataLoading, error: FieldDefaultMetaDataError, refetch: fieldDefaultMetaDataRefech } = useGetFieldDefaultMetaDataQuery(null);
82
+
83
+ const [
84
+ deleteModule,
85
+ { isLoading: isModuleDeleted, isSuccess: isDeleteModuleSuceess, isError: isModuleDeleteError, error: ModuleDeleteError, data: DeletedModule },
86
+ ] = useDeletemoduleMutation();
87
+
88
+ const [
89
+ deleteMedia,
90
+ { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },
91
+ ] = useDeleteMediaMutation();
92
+
93
+ const initialValues = {
94
+ name: data ? data.name : "",
95
+ displayName: data ? data.displayName : "",
96
+ description: data ? data.description : "",
97
+ defaultDataSource: data ? data.defaultDataSource : "",
98
+ isSystem: data ? data.isSystem : false,
99
+ menuIconUrl: data ? data.menuIconUrl : "",
100
+ menuSequenceNumber: data ? data.menuSequenceNumber : ""
101
+ };
102
+
103
+
104
+ const validationSchema = Yup.object({
105
+ name: Yup.string()
106
+ // .matches(
107
+ // /^[a-z]+(-[a-z]+)*$/,
108
+ // "Invalid format. Use lowercase letters and hyphens only."
109
+ // )
110
+ .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),
111
+ displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED("Display Name")),
112
+ description: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED("Description Name")),
113
+ defaultDataSource: Yup.string(),
114
+ menuIconUrl: Yup.string().nullable(),
115
+ isSystem: Yup.boolean(),
116
+ menuSequenceNumber: Yup.number(),
117
+
118
+ });
119
+
120
+ const dataSources = [
121
+ { label: "Mysql", value: "mysql" },
122
+ { label: "Postgres", value: "postgres" },
123
+ { label: "Mssql", value: "mssql" },
124
+ { label: "Oracle", value: "oracle" },
125
+ { label: "Mariadb", value: "mariadb" },
126
+ ];
127
+
128
+ const isFormFieldValid = (formik: any, fieldName: string) =>
129
+ formik.touched[fieldName] && formik.errors[fieldName];
130
+
131
+ const formik = useFormik({
132
+ initialValues,
133
+ validationSchema,
134
+ enableReinitialize: true,
135
+ onSubmit: async (values) => {
136
+ try {
137
+ let formData = new FormData();
138
+ formData.append('name', values.name);
139
+ formData.append('displayName', values.displayName.trim());
140
+ formData.append('description', values.description);
141
+ formData.append('defaultDataSource', values.defaultDataSource);
142
+ formData.append('isSystem', values.isSystem == "true" ? "true" : "");
143
+ if (values.menuIconUrl) {
144
+ formData.append('menuIconUrl', values.menuIconUrl);
145
+ }
146
+ formData.append('menuSequenceNumber', values.menuSequenceNumber);
147
+
148
+ // let formData = new FormData();
149
+ // formData.append('name', values.name);
150
+ // formData.append('displayName', values.displayName);
151
+ // formData.append('description', values.description);
152
+ // formData.append('defaultDataSource', values.defaultDataSource);
153
+ if (data) {
154
+ UpdateModule({ id: data.id, data: formData });
155
+ } else {
156
+ CreateModule(formData);
157
+ }
158
+ } catch (err) {
159
+ console.error(ERROR_MESSAGES.FAILED_CREATE_MENU, err);
160
+ }
161
+ },
162
+ });
163
+
164
+ const handleDropmenuIcon = (acceptedFiles: File[]) => {
165
+ const file = acceptedFiles[0];
166
+ if (!file) return;
167
+
168
+ setUploadCompleted(false);
169
+ setUploadProgress(0);
170
+ setTotalSize(formatFileSize(file.size));
171
+ setUploadedSize("0 KB");
172
+ setFileDetails({ name: file.name, type: file.type });
173
+
174
+ const reader = new FileReader();
175
+
176
+ reader.onloadstart = () => {
177
+ setUploadProgress(0);
178
+ setUploadedSize("0 KB");
179
+ };
180
+ reader.onprogress = (event) => {
181
+ if (event.loaded && event.total) {
182
+ const percent = Math.round((event.loaded / event.total) * 100);
183
+ setUploadProgress(percent);
184
+ setUploadedSize(formatFileSize(event.loaded));
185
+ }
186
+ };
187
+
188
+ reader.onloadend = () => {
189
+ setUploadProgress(100);
190
+ setUploadCompleted(true);
191
+ setUploadedSize(totalSize); // Set uploaded size to total size after completion
192
+ };
193
+
194
+ reader.readAsDataURL(file);
195
+ formik.setFieldValue("menuIconUrl", file);
196
+ };
197
+
198
+ const { getRootProps: getRootPropsmenuIcon, getInputProps: getInputPropsmenuIcon, isDragActive: isDragActivemenuIcon } = useDropzone({
199
+ onDrop: handleDropmenuIcon,
200
+ accept: {
201
+ 'image/jpeg': [],
202
+ 'image/png': [],
203
+ 'image/svg+xml': ['.svg']
204
+ },
205
+ maxSize: 2 * 1024 * 1024, // 2MB
206
+ });
207
+
208
+ useEffect(() => {
209
+ if (data) {
210
+ setmenuIconPreview(`${process.env.API_URL}/${data.menuIconUrl}`);
211
+
212
+ const fileName = data?.menuIconUrl?.split("/").pop(); // Extract filename from URL
213
+ setFileDetails({ name: fileName || "Unknown File", type: "Uploaded File" });
214
+
215
+ // Set the upload progress to 100% since the file is already uploaded
216
+ setUploadProgress(100);
217
+ setUploadCompleted(true);
218
+
219
+ // Ensure Formik has the existing file URL
220
+ formik.setFieldValue("menuIconUrl", data.menuIconUrl);
221
+ }
222
+ }, [data])
223
+ const handleCancelUpload = (e: React.MouseEvent) => {
224
+ e.stopPropagation();
225
+ setUploadProgress(0);
226
+ setUploadCompleted(false);
227
+ setFileDetails(null);
228
+ formik.setFieldValue("menuIconUrl", null);
229
+ };
230
+
231
+
232
+ const deteleAction = async () => {
233
+ deleteModule(data.id);
234
+ }
235
+
236
+ const showError = async () => {
237
+ const errors = await formik.validateForm(); // Trigger validation and get the updated errors
238
+ const errorMessages = Object.values(errors);
239
+
240
+ if (errorMessages.length > 0 && toast.current) {
241
+ handleError(errorMessages)
242
+ // toast.current.show({
243
+ // severity: "success",
244
+ // summary: "Can you send me the report?",
245
+ // // sticky: true,
246
+ // life: 3000,
247
+ // //@ts-ignore
248
+ // content: (props) => (
249
+ // <div
250
+ // className="flex flex-column align-items-left"
251
+ // style={{ flex: "1" }}
252
+ // >
253
+ // {errorMessages.map((m: any, index) => (
254
+ // <div className="flex align-items-center gap-2" key={index}>
255
+ // <span className="font-bold text-900">{m}</span>
256
+ // </div>
257
+ // ))}
258
+ // </div>
259
+ // ),
260
+ // });
261
+ }
262
+ };
263
+
264
+ const showCustomeError = async (error: string[]) => {
265
+ if (error.length > 0 && toast.current) {
266
+ toast.current.show({
267
+ severity: "error",
268
+ summary: ERROR_MESSAGES.SEND_REPORT,
269
+ // sticky: true,
270
+ life: 3000,
271
+ //@ts-ignore
272
+ content: (props) => (
273
+ <div
274
+ className="flex flex-column align-items-left"
275
+ style={{ flex: "1" }}
276
+ >
277
+ {error.map((m: any, index) => (
278
+ <div className="flex align-items-center gap-2" key={index}>
279
+ <span className="font-bold text-900">{m}</span>
280
+ </div>
281
+ ))}
282
+ </div>
283
+ ),
284
+ });
285
+ }
286
+ };
287
+
288
+ useEffect(() => {
289
+ if (isSuccess == true || isDeleteModuleSuceess == true || isModuleUpdateSuccess == true) {
290
+ router.push(`/admin/core/solid-core/module-metadata/list`);
291
+ }
292
+ }, [isSuccess, isDeleteModuleSuceess, isModuleUpdateSuccess])
293
+
294
+
295
+
296
+ const serachDDefaultDataSource = async (event: any) => {
297
+ const query = event.query;
298
+ try {
299
+ const filterredData: any = fieldDefaultMetaData.data.dataSource.filter((t: any) => t.name.toLowerCase().startsWith(query.toLowerCase()));
300
+ const transformedData = filterredData.map((e: any) => ({ label: e.name, value: e.name, type: e.type }));
301
+ return transformedData
302
+ } catch (error) {
303
+ console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);
304
+ return []
305
+ }
306
+ };
307
+
308
+
309
+ // Error Handler
310
+
311
+ useEffect(() => {
312
+ const errors = [
313
+ { isError, error },
314
+ { isError: isModuleUpdateError, error: updateModuleError },
315
+ { isError: isModuleDeleteError, error: ModuleDeleteError },
316
+ { isError: isMediaDeleteError, error: mediaDeleteError },
317
+ ];
318
+
319
+ // Handle any error
320
+ errors.forEach(({ isError, error }) => {
321
+ if (isError && error) {
322
+ handleError(error); // Call the centralized error handler
323
+ }
324
+ });
325
+ }, [isError, isModuleUpdateError, isModuleDeleteError, isMediaDeleteError])
326
+
327
+ const op = useRef(null);
328
+
329
+ const formActionDropdown = () => {
330
+ return (
331
+ <div>
332
+ <Button
333
+ outlined
334
+ severity="secondary"
335
+ type="button"
336
+ icon={'pi pi-cog'}
337
+ size="small"
338
+ className="surface-card p-0"
339
+ style={{
340
+ height: 33.06,
341
+ width: 33.06
342
+ }}
343
+ onClick={(e) =>
344
+ // @ts-ignore
345
+ op.current.toggle(e)
346
+ }
347
+ />
348
+ <OverlayPanel ref={op} className="solid-custom-overlay">
349
+ <div className="flex flex-column gap-1 p-1">
350
+ {/* <Button
351
+ text
352
+ type="button"
353
+ className="w-8rem text-left gap-2 text-color"
354
+ label="Duplicate"
355
+ size="small"
356
+ iconPos="left"
357
+ icon={<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
358
+ <path d="M6 11.9997C5.63333 11.9997 5.31944 11.8691 5.05833 11.608C4.79722 11.3469 4.66667 11.033 4.66667 10.6663V2.66634C4.66667 2.29967 4.79722 1.98579 5.05833 1.72467C5.31944 1.46356 5.63333 1.33301 6 1.33301H12C12.3667 1.33301 12.6806 1.46356 12.9417 1.72467C13.2028 1.98579 13.3333 2.29967 13.3333 2.66634V10.6663C13.3333 11.033 13.2028 11.3469 12.9417 11.608C12.6806 11.8691 12.3667 11.9997 12 11.9997H6ZM6 10.6663H12V2.66634H6V10.6663ZM3.33333 14.6663C2.96667 14.6663 2.65278 14.5358 2.39167 14.2747C2.13056 14.0136 2 13.6997 2 13.333V3.99967H3.33333V13.333H10.6667V14.6663H3.33333Z" fill="black" fill-opacity="0.88" />
359
+ </svg>}
360
+ /> */}
361
+ <Button
362
+ text
363
+ type="button"
364
+ className="w-8rem text-left gap-2"
365
+ label="Delete"
366
+ size="small"
367
+ iconPos="left"
368
+ severity="danger"
369
+ icon={'pi pi-trash'}
370
+ onClick={deteleAction}
371
+ />
372
+ </div>
373
+ </OverlayPanel>
374
+ </div>
375
+ )
376
+ }
377
+
378
+ return (
379
+ <div className="solid-form-wrapper">
380
+ <Toast ref={toast} />
381
+ <form style={{ width: '100%', borderRight: '1px solid var(--primary-light-color' }} onSubmit={formik.handleSubmit}>
382
+ <div className="solid-form-header">
383
+ {pathname.includes('new') ?
384
+ <>
385
+ <div className="flex align-items-center gap-3">
386
+ <BackButton />
387
+ <div className="form-wrapper-title">Create Module</div>
388
+ </div>
389
+ <div className="gap-3 flex">
390
+ {formik.dirty &&
391
+ <Button label="Save" size="small" onClick={() => showError()} type="submit" />
392
+ }
393
+ <CancelButton />
394
+ </div>
395
+ </>
396
+ :
397
+ <>
398
+ <div className="flex align-items-center gap-3">
399
+ <BackButton />
400
+ <div className="form-wrapper-title"> Edit Module</div>
401
+ </div>
402
+ <div className="gap-3 flex">
403
+ {data?.isSystem !== true &&
404
+ <>
405
+ {formik.dirty &&
406
+ <Button label="Save" size="small" onClick={() => showError()} type="submit" />
407
+ }
408
+ <CancelButton />
409
+ {formActionDropdown()}
410
+ </>
411
+ }
412
+ </div>
413
+ </>
414
+ }
415
+ </div>
416
+ <SolidFormHeader />
417
+ {/* <div className="solid-form-stepper">
418
+ <SolidFormStepper />
419
+ </div> */}
420
+ <div className="px-4 py-3 md:p-4 solid-form-content">
421
+ {/* <p className="form-wrapper-heading text-base">Basic Info</p> */}
422
+ <Panel header={"Basic Info"} className="solid-column-panel">
423
+ <div className="formgrid grid mt-3">
424
+ <div className="field col-12 pb-3 lg:pb-0 lg:col-6 flex flex-column gap-2">
425
+ <label htmlFor="displayName" className="form-field-label">
426
+ Display Name <span style={{ color: 'red' }}>*</span>
427
+ </label>
428
+ <InputText
429
+ disabled={data ? true : false}
430
+ type="text"
431
+ id="displayName"
432
+ name="displayName"
433
+ // onChange={formik.handleChange}
434
+ onChange={(e) => {
435
+ formik.handleChange(e);
436
+ const { toKebabCase, toSnakeCase, toPluralCamelCase } = getSingularAndPlural(e.target.value);
437
+ if (pathname.includes('new')) {
438
+ formik.setFieldValue("name", toKebabCase);
439
+ }
440
+
441
+ }}
442
+ value={formik.values.displayName}
443
+ className={classNames("", {
444
+ "p-invalid": isFormFieldValid(formik, "displayName"),
445
+ })}
446
+ />
447
+ {isFormFieldValid(formik, "displayName") && (
448
+ <Message
449
+ severity="error"
450
+ text={formik?.errors?.displayName?.toString()}
451
+ />
452
+ )}
453
+ </div>
454
+ <div className="field col-12 lg:col-6 flex flex-column gap-2">
455
+ <label htmlFor="name" className="form-field-label">
456
+ Name <span style={{ color: 'red' }}>*</span>
457
+ </label>
458
+ <InputText
459
+ disabled
460
+ type="text"
461
+ id="name"
462
+ name="name"
463
+ onChange={formik.handleChange}
464
+ value={formik.values.name}
465
+ className={classNames("", {
466
+ "p-invalid": isFormFieldValid(formik, "name"),
467
+ })}
468
+ />
469
+ {isFormFieldValid(formik, "name") && (
470
+ <Message severity="error" text={formik?.errors?.name?.toString()} />
471
+ )}
472
+ </div>
473
+ </div>
474
+ <div className="formgrid grid mt-4">
475
+ <div className="field col-12 pb-3 ld:pb-0 lg:col-6 flex flex-column gap-2">
476
+ <label htmlFor="description" className="form-field-label">
477
+ Menu Sequence Number
478
+ </label>
479
+ <InputText
480
+ id="menuSequenceNumber"
481
+ type="number"
482
+ onChange={formik.handleChange}
483
+ min={0}
484
+ value={formik.values.menuSequenceNumber}
485
+ className={classNames("", {
486
+ "p-invalid": isFormFieldValid(formik, "menuSequenceNumber"),
487
+ })}
488
+ />
489
+ {isFormFieldValid(formik, "menuSequenceNumber") && (
490
+ <Message
491
+ severity="error"
492
+ text={formik?.errors?.menuSequenceNumber?.toString()}
493
+ />
494
+ )}
495
+ </div>
496
+ <div className="field col-12 lg:col-6 flex flex-column gap-2">
497
+ <label htmlFor="description" className="form-field-label">
498
+ Description <span style={{ color: 'red' }}>*</span>
499
+ </label>
500
+ <InputTextarea
501
+ id="description"
502
+ name="description"
503
+ onChange={formik.handleChange}
504
+ value={formik.values.description}
505
+ className={classNames("", {
506
+ "p-invalid": isFormFieldValid(formik, "description"),
507
+ })}
508
+ rows={5}
509
+ cols={30}
510
+ />
511
+ {isFormFieldValid(formik, "description") && (
512
+ <Message
513
+ severity="error"
514
+ text={formik?.errors?.description?.toString()}
515
+ />
516
+ )}
517
+ </div>
518
+ </div>
519
+ </Panel>
520
+ {/* <Divider /> */}
521
+ {/* <p className="form-wrapper-heading text-base" style={{ fontSize: 16 }}>Configurations</p> */}
522
+ <Panel header={"Configurations"} className="solid-column-panel mt-4">
523
+ <div className="formgrid grid mt-3">
524
+ <div className="field col-12 pb-3 lg:pb-0 lg:col-6 flex flex-column gap-2">
525
+ <label htmlFor="defaultDataSource" className="form-field-label">
526
+ Default Data Source
527
+ </label>
528
+ <SingleSelectAutoCompleteField
529
+ disabled={data ? true : false}
530
+ key="defaultDataSource"
531
+ formik={formik}
532
+ isFormFieldValid={isFormFieldValid}
533
+ // relationField={false}
534
+ fieldName="defaultDataSource"
535
+ fieldNameId={null}
536
+ labelKey="label"
537
+ valueKey="value"
538
+ searchData={serachDDefaultDataSource}
539
+ existingData={formik.values.defaultDataSource}
540
+ />
541
+ {isFormFieldValid(formik, "defaultDataSource") && (
542
+ <Message
543
+ severity="error"
544
+ text={formik?.errors?.defaultDataSource?.toString()}
545
+ />
546
+ )}
547
+ </div>
548
+ <div className="field col-12 lg:col-6 flex flex-column gap-2">
549
+ <label htmlFor="menuIconUrl" className="form-label form-field-label">
550
+ Menu Icon <small className="text-red-500 helper-text">(only svg, png and jpeg are allowed)</small>
551
+ </label>
552
+ <div {...getRootPropsmenuIcon()} className="solid-dropzone-wrapper">
553
+ <input {...getInputPropsmenuIcon()} />
554
+ <DropzonePlaceholder />
555
+ </div>
556
+ {isFormFieldValid(formik, "menuIconUrl") && (
557
+ <Message severity="error" text={formik?.errors?.menuIconUrl?.toString()} />
558
+ )}
559
+
560
+ {fileDetails && (
561
+ <div className="solid-file-upload-wrapper">
562
+ <div className="flex align-items-center gap-2">
563
+ <FileReaderExt fileDetails={fileDetails} />
564
+ <div className="w-full flex flex-column gap-1">
565
+ <div className="flex align-items-center justify-content-between">
566
+ <div className="font-bold solid-module-mobile-text-wrapper">{fileDetails.name}</div>
567
+ <div className="cancel-upload-button" onClick={handleCancelUpload}>
568
+ <svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" fill="none">
569
+ <path d="M0.6 6L0 5.4L2.4 3L0 0.6L0.6 0L3 2.4L5.4 0L6 0.6L3.6 3L6 5.4L5.4 6L3 3.6L0.6 6Z" fill="#4B4D52" />
570
+ </svg>
571
+ </div>
572
+ </div>
573
+ {
574
+ uploadCompleted ?
575
+ <div className="flex align-items-center gap-2 text-sm">
576
+ {totalSize} of {totalSize}
577
+ <svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
578
+ <circle cx="2" cy="2" r="2" fill="#C1C1C1" />
579
+ </svg>
580
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
581
+ <mask id="mask0_2480_8635" style={{ maskType: 'alpha' }} maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
582
+ <rect width="20" height="20" fill="#D9D9D9" />
583
+ </mask>
584
+ <g mask="url(#mask0_2480_8635)">
585
+ <path d="M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 6.295 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z" fill="#722ED1" />
586
+ </g>
587
+ </svg>
588
+ Completed
589
+ </div>
590
+ :
591
+ <div className="flex align-items-center gap-2 text-sm">
592
+ {uploadedSize} of {totalSize}
593
+ <svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
594
+ <circle cx="2" cy="2" r="2" fill="#C1C1C1" />
595
+ </svg>
596
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
597
+ <path d="M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z" fill="black" />
598
+ </svg>
599
+ Uploading ${uploadProgress}% Completed
600
+ </div>
601
+ }
602
+ </div>
603
+ </div>
604
+ <ProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className="mt-2" />
605
+ </div>
606
+ )}
607
+ </div>
608
+ </div>
609
+ </Panel>
610
+ </div>
611
+ </form>
612
+ {/* <div style={{ width: '22.5%' }}></div> */}
613
+ </div>
614
+ );
615
+ };
616
+
617
+ export default CreateModule;