@solidxai/core-ui 0.1.5-beta.8 → 0.1.6

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 (300) hide show
  1. package/dist/components/auth/AuthTabs.d.ts +14 -0
  2. package/dist/components/auth/AuthTabs.d.ts.map +1 -0
  3. package/dist/components/auth/AuthTabs.js +19 -0
  4. package/dist/components/auth/AuthTabs.js.map +1 -0
  5. package/dist/components/auth/AuthTabs.tsx +38 -0
  6. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  7. package/dist/components/auth/GoogleAuthChecking.js +10 -10
  8. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  9. package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
  10. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  11. package/dist/components/auth/SolidChangeForcePassword.js +9 -10
  12. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  13. package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
  14. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  15. package/dist/components/auth/SolidForgotPassword.js +8 -8
  16. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  17. package/dist/components/auth/SolidForgotPassword.tsx +6 -8
  18. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  19. package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
  20. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  21. package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
  22. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  23. package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
  24. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  25. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
  26. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  27. package/dist/components/auth/SolidLogin.js +12 -12
  28. package/dist/components/auth/SolidLogin.js.map +1 -1
  29. package/dist/components/auth/SolidLogin.tsx +11 -16
  30. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  31. package/dist/components/auth/SolidRegister.js +19 -19
  32. package/dist/components/auth/SolidRegister.js.map +1 -1
  33. package/dist/components/auth/SolidRegister.tsx +18 -23
  34. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  35. package/dist/components/auth/SolidResetPassword.js +15 -15
  36. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  37. package/dist/components/auth/SolidResetPassword.tsx +7 -8
  38. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  39. package/dist/components/common/GeneralSettings.js +87 -120
  40. package/dist/components/common/GeneralSettings.js.map +1 -1
  41. package/dist/components/common/GeneralSettings.tsx +12 -42
  42. package/dist/components/common/GlobalToast.d.ts +2 -0
  43. package/dist/components/common/GlobalToast.d.ts.map +1 -0
  44. package/dist/components/common/GlobalToast.js +25 -0
  45. package/dist/components/common/GlobalToast.js.map +1 -0
  46. package/dist/components/common/GlobalToast.tsx +25 -0
  47. package/dist/components/common/SolidErrorStatePage.d.ts +12 -0
  48. package/dist/components/common/SolidErrorStatePage.d.ts.map +1 -0
  49. package/dist/components/common/SolidErrorStatePage.js +16 -0
  50. package/dist/components/common/SolidErrorStatePage.js.map +1 -0
  51. package/dist/components/common/SolidErrorStatePage.tsx +55 -0
  52. package/dist/components/common/SolidExport.d.ts.map +1 -1
  53. package/dist/components/common/SolidExport.js +19 -31
  54. package/dist/components/common/SolidExport.js.map +1 -1
  55. package/dist/components/common/SolidExport.tsx +7 -19
  56. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  57. package/dist/components/common/SolidFormStepper.js +41 -41
  58. package/dist/components/common/SolidFormStepper.js.map +1 -1
  59. package/dist/components/common/SolidFormStepper.tsx +5 -6
  60. package/dist/components/core/chatter/SolidChatterDateDivider.d.ts.map +1 -1
  61. package/dist/components/core/chatter/SolidChatterDateDivider.js +4 -1
  62. package/dist/components/core/chatter/SolidChatterDateDivider.js.map +1 -1
  63. package/dist/components/core/chatter/SolidChatterDateDivider.tsx +5 -1
  64. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  65. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
  66. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  67. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
  68. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  69. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
  70. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  71. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
  72. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  73. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
  74. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  75. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
  76. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  77. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
  78. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  79. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
  80. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  81. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
  82. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  83. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
  84. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  85. package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
  86. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  87. package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
  88. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  89. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
  90. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  91. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
  92. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
  93. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
  94. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  95. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
  96. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
  97. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
  98. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
  99. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
  100. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
  101. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
  102. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  103. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
  104. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  105. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
  106. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  107. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
  108. package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
  109. package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
  110. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  111. package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
  112. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  113. package/dist/components/core/form/SolidFormView.js +12 -21
  114. package/dist/components/core/form/SolidFormView.js.map +1 -1
  115. package/dist/components/core/form/SolidFormView.tsx +11 -33
  116. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  117. package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
  118. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  119. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
  120. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  121. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
  122. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  123. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
  124. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  125. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
  126. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  127. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
  128. package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
  129. package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
  130. package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
  131. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
  132. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  133. package/dist/components/core/kanban/SolidKanbanView.js +5 -7
  134. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  135. package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
  136. package/dist/components/core/list/PLAN.md +92 -0
  137. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  138. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
  139. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  140. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
  141. package/dist/components/core/list/SolidDataTable.d.ts +58 -0
  142. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -0
  143. package/dist/components/core/list/SolidDataTable.js +141 -0
  144. package/dist/components/core/list/SolidDataTable.js.map +1 -0
  145. package/dist/components/core/list/SolidDataTable.tsx +314 -0
  146. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  147. package/dist/components/core/list/SolidListView.js +20 -67
  148. package/dist/components/core/list/SolidListView.js.map +1 -1
  149. package/dist/components/core/list/SolidListView.tsx +9 -76
  150. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  151. package/dist/components/core/model/CreateModel.js +15 -25
  152. package/dist/components/core/model/CreateModel.js.map +1 -1
  153. package/dist/components/core/model/CreateModel.tsx +12 -32
  154. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  155. package/dist/components/core/model/FieldMetaData.js +6 -17
  156. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  157. package/dist/components/core/model/FieldMetaData.tsx +5 -26
  158. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  159. package/dist/components/core/model/ModelMetaData.js +48 -55
  160. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  161. package/dist/components/core/model/ModelMetaData.tsx +4 -22
  162. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  163. package/dist/components/core/module/CreateModule.js +42 -44
  164. package/dist/components/core/module/CreateModule.js.map +1 -1
  165. package/dist/components/core/module/CreateModule.tsx +13 -27
  166. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  167. package/dist/components/core/module/ModuleListViewData.js +11 -7
  168. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  169. package/dist/components/core/module/ModuleListViewData.tsx +10 -8
  170. package/dist/components/core/solid-ai/SolidAiChat.d.ts +3 -0
  171. package/dist/components/core/solid-ai/SolidAiChat.d.ts.map +1 -0
  172. package/dist/components/core/solid-ai/SolidAiChat.js +1043 -0
  173. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -0
  174. package/dist/components/core/solid-ai/SolidAiChat.module.css +1339 -0
  175. package/dist/components/core/solid-ai/SolidAiChat.tsx +1237 -0
  176. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  177. package/dist/components/core/tree/SolidTreeView.js +32 -69
  178. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  179. package/dist/components/core/tree/SolidTreeView.tsx +8 -47
  180. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  181. package/dist/components/core/users/CreateUser.js +24 -37
  182. package/dist/components/core/users/CreateUser.js.map +1 -1
  183. package/dist/components/core/users/CreateUser.tsx +8 -46
  184. package/dist/components/core/users/UserListView.d.ts.map +1 -1
  185. package/dist/components/core/users/UserListView.js +9 -16
  186. package/dist/components/core/users/UserListView.js.map +1 -1
  187. package/dist/components/core/users/UserListView.tsx +5 -21
  188. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  189. package/dist/components/layout/AdminLayout.js +4 -2
  190. package/dist/components/layout/AdminLayout.js.map +1 -1
  191. package/dist/components/layout/AdminLayout.tsx +4 -2
  192. package/dist/components/layout/AdminTopHeader.d.ts +2 -0
  193. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -0
  194. package/dist/components/layout/AdminTopHeader.js +80 -0
  195. package/dist/components/layout/AdminTopHeader.js.map +1 -0
  196. package/dist/components/layout/AdminTopHeader.tsx +165 -0
  197. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  198. package/dist/components/layout/AppSidebar.js +1 -2
  199. package/dist/components/layout/AppSidebar.js.map +1 -1
  200. package/dist/components/layout/AppSidebar.tsx +0 -2
  201. package/dist/components/layout/Layout.d.ts.map +1 -1
  202. package/dist/components/layout/Layout.js +2 -1
  203. package/dist/components/layout/Layout.js.map +1 -1
  204. package/dist/components/layout/Layout.tsx +2 -0
  205. package/dist/components/layout/SolidAiStudioLayout.d.ts +10 -0
  206. package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -0
  207. package/dist/components/layout/SolidAiStudioLayout.js +159 -0
  208. package/dist/components/layout/SolidAiStudioLayout.js.map +1 -0
  209. package/dist/components/layout/SolidAiStudioLayout.tsx +333 -0
  210. package/dist/components/layout/navbar-one.d.ts.map +1 -1
  211. package/dist/components/layout/navbar-one.js +1 -2
  212. package/dist/components/layout/navbar-one.js.map +1 -1
  213. package/dist/components/layout/navbar-one.tsx +0 -2
  214. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  215. package/dist/components/layout/navbar-two-menu.js +50 -24
  216. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  217. package/dist/components/layout/navbar-two-menu.tsx +48 -30
  218. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +24 -0
  219. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -0
  220. package/dist/components/shad-cn-ui/SolidAutocomplete.js +224 -0
  221. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -0
  222. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +339 -0
  223. package/dist/components/shad-cn-ui/SolidButton.d.ts +14 -0
  224. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -0
  225. package/dist/components/shad-cn-ui/SolidButton.js +36 -0
  226. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -0
  227. package/dist/components/shad-cn-ui/SolidButton.tsx +54 -0
  228. package/dist/components/shad-cn-ui/SolidInput.d.ts +5 -0
  229. package/dist/components/shad-cn-ui/SolidInput.d.ts.map +1 -0
  230. package/dist/components/shad-cn-ui/SolidInput.js +35 -0
  231. package/dist/components/shad-cn-ui/SolidInput.js.map +1 -0
  232. package/dist/components/shad-cn-ui/SolidInput.tsx +12 -0
  233. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +10 -0
  234. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +1 -0
  235. package/dist/components/shad-cn-ui/SolidNumberInput.js +33 -0
  236. package/dist/components/shad-cn-ui/SolidNumberInput.js.map +1 -0
  237. package/dist/components/shad-cn-ui/SolidNumberInput.tsx +24 -0
  238. package/dist/components/shad-cn-ui/SolidSelect.d.ts +16 -0
  239. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -0
  240. package/dist/components/shad-cn-ui/SolidSelect.js +26 -0
  241. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -0
  242. package/dist/components/shad-cn-ui/SolidSelect.tsx +65 -0
  243. package/dist/components/shad-cn-ui/SolidTabs.d.ts +18 -0
  244. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -0
  245. package/dist/components/shad-cn-ui/SolidTabs.js +22 -0
  246. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -0
  247. package/dist/components/shad-cn-ui/SolidTabs.tsx +73 -0
  248. package/dist/components/shad-cn-ui/index.d.ts +7 -0
  249. package/dist/components/shad-cn-ui/index.d.ts.map +1 -0
  250. package/dist/components/shad-cn-ui/index.js +7 -0
  251. package/dist/components/shad-cn-ui/index.js.map +1 -0
  252. package/dist/components/shad-cn-ui/index.ts +6 -0
  253. package/dist/helpers/studioSandbox.d.ts +31 -0
  254. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  255. package/dist/helpers/studioSandbox.js +104 -0
  256. package/dist/helpers/studioSandbox.js.map +1 -0
  257. package/dist/helpers/studioSandbox.ts +117 -0
  258. package/dist/index.d.ts +4 -0
  259. package/dist/index.d.ts.map +1 -1
  260. package/dist/index.js +3 -0
  261. package/dist/index.js.map +1 -1
  262. package/dist/index.ts +4 -0
  263. package/dist/redux/features/solidStudioSlice.d.ts +9 -0
  264. package/dist/redux/features/solidStudioSlice.d.ts.map +1 -0
  265. package/dist/redux/features/solidStudioSlice.js +72 -0
  266. package/dist/redux/features/solidStudioSlice.js.map +1 -0
  267. package/dist/redux/features/solidStudioSlice.ts +78 -0
  268. package/dist/redux/features/toastSlice.d.ts +15 -0
  269. package/dist/redux/features/toastSlice.d.ts.map +1 -0
  270. package/dist/redux/features/toastSlice.js +20 -0
  271. package/dist/redux/features/toastSlice.js.map +1 -0
  272. package/dist/redux/features/toastSlice.ts +35 -0
  273. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  274. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  275. package/dist/redux/store/defaultStoreConfig.js +2 -1
  276. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  277. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  278. package/dist/resources/images/errors/error-astronaut-404.png +0 -0
  279. package/dist/resources/shadcn-base.css +4171 -0
  280. package/dist/routes/SolidLayoutRegistry.d.ts +51 -0
  281. package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -0
  282. package/dist/routes/SolidLayoutRegistry.js +108 -0
  283. package/dist/routes/SolidLayoutRegistry.js.map +1 -0
  284. package/dist/routes/SolidLayoutRegistry.tsx +157 -0
  285. package/dist/routes/guards/AdminGuard.d.ts +2 -0
  286. package/dist/routes/guards/AdminGuard.d.ts.map +1 -0
  287. package/dist/routes/guards/AdminGuard.js +16 -0
  288. package/dist/routes/guards/AdminGuard.js.map +1 -0
  289. package/dist/routes/guards/AdminGuard.tsx +17 -0
  290. package/dist/routes/pages/studio/StudioHomePage.d.ts +2 -0
  291. package/dist/routes/pages/studio/StudioHomePage.d.ts.map +1 -0
  292. package/dist/routes/pages/studio/StudioHomePage.js +22 -0
  293. package/dist/routes/pages/studio/StudioHomePage.js.map +1 -0
  294. package/dist/routes/pages/studio/StudioHomePage.tsx +106 -0
  295. package/dist/routes/pages/studio/StudioLandingPage.d.ts +2 -0
  296. package/dist/routes/pages/studio/StudioLandingPage.d.ts.map +1 -0
  297. package/dist/routes/pages/studio/StudioLandingPage.js +78 -0
  298. package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -0
  299. package/dist/routes/pages/studio/StudioLandingPage.tsx +320 -0
  300. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormView.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from '../../../hooks/useSession'\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport \"primeflex/primeflex.css\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\nimport { TabPanel, TabView } from \"primereact/tabview\";\nimport { Toast } from \"primereact/toast\";\nimport qs from \"qs\";\nimport React, { ChangeEvent, useEffect, useMemo, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./fields/ISolidField\";\nimport { SolidBooleanField } from \"./fields/SolidBooleanField\";\nimport { SolidDateField } from \"./fields/SolidDateField\";\nimport { SolidDateTimeField } from \"./fields/SolidDateTimeField\";\nimport { SolidDecimalField } from \"./fields/SolidDecimalField\";\nimport { SolidIntegerField } from \"./fields/SolidIntegerField\";\nimport { SolidJsonField } from \"./fields/SolidJsonField\";\nimport { SolidLongTextField } from \"./fields/SolidLongTextField\";\nimport { SolidMediaMultipleField } from \"./fields/SolidMediaMultipleField\";\nimport { SolidMediaSingleField } from \"./fields/SolidMediaSingleField\";\nimport { SolidRelationField } from \"./fields/SolidRelationField\";\nimport { SolidRichTextField } from \"./fields/SolidRichTextField\";\nimport { SolidSelectionDynamicField } from \"./fields/SolidSelectionDynamicField\";\nimport { SolidSelectionStaticField } from \"./fields/SolidSelectionStaticField\";\nimport { SolidShortTextField } from \"./fields/SolidShortTextField\";\nimport { SolidTimeField } from \"./fields/SolidTimeField\";\nimport { SolidUiEvent } from \"../../../types\";\nimport { getExtensionComponent, getExtensionFunction } from \"../../../helpers/registry\";\nimport { SolidFormWidgetProps, SolidUiEventResponse } from \"../../../types/solid-core\";\nimport { SolidPasswordField } from \"./fields/SolidPasswordField\";\nimport { SolidEmailField } from \"./fields/SolidEmailField\";\nimport { Panel } from \"primereact/panel\";\nimport { SolidFormUserViewLayout } from \"./SolidFormUserViewLayout\";\nimport Lightbox from \"yet-another-react-lightbox\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Download from \"yet-another-react-lightbox/plugins/download\";\nimport Video from \"yet-another-react-lightbox/plugins/video\";\nimport \"yet-another-react-lightbox/styles.css\";\nimport \"yet-another-react-lightbox/plugins/counter.css\";\nimport { SolidFormActionHeader } from \"./SolidFormActionHeader\";\nimport { SolidFormViewShimmerLoading } from \"./SolidFormViewShimmerLoading\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport SolidChatterLocaleTabView from \"../locales/SolidChatterLocaleTabView\";\nimport { ConfirmDialog } from \"primereact/confirmdialog\";\nimport { SolidXAIIcon } from \"../solid-ai/SolidXAIIcon\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { SolidFormFooter } from \"./SolidFormFooter\";\nimport { normalizeSolidFormActionPath } from \"../../../helpers/routePaths\";\nimport showToast from \"../../../helpers/showToast\";\n\nexport type SolidFormViewProps = {\n moduleName: string;\n modelName: string;\n id: string;\n embeded: boolean;\n handlePopupClose?: any,\n customCreateHandler?: any\n inlineCreateAutoSave?: boolean,\n customLayout?: any,\n parentFieldName?: string,\n parentData?: any,\n redirectToPath?: string,\n onEmbeddedFormSave?: () => void,\n};\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst getLayoutFields = (node: any): any => {\n let fields = [];\n\n if (node.type === \"field\") {\n fields.push(node);\n }\n\n if (node.children && Array.isArray(node.children)) {\n for (const child of node.children) {\n fields = fields.concat(getLayoutFields(child));\n }\n }\n\n return fields;\n}\n\nexport const getLayoutFieldsAsObject = (layout: any[]): any => {\n const allFields = layout.flatMap(getLayoutFields);\n return allFields.reduce((result, field) => {\n if (field.attrs.name) {\n result[field.attrs.name] = { ...field };\n }\n return result;\n }, {});\n}\nexport const getActualFieldMetadata = (key: string, solidFieldsMetadata: Record<string, any>) => {\n if (solidFieldsMetadata[key]) {\n return solidFieldsMetadata[key];\n }\n\n if (key.endsWith(\"Confirm\")) {\n const baseKey = key.slice(0, -\"Confirm\".length); // Remove \"Confirm\"\n if (solidFieldsMetadata[baseKey]) {\n return solidFieldsMetadata[baseKey];\n }\n }\n\n return null; // or handle fallback\n};\n\n\nconst fieldFactory = (type: string, fieldContext: SolidFieldProps, setLightboxUrls?: any, setOpenLightbox?: any): ISolidField | null => {\n if (type === 'shortText') {\n return new SolidShortTextField(fieldContext);\n }\n if (type === 'longText') {\n return new SolidLongTextField(fieldContext);\n }\n if (type === 'int' || type === 'bigint') {\n return new SolidIntegerField(fieldContext);\n }\n if (type === 'decimal' || type === 'float') {\n return new SolidDecimalField(fieldContext);\n }\n if (type === 'boolean') {\n return new SolidBooleanField(fieldContext);\n }\n if (type === 'richText') {\n return new SolidRichTextField(fieldContext);\n }\n if (type === 'date') {\n return new SolidDateField(fieldContext);\n }\n if (type === 'datetime') {\n return new SolidDateTimeField(fieldContext);\n }\n if (type === 'time') {\n return new SolidTimeField(fieldContext);\n }\n if (type === 'json') {\n return new SolidJsonField(fieldContext);\n }\n if (type === 'selectionStatic') {\n return new SolidSelectionStaticField(fieldContext);\n }\n if (type === 'selectionDynamic') {\n return new SolidSelectionDynamicField(fieldContext);\n }\n if (type === 'relation') {\n return new SolidRelationField(fieldContext);\n }\n if (type === 'mediaSingle') {\n return new SolidMediaSingleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'mediaMultiple') {\n return new SolidMediaMultipleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'password') {\n return new SolidPasswordField(fieldContext);\n }\n if (type === 'email') {\n return new SolidEmailField(fieldContext);\n }\n return null;\n}\n\n// solidFieldsMetadata={solidFieldsMetadata} solidView={solidView}\nconst SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly, viewMode, onChange, onBlur, parentFieldName, parentData, setLightboxUrls, setOpenLightbox, onEmbeddedFormSave }: any) => {\n const fieldContext: SolidFieldProps = {\n // field metadata - coming from the field-metadata table.\n fieldMetadata: fieldMetadata,\n // field layout - coming from view.layout\n field: field,\n // initial data\n data: initialEntityData,\n // complete form view metadata - this includes layout of the whole form & metadata about all fields in the corresponding model.\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: modelName,\n readOnly: readOnly,\n viewMode: viewMode,\n onChange: onChange,\n onBlur: onBlur\n }\n if (parentData) {\n fieldContext.parentData = parentData;\n }\n if (parentFieldName) {\n fieldContext.parentFieldName = parentFieldName;\n }\n if (onEmbeddedFormSave) {\n fieldContext.onEmbeddedFormSave = onEmbeddedFormSave;\n }\n const solidField = fieldFactory(fieldMetadata?.type, fieldContext, setLightboxUrls, setOpenLightbox);\n\n return solidField?.render(formik);\n};\n\nconst SolidGroup = ({ children, attrs }: any) => {\n\n const className = attrs.className;\n\n return (\n <div className={className}>\n {attrs.label && <p>{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div className={className}>\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n // <div className=\"formgrid grid\">\n // {children}\n // </div>\n );\n};\n\nconst SolidRow = ({ children, attrs }: any) => {\n\n const className = attrs.className;\n\n return (\n // <div className={`row ${className}`}>\n\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n <div className={`row ${className}`}>\n {attrs.label && <p >{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div>{children}</div>\n );\n};\n\nconst SolidColumn = ({ children, attrs }: any) => {\n const className = attrs.className;\n\n return (\n // first fieldset ui\n\n // <div className={`${className}`}>\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n // </div>\n\n //second fieldset ui\n // <div className={`${className}`}>\n // {attrs.label && <p>{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </div>\n\n //figma fieldset ui\n attrs.label ?\n <div className={`${className}`}>\n <Panel header={attrs.label} className=\"solid-column-panel\">\n <div className=\"grid\">{children}</div>\n </Panel>\n {/* <div className=\"p-fieldset\">\n <div className=\"solid-fieldset-header\">\n <div>{attrs.label}</div>\n </div>\n <div className=\"grid solid-fieldset-content\">{children}</div>\n </div> */}\n </div>\n :\n <div className={`${className}`}>\n <div className=\"grid\">{children}</div>\n </div>\n );\n};\n\nconst SolidSheet = ({ children }: any) => (\n <div className=\"p-fluid p-grid\">\n {children}\n </div>\n);\n\nconst SolidNotebook = ({ children, activeTab, embeded }: any) => {\n // const childrenArray = children;\n // const childrenArray = React.Children.toArray(children).filter(Boolean);\n const childrenArray = React.Children.toArray(children).filter(child => !!child);\n\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n // Local state to manage active tab in embedded context\n const [localActiveTab, setLocalActiveTab] = useState(activeTab);\n\n const activeIndex = useMemo(() => {\n return childrenArray.findIndex((child: any) => {\n return child.key === (embeded ? localActiveTab : activeTab);\n });\n }, [childrenArray, activeTab, localActiveTab, embeded]);\n\n const handleTabChange = (e: any) => {\n const selectedChild = childrenArray[e.index] as any;\n const newTabLabel = selectedChild?.key;\n\n if (newTabLabel) {\n if (!embeded) {\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set('activeTab', newTabLabel);\n router.push(`${pathname}?${queryParams.toString()}`);\n } else {\n // Update the active tab state locally for embedded view\n setLocalActiveTab(newTabLabel);\n }\n }\n };\n\n\n return (\n <div className=\"solid-tab-view w-full\">\n <TabView activeIndex={activeIndex >= 0 ? activeIndex : 0} onTabChange={handleTabChange}>\n {/* {children} */}\n {childrenArray}\n </TabView>\n </div>\n )\n};\n\nconst SolidDynamicWidget = ({ widgetName, formik, field, solidFormViewMetaData, solidFormViewData }: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n let DynamicWidget = getExtensionComponent(widgetName);\n\n const widgetProps: SolidFormWidgetProps = {\n formData: formik.values,\n field: field,\n fieldsMetadata: solidFieldsMetadata,\n viewMetadata: solidView,\n formViewData: solidFormViewData\n }\n\n return (\n <div className=\"solid-tab-view w-full\">\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </div>\n )\n};\n\n\nconst SolidPage = ({ attrs, children, key, formik, fields }: any) => {\n const fieldsName = fields.map((f: any) => f.attrs.name);\n const errorCount = formik.submitCount > 0 ? fieldsName.filter((name: any) => !!formik.errors[name]).length : 0;\n const label = (\n <span style={{ color: errorCount > 0 ? 'red' : 'inherit' }}>\n {attrs.label}{errorCount > 0 && ` (${errorCount})`}\n </span>\n );\n\n\n return (\n\n <TabPanel key={key} header={label} >\n <div className=\"p-fluid\">{children}</div>\n </TabPanel>\n )\n\n};\n\n// Original code...\n// const addLevelToGroups = (layout: any, level = 1) => {\n// return layout.map((element: any) => {\n// if (element.type === \"group\") {\n// // Add the level to the group's attrs\n// element.attrs = {\n// ...element.attrs,\n// level: level, // Add level information to the attrs\n// // className: level === 1 ? 'col-12' : 'col-6', // Assign className based on level\n// };\n// } else {\n// element.children = addLevelToGroups(element.children, level);\n// }\n// // If the element has children, recursively apply this logic\n// // if (element.children) {\n// // element.children = addLevelToGroups(element.children, level + 1);\n// // }\n\n// return element;\n// });\n// };\n\n// Fix for immutable objects. \n// const addLevelToGroups = (layout: any, level = 1): any[] => {\n// return layout.map((element: any) => {\n// // Create a new object for immutability\n// const updatedElement = { ...element };\n\n// if (updatedElement.type === \"group\") {\n// // Add level to attrs, creating a new object for immutability\n// updatedElement.attrs = {\n// ...updatedElement.attrs,\n// level: level, // Add level information\n// };\n// }\n\n// // If the element has children, recursively apply this logic\n// if (updatedElement.children) {\n// updatedElement.children = addLevelToGroups(updatedElement.children, level + 1);\n// }\n\n// return updatedElement;\n// });\n// };\n\nconst SolidFormView = (params: SolidFormViewProps) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const pathname = usePathname();\n const router = useRouter();\n const toast = useRef<Toast>(null);\n const searchParams = useSearchParams();\n const [confirmVisible, setConfirmVisible] = useState(false);\n const confirmResolveRef = useRef<(value: boolean) => void>();\n const [redirectToList, setRedirectToList] = useState(false);\n const [selectedLocale, setSelectedLocale] = useState<string | null>('en');\n const [defaultEntityLocaleId, setDefaultEntityLocaleId] = useState<string | null>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [published, setPublished] = useState<string | null>(null);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [viewMode, setViewMode] = useState<\"view\" | \"edit\">(params.embeded === true ? \"edit\" : \"view\");\n const [createMode, setCreateMode] = useState<boolean>(false);\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState([]);\n const [isShowChatter, setShowChatter] = useState(false);\n const [chatterLocaleWidth, setChatterLocaleWidth] = useState(380); // default width\n const [isResizingChatterLocale, setIsResizingChatterLocale] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const [solidWorkflowFieldValue, setSolidWorkflowFieldValue] = useState<string>(\"\");\n const [defaultTabViewOptionIndex, setDefaultTabViewOptionIndex] = useState<number>(1);\n const errorFields: string[] = [];\n\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const [mcpUrl, setMcpUrl] = useState<string | null>(null);\n const [getMcpUrl] = useLazyGetMcpUrlQuery();\n\n // when rendering the form view we will optionally get action params...\n // these we can bubble up in the event that is being raised onFormLayoutLoad, onFormDataLoad & onFormLoad\n const actionName = searchParams.get('actionName');\n const actionType = searchParams.get('actionType');\n const actionContext = searchParams.get('actionContext');\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [])\n\n useEffect(() => {\n if (solidSettingsData?.data?.mcpEnabled && solidSettingsData?.data?.mcpServerUrl) {\n enableSolidXAiPanel();\n }\n }, [solidSettingsData]);\n\n\n const enableSolidXAiPanel = async () => {\n try {\n const queryData = {\n showHeader: \"false\",\n inListView: \"false\"\n };\n const queryString = qs.stringify({ ...queryData }, { encodeValuesOnly: true });\n const response = await getMcpUrl(queryString).unwrap();\n console.log(\"response\", response);\n if (response && response?.data?.mcpUrl) {\n setMcpUrl(response?.data?.mcpUrl);\n }\n } catch (error) {\n\n }\n }\n\n const op = useRef(null);\n useEffect(() => {\n const stored = localStorage.getItem('chatter_locale_width');\n if (stored) {\n setChatterLocaleWidth(parseInt(stored, 10));\n }\n }, []);\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizingChatterLocale) return;\n const newWidth = window.innerWidth - e.clientX;\n const clampedWidth = Math.max(280, Math.min(newWidth, 700));\n setChatterLocaleWidth(clampedWidth);\n localStorage.setItem('chatter_locale_width', clampedWidth.toString());\n };\n\n const handleMouseUp = () => {\n setIsResizingChatterLocale(false);\n };\n\n if (isResizingChatterLocale) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isResizingChatterLocale]);\n\n\n useEffect(() => {\n const mode = searchParams.get('viewMode');\n const locale = searchParams.get('locale');\n const defaultEntityLocaleIdn = searchParams.get('defaultEntityLocaleId');\n if (params.id === 'new' && !locale) {\n setViewMode('edit');\n setCreateMode(true);\n return;\n }\n\n if (locale) {\n setSelectedLocale(locale);\n }\n\n if (defaultEntityLocaleIdn) {\n setDefaultEntityLocaleId(defaultEntityLocaleIdn);\n }\n\n // Set the viewMode based on the URL\n if (mode === 'view' || mode === 'edit') {\n setViewMode(mode);\n } else {\n setViewMode('view'); // Default to 'view' if no valid mode is provided\n }\n }, [searchParams, params.id]);\n\n // function that updates view mode \n const updateViewMode = (newMode: \"view\" | \"edit\") => {\n setViewMode(newMode);\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"viewMode\", newMode);\n router.push(`${pathname}?${params.toString()}`);\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findOne'),\n permissionExpression(params.modelName, 'publish'),\n permissionExpression(params.modelName, 'unpublish'),\n permissionExpression('chatterMessage', 'findMany')\n ]\n const queryData = {\n permissionNames: permissionNames\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n // Create the RTK slices for this entitor (const id of fieldValue) {\n // if (!isInt(id)) {\n // errors.push({ field: this.fieldMetadata.name, error: `Invalid ids in ${ commandFieldName } ` });\n // }\n // }y\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n usePatchUpdateSolidEntityMutation,\n usePublishSolidEntityMutation,\n useUnpublishSolidEntityMutation\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [\n patchEntity,\n { isSuccess: isEntityPatchSuceess, isError: isEntityPatchError, error: entityPatchError },\n ] = usePatchUpdateSolidEntityMutation();\n\n const [\n publishSolidEntity,\n { isSuccess: isEntityPublishedSuccess, isError: isEntityPublishedError, error: entityPublishedError },\n ] = usePublishSolidEntityMutation();\n\n const [\n unpublishSolidEntity,\n { isSuccess: isEntityUnpublishedSuccess, isError: isEntityUnpublishedError, error: entityUnpublishedError },\n ] = useUnpublishSolidEntityMutation();\n\n // - - - - - - - - - - - -- - - - - - - - - - - - METADATA here\n // Get the form view layout & metadata first. \n const formViewMetaDataQs = qs.stringify({ ...params, viewType: 'form', defaultEntityLocaleId: defaultEntityLocaleId }, {\n encodeValuesOnly: true,\n });\n const [formViewMetaData, setFormViewMetaData] = useState({});\n const [formViewLayout, setFormViewLayout] = useState<any>(null);\n const {\n data: solidFormViewMetaData,\n isLoading: solidFormViewMetaDataIsLoading\n } = useGetSolidViewLayoutQuery(formViewMetaDataQs);\n const [refreshChatterMessage, setRefreshChatterMessage] = useState<boolean>(true);\n useEffect(() => {\n if (\n isEntityCreateSuccess == true ||\n isEntityUpdateSuceess == true ||\n isEntityDeleteSuceess == true ||\n isEntityPatchSuceess == true ||\n isEntityPublishedSuccess == true ||\n isEntityUnpublishedSuccess == true\n ) {\n setRefreshChatterMessage(true);\n if (params.embeded == true && params.onEmbeddedFormSave) {\n params.onEmbeddedFormSave();\n }\n // Close The pop in case the form is used in embeded form\n if (params.embeded == true) {\n params.handlePopupClose()\n }\n if (redirectToList === true) {\n if (params.redirectToPath) {\n router.push(params.redirectToPath);\n window.location.reload();\n } else {\n const segments = pathname.split('/').filter(Boolean); // Split and filter empty segments\n const newPath = '/' + segments.slice(0, -2).join('/') + '/list'; // Remove last segment and add \"/all\"\n router.push(newPath);\n }\n }\n }\n }, [isEntityCreateSuccess, isEntityUpdateSuceess, isEntityDeleteSuceess, isEntityPatchSuceess, isEntityPublishedSuccess, isEntityUnpublishedSuccess]);\n\n useEffect(() => {\n\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n setDefaultTabViewOptionIndex(0)\n const matchedLocale = solidFormViewMetaData?.data?.applicableLocales?.find((x: any) => x.isDefault === 'yes');\n //this is to attach default locale when adding data in popup view where relations exists\n if (!selectedLocale && matchedLocale && !searchParams.get('locale')) {\n setSelectedLocale(matchedLocale.locale);\n }\n }\n\n }, [params.modelName, solidFormViewMetaData])\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n toast.current?.show({\n severity: 'error',\n summary: 'Error',\n detail: errorMessage,\n sticky: true,\n //@ts-ignore\n content: () => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n };\n\n // Check and handle errors from each API operation\n if (isEntityCreateError) {\n handleError(entityCreateError);\n } else if (isEntityDeleteError) {\n handleError(entityDeleteError);\n } else if (isEntityUpdateError) {\n handleError(entityUpdateError);\n } else if (isEntityPatchError) {\n handleError(entityPatchError);\n } else if (isEntityPublishedError) {\n handleError(entityPublishedError);\n } else if (isEntityUnpublishedError) {\n handleError(entityUnpublishedError);\n }\n }, [\n isEntityCreateError,\n isEntityDeleteError,\n isEntityUpdateError,\n isEntityPatchError,\n isEntityPublishedError,\n isEntityUnpublishedError\n ]);\n\n const confirmDialogWithPromise = () => {\n return new Promise<boolean>((resolve) => {\n confirmResolveRef.current = resolve;\n setConfirmVisible(true);\n });\n };\n\n const onFormikSubmit = async (values: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n const layoutFieldsObj = getLayoutFieldsAsObject([formViewLayout]);\n setIsSubmitting(true);\n try {\n let formData = new FormData();\n\n // Iterate through the keys in the values object\n Object.entries(values).forEach(([key, value]) => {\n\n const fieldMetadata = solidFieldsMetadata[key];\n // const fieldMetadata = getActualFieldMetadata(key, solidFieldsMetadata);\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: layoutFieldsObj[key],\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n // Append each field to the FormData\n if (value !== undefined && value !== null && solidField) {\n solidField.updateFormData(value, formData);\n }\n if (value !== undefined && value !== null && key.endsWith(\"Confirm\")) {\n formData.append(key, String(value))\n }\n\n });\n\n let solidWorkflowField = solidFormViewMetaData?.data?.solidView?.layout?.attrs?.workflowField;\n if (params.id !== \"new\") {\n if (solidFormViewMetaData?.data?.solidFormViewWorkflowData) {\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"selectionStatic\") {\n formData.append(solidWorkflowField, solidWorkflowFieldValue);\n }\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"many-to-one\") {\n formData.append(`${solidWorkflowField}Id`, solidWorkflowFieldValue);\n }\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n if (selectedLocale && !formData.has('localeName')) {\n formData.append('localeName', selectedLocale);\n }\n if (defaultEntityLocaleId) {\n formData.append('defaultEntityLocaleId', defaultEntityLocaleId.toString());\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow) {\n if (published) {\n formData.append('publishedAt', published);\n }\n }\n if (params.inlineCreateAutoSave === true) {\n params.customCreateHandler(formData);\n } else {\n if (params.id === 'new') {\n // default locale\n const result = await createEntity(formData).unwrap();\n showToast(toast, \"success\", ERROR_MESSAGES.FORM_SAVED, ERROR_MESSAGES.FORM_SAVED_SUCCESSFULLY);\n // if (!params.embeded && result?.data?.id) {\n // const newPathname = pathname.replace(/new$/, result.data.id);\n\n // const params = new URLSearchParams(searchParams.toString());\n // params.set(\"viewMode\", \"view\");\n\n // const updatedUrl = `${newPathname}?${params.toString()}`;\n // await router.push(updatedUrl, { scroll: false });\n\n // setViewMode(\"view\")\n // }\n if (!params.embeded) {\n const baseFormPath = normalizeSolidFormActionPath(pathname, \"form\");\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set(\"viewMode\", \"view\");\n router.push(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);\n setViewMode(\"view\")\n }\n return result;\n }\n else {\n // updateEntity({ id: +params.id, data: formData });\n const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n // const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n if (!params.embeded) {\n showToast(toast, \"success\", ERROR_MESSAGES.FORM_UPDATE, ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY);\n if (result?.statusCode === 200) {\n updateViewMode(\"view\")\n }\n }\n return result;\n\n }\n }\n\n } catch (err) {\n console.error(ERROR_MESSAGES.ENTITY_FAILED, err);\n } finally {\n setIsSubmitting(false);\n }\n }\n\n const showFieldError = () => {\n if (errorFields?.length === 0) return;\n errorFields.forEach((error) => {\n toast?.current?.show({\n severity: \"error\",\n summary: \"Metadata Error\",\n detail: error,\n life: 3000,\n });\n\n });\n\n // errorFields.length = 0;\n };\n useEffect(() => {\n if (errorFields?.length > 0) {\n showFieldError();\n }\n }, [errorFields])\n\n\n // - - - - - - - - - - - -- - - - - - - - - - - - DATA here\n // Fetch the actual data here. \n // This is the initial value of this form, will come from an API call in the case of edit. \n let layoutFields = [];\n let toPopulate: string[] = [];\n let toPopulateMedia: string[] = [];\n if (solidFormViewMetaData && formViewLayout) {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n layoutFields = [formViewLayout].flatMap(getLayoutFields);\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\n if (fieldMetadata?.type === 'relation' && fieldMetadata?.relationType === 'many-to-one') {\n if (!toPopulate.includes(fieldMetadata.name)) {\n toPopulate.push(fieldMetadata.name);\n }\n }\n if (fieldMetadata?.type === 'mediaSingle' || fieldMetadata?.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n if (formViewLayout.attrs?.workflowField && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.type === 'relation' && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.relationType === 'many-to-one') {\n toPopulate.push(solidFieldsMetadata[formViewLayout.attrs.workflowField].name);\n }\n }\n // TODO: Possible optimisation here, we are firing 2 queries to load the form view data object. \n // once without populate & populateMedia and then again once after that.\n const formViewDataQs = qs.stringify({ populate: toPopulate, populateMedia: toPopulateMedia }, {\n encodeValuesOnly: true,\n });\n const [initialEntityData, setInitialEntityData] = useState({});\n const {\n data: solidFormViewData,\n isLoading: solidFormViewDataIsLoading,\n refetch: refetchSolidFormViewData,\n } = useGetSolidEntityByIdQuery({ id: params.id, qs: formViewDataQs }, {\n skip: params.id === 'new'\n });\n useEffect(() => {\n if (params.id !== 'new') {\n refetchSolidFormViewData()\n }\n }, [formViewDataQs])\n\n useEffect(() => {\n if (solidFormViewMetaData) {\n if (params.customLayout) {\n setFormViewLayout(params.customLayout);\n } else {\n setFormViewLayout(solidFormViewMetaData?.data?.solidView?.layout);\n }\n setPublished(solidFormViewData?.data?.publishedAt);\n setFormViewMetaData(solidFormViewMetaData);\n }\n }, [solidFormViewMetaData]);\n\n // useEffect(() => {\n // const handleOnFormLayoutLoadEvent = async () => {\n // if (solidFormViewMetaData) {\n // // let formLayout = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // const onFormLayoutLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n // // let dynamicExtensionFunction = null;\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLayoutLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // }\n // if (onFormLayoutLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLayoutLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const updatedFormLayout: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (updatedFormLayout && updatedFormLayout?.layoutChanged && updatedFormLayout?.newLayout) {\n // setFormViewLayout(updatedFormLayout.newLayout);\n // // const newFormLayout = {\n // // ...formLayout,\n // // data: {\n // // ...formLayout.data,\n // // solidView: {\n // // ...formLayout.data.solidView,\n // // layout: updatedFormLayout.newLayout\n // // }\n // // }\n // // };\n // // formLayout = newFormLayout;\n // // customLayout = updatedFormLayout.newLayout;\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, error);\n // }\n // }\n // }\n // // setFormViewMetaData(formLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(formLayout.data.solidView.layout);\n // // }\n // }\n // };\n // const handleOnFormDataLoadEvent = async () => {\n // const onFormDataLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n // // let dynamicExtensionFunction = null;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: \"onFormDataLoad\",\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n // if (onFormDataLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormDataLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // const updatedFormData: SolidUiEventResponse = await dynamicExtensionFunction(event);\n\n // if (updatedFormData && updatedFormData?.dataChanged && updatedFormData?.newFormData) {\n // formViewData = updatedFormData.newFormData;\n // }\n // }\n // if (formViewData) {\n // setInitialEntityData(formViewData);\n // }\n // }\n // };\n // const handleOnFormLoadEvent = async () => {\n // const onFormLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n // // let dynamicExtensionFunction = null;\n // let localFormViewMetadata = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formViewLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n\n // if (onFormLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const result: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (result && result?.layoutChanged && result?.newLayout) {\n // // const newLocalFormViewMetadata = {\n // // ...localFormViewMetadata,\n // // data: {\n // // ...localFormViewMetadata.data,\n // // solidView: {\n // // ...localFormViewMetadata.data.solidView,\n // // layout: result.newLayout\n // // }\n // // }\n // // };\n // // localFormViewMetadata = newLocalFormViewMetadata;\n // // customLayout = result.newLayout;\n // // setFormViewMetaData(localFormViewMetadata);\n\n // setFormViewLayout(result.newLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(localFormViewMetadata.data.solidView.layout);\n // // }\n // }\n // if (result && result?.dataChanged && result?.newFormData) {\n // formViewData = result.newFormData;\n // setInitialEntityData(formViewData);\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.ON_FORM_LOAD, error);\n // }\n // }\n // }\n // };\n\n // handleOnFormLayoutLoadEvent();\n // handleOnFormDataLoadEvent();\n // handleOnFormLoadEvent();\n // }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n const runFormEvents = async () => {\n if (!solidFormViewMetaData) return;\n\n /** ----------------------------\n * 1. Initialize working state\n * ----------------------------- */\n let workingLayout = params.customLayout ?? solidFormViewMetaData?.data?.solidView?.layout;\n let workingFormData = solidFormViewData?.data;\n const baseEvent = {\n parentData: params?.parentData,\n fieldsMetadata: solidFormViewMetaData,\n viewMetadata: solidFormViewMetaData?.data?.solidView,\n queryParams: {\n actionName,\n actionType,\n actionContext,\n },\n };\n\n /** ----------------------------\n * 2. onFormLayoutLoad\n * ----------------------------- */\n const onFormLayoutLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n\n if (onFormLayoutLoadFn) {\n const fn = getExtensionFunction(onFormLayoutLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLayoutLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout,\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 3. onFormDataLoad\n * ----------------------------- */\n const onFormDataLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n\n if (onFormDataLoadFn) {\n const fn = getExtensionFunction(onFormDataLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormDataLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ UPDATED layout\n });\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 4. onFormLoad\n * ----------------------------- */\n const onFormLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n\n if (onFormLoadFn) {\n const fn = getExtensionFunction(onFormLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ FINAL layout\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.ON_FORM_LOAD, e);\n }\n }\n }\n\n /** ----------------------------\n * 5. Commit once to React state\n * ----------------------------- */\n if (workingLayout) {\n setFormViewLayout(workingLayout);\n }\n\n if (workingFormData) {\n setInitialEntityData(workingFormData);\n }\n };\n\n runFormEvents();\n }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n if (solidFormViewData) {\n setInitialEntityData(solidFormViewData.data);\n }\n }, [solidFormViewData]);\n\n let formik: FormikObject;\n\n // If either the metadata or the data of this form is loading, then we simply render a loading screen...\n if (solidFormViewMetaDataIsLoading || solidFormViewDataIsLoading || !formViewLayout) {\n formik = useFormik({\n initialValues: {},\n validationSchema: Yup.object(),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n return <SolidFormViewShimmerLoading />;\n }\n // At this point everything required to render the form is loaded, so we go ahead and start rendering things dynamically...\n else {\n\n // Initialize formik...\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n const validationSchema = {};\n const initialValues = {};\n\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: formLayoutField,\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n if (params.parentData) {\n fieldContext.parentData = params.parentData;\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n if (!fieldMetadata?.type) {\n const errorMessage = formLayoutField?.attrs?.label ? formLayoutField?.attrs?.label : formLayoutField.attrs.name;\n if (!errorFields.includes(errorMessage)) {\n // errorFields.push(errorMessage);\n }\n }\n if (solidField) {\n // @ts-ignore\n validationSchema[formLayoutField.attrs.name] = solidField.validationSchema();\n // @ts-ignore\n initialValues[formLayoutField.attrs.name] = solidField.initialValue();\n\n }\n }\n\n formik = useFormik({\n initialValues: initialValues,\n validationSchema: Yup.object(validationSchema),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n const formFieldOnXXX = async (event: ChangeEvent<HTMLInputElement>, eventType: string) => {\n\n // Invoke the formik change \n if (eventType === 'onFieldChange') {\n formik.handleChange(event);\n }\n\n // get details from the form event\n const { name: fieldName, value, type, checked } = event.target;\n\n // TODO: check if there is a change handler registered with this form view, load it and fire it.\n let changeHandler = solidView.layout.attrs[eventType];\n if (!changeHandler) {\n changeHandler = solidView.layout[eventType];\n }\n\n if (changeHandler) {\n // Get hold of the dynamic module...\n // const dynamicChangeHandler = await loadDynamicModule(changeHandler);\n const dynamicChangeHandler = getExtensionFunction(changeHandler);\n\n // Invoke the dynamic module...\n if (dynamicChangeHandler) {\n const event: SolidUiEvent = {\n fieldsMetadata: solidFieldsMetadata,\n formData: formik.values,\n modifiedField: fieldName,\n modifiedFieldValue: value,\n // @ts-ignore\n // TODO: HP & OR: This will be fixed once we figure out how to get types exported from core-ui\n type: eventType,\n viewMetadata: solidView,\n formViewLayout: formViewLayout,\n queryParams: {\n actionName,\n actionContext,\n actionType\n }\n }\n\n // Invoke the dynamic change handler: \n // TODO: encapsulate in try/catch, catch the exception render in the UI as an error & stop form rendering.\n const updatedFormInfo: SolidUiEventResponse = await dynamicChangeHandler(event);\n\n // If dataChanged is true, update Formik values\n if (updatedFormInfo?.dataChanged && updatedFormInfo.newFormData) {\n // This does one field at a time.\n // TODO: does the below fire change events again?\n Object.entries(updatedFormInfo.newFormData).forEach(([key, newValue]) => {\n formik.setFieldValue(key, newValue);\n });\n\n // This does all at once.\n // formik.setValues({\n // ...formik.values,\n // ...updatedFormInfo.newFormData\n // });\n }\n\n // if layout has changed then we need to re-render.\n if (updatedFormInfo?.layoutChanged && updatedFormInfo.newLayout) {\n // setFormViewMetaData({ ...formViewMetaData, layout: updatedFormInfo.newLayout });\n\n // TODO: this will trigger a useEffect dependent on formViewMetadata that invokes setFormViewLayout, \n // TODO: which means that this will not work if custom layout has been injected as a prop.\n setFormViewLayout(updatedFormInfo.newLayout);\n // setFormViewMetaData((prevMetaData: any) => {\n // const updatedFormViewMetadata = {\n // ...prevMetaData,\n // data: {\n // ...prevMetaData.data,\n // solidView: {\n // ...prevMetaData.data.solidView,\n // layout: updatedFormInfo.newLayout,\n // },\n // },\n // };\n // return updatedFormViewMetadata;\n // });\n }\n }\n else {\n // TODO: Show an error popup and stop form rendering ideallly...\n console.log(ERROR_MESSAGES.UNABLE_LOAD_DYNAMIC_MODULE, changeHandler);\n }\n }\n }\n\n // Now render the form dynamically...\n const renderFormElementDynamically: any = (element: any, recursiveFVMD: any) => {\n let { type, attrs, body, children } = element;\n\n // const key = attrs?.name ?? generateRandomKey();\n const key = attrs?.label;\n let visible = attrs?.visible;\n if (visible === undefined || visible === null) {\n visible = true;\n }\n // console.log(`Resolved visibility of form element ${ key } to ${ visible } `);\n // console.log(`Form element ${ key }: `, attrs);\n const visibleToRole = attrs?.roles || [];\n\n if (visibleToRole.length > 0) {\n if (!hasAnyRole(user?.roles, visibleToRole)) {\n return <></>\n }\n }\n\n switch (type) {\n case \"form\":\n if (!children)\n children = [];\n return <div key={key}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</div>;\n case \"div\":\n if (!children)\n children = [];\n return <div key={key} {...attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</div>\n case \"span\":\n return <span key={key} {...attrs}>{body}</span>\n case \"p\":\n return <p key={key} className={attrs?.className} {...attrs}>{body}</p>\n case \"h1\":\n return <h1 key={key} {...attrs}>{body}</h1>\n case \"h2\":\n return <h2 key={key} {...attrs}>{body}</h2>\n case \"ul\":\n if (!children)\n children = [];\n return <ul key={key} {...attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</ul>\n case \"li\":\n return <li key={key} {...attrs}>{body}</li>\n case \"sheet\":\n return <SolidSheet key={key}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidSheet>;\n case \"group\":\n if (visible === true) {\n return <SolidGroup key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidGroup>;\n }\n break;\n case \"row\":\n if (visible === true) {\n return <SolidRow key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidRow>;\n }\n break;\n case \"column\":\n if (visible === true) {\n return <SolidColumn key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidColumn>;\n }\n break;\n case \"field\":\n if (visible === true) {\n\n // const fieldMetadata = solidFieldsMetadata[attrs.name];\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n // Read only permission if there is no update permission on model and router doesnt contains new\n const readOnlyPermission = !actionsAllowed.includes(`${permissionExpression(params.modelName, 'update')}`) && params.id !== \"new\";\n return <SolidField\n key={attrs.name}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n solidFormViewMetaData={recursiveFVMD}\n modelName={params.modelName}\n readOnly={readOnlyPermission}\n viewMode={viewMode}\n onChange={formFieldOnXXX}\n onBlur={formFieldOnXXX}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n parentFieldName={params.parentFieldName}\n parentData={params.parentData}\n onEmbeddedFormSave={() => setRefreshChatterMessage(true)}\n />;\n }\n break;\n\n case \"notebook\":\n if (visible === true) {\n return <SolidNotebook key={key} activeTab={searchParams.get(\"activeTab\") || \"\"} embeded={params.embeded}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidNotebook>;\n }\n break;\n case \"page\":\n if (visible === true) {\n const fields = children.flatMap((child: any) => getLayoutFields(child));\n const pageChildren = children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD));\n return SolidPage({ children: pageChildren, attrs: attrs, key: key, formik: formik, fields });\n }\n break;\n case \"custom\":\n if (visible === true) {\n const widgetName = attrs?.widget;\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n\n if (widgetName) {\n // widgetName, formik, field, fieldMetadata, solidFormViewMetaData\n return <SolidDynamicWidget\n key={key}\n widgetName={widgetName}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n solidFormViewMetaData={recursiveFVMD}\n solidFormViewData={solidFormViewData}\n />\n }\n }\n break;\n\n default:\n return null;\n }\n };\n\n const renderFormDynamically = (recursiveFVMD: any, formViewLayout: any) => {\n if (!recursiveFVMD) {\n return;\n }\n if (!recursiveFVMD.data) {\n return;\n }\n const solidView = recursiveFVMD.data.solidView;\n const solidFieldsMetadata = recursiveFVMD.data.solidFieldsMetadata;\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n const updatedLayout = [formViewLayout];\n const dynamicForm = updatedLayout.map((element: any) => renderFormElementDynamically(element, recursiveFVMD));\n\n return dynamicForm;\n };\n\n const handleDeleteEntity = async () => {\n deleteEntity(solidFormViewData.data.id);\n setDeleteDialogVisible(false);\n if (params.embeded == true) {\n setRedirectToList(false)\n\n } else {\n setRedirectToList(true)\n\n }\n // router.back();\n }\n\n const onDeleteClose = () => {\n setDeleteDialogVisible(false);\n }\n\n const dynamicHeader = solidView.layout?.header;\n let DynamicHeaderComponent = null;\n if (dynamicHeader) {\n DynamicHeaderComponent = getExtensionComponent(dynamicHeader);\n }\n const customFormComponentEdit = solidView.layout.attrs.customFormComponentEdit;\n const customFormComponentNew = solidView.layout.attrs.customFormComponentNew;\n let DynamicFormComponentEdit = null;\n let DynamicFormComponentNew = null;\n if (customFormComponentEdit) {\n DynamicFormComponentEdit = getExtensionComponent(customFormComponentEdit);\n }\n if (customFormComponentNew) {\n DynamicFormComponentNew = getExtensionComponent(customFormComponentNew);\n }\n\n const handleChatterExpandClick = (option?: string) => {\n setShowChatter(true);\n if (option === 'info') {\n setDefaultTabViewOptionIndex(0);\n } else if (option === 'chatter') {\n setDefaultTabViewOptionIndex(1);\n setRefreshChatterMessage(true);\n } else {\n setDefaultTabViewOptionIndex(2);\n }\n };\n\n //en 4 null\n const handleLocaleChangeRedirect = (\n locale: string,\n defaultEntityLocaleId: string,\n viewMode: string,\n ) => {\n let newViewMode = viewMode;\n const defaultApplicableLocales = solidFormViewMetaData?.data?.applicableLocales || [];\n //fr 4\n const matchingLocale = defaultApplicableLocales.find(\n (loc: any) =>\n loc.defaultEntityLocaleId &&\n loc.entityId &&\n loc.locale === locale\n );\n // Extract the base path from the current pathname, removing query params if any\n const basePath = pathname.split('?')[0];\n\n // Determine entity part of the path (new or existing entityId)\n const entityPart = matchingLocale?.entityId ?? 'new';\n if (entityPart === 'new' && viewMode === 'view') {\n newViewMode = 'edit'\n } else if (entityPart !== 'new' && viewMode === 'view') {\n newViewMode = 'view'\n } else {\n newViewMode = 'edit'\n }\n // Construct new pathname using existing basePath and replacing entity segment\n const updatedPath = basePath.replace(/\\/form\\/[^/]+/, `/form/${entityPart}`);\n\n const queryParams = new URLSearchParams({\n viewMode: newViewMode,\n locale,\n defaultEntityLocaleId,\n });\n\n router.push(`${updatedPath}?${queryParams.toString()}`);\n };\n\n const handleConfirmAccept = () => {\n confirmResolveRef.current?.(true);\n setConfirmVisible(false);\n };\n\n const handleConfirmReject = () => {\n confirmResolveRef.current?.(false);\n setConfirmVisible(false);\n };\n const handleDraftPublishWorkFlow = async (type: \"publish\" | \"unpublish\") => {\n const userChoice = await confirmDialogWithPromise();\n if (!userChoice) return;\n\n // const finalPublishedValue =\n // type === \"publish\" ? new Date().toISOString() : \"\";\n\n // setPublished(finalPublishedValue);\n\n // const formdata = new FormData();\n // formdata.append(\"publishedAt\", finalPublishedValue);\n\n let result;\n\n if (type === \"publish\") {\n result = await publishSolidEntity(params.id).unwrap();\n showToast(toast, \"success\", ERROR_MESSAGES.SAVED, ERROR_MESSAGES.MARK_PUBLISH);\n } else {\n result = await unpublishSolidEntity(params.id).unwrap();\n showToast(toast, \"success\", ERROR_MESSAGES.SAVED, ERROR_MESSAGES.MARK_UNPUBLISH);\n }\n\n console.log(\"publish/unpublish result\", result);\n\n // Set updated publish value from API response\n setPublished(result?.data?.publishedAt);\n };\n\n\n const isVideoOrAudio = (url: string) => {\n // Remove query params if present\n const cleanUrl = url.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n // Combined list of supported media extensions\n const mediaExt = [\"mp4\", \"webm\", \"ogg\", \"mov\", \"mp3\", \"wav\", \"m4a\", \"aac\"];\n\n return ext ? mediaExt.includes(ext) : false;\n };\n\n const controlsList = [\"nodownload\", \"nofullscreen\", \"noremoteplayback\"];\n const slides = lightboxUrls.map((item: any) => {\n const url = item.src || item.downloadUrl || \"\";\n if (isVideoOrAudio(url)) {\n return {\n type: \"video\" as const,\n sources: [{ src: url, type: \"video/mp4\", }],\n };\n }\n return { src: url };\n });\n\n const hasMedia = slides.some((s) => s.type === \"video\");\n\n\n\n return (\n <div className=\"solid-form-wrapper\">\n <Toast ref={toast} />\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n <form style={{ width: '100%' }} onSubmit={formik.handleSubmit}>\n <SolidFormActionHeader\n formik={formik}\n formData={solidFormViewData?.data}\n params={params}\n actionsAllowed={actionsAllowed}\n formViewLayout={formViewLayout}\n solidView={solidView}\n solidFormViewMetaData={solidFormViewMetaData}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n setDeleteDialogVisible={setDeleteDialogVisible}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setRedirectToList={setRedirectToList}\n viewMode={viewMode}\n setViewMode={setViewMode}\n solidWorkflowFieldValue={solidWorkflowFieldValue}\n setSolidWorkflowFieldValue={setSolidWorkflowFieldValue}\n draftEnabled={solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow}\n publish={published}\n internationalisationEnabled={solidFormViewMetaData?.data?.solidView?.model?.internationalisation}\n handleDraftPublishWorkFlow={handleDraftPublishWorkFlow}\n onStepperUpdate={() => setRefreshChatterMessage(true)}\n isSubmitting={isSubmitting}\n />\n <div className={`px-4 py-3 md:p-4 solid-form-content ${params.embeded === true ? 'h-auto' : ''}`} style={{ maxHeight: params.embeded === true ? '80vh' : '', overflowY: 'auto' }}>\n {DynamicHeaderComponent && <DynamicHeaderComponent />}\n {params.id === 'new' && DynamicFormComponentNew ? (\n <DynamicFormComponentNew params={params} />\n ) : params.id !== 'new' && DynamicFormComponentEdit ? (\n <DynamicFormComponentEdit params={params} />\n ) : (\n renderFormDynamically(formViewMetaData, formViewLayout)\n )}\n </div>\n\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n {params.embeded !== true &&\n <div className={`chatter-section ${isShowChatter === false ? 'collapsed' : 'open'}`} style={{ width: chatterLocaleWidth }}>\n {isShowChatter && (\n <div\n style={{\n width: 5,\n cursor: 'col-resize',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n zIndex: 9,\n }}\n onMouseDown={() => setIsResizingChatterLocale(true)}\n />\n )}\n {isShowChatter === true &&\n <Button\n icon=\"pi pi-angle-double-right\"\n size=\"small\"\n text\n className=\"chatter-collapse-btn\"\n style={{ width: 30, height: 30, aspectRatio: '1/1' }}\n onClick={() => setShowChatter(false)}\n />\n }\n {isShowChatter === false ?\n <div className=\"flex flex-column gap-2 justify-content-center p-2\">\n {/*if solidview Internationalisation is enabled then show the locale tab */}\n {solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow &&\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('info')}>\n Info\n </div>}\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('chatter')}>\n Audit Trail\n </div>\n {\n mcpUrl &&\n (\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('solidx-ai')}>\n <div className=\"flex gap-2\"> <SolidXAIIcon /> SolidX AI </div>\n </div>\n )\n }\n <Button\n icon=\"pi pi-chevron-left\"\n size=\"small\"\n className=\"px-0\"\n style={{ width: 30 }}\n onClick={() => handleChatterExpandClick('chatter')}\n />\n </div>\n :\n <SolidChatterLocaleTabView\n createMode={createMode}\n setSelectedLocale={setSelectedLocale}\n selectedLocale={selectedLocale}\n solidFormViewMetaData={solidFormViewMetaData}\n id={params.id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n activeTab={defaultTabViewOptionIndex}\n viewMode={viewMode}\n defaultEntityLocaleId={defaultEntityLocaleId}\n handleLocaleChangeRedirect={handleLocaleChangeRedirect}\n solidFormViewData={solidFormViewData}\n published={published}\n actionsAllowed={actionsAllowed}\n mcpUrl={mcpUrl}\n />\n }\n </div>\n }\n\n <Dialog\n visible={isDeleteDialogVisible}\n header=\"Confirm Delete\"\n className=\"solid-confirm-dialog\"\n modal\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button label=\"Yes\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" autoFocus onClick={() => handleDeleteEntity()} />\n <Button label=\"No\" icon=\"pi pi-times\" className='small-button' onClick={onDeleteClose} />\n </div>\n )}\n onHide={() => setDeleteDialogVisible(false)}\n >\n <p>Are you sure you want to delete?</p>\n </Dialog>\n <Dialog\n visible={isLayoutDialogVisible}\n header=\"Change Form Layout\"\n modal\n onHide={() => setLayoutDialogVisible(false)}\n style={{ width: '50vw' }}\n breakpoints={{\n '960px': '80vw',\n '641px': '95vw'\n }}\n contentClassName=\"p-3 pt-0 lg:p-4\"\n >\n <SolidFormUserViewLayout solidFormViewMetaData={solidFormViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </Dialog>\n {openLightbox &&\n <Lightbox\n open={openLightbox}\n plugins={\n hasMedia\n ? [Counter, Download, Video] // add Video plugin if needed\n : [Counter, Download]\n }\n close={() => setOpenLightbox(false)}\n slides={[...slides]}\n {...(hasMedia && {\n video: {\n controls: true,\n playsInline: true,\n autoPlay: false,\n loop: false,\n muted: false,\n disablePictureInPicture: false,\n disableRemotePlayback: false,\n controlsList: controlsList.join(\" \"),\n crossOrigin: \"anonymous\",\n preload: \"auto\",\n },\n })}\n />\n }\n\n <ConfirmDialog\n visible={confirmVisible}\n onHide={() => setConfirmVisible(false)}\n header=\"Confirmation\"\n acceptLabel=\"Yes, confrim\"\n rejectLabel=\"No, cancel\"\n acceptClassName=\"p-button-danger\"\n rejectClassName=\"p-button-text\"\n position=\"center\"\n accept={handleConfirmAccept}\n reject={handleConfirmReject}\n message={\n <div className=\"flex flex-col items-center justify-center text-center space-y-3\">\n <p className=\"text-gray-800 text-base\">\n Are you sure you want to {published !== null ? 'unpublish' : 'publish'}?\n </p>\n </div>\n }\n />\n </div>\n );\n }\n};\n\nexport default SolidFormView;\n"]}
1
+ {"version":3,"file":"SolidFormView.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from '../../../hooks/useSession'\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport \"primeflex/primeflex.css\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\nimport { TabPanel, TabView } from \"primereact/tabview\";\nimport qs from \"qs\";\nimport React, { ChangeEvent, useEffect, useMemo, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./fields/ISolidField\";\nimport { SolidBooleanField } from \"./fields/SolidBooleanField\";\nimport { SolidDateField } from \"./fields/SolidDateField\";\nimport { SolidDateTimeField } from \"./fields/SolidDateTimeField\";\nimport { SolidDecimalField } from \"./fields/SolidDecimalField\";\nimport { SolidIntegerField } from \"./fields/SolidIntegerField\";\nimport { SolidJsonField } from \"./fields/SolidJsonField\";\nimport { SolidLongTextField } from \"./fields/SolidLongTextField\";\nimport { SolidMediaMultipleField } from \"./fields/SolidMediaMultipleField\";\nimport { SolidMediaSingleField } from \"./fields/SolidMediaSingleField\";\nimport { SolidRelationField } from \"./fields/SolidRelationField\";\nimport { SolidRichTextField } from \"./fields/SolidRichTextField\";\nimport { SolidSelectionDynamicField } from \"./fields/SolidSelectionDynamicField\";\nimport { SolidSelectionStaticField } from \"./fields/SolidSelectionStaticField\";\nimport { SolidShortTextField } from \"./fields/SolidShortTextField\";\nimport { SolidTimeField } from \"./fields/SolidTimeField\";\nimport { SolidUiEvent } from \"../../../types\";\nimport { getExtensionComponent, getExtensionFunction } from \"../../../helpers/registry\";\nimport { SolidFormWidgetProps, SolidUiEventResponse } from \"../../../types/solid-core\";\nimport { SolidPasswordField } from \"./fields/SolidPasswordField\";\nimport { SolidEmailField } from \"./fields/SolidEmailField\";\nimport { Panel } from \"primereact/panel\";\nimport { SolidFormUserViewLayout } from \"./SolidFormUserViewLayout\";\nimport Lightbox from \"yet-another-react-lightbox\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Download from \"yet-another-react-lightbox/plugins/download\";\nimport Video from \"yet-another-react-lightbox/plugins/video\";\nimport \"yet-another-react-lightbox/styles.css\";\nimport \"yet-another-react-lightbox/plugins/counter.css\";\nimport { SolidFormActionHeader } from \"./SolidFormActionHeader\";\nimport { SolidFormViewShimmerLoading } from \"./SolidFormViewShimmerLoading\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport SolidChatterLocaleTabView from \"../locales/SolidChatterLocaleTabView\";\nimport { ConfirmDialog } from \"primereact/confirmdialog\";\nimport { SolidXAIIcon } from \"../solid-ai/SolidXAIIcon\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { SolidFormFooter } from \"./SolidFormFooter\";\nimport { normalizeSolidFormActionPath } from \"../../../helpers/routePaths\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDispatch } from \"react-redux\";\n\nexport type SolidFormViewProps = {\n moduleName: string;\n modelName: string;\n id: string;\n embeded: boolean;\n handlePopupClose?: any,\n customCreateHandler?: any\n inlineCreateAutoSave?: boolean,\n customLayout?: any,\n parentFieldName?: string,\n parentData?: any,\n redirectToPath?: string,\n onEmbeddedFormSave?: () => void,\n};\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst getLayoutFields = (node: any): any => {\n let fields = [];\n\n if (node.type === \"field\") {\n fields.push(node);\n }\n\n if (node.children && Array.isArray(node.children)) {\n for (const child of node.children) {\n fields = fields.concat(getLayoutFields(child));\n }\n }\n\n return fields;\n}\n\nexport const getLayoutFieldsAsObject = (layout: any[]): any => {\n const allFields = layout.flatMap(getLayoutFields);\n return allFields.reduce((result, field) => {\n if (field.attrs.name) {\n result[field.attrs.name] = { ...field };\n }\n return result;\n }, {});\n}\nexport const getActualFieldMetadata = (key: string, solidFieldsMetadata: Record<string, any>) => {\n if (solidFieldsMetadata[key]) {\n return solidFieldsMetadata[key];\n }\n\n if (key.endsWith(\"Confirm\")) {\n const baseKey = key.slice(0, -\"Confirm\".length); // Remove \"Confirm\"\n if (solidFieldsMetadata[baseKey]) {\n return solidFieldsMetadata[baseKey];\n }\n }\n\n return null; // or handle fallback\n};\n\n\nconst fieldFactory = (type: string, fieldContext: SolidFieldProps, setLightboxUrls?: any, setOpenLightbox?: any): ISolidField | null => {\n if (type === 'shortText') {\n return new SolidShortTextField(fieldContext);\n }\n if (type === 'longText') {\n return new SolidLongTextField(fieldContext);\n }\n if (type === 'int' || type === 'bigint') {\n return new SolidIntegerField(fieldContext);\n }\n if (type === 'decimal' || type === 'float') {\n return new SolidDecimalField(fieldContext);\n }\n if (type === 'boolean') {\n return new SolidBooleanField(fieldContext);\n }\n if (type === 'richText') {\n return new SolidRichTextField(fieldContext);\n }\n if (type === 'date') {\n return new SolidDateField(fieldContext);\n }\n if (type === 'datetime') {\n return new SolidDateTimeField(fieldContext);\n }\n if (type === 'time') {\n return new SolidTimeField(fieldContext);\n }\n if (type === 'json') {\n return new SolidJsonField(fieldContext);\n }\n if (type === 'selectionStatic') {\n return new SolidSelectionStaticField(fieldContext);\n }\n if (type === 'selectionDynamic') {\n return new SolidSelectionDynamicField(fieldContext);\n }\n if (type === 'relation') {\n return new SolidRelationField(fieldContext);\n }\n if (type === 'mediaSingle') {\n return new SolidMediaSingleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'mediaMultiple') {\n return new SolidMediaMultipleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'password') {\n return new SolidPasswordField(fieldContext);\n }\n if (type === 'email') {\n return new SolidEmailField(fieldContext);\n }\n return null;\n}\n\n// solidFieldsMetadata={solidFieldsMetadata} solidView={solidView}\nconst SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly, viewMode, onChange, onBlur, parentFieldName, parentData, setLightboxUrls, setOpenLightbox, onEmbeddedFormSave }: any) => {\n const fieldContext: SolidFieldProps = {\n // field metadata - coming from the field-metadata table.\n fieldMetadata: fieldMetadata,\n // field layout - coming from view.layout\n field: field,\n // initial data\n data: initialEntityData,\n // complete form view metadata - this includes layout of the whole form & metadata about all fields in the corresponding model.\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: modelName,\n readOnly: readOnly,\n viewMode: viewMode,\n onChange: onChange,\n onBlur: onBlur\n }\n if (parentData) {\n fieldContext.parentData = parentData;\n }\n if (parentFieldName) {\n fieldContext.parentFieldName = parentFieldName;\n }\n if (onEmbeddedFormSave) {\n fieldContext.onEmbeddedFormSave = onEmbeddedFormSave;\n }\n const solidField = fieldFactory(fieldMetadata?.type, fieldContext, setLightboxUrls, setOpenLightbox);\n\n return solidField?.render(formik);\n};\n\nconst SolidGroup = ({ children, attrs }: any) => {\n\n const className = attrs.className;\n\n return (\n <div className={className}>\n {attrs.label && <p>{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div className={className}>\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n // <div className=\"formgrid grid\">\n // {children}\n // </div>\n );\n};\n\nconst SolidRow = ({ children, attrs }: any) => {\n\n const className = attrs.className;\n\n return (\n // <div className={`row ${className}`}>\n\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n <div className={`row ${className}`}>\n {attrs.label && <p >{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div>{children}</div>\n );\n};\n\nconst SolidColumn = ({ children, attrs }: any) => {\n const className = attrs.className;\n\n return (\n // first fieldset ui\n\n // <div className={`${className}`}>\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n // </div>\n\n //second fieldset ui\n // <div className={`${className}`}>\n // {attrs.label && <p>{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </div>\n\n //figma fieldset ui\n attrs.label ?\n <div className={`${className}`}>\n <Panel header={attrs.label} className=\"solid-column-panel\">\n <div className=\"grid\">{children}</div>\n </Panel>\n {/* <div className=\"p-fieldset\">\n <div className=\"solid-fieldset-header\">\n <div>{attrs.label}</div>\n </div>\n <div className=\"grid solid-fieldset-content\">{children}</div>\n </div> */}\n </div>\n :\n <div className={`${className}`}>\n <div className=\"grid\">{children}</div>\n </div>\n );\n};\n\nconst SolidSheet = ({ children }: any) => (\n <div className=\"p-fluid p-grid\">\n {children}\n </div>\n);\n\nconst SolidNotebook = ({ children, activeTab, embeded }: any) => {\n // const childrenArray = children;\n // const childrenArray = React.Children.toArray(children).filter(Boolean);\n const childrenArray = React.Children.toArray(children).filter(child => !!child);\n\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n // Local state to manage active tab in embedded context\n const [localActiveTab, setLocalActiveTab] = useState(activeTab);\n\n const activeIndex = useMemo(() => {\n return childrenArray.findIndex((child: any) => {\n return child.key === (embeded ? localActiveTab : activeTab);\n });\n }, [childrenArray, activeTab, localActiveTab, embeded]);\n\n const handleTabChange = (e: any) => {\n const selectedChild = childrenArray[e.index] as any;\n const newTabLabel = selectedChild?.key;\n\n if (newTabLabel) {\n if (!embeded) {\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set('activeTab', newTabLabel);\n router.push(`${pathname}?${queryParams.toString()}`);\n } else {\n // Update the active tab state locally for embedded view\n setLocalActiveTab(newTabLabel);\n }\n }\n };\n\n\n return (\n <div className=\"solid-tab-view w-full\">\n <TabView activeIndex={activeIndex >= 0 ? activeIndex : 0} onTabChange={handleTabChange}>\n {/* {children} */}\n {childrenArray}\n </TabView>\n </div>\n )\n};\n\nconst SolidDynamicWidget = ({ widgetName, formik, field, solidFormViewMetaData, solidFormViewData }: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n let DynamicWidget = getExtensionComponent(widgetName);\n\n const widgetProps: SolidFormWidgetProps = {\n formData: formik.values,\n field: field,\n fieldsMetadata: solidFieldsMetadata,\n viewMetadata: solidView,\n formViewData: solidFormViewData\n }\n\n return (\n <div className=\"solid-tab-view w-full\">\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </div>\n )\n};\n\n\nconst SolidPage = ({ attrs, children, key, formik, fields }: any) => {\n const fieldsName = fields.map((f: any) => f.attrs.name);\n const errorCount = formik.submitCount > 0 ? fieldsName.filter((name: any) => !!formik.errors[name]).length : 0;\n const label = (\n <span style={{ color: errorCount > 0 ? 'red' : 'inherit' }}>\n {attrs.label}{errorCount > 0 && ` (${errorCount})`}\n </span>\n );\n\n\n return (\n\n <TabPanel key={key} header={label} >\n <div className=\"p-fluid\">{children}</div>\n </TabPanel>\n )\n\n};\n\n// Original code...\n// const addLevelToGroups = (layout: any, level = 1) => {\n// return layout.map((element: any) => {\n// if (element.type === \"group\") {\n// // Add the level to the group's attrs\n// element.attrs = {\n// ...element.attrs,\n// level: level, // Add level information to the attrs\n// // className: level === 1 ? 'col-12' : 'col-6', // Assign className based on level\n// };\n// } else {\n// element.children = addLevelToGroups(element.children, level);\n// }\n// // If the element has children, recursively apply this logic\n// // if (element.children) {\n// // element.children = addLevelToGroups(element.children, level + 1);\n// // }\n\n// return element;\n// });\n// };\n\n// Fix for immutable objects. \n// const addLevelToGroups = (layout: any, level = 1): any[] => {\n// return layout.map((element: any) => {\n// // Create a new object for immutability\n// const updatedElement = { ...element };\n\n// if (updatedElement.type === \"group\") {\n// // Add level to attrs, creating a new object for immutability\n// updatedElement.attrs = {\n// ...updatedElement.attrs,\n// level: level, // Add level information\n// };\n// }\n\n// // If the element has children, recursively apply this logic\n// if (updatedElement.children) {\n// updatedElement.children = addLevelToGroups(updatedElement.children, level + 1);\n// }\n\n// return updatedElement;\n// });\n// };\n\nconst SolidFormView = (params: SolidFormViewProps) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const pathname = usePathname();\n const router = useRouter();\n const dispatch = useDispatch();\n const searchParams = useSearchParams();\n const [confirmVisible, setConfirmVisible] = useState(false);\n const confirmResolveRef = useRef<(value: boolean) => void>();\n const [redirectToList, setRedirectToList] = useState(false);\n const [selectedLocale, setSelectedLocale] = useState<string | null>('en');\n const [defaultEntityLocaleId, setDefaultEntityLocaleId] = useState<string | null>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [published, setPublished] = useState<string | null>(null);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [viewMode, setViewMode] = useState<\"view\" | \"edit\">(params.embeded === true ? \"edit\" : \"view\");\n const [createMode, setCreateMode] = useState<boolean>(false);\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState([]);\n const [isShowChatter, setShowChatter] = useState(false);\n const [chatterLocaleWidth, setChatterLocaleWidth] = useState(380); // default width\n const [isResizingChatterLocale, setIsResizingChatterLocale] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const [solidWorkflowFieldValue, setSolidWorkflowFieldValue] = useState<string>(\"\");\n const [defaultTabViewOptionIndex, setDefaultTabViewOptionIndex] = useState<number>(1);\n const errorFields: string[] = [];\n\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const [mcpUrl, setMcpUrl] = useState<string | null>(null);\n const [getMcpUrl] = useLazyGetMcpUrlQuery();\n\n // when rendering the form view we will optionally get action params...\n // these we can bubble up in the event that is being raised onFormLayoutLoad, onFormDataLoad & onFormLoad\n const actionName = searchParams.get('actionName');\n const actionType = searchParams.get('actionType');\n const actionContext = searchParams.get('actionContext');\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [])\n\n useEffect(() => {\n if (solidSettingsData?.data?.mcpEnabled && solidSettingsData?.data?.mcpServerUrl) {\n enableSolidXAiPanel();\n }\n }, [solidSettingsData]);\n\n\n const enableSolidXAiPanel = async () => {\n try {\n const queryData = {\n showHeader: \"false\",\n inListView: \"false\"\n };\n const queryString = qs.stringify({ ...queryData }, { encodeValuesOnly: true });\n const response = await getMcpUrl(queryString).unwrap();\n console.log(\"response\", response);\n if (response && response?.data?.mcpUrl) {\n setMcpUrl(response?.data?.mcpUrl);\n }\n } catch (error) {\n\n }\n }\n\n const op = useRef(null);\n useEffect(() => {\n const stored = localStorage.getItem('chatter_locale_width');\n if (stored) {\n setChatterLocaleWidth(parseInt(stored, 10));\n }\n }, []);\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizingChatterLocale) return;\n const newWidth = window.innerWidth - e.clientX;\n const clampedWidth = Math.max(280, Math.min(newWidth, 700));\n setChatterLocaleWidth(clampedWidth);\n localStorage.setItem('chatter_locale_width', clampedWidth.toString());\n };\n\n const handleMouseUp = () => {\n setIsResizingChatterLocale(false);\n };\n\n if (isResizingChatterLocale) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isResizingChatterLocale]);\n\n\n useEffect(() => {\n const mode = searchParams.get('viewMode');\n const locale = searchParams.get('locale');\n const defaultEntityLocaleIdn = searchParams.get('defaultEntityLocaleId');\n if (params.id === 'new' && !locale) {\n setViewMode('edit');\n setCreateMode(true);\n return;\n }\n\n if (locale) {\n setSelectedLocale(locale);\n }\n\n if (defaultEntityLocaleIdn) {\n setDefaultEntityLocaleId(defaultEntityLocaleIdn);\n }\n\n // Set the viewMode based on the URL\n if (mode === 'view' || mode === 'edit') {\n setViewMode(mode);\n } else {\n setViewMode('view'); // Default to 'view' if no valid mode is provided\n }\n }, [searchParams, params.id]);\n\n // function that updates view mode \n const updateViewMode = (newMode: \"view\" | \"edit\") => {\n setViewMode(newMode);\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"viewMode\", newMode);\n router.push(`${pathname}?${params.toString()}`);\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findOne'),\n permissionExpression(params.modelName, 'publish'),\n permissionExpression(params.modelName, 'unpublish'),\n permissionExpression('chatterMessage', 'findMany')\n ]\n const queryData = {\n permissionNames: permissionNames\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n // Create the RTK slices for this entitor (const id of fieldValue) {\n // if (!isInt(id)) {\n // errors.push({ field: this.fieldMetadata.name, error: `Invalid ids in ${ commandFieldName } ` });\n // }\n // }y\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n usePatchUpdateSolidEntityMutation,\n usePublishSolidEntityMutation,\n useUnpublishSolidEntityMutation\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [\n patchEntity,\n { isSuccess: isEntityPatchSuceess, isError: isEntityPatchError, error: entityPatchError },\n ] = usePatchUpdateSolidEntityMutation();\n\n const [\n publishSolidEntity,\n { isSuccess: isEntityPublishedSuccess, isError: isEntityPublishedError, error: entityPublishedError },\n ] = usePublishSolidEntityMutation();\n\n const [\n unpublishSolidEntity,\n { isSuccess: isEntityUnpublishedSuccess, isError: isEntityUnpublishedError, error: entityUnpublishedError },\n ] = useUnpublishSolidEntityMutation();\n\n // - - - - - - - - - - - -- - - - - - - - - - - - METADATA here\n // Get the form view layout & metadata first. \n const formViewMetaDataQs = qs.stringify({ ...params, viewType: 'form', defaultEntityLocaleId: defaultEntityLocaleId }, {\n encodeValuesOnly: true,\n });\n const [formViewMetaData, setFormViewMetaData] = useState({});\n const [formViewLayout, setFormViewLayout] = useState<any>(null);\n const {\n data: solidFormViewMetaData,\n isLoading: solidFormViewMetaDataIsLoading\n } = useGetSolidViewLayoutQuery(formViewMetaDataQs);\n const [refreshChatterMessage, setRefreshChatterMessage] = useState<boolean>(true);\n useEffect(() => {\n if (\n isEntityCreateSuccess == true ||\n isEntityUpdateSuceess == true ||\n isEntityDeleteSuceess == true ||\n isEntityPatchSuceess == true ||\n isEntityPublishedSuccess == true ||\n isEntityUnpublishedSuccess == true\n ) {\n setRefreshChatterMessage(true);\n if (params.embeded == true && params.onEmbeddedFormSave) {\n params.onEmbeddedFormSave();\n }\n // Close The pop in case the form is used in embeded form\n if (params.embeded == true) {\n params.handlePopupClose()\n }\n if (redirectToList === true) {\n if (params.redirectToPath) {\n router.push(params.redirectToPath);\n window.location.reload();\n } else {\n const segments = pathname.split('/').filter(Boolean); // Split and filter empty segments\n const newPath = '/' + segments.slice(0, -2).join('/') + '/list'; // Remove last segment and add \"/all\"\n router.push(newPath);\n }\n }\n }\n }, [isEntityCreateSuccess, isEntityUpdateSuceess, isEntityDeleteSuceess, isEntityPatchSuceess, isEntityPublishedSuccess, isEntityUnpublishedSuccess]);\n\n useEffect(() => {\n\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n setDefaultTabViewOptionIndex(0)\n const matchedLocale = solidFormViewMetaData?.data?.applicableLocales?.find((x: any) => x.isDefault === 'yes');\n //this is to attach default locale when adding data in popup view where relations exists\n if (!selectedLocale && matchedLocale && !searchParams.get('locale')) {\n setSelectedLocale(matchedLocale.locale);\n }\n }\n\n }, [params.modelName, solidFormViewMetaData])\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n };\n\n // Check and handle errors from each API operation\n if (isEntityCreateError) {\n handleError(entityCreateError);\n } else if (isEntityDeleteError) {\n handleError(entityDeleteError);\n } else if (isEntityUpdateError) {\n handleError(entityUpdateError);\n } else if (isEntityPatchError) {\n handleError(entityPatchError);\n } else if (isEntityPublishedError) {\n handleError(entityPublishedError);\n } else if (isEntityUnpublishedError) {\n handleError(entityUnpublishedError);\n }\n }, [\n isEntityCreateError,\n isEntityDeleteError,\n isEntityUpdateError,\n isEntityPatchError,\n isEntityPublishedError,\n isEntityUnpublishedError\n ]);\n\n const confirmDialogWithPromise = () => {\n return new Promise<boolean>((resolve) => {\n confirmResolveRef.current = resolve;\n setConfirmVisible(true);\n });\n };\n\n const onFormikSubmit = async (values: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n const layoutFieldsObj = getLayoutFieldsAsObject([formViewLayout]);\n setIsSubmitting(true);\n try {\n let formData = new FormData();\n\n // Iterate through the keys in the values object\n Object.entries(values).forEach(([key, value]) => {\n\n const fieldMetadata = solidFieldsMetadata[key];\n // const fieldMetadata = getActualFieldMetadata(key, solidFieldsMetadata);\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: layoutFieldsObj[key],\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n // Append each field to the FormData\n if (value !== undefined && value !== null && solidField) {\n solidField.updateFormData(value, formData);\n }\n if (value !== undefined && value !== null && key.endsWith(\"Confirm\")) {\n formData.append(key, String(value))\n }\n\n });\n\n let solidWorkflowField = solidFormViewMetaData?.data?.solidView?.layout?.attrs?.workflowField;\n if (params.id !== \"new\") {\n if (solidFormViewMetaData?.data?.solidFormViewWorkflowData) {\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"selectionStatic\") {\n formData.append(solidWorkflowField, solidWorkflowFieldValue);\n }\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"many-to-one\") {\n formData.append(`${solidWorkflowField}Id`, solidWorkflowFieldValue);\n }\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n if (selectedLocale && !formData.has('localeName')) {\n formData.append('localeName', selectedLocale);\n }\n if (defaultEntityLocaleId) {\n formData.append('defaultEntityLocaleId', defaultEntityLocaleId.toString());\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow) {\n if (published) {\n formData.append('publishedAt', published);\n }\n }\n if (params.inlineCreateAutoSave === true) {\n params.customCreateHandler(formData);\n } else {\n if (params.id === 'new') {\n // default locale\n const result = await createEntity(formData).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FORM_SAVED, detail: ERROR_MESSAGES.FORM_SAVED_SUCCESSFULLY }));\n // if (!params.embeded && result?.data?.id) {\n // const newPathname = pathname.replace(/new$/, result.data.id);\n\n // const params = new URLSearchParams(searchParams.toString());\n // params.set(\"viewMode\", \"view\");\n\n // const updatedUrl = `${newPathname}?${params.toString()}`;\n // await router.push(updatedUrl, { scroll: false });\n\n // setViewMode(\"view\")\n // }\n if (!params.embeded) {\n const baseFormPath = normalizeSolidFormActionPath(pathname, \"form\");\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set(\"viewMode\", \"view\");\n router.push(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);\n setViewMode(\"view\")\n }\n return result;\n }\n else {\n // updateEntity({ id: +params.id, data: formData });\n const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n // const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n if (!params.embeded) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FORM_UPDATE, detail: ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY }));\n if (result?.statusCode === 200) {\n updateViewMode(\"view\")\n }\n }\n return result;\n\n }\n }\n\n } catch (err) {\n console.error(ERROR_MESSAGES.ENTITY_FAILED, err);\n } finally {\n setIsSubmitting(false);\n }\n }\n\n const showFieldError = () => {\n if (errorFields?.length === 0) return;\n errorFields.forEach((error) => {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Metadata Error\",\n detail: error,\n }));\n\n });\n\n // errorFields.length = 0;\n };\n useEffect(() => {\n if (errorFields?.length > 0) {\n showFieldError();\n }\n }, [errorFields])\n\n\n // - - - - - - - - - - - -- - - - - - - - - - - - DATA here\n // Fetch the actual data here. \n // This is the initial value of this form, will come from an API call in the case of edit. \n let layoutFields = [];\n let toPopulate: string[] = [];\n let toPopulateMedia: string[] = [];\n if (solidFormViewMetaData && formViewLayout) {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n layoutFields = [formViewLayout].flatMap(getLayoutFields);\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\n if (fieldMetadata?.type === 'relation' && fieldMetadata?.relationType === 'many-to-one') {\n if (!toPopulate.includes(fieldMetadata.name)) {\n toPopulate.push(fieldMetadata.name);\n }\n }\n if (fieldMetadata?.type === 'mediaSingle' || fieldMetadata?.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n if (formViewLayout.attrs?.workflowField && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.type === 'relation' && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.relationType === 'many-to-one') {\n toPopulate.push(solidFieldsMetadata[formViewLayout.attrs.workflowField].name);\n }\n }\n // TODO: Possible optimisation here, we are firing 2 queries to load the form view data object. \n // once without populate & populateMedia and then again once after that.\n const formViewDataQs = qs.stringify({ populate: toPopulate, populateMedia: toPopulateMedia }, {\n encodeValuesOnly: true,\n });\n const [initialEntityData, setInitialEntityData] = useState({});\n const {\n data: solidFormViewData,\n isLoading: solidFormViewDataIsLoading,\n refetch: refetchSolidFormViewData,\n } = useGetSolidEntityByIdQuery({ id: params.id, qs: formViewDataQs }, {\n skip: params.id === 'new'\n });\n useEffect(() => {\n if (params.id !== 'new') {\n refetchSolidFormViewData()\n }\n }, [formViewDataQs])\n\n useEffect(() => {\n if (solidFormViewMetaData) {\n if (params.customLayout) {\n setFormViewLayout(params.customLayout);\n } else {\n setFormViewLayout(solidFormViewMetaData?.data?.solidView?.layout);\n }\n setPublished(solidFormViewData?.data?.publishedAt);\n setFormViewMetaData(solidFormViewMetaData);\n }\n }, [solidFormViewMetaData]);\n\n // useEffect(() => {\n // const handleOnFormLayoutLoadEvent = async () => {\n // if (solidFormViewMetaData) {\n // // let formLayout = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // const onFormLayoutLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n // // let dynamicExtensionFunction = null;\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLayoutLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // }\n // if (onFormLayoutLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLayoutLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const updatedFormLayout: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (updatedFormLayout && updatedFormLayout?.layoutChanged && updatedFormLayout?.newLayout) {\n // setFormViewLayout(updatedFormLayout.newLayout);\n // // const newFormLayout = {\n // // ...formLayout,\n // // data: {\n // // ...formLayout.data,\n // // solidView: {\n // // ...formLayout.data.solidView,\n // // layout: updatedFormLayout.newLayout\n // // }\n // // }\n // // };\n // // formLayout = newFormLayout;\n // // customLayout = updatedFormLayout.newLayout;\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, error);\n // }\n // }\n // }\n // // setFormViewMetaData(formLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(formLayout.data.solidView.layout);\n // // }\n // }\n // };\n // const handleOnFormDataLoadEvent = async () => {\n // const onFormDataLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n // // let dynamicExtensionFunction = null;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: \"onFormDataLoad\",\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n // if (onFormDataLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormDataLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // const updatedFormData: SolidUiEventResponse = await dynamicExtensionFunction(event);\n\n // if (updatedFormData && updatedFormData?.dataChanged && updatedFormData?.newFormData) {\n // formViewData = updatedFormData.newFormData;\n // }\n // }\n // if (formViewData) {\n // setInitialEntityData(formViewData);\n // }\n // }\n // };\n // const handleOnFormLoadEvent = async () => {\n // const onFormLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n // // let dynamicExtensionFunction = null;\n // let localFormViewMetadata = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formViewLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n\n // if (onFormLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const result: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (result && result?.layoutChanged && result?.newLayout) {\n // // const newLocalFormViewMetadata = {\n // // ...localFormViewMetadata,\n // // data: {\n // // ...localFormViewMetadata.data,\n // // solidView: {\n // // ...localFormViewMetadata.data.solidView,\n // // layout: result.newLayout\n // // }\n // // }\n // // };\n // // localFormViewMetadata = newLocalFormViewMetadata;\n // // customLayout = result.newLayout;\n // // setFormViewMetaData(localFormViewMetadata);\n\n // setFormViewLayout(result.newLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(localFormViewMetadata.data.solidView.layout);\n // // }\n // }\n // if (result && result?.dataChanged && result?.newFormData) {\n // formViewData = result.newFormData;\n // setInitialEntityData(formViewData);\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.ON_FORM_LOAD, error);\n // }\n // }\n // }\n // };\n\n // handleOnFormLayoutLoadEvent();\n // handleOnFormDataLoadEvent();\n // handleOnFormLoadEvent();\n // }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n const runFormEvents = async () => {\n if (!solidFormViewMetaData) return;\n\n /** ----------------------------\n * 1. Initialize working state\n * ----------------------------- */\n let workingLayout = params.customLayout ?? solidFormViewMetaData?.data?.solidView?.layout;\n let workingFormData = solidFormViewData?.data;\n const baseEvent = {\n parentData: params?.parentData,\n fieldsMetadata: solidFormViewMetaData,\n viewMetadata: solidFormViewMetaData?.data?.solidView,\n queryParams: {\n actionName,\n actionType,\n actionContext,\n },\n };\n\n /** ----------------------------\n * 2. onFormLayoutLoad\n * ----------------------------- */\n const onFormLayoutLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n\n if (onFormLayoutLoadFn) {\n const fn = getExtensionFunction(onFormLayoutLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLayoutLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout,\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 3. onFormDataLoad\n * ----------------------------- */\n const onFormDataLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n\n if (onFormDataLoadFn) {\n const fn = getExtensionFunction(onFormDataLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormDataLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ UPDATED layout\n });\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 4. onFormLoad\n * ----------------------------- */\n const onFormLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n\n if (onFormLoadFn) {\n const fn = getExtensionFunction(onFormLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ FINAL layout\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.ON_FORM_LOAD, e);\n }\n }\n }\n\n /** ----------------------------\n * 5. Commit once to React state\n * ----------------------------- */\n if (workingLayout) {\n setFormViewLayout(workingLayout);\n }\n\n if (workingFormData) {\n setInitialEntityData(workingFormData);\n }\n };\n\n runFormEvents();\n }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n if (solidFormViewData) {\n setInitialEntityData(solidFormViewData.data);\n }\n }, [solidFormViewData]);\n\n let formik: FormikObject;\n\n // If either the metadata or the data of this form is loading, then we simply render a loading screen...\n if (solidFormViewMetaDataIsLoading || solidFormViewDataIsLoading || !formViewLayout) {\n formik = useFormik({\n initialValues: {},\n validationSchema: Yup.object(),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n return <SolidFormViewShimmerLoading />;\n }\n // At this point everything required to render the form is loaded, so we go ahead and start rendering things dynamically...\n else {\n\n // Initialize formik...\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n const validationSchema = {};\n const initialValues = {};\n\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: formLayoutField,\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n if (params.parentData) {\n fieldContext.parentData = params.parentData;\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n if (!fieldMetadata?.type) {\n const errorMessage = formLayoutField?.attrs?.label ? formLayoutField?.attrs?.label : formLayoutField.attrs.name;\n if (!errorFields.includes(errorMessage)) {\n // errorFields.push(errorMessage);\n }\n }\n if (solidField) {\n // @ts-ignore\n validationSchema[formLayoutField.attrs.name] = solidField.validationSchema();\n // @ts-ignore\n initialValues[formLayoutField.attrs.name] = solidField.initialValue();\n\n }\n }\n\n formik = useFormik({\n initialValues: initialValues,\n validationSchema: Yup.object(validationSchema),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n const formFieldOnXXX = async (event: ChangeEvent<HTMLInputElement>, eventType: string) => {\n\n // Invoke the formik change \n if (eventType === 'onFieldChange') {\n formik.handleChange(event);\n }\n\n // get details from the form event\n const { name: fieldName, value, type, checked } = event.target;\n\n // TODO: check if there is a change handler registered with this form view, load it and fire it.\n let changeHandler = solidView.layout.attrs[eventType];\n if (!changeHandler) {\n changeHandler = solidView.layout[eventType];\n }\n\n if (changeHandler) {\n // Get hold of the dynamic module...\n // const dynamicChangeHandler = await loadDynamicModule(changeHandler);\n const dynamicChangeHandler = getExtensionFunction(changeHandler);\n\n // Invoke the dynamic module...\n if (dynamicChangeHandler) {\n const event: SolidUiEvent = {\n fieldsMetadata: solidFieldsMetadata,\n formData: formik.values,\n modifiedField: fieldName,\n modifiedFieldValue: value,\n // @ts-ignore\n // TODO: HP & OR: This will be fixed once we figure out how to get types exported from core-ui\n type: eventType,\n viewMetadata: solidView,\n formViewLayout: formViewLayout,\n queryParams: {\n actionName,\n actionContext,\n actionType\n }\n }\n\n // Invoke the dynamic change handler: \n // TODO: encapsulate in try/catch, catch the exception render in the UI as an error & stop form rendering.\n const updatedFormInfo: SolidUiEventResponse = await dynamicChangeHandler(event);\n\n // If dataChanged is true, update Formik values\n if (updatedFormInfo?.dataChanged && updatedFormInfo.newFormData) {\n // This does one field at a time.\n // TODO: does the below fire change events again?\n Object.entries(updatedFormInfo.newFormData).forEach(([key, newValue]) => {\n formik.setFieldValue(key, newValue);\n });\n\n // This does all at once.\n // formik.setValues({\n // ...formik.values,\n // ...updatedFormInfo.newFormData\n // });\n }\n\n // if layout has changed then we need to re-render.\n if (updatedFormInfo?.layoutChanged && updatedFormInfo.newLayout) {\n // setFormViewMetaData({ ...formViewMetaData, layout: updatedFormInfo.newLayout });\n\n // TODO: this will trigger a useEffect dependent on formViewMetadata that invokes setFormViewLayout, \n // TODO: which means that this will not work if custom layout has been injected as a prop.\n setFormViewLayout(updatedFormInfo.newLayout);\n // setFormViewMetaData((prevMetaData: any) => {\n // const updatedFormViewMetadata = {\n // ...prevMetaData,\n // data: {\n // ...prevMetaData.data,\n // solidView: {\n // ...prevMetaData.data.solidView,\n // layout: updatedFormInfo.newLayout,\n // },\n // },\n // };\n // return updatedFormViewMetadata;\n // });\n }\n }\n else {\n // TODO: Show an error popup and stop form rendering ideallly...\n console.log(ERROR_MESSAGES.UNABLE_LOAD_DYNAMIC_MODULE, changeHandler);\n }\n }\n }\n\n // Now render the form dynamically...\n const renderFormElementDynamically: any = (element: any, recursiveFVMD: any) => {\n let { type, attrs, body, children } = element;\n\n // const key = attrs?.name ?? generateRandomKey();\n const key = attrs?.label;\n let visible = attrs?.visible;\n if (visible === undefined || visible === null) {\n visible = true;\n }\n // console.log(`Resolved visibility of form element ${ key } to ${ visible } `);\n // console.log(`Form element ${ key }: `, attrs);\n const visibleToRole = attrs?.roles || [];\n\n if (visibleToRole.length > 0) {\n if (!hasAnyRole(user?.roles, visibleToRole)) {\n return <></>\n }\n }\n\n switch (type) {\n case \"form\":\n if (!children)\n children = [];\n return <div key={key}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</div>;\n case \"div\":\n if (!children)\n children = [];\n return <div key={key} {...attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</div>\n case \"span\":\n return <span key={key} {...attrs}>{body}</span>\n case \"p\":\n return <p key={key} className={attrs?.className} {...attrs}>{body}</p>\n case \"h1\":\n return <h1 key={key} {...attrs}>{body}</h1>\n case \"h2\":\n return <h2 key={key} {...attrs}>{body}</h2>\n case \"ul\":\n if (!children)\n children = [];\n return <ul key={key} {...attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</ul>\n case \"li\":\n return <li key={key} {...attrs}>{body}</li>\n case \"sheet\":\n return <SolidSheet key={key}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidSheet>;\n case \"group\":\n if (visible === true) {\n return <SolidGroup key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidGroup>;\n }\n break;\n case \"row\":\n if (visible === true) {\n return <SolidRow key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidRow>;\n }\n break;\n case \"column\":\n if (visible === true) {\n return <SolidColumn key={key} attrs={attrs}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidColumn>;\n }\n break;\n case \"field\":\n if (visible === true) {\n\n // const fieldMetadata = solidFieldsMetadata[attrs.name];\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n // Read only permission if there is no update permission on model and router doesnt contains new\n const readOnlyPermission = !actionsAllowed.includes(`${permissionExpression(params.modelName, 'update')}`) && params.id !== \"new\";\n return <SolidField\n key={attrs.name}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n solidFormViewMetaData={recursiveFVMD}\n modelName={params.modelName}\n readOnly={readOnlyPermission}\n viewMode={viewMode}\n onChange={formFieldOnXXX}\n onBlur={formFieldOnXXX}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n parentFieldName={params.parentFieldName}\n parentData={params.parentData}\n onEmbeddedFormSave={() => setRefreshChatterMessage(true)}\n />;\n }\n break;\n\n case \"notebook\":\n if (visible === true) {\n return <SolidNotebook key={key} activeTab={searchParams.get(\"activeTab\") || \"\"} embeded={params.embeded}>{children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD, formik))}</SolidNotebook>;\n }\n break;\n case \"page\":\n if (visible === true) {\n const fields = children.flatMap((child: any) => getLayoutFields(child));\n const pageChildren = children.map((element: any) => renderFormElementDynamically(element, recursiveFVMD));\n return SolidPage({ children: pageChildren, attrs: attrs, key: key, formik: formik, fields });\n }\n break;\n case \"custom\":\n if (visible === true) {\n const widgetName = attrs?.widget;\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n\n if (widgetName) {\n // widgetName, formik, field, fieldMetadata, solidFormViewMetaData\n return <SolidDynamicWidget\n key={key}\n widgetName={widgetName}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n solidFormViewMetaData={recursiveFVMD}\n solidFormViewData={solidFormViewData}\n />\n }\n }\n break;\n\n default:\n return null;\n }\n };\n\n const renderFormDynamically = (recursiveFVMD: any, formViewLayout: any) => {\n if (!recursiveFVMD) {\n return;\n }\n if (!recursiveFVMD.data) {\n return;\n }\n const solidView = recursiveFVMD.data.solidView;\n const solidFieldsMetadata = recursiveFVMD.data.solidFieldsMetadata;\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n const updatedLayout = [formViewLayout];\n const dynamicForm = updatedLayout.map((element: any) => renderFormElementDynamically(element, recursiveFVMD));\n\n return dynamicForm;\n };\n\n const handleDeleteEntity = async () => {\n deleteEntity(solidFormViewData.data.id);\n setDeleteDialogVisible(false);\n if (params.embeded == true) {\n setRedirectToList(false)\n\n } else {\n setRedirectToList(true)\n\n }\n // router.back();\n }\n\n const onDeleteClose = () => {\n setDeleteDialogVisible(false);\n }\n\n const dynamicHeader = solidView.layout?.header;\n let DynamicHeaderComponent = null;\n if (dynamicHeader) {\n DynamicHeaderComponent = getExtensionComponent(dynamicHeader);\n }\n const customFormComponentEdit = solidView.layout.attrs.customFormComponentEdit;\n const customFormComponentNew = solidView.layout.attrs.customFormComponentNew;\n let DynamicFormComponentEdit = null;\n let DynamicFormComponentNew = null;\n if (customFormComponentEdit) {\n DynamicFormComponentEdit = getExtensionComponent(customFormComponentEdit);\n }\n if (customFormComponentNew) {\n DynamicFormComponentNew = getExtensionComponent(customFormComponentNew);\n }\n\n const handleChatterExpandClick = (option?: string) => {\n setShowChatter(true);\n if (option === 'info') {\n setDefaultTabViewOptionIndex(0);\n } else if (option === 'chatter') {\n setDefaultTabViewOptionIndex(1);\n setRefreshChatterMessage(true);\n } else {\n setDefaultTabViewOptionIndex(2);\n }\n };\n\n //en 4 null\n const handleLocaleChangeRedirect = (\n locale: string,\n defaultEntityLocaleId: string,\n viewMode: string,\n ) => {\n let newViewMode = viewMode;\n const defaultApplicableLocales = solidFormViewMetaData?.data?.applicableLocales || [];\n //fr 4\n const matchingLocale = defaultApplicableLocales.find(\n (loc: any) =>\n loc.defaultEntityLocaleId &&\n loc.entityId &&\n loc.locale === locale\n );\n // Extract the base path from the current pathname, removing query params if any\n const basePath = pathname.split('?')[0];\n\n // Determine entity part of the path (new or existing entityId)\n const entityPart = matchingLocale?.entityId ?? 'new';\n if (entityPart === 'new' && viewMode === 'view') {\n newViewMode = 'edit'\n } else if (entityPart !== 'new' && viewMode === 'view') {\n newViewMode = 'view'\n } else {\n newViewMode = 'edit'\n }\n // Construct new pathname using existing basePath and replacing entity segment\n const updatedPath = basePath.replace(/\\/form\\/[^/]+/, `/form/${entityPart}`);\n\n const queryParams = new URLSearchParams({\n viewMode: newViewMode,\n locale,\n defaultEntityLocaleId,\n });\n\n router.push(`${updatedPath}?${queryParams.toString()}`);\n };\n\n const handleConfirmAccept = () => {\n confirmResolveRef.current?.(true);\n setConfirmVisible(false);\n };\n\n const handleConfirmReject = () => {\n confirmResolveRef.current?.(false);\n setConfirmVisible(false);\n };\n const handleDraftPublishWorkFlow = async (type: \"publish\" | \"unpublish\") => {\n const userChoice = await confirmDialogWithPromise();\n if (!userChoice) return;\n\n // const finalPublishedValue =\n // type === \"publish\" ? new Date().toISOString() : \"\";\n\n // setPublished(finalPublishedValue);\n\n // const formdata = new FormData();\n // formdata.append(\"publishedAt\", finalPublishedValue);\n\n let result;\n\n if (type === \"publish\") {\n result = await publishSolidEntity(params.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.SAVED, detail: ERROR_MESSAGES.MARK_PUBLISH }));\n } else {\n result = await unpublishSolidEntity(params.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.SAVED, detail: ERROR_MESSAGES.MARK_UNPUBLISH }));\n }\n\n console.log(\"publish/unpublish result\", result);\n\n // Set updated publish value from API response\n setPublished(result?.data?.publishedAt);\n };\n\n\n const isVideoOrAudio = (url: string) => {\n // Remove query params if present\n const cleanUrl = url.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n // Combined list of supported media extensions\n const mediaExt = [\"mp4\", \"webm\", \"ogg\", \"mov\", \"mp3\", \"wav\", \"m4a\", \"aac\"];\n\n return ext ? mediaExt.includes(ext) : false;\n };\n\n const controlsList = [\"nodownload\", \"nofullscreen\", \"noremoteplayback\"];\n const slides = lightboxUrls.map((item: any) => {\n const url = item.src || item.downloadUrl || \"\";\n if (isVideoOrAudio(url)) {\n return {\n type: \"video\" as const,\n sources: [{ src: url, type: \"video/mp4\", }],\n };\n }\n return { src: url };\n });\n\n const hasMedia = slides.some((s) => s.type === \"video\");\n\n\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n <form style={{ width: '100%' }} onSubmit={formik.handleSubmit}>\n <SolidFormActionHeader\n formik={formik}\n formData={solidFormViewData?.data}\n params={params}\n actionsAllowed={actionsAllowed}\n formViewLayout={formViewLayout}\n solidView={solidView}\n solidFormViewMetaData={solidFormViewMetaData}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n setDeleteDialogVisible={setDeleteDialogVisible}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setRedirectToList={setRedirectToList}\n viewMode={viewMode}\n setViewMode={setViewMode}\n solidWorkflowFieldValue={solidWorkflowFieldValue}\n setSolidWorkflowFieldValue={setSolidWorkflowFieldValue}\n draftEnabled={solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow}\n publish={published}\n internationalisationEnabled={solidFormViewMetaData?.data?.solidView?.model?.internationalisation}\n handleDraftPublishWorkFlow={handleDraftPublishWorkFlow}\n onStepperUpdate={() => setRefreshChatterMessage(true)}\n isSubmitting={isSubmitting}\n />\n <div className={`px-4 py-3 md:p-4 solid-form-content ${params.embeded === true ? 'h-auto' : ''}`} style={{ maxHeight: params.embeded === true ? '80vh' : '', overflowY: 'auto' }}>\n {DynamicHeaderComponent && <DynamicHeaderComponent />}\n {params.id === 'new' && DynamicFormComponentNew ? (\n <DynamicFormComponentNew params={params} />\n ) : params.id !== 'new' && DynamicFormComponentEdit ? (\n <DynamicFormComponentEdit params={params} />\n ) : (\n renderFormDynamically(formViewMetaData, formViewLayout)\n )}\n </div>\n\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n {params.embeded !== true &&\n <div className={`chatter-section ${isShowChatter === false ? 'collapsed' : 'open'}`} style={{ width: chatterLocaleWidth }}>\n {isShowChatter && (\n <div\n style={{\n width: 5,\n cursor: 'col-resize',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n zIndex: 9,\n }}\n onMouseDown={() => setIsResizingChatterLocale(true)}\n />\n )}\n {isShowChatter === true &&\n <Button\n icon=\"pi pi-angle-double-right\"\n size=\"small\"\n text\n className=\"chatter-collapse-btn\"\n style={{ width: 30, height: 30, aspectRatio: '1/1' }}\n onClick={() => setShowChatter(false)}\n />\n }\n {isShowChatter === false ?\n <div className=\"flex flex-column gap-2 justify-content-center p-2\">\n {/*if solidview Internationalisation is enabled then show the locale tab */}\n {solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow &&\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('info')}>\n Info\n </div>}\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('chatter')}>\n Audit Trail\n </div>\n {\n mcpUrl &&\n (\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('solidx-ai')}>\n <div className=\"flex gap-2\"> <SolidXAIIcon /> SolidX AI </div>\n </div>\n )\n }\n <Button\n icon=\"pi pi-chevron-left\"\n size=\"small\"\n className=\"px-0\"\n style={{ width: 30 }}\n onClick={() => handleChatterExpandClick('chatter')}\n />\n </div>\n :\n <SolidChatterLocaleTabView\n createMode={createMode}\n setSelectedLocale={setSelectedLocale}\n selectedLocale={selectedLocale}\n solidFormViewMetaData={solidFormViewMetaData}\n id={params.id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n activeTab={defaultTabViewOptionIndex}\n viewMode={viewMode}\n defaultEntityLocaleId={defaultEntityLocaleId}\n handleLocaleChangeRedirect={handleLocaleChangeRedirect}\n solidFormViewData={solidFormViewData}\n published={published}\n actionsAllowed={actionsAllowed}\n mcpUrl={mcpUrl}\n />\n }\n </div>\n }\n\n <Dialog\n visible={isDeleteDialogVisible}\n header=\"Confirm Delete\"\n className=\"solid-confirm-dialog\"\n modal\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button label=\"Yes\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" autoFocus onClick={() => handleDeleteEntity()} />\n <Button label=\"No\" icon=\"pi pi-times\" className='small-button' onClick={onDeleteClose} />\n </div>\n )}\n onHide={() => setDeleteDialogVisible(false)}\n >\n <p>Are you sure you want to delete?</p>\n </Dialog>\n <Dialog\n visible={isLayoutDialogVisible}\n header=\"Change Form Layout\"\n modal\n onHide={() => setLayoutDialogVisible(false)}\n style={{ width: '50vw' }}\n breakpoints={{\n '960px': '80vw',\n '641px': '95vw'\n }}\n contentClassName=\"p-3 pt-0 lg:p-4\"\n >\n <SolidFormUserViewLayout solidFormViewMetaData={solidFormViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </Dialog>\n {openLightbox &&\n <Lightbox\n open={openLightbox}\n plugins={\n hasMedia\n ? [Counter, Download, Video] // add Video plugin if needed\n : [Counter, Download]\n }\n close={() => setOpenLightbox(false)}\n slides={[...slides]}\n {...(hasMedia && {\n video: {\n controls: true,\n playsInline: true,\n autoPlay: false,\n loop: false,\n muted: false,\n disablePictureInPicture: false,\n disableRemotePlayback: false,\n controlsList: controlsList.join(\" \"),\n crossOrigin: \"anonymous\",\n preload: \"auto\",\n },\n })}\n />\n }\n\n <ConfirmDialog\n visible={confirmVisible}\n onHide={() => setConfirmVisible(false)}\n header=\"Confirmation\"\n acceptLabel=\"Yes, confrim\"\n rejectLabel=\"No, cancel\"\n acceptClassName=\"p-button-danger\"\n rejectClassName=\"p-button-text\"\n position=\"center\"\n accept={handleConfirmAccept}\n reject={handleConfirmReject}\n message={\n <div className=\"flex flex-col items-center justify-center text-center space-y-3\">\n <p className=\"text-gray-800 text-base\">\n Are you sure you want to {published !== null ? 'unpublish' : 'publish'}?\n </p>\n </div>\n }\n />\n </div>\n );\n }\n};\n\nexport default SolidFormView;\n"]}