@solidxai/core-ui 0.1.5-beta.10 → 0.1.5-beta.12

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 (306) hide show
  1. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  2. package/dist/components/auth/GoogleAuthChecking.js +10 -10
  3. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  4. package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
  5. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  6. package/dist/components/auth/SolidChangeForcePassword.js +9 -10
  7. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  8. package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
  9. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  10. package/dist/components/auth/SolidForgotPassword.js +8 -8
  11. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  12. package/dist/components/auth/SolidForgotPassword.tsx +6 -8
  13. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  14. package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
  15. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  16. package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
  17. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  18. package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
  19. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  20. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
  21. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  22. package/dist/components/auth/SolidLogin.js +12 -12
  23. package/dist/components/auth/SolidLogin.js.map +1 -1
  24. package/dist/components/auth/SolidLogin.tsx +11 -16
  25. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  26. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  27. package/dist/components/auth/SolidOTPVerify.js +67 -0
  28. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  29. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  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/AuthBanner.js.map +1 -1
  39. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  40. package/dist/components/common/GeneralSettings.js +87 -120
  41. package/dist/components/common/GeneralSettings.js.map +1 -1
  42. package/dist/components/common/GeneralSettings.tsx +12 -42
  43. package/dist/components/common/GlobalToast.d.ts +2 -0
  44. package/dist/components/common/GlobalToast.d.ts.map +1 -0
  45. package/dist/components/common/GlobalToast.js +25 -0
  46. package/dist/components/common/GlobalToast.js.map +1 -0
  47. package/dist/components/common/GlobalToast.tsx +25 -0
  48. package/dist/components/common/SolidExport.d.ts.map +1 -1
  49. package/dist/components/common/SolidExport.js +19 -31
  50. package/dist/components/common/SolidExport.js.map +1 -1
  51. package/dist/components/common/SolidExport.tsx +7 -19
  52. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  53. package/dist/components/common/SolidFormStepper.js +41 -41
  54. package/dist/components/common/SolidFormStepper.js.map +1 -1
  55. package/dist/components/common/SolidFormStepper.tsx +5 -6
  56. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  57. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  58. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  59. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  60. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  61. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  62. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
  63. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  64. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
  65. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  66. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
  67. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  68. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
  69. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  70. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
  71. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  72. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
  73. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  74. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
  75. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  76. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
  77. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  78. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
  79. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  80. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
  81. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  82. package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
  83. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  84. package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
  85. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  86. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
  87. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  88. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
  89. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
  90. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
  91. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  92. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
  93. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
  94. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
  95. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
  96. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
  97. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
  98. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
  99. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  100. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
  101. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  102. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
  103. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  104. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
  105. package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
  106. package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
  107. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  108. package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
  109. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  110. package/dist/components/core/form/SolidFormView.js +12 -21
  111. package/dist/components/core/form/SolidFormView.js.map +1 -1
  112. package/dist/components/core/form/SolidFormView.tsx +11 -33
  113. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  114. package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
  115. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  116. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
  117. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  118. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
  119. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  120. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
  121. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  122. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
  123. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  124. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
  125. package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
  126. package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
  127. package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
  128. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
  129. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  130. package/dist/components/core/kanban/SolidKanbanView.js +5 -7
  131. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  132. package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
  133. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  134. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
  135. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  136. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
  137. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  138. package/dist/components/core/list/SolidListView.js +20 -67
  139. package/dist/components/core/list/SolidListView.js.map +1 -1
  140. package/dist/components/core/list/SolidListView.tsx +9 -76
  141. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  142. package/dist/components/core/model/CreateModel.js +15 -25
  143. package/dist/components/core/model/CreateModel.js.map +1 -1
  144. package/dist/components/core/model/CreateModel.tsx +12 -32
  145. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  146. package/dist/components/core/model/FieldMetaData.js +6 -17
  147. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  148. package/dist/components/core/model/FieldMetaData.tsx +5 -26
  149. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  150. package/dist/components/core/model/ModelMetaData.js +48 -55
  151. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  152. package/dist/components/core/model/ModelMetaData.tsx +4 -22
  153. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  154. package/dist/components/core/module/CreateModule.js +42 -44
  155. package/dist/components/core/module/CreateModule.js.map +1 -1
  156. package/dist/components/core/module/CreateModule.tsx +13 -27
  157. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  158. package/dist/components/core/module/ModuleListViewData.js +11 -7
  159. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  160. package/dist/components/core/module/ModuleListViewData.tsx +10 -8
  161. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  162. package/dist/components/core/tree/SolidTreeView.js +32 -69
  163. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  164. package/dist/components/core/tree/SolidTreeView.tsx +8 -47
  165. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  166. package/dist/components/core/users/CreateUser.js +24 -37
  167. package/dist/components/core/users/CreateUser.js.map +1 -1
  168. package/dist/components/core/users/CreateUser.tsx +8 -46
  169. package/dist/components/core/users/UserListView.d.ts.map +1 -1
  170. package/dist/components/core/users/UserListView.js +9 -16
  171. package/dist/components/core/users/UserListView.js.map +1 -1
  172. package/dist/components/core/users/UserListView.tsx +5 -21
  173. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  174. package/dist/components/layout/AdminLayout.js +4 -2
  175. package/dist/components/layout/AdminLayout.js.map +1 -1
  176. package/dist/components/layout/AdminLayout.tsx +4 -2
  177. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  178. package/dist/components/layout/AppSidebar.js +1 -2
  179. package/dist/components/layout/AppSidebar.js.map +1 -1
  180. package/dist/components/layout/AppSidebar.tsx +0 -2
  181. package/dist/components/layout/Layout.d.ts.map +1 -1
  182. package/dist/components/layout/Layout.js +2 -1
  183. package/dist/components/layout/Layout.js.map +1 -1
  184. package/dist/components/layout/Layout.tsx +2 -0
  185. package/dist/components/layout/navbar-one.d.ts.map +1 -1
  186. package/dist/components/layout/navbar-one.js +1 -2
  187. package/dist/components/layout/navbar-one.js.map +1 -1
  188. package/dist/components/layout/navbar-one.tsx +0 -2
  189. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  190. package/dist/components/layout/navbar-two-menu.js +50 -24
  191. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  192. package/dist/components/layout/navbar-two-menu.tsx +48 -30
  193. package/dist/index.d.ts +4 -0
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +3 -0
  196. package/dist/index.js.map +1 -1
  197. package/dist/index.ts +4 -0
  198. package/dist/nextAuth/authProviders.d.ts +4 -0
  199. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  200. package/dist/nextAuth/authProviders.js +198 -0
  201. package/dist/nextAuth/authProviders.js.map +1 -0
  202. package/dist/nextAuth/authProviders.tsx +232 -0
  203. package/dist/nextAuth/handleLogout.d.ts +2 -0
  204. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  205. package/dist/nextAuth/handleLogout.js +36 -0
  206. package/dist/nextAuth/handleLogout.js.map +1 -0
  207. package/dist/nextAuth/handleLogout.tsx +39 -0
  208. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  209. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  210. package/dist/nextAuth/refreshAccessToken.js +24 -0
  211. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  212. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  213. package/dist/redux/features/settingsSlice.d.ts +20 -0
  214. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  215. package/dist/redux/features/settingsSlice.js +39 -0
  216. package/dist/redux/features/settingsSlice.js.map +1 -0
  217. package/dist/redux/features/settingsSlice.ts +60 -0
  218. package/dist/redux/features/toastSlice.d.ts +15 -0
  219. package/dist/redux/features/toastSlice.d.ts.map +1 -0
  220. package/dist/redux/features/toastSlice.js +20 -0
  221. package/dist/redux/features/toastSlice.js.map +1 -0
  222. package/dist/redux/features/toastSlice.ts +35 -0
  223. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  224. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  225. package/dist/redux/store/defaultStoreConfig.js +2 -1
  226. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  227. package/dist/redux/store/defaultStoreConfig.ts +2 -0
  228. package/package.json +1 -1
  229. package/dist/components/auth/AuthTabs.d.ts +0 -14
  230. package/dist/components/auth/AuthTabs.d.ts.map +0 -1
  231. package/dist/components/auth/AuthTabs.js +0 -19
  232. package/dist/components/auth/AuthTabs.js.map +0 -1
  233. package/dist/components/auth/AuthTabs.tsx +0 -38
  234. package/dist/components/common/SolidErrorStatePage.d.ts +0 -12
  235. package/dist/components/common/SolidErrorStatePage.d.ts.map +0 -1
  236. package/dist/components/common/SolidErrorStatePage.js +0 -16
  237. package/dist/components/common/SolidErrorStatePage.js.map +0 -1
  238. package/dist/components/common/SolidErrorStatePage.tsx +0 -55
  239. package/dist/components/core/list/PLAN.md +0 -92
  240. package/dist/components/core/list/SolidDataTable.d.ts +0 -58
  241. package/dist/components/core/list/SolidDataTable.d.ts.map +0 -1
  242. package/dist/components/core/list/SolidDataTable.js +0 -141
  243. package/dist/components/core/list/SolidDataTable.js.map +0 -1
  244. package/dist/components/core/list/SolidDataTable.tsx +0 -314
  245. package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
  246. package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
  247. package/dist/components/core/list/SolidDataTablePagination.js +0 -22
  248. package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
  249. package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
  250. package/dist/components/layout/AdminTopHeader.d.ts +0 -2
  251. package/dist/components/layout/AdminTopHeader.d.ts.map +0 -1
  252. package/dist/components/layout/AdminTopHeader.js +0 -68
  253. package/dist/components/layout/AdminTopHeader.js.map +0 -1
  254. package/dist/components/layout/AdminTopHeader.tsx +0 -135
  255. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +0 -24
  256. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +0 -1
  257. package/dist/components/shad-cn-ui/SolidAutocomplete.js +0 -224
  258. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +0 -1
  259. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +0 -339
  260. package/dist/components/shad-cn-ui/SolidButton.d.ts +0 -14
  261. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +0 -1
  262. package/dist/components/shad-cn-ui/SolidButton.js +0 -36
  263. package/dist/components/shad-cn-ui/SolidButton.js.map +0 -1
  264. package/dist/components/shad-cn-ui/SolidButton.tsx +0 -54
  265. package/dist/components/shad-cn-ui/SolidInput.d.ts +0 -5
  266. package/dist/components/shad-cn-ui/SolidInput.d.ts.map +0 -1
  267. package/dist/components/shad-cn-ui/SolidInput.js +0 -35
  268. package/dist/components/shad-cn-ui/SolidInput.js.map +0 -1
  269. package/dist/components/shad-cn-ui/SolidInput.tsx +0 -12
  270. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +0 -10
  271. package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +0 -1
  272. package/dist/components/shad-cn-ui/SolidNumberInput.js +0 -33
  273. package/dist/components/shad-cn-ui/SolidNumberInput.js.map +0 -1
  274. package/dist/components/shad-cn-ui/SolidNumberInput.tsx +0 -24
  275. package/dist/components/shad-cn-ui/SolidSelect.d.ts +0 -16
  276. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +0 -1
  277. package/dist/components/shad-cn-ui/SolidSelect.js +0 -26
  278. package/dist/components/shad-cn-ui/SolidSelect.js.map +0 -1
  279. package/dist/components/shad-cn-ui/SolidSelect.tsx +0 -65
  280. package/dist/components/shad-cn-ui/SolidTabs.d.ts +0 -18
  281. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +0 -1
  282. package/dist/components/shad-cn-ui/SolidTabs.js +0 -22
  283. package/dist/components/shad-cn-ui/SolidTabs.js.map +0 -1
  284. package/dist/components/shad-cn-ui/SolidTabs.tsx +0 -73
  285. package/dist/components/shad-cn-ui/index.d.ts +0 -7
  286. package/dist/components/shad-cn-ui/index.d.ts.map +0 -1
  287. package/dist/components/shad-cn-ui/index.js +0 -7
  288. package/dist/components/shad-cn-ui/index.js.map +0 -1
  289. package/dist/components/shad-cn-ui/index.ts +0 -6
  290. package/dist/components/solid-ui/SolidButton.d.ts +0 -14
  291. package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
  292. package/dist/components/solid-ui/SolidButton.js +0 -36
  293. package/dist/components/solid-ui/SolidButton.js.map +0 -1
  294. package/dist/components/solid-ui/SolidButton.tsx +0 -54
  295. package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
  296. package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
  297. package/dist/components/solid-ui/SolidTabs.js +0 -22
  298. package/dist/components/solid-ui/SolidTabs.js.map +0 -1
  299. package/dist/components/solid-ui/SolidTabs.tsx +0 -73
  300. package/dist/components/solid-ui/index.d.ts +0 -3
  301. package/dist/components/solid-ui/index.d.ts.map +0 -1
  302. package/dist/components/solid-ui/index.js +0 -3
  303. package/dist/components/solid-ui/index.js.map +0 -1
  304. package/dist/components/solid-ui/index.ts +0 -2
  305. package/dist/resources/images/errors/error-astronaut-404.png +0 -0
  306. package/dist/resources/shadcn-base.css +0 -3200
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteModuleRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidCircularLoader } from \"../../../../../../components/core/common/SolidLoaders/SolidCircularLoader\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { useGetModelsQuery, useLazyGetModelsQuery } from \"../../../../../../redux/api/modelApi\";\nimport { useGenerateCodeFormoduleMutation } from \"../../../../../../redux/api/moduleApi\";\nimport { createSolidEntityApi } from \"../../../../../../redux/api/solidEntityApi\";\nimport { useSeederMutation } from \"../../../../../../redux/api/solidServiceApi\";\nimport { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { kebabCase } from \"lodash\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Column } from \"primereact/column\";\nimport { DataTable } from \"primereact/datatable\";\nimport { Toast } from \"primereact/toast\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport showToast from \"../../../../../../helpers/showToast\";\n\nconst DeleteModuleRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n\n const [isConfirmed, setIsConfirmed] = useState(false);\n const [errorState, setErrorState] = useState<string | null>(null);\n const [isDeleting, setIsDeleting] = useState(false);\n const dispatch = useDispatch();\n const entityApi = createSolidEntityApi(\"moduleMetadata\");\n const { useDeleteSolidEntityMutation } = entityApi;\n\n const [allowDelete, setAllowDelete] = useState(false);\n\n const [deleteSolidSingleEntiry, {\n isError: isSolidEntitiesDeleteError,\n }] = useDeleteSolidEntityMutation()\n\n const queryString = `filters[$and][0][$or][0][module][$in][0]=${event?.rowData?.id}`;\n const { data: models, isLoading: getModelsLoading, error } = useGetModelsQuery(queryString);\n\n useEffect(() => {\n if (models && models.meta.totalRecords == 0) {\n setAllowDelete(true);\n } else {\n setAllowDelete(false);\n }\n }, [models]);\n\n const toast = useRef<Toast>(null);\n\n const deleteModuleHandler = async () => {\n setIsDeleting(true);\n setErrorState(null);\n try {\n const res: any = await deleteSolidSingleEntiry(event.rowData.id)\n // console.log('delete model res', res);\n setErrorState(res.error || null);\n if (res.error) {\n // handle backend or RTK error object\n const message =\n res.error?.data?.message ||\n res.error?.error ||\n ERROR_MESSAGES.ERROR_OCCURED;\n setErrorState(message);\n showToast(toast, 'error', ERROR_MESSAGES.DELETE_FAIELD, message);\n } else {\n showToast(toast, 'success', ERROR_MESSAGES.MODEL_DELETE, ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName));\n dispatch(closePopup());\n }\n } catch (err: any) {\n console.error(ERROR_MESSAGES.DELETE_ERROR, err);\n setErrorState(err.message || ERROR_MESSAGES.NETWORK_ERROR);\n showToast(toast, 'error', ERROR_MESSAGES.ERROR, ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR);\n } finally {\n setIsDeleting(false);\n }\n }\n\n const rows = [\n { file: `${kebabCase(event.rowData.name)}.module.ts`, description: 'Delete the module file', intervention: 'Automatic'},\n { file: `${kebabCase(event.rowData.name)}-metadata.json`, description: 'Remove the module metadata json file', intervention: 'Automatic' },\n ];\n\n return (\n <div className=\"\">\n <div className=\"p-dialog-header secondary-border-bottom py-3\" style={{ background: 'var(--solid-light-grey)' }}>\n <span className=\"p-dialog-title\">\n Delete Module\n </span>\n </div>\n <div className=\"px-4 pb-4 pt-3\">\n <div>\n <p className=\"form-field-label font-medium\">\n {allowDelete === true ?\n \"Deleting a module should be done carefully. The below files will be impacted as part of deleting a model:\"\n :\n \"This module still has models associated with it. Please delete those models before deleting the module\"\n }\n </p>\n {/* {allowDelete === true && */}\n <DataTable value={rows} size=\"small\">\n <Column field=\"file\" header=\"File Name\" />\n <Column field=\"description\" header=\"Description\" />\n <Column field=\"intervention\" header=\"Intervention\" />\n </DataTable>\n {/* } */}\n {/* {allowDelete === true &&\n\n <div className=\"my-4\">\n <div className=\"flex align-items-center\">\n <Checkbox\n inputId=\"confirmation\"\n name=\"confirm\"\n checked={isConfirmed}\n onChange={() => setIsConfirmed(!isConfirmed)} />\n <label htmlFor=\"confirmation\" className=\"ml-2 form-field-label\">\n I confirm that #7 &amp; #9 will be done by me manually after the automatic steps above are applied.\n </label>\n </div>\n </div>\n } */}\n </div>\n <div className=\"flex gap-3 justify-content-start\">\n {allowDelete === true &&\n <Button size=\"small\" label=\"Apply\" autoFocus onClick={deleteModuleHandler} />\n }\n <Button size=\"small\" label=\"Cancel\" outlined onClick={() => dispatch(closePopup())} />\n </div>\n </div>\n </div>\n )\n}\n\nexport default DeleteModuleRowAction;"]}
1
+ {"version":3,"file":"DeleteModuleRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidCircularLoader } from \"../../../../../../components/core/common/SolidLoaders/SolidCircularLoader\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { useGetModelsQuery, useLazyGetModelsQuery } from \"../../../../../../redux/api/modelApi\";\nimport { useGenerateCodeFormoduleMutation } from \"../../../../../../redux/api/moduleApi\";\nimport { createSolidEntityApi } from \"../../../../../../redux/api/solidEntityApi\";\nimport { useSeederMutation } from \"../../../../../../redux/api/solidServiceApi\";\nimport { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { kebabCase } from \"lodash\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Column } from \"primereact/column\";\nimport { DataTable } from \"primereact/datatable\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\n\nconst DeleteModuleRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n\n const [isConfirmed, setIsConfirmed] = useState(false);\n const [errorState, setErrorState] = useState<string | null>(null);\n const [isDeleting, setIsDeleting] = useState(false);\n const dispatch = useDispatch();\n const entityApi = createSolidEntityApi(\"moduleMetadata\");\n const { useDeleteSolidEntityMutation } = entityApi;\n\n const [allowDelete, setAllowDelete] = useState(false);\n\n const [deleteSolidSingleEntiry, {\n isError: isSolidEntitiesDeleteError,\n }] = useDeleteSolidEntityMutation()\n\n const queryString = `filters[$and][0][$or][0][module][$in][0]=${event?.rowData?.id}`;\n const { data: models, isLoading: getModelsLoading, error } = useGetModelsQuery(queryString);\n\n useEffect(() => {\n if (models && models.meta.totalRecords == 0) {\n setAllowDelete(true);\n } else {\n setAllowDelete(false);\n }\n }, [models]);\n\n const deleteModuleHandler = async () => {\n setIsDeleting(true);\n setErrorState(null);\n try {\n const res: any = await deleteSolidSingleEntiry(event.rowData.id)\n // console.log('delete model res', res);\n setErrorState(res.error || null);\n if (res.error) {\n // handle backend or RTK error object\n const message =\n res.error?.data?.message ||\n res.error?.error ||\n ERROR_MESSAGES.ERROR_OCCURED;\n setErrorState(message);\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.DELETE_FAIELD, detail: message }));\n } else {\n dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));\n dispatch(closePopup());\n }\n } catch (err: any) {\n console.error(ERROR_MESSAGES.DELETE_ERROR, err);\n setErrorState(err.message || ERROR_MESSAGES.NETWORK_ERROR);\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR }));\n } finally {\n setIsDeleting(false);\n }\n }\n\n const rows = [\n { file: `${kebabCase(event.rowData.name)}.module.ts`, description: 'Delete the module file', intervention: 'Automatic'},\n { file: `${kebabCase(event.rowData.name)}-metadata.json`, description: 'Remove the module metadata json file', intervention: 'Automatic' },\n ];\n\n return (\n <div className=\"\">\n <div className=\"p-dialog-header secondary-border-bottom py-3\" style={{ background: 'var(--solid-light-grey)' }}>\n <span className=\"p-dialog-title\">\n Delete Module\n </span>\n </div>\n <div className=\"px-4 pb-4 pt-3\">\n <div>\n <p className=\"form-field-label font-medium\">\n {allowDelete === true ?\n \"Deleting a module should be done carefully. The below files will be impacted as part of deleting a model:\"\n :\n \"This module still has models associated with it. Please delete those models before deleting the module\"\n }\n </p>\n {/* {allowDelete === true && */}\n <DataTable value={rows} size=\"small\">\n <Column field=\"file\" header=\"File Name\" />\n <Column field=\"description\" header=\"Description\" />\n <Column field=\"intervention\" header=\"Intervention\" />\n </DataTable>\n {/* } */}\n {/* {allowDelete === true &&\n\n <div className=\"my-4\">\n <div className=\"flex align-items-center\">\n <Checkbox\n inputId=\"confirmation\"\n name=\"confirm\"\n checked={isConfirmed}\n onChange={() => setIsConfirmed(!isConfirmed)} />\n <label htmlFor=\"confirmation\" className=\"ml-2 form-field-label\">\n I confirm that #7 &amp; #9 will be done by me manually after the automatic steps above are applied.\n </label>\n </div>\n </div>\n } */}\n </div>\n <div className=\"flex gap-3 justify-content-start\">\n {allowDelete === true &&\n <Button size=\"small\" label=\"Apply\" autoFocus onClick={deleteModuleHandler} />\n }\n <Button size=\"small\" label=\"Cancel\" outlined onClick={() => dispatch(closePopup())} />\n </div>\n </div>\n </div>\n )\n}\n\nexport default DeleteModuleRowAction;"]}
@@ -12,10 +12,9 @@ import { Button } from "primereact/button";
12
12
  import { Checkbox } from "primereact/checkbox";
13
13
  import { Column } from "primereact/column";
14
14
  import { DataTable } from "primereact/datatable";
15
- import { Toast } from "primereact/toast";
16
- import { useEffect, useRef, useState } from "react";
15
+ import { useEffect, useState } from "react";
17
16
  import { useDispatch } from "react-redux";
18
- import showToast from "../../../../../../helpers/showToast";
17
+ import { showToast } from "../../../../../../redux/features/toastSlice";
19
18
 
20
19
  const DeleteModuleRowAction = (event: SolidListRowdataDynamicFunctionProps) => {
21
20
 
@@ -43,8 +42,6 @@ const DeleteModuleRowAction = (event: SolidListRowdataDynamicFunctionProps) => {
43
42
  }
44
43
  }, [models]);
45
44
 
46
- const toast = useRef<Toast>(null);
47
-
48
45
  const deleteModuleHandler = async () => {
49
46
  setIsDeleting(true);
50
47
  setErrorState(null);
@@ -59,15 +56,15 @@ const DeleteModuleRowAction = (event: SolidListRowdataDynamicFunctionProps) => {
59
56
  res.error?.error ||
60
57
  ERROR_MESSAGES.ERROR_OCCURED;
61
58
  setErrorState(message);
62
- showToast(toast, 'error', ERROR_MESSAGES.DELETE_FAIELD, message);
59
+ dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.DELETE_FAIELD, detail: message }));
63
60
  } else {
64
- showToast(toast, 'success', ERROR_MESSAGES.MODEL_DELETE, ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName));
61
+ dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));
65
62
  dispatch(closePopup());
66
63
  }
67
64
  } catch (err: any) {
68
65
  console.error(ERROR_MESSAGES.DELETE_ERROR, err);
69
66
  setErrorState(err.message || ERROR_MESSAGES.NETWORK_ERROR);
70
- showToast(toast, 'error', ERROR_MESSAGES.ERROR, ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR);
67
+ dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR }));
71
68
  } finally {
72
69
  setIsDeleting(false);
73
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateModuleCodeRowAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAQ1F,QAAA,MAAM,2BAA2B,UAAW,oCAAoC,4CAwL/E,CAAA;AAED,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"GenerateModuleCodeRowAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAO1F,QAAA,MAAM,2BAA2B,UAAW,oCAAoC,4CAoL/E,CAAA;AAED,eAAe,2BAA2B,CAAC"}
@@ -41,11 +41,10 @@ import { useGenerateCodeFormoduleMutation } from "../../../../../../redux/api/mo
41
41
  import { useSeederMutation } from "../../../../../../redux/api/solidServiceApi";
42
42
  import { closePopup } from "../../../../../../redux/features/popupSlice";
43
43
  import { Button } from "primereact/button";
44
- import { Toast } from "primereact/toast";
45
- import { useEffect, useRef, useState } from "react";
44
+ import { useEffect, useState } from "react";
46
45
  import { useDispatch } from "react-redux";
46
+ import { showToast } from "../../../../../../redux/features/toastSlice";
47
47
  import { env } from "../../../../../../adapters/env";
48
- import showToast from "../../../../../../helpers/showToast";
49
48
  var GenerateModuleCodeRowAction = function (event) {
50
49
  var _a;
51
50
  var dispatch = useDispatch();
@@ -112,7 +111,7 @@ var GenerateModuleCodeRowAction = function (event) {
112
111
  setIsGenerating(false);
113
112
  dispatch(closePopup());
114
113
  console.log("error", error_1);
115
- showToast(toast, "error", "Something went wrong", ERROR_MESSAGES.API_ERROR);
114
+ dispatch(showToast({ severity: "error", summary: "Something went wrong", detail: ERROR_MESSAGES.API_ERROR }));
116
115
  return [3 /*break*/, 3];
117
116
  case 3: return [2 /*return*/];
118
117
  }
@@ -160,7 +159,6 @@ var GenerateModuleCodeRowAction = function (event) {
160
159
  });
161
160
  });
162
161
  };
163
- var toast = useRef(null);
164
162
  useEffect(function () {
165
163
  var runSeederIfBackendAlive = function () { return __awaiter(void 0, void 0, void 0, function () {
166
164
  var isAlive;
@@ -182,7 +180,7 @@ var GenerateModuleCodeRowAction = function (event) {
182
180
  case 3:
183
181
  dispatch(closePopup());
184
182
  console.log(ERROR_MESSAGES.BACKEND_NOT_ALIVE);
185
- showToast(toast, "error", ERROR_MESSAGES.BACKEND_UNAVAILABLE, ERROR_MESSAGES.SEEDER_NOT_TRIGGERED);
183
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.BACKEND_UNAVAILABLE, detail: ERROR_MESSAGES.SEEDER_NOT_TRIGGERED }));
186
184
  _a.label = 4;
187
185
  case 4: return [2 /*return*/];
188
186
  }
@@ -195,24 +193,24 @@ var GenerateModuleCodeRowAction = function (event) {
195
193
  useEffect(function () {
196
194
  if (isSeederSuccess) {
197
195
  console.log(ERROR_MESSAGES.IS_SEEDER_SUCCESS, data);
198
- showToast(toast, "success", ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY, ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY);
196
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY, detail: ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY }));
199
197
  setIsGenerating(false);
200
198
  dispatch(closePopup());
201
199
  window.location.reload();
202
200
  }
203
201
  if (isSeederError) {
204
202
  console.log(ERROR_MESSAGES.IS_SEEDER_ERROR, isSeederError);
205
- showToast(toast, "error", ERROR_MESSAGES.SEEDER_ERROR, ERROR_MESSAGES.SEEDER_NOT_RUN);
203
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEEDER_ERROR, detail: ERROR_MESSAGES.SEEDER_NOT_RUN }));
206
204
  setIsGenerating(false);
207
205
  }
208
206
  }, [isSeederSuccess]);
209
207
  // TODO: END REFACTORING - reusable code alert
210
208
  return (_jsx(_Fragment, { children: isGenerating ?
211
- _jsxs(_Fragment, { children: [_jsx(Toast, { ref: toast }), _jsxs("div", { className: "flex flex-column align-items-center justify-content-center", style: { padding: '2rem', height: 200 }, children: [_jsx(SolidCircularLoader, {}), _jsx("p", { className: "mt-4 font-medium", children: "Waiting for backend..." })] })] })
209
+ _jsx(_Fragment, { children: _jsxs("div", { className: "flex flex-column align-items-center justify-content-center", style: { padding: '2rem', height: 200 }, children: [_jsx(SolidCircularLoader, {}), _jsx("p", { className: "mt-4 font-medium", children: "Waiting for backend..." })] }) })
212
210
  :
213
- _jsxs(_Fragment, { children: [_jsx(Toast, { ref: toast }), ((_a = event === null || event === void 0 ? void 0 : event.rowData) === null || _a === void 0 ? void 0 : _a.name) != "solid-core" ?
214
- _jsxs("div", { className: "", children: [_jsx("div", { className: "p-dialog-header secondary-border-bottom py-3", style: { background: 'var(--solid-light-grey)' }, children: _jsx("span", { className: "p-dialog-title", children: "Generate Module" }) }), _jsxs("div", { className: "px-4 pb-4 pt-3", children: [_jsx("p", { className: "text-start", children: "Proceed with module code generation? Existing files will be overwritten." }), _jsxs("div", { className: "flex gap-3 justify-content-start", children: [_jsx(Button, { size: "small", label: "Ok", autoFocus: true, onClick: generateCodeHandler }), _jsx(Button, { size: "small", label: "Cancel", outlined: true, onClick: function () { return dispatch(closePopup()); } })] })] })] }) :
215
- _jsxs("div", { className: "", children: [_jsx("div", { className: "p-dialog-header secondary-border-bottom py-3", style: { background: 'var(--solid-light-grey)' }, children: _jsx("span", { className: "p-dialog-title", children: "Generate Module" }) }), _jsxs("div", { className: "px-4 pb-4 pt-3", children: [_jsx("p", { className: "text-start", children: "You cannot generate code for Solid Core modules" }), _jsx("div", { className: "flex gap-3 justify-content-start", children: _jsx(Button, { size: "small", label: "Cancel", outlined: true, onClick: function () { return dispatch(closePopup()); } }) })] })] })] }) }));
211
+ _jsx(_Fragment, { children: ((_a = event === null || event === void 0 ? void 0 : event.rowData) === null || _a === void 0 ? void 0 : _a.name) != "solid-core" ?
212
+ _jsxs("div", { className: "", children: [_jsx("div", { className: "p-dialog-header secondary-border-bottom py-3", style: { background: 'var(--solid-light-grey)' }, children: _jsx("span", { className: "p-dialog-title", children: "Generate Module" }) }), _jsxs("div", { className: "px-4 pb-4 pt-3", children: [_jsx("p", { className: "text-start", children: "Proceed with module code generation? Existing files will be overwritten." }), _jsxs("div", { className: "flex gap-3 justify-content-start", children: [_jsx(Button, { size: "small", label: "Ok", autoFocus: true, onClick: generateCodeHandler }), _jsx(Button, { size: "small", label: "Cancel", outlined: true, onClick: function () { return dispatch(closePopup()); } })] })] })] }) :
213
+ _jsxs("div", { className: "", children: [_jsx("div", { className: "p-dialog-header secondary-border-bottom py-3", style: { background: 'var(--solid-light-grey)' }, children: _jsx("span", { className: "p-dialog-title", children: "Generate Module" }) }), _jsxs("div", { className: "px-4 pb-4 pt-3", children: [_jsx("p", { className: "text-start", children: "You cannot generate code for Solid Core modules" }), _jsx("div", { className: "flex gap-3 justify-content-start", children: _jsx(Button, { size: "small", label: "Cancel", outlined: true, onClick: function () { return dispatch(closePopup()); } }) })] })] }) }) }));
216
214
  };
217
215
  export default GenerateModuleCodeRowAction;
218
216
  //# sourceMappingURL=GenerateModuleCodeRowAction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateModuleCodeRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidCircularLoader } from \"../../../../../../components/core/common/SolidLoaders/SolidCircularLoader\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { useGenerateCodeFormoduleMutation } from \"../../../../../../redux/api/moduleApi\";\nimport { useSeederMutation } from \"../../../../../../redux/api/solidServiceApi\";\nimport { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { Button } from \"primereact/button\";\nimport { Toast } from \"primereact/toast\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { env } from \"../../../../../../adapters/env\";\nimport showToast from \"../../../../../../helpers/showToast\";\n\nconst GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n const dispatch = useDispatch()\n const [generateCode, {\n isLoading: isGenerateCodeUpdating,\n isSuccess: isGenerateCodeSuceess,\n isError: isGenerateCodeError,\n error: generateCodeError,\n data: generateCodeData\n }] = useGenerateCodeFormoduleMutation();\n\n // const mqMessageApi = createSolidEntityApi(\"mqMessage\");\n // const {\n // useGetSolidEntitiesQuery: useGetMqMessageQuery,\n // useLazyGetSolidEntitiesQuery: useLazyGetMqMessageQuery,\n // } = mqMessageApi;\n // const [getMqMessageStatus, {\n // data: solidListViewMetaData,\n // error: solidListViewMetaDataError,\n // isLoading: solidListViewMetaDataIsLoading,\n // isError: solidListViewMetaDataIsError\n // }] = useLazyGetMqMessageQuery();\n // const fetchMqMessageStatus = async (retries = 30, delay = 500, generateCodeData: any): Promise<boolean> => {\n // for (let i = 0; i < retries; i++) {\n // try {\n // const query = {\n // filters: {\n // messageId: {\n // $eq: generateCodeData?.data?.messageId\n // }\n // }\n // };\n // const queryString = qs.stringify(query, {\n // encodeValuesOnly: true,\n // });\n // const res = await getMqMessageStatus(queryString)\n // if (res.isSuccess === true) {\n // if (res.data.records.length > 0) {\n // const messageStage = res.data.records[0].stage;\n // console.log(\"messageStatus\", messageStage);\n // if (messageStage === \"succeeded\") {\n // return true\n // }\n // if (messageStage === \"failed\") {\n // return false\n // }\n // }\n // }\n // } catch (e) {\n // // ignore and retry\n // }\n // await new Promise((resolve) => setTimeout(resolve, delay));\n // }\n // return false;\n // };\n\n const generateCodeHandler = async () => {\n try {\n const response = await generateCode({ id: event?.rowData?.id });\n console.log(ERROR_MESSAGES.RESPONSE_GENERATE_CODE_HANDLER, response);\n setIsGenerating(true);\n } catch (error) {\n setIsGenerating(false);\n dispatch(closePopup());\n console.log(\"error\",error);\n showToast(toast, \"error\", \"Something went wrong\", ERROR_MESSAGES.API_ERROR);\n }\n }\n\n // TODO: START REFACTORING - reusable code alert\n const [triggerSeeder, {\n data,\n isLoading,\n isSuccess: isSeederSuccess,\n isError: isSeederError\n }] = useSeederMutation();\n\n // Utitlity to track if solid-api is up\n const [isPinging, setIsPinging] = useState(false);\n const [isGenerating, setIsGenerating] = useState(false);\n const pingBackendWithRetry = async (retries = 30, delay = 500): Promise<boolean> => {\n for (let i = 0; i < retries; i++) {\n try {\n const res = await fetch(`${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/ping`);\n console.log(\"ping response\", res);\n\n if (res.ok)\n return true;\n } catch (e) {\n // ignore and retry\n }\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n return false;\n };\n\n const toast = useRef<Toast>(null);\n\n useEffect(() => {\n const runSeederIfBackendAlive = async () => {\n if (isGenerateCodeSuceess) {\n console.log(\"isGenerateCodeSuceess\", isGenerateCodeSuceess);\n setIsPinging(true);\n // const hasMqMessageCompleted = await fetchMqMessageStatus(30, 500, generateCodeData);\n const isAlive = await pingBackendWithRetry(30, 500);\n\n setIsPinging(false);\n\n // if (hasMqMessageCompleted && isAlive) {\n if (isAlive) {\n await triggerSeeder(\"ModuleMetadataSeederService\");\n } else {\n dispatch(closePopup());\n console.log(ERROR_MESSAGES.BACKEND_NOT_ALIVE);\n showToast(toast, \"error\", ERROR_MESSAGES.BACKEND_UNAVAILABLE, ERROR_MESSAGES.SEEDER_NOT_TRIGGERED);\n }\n }\n };\n setTimeout(() => {\n runSeederIfBackendAlive();\n }, 5000);\n }, [isGenerateCodeSuceess]);\n\n useEffect(() => {\n if (isSeederSuccess) {\n console.log(ERROR_MESSAGES.IS_SEEDER_SUCCESS, data);\n showToast(toast, \"success\", ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY, ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY);\n setIsGenerating(false);\n dispatch(closePopup());\n window.location.reload();\n }\n if (isSeederError) {\n console.log(ERROR_MESSAGES.IS_SEEDER_ERROR, isSeederError);\n showToast(toast, \"error\", ERROR_MESSAGES.SEEDER_ERROR, ERROR_MESSAGES.SEEDER_NOT_RUN);\n setIsGenerating(false);\n }\n }, [isSeederSuccess])\n // TODO: END REFACTORING - reusable code alert\n\n return (\n <>\n {isGenerating ?\n <>\n <Toast ref={toast} />\n <div className=\"flex flex-column align-items-center justify-content-center\" style={{ padding: '2rem', height: 200 }}>\n <SolidCircularLoader />\n <p className=\"mt-4 font-medium\">Waiting for backend...</p>\n </div>\n </>\n :\n <>\n <Toast ref={toast} />\n {event?.rowData?.name != \"solid-core\" ?\n <div className=\"\">\n <div className=\"p-dialog-header secondary-border-bottom py-3\" style={{ background: 'var(--solid-light-grey)' }}>\n <span className=\"p-dialog-title\">\n Generate Module\n </span>\n </div>\n <div className=\"px-4 pb-4 pt-3\">\n <p className=\"text-start\">Proceed with module code generation? Existing files will be overwritten.</p>\n <div className=\"flex gap-3 justify-content-start\">\n <Button size=\"small\" label=\"Ok\" autoFocus onClick={generateCodeHandler} />\n <Button size=\"small\" label=\"Cancel\" outlined onClick={() => dispatch(closePopup())} />\n </div>\n </div>\n </div> :\n <div className=\"\">\n <div className=\"p-dialog-header secondary-border-bottom py-3\" style={{ background: 'var(--solid-light-grey)' }}>\n <span className=\"p-dialog-title\">\n Generate Module\n </span>\n </div>\n <div className=\"px-4 pb-4 pt-3\">\n <p className=\"text-start\">You cannot generate code for Solid Core modules</p>\n <div className=\"flex gap-3 justify-content-start\">\n <Button size=\"small\" label=\"Cancel\" outlined onClick={() => dispatch(closePopup())} />\n </div>\n </div>\n </div >\n }\n </>\n }\n </>\n )\n}\n\nexport default GenerateModuleCodeRowAction;\n"]}
1
+ {"version":3,"file":"GenerateModuleCodeRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2EAA2E,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAErD,IAAM,2BAA2B,GAAG,UAAC,KAA2C;;IAC5E,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IACxB,IAAA,KAMD,gCAAgC,EAAE,EANhC,YAAY,QAAA,EAAE,UAMpB,EALc,sBAAsB,eAAA,EACtB,qBAAqB,eAAA,EACvB,mBAAmB,aAAA,EACrB,iBAAiB,WAAA,EAClB,gBAAgB,UACa,CAAC;IAExC,0DAA0D;IAC1D,UAAU;IACV,sDAAsD;IACtD,8DAA8D;IAC9D,oBAAoB;IACpB,+BAA+B;IAC/B,mCAAmC;IACnC,yCAAyC;IACzC,iDAAiD;IACjD,4CAA4C;IAC5C,mCAAmC;IACnC,+GAA+G;IAC/G,0CAA0C;IAC1C,gBAAgB;IAChB,8BAA8B;IAC9B,6BAA6B;IAC7B,mCAAmC;IACnC,iEAAiE;IACjE,wBAAwB;IACxB,oBAAoB;IACpB,iBAAiB;IACjB,wDAAwD;IACxD,0CAA0C;IAC1C,kBAAkB;IAClB,gEAAgE;IAChE,4CAA4C;IAC5C,qDAAqD;IACrD,sEAAsE;IACtE,kEAAkE;IAClE,0DAA0D;IAC1D,sCAAsC;IACtC,wBAAwB;IACxB,uDAAuD;IACvD,uCAAuC;IACvC,wBAAwB;IACxB,oBAAoB;IACpB,gBAAgB;IAChB,wBAAwB;IACxB,kCAAkC;IAClC,YAAY;IACZ,sEAAsE;IACtE,QAAQ;IACR,oBAAoB;IACpB,KAAK;IAEL,IAAM,mBAAmB,GAAG;;;;;;;oBAEH,qBAAM,YAAY,CAAC,EAAE,EAAE,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,EAAE,EAAE,CAAC,EAAA;;oBAAzD,QAAQ,GAAG,SAA8C;oBAC/D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;oBACrE,eAAe,CAAC,IAAI,CAAC,CAAC;;;;oBAEtB,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;oBACvB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAC,OAAK,CAAC,CAAC;oBAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;;;;;SAErH,CAAA;IAED,gDAAgD;IAC1C,IAAA,KAKD,iBAAiB,EAAE,EALjB,aAAa,QAAA,EAAE,UAKrB,EAJG,IAAI,UAAA,EACJ,SAAS,eAAA,EACE,eAAe,eAAA,EACjB,aAAa,aACF,CAAC;IAEzB,uCAAuC;IACjC,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAC5C,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IACxD,IAAM,oBAAoB,GAAG,UAAO,OAAY,EAAE,KAAW;QAAzB,wBAAA,EAAA,YAAY;QAAE,sBAAA,EAAA,WAAW;;;;;;wBAChD,CAAC,GAAG,CAAC;;;6BAAE,CAAA,CAAC,GAAG,OAAO,CAAA;;;;wBAEP,qBAAM,KAAK,CAAC,UAAG,GAAG,CAAC,6BAA6B,CAAC,cAAW,CAAC,EAAA;;wBAAnE,GAAG,GAAG,SAA6D;wBACzE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;wBAElC,IAAI,GAAG,CAAC,EAAE;4BACN,sBAAO,IAAI,EAAC;;;;;4BAIpB,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAA1B,CAA0B,CAAC,EAAA;;wBAA1D,SAA0D,CAAC;;;wBAVlC,CAAC,EAAE,CAAA;;4BAYhC,sBAAO,KAAK,EAAC;;;;KAChB,CAAC;IAEF,SAAS,CAAC;QACN,IAAM,uBAAuB,GAAG;;;;;6BACxB,qBAAqB,EAArB,wBAAqB;wBACrB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;wBAC5D,YAAY,CAAC,IAAI,CAAC,CAAC;wBAEH,qBAAM,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAA;;wBAA7C,OAAO,GAAG,SAAmC;wBAEnD,YAAY,CAAC,KAAK,CAAC,CAAC;6BAGhB,OAAO,EAAP,wBAAO;wBACP,qBAAM,aAAa,CAAC,6BAA6B,CAAC,EAAA;;wBAAlD,SAAkD,CAAC;;;wBAEnD,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;wBACvB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;wBAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;;;;;aAGhJ,CAAC;QACF,UAAU,CAAC;YACP,uBAAuB,EAAE,CAAC;QAC9B,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE5B,SAAS,CAAC;QACN,IAAI,eAAe,EAAE;YACjB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE,cAAc,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YACpJ,eAAe,CAAC,KAAK,CAAC,CAAC;YACvB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACvB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC5B;QACD,IAAI,aAAa,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACxH,eAAe,CAAC,KAAK,CAAC,CAAC;SAC1B;IACL,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;IACrB,8CAA8C;IAE9C,OAAO,CACH,4BACK,YAAY,CAAC,CAAC;YACX,4BACI,eAAK,SAAS,EAAC,4DAA4D,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAC/G,KAAC,mBAAmB,KAAG,EACvB,YAAG,SAAS,EAAC,kBAAkB,uCAA2B,IACxD,GACP;YACH,CAAC;gBACD,4BACK,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,IAAI,KAAI,YAAY,CAAC,CAAC;wBACnC,eAAK,SAAS,EAAC,EAAE,aACb,cAAK,SAAS,EAAC,8CAA8C,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAC1G,eAAM,SAAS,EAAC,gBAAgB,gCAEzB,GACL,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC3B,YAAG,SAAS,EAAC,YAAY,yFAA6E,EACtG,eAAK,SAAS,EAAC,kCAAkC,aAC7C,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,SAAS,QAAC,OAAO,EAAE,mBAAmB,GAAI,EAC1E,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,QAAC,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAtB,CAAsB,GAAI,IACpF,IACJ,IACJ,CAAC,CAAC;wBACR,eAAK,SAAS,EAAC,EAAE,aACb,cAAK,SAAS,EAAC,8CAA8C,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,yBAAyB,EAAE,YAC1G,eAAM,SAAS,EAAC,gBAAgB,gCAEzB,GACL,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC3B,YAAG,SAAS,EAAC,YAAY,gEAAoD,EAC7E,cAAK,SAAS,EAAC,kCAAkC,YAC7C,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,QAAC,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAtB,CAAsB,GAAI,GACpF,IACJ,IACH,GAEZ,GAER,CACN,CAAA;AACL,CAAC,CAAA;AAED,eAAe,2BAA2B,CAAC","sourcesContent":["\nimport { SolidCircularLoader } from \"../../../../../../components/core/common/SolidLoaders/SolidCircularLoader\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { useGenerateCodeFormoduleMutation } from \"../../../../../../redux/api/moduleApi\";\nimport { useSeederMutation } from \"../../../../../../redux/api/solidServiceApi\";\nimport { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { Button } from \"primereact/button\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\nimport { env } from \"../../../../../../adapters/env\";\n\nconst GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n const dispatch = useDispatch()\n const [generateCode, {\n isLoading: isGenerateCodeUpdating,\n isSuccess: isGenerateCodeSuceess,\n isError: isGenerateCodeError,\n error: generateCodeError,\n data: generateCodeData\n }] = useGenerateCodeFormoduleMutation();\n\n // const mqMessageApi = createSolidEntityApi(\"mqMessage\");\n // const {\n // useGetSolidEntitiesQuery: useGetMqMessageQuery,\n // useLazyGetSolidEntitiesQuery: useLazyGetMqMessageQuery,\n // } = mqMessageApi;\n // const [getMqMessageStatus, {\n // data: solidListViewMetaData,\n // error: solidListViewMetaDataError,\n // isLoading: solidListViewMetaDataIsLoading,\n // isError: solidListViewMetaDataIsError\n // }] = useLazyGetMqMessageQuery();\n // const fetchMqMessageStatus = async (retries = 30, delay = 500, generateCodeData: any): Promise<boolean> => {\n // for (let i = 0; i < retries; i++) {\n // try {\n // const query = {\n // filters: {\n // messageId: {\n // $eq: generateCodeData?.data?.messageId\n // }\n // }\n // };\n // const queryString = qs.stringify(query, {\n // encodeValuesOnly: true,\n // });\n // const res = await getMqMessageStatus(queryString)\n // if (res.isSuccess === true) {\n // if (res.data.records.length > 0) {\n // const messageStage = res.data.records[0].stage;\n // console.log(\"messageStatus\", messageStage);\n // if (messageStage === \"succeeded\") {\n // return true\n // }\n // if (messageStage === \"failed\") {\n // return false\n // }\n // }\n // }\n // } catch (e) {\n // // ignore and retry\n // }\n // await new Promise((resolve) => setTimeout(resolve, delay));\n // }\n // return false;\n // };\n\n const generateCodeHandler = async () => {\n try {\n const response = await generateCode({ id: event?.rowData?.id });\n console.log(ERROR_MESSAGES.RESPONSE_GENERATE_CODE_HANDLER, response);\n setIsGenerating(true);\n } catch (error) {\n setIsGenerating(false);\n dispatch(closePopup());\n console.log(\"error\",error);\n dispatch(showToast({ severity: \"error\", summary: \"Something went wrong\", detail: ERROR_MESSAGES.API_ERROR }));\n }\n }\n\n // TODO: START REFACTORING - reusable code alert\n const [triggerSeeder, {\n data,\n isLoading,\n isSuccess: isSeederSuccess,\n isError: isSeederError\n }] = useSeederMutation();\n\n // Utitlity to track if solid-api is up\n const [isPinging, setIsPinging] = useState(false);\n const [isGenerating, setIsGenerating] = useState(false);\n const pingBackendWithRetry = async (retries = 30, delay = 500): Promise<boolean> => {\n for (let i = 0; i < retries; i++) {\n try {\n const res = await fetch(`${env(\"NEXT_PUBLIC_BACKEND_API_URL\")}/api/ping`);\n console.log(\"ping response\", res);\n\n if (res.ok)\n return true;\n } catch (e) {\n // ignore and retry\n }\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n return false;\n };\n\n useEffect(() => {\n const runSeederIfBackendAlive = async () => {\n if (isGenerateCodeSuceess) {\n console.log(\"isGenerateCodeSuceess\", isGenerateCodeSuceess);\n setIsPinging(true);\n // const hasMqMessageCompleted = await fetchMqMessageStatus(30, 500, generateCodeData);\n const isAlive = await pingBackendWithRetry(30, 500);\n\n setIsPinging(false);\n\n // if (hasMqMessageCompleted && isAlive) {\n if (isAlive) {\n await triggerSeeder(\"ModuleMetadataSeederService\");\n } else {\n dispatch(closePopup());\n console.log(ERROR_MESSAGES.BACKEND_NOT_ALIVE);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.BACKEND_UNAVAILABLE, detail: ERROR_MESSAGES.SEEDER_NOT_TRIGGERED }));\n }\n }\n };\n setTimeout(() => {\n runSeederIfBackendAlive();\n }, 5000);\n }, [isGenerateCodeSuceess]);\n\n useEffect(() => {\n if (isSeederSuccess) {\n console.log(ERROR_MESSAGES.IS_SEEDER_SUCCESS, data);\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY, detail: ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY }));\n setIsGenerating(false);\n dispatch(closePopup());\n window.location.reload();\n }\n if (isSeederError) {\n console.log(ERROR_MESSAGES.IS_SEEDER_ERROR, isSeederError);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEEDER_ERROR, detail: ERROR_MESSAGES.SEEDER_NOT_RUN }));\n setIsGenerating(false);\n }\n }, [isSeederSuccess])\n // TODO: END REFACTORING - reusable code alert\n\n return (\n <>\n {isGenerating ?\n <>\n <div className=\"flex flex-column align-items-center justify-content-center\" style={{ padding: '2rem', height: 200 }}>\n <SolidCircularLoader />\n <p className=\"mt-4 font-medium\">Waiting for backend...</p>\n </div>\n </>\n :\n <>\n {event?.rowData?.name != \"solid-core\" ?\n <div className=\"\">\n <div className=\"p-dialog-header secondary-border-bottom py-3\" style={{ background: 'var(--solid-light-grey)' }}>\n <span className=\"p-dialog-title\">\n Generate Module\n </span>\n </div>\n <div className=\"px-4 pb-4 pt-3\">\n <p className=\"text-start\">Proceed with module code generation? Existing files will be overwritten.</p>\n <div className=\"flex gap-3 justify-content-start\">\n <Button size=\"small\" label=\"Ok\" autoFocus onClick={generateCodeHandler} />\n <Button size=\"small\" label=\"Cancel\" outlined onClick={() => dispatch(closePopup())} />\n </div>\n </div>\n </div> :\n <div className=\"\">\n <div className=\"p-dialog-header secondary-border-bottom py-3\" style={{ background: 'var(--solid-light-grey)' }}>\n <span className=\"p-dialog-title\">\n Generate Module\n </span>\n </div>\n <div className=\"px-4 pb-4 pt-3\">\n <p className=\"text-start\">You cannot generate code for Solid Core modules</p>\n <div className=\"flex gap-3 justify-content-start\">\n <Button size=\"small\" label=\"Cancel\" outlined onClick={() => dispatch(closePopup())} />\n </div>\n </div>\n </div >\n }\n </>\n }\n </>\n )\n}\n\nexport default GenerateModuleCodeRowAction;\n"]}
@@ -6,11 +6,10 @@ import { useSeederMutation } from "../../../../../../redux/api/solidServiceApi";
6
6
  import { closePopup } from "../../../../../../redux/features/popupSlice";
7
7
  import { SolidListRowdataDynamicFunctionProps } from "../../../../../../types/solid-core";
8
8
  import { Button } from "primereact/button";
9
- import { Toast } from "primereact/toast";
10
- import { useEffect, useRef, useState } from "react";
9
+ import { useEffect, useState } from "react";
11
10
  import { useDispatch } from "react-redux";
11
+ import { showToast } from "../../../../../../redux/features/toastSlice";
12
12
  import { env } from "../../../../../../adapters/env";
13
- import showToast from "../../../../../../helpers/showToast";
14
13
 
15
14
  const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps) => {
16
15
  const dispatch = useDispatch()
@@ -76,7 +75,7 @@ const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps
76
75
  setIsGenerating(false);
77
76
  dispatch(closePopup());
78
77
  console.log("error",error);
79
- showToast(toast, "error", "Something went wrong", ERROR_MESSAGES.API_ERROR);
78
+ dispatch(showToast({ severity: "error", summary: "Something went wrong", detail: ERROR_MESSAGES.API_ERROR }));
80
79
  }
81
80
  }
82
81
 
@@ -107,8 +106,6 @@ const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps
107
106
  return false;
108
107
  };
109
108
 
110
- const toast = useRef<Toast>(null);
111
-
112
109
  useEffect(() => {
113
110
  const runSeederIfBackendAlive = async () => {
114
111
  if (isGenerateCodeSuceess) {
@@ -125,7 +122,7 @@ const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps
125
122
  } else {
126
123
  dispatch(closePopup());
127
124
  console.log(ERROR_MESSAGES.BACKEND_NOT_ALIVE);
128
- showToast(toast, "error", ERROR_MESSAGES.BACKEND_UNAVAILABLE, ERROR_MESSAGES.SEEDER_NOT_TRIGGERED);
125
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.BACKEND_UNAVAILABLE, detail: ERROR_MESSAGES.SEEDER_NOT_TRIGGERED }));
129
126
  }
130
127
  }
131
128
  };
@@ -137,14 +134,14 @@ const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps
137
134
  useEffect(() => {
138
135
  if (isSeederSuccess) {
139
136
  console.log(ERROR_MESSAGES.IS_SEEDER_SUCCESS, data);
140
- showToast(toast, "success", ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY, ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY);
137
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY, detail: ERROR_MESSAGES.CODE_GENERTAE_SUCCESSFULLY }));
141
138
  setIsGenerating(false);
142
139
  dispatch(closePopup());
143
140
  window.location.reload();
144
141
  }
145
142
  if (isSeederError) {
146
143
  console.log(ERROR_MESSAGES.IS_SEEDER_ERROR, isSeederError);
147
- showToast(toast, "error", ERROR_MESSAGES.SEEDER_ERROR, ERROR_MESSAGES.SEEDER_NOT_RUN);
144
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEEDER_ERROR, detail: ERROR_MESSAGES.SEEDER_NOT_RUN }));
148
145
  setIsGenerating(false);
149
146
  }
150
147
  }, [isSeederSuccess])
@@ -154,7 +151,6 @@ const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps
154
151
  <>
155
152
  {isGenerating ?
156
153
  <>
157
- <Toast ref={toast} />
158
154
  <div className="flex flex-column align-items-center justify-content-center" style={{ padding: '2rem', height: 200 }}>
159
155
  <SolidCircularLoader />
160
156
  <p className="mt-4 font-medium">Waiting for backend...</p>
@@ -162,7 +158,6 @@ const GenerateModuleCodeRowAction = (event: SolidListRowdataDynamicFunctionProps
162
158
  </>
163
159
  :
164
160
  <>
165
- <Toast ref={toast} />
166
161
  {event?.rowData?.name != "solid-core" ?
167
162
  <div className="">
168
163
  <div className="p-dialog-header secondary-border-bottom py-3" style={{ background: 'var(--solid-light-grey)' }}>
@@ -1 +1 @@
1
- {"version":3,"file":"RolePermissionsManyToManyFieldWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAe5E,eAAO,MAAM,oCAAoC,6BAA8B,yBAAyB,4CA2HvG,CAAC"}
1
+ {"version":3,"file":"RolePermissionsManyToManyFieldWidget.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAe5E,eAAO,MAAM,oCAAoC,6BAA8B,yBAAyB,4CAsIvG,CAAC"}
@@ -10,6 +10,8 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { capitalize } from "lodash";
14
+ import { Message } from "primereact/message";
13
15
  import { Panel } from "primereact/panel";
14
16
  import { useEffect, useState } from "react";
15
17
  import { Button } from "primereact/button";
@@ -29,13 +31,13 @@ var groupByController = function (items) {
29
31
  return grouped;
30
32
  };
31
33
  export var RolePermissionsManyToManyFieldWidget = function (_a) {
32
- var _b;
34
+ var _b, _c, _d, _e, _f, _g, _h;
33
35
  var formik = _a.formik, fieldContext = _a.fieldContext;
34
36
  var fieldLayoutInfo = fieldContext.field;
35
37
  var readOnlyPermission = fieldContext.readOnly;
36
- var _c = useState(false), visibleCreateDialog = _c[0], setVisibleCreateDialog = _c[1];
37
- var _d = useState({}), visibleDialogs = _d[0], setVisibleDialogs = _d[1];
38
- var _e = useRelationEntityHandler({ fieldContext: fieldContext }), allOptions = _e.allOptions, currentValues = _e.currentValues, fetchAllOptions = _e.fetchAllOptions, fetchCurrentValues = _e.fetchCurrentValues, linkItem = _e.linkItem, unlinkItem = _e.unlinkItem, addNewRelation = _e.addNewRelation;
38
+ var _j = useState(false), visibleCreateDialog = _j[0], setVisibleCreateDialog = _j[1];
39
+ var _k = useState({}), visibleDialogs = _k[0], setVisibleDialogs = _k[1];
40
+ var _l = useRelationEntityHandler({ fieldContext: fieldContext }), allOptions = _l.allOptions, currentValues = _l.currentValues, fetchAllOptions = _l.fetchAllOptions, fetchCurrentValues = _l.fetchCurrentValues, linkItem = _l.linkItem, unlinkItem = _l.unlinkItem, addNewRelation = _l.addNewRelation;
39
41
  // On mount: load already-linked permissions into currentValues
40
42
  useEffect(function () {
41
43
  fetchCurrentValues();
@@ -61,10 +63,13 @@ export var RolePermissionsManyToManyFieldWidget = function (_a) {
61
63
  var _a;
62
64
  return (__assign(__assign({}, prev), (_a = {}, _a[controllerName] = true, _a)));
63
65
  });
64
- }, className: "custom-add-button" }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] }), _jsx("div", { children: options.togglerElement })] }));
66
+ }, className: "custom-add-button", disabled: isUnsaved }), _jsx(InlineRelationEntityDialog, { visible: visibleCreateDialog, setVisible: setVisibleCreateDialog, fieldContext: fieldContext, onCreate: addNewRelation })] }))] }), _jsx("div", { children: options.togglerElement })] }));
65
67
  }; };
68
+ var isUnsaved = ((_c = fieldContext.data) === null || _c === void 0 ? void 0 : _c.id) === undefined || ((_d = fieldContext.data) === null || _d === void 0 ? void 0 : _d.id) === "new";
69
+ var entityName = ((_h = (_g = (_f = (_e = fieldContext.solidFormViewMetaData) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.solidView) === null || _g === void 0 ? void 0 : _g.model) === null || _h === void 0 ? void 0 : _h.displayName) || capitalize(fieldContext.modelName);
70
+ var fieldLabel = fieldLayoutInfo.attrs.label || "Permissions";
66
71
  var groupedEntities = groupByController(allOptions || []);
67
- return (_jsxs("div", { children: [Object.keys(groupedEntities).map(function (controllerName) { return (_jsx(Panel, { toggleable: true, headerTemplate: getHeaderTemplate(controllerName), className: "mt-3 lg:mt-4", children: _jsx("div", { className: "formgrid grid gap-3 lg:gap-0", children: groupedEntities[controllerName].map(function (entity, i) { return (_jsxs("div", { className: "field col-12 lg:col-6 flex gap-2 ".concat(i >= 2 ? 'lg:mt-3' : ''), children: [_jsx(Checkbox, { readOnly: readOnlyPermission, inputId: entity.label, checked: currentValues.some(function (s) { return s.value === entity.value; }), onChange: function () { return handleCheckboxChange(entity); } }), _jsx("label", { htmlFor: entity.label, className: "form-field-label m-0 solid-permisson-form-label", children: entity.label })] }, entity.value)); }) }) }, controllerName)); }), Object.keys(groupedEntities).map(function (controllerName) { return (_jsx(InlineRelationEntityDialog, { visible: visibleDialogs[controllerName] || false, setVisible: function (visible) {
72
+ return (_jsxs("div", { children: [isUnsaved && (_jsx("div", { className: "mb-2", children: _jsx(Message, { severity: "warn", text: "Please save the ".concat(entityName, " first to assign ").concat(fieldLabel, "."), className: "w-full justify-content-start" }) })), Object.keys(groupedEntities).map(function (controllerName) { return (_jsx(Panel, { toggleable: true, headerTemplate: getHeaderTemplate(controllerName), className: "mt-3 lg:mt-4", children: _jsx("div", { className: "formgrid grid gap-3 lg:gap-0", children: groupedEntities[controllerName].map(function (entity, i) { return (_jsxs("div", { className: "field col-12 lg:col-6 flex gap-2 ".concat(i >= 2 ? 'lg:mt-3' : ''), children: [_jsx(Checkbox, { readOnly: readOnlyPermission || isUnsaved, disabled: isUnsaved, inputId: entity.label, checked: currentValues.some(function (s) { return s.value === entity.value; }), onChange: function () { return handleCheckboxChange(entity); } }), _jsx("label", { htmlFor: entity.label, className: "form-field-label m-0 solid-permisson-form-label", children: entity.label })] }, entity.value)); }) }) }, controllerName)); }), Object.keys(groupedEntities).map(function (controllerName) { return (_jsx(InlineRelationEntityDialog, { visible: visibleDialogs[controllerName] || false, setVisible: function (visible) {
68
73
  return setVisibleDialogs(function (prev) {
69
74
  var _a;
70
75
  return (__assign(__assign({}, prev), (_a = {}, _a[controllerName] = visible, _a)));
@@ -1 +1 @@
1
- {"version":3,"file":"RolePermissionsManyToManyFieldWidget.js","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import { capitalize } from \"lodash\";\nimport { Panel } from \"primereact/panel\";\nimport { useEffect, useState } from \"react\";\nimport { Button } from \"primereact/button\";\nimport { useRelationEntityHandler } from \"../../../../../components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"../../../../../components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport qs from 'qs';\n\nconst groupByController = (items: any[]) => {\n const grouped: { [key: string]: any[] } = {};\n items.forEach((item) => {\n const controllerName = item.label.split(\".\")[0];\n if (!grouped[controllerName]) {\n grouped[controllerName] = [];\n }\n grouped[controllerName].push(item);\n });\n return grouped;\n};\n\nexport const RolePermissionsManyToManyFieldWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldLayoutInfo = fieldContext.field;\n const readOnlyPermission = fieldContext.readOnly;\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n\n const [visibleDialogs, setVisibleDialogs] = useState<{ [key: string]: boolean }>({});\n\n const {\n allOptions,\n currentValues,\n fetchAllOptions,\n fetchCurrentValues,\n linkItem,\n unlinkItem,\n addNewRelation,\n } = useRelationEntityHandler({ fieldContext });\n\n // On mount: load already-linked permissions into currentValues\n useEffect(() => {\n fetchCurrentValues();\n }, [fieldContext.data?.id]);\n\n // On mount: load all available permissions into allOptions\n useEffect(() => {\n const queryData = { offset: 0, limit: 1000 };\n fetchAllOptions(qs.stringify(queryData, { encodeValuesOnly: true }));\n }, []);\n\n const handleCheckboxChange = (item: any) => {\n const isCurrentlyLinked = currentValues.some((s) => s.value === item.value);\n if (isCurrentlyLinked) {\n unlinkItem(item);\n } else {\n linkItem(item);\n }\n };\n\n const getHeaderTemplate = (controllerName: string) => (options: any) => {\n const className = `${options.className} justify-content-space-between`;\n\n return (\n <div className={className}>\n <div className=\"flex align-items-center gap-3\">\n <label className=\"form-field-label text-base lg:text-lg font-bold\">\n {controllerName}\n </label>\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Add\"\n type=\"button\"\n size=\"small\"\n onClick={() =>\n setVisibleDialogs((prev) => ({\n ...prev,\n [controllerName]: true,\n }))\n }\n className=\"custom-add-button\"\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n <div>{options.togglerElement}</div>\n </div>\n );\n };\n\n const groupedEntities = groupByController(allOptions || []);\n return (\n <div>\n {Object.keys(groupedEntities).map((controllerName) => (\n <Panel\n key={controllerName}\n toggleable\n headerTemplate={getHeaderTemplate(controllerName)}\n className=\"mt-3 lg:mt-4\"\n >\n <div className=\"formgrid grid gap-3 lg:gap-0\">\n {groupedEntities[controllerName].map((entity: any, i: number) => (\n <div\n key={entity.value}\n className={`field col-12 lg:col-6 flex gap-2 ${i >= 2 ? 'lg:mt-3' : ''}`}\n >\n <Checkbox\n readOnly={readOnlyPermission}\n inputId={entity.label}\n checked={currentValues.some((s) => s.value === entity.value)}\n onChange={() => handleCheckboxChange(entity)}\n />\n <label htmlFor={entity.label} className=\"form-field-label m-0 solid-permisson-form-label\">\n {entity.label}\n </label>\n </div>\n ))}\n </div>\n </Panel>\n ))}\n {Object.keys(groupedEntities).map((controllerName) => (\n <InlineRelationEntityDialog\n key={`dialog-${controllerName}`}\n visible={visibleDialogs[controllerName] || false}\n setVisible={(visible: any) =>\n setVisibleDialogs((prev) => ({\n ...prev,\n [controllerName]: visible,\n }))\n }\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n ))}\n </div>\n );\n};"]}
1
+ {"version":3,"file":"RolePermissionsManyToManyFieldWidget.js","sourceRoot":"","sources":["../../../../../../src/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import { capitalize } from \"lodash\";\nimport { Message } from \"primereact/message\";\nimport { Panel } from \"primereact/panel\";\nimport { useEffect, useState } from \"react\";\nimport { Button } from \"primereact/button\";\nimport { useRelationEntityHandler } from \"../../../../../components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler\";\nimport { InlineRelationEntityDialog } from \"../../../../../components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { SolidFormFieldWidgetProps } from \"../../../../../types/solid-core\";\nimport qs from 'qs';\n\nconst groupByController = (items: any[]) => {\n const grouped: { [key: string]: any[] } = {};\n items.forEach((item) => {\n const controllerName = item.label.split(\".\")[0];\n if (!grouped[controllerName]) {\n grouped[controllerName] = [];\n }\n grouped[controllerName].push(item);\n });\n return grouped;\n};\n\nexport const RolePermissionsManyToManyFieldWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n const fieldLayoutInfo = fieldContext.field;\n const readOnlyPermission = fieldContext.readOnly;\n const [visibleCreateDialog, setVisibleCreateDialog] = useState(false);\n\n const [visibleDialogs, setVisibleDialogs] = useState<{ [key: string]: boolean }>({});\n\n const {\n allOptions,\n currentValues,\n fetchAllOptions,\n fetchCurrentValues,\n linkItem,\n unlinkItem,\n addNewRelation,\n } = useRelationEntityHandler({ fieldContext });\n\n // On mount: load already-linked permissions into currentValues\n useEffect(() => {\n fetchCurrentValues();\n }, [fieldContext.data?.id]);\n\n // On mount: load all available permissions into allOptions\n useEffect(() => {\n const queryData = { offset: 0, limit: 1000 };\n fetchAllOptions(qs.stringify(queryData, { encodeValuesOnly: true }));\n }, []);\n\n const handleCheckboxChange = (item: any) => {\n const isCurrentlyLinked = currentValues.some((s) => s.value === item.value);\n if (isCurrentlyLinked) {\n unlinkItem(item);\n } else {\n linkItem(item);\n }\n };\n\n const getHeaderTemplate = (controllerName: string) => (options: any) => {\n const className = `${options.className} justify-content-space-between`;\n\n return (\n <div className={className}>\n <div className=\"flex align-items-center gap-3\">\n <label className=\"form-field-label text-base lg:text-lg font-bold\">\n {controllerName}\n </label>\n {fieldContext.field.attrs.inlineCreate && (\n <>\n <Button\n icon=\"pi pi-plus\"\n rounded\n outlined\n aria-label=\"Add\"\n type=\"button\"\n size=\"small\"\n onClick={() =>\n setVisibleDialogs((prev) => ({\n ...prev,\n [controllerName]: true,\n }))\n }\n className=\"custom-add-button\"\n disabled={isUnsaved}\n />\n <InlineRelationEntityDialog\n visible={visibleCreateDialog}\n setVisible={setVisibleCreateDialog}\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n </>\n )}\n </div>\n <div>{options.togglerElement}</div>\n </div>\n );\n };\n\n const isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === \"new\";\n const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);\n const fieldLabel = fieldLayoutInfo.attrs.label || \"Permissions\";\n\n const groupedEntities = groupByController(allOptions || []);\n return (\n <div>\n {isUnsaved && (\n <div className=\"mb-2\">\n <Message severity=\"warn\" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className=\"w-full justify-content-start\" />\n </div>\n )}\n {Object.keys(groupedEntities).map((controllerName) => (\n <Panel\n key={controllerName}\n toggleable\n headerTemplate={getHeaderTemplate(controllerName)}\n className=\"mt-3 lg:mt-4\"\n >\n <div className=\"formgrid grid gap-3 lg:gap-0\">\n {groupedEntities[controllerName].map((entity: any, i: number) => (\n <div\n key={entity.value}\n className={`field col-12 lg:col-6 flex gap-2 ${i >= 2 ? 'lg:mt-3' : ''}`}\n >\n <Checkbox\n readOnly={readOnlyPermission || isUnsaved}\n disabled={isUnsaved}\n inputId={entity.label}\n checked={currentValues.some((s) => s.value === entity.value)}\n onChange={() => handleCheckboxChange(entity)}\n />\n <label htmlFor={entity.label} className=\"form-field-label m-0 solid-permisson-form-label\">\n {entity.label}\n </label>\n </div>\n ))}\n </div>\n </Panel>\n ))}\n {Object.keys(groupedEntities).map((controllerName) => (\n <InlineRelationEntityDialog\n key={`dialog-${controllerName}`}\n visible={visibleDialogs[controllerName] || false}\n setVisible={(visible: any) =>\n setVisibleDialogs((prev) => ({\n ...prev,\n [controllerName]: visible,\n }))\n }\n fieldContext={fieldContext}\n onCreate={addNewRelation}\n />\n ))}\n </div>\n );\n};"]}
@@ -1,4 +1,5 @@
1
1
  import { capitalize } from "lodash";
2
+ import { Message } from "primereact/message";
2
3
  import { Panel } from "primereact/panel";
3
4
  import { useEffect, useState } from "react";
4
5
  import { Button } from "primereact/button";
@@ -82,6 +83,7 @@ export const RolePermissionsManyToManyFieldWidget = ({ formik, fieldContext }: S
82
83
  }))
83
84
  }
84
85
  className="custom-add-button"
86
+ disabled={isUnsaved}
85
87
  />
86
88
  <InlineRelationEntityDialog
87
89
  visible={visibleCreateDialog}
@@ -97,9 +99,18 @@ export const RolePermissionsManyToManyFieldWidget = ({ formik, fieldContext }: S
97
99
  );
98
100
  };
99
101
 
102
+ const isUnsaved = fieldContext.data?.id === undefined || fieldContext.data?.id === "new";
103
+ const entityName = fieldContext.solidFormViewMetaData?.data?.solidView?.model?.displayName || capitalize(fieldContext.modelName);
104
+ const fieldLabel = fieldLayoutInfo.attrs.label || "Permissions";
105
+
100
106
  const groupedEntities = groupByController(allOptions || []);
101
107
  return (
102
108
  <div>
109
+ {isUnsaved && (
110
+ <div className="mb-2">
111
+ <Message severity="warn" text={`Please save the ${entityName} first to assign ${fieldLabel}.`} className="w-full justify-content-start" />
112
+ </div>
113
+ )}
103
114
  {Object.keys(groupedEntities).map((controllerName) => (
104
115
  <Panel
105
116
  key={controllerName}
@@ -114,7 +125,8 @@ export const RolePermissionsManyToManyFieldWidget = ({ formik, fieldContext }: S
114
125
  className={`field col-12 lg:col-6 flex gap-2 ${i >= 2 ? 'lg:mt-3' : ''}`}
115
126
  >
116
127
  <Checkbox
117
- readOnly={readOnlyPermission}
128
+ readOnly={readOnlyPermission || isUnsaved}
129
+ disabled={isUnsaved}
118
130
  inputId={entity.label}
119
131
  checked={currentValues.some((s) => s.value === entity.value)}
120
132
  onChange={() => handleCheckboxChange(entity)}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormUserViewLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormUserViewLayout.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,uBAAuB,sDAAuD,GAAG,mDA6D7F,CAAC"}
1
+ {"version":3,"file":"SolidFormUserViewLayout.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormUserViewLayout.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,uBAAuB,sDAAuD,GAAG,mDA4D7F,CAAC"}
@@ -37,18 +37,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
38
38
  import { useFormik } from "formik";
39
39
  import { Button } from "primereact/button";
40
- import { useRef } from "react";
40
+ import { useDispatch } from "react-redux";
41
41
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
42
42
  import { javascript } from "@codemirror/lang-javascript";
43
43
  import { oneDark } from "@codemirror/theme-one-dark";
44
44
  import CodeMirror, { EditorView } from "@uiw/react-codemirror";
45
- import { Toast } from "primereact/toast";
46
45
  import { ERROR_MESSAGES } from "../../../constants/error-messages";
47
- import showToast from "../../../helpers/showToast";
46
+ import { showToast } from "../../../redux/features/toastSlice";
48
47
  export var SolidFormUserViewLayout = function (_a) {
49
48
  var _b;
50
49
  var solidFormViewMetaData = _a.solidFormViewMetaData, setLayoutDialogVisible = _a.setLayoutDialogVisible;
51
- var toast = useRef(null);
50
+ var dispatch = useDispatch();
52
51
  var entityApi = createSolidEntityApi("userViewMetadata");
53
52
  var useUpsertSolidEntityMutation = entityApi.useUpsertSolidEntityMutation;
54
53
  var upsertUserView = useUpsertSolidEntityMutation()[0];
@@ -76,7 +75,7 @@ export var SolidFormUserViewLayout = function (_a) {
76
75
  case 2:
77
76
  response = _a.sent();
78
77
  if (response.statusCode === 200) {
79
- showToast(toast, "success", ERROR_MESSAGES.LAYOUT, ERROR_MESSAGES.FORM_LAYOUT_UPDATE);
78
+ dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));
80
79
  setLayoutDialogVisible(false);
81
80
  window.location.reload();
82
81
  }
@@ -91,8 +90,8 @@ export var SolidFormUserViewLayout = function (_a) {
91
90
  });
92
91
  }); },
93
92
  });
94
- return (_jsxs(_Fragment, { children: [_jsx(Toast, { ref: toast }), _jsxs("form", { onSubmit: formik.handleSubmit, children: [_jsx(CodeMirror, { value: formik.values.layoutString, height: "500px", theme: oneDark, style: { fontSize: '10px' }, extensions: [javascript(), EditorView.lineWrapping], onChange: function (value) {
95
- formik.setFieldValue("layoutString", value);
96
- } }), _jsxs("div", { className: "pt-3 flex gap-2", children: [_jsx(Button, { type: "submit", label: "Apply", size: "small" }), _jsx(Button, { type: "button", outlined: true, label: "Cancel", size: "small", onClick: function () { return setLayoutDialogVisible(false); } })] })] })] }));
93
+ return (_jsx(_Fragment, { children: _jsxs("form", { onSubmit: formik.handleSubmit, children: [_jsx(CodeMirror, { value: formik.values.layoutString, height: "500px", theme: oneDark, style: { fontSize: '10px' }, extensions: [javascript(), EditorView.lineWrapping], onChange: function (value) {
94
+ formik.setFieldValue("layoutString", value);
95
+ } }), _jsxs("div", { className: "pt-3 flex gap-2", children: [_jsx(Button, { type: "submit", label: "Apply", size: "small" }), _jsx(Button, { type: "button", outlined: true, label: "Cancel", size: "small", onClick: function () { return setLayoutDialogVisible(false); } })] })] }) }));
97
96
  };
98
97
  //# sourceMappingURL=SolidFormUserViewLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidFormUserViewLayout.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormUserViewLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useFormik } from \"formik\";\nimport { Button } from \"primereact/button\";\nimport { useSelector } from \"react-redux\";\nimport React, { useRef } from \"react\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { javascript } from \"@codemirror/lang-javascript\";\nimport { oneDark } from \"@codemirror/theme-one-dark\";\nimport CodeMirror, { EditorView } from \"@uiw/react-codemirror\";\nimport { Toast } from \"primereact/toast\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport showToast from \"../../../helpers/showToast\";\n\nexport const SolidFormUserViewLayout = ({ solidFormViewMetaData, setLayoutDialogVisible }: any) => {\n const toast = useRef<Toast>(null);\n const entityApi = createSolidEntityApi(\"userViewMetadata\");\n const { useUpsertSolidEntityMutation } = entityApi;\n const [upsertUserView] = useUpsertSolidEntityMutation();\n\n if (!solidFormViewMetaData?.data?.solidView) return null;\n\n const solidView = solidFormViewMetaData.data.solidView;\n\n const formik = useFormik({\n initialValues: {\n layoutString: JSON.stringify(solidView.layout, null, 2),\n },\n onSubmit: async (values) => {\n const parsedLayout = JSON.parse(values.layoutString);\n try {\n if (solidView.id) {\n const response = await upsertUserView({\n viewMetadataId: solidView.id,\n layout: JSON.stringify(parsedLayout)\n }).unwrap();\n if (response.statusCode === 200) {\n showToast(toast, \"success\", ERROR_MESSAGES.LAYOUT, ERROR_MESSAGES.FORM_LAYOUT_UPDATE);\n setLayoutDialogVisible(false);\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATE_FAILED, error);\n }\n },\n });\n\n return (\n <>\n <Toast ref={toast} />\n <form onSubmit={formik.handleSubmit}>\n <CodeMirror\n value={formik.values.layoutString}\n height=\"500px\"\n theme={oneDark}\n style={{ fontSize: '10px' }}\n extensions={[javascript(), EditorView.lineWrapping]}\n onChange={(value) => {\n formik.setFieldValue(\"layoutString\", value);\n }}\n />\n <div className=\"pt-3 flex gap-2\">\n <Button type=\"submit\" label=\"Apply\" size=\"small\" />\n <Button\n type=\"button\"\n outlined\n label=\"Cancel\"\n size=\"small\"\n onClick={() => setLayoutDialogVisible(false)}\n />\n </div>\n </form>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidFormUserViewLayout.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormUserViewLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useFormik } from \"formik\";\nimport { Button } from \"primereact/button\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport React from \"react\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { javascript } from \"@codemirror/lang-javascript\";\nimport { oneDark } from \"@codemirror/theme-one-dark\";\nimport CodeMirror, { EditorView } from \"@uiw/react-codemirror\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\n\nexport const SolidFormUserViewLayout = ({ solidFormViewMetaData, setLayoutDialogVisible }: any) => {\n const dispatch = useDispatch();\n const entityApi = createSolidEntityApi(\"userViewMetadata\");\n const { useUpsertSolidEntityMutation } = entityApi;\n const [upsertUserView] = useUpsertSolidEntityMutation();\n\n if (!solidFormViewMetaData?.data?.solidView) return null;\n\n const solidView = solidFormViewMetaData.data.solidView;\n\n const formik = useFormik({\n initialValues: {\n layoutString: JSON.stringify(solidView.layout, null, 2),\n },\n onSubmit: async (values) => {\n const parsedLayout = JSON.parse(values.layoutString);\n try {\n if (solidView.id) {\n const response = await upsertUserView({\n viewMetadataId: solidView.id,\n layout: JSON.stringify(parsedLayout)\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.FORM_LAYOUT_UPDATE }));\n setLayoutDialogVisible(false);\n window.location.reload();\n }\n }\n } catch (error) {\n console.error(ERROR_MESSAGES.UPDATE_FAILED, error);\n }\n },\n });\n\n return (\n <>\n <form onSubmit={formik.handleSubmit}>\n <CodeMirror\n value={formik.values.layoutString}\n height=\"500px\"\n theme={oneDark}\n style={{ fontSize: '10px' }}\n extensions={[javascript(), EditorView.lineWrapping]}\n onChange={(value) => {\n formik.setFieldValue(\"layoutString\", value);\n }}\n />\n <div className=\"pt-3 flex gap-2\">\n <Button type=\"submit\" label=\"Apply\" size=\"small\" />\n <Button\n type=\"button\"\n outlined\n label=\"Cancel\"\n size=\"small\"\n onClick={() => setLayoutDialogVisible(false)}\n />\n </div>\n </form>\n </>\n );\n};\n"]}