@solidxai/core-ui 0.1.12-beta.5 → 0.1.12-beta.7

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 (475) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +5 -2
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +6 -2
  5. package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
  6. package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
  7. package/dist/components/auth/SolidOTPVerify.js +67 -0
  8. package/dist/components/auth/SolidOTPVerify.js.map +1 -0
  9. package/dist/components/auth/SolidOTPVerify.tsx +133 -0
  10. package/dist/components/common/AuthBanner.d.ts +3 -0
  11. package/dist/components/common/AuthBanner.d.ts.map +1 -0
  12. package/dist/components/common/AuthBanner.js +15 -0
  13. package/dist/components/common/AuthBanner.js.map +1 -0
  14. package/dist/components/common/AuthBanner.tsx +41 -0
  15. package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
  16. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
  17. package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
  18. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
  19. package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
  20. package/dist/components/common/SolidExportStepper.d.ts +12 -0
  21. package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
  22. package/dist/components/common/SolidExportStepper.js +30 -0
  23. package/dist/components/common/SolidExportStepper.js.map +1 -0
  24. package/dist/components/common/SolidExportStepper.tsx +135 -0
  25. package/dist/components/core/card/CardGrid.d.ts +1 -1
  26. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  27. package/dist/components/core/card/CardGrid.js +2 -2
  28. package/dist/components/core/card/CardGrid.js.map +1 -1
  29. package/dist/components/core/card/CardGrid.tsx +4 -0
  30. package/dist/components/core/card/CardItem.d.ts +2 -0
  31. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  32. package/dist/components/core/card/CardItem.js +7 -2
  33. package/dist/components/core/card/CardItem.js.map +1 -1
  34. package/dist/components/core/card/CardItem.tsx +30 -8
  35. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  36. package/dist/components/core/card/SolidCardView.js +87 -21
  37. package/dist/components/core/card/SolidCardView.js.map +1 -1
  38. package/dist/components/core/card/SolidCardView.tsx +96 -40
  39. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  40. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  41. package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
  42. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  43. package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
  44. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
  45. package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
  46. package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
  47. package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
  48. package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
  49. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
  50. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
  51. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
  52. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
  53. package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
  54. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  55. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  56. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  57. package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
  58. package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
  59. package/dist/components/core/dashboard/DashboardFilter.js +299 -0
  60. package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
  61. package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
  62. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
  63. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
  64. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
  65. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
  66. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
  67. package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
  68. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
  69. package/dist/components/core/dashboard/SolidDashboard.js +183 -0
  70. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
  71. package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
  72. package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
  73. package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
  74. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
  75. package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
  76. package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
  77. package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
  78. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
  79. package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
  80. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
  81. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
  82. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
  83. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
  84. package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
  85. package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
  86. package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
  87. package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
  88. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
  89. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
  90. package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
  91. package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
  92. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
  93. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
  94. package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
  95. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
  96. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
  97. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
  98. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
  99. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
  100. package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
  101. package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
  102. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
  103. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
  104. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
  105. package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
  106. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
  107. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
  108. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
  109. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
  110. package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
  111. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
  112. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
  113. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
  114. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
  115. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
  116. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
  117. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
  118. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
  119. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
  120. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
  121. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
  122. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
  123. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
  124. package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
  125. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
  126. package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
  127. package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
  128. package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
  129. package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
  130. package/dist/components/core/dashboard/dashboard-utils.js +38 -0
  131. package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
  132. package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
  133. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
  134. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
  135. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
  136. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
  137. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
  138. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
  139. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
  140. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
  141. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
  142. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
  143. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
  144. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
  145. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
  146. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
  147. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
  148. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
  149. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
  150. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
  151. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
  152. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
  153. package/dist/components/core/form/SolidFormView.js +1 -1
  154. package/dist/components/core/form/SolidFormView.js.map +1 -1
  155. package/dist/components/core/form/SolidFormView.tsx +1 -1
  156. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  157. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +11 -1
  158. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  159. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +26 -19
  160. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  161. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +13 -5
  162. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  163. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +16 -9
  164. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
  165. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
  166. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
  167. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
  168. package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
  169. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
  170. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
  171. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
  172. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
  173. package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
  174. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  175. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  176. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  177. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  178. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  179. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  180. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  181. package/dist/components/core/kanban/KanbanCard.js +10 -5
  182. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  183. package/dist/components/core/kanban/KanbanCard.tsx +28 -12
  184. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  185. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  186. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  187. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  188. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  189. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  190. package/dist/components/core/kanban/SolidKanbanView.js +154 -25
  191. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  192. package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
  193. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  194. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  195. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
  196. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  197. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
  198. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +12 -0
  199. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
  200. package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
  201. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
  202. package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
  203. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
  204. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
  205. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
  206. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
  207. package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  208. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
  209. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
  210. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
  211. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
  212. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  213. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
  214. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
  215. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
  216. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
  217. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  218. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
  219. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
  220. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
  221. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
  222. package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  223. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
  224. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
  225. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
  226. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
  227. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  228. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
  229. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
  230. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
  231. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
  232. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
  233. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
  234. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
  235. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
  236. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
  237. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  238. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
  239. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
  240. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
  241. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
  242. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  243. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
  244. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
  245. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
  246. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
  247. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  248. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
  249. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
  250. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
  251. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
  252. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  253. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
  254. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
  255. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
  256. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
  257. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  258. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
  259. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
  260. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
  261. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
  262. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  263. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
  264. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
  265. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
  266. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
  267. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  268. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
  269. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
  270. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
  271. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
  272. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
  273. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
  274. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
  275. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
  276. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
  277. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  278. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
  279. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
  280. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
  281. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
  282. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
  283. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
  284. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
  285. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
  286. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
  287. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
  288. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
  289. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
  290. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
  291. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
  292. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  293. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
  294. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
  295. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
  296. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
  297. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  298. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
  299. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
  300. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
  301. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
  302. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
  303. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
  304. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
  305. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
  306. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
  307. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  308. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
  309. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
  310. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
  311. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
  312. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
  313. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
  314. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
  315. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
  316. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
  317. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  318. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
  319. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
  320. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
  321. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
  322. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  323. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
  324. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
  325. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
  326. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
  327. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  328. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  329. package/dist/components/core/list/SolidDataTable.js +1 -1
  330. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  331. package/dist/components/core/list/SolidDataTable.tsx +1 -0
  332. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  333. package/dist/components/core/list/SolidListView.js +6 -1
  334. package/dist/components/core/list/SolidListView.js.map +1 -1
  335. package/dist/components/core/list/SolidListView.tsx +6 -1
  336. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
  337. package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
  338. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
  339. package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
  340. package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
  341. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
  342. package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
  343. package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
  344. package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
  345. package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
  346. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
  347. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
  348. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
  349. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
  350. package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
  351. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
  352. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
  353. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
  354. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
  355. package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
  356. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
  357. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
  358. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
  359. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
  360. package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
  361. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  362. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  363. package/dist/components/core/model/FieldMetaDataForm.js +119 -102
  364. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  365. package/dist/components/core/model/FieldMetaDataForm.tsx +82 -39
  366. package/dist/components/core/model/FieldSelector.d.ts +5 -1
  367. package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
  368. package/dist/components/core/model/FieldSelector.js +25 -6
  369. package/dist/components/core/model/FieldSelector.js.map +1 -1
  370. package/dist/components/core/model/FieldSelector.tsx +50 -5
  371. package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
  372. package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
  373. package/dist/components/core/tree/SolidTreeTable.js +2 -2
  374. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  375. package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
  376. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  377. package/dist/components/core/tree/SolidTreeView.js +38 -15
  378. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  379. package/dist/components/core/tree/SolidTreeView.tsx +48 -23
  380. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  381. package/dist/components/core/users/CreateUser.js +45 -32
  382. package/dist/components/core/users/CreateUser.js.map +1 -1
  383. package/dist/components/core/users/CreateUser.tsx +15 -4
  384. package/dist/components/layout/DashboardHeader.d.ts +3 -0
  385. package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
  386. package/dist/components/layout/DashboardHeader.js +20 -0
  387. package/dist/components/layout/DashboardHeader.js.map +1 -0
  388. package/dist/components/layout/DashboardHeader.tsx +94 -0
  389. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  390. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  391. package/dist/components/shad-cn-ui/SolidSelect.js +12 -4
  392. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  393. package/dist/components/shad-cn-ui/SolidSelect.tsx +13 -1
  394. package/dist/helpers/# no such endpoints exist, need to calle +3 -0
  395. package/dist/helpers/ToastContainer.d.ts +4 -0
  396. package/dist/helpers/ToastContainer.d.ts.map +1 -0
  397. package/dist/helpers/ToastContainer.js +49 -0
  398. package/dist/helpers/ToastContainer.js.map +1 -0
  399. package/dist/helpers/ToastContainer.tsx +94 -0
  400. package/dist/helpers/showToast.d.ts +5 -0
  401. package/dist/helpers/showToast.d.ts.map +1 -0
  402. package/dist/helpers/showToast.js +17 -0
  403. package/dist/helpers/showToast.js.map +1 -0
  404. package/dist/helpers/showToast.ts +13 -0
  405. package/dist/helpers/studioSandbox.d.ts +31 -0
  406. package/dist/helpers/studioSandbox.d.ts.map +1 -0
  407. package/dist/helpers/studioSandbox.js +104 -0
  408. package/dist/helpers/studioSandbox.js.map +1 -0
  409. package/dist/helpers/studioSandbox.ts +117 -0
  410. package/dist/nextAuth/authProviders.d.ts +4 -0
  411. package/dist/nextAuth/authProviders.d.ts.map +1 -0
  412. package/dist/nextAuth/authProviders.js +198 -0
  413. package/dist/nextAuth/authProviders.js.map +1 -0
  414. package/dist/nextAuth/authProviders.tsx +232 -0
  415. package/dist/nextAuth/handleLogout.d.ts +2 -0
  416. package/dist/nextAuth/handleLogout.d.ts.map +1 -0
  417. package/dist/nextAuth/handleLogout.js +36 -0
  418. package/dist/nextAuth/handleLogout.js.map +1 -0
  419. package/dist/nextAuth/handleLogout.tsx +39 -0
  420. package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
  421. package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
  422. package/dist/nextAuth/refreshAccessToken.js +24 -0
  423. package/dist/nextAuth/refreshAccessToken.js.map +1 -0
  424. package/dist/nextAuth/refreshAccessToken.tsx +28 -0
  425. package/dist/redux/api/dashboardApi.d.ts +23 -0
  426. package/dist/redux/api/dashboardApi.d.ts.map +1 -0
  427. package/dist/redux/api/dashboardApi.js +35 -0
  428. package/dist/redux/api/dashboardApi.js.map +1 -0
  429. package/dist/redux/api/dashboardApi.ts +56 -0
  430. package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
  431. package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
  432. package/dist/redux/api/dashboardLayoutApi.js +34 -0
  433. package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
  434. package/dist/redux/api/dashboardLayoutApi.ts +55 -0
  435. package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
  436. package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
  437. package/dist/redux/api/dashboardQuestionApi.js +18 -0
  438. package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
  439. package/dist/redux/api/dashboardQuestionApi.ts +17 -0
  440. package/dist/redux/api/datasourceIntrospectionApi.d.ts +1 -0
  441. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  442. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  443. package/dist/redux/api/datasourceIntrospectionApi.ts +1 -0
  444. package/dist/redux/features/settingsSlice.d.ts +20 -0
  445. package/dist/redux/features/settingsSlice.d.ts.map +1 -0
  446. package/dist/redux/features/settingsSlice.js +39 -0
  447. package/dist/redux/features/settingsSlice.js.map +1 -0
  448. package/dist/redux/features/settingsSlice.ts +60 -0
  449. package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
  450. package/dist/resources/images/Footerbg.png +0 -0
  451. package/dist/resources/images/LoginBanner.png +0 -0
  452. package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
  453. package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
  454. package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
  455. package/dist/resources/images/dashboard/image 5.svg +9 -0
  456. package/dist/resources/images/loginhero.png +0 -0
  457. package/dist/resources/images/logo.png +0 -0
  458. package/dist/resources/images/radix-logo-white.png +0 -0
  459. package/dist/resources/images/radix-logo.png +0 -0
  460. package/dist/resources/images/signupBanner.png +0 -0
  461. package/dist/resources/shadcn-base.css +16 -70
  462. package/dist/resources/solid-custom.css +55 -0
  463. package/dist/resources/solid-responsive.css +4 -4
  464. package/dist/resources/solid-tailwind-generated.css +1 -1
  465. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +12 -0
  466. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  467. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +160 -59
  468. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  469. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +293 -41
  470. package/package.json +1 -1
  471. package/dist/helpers/modulePackageResumeState.d.ts +0 -6
  472. package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
  473. package/dist/helpers/modulePackageResumeState.js +0 -46
  474. package/dist/helpers/modulePackageResumeState.js.map +0 -1
  475. package/dist/helpers/modulePackageResumeState.ts +0 -57
@@ -6,7 +6,7 @@ import React, {
6
6
  useRef,
7
7
  useState,
8
8
  } from "react";
9
- import { ChevronLeft, ChevronRight, EllipsisVertical, Pencil, Plus, RefreshCw, Search, Trash2 } from "lucide-react";
9
+ import { ChevronLeft, ChevronRight, EllipsisVertical, Pencil, Plus, RefreshCw, RotateCcw, Search, Trash2 } from "lucide-react";
10
10
  import { showToast } from "../../../redux/features/toastSlice";
11
11
  import { useDispatch, useSelector } from "react-redux";
12
12
  import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
@@ -35,7 +35,7 @@ import { useRouter } from "../../../hooks/useRouter";
35
35
  import { normalizeSolidListTreeKanbanActionPath } from "../../../helpers/routePaths";
36
36
  import { usePathname } from "../../../hooks/usePathname";
37
37
  import { useHandleListCustomButtonClick } from "../../../components/common/useHandleListCustomButtonClick";
38
- import { SolidButton, SolidDialog, SolidDialogBody, SolidDialogDescription, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuSeparator, SolidDropdownMenuTrigger, SolidIcon } from "../../shad-cn-ui";
38
+ import { SolidButton, SolidDialog, SolidDialogBody, SolidDialogDescription, SolidDialogFooter, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuSeparator, SolidDropdownMenuTrigger, SolidIcon, SolidSelect } from "../../shad-cn-ui";
39
39
  import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus";
40
40
  import { storeCurrentModelViewContext } from "../../../helpers/modelViewPersistence";
41
41
  import { Column as SolidTreeColumn, SolidTreeNode as TreeNode, SolidTreeSelectionKeys, SolidTreeTable } from "./SolidTreeTable";
@@ -414,6 +414,11 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
414
414
  setToPopulateMedia(queryObject.populateMedia || []);
415
415
  setSortField(queryObject.sortField || "");
416
416
  setSortOrder(queryObject.sortOrder || 0);
417
+ setShowArchived(
418
+ queryObject.showArchived === true ||
419
+ queryObject.showArchived === "true" ||
420
+ queryObject.showSoftDeleted === "inclusive"
421
+ );
417
422
 
418
423
  const savedLimit = queryObject.limit;
419
424
  if (savedLimit && currentOptions.includes(savedLimit)) {
@@ -448,6 +453,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
448
453
  setToPopulate(nextPopulate);
449
454
  setToPopulateMedia(nextPopulateMedia);
450
455
  setGlobalLimit(resolveDefaultPageSize(currentOptions));
456
+ setShowArchived(false);
451
457
  }
452
458
  }, [solidTreeViewLayout, solidTreeViewMetaData]);
453
459
 
@@ -629,6 +635,13 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
629
635
  return derivedAggregates.length > 0 ? derivedAggregates : ["id:count"];
630
636
  };
631
637
 
638
+ const applyArchivedQueryState = (queryData: Record<string, any>) => {
639
+ if (showArchived) {
640
+ queryData.showSoftDeleted = "inclusive";
641
+ }
642
+ return queryData;
643
+ };
644
+
632
645
  const extractGroupCount = (groupMeta: any) => {
633
646
  if (groupMeta?.id_count !== undefined) return groupMeta.id_count;
634
647
  const countKey = Object.keys(groupMeta || {}).find((key) => key.endsWith("_count"));
@@ -717,6 +730,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
717
730
  const implicitFilters = buildImplicitFiltersFromPath(groupPath);
718
731
  const mergedFilters = mergeFiltersWithImplicit(implicitFilters);
719
732
  if (mergedFilters) queryData.filters = mergedFilters;
733
+ applyArchivedQueryState(queryData);
720
734
 
721
735
  // event invocation is not tested
722
736
  const dynamicHeader = solidTreeViewMetaData?.data?.solidView?.layout?.onBeforeTreeDataLoad;
@@ -776,6 +790,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
776
790
  const implicitFilters = buildImplicitFiltersFromPath(groupPath);
777
791
  const mergedFilters = mergeFiltersWithImplicit(implicitFilters);
778
792
  if (mergedFilters) queryData.filters = mergedFilters;
793
+ applyArchivedQueryState(queryData);
779
794
 
780
795
 
781
796
  // event invocation is not tested
@@ -943,6 +958,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
943
958
  populateMedia: toPopulateMedia,
944
959
  sortField: sortField,
945
960
  sortOrder: sortOrder,
961
+ showArchived,
946
962
  custom_filter_predicate: latestFilterPredicatesRef.current.custom_filter_predicate || null,
947
963
  search_predicate: latestFilterPredicatesRef.current.search_predicate || null,
948
964
  saved_filter_predicate: latestFilterPredicatesRef.current.saved_filter_predicate || null,
@@ -950,6 +966,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
950
966
  grouping_rules: latestFilterPredicatesRef.current.grouping_rules || null,
951
967
  aggregation_rules: latestFilterPredicatesRef.current.aggregation_rules || null,
952
968
  };
969
+ applyArchivedQueryState(queryData);
953
970
 
954
971
  setFilterObjectToLocalStorage(queryData);
955
972
  }
@@ -969,7 +986,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
969
986
  loadRootGroups(0);
970
987
  }
971
988
  // eslint-disable-next-line react-hooks/exhaustive-deps
972
- }, [solidTreeViewMetaData, params.modelName, activeGroupingRules, aggregationRules, filters, sortField, sortOrder, globalLimit]);
989
+ }, [solidTreeViewMetaData, params.modelName, activeGroupingRules, aggregationRules, filters, sortField, sortOrder, globalLimit, showArchived]);
973
990
 
974
991
  // ─── Expand handler ───────────────────────────────────────────────────────
975
992
 
@@ -1164,8 +1181,10 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1164
1181
  };
1165
1182
 
1166
1183
  walk(treeNodes);
1167
- setSelectedRecords(checkedRecords);
1168
- setSelectedRecoverRecords(checkedRecords);
1184
+ const activeRecords = checkedRecords.filter((record: any) => record.deletedAt === null);
1185
+ const deletedRecords = checkedRecords.filter((record: any) => record.deletedAt !== null);
1186
+ setSelectedRecords(activeRecords);
1187
+ setSelectedRecoverRecords(deletedRecords);
1169
1188
  }, [treeNodes, selectedNodeKeys]);
1170
1189
 
1171
1190
  // ─── Filter handler ───────────────────────────────────────────────────────
@@ -1373,23 +1392,22 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1373
1392
  const rootHasNext = hasNext("root");
1374
1393
  const start = total === 0 ? 0 : offset + 1;
1375
1394
  const end = total === 0 ? 0 : Math.min(offset + limit, total);
1395
+ const report = `${start} - ${end} of ${total}`;
1376
1396
 
1377
1397
  return (
1378
1398
  <div className="w-full solid-table-paginator solid-table-paginator-align-end flex items-center justify-end gap-3 text-sm rounded-md border border-border/60 px-2 sm:px-3 py-1.5 bg-background">
1379
1399
  <div className="solid-paginator-meta flex items-center gap-2 sm:ml-auto">
1380
1400
  <span className="solid-paginator-label">Rows</span>
1381
- <select
1401
+ <SolidSelect
1382
1402
  value={limit}
1403
+ className="solid-paginator-select"
1404
+ options={pageSizeOptions.map((option) => ({ label: String(option), value: option }))}
1405
+ native={false}
1383
1406
  onChange={(event) => {
1384
- setGlobalLimit(Number(event.target.value));
1407
+ setGlobalLimit(Number(event.value));
1385
1408
  }}
1386
- className="solid-paginator-select"
1387
- >
1388
- {pageSizeOptions.map((option) => (
1389
- <option key={option} value={option}>{option}</option>
1390
- ))}
1391
- </select>
1392
- <span className="solid-paginator-report">{start} - {end} of {total}</span>
1409
+ />
1410
+ <span className="solid-paginator-report">{report}</span>
1393
1411
  </div>
1394
1412
  <div className="solid-paginator-actions flex items-center gap-2">
1395
1413
  <button
@@ -1439,20 +1457,22 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1439
1457
  setSortField(nextSortField);
1440
1458
  setSortOrder(nextSortOrder);
1441
1459
  },
1442
- setShowArchived: () => { /* archived toggle for grouped tree will be wired later */ },
1460
+ setShowArchived: (value) => {
1461
+ setShowArchived(value);
1462
+ },
1443
1463
  getState: () => ({
1444
1464
  first: getPagination("root").offset,
1445
1465
  rows: getPagination("root").limit,
1446
1466
  sortField,
1447
1467
  sortOrder: sortOrder as any,
1448
- showArchived: false,
1468
+ showArchived,
1449
1469
  filters,
1450
1470
  filterPredicates,
1451
1471
  listData: treeNodes,
1452
1472
  totalRecords: getPagination("root").total,
1453
1473
  loading: treeLoading,
1454
1474
  }),
1455
- }), [filters, filterPredicates, params.customFilter, treeLoading, treeNodes, paginationMap]);
1475
+ }), [filters, filterPredicates, paginationMap, showArchived, sortField, sortOrder, treeLoading, treeNodes]);
1456
1476
 
1457
1477
 
1458
1478
  const handleCustomButtonClick = useHandleListCustomButtonClick();
@@ -1468,6 +1488,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1468
1488
  };
1469
1489
 
1470
1490
  const canEditRow = (rowData: any, inContextMenu = false) =>
1491
+ !rowData?.deletedAt &&
1471
1492
  actionsAllowed.includes(permissionExpression(params.modelName, "update")) &&
1472
1493
  solidTreeViewLayout?.attrs?.edit !== false &&
1473
1494
  (!inContextMenu || solidTreeViewLayout?.attrs?.showDefaultEditButton !== false) &&
@@ -1475,6 +1496,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1475
1496
  !(isDraftPublishWorkflowEnabled && rowData?.publishedAt);
1476
1497
 
1477
1498
  const canDeleteRow = (rowData: any, inContextMenu = false) =>
1499
+ !rowData?.deletedAt &&
1478
1500
  actionsAllowed.includes(permissionExpression(params.modelName, "delete")) &&
1479
1501
  solidTreeViewLayout?.attrs?.delete !== false &&
1480
1502
  (!inContextMenu
@@ -1741,16 +1763,17 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1741
1763
  className="solid-icon-button"
1742
1764
  onClick={() => { void loadRootGroups(getPagination("root").offset); }}
1743
1765
  />
1744
- {showArchived && (
1766
+ {showArchived && selectedRecoverRecords.length > 0 && (
1745
1767
  <SolidButton
1746
1768
  type="button"
1747
- label="Recover"
1748
1769
  size="sm"
1749
- variant="outline"
1750
- leftIcon={<RefreshCw size={14} />}
1751
- className="hidden lg:flex solid-icon-button "
1770
+ variant="secondary"
1771
+ className="hidden lg:flex"
1752
1772
  onClick={() => setRecoverDialogVisible(true)}
1753
- />
1773
+ leftIcon={<RotateCcw size={14} />}
1774
+ >
1775
+ Recover
1776
+ </SolidButton>
1754
1777
  )}
1755
1778
 
1756
1779
  {params.embeded === false &&
@@ -1836,6 +1859,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1836
1859
  onExpand={handleNodeExpand}
1837
1860
  tableStyle={{ minWidth: "max-content" }}
1838
1861
  tableClassName="solid-data-table"
1862
+ rowClassName={(node) => node?.data?.deletedAt ? "greyed-out-row" : ""}
1839
1863
  selectionMode="checkbox"
1840
1864
  selectionKeys={selectedNodeKeys}
1841
1865
  sortField={sortField}
@@ -1850,6 +1874,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
1850
1874
  const rowData = e.node.data;
1851
1875
 
1852
1876
  if (solidTreeViewLayout?.attrs?.disableRowClick === true) return;
1877
+ if (rowData?.deletedAt) return;
1853
1878
 
1854
1879
  const hasFindPermission = actionsAllowed.includes(
1855
1880
  permissionExpression(params.modelName, 'findOne')
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAwBA,OAAO,kBAAkB,CAAC;AAY1B,QAAA,MAAM,UAAU,qBAAsB,GAAG,4CA6RxC,CAAC;AA8KF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"CreateUser.d.ts","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"AAwBA,OAAO,kBAAkB,CAAC;AAY1B,QAAA,MAAM,UAAU,qBAAsB,GAAG,4CAwSxC,CAAC;AA8KF,eAAe,UAAU,CAAC"}
@@ -78,7 +78,7 @@ var CreateUser = function (_a) {
78
78
  var _o = useState(null), newUserIdForApiKey = _o[0], setNewUserIdForApiKey = _o[1];
79
79
  var _p = useState(null), revealKey = _p[0], setRevealKey = _p[1];
80
80
  var _q = useRegisterPrivateMutation(), registerPrivate = _q[0], _r = _q[1], isLoading = _r.isLoading, userCreateError = _r.error;
81
- var _s = useUpdateUserMutation(), updateUser = _s[0], _t = _s[1], isUserUpdating = _t.isLoading, isUpdateUserSuccess = _t.isSuccess, userUpdateError = _t.error;
81
+ var _s = useUpdateUserMutation(), updateUser = _s[0], _t = _s[1], isUserUpdating = _t.isLoading, userUpdateError = _t.error;
82
82
  var _u = useDeleteUserMutation(), deleteUser = _u[0], _v = _u[1], isUserDeleting = _v.isLoading, isDeleteUserSuccess = _v.isSuccess;
83
83
  useEffect(function () {
84
84
  var _a;
@@ -119,30 +119,43 @@ var CreateUser = function (_a) {
119
119
  validationSchema: validationSchema,
120
120
  enableReinitialize: true,
121
121
  onSubmit: function (values) { return __awaiter(void 0, void 0, void 0, function () {
122
- var userData, response, userId, _a;
123
- var _b, _c;
124
- return __generator(this, function (_d) {
125
- switch (_d.label) {
122
+ var userData, _a, response, userId, _b;
123
+ var _c, _d;
124
+ return __generator(this, function (_e) {
125
+ switch (_e.label) {
126
126
  case 0:
127
- if (data) {
128
- userData = {
129
- fullName: values.fullName,
130
- username: values.username,
131
- email: values.email,
132
- mobile: values.mobile,
133
- roles: selectedRoles,
134
- active: values.active,
135
- isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,
136
- };
137
- if (values.password) {
138
- userData.password = values.password;
139
- }
140
- updateUser({ id: data.id, data: userData });
141
- return [2 /*return*/];
127
+ if (!data) return [3 /*break*/, 5];
128
+ userData = {
129
+ fullName: values.fullName,
130
+ username: values.username,
131
+ email: values.email,
132
+ mobile: values.mobile,
133
+ roles: selectedRoles,
134
+ active: values.active,
135
+ isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,
136
+ };
137
+ if (values.password) {
138
+ userData.password = values.password;
142
139
  }
143
- _d.label = 1;
140
+ _e.label = 1;
144
141
  case 1:
145
- _d.trys.push([1, 3, , 4]);
142
+ _e.trys.push([1, 3, , 4]);
143
+ return [4 /*yield*/, updateUser({ id: data.id, data: userData }).unwrap()];
144
+ case 2:
145
+ _e.sent();
146
+ dispatch(showToast({
147
+ severity: "success",
148
+ summary: ERROR_MESSAGES.FORM_UPDATE,
149
+ detail: ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY,
150
+ }));
151
+ router.back();
152
+ return [3 /*break*/, 4];
153
+ case 3:
154
+ _a = _e.sent();
155
+ return [3 /*break*/, 4];
156
+ case 4: return [2 /*return*/];
157
+ case 5:
158
+ _e.trys.push([5, 7, , 8]);
146
159
  return [4 /*yield*/, registerPrivate({
147
160
  fullName: values.fullName,
148
161
  username: values.username,
@@ -152,21 +165,21 @@ var CreateUser = function (_a) {
152
165
  roles: selectedRoles,
153
166
  isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,
154
167
  }).unwrap()];
155
- case 2:
156
- response = _d.sent();
168
+ case 6:
169
+ response = _e.sent();
157
170
  if (values.isAllowedToGenerateApiKeys) {
158
- userId = (_c = (_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : response === null || response === void 0 ? void 0 : response.id;
171
+ userId = (_d = (_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : response === null || response === void 0 ? void 0 : response.id;
159
172
  if (userId) {
160
173
  setNewUserIdForApiKey(userId);
161
174
  return [2 /*return*/];
162
175
  }
163
176
  }
164
177
  router.back();
165
- return [3 /*break*/, 4];
166
- case 3:
167
- _a = _d.sent();
168
- return [3 /*break*/, 4];
169
- case 4: return [2 /*return*/];
178
+ return [3 /*break*/, 8];
179
+ case 7:
180
+ _b = _e.sent();
181
+ return [3 /*break*/, 8];
182
+ case 8: return [2 /*return*/];
170
183
  }
171
184
  });
172
185
  }); },
@@ -200,10 +213,10 @@ var CreateUser = function (_a) {
200
213
  handleError(userUpdateError);
201
214
  }, [dispatch, userCreateError, userUpdateError]);
202
215
  useEffect(function () {
203
- if (isDeleteUserSuccess || isUpdateUserSuccess) {
216
+ if (isDeleteUserSuccess) {
204
217
  router.back();
205
218
  }
206
- }, [isDeleteUserSuccess, isUpdateUserSuccess, router]);
219
+ }, [isDeleteUserSuccess, router]);
207
220
  var isEditMode = params.id !== "new";
208
221
  var isSaving = isLoading || isUserUpdating;
209
222
  var handleUnblockUser = function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport * as Yup from \"yup\";\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { RolesGroupedByModuleWidget } from \"../../core/form/fields/relations/RolesGroupedByModuleWidget\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport {\n SolidButton,\n SolidInput,\n SolidMessage,\n SolidPanel,\n SolidPasswordInput,\n SolidSwitch,\n SolidTabGroup,\n} from \"../../shad-cn-ui\";\nimport { ApiKeysTab, GenerateApiKeyModal, RevealApiKeyModal } from \"./ApiKeysTab\";\nimport \"./CreateUser.css\";\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nconst CreateUser = ({ data, params }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n const [failedAttempts, setFailedAttempts] = useState<number>(data?.failedLoginAttempts ?? 0);\n const [activeTab, setActiveTab] = useState(\"userDetails\");\n const [newUserIdForApiKey, setNewUserIdForApiKey] = useState<number | null>(null);\n const [revealKey, setRevealKey] = useState<{ apiKey: string; keyName: string } | null>(null);\n\n const [registerPrivate, { isLoading, error: userCreateError }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isUserUpdating,\n isSuccess: isUpdateUserSuccess,\n error: userUpdateError,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, { isLoading: isUserDeleting, isSuccess: isDeleteUserSuccess }] = useDeleteUserMutation();\n\n useEffect(() => {\n if (data?.roles) {\n setSelectedRoles(data.roles.map((role: any) => role.name));\n }\n setFailedAttempts(data?.failedLoginAttempts ?? 0);\n }, [data]);\n\n const initialValues = {\n fullName: data?.fullName ?? \"\",\n username: data?.username ?? \"\",\n email: data?.email ?? \"\",\n mobile: data?.mobile ?? \"\",\n password: \"\",\n confirmPassword: \"\",\n active: data?.active ?? true,\n isAllowedToGenerateApiKeys: data?.isAllowedToGenerateApiKeys ?? false,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Full Name\")),\n username: Yup.string().required(\"Username is required\"),\n email: Yup.string()\n .email(ERROR_MESSAGES.FIELD_INVALID(\"email address\"))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(\"Email\")),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string().when(\"password\", {\n is: (val: any) => !!val,\n then: (schema) => schema.oneOf([Yup.ref(\"password\")], ERROR_MESSAGES.FIELD_MUST_MATCH(\"Password\")).nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.string().nullable(),\n });\n\n function isFetchBaseQueryErrorWithErrorResponse(\n error: any\n ): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === \"object\" && \"data\" in error && \"message\" in error.data;\n }\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n active: values.active,\n isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,\n };\n\n if (values.password) {\n userData.password = values.password;\n }\n\n updateUser({ id: data.id, data: userData });\n return;\n }\n\n try {\n const response = await registerPrivate({\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,\n }).unwrap();\n\n if (values.isAllowedToGenerateApiKeys) {\n const userId = (response as any)?.data?.id ?? (response as any)?.id;\n if (userId) {\n setNewUserIdForApiKey(userId);\n return;\n }\n }\n router.back();\n } catch {\n // error shown via userCreateError effect\n }\n },\n });\n\n const fieldError = (fieldName: keyof typeof initialValues) =>\n formik.touched[fieldName] && formik.errors[fieldName] ? String(formik.errors[fieldName]) : \"\";\n\n const handleCheckboxChange = (roleName: string) => {\n const updatedRoles = selectedRoles.includes(roleName)\n ? selectedRoles.filter((name) => name !== roleName)\n : [...selectedRoles, roleName];\n\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched(\"roles\", true);\n formik.setFieldValue(\"roles\", updatedRoles);\n };\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(\", \") : errorMessage;\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.ERROR, detail }));\n };\n\n if (userCreateError) handleError(userCreateError);\n if (userUpdateError) handleError(userUpdateError);\n }, [dispatch, userCreateError, userUpdateError]);\n\n useEffect(() => {\n if (isDeleteUserSuccess || isUpdateUserSuccess) {\n router.back();\n }\n }, [isDeleteUserSuccess, isUpdateUserSuccess, router]);\n\n const isEditMode = params.id !== \"new\";\n const isSaving = isLoading || isUserUpdating;\n\n const handleUnblockUser = async () => {\n if (!data?.id) return;\n\n try {\n await updateUser({\n id: data.id,\n data: { failedLoginAttempts: 0 },\n }).unwrap();\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Success\",\n detail: \"User is unblocked.\",\n })\n );\n setFailedAttempts(0);\n } catch {\n // error shown via userUpdateError effect\n }\n };\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\">\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header flex items-center justify-between gap-4 flex-wrap\">\n <div className=\"solid-user-form-titleblock flex items-center gap-4\">\n <BackButton />\n <div>\n <div className=\"form-wrapper-title\">{isEditMode ? \"Update User\" : \"Create User\"}</div>\n <p className=\"solid-user-form-subtitle m-0\">\n {isEditMode\n ? \"Update account details, access roles, and security controls.\"\n : \"Create a user account and assign the right access roles.\"}\n </p>\n </div>\n </div>\n <div className=\"flex gap-4 flex-wrap\">\n {isEditMode && failedAttempts > 0 ? (\n <SolidButton size=\"small\" type=\"button\" variant=\"outline\" loading={isUserUpdating} onClick={handleUnblockUser}>\n Unblock User\n </SolidButton>\n ) : null}\n {formik.dirty ? (\n <SolidButton size=\"small\" type=\"submit\" loading={isSaving}>\n Save\n </SolidButton>\n ) : null}\n {data ? (\n <SolidButton\n size=\"small\"\n type=\"button\"\n variant=\"destructive\"\n loading={isUserDeleting}\n onClick={() => deleteUser(data.id)}\n >\n Delete\n </SolidButton>\n ) : null}\n <CancelButton />\n </div>\n </div>\n\n <SolidFormHeader />\n\n <div className=\"px-3 py-3 md:p-4 solid-form-content\">\n {isEditMode ? (\n <SolidTabGroup\n value={activeTab}\n onValueChange={setActiveTab}\n tabs={[\n {\n value: \"userDetails\",\n label: \"User Details\",\n content: (\n <UserDetailsContent\n formik={formik}\n fieldError={fieldError}\n selectedRoles={selectedRoles}\n handleCheckboxChange={handleCheckboxChange}\n isEditMode={isEditMode}\n />\n ),\n },\n {\n value: \"apiKeys\",\n label: \"API Keys\",\n content: (\n <div className=\"solid-user-edit-api-keys-pane\">\n <ApiKeysTab userId={data?.id} canCreate={data?.isAllowedToGenerateApiKeys ?? false} />\n </div>\n ),\n },\n ]}\n />\n ) : (\n <UserDetailsContent\n formik={formik}\n fieldError={fieldError}\n selectedRoles={selectedRoles}\n handleCheckboxChange={handleCheckboxChange}\n isEditMode={isEditMode}\n />\n )}\n </div>\n </form>\n </div>\n\n {newUserIdForApiKey !== null && (\n <GenerateApiKeyModal\n open={true}\n userId={newUserIdForApiKey}\n onClose={() => {\n setNewUserIdForApiKey(null);\n router.back();\n }}\n onCreated={(apiKey, keyName) => {\n setNewUserIdForApiKey(null);\n setRevealKey({ apiKey, keyName });\n }}\n />\n )}\n\n {revealKey && (\n <RevealApiKeyModal\n open={true}\n apiKey={revealKey.apiKey}\n keyName={revealKey.keyName}\n onClose={() => {\n setRevealKey(null);\n router.back();\n }}\n />\n )}\n </div>\n );\n};\n\n/** Extracted form body so it can be used both inside and outside the tab wrapper */\nfunction UserDetailsContent({\n formik,\n fieldError,\n selectedRoles,\n handleCheckboxChange,\n isEditMode,\n}: {\n formik: any;\n fieldError: (field: any) => string;\n selectedRoles: string[];\n handleCheckboxChange: (roleName: string) => void;\n isEditMode: boolean;\n}) {\n return (\n <div className=\"solid-user-details-layout\">\n <div className=\"solid-user-details-stack\">\n <SolidPanel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.fullName}\n className={cx(fieldError(\"fullName\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"fullName\") ? <SolidMessage severity=\"error\" text={fieldError(\"fullName\")} /> : null}\n </div>\n\n <div className=\"field flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <SolidInput\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete=\"off\"\n disabled={Boolean(formik.values.username) && isEditMode}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.username}\n className={cx(fieldError(\"username\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"username\") ? <SolidMessage severity=\"error\" text={fieldError(\"username\")} /> : null}\n </div>\n\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <SolidInput\n type=\"email\"\n id=\"email\"\n name=\"email\"\n autoComplete=\"off\"\n disabled={isEditMode}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.email}\n className={cx(fieldError(\"email\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"email\") ? <SolidMessage severity=\"error\" text={fieldError(\"email\")} /> : null}\n </div>\n\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <SolidInput\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.mobile}\n className={cx(fieldError(\"mobile\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"mobile\") ? <SolidMessage severity=\"error\" text={fieldError(\"mobile\")} /> : null}\n </div>\n\n {!isEditMode ? (\n <>\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"password\" className=\"form-field-label\">\n Password\n </label>\n <SolidPasswordInput\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n className={cx(fieldError(\"password\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"password\") ? <SolidMessage severity=\"error\" text={fieldError(\"password\")} /> : null}\n </div>\n\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"confirmPassword\" className=\"form-field-label\">\n Confirm Password\n </label>\n <SolidPasswordInput\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n className={cx(fieldError(\"confirmPassword\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"confirmPassword\") ? (\n <SolidMessage severity=\"error\" text={fieldError(\"confirmPassword\")} />\n ) : null}\n </div>\n </>\n ) : null}\n </div>\n </SolidPanel>\n\n <SolidPanel toggleable header=\"Access\" className=\"solid-column-panel\">\n <div className=\"flex flex-wrap -mx-2 -mt-2 solid-user-access-grid\">\n {isEditMode ? (\n <div className=\"field w-full px-2 pt-2 solid-user-access-row\">\n <div className=\"solid-user-access-copy\">\n <p className=\"form-field-label m-0\">Active User</p>\n <p className=\"solid-user-section-helper m-0 mt-1\">\n Control whether this user account is active and allowed to sign in.\n </p>\n </div>\n <SolidSwitch\n checked={formik.values.active}\n onChange={(checked) => formik.setFieldValue(\"active\", checked)}\n />\n </div>\n ) : null}\n <div className=\"field w-full px-2 pt-2 solid-user-access-row\">\n <div className=\"solid-user-access-copy\">\n <p className=\"form-field-label m-0\">Allow API Key Generation</p>\n <p className=\"solid-user-section-helper m-0 mt-1\">\n When enabled, this user can generate API keys for programmatic access.\n </p>\n </div>\n <SolidSwitch\n checked={formik.values.isAllowedToGenerateApiKeys}\n onChange={(checked) => formik.setFieldValue(\"isAllowedToGenerateApiKeys\", checked)}\n />\n </div>\n </div>\n </SolidPanel>\n\n <SolidPanel toggleable header=\"Roles\" className=\"solid-column-panel\">\n <p className=\"solid-user-section-copy\">Select the roles that should be assigned to this user.</p>\n <RolesGroupedByModuleWidget\n selectedRoles={selectedRoles}\n onToggle={handleCheckboxChange}\n />\n </SolidPanel>\n </div>\n </div>\n );\n}\n\nexport default CreateUser;\n"]}
1
+ {"version":3,"file":"CreateUser.js","sourceRoot":"","sources":["../../../../src/components/core/users/CreateUser.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport * as Yup from \"yup\";\nimport { BackButton } from \"../../../components/common/BackButton\";\nimport { CancelButton } from \"../../../components/common/CancelButton\";\nimport { SolidFormHeader } from \"../../../components/common/SolidFormHeader\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useRegisterPrivateMutation, useUpdateUserMutation } from \"../../../redux/api/authApi\";\nimport { useDeleteUserMutation } from \"../../../redux/api/userApi\";\nimport { RolesGroupedByModuleWidget } from \"../../core/form/fields/relations/RolesGroupedByModuleWidget\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport {\n SolidButton,\n SolidInput,\n SolidMessage,\n SolidPanel,\n SolidPasswordInput,\n SolidSwitch,\n SolidTabGroup,\n} from \"../../shad-cn-ui\";\nimport { ApiKeysTab, GenerateApiKeyModal, RevealApiKeyModal } from \"./ApiKeysTab\";\nimport \"./CreateUser.css\";\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nconst CreateUser = ({ data, params }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const [selectedRoles, setSelectedRoles] = useState<string[]>([]);\n const [failedAttempts, setFailedAttempts] = useState<number>(data?.failedLoginAttempts ?? 0);\n const [activeTab, setActiveTab] = useState(\"userDetails\");\n const [newUserIdForApiKey, setNewUserIdForApiKey] = useState<number | null>(null);\n const [revealKey, setRevealKey] = useState<{ apiKey: string; keyName: string } | null>(null);\n\n const [registerPrivate, { isLoading, error: userCreateError }] = useRegisterPrivateMutation();\n const [\n updateUser,\n {\n isLoading: isUserUpdating,\n error: userUpdateError,\n },\n ] = useUpdateUserMutation();\n\n const [deleteUser, { isLoading: isUserDeleting, isSuccess: isDeleteUserSuccess }] = useDeleteUserMutation();\n\n useEffect(() => {\n if (data?.roles) {\n setSelectedRoles(data.roles.map((role: any) => role.name));\n }\n setFailedAttempts(data?.failedLoginAttempts ?? 0);\n }, [data]);\n\n const initialValues = {\n fullName: data?.fullName ?? \"\",\n username: data?.username ?? \"\",\n email: data?.email ?? \"\",\n mobile: data?.mobile ?? \"\",\n password: \"\",\n confirmPassword: \"\",\n active: data?.active ?? true,\n isAllowedToGenerateApiKeys: data?.isAllowedToGenerateApiKeys ?? false,\n };\n\n const validationSchema = Yup.object({\n fullName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Full Name\")),\n username: Yup.string().required(\"Username is required\"),\n email: Yup.string()\n .email(ERROR_MESSAGES.FIELD_INVALID(\"email address\"))\n .required(ERROR_MESSAGES.FIELD_REUQIRED(\"Email\")),\n password: Yup.string().min(6, ERROR_MESSAGES.PASSWORD_CHARACTER(6)).nullable(),\n confirmPassword: Yup.string().when(\"password\", {\n is: (val: any) => !!val,\n then: (schema) => schema.oneOf([Yup.ref(\"password\")], ERROR_MESSAGES.FIELD_MUST_MATCH(\"Password\")).nullable(),\n otherwise: (schema) => schema.notRequired().nullable(),\n }),\n mobile: Yup.string().nullable(),\n });\n\n function isFetchBaseQueryErrorWithErrorResponse(\n error: any\n ): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === \"object\" && \"data\" in error && \"message\" in error.data;\n }\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n if (data) {\n const userData: any = {\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n roles: selectedRoles,\n active: values.active,\n isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,\n };\n\n if (values.password) {\n userData.password = values.password;\n }\n\n try {\n await updateUser({ id: data.id, data: userData }).unwrap();\n dispatch(\n showToast({\n severity: \"success\",\n summary: ERROR_MESSAGES.FORM_UPDATE,\n detail: ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY,\n })\n );\n router.back();\n } catch {\n // error shown via userUpdateError effect\n }\n return;\n }\n\n try {\n const response = await registerPrivate({\n fullName: values.fullName,\n username: values.username,\n email: values.email,\n mobile: values.mobile,\n password: values.password,\n roles: selectedRoles,\n isAllowedToGenerateApiKeys: values.isAllowedToGenerateApiKeys,\n }).unwrap();\n\n if (values.isAllowedToGenerateApiKeys) {\n const userId = (response as any)?.data?.id ?? (response as any)?.id;\n if (userId) {\n setNewUserIdForApiKey(userId);\n return;\n }\n }\n router.back();\n } catch {\n // error shown via userCreateError effect\n }\n },\n });\n\n const fieldError = (fieldName: keyof typeof initialValues) =>\n formik.touched[fieldName] && formik.errors[fieldName] ? String(formik.errors[fieldName]) : \"\";\n\n const handleCheckboxChange = (roleName: string) => {\n const updatedRoles = selectedRoles.includes(roleName)\n ? selectedRoles.filter((name) => name !== roleName)\n : [...selectedRoles, roleName];\n\n setSelectedRoles(updatedRoles);\n formik.setFieldTouched(\"roles\", true);\n formik.setFieldValue(\"roles\", updatedRoles);\n };\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(\", \") : errorMessage;\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.ERROR, detail }));\n };\n\n if (userCreateError) handleError(userCreateError);\n if (userUpdateError) handleError(userUpdateError);\n }, [dispatch, userCreateError, userUpdateError]);\n\n useEffect(() => {\n if (isDeleteUserSuccess) {\n router.back();\n }\n }, [isDeleteUserSuccess, router]);\n\n const isEditMode = params.id !== \"new\";\n const isSaving = isLoading || isUserUpdating;\n\n const handleUnblockUser = async () => {\n if (!data?.id) return;\n\n try {\n await updateUser({\n id: data.id,\n data: { failedLoginAttempts: 0 },\n }).unwrap();\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Success\",\n detail: \"User is unblocked.\",\n })\n );\n setFailedAttempts(0);\n } catch {\n // error shown via userUpdateError effect\n }\n };\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\">\n <form onSubmit={formik.handleSubmit}>\n <div className=\"solid-form-header flex items-center justify-between gap-4 flex-wrap\">\n <div className=\"solid-user-form-titleblock flex items-center gap-4\">\n <BackButton />\n <div>\n <div className=\"form-wrapper-title\">{isEditMode ? \"Update User\" : \"Create User\"}</div>\n <p className=\"solid-user-form-subtitle m-0\">\n {isEditMode\n ? \"Update account details, access roles, and security controls.\"\n : \"Create a user account and assign the right access roles.\"}\n </p>\n </div>\n </div>\n <div className=\"flex gap-4 flex-wrap\">\n {isEditMode && failedAttempts > 0 ? (\n <SolidButton size=\"small\" type=\"button\" variant=\"outline\" loading={isUserUpdating} onClick={handleUnblockUser}>\n Unblock User\n </SolidButton>\n ) : null}\n {formik.dirty ? (\n <SolidButton size=\"small\" type=\"submit\" loading={isSaving}>\n Save\n </SolidButton>\n ) : null}\n {data ? (\n <SolidButton\n size=\"small\"\n type=\"button\"\n variant=\"destructive\"\n loading={isUserDeleting}\n onClick={() => deleteUser(data.id)}\n >\n Delete\n </SolidButton>\n ) : null}\n <CancelButton />\n </div>\n </div>\n\n <SolidFormHeader />\n\n <div className=\"px-3 py-3 md:p-4 solid-form-content\">\n {isEditMode ? (\n <SolidTabGroup\n value={activeTab}\n onValueChange={setActiveTab}\n tabs={[\n {\n value: \"userDetails\",\n label: \"User Details\",\n content: (\n <UserDetailsContent\n formik={formik}\n fieldError={fieldError}\n selectedRoles={selectedRoles}\n handleCheckboxChange={handleCheckboxChange}\n isEditMode={isEditMode}\n />\n ),\n },\n {\n value: \"apiKeys\",\n label: \"API Keys\",\n content: (\n <div className=\"solid-user-edit-api-keys-pane\">\n <ApiKeysTab userId={data?.id} canCreate={data?.isAllowedToGenerateApiKeys ?? false} />\n </div>\n ),\n },\n ]}\n />\n ) : (\n <UserDetailsContent\n formik={formik}\n fieldError={fieldError}\n selectedRoles={selectedRoles}\n handleCheckboxChange={handleCheckboxChange}\n isEditMode={isEditMode}\n />\n )}\n </div>\n </form>\n </div>\n\n {newUserIdForApiKey !== null && (\n <GenerateApiKeyModal\n open={true}\n userId={newUserIdForApiKey}\n onClose={() => {\n setNewUserIdForApiKey(null);\n router.back();\n }}\n onCreated={(apiKey, keyName) => {\n setNewUserIdForApiKey(null);\n setRevealKey({ apiKey, keyName });\n }}\n />\n )}\n\n {revealKey && (\n <RevealApiKeyModal\n open={true}\n apiKey={revealKey.apiKey}\n keyName={revealKey.keyName}\n onClose={() => {\n setRevealKey(null);\n router.back();\n }}\n />\n )}\n </div>\n );\n};\n\n/** Extracted form body so it can be used both inside and outside the tab wrapper */\nfunction UserDetailsContent({\n formik,\n fieldError,\n selectedRoles,\n handleCheckboxChange,\n isEditMode,\n}: {\n formik: any;\n fieldError: (field: any) => string;\n selectedRoles: string[];\n handleCheckboxChange: (roleName: string) => void;\n isEditMode: boolean;\n}) {\n return (\n <div className=\"solid-user-details-layout\">\n <div className=\"solid-user-details-stack\">\n <SolidPanel header=\"Basic Info\" className=\"solid-column-panel\">\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"fullName\" className=\"form-field-label\">\n Full Name\n </label>\n <SolidInput\n type=\"text\"\n id=\"fullName\"\n name=\"fullName\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.fullName}\n className={cx(fieldError(\"fullName\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"fullName\") ? <SolidMessage severity=\"error\" text={fieldError(\"fullName\")} /> : null}\n </div>\n\n <div className=\"field flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"username\" className=\"form-field-label\">\n Username\n </label>\n <SolidInput\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete=\"off\"\n disabled={Boolean(formik.values.username) && isEditMode}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.username}\n className={cx(fieldError(\"username\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"username\") ? <SolidMessage severity=\"error\" text={fieldError(\"username\")} /> : null}\n </div>\n\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"email\" className=\"form-field-label\">\n Email\n </label>\n <SolidInput\n type=\"email\"\n id=\"email\"\n name=\"email\"\n autoComplete=\"off\"\n disabled={isEditMode}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.email}\n className={cx(fieldError(\"email\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"email\") ? <SolidMessage severity=\"error\" text={fieldError(\"email\")} /> : null}\n </div>\n\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"mobile\" className=\"form-field-label\">\n Mobile\n </label>\n <SolidInput\n type=\"text\"\n id=\"mobile\"\n name=\"mobile\"\n autoComplete=\"off\"\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n value={formik.values.mobile}\n className={cx(fieldError(\"mobile\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"mobile\") ? <SolidMessage severity=\"error\" text={fieldError(\"mobile\")} /> : null}\n </div>\n\n {!isEditMode ? (\n <>\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"password\" className=\"form-field-label\">\n Password\n </label>\n <SolidPasswordInput\n id=\"password\"\n name=\"password\"\n autoComplete=\"off\"\n value={formik.values.password}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n className={cx(fieldError(\"password\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"password\") ? <SolidMessage severity=\"error\" text={fieldError(\"password\")} /> : null}\n </div>\n\n <div className=\"field mt-4 flex w-full flex-col gap-2 px-2 pt-2 md:w-1/2\">\n <label htmlFor=\"confirmPassword\" className=\"form-field-label\">\n Confirm Password\n </label>\n <SolidPasswordInput\n id=\"confirmPassword\"\n name=\"confirmPassword\"\n autoComplete=\"off\"\n value={formik.values.confirmPassword}\n onChange={formik.handleChange}\n onBlur={formik.handleBlur}\n className={cx(fieldError(\"confirmPassword\") && \"solid-user-form-input-invalid\")}\n />\n {fieldError(\"confirmPassword\") ? (\n <SolidMessage severity=\"error\" text={fieldError(\"confirmPassword\")} />\n ) : null}\n </div>\n </>\n ) : null}\n </div>\n </SolidPanel>\n\n <SolidPanel toggleable header=\"Access\" className=\"solid-column-panel\">\n <div className=\"flex flex-wrap -mx-2 -mt-2 solid-user-access-grid\">\n {isEditMode ? (\n <div className=\"field w-full px-2 pt-2 solid-user-access-row\">\n <div className=\"solid-user-access-copy\">\n <p className=\"form-field-label m-0\">Active User</p>\n <p className=\"solid-user-section-helper m-0 mt-1\">\n Control whether this user account is active and allowed to sign in.\n </p>\n </div>\n <SolidSwitch\n checked={formik.values.active}\n onChange={(checked) => formik.setFieldValue(\"active\", checked)}\n />\n </div>\n ) : null}\n <div className=\"field w-full px-2 pt-2 solid-user-access-row\">\n <div className=\"solid-user-access-copy\">\n <p className=\"form-field-label m-0\">Allow API Key Generation</p>\n <p className=\"solid-user-section-helper m-0 mt-1\">\n When enabled, this user can generate API keys for programmatic access.\n </p>\n </div>\n <SolidSwitch\n checked={formik.values.isAllowedToGenerateApiKeys}\n onChange={(checked) => formik.setFieldValue(\"isAllowedToGenerateApiKeys\", checked)}\n />\n </div>\n </div>\n </SolidPanel>\n\n <SolidPanel toggleable header=\"Roles\" className=\"solid-column-panel\">\n <p className=\"solid-user-section-copy\">Select the roles that should be assigned to this user.</p>\n <RolesGroupedByModuleWidget\n selectedRoles={selectedRoles}\n onToggle={handleCheckboxChange}\n />\n </SolidPanel>\n </div>\n </div>\n );\n}\n\nexport default CreateUser;\n"]}
@@ -48,7 +48,6 @@ const CreateUser = ({ data, params }: any) => {
48
48
  updateUser,
49
49
  {
50
50
  isLoading: isUserUpdating,
51
- isSuccess: isUpdateUserSuccess,
52
51
  error: userUpdateError,
53
52
  },
54
53
  ] = useUpdateUserMutation();
@@ -114,7 +113,19 @@ const CreateUser = ({ data, params }: any) => {
114
113
  userData.password = values.password;
115
114
  }
116
115
 
117
- updateUser({ id: data.id, data: userData });
116
+ try {
117
+ await updateUser({ id: data.id, data: userData }).unwrap();
118
+ dispatch(
119
+ showToast({
120
+ severity: "success",
121
+ summary: ERROR_MESSAGES.FORM_UPDATE,
122
+ detail: ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY,
123
+ })
124
+ );
125
+ router.back();
126
+ } catch {
127
+ // error shown via userUpdateError effect
128
+ }
118
129
  return;
119
130
  }
120
131
 
@@ -175,10 +186,10 @@ const CreateUser = ({ data, params }: any) => {
175
186
  }, [dispatch, userCreateError, userUpdateError]);
176
187
 
177
188
  useEffect(() => {
178
- if (isDeleteUserSuccess || isUpdateUserSuccess) {
189
+ if (isDeleteUserSuccess) {
179
190
  router.back();
180
191
  }
181
- }, [isDeleteUserSuccess, isUpdateUserSuccess, router]);
192
+ }, [isDeleteUserSuccess, router]);
182
193
 
183
194
  const isEditMode = params.id !== "new";
184
195
  const isSaving = isLoading || isUserUpdating;
@@ -0,0 +1,3 @@
1
+ declare const DashboardHeader: () => import("react/jsx-runtime").JSX.Element;
2
+ export default DashboardHeader;
3
+ //# sourceMappingURL=DashboardHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardHeader.d.ts","sourceRoot":"","sources":["../../../src/components/layout/DashboardHeader.tsx"],"names":[],"mappings":"AAKA,QAAA,MAAM,eAAe,+CAuFpB,CAAA;AACD,eAAe,eAAe,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { SolidButton, SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from "../shad-cn-ui";
4
+ import { SolidIcon, parseSolidIconMeta } from "../shad-cn-ui/SolidIcon";
5
+ var DashboardHeader = function () {
6
+ var _a = useState(false), menuOpen = _a[0], setMenuOpen = _a[1];
7
+ var items = [
8
+ {
9
+ label: 'Refresh',
10
+ icon: 'pi pi-refresh'
11
+ },
12
+ {
13
+ label: 'Export',
14
+ icon: 'pi pi-upload'
15
+ }
16
+ ];
17
+ return (_jsxs("div", { className: "flex justify-content-between align-items-center px-5 surface-0 border-bottom-1 surface-border relative lg:static", style: { height: "60px" }, children: [_jsxs("div", { className: "flex align-items-center", children: [_jsx(SolidButton, { label: "New", size: "sm", type: "submit", className: "small-button" }), _jsxs(SolidPopover, { open: menuOpen, onOpenChange: setMenuOpen, children: [_jsx(SolidPopoverTrigger, { asChild: true, children: _jsx(SolidButton, { type: "button", icon: "pi pi-cog", variant: "ghost", size: "sm", className: "ml-2" }) }), _jsx(SolidPopoverContent, { side: "bottom", align: "start", className: "solid-form-actions-popover", children: _jsx("div", { className: "solid-row-actions-menu", children: items.map(function (item) { return (_jsxs("button", { type: "button", className: "solid-row-action-button", onClick: function () { return setMenuOpen(false); }, children: [(function () { var m = parseSolidIconMeta(item.icon); return m ? _jsx(SolidIcon, { name: m.name, spin: m.spin, className: "solid-row-action-button-icon" }) : _jsx("i", { className: "".concat(item.icon, " solid-row-action-button-icon") }); })(), _jsx("span", { className: "solid-row-action-button-label", children: item.label })] }, item.label)); }) }) })] })] }), _jsxs("div", { className: "flex align-items-center", children: [_jsx("div", { className: "bgCircle", children: _jsxs("div", { style: { position: "relative" }, children: [_jsx(SolidIcon, { name: "si-bell" }), _jsx("span", { className: "topbar-badge" })] }) }), _jsx("div", { className: "bgCircle ml-3", children: _jsxs("div", { style: { position: "relative" }, children: [_jsx(SolidIcon, { name: "si-envelope" }), _jsx("span", { className: "topbar-badge" })] }) }), _jsxs("div", { className: "topbar-profile", children: [_jsxs("button", { className: "topbar-profile-button p-link", type: "button", children: [_jsx("img", { alt: "avatar", src: "/images/dashboard/Ellipse 1.svg" }), _jsxs("span", { className: "profile-details", children: [_jsx("span", { className: "profile-name", children: "Gene Russell" }), _jsx("span", { className: "profile-email", children: "ben95@example.com" })] }), _jsx(SolidIcon, { name: "si-angle-down" })] }), _jsx("ul", { className: "list-none p-3 m-0 border-round shadow-2 absolute surface-overlay origin-top w-full sm:w-12rem mt-2 right-0 top-auto hidden", children: _jsxs("li", { children: [_jsxs("a", { className: "p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer", children: [_jsx(SolidIcon, { name: "si-user", className: "mr-3" }), _jsx("span", { children: "Profile" })] }), _jsxs("a", { className: "p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer", children: [_jsx(SolidIcon, { name: "si-inbox", className: "mr-3" }), _jsx("span", { children: "Inbox" })] }), _jsxs("a", { className: "p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer", children: [_jsx(SolidIcon, { name: "si-cog", className: "mr-3" }), _jsx("span", { children: "Settings" })] }), _jsxs("a", { className: "p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer", children: [_jsx(SolidIcon, { name: "si-power-off", className: "mr-3" }), _jsx("span", { children: "Sign Out" })] })] }) })] })] })] }));
18
+ };
19
+ export default DashboardHeader;
20
+ //# sourceMappingURL=DashboardHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardHeader.js","sourceRoot":"","sources":["../../../src/components/layout/DashboardHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useState } from \"react\";\nimport { SolidButton, SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from \"../shad-cn-ui\";\nimport { SolidIcon, parseSolidIconMeta } from \"../shad-cn-ui/SolidIcon\";\n\nconst DashboardHeader = () => {\n\n const [menuOpen, setMenuOpen] = useState(false);\n const items = [\n {\n label: 'Refresh',\n icon: 'pi pi-refresh'\n },\n {\n label: 'Export',\n icon: 'pi pi-upload'\n }\n ];\n\n return (\n <div className=\"flex justify-content-between align-items-center px-5 surface-0 border-bottom-1 surface-border relative lg:static\" style={{ height: \"60px\" }}>\n <div className=\"flex align-items-center\">\n <SolidButton label=\"New\" size=\"sm\" type=\"submit\" className=\"small-button\" />\n <SolidPopover open={menuOpen} onOpenChange={setMenuOpen}>\n <SolidPopoverTrigger asChild>\n <SolidButton\n type=\"button\"\n icon=\"pi pi-cog\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"ml-2\"\n />\n </SolidPopoverTrigger>\n <SolidPopoverContent side=\"bottom\" align=\"start\" className=\"solid-form-actions-popover\">\n <div className=\"solid-row-actions-menu\">\n {items.map((item) => (\n <button key={item.label} type=\"button\" className=\"solid-row-action-button\" onClick={() => setMenuOpen(false)}>\n {(() => { const m = parseSolidIconMeta(item.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-row-action-button-icon\" /> : <i className={`${item.icon} solid-row-action-button-icon`} />; })()}\n <span className=\"solid-row-action-button-label\">{item.label}</span>\n </button>\n ))}\n </div>\n </SolidPopoverContent>\n </SolidPopover>\n </div>\n <div className=\"flex align-items-center\">\n <div className=\"bgCircle\">\n <div style={{ position: \"relative\" }}>\n <SolidIcon name=\"si-bell\" />\n <span className=\"topbar-badge\">\n </span>\n </div>\n </div>\n <div className=\"bgCircle ml-3\">\n <div style={{ position: \"relative\" }}>\n <SolidIcon name=\"si-envelope\" />\n <span className=\"topbar-badge\">\n </span>\n </div>\n </div>\n <div className=\"topbar-profile\">\n <button className=\"topbar-profile-button p-link\" type=\"button\">\n <img alt=\"avatar\" src=\"/images/dashboard/Ellipse 1.svg\" />\n <span className=\"profile-details\">\n <span className=\"profile-name\">Gene Russell</span>\n <span className=\"profile-email\">ben95@example.com</span>\n </span>\n <SolidIcon name=\"si-angle-down\" />\n </button>\n <ul className=\"list-none p-3 m-0 border-round shadow-2 absolute surface-overlay origin-top w-full sm:w-12rem mt-2 right-0 top-auto hidden\">\n <li>\n <a className=\"p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer\">\n <SolidIcon name=\"si-user\" className=\"mr-3\" />\n <span>Profile</span>\n </a>\n <a className=\"p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer\">\n <SolidIcon name=\"si-inbox\" className=\"mr-3\" />\n <span>Inbox</span></a>\n <a className=\"p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer\">\n <SolidIcon name=\"si-cog\" className=\"mr-3\" />\n <span>Settings</span>\n </a>\n <a className=\"p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer\">\n <SolidIcon name=\"si-power-off\" className=\"mr-3\" />\n <span>Sign Out</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n );\n}\nexport default DashboardHeader;\n"]}