@solidxai/core-ui 0.1.8-beta.2 → 0.1.8-beta.21

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 (434) hide show
  1. package/dist/adapters/auth/getSession.d.ts.map +1 -1
  2. package/dist/adapters/auth/getSession.js +1 -1
  3. package/dist/adapters/auth/getSession.js.map +1 -1
  4. package/dist/adapters/auth/getSession.ts +1 -0
  5. package/dist/adapters/auth/helper.d.ts.map +1 -1
  6. package/dist/adapters/auth/helper.js +1 -0
  7. package/dist/adapters/auth/helper.js.map +1 -1
  8. package/dist/adapters/auth/helper.ts +3 -1
  9. package/dist/adapters/auth/signIn.d.ts.map +1 -1
  10. package/dist/adapters/auth/signIn.js +1 -0
  11. package/dist/adapters/auth/signIn.js.map +1 -1
  12. package/dist/adapters/auth/signIn.ts +3 -1
  13. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
  14. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  15. package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
  16. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  17. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
  18. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  19. package/dist/adapters/auth/signOut.js +7 -1
  20. package/dist/adapters/auth/signOut.js.map +1 -1
  21. package/dist/adapters/auth/signOut.ts +7 -1
  22. package/dist/adapters/auth/types.d.ts +1 -0
  23. package/dist/adapters/auth/types.d.ts.map +1 -1
  24. package/dist/adapters/auth/types.js.map +1 -1
  25. package/dist/adapters/auth/types.ts +1 -0
  26. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  27. package/dist/components/auth/AuthLayout.js +95 -38
  28. package/dist/components/auth/AuthLayout.js.map +1 -1
  29. package/dist/components/auth/AuthLayout.tsx +50 -39
  30. package/dist/components/auth/AuthSettingsContext.d.ts +10 -0
  31. package/dist/components/auth/AuthSettingsContext.d.ts.map +1 -0
  32. package/dist/components/auth/AuthSettingsContext.js +49 -0
  33. package/dist/components/auth/AuthSettingsContext.js.map +1 -0
  34. package/dist/components/auth/AuthSettingsContext.tsx +19 -0
  35. package/dist/components/auth/AuthTabs.d.ts.map +1 -1
  36. package/dist/components/auth/AuthTabs.js +9 -9
  37. package/dist/components/auth/AuthTabs.js.map +1 -1
  38. package/dist/components/auth/AuthTabs.tsx +14 -15
  39. package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
  40. package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
  41. package/dist/components/auth/FacebookAuthChecking.js +103 -0
  42. package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
  43. package/dist/components/auth/FacebookAuthChecking.tsx +64 -0
  44. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  45. package/dist/components/auth/ForgotPasswordThankYou.js +2 -6
  46. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  47. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -7
  48. package/dist/components/auth/GoogleAuthChecking.js +0 -1
  49. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  50. package/dist/components/auth/GoogleAuthChecking.tsx +1 -1
  51. package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
  52. package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
  53. package/dist/components/auth/MicrosoftAuthChecking.js +103 -0
  54. package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
  55. package/dist/components/auth/MicrosoftAuthChecking.tsx +64 -0
  56. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  57. package/dist/components/auth/SolidForgotPassword.js +3 -7
  58. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  59. package/dist/components/auth/SolidForgotPassword.tsx +3 -7
  60. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  61. package/dist/components/auth/SolidInitialLoginOtp.js +4 -8
  62. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  63. package/dist/components/auth/SolidInitialLoginOtp.tsx +3 -6
  64. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  65. package/dist/components/auth/SolidInitiateRegisterOtp.js +27 -14
  66. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  67. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +27 -15
  68. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  69. package/dist/components/auth/SolidLogin.js +11 -11
  70. package/dist/components/auth/SolidLogin.js.map +1 -1
  71. package/dist/components/auth/SolidLogin.tsx +20 -9
  72. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  73. package/dist/components/auth/SolidRegister.js +53 -25
  74. package/dist/components/auth/SolidRegister.js.map +1 -1
  75. package/dist/components/auth/SolidRegister.tsx +107 -40
  76. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  77. package/dist/components/auth/SolidResetPassword.js +2 -6
  78. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  79. package/dist/components/auth/SolidResetPassword.tsx +2 -6
  80. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  81. package/dist/components/common/GeneralSettings.js +235 -156
  82. package/dist/components/common/GeneralSettings.js.map +1 -1
  83. package/dist/components/common/GeneralSettings.tsx +1109 -795
  84. package/dist/components/common/SettingsComponent.d.ts +2 -0
  85. package/dist/components/common/SettingsComponent.d.ts.map +1 -0
  86. package/dist/components/common/SettingsComponent.js +351 -0
  87. package/dist/components/common/SettingsComponent.js.map +1 -0
  88. package/dist/components/common/SettingsComponent.module.css +421 -0
  89. package/dist/components/common/SettingsComponent.tsx +582 -0
  90. package/dist/components/common/SocialMediaLogin.d.ts +8 -1
  91. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  92. package/dist/components/common/SocialMediaLogin.js +6 -13
  93. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  94. package/dist/components/common/SocialMediaLogin.tsx +120 -58
  95. package/dist/components/common/SolidAdmin.js +1 -1
  96. package/dist/components/common/SolidAdmin.js.map +1 -1
  97. package/dist/components/common/SolidAdmin.tsx +1 -1
  98. package/dist/components/common/SolidExport.d.ts.map +1 -1
  99. package/dist/components/common/SolidExport.js +1 -1
  100. package/dist/components/common/SolidExport.js.map +1 -1
  101. package/dist/components/common/SolidExport.tsx +2 -1
  102. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  103. package/dist/components/common/SolidFormStepper.js +2 -1
  104. package/dist/components/common/SolidFormStepper.js.map +1 -1
  105. package/dist/components/common/SolidFormStepper.tsx +2 -1
  106. package/dist/components/common/SolidThemeProvider.d.ts.map +1 -1
  107. package/dist/components/common/SolidThemeProvider.js +5 -21
  108. package/dist/components/common/SolidThemeProvider.js.map +1 -1
  109. package/dist/components/common/SolidThemeProvider.tsx +6 -24
  110. package/dist/components/common/solid-export.css +26 -0
  111. package/dist/components/common/solidModuleHome.module.css +1 -2
  112. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  113. package/dist/components/core/card/SolidCardView.js +24 -25
  114. package/dist/components/core/card/SolidCardView.js.map +1 -1
  115. package/dist/components/core/card/SolidCardView.tsx +23 -28
  116. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  117. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  118. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  119. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  120. package/dist/components/core/chatter/SolidChatter.js +39 -9
  121. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  122. package/dist/components/core/chatter/SolidChatter.tsx +42 -7
  123. package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
  124. package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
  125. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  126. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
  127. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
  128. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  129. package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
  130. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  131. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
  132. package/dist/components/core/chatter/chatter.module.css +3 -6
  133. package/dist/components/core/common/PDFViewer.js +1 -1
  134. package/dist/components/core/common/PDFViewer.js.map +1 -1
  135. package/dist/components/core/common/PDFViewer.tsx +2 -2
  136. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  137. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
  138. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  139. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +1 -1
  140. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
  141. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  142. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
  143. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  144. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
  145. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +3 -4
  146. package/dist/components/core/common/dndCompat.d.ts +8 -0
  147. package/dist/components/core/common/dndCompat.d.ts.map +1 -0
  148. package/dist/components/core/common/dndCompat.js +5 -0
  149. package/dist/components/core/common/dndCompat.js.map +1 -0
  150. package/dist/components/core/common/dndCompat.ts +9 -0
  151. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +2 -2
  152. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -1
  153. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +2 -2
  154. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +2 -2
  155. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -1
  156. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +2 -2
  157. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js +1 -1
  158. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -1
  159. package/dist/components/core/extension/solid-core/chatterMessage/form/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +1 -1
  160. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js +1 -1
  161. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -1
  162. package/dist/components/core/extension/solid-core/chatterMessage/list/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +1 -1
  163. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js +1 -1
  164. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.js.map +1 -1
  165. package/dist/components/core/extension/solid-core/mqMessage/list/SolidMqMessagesSummarizeListHeaderAction.tsx +1 -1
  166. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js +1 -1
  167. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.js.map +1 -1
  168. package/dist/components/core/extension/solid-core/mqMessage/ui/MqMessageStageBadge.tsx +1 -1
  169. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts +7 -0
  170. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts.map +1 -0
  171. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js +75 -0
  172. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js.map +1 -0
  173. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.ts +45 -0
  174. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
  175. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
  176. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
  177. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
  178. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
  179. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  180. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  181. package/dist/components/core/form/SolidFormActionHeader.js +5 -3
  182. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  183. package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
  184. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  185. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  186. package/dist/components/core/form/SolidFormLayouts.tsx +1 -1
  187. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  188. package/dist/components/core/form/SolidFormView.js +141 -50
  189. package/dist/components/core/form/SolidFormView.js.map +1 -1
  190. package/dist/components/core/form/SolidFormView.tsx +123 -25
  191. package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
  192. package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
  193. package/dist/components/core/form/fields/SolidComputedField.js +128 -0
  194. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
  195. package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
  196. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  197. package/dist/components/core/form/fields/SolidDateTimeField.js +8 -2
  198. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  199. package/dist/components/core/form/fields/SolidDateTimeField.tsx +8 -2
  200. package/dist/components/core/form/fields/SolidEmailField.d.ts.map +1 -1
  201. package/dist/components/core/form/fields/SolidEmailField.js +5 -4
  202. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  203. package/dist/components/core/form/fields/SolidEmailField.tsx +17 -15
  204. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  205. package/dist/components/core/form/fields/SolidIntegerField.js +5 -4
  206. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  207. package/dist/components/core/form/fields/SolidIntegerField.tsx +3 -1
  208. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  209. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +35 -24
  210. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  211. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +30 -14
  212. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  213. package/dist/components/core/form/fields/SolidSelectionStaticField.js +29 -28
  214. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  215. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +17 -12
  216. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  217. package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
  218. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  219. package/dist/components/core/form/fields/SolidShortTextField.tsx +7 -1
  220. package/dist/components/core/form/fields/SolidTimeField.js +1 -1
  221. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  222. package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
  223. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
  224. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +3 -3
  225. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  226. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +0 -5
  227. package/dist/components/core/form/fields/solidFields.module.css +0 -3
  228. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts +1 -1
  229. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  230. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  231. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +1 -1
  232. package/dist/components/core/kanban/KanbanBoard.js +1 -1
  233. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  234. package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
  235. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  236. package/dist/components/core/kanban/KanbanCard.js +2 -2
  237. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  238. package/dist/components/core/kanban/KanbanCard.tsx +4 -3
  239. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  240. package/dist/components/core/kanban/KanbanColumn.js +3 -3
  241. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  242. package/dist/components/core/kanban/KanbanColumn.tsx +5 -4
  243. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  244. package/dist/components/core/kanban/SolidKanbanView.js +220 -109
  245. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  246. package/dist/components/core/kanban/SolidKanbanView.tsx +219 -96
  247. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  248. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  249. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  250. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  251. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +4 -3
  252. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  253. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +13 -12
  254. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  255. package/dist/components/core/list/SolidDataTable.js +6 -5
  256. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  257. package/dist/components/core/list/SolidDataTable.tsx +6 -5
  258. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  259. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -3
  260. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  261. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +7 -4
  262. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  263. package/dist/components/core/list/SolidListView.js +64 -74
  264. package/dist/components/core/list/SolidListView.js.map +1 -1
  265. package/dist/components/core/list/SolidListView.tsx +72 -97
  266. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  267. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  268. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  269. package/dist/components/core/list/SolidListViewRowActionsMenu.js +2 -2
  270. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  271. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +2 -2
  272. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +1 -1
  273. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  274. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +1 -1
  275. package/dist/components/core/solid-ai/SolidAiChat.module.css +3 -3
  276. package/dist/components/core/tree/SolidTreeView.js +1 -1
  277. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  278. package/dist/components/core/tree/SolidTreeView.tsx +1 -1
  279. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +283 -9
  280. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
  281. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +35 -28
  282. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
  283. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +64 -62
  284. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
  285. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
  286. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +4 -4
  287. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
  288. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +17 -10
  289. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -1
  290. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +2 -19
  291. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -1
  292. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +24 -43
  293. package/dist/components/core/users/CreateUser.css +114 -0
  294. package/dist/components/core/users/CreateUser.d.ts +1 -0
  295. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  296. package/dist/components/core/users/CreateUser.js +4 -3
  297. package/dist/components/core/users/CreateUser.js.map +1 -1
  298. package/dist/components/core/users/CreateUser.tsx +32 -26
  299. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  300. package/dist/components/layout/AdminTopHeader.js +25 -1
  301. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  302. package/dist/components/layout/AdminTopHeader.tsx +38 -1
  303. package/dist/components/layout/context/layoutcontext.js +2 -2
  304. package/dist/components/layout/context/layoutcontext.js.map +1 -1
  305. package/dist/components/layout/context/layoutcontext.tsx +2 -2
  306. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  307. package/dist/components/layout/user-profile-menu.js +15 -14
  308. package/dist/components/layout/user-profile-menu.js.map +1 -1
  309. package/dist/components/layout/user-profile-menu.tsx +8 -6
  310. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  311. package/dist/components/shad-cn-ui/SolidAutocomplete.js +9 -1
  312. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  313. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +10 -1
  314. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts +6 -1
  315. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts.map +1 -1
  316. package/dist/components/shad-cn-ui/SolidConfirmDialog.js +3 -3
  317. package/dist/components/shad-cn-ui/SolidConfirmDialog.js.map +1 -1
  318. package/dist/components/shad-cn-ui/SolidConfirmDialog.tsx +15 -3
  319. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  320. package/dist/components/shad-cn-ui/SolidDatePicker.js +12 -2
  321. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  322. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +13 -2
  323. package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
  324. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  325. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  326. package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
  327. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  328. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  329. package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
  330. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  331. package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
  332. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
  333. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
  334. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
  335. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
  336. package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
  337. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  338. package/dist/components/shad-cn-ui/SolidTabs.js +6 -3
  339. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  340. package/dist/components/shad-cn-ui/SolidTabs.tsx +63 -26
  341. package/dist/helpers/hydrateRelationRules.js +1 -1
  342. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  343. package/dist/helpers/hydrateRelationRules.ts +1 -1
  344. package/dist/helpers/permissions.js +2 -2
  345. package/dist/helpers/permissions.js.map +1 -1
  346. package/dist/helpers/permissions.ts +2 -2
  347. package/dist/helpers/registry.d.ts +2 -2
  348. package/dist/helpers/registry.d.ts.map +1 -1
  349. package/dist/helpers/registry.js +6 -0
  350. package/dist/helpers/registry.js.map +1 -1
  351. package/dist/helpers/registry.ts +9 -2
  352. package/dist/helpers/settingsPayload.d.ts +32 -0
  353. package/dist/helpers/settingsPayload.d.ts.map +1 -0
  354. package/dist/helpers/settingsPayload.js +72 -0
  355. package/dist/helpers/settingsPayload.js.map +1 -0
  356. package/dist/helpers/settingsPayload.ts +125 -0
  357. package/dist/index.d.ts +4 -0
  358. package/dist/index.d.ts.map +1 -1
  359. package/dist/index.js +4 -0
  360. package/dist/index.js.map +1 -1
  361. package/dist/index.ts +4 -0
  362. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  363. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  364. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  365. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  366. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  367. package/dist/redux/api/solidEntityApi.js +1 -1
  368. package/dist/redux/api/solidEntityApi.js.map +1 -1
  369. package/dist/redux/api/solidEntityApi.tsx +1 -1
  370. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  371. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  372. package/dist/resources/globals.css +114 -90
  373. package/dist/resources/images/Background.svg +3 -5
  374. package/dist/resources/images/Navigation/SolidSettinsIcon.svg +3 -5
  375. package/dist/resources/images/errors/error.svg +12 -14
  376. package/dist/resources/shadcn-base.css +356 -429
  377. package/dist/resources/solid-responsive.css +22 -4
  378. package/dist/resources/themes/solid-dark-purple/theme.css +23 -33
  379. package/dist/resources/themes/solid-light-purple/theme.css +31 -31
  380. package/dist/routes/AppEventListener.js +1 -1
  381. package/dist/routes/AppEventListener.js.map +1 -1
  382. package/dist/routes/AppEventListener.tsx +1 -1
  383. package/dist/routes/SolidLayoutRegistry.d.ts.map +1 -1
  384. package/dist/routes/SolidLayoutRegistry.js +3 -1
  385. package/dist/routes/SolidLayoutRegistry.js.map +1 -1
  386. package/dist/routes/SolidLayoutRegistry.tsx +3 -1
  387. package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
  388. package/dist/routes/guards/AuthGuard.js +4 -1
  389. package/dist/routes/guards/AuthGuard.js.map +1 -1
  390. package/dist/routes/guards/AuthGuard.tsx +6 -1
  391. package/dist/routes/pages/admin/core/CardPage.js +1 -1
  392. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  393. package/dist/routes/pages/admin/core/CardPage.tsx +1 -1
  394. package/dist/routes/pages/admin/core/FormPage.js +1 -1
  395. package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
  396. package/dist/routes/pages/admin/core/FormPage.tsx +1 -1
  397. package/dist/routes/pages/admin/core/KanbanPage.js +1 -1
  398. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  399. package/dist/routes/pages/admin/core/KanbanPage.tsx +1 -1
  400. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  401. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  402. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  403. package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
  404. package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
  405. package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
  406. package/dist/routes/pages/admin/core/TreePage.js +1 -1
  407. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  408. package/dist/routes/pages/admin/core/TreePage.tsx +1 -1
  409. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
  410. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
  411. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
  412. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
  413. package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
  414. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
  415. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
  416. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
  417. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
  418. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
  419. package/dist/routes/solidRoutes.d.ts.map +1 -1
  420. package/dist/routes/solidRoutes.js +5 -1
  421. package/dist/routes/solidRoutes.js.map +1 -1
  422. package/dist/routes/solidRoutes.tsx +5 -1
  423. package/dist/routes/types.d.ts +1 -1
  424. package/dist/routes/types.d.ts.map +1 -1
  425. package/dist/routes/types.js.map +1 -1
  426. package/dist/routes/types.ts +2 -0
  427. package/dist/types/extension-registry.d.ts +1 -0
  428. package/dist/types/extension-registry.d.ts.map +1 -1
  429. package/dist/types/extension-registry.js +1 -0
  430. package/dist/types/extension-registry.js.map +1 -1
  431. package/dist/types/extension-registry.ts +1 -0
  432. package/dist/types/index.d.ts +2 -0
  433. package/dist/types/solid-core.d.ts +11 -0
  434. package/package.json +1 -2
@@ -25,19 +25,21 @@ import { getMediaTypeFromUrl } from "../../../helpers/mediaType";
25
25
  import { showToast } from "../../../redux/features/toastSlice";
26
26
  import { usePathname } from "../../../hooks/usePathname";
27
27
  import { useSearchParams } from "../../../hooks/useSearchParams";
28
+ import { solidGet } from "../../../http/solidHttp";
28
29
  import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus";
29
30
  import {
30
31
  SolidButton,
32
+ SolidConfirmDialog,
31
33
  SolidDialog,
32
34
  SolidDialogBody,
33
35
  SolidDialogClose,
34
- SolidDialogFooter,
35
36
  SolidDialogHeader,
36
37
  SolidDialogSeparator,
37
38
  SolidDialogTitle,
38
39
  SolidIcon,
39
40
  } from "../../shad-cn-ui";
40
41
  import { FilterMatchMode } from "../filter/filterMatchMode";
42
+ import { kebabCase } from "lodash";
41
43
 
42
44
  type SolidKanbanViewParams = {
43
45
  moduleName: string;
@@ -45,6 +47,70 @@ type SolidKanbanViewParams = {
45
47
  embeded: boolean;
46
48
  };
47
49
 
50
+ type KanbanSwimlaneDefinition = {
51
+ value: string;
52
+ label: string;
53
+ };
54
+
55
+ const getKanbanSortParam = (sortValue?: string) => {
56
+ if (!sortValue) {
57
+ return "id:asc";
58
+ }
59
+
60
+ return sortValue.includes(":") ? sortValue : `${sortValue}:asc`;
61
+ };
62
+
63
+ const createEmptyKanbanGroup = (
64
+ definition: KanbanSwimlaneDefinition,
65
+ recordsInSwimlane: number
66
+ ) => ({
67
+ groupName: definition.value,
68
+ groupLabel: definition.label,
69
+ groupData: {
70
+ records: [],
71
+ meta: {
72
+ totalRecords: 0,
73
+ perPage: recordsInSwimlane,
74
+ currentPage: 1,
75
+ prevPage: null,
76
+ nextPage: null,
77
+ },
78
+ },
79
+ });
80
+
81
+ const mergeKanbanGroupsWithDefinitions = (
82
+ groupRecords: any[],
83
+ swimlaneDefinitions: KanbanSwimlaneDefinition[],
84
+ recordsInSwimlane: number
85
+ ) => {
86
+ if (!swimlaneDefinitions.length) {
87
+ return groupRecords;
88
+ }
89
+
90
+ const groupMap = new Map(
91
+ (groupRecords || []).map((group: any) => [
92
+ String(group?.groupName),
93
+ {
94
+ ...group,
95
+ groupName: String(group?.groupName ?? ""),
96
+ },
97
+ ])
98
+ );
99
+
100
+ return swimlaneDefinitions.map((definition) => {
101
+ const existingGroup = groupMap.get(definition.value);
102
+ if (existingGroup) {
103
+ return {
104
+ ...existingGroup,
105
+ groupName: definition.value,
106
+ groupLabel: definition.label,
107
+ };
108
+ }
109
+
110
+ return createEmptyKanbanGroup(definition, recordsInSwimlane);
111
+ });
112
+ };
113
+
48
114
 
49
115
  export const SolidKanbanView = (params: SolidKanbanViewParams) => {
50
116
 
@@ -74,6 +140,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
74
140
  const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);
75
141
  const [filterQueryString, setFilterQueryString] = useState<any>();
76
142
  const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);
143
+ const [swimlaneDefinitions, setSwimlaneDefinitions] = useState<KanbanSwimlaneDefinition[]>([]);
77
144
  const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)
78
145
  ? lightboxUrls
79
146
  .map((item: any) => {
@@ -161,10 +228,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
161
228
  );
162
229
  const [kanbanViewMetaData, setKanbanViewMetaData] = useState<any>({});
163
230
 
164
- const {
165
- data: solidKanbanViewMetaData } = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);
166
-
167
-
231
+ const { data: solidKanbanViewMetaData } = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);
168
232
 
169
233
  const initialFilterMethod = () => {
170
234
 
@@ -278,6 +342,8 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
278
342
  const [queryDataLoaded, setQueryDataLoaded] = useState(false);
279
343
  const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);
280
344
  const [maxSwimLanesCount, setMaxSwimLanesCount] = useState<number>(0);
345
+ const [rawKanbanGroupRecords, setRawKanbanGroupRecords] = useState<any[]>([]);
346
+ const [serverSwimLaneCount, setServerSwimLaneCount] = useState<number>(0);
281
347
  const pathname = usePathname();
282
348
  // @ts-ignore
283
349
  const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || "form");
@@ -303,29 +369,33 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
303
369
  // After data is fetched populate the kanban view state so as to be able to render the data.
304
370
  useEffect(() => {
305
371
  if (solidEntityKanbanViewData) {
306
- // Merge groupRecords by groupName: update existing, add new
307
- setMaxSwimLanesCount(solidEntityKanbanViewData?.meta?.totalRecords || 0);
308
- const groupRecords = solidEntityKanbanViewData?.groupRecords || [];
309
- const groupMap = new Map((kanbanViewData || []).map((g: any) => [g.groupName, g]));
310
- groupRecords.forEach((newGroup: any) => {
311
- groupMap.set(newGroup.groupName, newGroup);
312
- });
313
- const latestKanbanGroupData = Array.from(groupMap.values());
314
- setKanbanViewData(latestKanbanGroupData);
315
- const loadmoredata = Object.entries(latestKanbanGroupData).reduce((acc: any, [, value]: any) => {
316
- acc[value.groupName] = {
317
- offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,
318
- limit: value.groupData.meta.perPage,
319
- count: value.groupData.meta.totalRecords
320
- };
321
- return acc;
322
- }, {});
323
-
324
- setKanbanLoadMoreData(loadmoredata)
372
+ setServerSwimLaneCount(solidEntityKanbanViewData?.meta?.totalRecords || 0);
373
+ setRawKanbanGroupRecords(solidEntityKanbanViewData?.groupRecords || []);
325
374
  setLoading(false);
326
375
  }
327
376
  }, [solidEntityKanbanViewData]);
328
377
 
378
+ useEffect(() => {
379
+ const mergedKanbanGroupData = mergeKanbanGroupsWithDefinitions(
380
+ rawKanbanGroupRecords,
381
+ swimlaneDefinitions,
382
+ recordsInSwimlane
383
+ );
384
+ setKanbanViewData(mergedKanbanGroupData);
385
+ setMaxSwimLanesCount(swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : serverSwimLaneCount);
386
+
387
+ const loadmoredata = Object.entries(mergedKanbanGroupData).reduce((acc: any, [, value]: any) => {
388
+ acc[value.groupName] = {
389
+ offset: ((value.groupData?.meta?.currentPage || 1) - 1) * (value.groupData?.meta?.perPage || recordsInSwimlane),
390
+ limit: value.groupData?.meta?.perPage || recordsInSwimlane,
391
+ count: value.groupData?.meta?.totalRecords || 0
392
+ };
393
+ return acc;
394
+ }, {});
395
+
396
+ setKanbanLoadMoreData(loadmoredata);
397
+ }, [rawKanbanGroupRecords, recordsInSwimlane, serverSwimLaneCount, swimlaneDefinitions]);
398
+
329
399
  useEffect(() => {
330
400
  if (solidKanbanViewMetaData) {
331
401
  const kanbanViewLayoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs;
@@ -356,12 +426,74 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
356
426
  }
357
427
  }, [solidKanbanViewMetaData])
358
428
 
429
+ useEffect(() => {
430
+ const loadSwimlaneDefinitions = async () => {
431
+ const fieldMeta = solidKanbanViewMetaData?.data?.solidFieldsMetadata?.[groupByFieldName];
432
+ const layoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs || {};
433
+
434
+ if (!groupByFieldName || !fieldMeta) {
435
+ setSwimlaneDefinitions([]);
436
+ return;
437
+ }
438
+
439
+ if (fieldMeta.type === "selectionStatic" && Array.isArray(fieldMeta.selectionStaticValues)) {
440
+ const staticDefinitions = fieldMeta.selectionStaticValues
441
+ .map((item: string) => {
442
+ const [rawValue, rawLabel] = String(item).split(":");
443
+ const value = (rawValue ?? "").trim();
444
+ const label = (rawLabel ?? rawValue ?? "").trim();
445
+ return { value, label };
446
+ })
447
+ .filter((item: KanbanSwimlaneDefinition) => item.value !== "");
448
+
449
+ setSwimlaneDefinitions(staticDefinitions);
450
+ return;
451
+ }
452
+
453
+ if (
454
+ fieldMeta.type === "relation" &&
455
+ fieldMeta.relationType === "many-to-one" &&
456
+ fieldMeta.relationCoModelSingularName
457
+ ) {
458
+ try {
459
+ const orderBy = getKanbanSortParam(layoutAttrs.swimlanesOrderBy);
460
+ const relationUserKeyField = fieldMeta?.relationModel?.userKeyField?.name || "id";
461
+ const response = await solidGet(`/${kebabCase(fieldMeta.relationCoModelSingularName)}`, {
462
+ params: {
463
+ offset: 0,
464
+ limit: 100,
465
+ sort: [orderBy],
466
+ },
467
+ });
468
+
469
+ const records = response?.data?.data?.records || [];
470
+ const relationDefinitions = records
471
+ .map((record: any) => ({
472
+ value: String(record?.id ?? ""),
473
+ label: String(record?.[relationUserKeyField] ?? record?.id ?? ""),
474
+ }))
475
+ .filter((item: KanbanSwimlaneDefinition) => item.value !== "");
476
+
477
+ setSwimlaneDefinitions(relationDefinitions);
478
+ return;
479
+ } catch (error) {
480
+ console.error(ERROR_MESSAGES.API_ERROR, error);
481
+ }
482
+ }
483
+
484
+ setSwimlaneDefinitions([]);
485
+ };
486
+
487
+ loadSwimlaneDefinitions();
488
+ }, [groupByFieldName, solidKanbanViewMetaData])
489
+
359
490
  // Fetch data after toPopulate has been populated...
360
491
  useEffect(() => {
361
492
 
362
493
  if (solidKanbanViewMetaData) {
363
494
 
364
495
  const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
496
+ const resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;
365
497
  if (groupByFieldName) {
366
498
 
367
499
  const queryObject = getFilterObjectFromLocalStorage();
@@ -387,7 +519,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
387
519
 
388
520
  const queryData = {
389
521
  offset: 0,
390
- limit: Number(queryObject.limit) + Number(queryObject.offset),
522
+ limit: swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : Number(queryObject.limit) + Number(queryObject.offset),
391
523
  // fields: queryObject.fields || [`${groupByFieldName}`, `count(${groupByFieldName})`],
392
524
  groupBy: queryObject.groupBy || groupByFieldName,
393
525
  // @ts-ignore
@@ -421,7 +553,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
421
553
  const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();
422
554
  const queryData = {
423
555
  offset: 0,
424
- limit: swimlanesCount,
556
+ limit: resolvedSwimlanesCount,
425
557
  // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
426
558
  groupBy: groupByFieldName,
427
559
  populateMedia: toPopulateMedia,
@@ -451,7 +583,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
451
583
  setSelectedRecords([]);
452
584
  }
453
585
  }
454
- }, [isDeleteSolidEntitiesSucess, groupByFieldName, solidKanbanViewMetaData]);
586
+ }, [groupByFieldName, isDeleteSolidEntitiesSucess, solidKanbanViewMetaData, swimlaneDefinitions]);
455
587
 
456
588
  // clickable link allowing one to open the detail / form view.
457
589
 
@@ -530,15 +662,15 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
530
662
 
531
663
  const updatedData = mergeData(kanbanViewData, newRecords, groupByField);
532
664
  setKanbanViewData(updatedData);
533
- const loadmoredata = Object.entries(updatedData).reduce((acc: any, [, value]: any) => {
534
- acc[value.groupName] = {
535
- offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,
536
- limit: value.groupData.meta.perPage,
537
- count: value.groupData.meta.totalRecords
538
- };
539
- return acc;
540
- }, {});
541
- setKanbanLoadMoreData(loadmoredata)
665
+ setRawKanbanGroupRecords((previousGroups: any[]) => {
666
+ const existingGroups = Array.isArray(previousGroups) ? previousGroups : [];
667
+ return updatedData
668
+ .filter((group: any) => (group.groupData?.meta?.totalRecords || 0) > 0)
669
+ .map((group: any) => {
670
+ const existingGroup = existingGroups.find((item: any) => String(item.groupName) === String(group.groupName));
671
+ return existingGroup ? { ...existingGroup, ...group } : group;
672
+ });
673
+ })
542
674
 
543
675
  } catch (error) {
544
676
  console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error);
@@ -596,7 +728,9 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
596
728
  const [movedItem] = sourceRecords.splice(source.index, 1);
597
729
 
598
730
  // Create a mutable copy of the moved item
599
- const updatedItem = { ...movedItem, status: destinationGroupName };
731
+ const updatedItem = groupByFieldName
732
+ ? { ...movedItem, [groupByFieldName]: destinationGroupName }
733
+ : movedItem;
600
734
 
601
735
  // Add the updated item to the destination
602
736
  destinationRecords.splice(destination.index, 0, updatedItem);
@@ -646,9 +780,10 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
646
780
  if (solidKanbanViewMetaData) {
647
781
 
648
782
  const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
783
+ const resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;
649
784
  const queryData = {
650
785
  offset: swimLaneCurrentPageNumber * swimlanesCount,
651
- limit: swimlanesCount,
786
+ limit: resolvedSwimlanesCount,
652
787
  // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
653
788
  groupBy: groupByFieldName,
654
789
  populateMedia: toPopulateMedia,
@@ -671,8 +806,13 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
671
806
 
672
807
  const data: any = await triggerGetSolidEntities(queryString);
673
808
  if (data && data?.data?.groupRecords.length > 0) {
674
- const updatedData = [...kanbanViewData, ...data.data.groupRecords];
675
- setKanbanViewData(updatedData);
809
+ setRawKanbanGroupRecords((previousGroups: any[]) => {
810
+ const groupMap = new Map((previousGroups || []).map((group: any) => [String(group.groupName), group]));
811
+ data.data.groupRecords.forEach((group: any) => {
812
+ groupMap.set(String(group.groupName), group);
813
+ });
814
+ return Array.from(groupMap.values());
815
+ });
676
816
  }
677
817
  setSwimLaneCurrentPageNumber(swimLaneCurrentPageNumber + 1)
678
818
  }
@@ -713,11 +853,12 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
713
853
 
714
854
 
715
855
  const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
856
+ const resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;
716
857
  // const { toPopulate, toPopulateMedia } = initialFilterMethod();
717
858
 
718
859
  const queryData = {
719
860
  offset: 0,
720
- limit: swimlanesCount,
861
+ limit: resolvedSwimlanesCount,
721
862
  // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
722
863
  groupBy: groupByFieldName,
723
864
  populateMedia: toPopulateMedia,
@@ -756,8 +897,9 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
756
897
  // Update the kanban view data with the new data based on filter
757
898
  setSwimLaneCurrentPageNumber(1);
758
899
  if (data && data?.data?.groupRecords.length > 0) {
759
- const updatedData = [...data.data.groupRecords];
760
- setKanbanViewData(updatedData);
900
+ setRawKanbanGroupRecords([...data.data.groupRecords]);
901
+ } else {
902
+ setRawKanbanGroupRecords([]);
761
903
  }
762
904
  setSelectedRecords([]);
763
905
 
@@ -780,15 +922,8 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
780
922
  }, [solidKanbanViewMetaData])
781
923
 
782
924
  const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName
783
- const headerRequestStatusLabel =
784
- isDeleteSolidEntitiesLoading
785
- ? "Deleting..."
786
- : isPatchKanbanViewLoading
787
- ? "Updating..."
788
- : loading || !queryDataLoaded
789
- ? "Loading..."
790
- : null;
791
-
925
+ const entityDisplayName = solidKanbanViewMetaData?.data?.solidView?.model?.displayName || params.modelName;
926
+ const headerRequestStatusLabel = isDeleteSolidEntitiesLoading ? "Deleting..." : isPatchKanbanViewLoading ? "Updating..." : loading || !queryDataLoaded ? "Loading..." : null;
792
927
 
793
928
  const toggleBothSidebars = () => {
794
929
  if (visibleNavbar) {
@@ -798,12 +933,14 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
798
933
  }
799
934
  };
800
935
 
936
+ console.log(`Logging kanban data: `, solidKanbanViewMetaData);
937
+
801
938
  return (
802
939
  <div className="page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden">
803
940
  <div className="solid-list-content h-full flex flex-column flex-grow-1">
804
941
  <div className="solid-list-surface solid-kanban-surface flex flex-column flex-1 min-h-0">
805
942
  <div className="page-header solid-list-toolbar solid-kanban-toolbar flex-column lg:flex-row">
806
- <div className="flex justify-content-between w-full solid-list-toolbar-row">
943
+ <div className="flex justify-content-between w-full">
807
944
  <div className="flex gap-3 align-items-center w-full solid-list-toolbar-left">
808
945
  {params.embeded !== true &&
809
946
  <div className="apps-icon block md:hidden cursor-pointer" onClick={toggleBothSidebars}>
@@ -812,28 +949,25 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
812
949
  }
813
950
 
814
951
  <p className="m-0 view-title solid-text-wrapper">{kanbanViewTitle}</p>
815
- {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&
816
- <div className="hidden lg:flex">
817
- <SolidGlobalSearchElement viewType="kanban" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
818
- </div>
819
- }
952
+ <div className="hidden lg:flex">
953
+ {/* Keep global search mounted for now because kanban bootstrap/filter hydration still flows through this element. */}
954
+ <SolidGlobalSearchElement viewType="kanban" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
955
+ </div>
820
956
  </div>
821
957
 
822
958
  <div className="flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions">
823
959
  <SolidHeaderRequestStatus label={headerRequestStatusLabel} />
824
- {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&
825
- <div className="flex lg:hidden">
826
- <SolidButton
827
- type="button"
828
- variant="outline"
829
- size="sm"
830
- className="solid-icon-button"
831
- onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}
832
- aria-label="Toggle search"
833
- leftIcon={<SolidIcon name="si-search" aria-hidden />}
834
- />
835
- </div>
836
- }
960
+ <div className="flex lg:hidden">
961
+ <SolidButton
962
+ type="button"
963
+ variant="outline"
964
+ size="sm"
965
+ className="solid-icon-button"
966
+ onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}
967
+ aria-label="Toggle search"
968
+ leftIcon={<SolidIcon name="si-search" aria-hidden />}
969
+ />
970
+ </div>
837
971
 
838
972
  {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.create !== false &&
839
973
  <SolidCreateButton createButtonUrl={createButtonUrl} createActionQueryParams={createActionQueryParams} responsiveIconOnly={true} />
@@ -870,7 +1004,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
870
1004
  />
871
1005
  </div>
872
1006
  </div>
873
- {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true && showGlobalSearchElement && (
1007
+ {showGlobalSearchElement && (
874
1008
  <div className="flex lg:hidden">
875
1009
  <SolidGlobalSearchElement viewType="kanban" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
876
1010
  </div>
@@ -884,32 +1018,21 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
884
1018
  </div>
885
1019
  </div>
886
1020
 
887
- <SolidDialog
1021
+ <SolidConfirmDialog
888
1022
  open={isDialogVisible}
889
- onOpenChange={(open) => {
890
- if (!open) {
891
- onDeleteClose();
892
- }
893
- }}
1023
+ onCancel={onDeleteClose}
1024
+ onConfirm={deleteBulk}
894
1025
  className="solid-shadcn-confirm-dialog solid-delete-confirm-dialog"
895
- >
896
- <SolidDialogHeader className="solid-shadcn-dialog-head">
897
- <SolidDialogTitle>Confirm Delete</SolidDialogTitle>
898
- <SolidDialogClose />
899
- </SolidDialogHeader>
900
- <SolidDialogSeparator className="solid-shadcn-dialog-sep" />
901
- <SolidDialogBody className="solid-shadcn-dialog-body">
902
- <p className="solid-shadcn-dialog-text">Are you sure you want to delete the selected records?</p>
903
- </SolidDialogBody>
904
- <SolidDialogFooter className="solid-shadcn-dialog-actions">
905
- <SolidButton variant="destructive" size="sm" autoFocus onClick={deleteBulk}>
906
- Delete
907
- </SolidButton>
908
- <SolidButton variant="outline" size="sm" onClick={onDeleteClose}>
909
- Cancel
910
- </SolidButton>
911
- </SolidDialogFooter>
912
- </SolidDialog>
1026
+ headerClassName="solid-shadcn-dialog-head"
1027
+ bodyClassName="solid-shadcn-dialog-body"
1028
+ footerClassName="solid-shadcn-dialog-actions"
1029
+ separatorClassName="solid-shadcn-dialog-sep"
1030
+ showSeparator
1031
+ title={`Delete ${entityDisplayName}`}
1032
+ message={<p className="solid-shadcn-dialog-text">{`Are you sure you want to delete the selected ${entityDisplayName} records?`}</p>}
1033
+ confirmLabel="Delete"
1034
+ cancelLabel="Cancel"
1035
+ />
913
1036
  {openLightbox && (
914
1037
  <SolidLightbox
915
1038
  open={openLightbox}
@@ -110,7 +110,7 @@ export var SolidKanbanViewConfigure = function (_a) {
110
110
  }, children: [_jsx(SolidIcon, { name: "si-download", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Import" })] })), canExport && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
111
111
  setExportView(true);
112
112
  setIsCogMenuOpen(false);
113
- }, children: [_jsx(SolidIcon, { name: "si-upload", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Export" })] })), (canCustomizeLayout || canSaveCustomFilter) && _jsx(SolidDropdownMenuSeparator, {}), canCustomizeLayout && (_jsxs(SolidDropdownMenuSub, { children: [_jsxs(SolidDropdownMenuSubTrigger, { className: "solid-header-dropdown-item", children: [_jsx(SolidIcon, { name: "si-sliders-h", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Customize Layout" })] }), _jsxs(SolidDropdownMenuSubContent, { className: "customize-layout-panel", children: [showSwitchType && (_jsxs(_Fragment, { children: [_jsx(SolidDropdownMenuLabel, { children: "Switch Type" }), _jsx(SolidDropdownMenuRadioGroup, { value: view, onValueChange: handleViewChange, children: visibleViewModes.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.type, children: option.label }, option.type)); }) }), _jsx(SolidDropdownMenuSeparator, {})] })), _jsxs(SolidDropdownMenuItem, { onSelect: function () {
113
+ }, children: [_jsx(SolidIcon, { name: "si-upload", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Export" })] })), (canCustomizeLayout || canSaveCustomFilter) && _jsx(SolidDropdownMenuSeparator, {}), canCustomizeLayout && (_jsxs(SolidDropdownMenuSub, { children: [_jsxs(SolidDropdownMenuSubTrigger, { className: "solid-header-dropdown-item", children: [_jsx(SolidIcon, { name: "si-sliders-h", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Layout" })] }), _jsxs(SolidDropdownMenuSubContent, { className: "customize-layout-panel", children: [showSwitchType && (_jsxs(_Fragment, { children: [_jsx(SolidDropdownMenuLabel, { children: "Switch Type" }), _jsx(SolidDropdownMenuRadioGroup, { value: view, onValueChange: handleViewChange, children: visibleViewModes.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.type, children: option.label }, option.type)); }) }), _jsx(SolidDropdownMenuSeparator, {})] })), _jsxs(SolidDropdownMenuItem, { onSelect: function () {
114
114
  setLayoutDialogVisible(true);
115
115
  setIsCogMenuOpen(false);
116
116
  }, children: [_jsx(SolidIcon, { name: "si-code", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Layout Editor" })] })] })] })), canSaveCustomFilter && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidKanbanViewConfigure.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanViewConfigure.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useEffect, useState } from \"react\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuLabel,\n SolidDropdownMenuRadioGroup,\n SolidDropdownMenuRadioItem,\n SolidDropdownMenuSeparator,\n SolidDropdownMenuSub,\n SolidDropdownMenuSubContent,\n SolidDropdownMenuSubTrigger,\n SolidDropdownMenuTrigger,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\nconst normalizeViewModes = (viewModes: any[] = []) => {\n return viewModes\n .map((option: any) => {\n if (!option) return null;\n\n if (typeof option === \"string\") {\n return {\n type: option,\n label: option.charAt(0).toUpperCase() + option.slice(1),\n };\n }\n\n const type = option.type || option.value;\n if (!type) return null;\n\n return {\n ...option,\n type,\n label: option.label || (type.charAt(0).toUpperCase() + type.slice(1)),\n };\n })\n .filter(Boolean);\n};\n\nexport const SolidKanbanViewConfigure = ({\n solidKanbanViewMetaData,\n modelName,\n actionsAllowed,\n setLayoutDialogVisible,\n viewModes,\n setShowSaveFilterPopup,\n filters,\n handleRefreshView,\n}: any) => {\n const pathname = usePathname();\n const router = useRouter();\n const searchParams = useSearchParams();\n const [view, setView] = useState<string>(\"\");\n const [isCogMenuOpen, setIsCogMenuOpen] = useState(false);\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const [exportView, setExportView] = useState(false);\n\n const visibleViewModes = normalizeViewModes(Array.isArray(viewModes) ? viewModes : []);\n const showSwitchType = visibleViewModes.length > 1;\n const layoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs ?? {};\n\n useEffect(() => {\n if (typeof pathname === \"string\") {\n const pathSegments = pathname.split(\"/\").filter(Boolean);\n if (pathSegments.length > 0) {\n setView(pathSegments[pathSegments.length - 1]);\n }\n }\n }, [pathname]);\n\n const handleViewChange = (newViewType: string) => {\n if (view === newViewType) return;\n\n const nextView = visibleViewModes.find((option: any) => option.type === newViewType);\n const pathSegments = pathname.split(\"/\").filter(Boolean);\n pathSegments[pathSegments.length - 1] = newViewType;\n const nextSearchParams = new URLSearchParams(searchParams.toString());\n const currentQuery = {\n menuItemId: searchParams.get(\"menuItemId\"),\n menuItemName: searchParams.get(\"menuItemName\"),\n actionId: searchParams.get(\"actionId\"),\n actionName: searchParams.get(\"actionName\"),\n };\n\n const queryFields = {\n menuItemId: nextView?.menuItemId ?? currentQuery.menuItemId,\n menuItemName: nextView?.menuItemName ?? currentQuery.menuItemName,\n actionId: nextView?.actionId ?? currentQuery.actionId,\n actionName: nextView?.actionName ?? currentQuery.actionName,\n };\n\n Object.entries(queryFields).forEach(([key, value]) => {\n if (value) {\n nextSearchParams.set(key, value);\n } else {\n nextSearchParams.delete(key);\n }\n });\n\n const newPath = \"/\" + pathSegments.join(\"/\");\n const nextQueryString = nextSearchParams.toString();\n router.push(nextQueryString ? `${newPath}?${nextQueryString}` : newPath);\n };\n\n const clearLocalstorageCache = () => {\n const currentPageUrl = window.location.pathname;\n localStorage.removeItem(currentPageUrl);\n window.location.reload();\n };\n\n const canImport =\n Boolean(modelName) &&\n actionsAllowed.includes(`${permissionExpression(modelName, \"create\")}`) &&\n actionsAllowed.includes(`${permissionExpression(\"importTransaction\", \"create\")}`);\n\n const canExport =\n Boolean(modelName) &&\n actionsAllowed.includes(`${permissionExpression(modelName, \"findMany\")}`) &&\n actionsAllowed.includes(`${permissionExpression(\"exportTransaction\", \"create\")}`);\n\n const canCustomizeLayout = actionsAllowed.includes(`${permissionExpression(\"userViewMetadata\", \"create\")}`);\n const canSaveCustomFilter = actionsAllowed.includes(`${permissionExpression(\"savedFilters\", \"create\")}`);\n\n return (\n <div className=\"position-relative\">\n <SolidDropdownMenu open={isCogMenuOpen} onOpenChange={setIsCogMenuOpen}>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-icon-button solid-header-cog-trigger\"\n aria-label=\"Open kanban options\"\n >\n <SolidIcon name=\"si-cog\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"listview-cogwheel-panel\">\n {canImport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setOpenImportDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-download\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Import</span>\n </SolidDropdownMenuItem>\n )}\n\n {canExport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setExportView(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-upload\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Export</span>\n </SolidDropdownMenuItem>\n )}\n\n {(canCustomizeLayout || canSaveCustomFilter) && <SolidDropdownMenuSeparator />}\n\n {canCustomizeLayout && (\n <SolidDropdownMenuSub>\n <SolidDropdownMenuSubTrigger className=\"solid-header-dropdown-item\">\n <SolidIcon name=\"si-sliders-h\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Customize Layout</span>\n </SolidDropdownMenuSubTrigger>\n <SolidDropdownMenuSubContent className=\"customize-layout-panel\">\n {showSwitchType && (\n <>\n <SolidDropdownMenuLabel>Switch Type</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={view} onValueChange={handleViewChange}>\n {visibleViewModes.map((option: any) => (\n <SolidDropdownMenuRadioItem key={option.type} value={option.type}>\n {option.label}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n </>\n )}\n <SolidDropdownMenuItem\n onSelect={() => {\n setLayoutDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-code\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Layout Editor</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuSubContent>\n </SolidDropdownMenuSub>\n )}\n\n {canSaveCustomFilter && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setShowSaveFilterPopup(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-save\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Save Custom Filter</span>\n </SolidDropdownMenuItem>\n )}\n\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n clearLocalstorageCache();\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-trash\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Clear cache</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n\n <SolidDialog\n open={exportView}\n onOpenChange={setExportView}\n className=\"solid-kanban-export-dialog\"\n style={{ width: \"min(960px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader className=\"solid-export-dialog-header\">\n <div>\n <SolidDialogTitle>Export</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose the file format, refine the field set, and save reusable export templates.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-export-dialog-body\">\n <SolidExport listViewMetaData={solidKanbanViewMetaData} filters={filters} />\n </SolidDialogBody>\n </SolidDialog>\n\n {openImportDialog && (\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={solidKanbanViewMetaData}\n handleFetchUpdatedRecords={handleRefreshView}\n />\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidKanbanViewConfigure.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanViewConfigure.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { useEffect, useState } from \"react\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuLabel,\n SolidDropdownMenuRadioGroup,\n SolidDropdownMenuRadioItem,\n SolidDropdownMenuSeparator,\n SolidDropdownMenuSub,\n SolidDropdownMenuSubContent,\n SolidDropdownMenuSubTrigger,\n SolidDropdownMenuTrigger,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\nconst normalizeViewModes = (viewModes: any[] = []) => {\n return viewModes\n .map((option: any) => {\n if (!option) return null;\n\n if (typeof option === \"string\") {\n return {\n type: option,\n label: option.charAt(0).toUpperCase() + option.slice(1),\n };\n }\n\n const type = option.type || option.value;\n if (!type) return null;\n\n return {\n ...option,\n type,\n label: option.label || (type.charAt(0).toUpperCase() + type.slice(1)),\n };\n })\n .filter(Boolean);\n};\n\nexport const SolidKanbanViewConfigure = ({\n solidKanbanViewMetaData,\n modelName,\n actionsAllowed,\n setLayoutDialogVisible,\n viewModes,\n setShowSaveFilterPopup,\n filters,\n handleRefreshView,\n}: any) => {\n const pathname = usePathname();\n const router = useRouter();\n const searchParams = useSearchParams();\n const [view, setView] = useState<string>(\"\");\n const [isCogMenuOpen, setIsCogMenuOpen] = useState(false);\n const [openImportDialog, setOpenImportDialog] = useState(false);\n const [exportView, setExportView] = useState(false);\n\n const visibleViewModes = normalizeViewModes(Array.isArray(viewModes) ? viewModes : []);\n const showSwitchType = visibleViewModes.length > 1;\n const layoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs ?? {};\n\n useEffect(() => {\n if (typeof pathname === \"string\") {\n const pathSegments = pathname.split(\"/\").filter(Boolean);\n if (pathSegments.length > 0) {\n setView(pathSegments[pathSegments.length - 1]);\n }\n }\n }, [pathname]);\n\n const handleViewChange = (newViewType: string) => {\n if (view === newViewType) return;\n\n const nextView = visibleViewModes.find((option: any) => option.type === newViewType);\n const pathSegments = pathname.split(\"/\").filter(Boolean);\n pathSegments[pathSegments.length - 1] = newViewType;\n const nextSearchParams = new URLSearchParams(searchParams.toString());\n const currentQuery = {\n menuItemId: searchParams.get(\"menuItemId\"),\n menuItemName: searchParams.get(\"menuItemName\"),\n actionId: searchParams.get(\"actionId\"),\n actionName: searchParams.get(\"actionName\"),\n };\n\n const queryFields = {\n menuItemId: nextView?.menuItemId ?? currentQuery.menuItemId,\n menuItemName: nextView?.menuItemName ?? currentQuery.menuItemName,\n actionId: nextView?.actionId ?? currentQuery.actionId,\n actionName: nextView?.actionName ?? currentQuery.actionName,\n };\n\n Object.entries(queryFields).forEach(([key, value]) => {\n if (value) {\n nextSearchParams.set(key, value);\n } else {\n nextSearchParams.delete(key);\n }\n });\n\n const newPath = \"/\" + pathSegments.join(\"/\");\n const nextQueryString = nextSearchParams.toString();\n router.push(nextQueryString ? `${newPath}?${nextQueryString}` : newPath);\n };\n\n const clearLocalstorageCache = () => {\n const currentPageUrl = window.location.pathname;\n localStorage.removeItem(currentPageUrl);\n window.location.reload();\n };\n\n const canImport =\n Boolean(modelName) &&\n actionsAllowed.includes(`${permissionExpression(modelName, \"create\")}`) &&\n actionsAllowed.includes(`${permissionExpression(\"importTransaction\", \"create\")}`);\n\n const canExport =\n Boolean(modelName) &&\n actionsAllowed.includes(`${permissionExpression(modelName, \"findMany\")}`) &&\n actionsAllowed.includes(`${permissionExpression(\"exportTransaction\", \"create\")}`);\n\n const canCustomizeLayout = actionsAllowed.includes(`${permissionExpression(\"userViewMetadata\", \"create\")}`);\n const canSaveCustomFilter = actionsAllowed.includes(`${permissionExpression(\"savedFilters\", \"create\")}`);\n\n return (\n <div className=\"position-relative\">\n <SolidDropdownMenu open={isCogMenuOpen} onOpenChange={setIsCogMenuOpen}>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-icon-button solid-header-cog-trigger\"\n aria-label=\"Open kanban options\"\n >\n <SolidIcon name=\"si-cog\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"listview-cogwheel-panel\">\n {canImport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setOpenImportDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-download\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Import</span>\n </SolidDropdownMenuItem>\n )}\n\n {canExport && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setExportView(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-upload\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Export</span>\n </SolidDropdownMenuItem>\n )}\n\n {(canCustomizeLayout || canSaveCustomFilter) && <SolidDropdownMenuSeparator />}\n\n {canCustomizeLayout && (\n <SolidDropdownMenuSub>\n <SolidDropdownMenuSubTrigger className=\"solid-header-dropdown-item\">\n <SolidIcon name=\"si-sliders-h\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Layout</span>\n </SolidDropdownMenuSubTrigger>\n <SolidDropdownMenuSubContent className=\"customize-layout-panel\">\n {showSwitchType && (\n <>\n <SolidDropdownMenuLabel>Switch Type</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={view} onValueChange={handleViewChange}>\n {visibleViewModes.map((option: any) => (\n <SolidDropdownMenuRadioItem key={option.type} value={option.type}>\n {option.label}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n </>\n )}\n <SolidDropdownMenuItem\n onSelect={() => {\n setLayoutDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-code\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Layout Editor</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuSubContent>\n </SolidDropdownMenuSub>\n )}\n\n {canSaveCustomFilter && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setShowSaveFilterPopup(true);\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-save\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Save Custom Filter</span>\n </SolidDropdownMenuItem>\n )}\n\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n clearLocalstorageCache();\n setIsCogMenuOpen(false);\n }}\n >\n <SolidIcon name=\"si-trash\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Clear cache</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n\n <SolidDialog\n open={exportView}\n onOpenChange={setExportView}\n className=\"solid-kanban-export-dialog\"\n style={{ width: \"min(960px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader className=\"solid-export-dialog-header\">\n <div>\n <SolidDialogTitle>Export</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose the file format, refine the field set, and save reusable export templates.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-export-dialog-body\">\n <SolidExport listViewMetaData={solidKanbanViewMetaData} filters={filters} />\n </SolidDialogBody>\n </SolidDialog>\n\n {openImportDialog && (\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={solidKanbanViewMetaData}\n handleFetchUpdatedRecords={handleRefreshView}\n />\n )}\n </div>\n );\n};\n"]}
@@ -180,7 +180,7 @@ export const SolidKanbanViewConfigure = ({
180
180
  <SolidDropdownMenuSub>
181
181
  <SolidDropdownMenuSubTrigger className="solid-header-dropdown-item">
182
182
  <SolidIcon name="si-sliders-h" className="solid-header-action-button-icon" aria-hidden />
183
- <span className="solid-header-action-button-label">Customize Layout</span>
183
+ <span className="solid-header-action-button-label">Layout</span>
184
184
  </SolidDropdownMenuSubTrigger>
185
185
  <SolidDropdownMenuSubContent className="customize-layout-panel">
186
186
  {showSwitchType && (
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"AAkBA,eAAO,MAAM,uBAAuB,kCAAmC,GAAG,wDAuMzE,CAAA"}
1
+ {"version":3,"file":"SolidListColumnSelector.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,uBAAuB,kCAAmC,GAAG,wDAuMzE,CAAA"}