@solidxai/core-ui 0.1.8-beta.8 → 0.1.8

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 (361) hide show
  1. package/README.md +2 -2
  2. package/dist/adapters/auth/getSession.d.ts.map +1 -1
  3. package/dist/adapters/auth/getSession.js +1 -1
  4. package/dist/adapters/auth/getSession.js.map +1 -1
  5. package/dist/adapters/auth/getSession.ts +1 -0
  6. package/dist/adapters/auth/helper.d.ts.map +1 -1
  7. package/dist/adapters/auth/helper.js +1 -0
  8. package/dist/adapters/auth/helper.js.map +1 -1
  9. package/dist/adapters/auth/helper.ts +3 -1
  10. package/dist/adapters/auth/signIn.d.ts.map +1 -1
  11. package/dist/adapters/auth/signIn.js +1 -0
  12. package/dist/adapters/auth/signIn.js.map +1 -1
  13. package/dist/adapters/auth/signIn.ts +3 -1
  14. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts +1 -0
  15. package/dist/adapters/auth/signInWithOAuthAccessCode.d.ts.map +1 -1
  16. package/dist/adapters/auth/signInWithOAuthAccessCode.js +10 -9
  17. package/dist/adapters/auth/signInWithOAuthAccessCode.js.map +1 -1
  18. package/dist/adapters/auth/signInWithOAuthAccessCode.ts +6 -3
  19. package/dist/adapters/auth/signOut.d.ts.map +1 -1
  20. package/dist/adapters/auth/signOut.js +7 -1
  21. package/dist/adapters/auth/signOut.js.map +1 -1
  22. package/dist/adapters/auth/signOut.ts +7 -1
  23. package/dist/adapters/auth/types.d.ts +1 -0
  24. package/dist/adapters/auth/types.d.ts.map +1 -1
  25. package/dist/adapters/auth/types.js.map +1 -1
  26. package/dist/adapters/auth/types.ts +1 -0
  27. package/dist/components/auth/AuthLayout.d.ts +1 -1
  28. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  29. package/dist/components/auth/AuthLayout.js +92 -39
  30. package/dist/components/auth/AuthLayout.js.map +1 -1
  31. package/dist/components/auth/AuthLayout.tsx +38 -30
  32. package/dist/components/auth/AuthSettingsContext.d.ts +10 -0
  33. package/dist/components/auth/AuthSettingsContext.d.ts.map +1 -0
  34. package/dist/components/auth/AuthSettingsContext.js +49 -0
  35. package/dist/components/auth/AuthSettingsContext.js.map +1 -0
  36. package/dist/components/auth/AuthSettingsContext.tsx +19 -0
  37. package/dist/components/auth/AuthTabs.d.ts.map +1 -1
  38. package/dist/components/auth/AuthTabs.js +9 -9
  39. package/dist/components/auth/AuthTabs.js.map +1 -1
  40. package/dist/components/auth/AuthTabs.tsx +14 -15
  41. package/dist/components/auth/FacebookAuthChecking.d.ts +2 -0
  42. package/dist/components/auth/FacebookAuthChecking.d.ts.map +1 -0
  43. package/dist/components/auth/FacebookAuthChecking.js +98 -0
  44. package/dist/components/auth/FacebookAuthChecking.js.map +1 -0
  45. package/dist/components/auth/FacebookAuthChecking.tsx +59 -0
  46. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  47. package/dist/components/auth/ForgotPasswordThankYou.js +2 -6
  48. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  49. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -7
  50. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  51. package/dist/components/auth/GoogleAuthChecking.js +10 -16
  52. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  53. package/dist/components/auth/GoogleAuthChecking.tsx +2 -7
  54. package/dist/components/auth/MicrosoftAuthChecking.d.ts +2 -0
  55. package/dist/components/auth/MicrosoftAuthChecking.d.ts.map +1 -0
  56. package/dist/components/auth/MicrosoftAuthChecking.js +98 -0
  57. package/dist/components/auth/MicrosoftAuthChecking.js.map +1 -0
  58. package/dist/components/auth/MicrosoftAuthChecking.tsx +59 -0
  59. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  60. package/dist/components/auth/SolidForgotPassword.js +2 -6
  61. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  62. package/dist/components/auth/SolidForgotPassword.tsx +2 -7
  63. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  64. package/dist/components/auth/SolidInitialLoginOtp.js +13 -22
  65. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  66. package/dist/components/auth/SolidInitialLoginOtp.tsx +4 -12
  67. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  68. package/dist/components/auth/SolidInitiateRegisterOtp.js +27 -14
  69. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  70. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +27 -15
  71. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  72. package/dist/components/auth/SolidLogin.js +18 -23
  73. package/dist/components/auth/SolidLogin.js.map +1 -1
  74. package/dist/components/auth/SolidLogin.tsx +18 -15
  75. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  76. package/dist/components/auth/SolidRegister.js +50 -22
  77. package/dist/components/auth/SolidRegister.js.map +1 -1
  78. package/dist/components/auth/SolidRegister.tsx +101 -41
  79. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  80. package/dist/components/auth/SolidResetPassword.js +2 -6
  81. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  82. package/dist/components/auth/SolidResetPassword.tsx +2 -6
  83. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  84. package/dist/components/common/GeneralSettings.js +235 -156
  85. package/dist/components/common/GeneralSettings.js.map +1 -1
  86. package/dist/components/common/GeneralSettings.tsx +1109 -795
  87. package/dist/components/common/SettingsComponent.d.ts +2 -0
  88. package/dist/components/common/SettingsComponent.d.ts.map +1 -0
  89. package/dist/components/common/SettingsComponent.js +351 -0
  90. package/dist/components/common/SettingsComponent.js.map +1 -0
  91. package/dist/components/common/SettingsComponent.module.css +421 -0
  92. package/dist/components/common/SettingsComponent.tsx +582 -0
  93. package/dist/components/common/SocialMediaLogin.d.ts +8 -1
  94. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  95. package/dist/components/common/SocialMediaLogin.js +6 -13
  96. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  97. package/dist/components/common/SocialMediaLogin.tsx +120 -58
  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/core/card/SolidCardView.d.ts.map +1 -1
  112. package/dist/components/core/card/SolidCardView.js +24 -25
  113. package/dist/components/core/card/SolidCardView.js.map +1 -1
  114. package/dist/components/core/card/SolidCardView.tsx +22 -27
  115. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  116. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  117. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  118. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  119. package/dist/components/core/chatter/SolidChatter.js +39 -9
  120. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  121. package/dist/components/core/chatter/SolidChatter.tsx +42 -7
  122. package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
  123. package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
  124. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  125. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +22 -1
  126. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +3 -0
  127. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  128. package/dist/components/core/chatter/SolidChatterMessageBox.js +68 -4
  129. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  130. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +45 -3
  131. package/dist/components/core/chatter/chatter.module.css +0 -3
  132. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  133. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +3 -1
  134. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  135. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +3 -1
  136. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  137. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +9 -8
  138. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  139. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +4 -2
  140. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  141. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  142. package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  143. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts +7 -0
  144. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.d.ts.map +1 -0
  145. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js +75 -0
  146. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.js.map +1 -0
  147. package/dist/components/core/extension/solid-core/scheduled-job/scheduleFrequencyOnFieldChangeHandler.ts +45 -0
  148. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts +3 -0
  149. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.d.ts.map +1 -0
  150. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js +81 -0
  151. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.js.map +1 -0
  152. package/dist/components/core/extension/solid-core/settings/solidXGenAiCodeBuilderConfigWidget.tsx +114 -0
  153. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  154. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  155. package/dist/components/core/form/SolidFormActionHeader.js +5 -3
  156. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  157. package/dist/components/core/form/SolidFormActionHeader.tsx +27 -1
  158. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  159. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  160. package/dist/components/core/form/SolidFormLayouts.tsx +1 -1
  161. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  162. package/dist/components/core/form/SolidFormView.js +141 -50
  163. package/dist/components/core/form/SolidFormView.js.map +1 -1
  164. package/dist/components/core/form/SolidFormView.tsx +123 -25
  165. package/dist/components/core/form/fields/SolidComputedField.d.ts +25 -0
  166. package/dist/components/core/form/fields/SolidComputedField.d.ts.map +1 -0
  167. package/dist/components/core/form/fields/SolidComputedField.js +128 -0
  168. package/dist/components/core/form/fields/SolidComputedField.js.map +1 -0
  169. package/dist/components/core/form/fields/SolidComputedField.tsx +134 -0
  170. package/dist/components/core/form/fields/SolidDateTimeField.js +1 -1
  171. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  172. package/dist/components/core/form/fields/SolidDateTimeField.tsx +1 -1
  173. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  174. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +35 -24
  175. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  176. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +30 -14
  177. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  178. package/dist/components/core/form/fields/SolidSelectionStaticField.js +29 -28
  179. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  180. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +17 -12
  181. package/dist/components/core/form/fields/SolidTimeField.js +1 -1
  182. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  183. package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
  184. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
  185. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +3 -3
  186. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  187. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +0 -5
  188. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts +1 -1
  189. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +1 -1
  190. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  191. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +1 -1
  192. package/dist/components/core/kanban/KanbanBoard.js +1 -1
  193. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  194. package/dist/components/core/kanban/KanbanBoard.tsx +1 -1
  195. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  196. package/dist/components/core/kanban/SolidKanbanView.js +219 -108
  197. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  198. package/dist/components/core/kanban/SolidKanbanView.tsx +218 -95
  199. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  200. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  201. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  202. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  203. package/dist/components/core/list/SolidDataTable.js +6 -5
  204. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  205. package/dist/components/core/list/SolidDataTable.tsx +6 -5
  206. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  207. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -3
  208. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  209. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +1 -0
  210. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  211. package/dist/components/core/list/SolidListView.js +62 -73
  212. package/dist/components/core/list/SolidListView.js.map +1 -1
  213. package/dist/components/core/list/SolidListView.tsx +70 -96
  214. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  215. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  216. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  217. package/dist/components/core/list/SolidListViewRowActionsMenu.js +2 -2
  218. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  219. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +2 -2
  220. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +1 -1
  221. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  222. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +1 -1
  223. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.css +283 -9
  224. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.d.ts.map +1 -1
  225. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js +35 -28
  226. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.js.map +1 -1
  227. package/dist/components/core/users/ApiKeysTab/ApiKeysTab.tsx +64 -62
  228. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts +2 -1
  229. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
  230. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +4 -4
  231. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
  232. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +17 -10
  233. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.d.ts.map +1 -1
  234. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js +2 -19
  235. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.js.map +1 -1
  236. package/dist/components/core/users/ApiKeysTab/RevealApiKeyModal.tsx +24 -43
  237. package/dist/components/core/users/CreateUser.css +114 -0
  238. package/dist/components/core/users/CreateUser.d.ts +1 -0
  239. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  240. package/dist/components/core/users/CreateUser.js +4 -3
  241. package/dist/components/core/users/CreateUser.js.map +1 -1
  242. package/dist/components/core/users/CreateUser.tsx +32 -26
  243. package/dist/components/layout/context/layoutcontext.js +2 -2
  244. package/dist/components/layout/context/layoutcontext.js.map +1 -1
  245. package/dist/components/layout/context/layoutcontext.tsx +2 -2
  246. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  247. package/dist/components/layout/user-profile-menu.js +15 -14
  248. package/dist/components/layout/user-profile-menu.js.map +1 -1
  249. package/dist/components/layout/user-profile-menu.tsx +8 -6
  250. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  251. package/dist/components/shad-cn-ui/SolidAutocomplete.js +9 -1
  252. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  253. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +10 -1
  254. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts +6 -1
  255. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts.map +1 -1
  256. package/dist/components/shad-cn-ui/SolidConfirmDialog.js +3 -3
  257. package/dist/components/shad-cn-ui/SolidConfirmDialog.js.map +1 -1
  258. package/dist/components/shad-cn-ui/SolidConfirmDialog.tsx +15 -3
  259. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  260. package/dist/components/shad-cn-ui/SolidDatePicker.js +1 -1
  261. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  262. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +2 -0
  263. package/dist/components/shad-cn-ui/SolidDialog.d.ts +1 -1
  264. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  265. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  266. package/dist/components/shad-cn-ui/SolidDialog.tsx +1 -1
  267. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
  268. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  269. package/dist/components/shad-cn-ui/SolidIcon.js +3 -4
  270. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  271. package/dist/components/shad-cn-ui/SolidIcon.tsx +12 -15
  272. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -1
  273. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +9 -1
  274. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -1
  275. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +8 -1
  276. package/dist/components/shad-cn-ui/SolidTabs.d.ts +2 -1
  277. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  278. package/dist/components/shad-cn-ui/SolidTabs.js +4 -4
  279. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  280. package/dist/components/shad-cn-ui/SolidTabs.tsx +12 -3
  281. package/dist/helpers/hydrateRelationRules.js +1 -1
  282. package/dist/helpers/hydrateRelationRules.js.map +1 -1
  283. package/dist/helpers/hydrateRelationRules.ts +1 -1
  284. package/dist/helpers/permissions.js +2 -2
  285. package/dist/helpers/permissions.js.map +1 -1
  286. package/dist/helpers/permissions.ts +2 -2
  287. package/dist/helpers/registry.d.ts +2 -2
  288. package/dist/helpers/registry.d.ts.map +1 -1
  289. package/dist/helpers/registry.js +6 -0
  290. package/dist/helpers/registry.js.map +1 -1
  291. package/dist/helpers/registry.ts +9 -2
  292. package/dist/helpers/settingsPayload.d.ts +32 -0
  293. package/dist/helpers/settingsPayload.d.ts.map +1 -0
  294. package/dist/helpers/settingsPayload.js +72 -0
  295. package/dist/helpers/settingsPayload.js.map +1 -0
  296. package/dist/helpers/settingsPayload.ts +125 -0
  297. package/dist/index.d.ts +4 -0
  298. package/dist/index.d.ts.map +1 -1
  299. package/dist/index.js +4 -0
  300. package/dist/index.js.map +1 -1
  301. package/dist/index.ts +4 -0
  302. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  303. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  304. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  305. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  306. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  307. package/dist/redux/api/solidEntityApi.js +1 -1
  308. package/dist/redux/api/solidEntityApi.js.map +1 -1
  309. package/dist/redux/api/solidEntityApi.tsx +1 -1
  310. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  311. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  312. package/dist/resources/globals.css +112 -83
  313. package/dist/resources/shadcn-base.css +310 -391
  314. package/dist/resources/solid-responsive.css +22 -4
  315. package/dist/routes/AppEventListener.js +1 -1
  316. package/dist/routes/AppEventListener.js.map +1 -1
  317. package/dist/routes/AppEventListener.tsx +1 -1
  318. package/dist/routes/pages/admin/core/CardPage.js +1 -1
  319. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  320. package/dist/routes/pages/admin/core/CardPage.tsx +1 -1
  321. package/dist/routes/pages/admin/core/FormPage.js +1 -1
  322. package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
  323. package/dist/routes/pages/admin/core/FormPage.tsx +1 -1
  324. package/dist/routes/pages/admin/core/KanbanPage.js +1 -1
  325. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  326. package/dist/routes/pages/admin/core/KanbanPage.tsx +1 -1
  327. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  328. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  329. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  330. package/dist/routes/pages/admin/core/SettingsPage.js +2 -2
  331. package/dist/routes/pages/admin/core/SettingsPage.js.map +1 -1
  332. package/dist/routes/pages/admin/core/SettingsPage.tsx +2 -2
  333. package/dist/routes/pages/admin/core/TreePage.js +1 -1
  334. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  335. package/dist/routes/pages/admin/core/TreePage.tsx +1 -1
  336. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts +2 -0
  337. package/dist/routes/pages/auth/InitiateFacebookOauthPage.d.ts.map +1 -0
  338. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js +6 -0
  339. package/dist/routes/pages/auth/InitiateFacebookOauthPage.js.map +1 -0
  340. package/dist/routes/pages/auth/InitiateFacebookOauthPage.tsx +5 -0
  341. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts +2 -0
  342. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.d.ts.map +1 -0
  343. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js +6 -0
  344. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.js.map +1 -0
  345. package/dist/routes/pages/auth/InitiateMicrosoftOauthPage.tsx +5 -0
  346. package/dist/routes/solidRoutes.d.ts.map +1 -1
  347. package/dist/routes/solidRoutes.js +5 -1
  348. package/dist/routes/solidRoutes.js.map +1 -1
  349. package/dist/routes/solidRoutes.tsx +5 -1
  350. package/dist/routes/types.d.ts +1 -1
  351. package/dist/routes/types.d.ts.map +1 -1
  352. package/dist/routes/types.js.map +1 -1
  353. package/dist/routes/types.ts +2 -0
  354. package/dist/types/extension-registry.d.ts +1 -0
  355. package/dist/types/extension-registry.d.ts.map +1 -1
  356. package/dist/types/extension-registry.js +1 -0
  357. package/dist/types/extension-registry.js.map +1 -1
  358. package/dist/types/extension-registry.ts +1 -0
  359. package/dist/types/index.d.ts +2 -0
  360. package/dist/types/solid-core.d.ts +11 -0
  361. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"SolidKanbanView.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { DropResult } from \"@hello-pangea/dnd\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport KanbanBoard from \"./KanbanBoard\";\nimport CompactImage from '../../../resources/images/layout/images/compact.png';\nimport CozyImage from '../../../resources/images/layout/images/cozy.png';\nimport ComfortableImage from '../../../resources/images/layout/images/comfortable.png';\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidKanbanViewConfigure } from \"./SolidKanbanViewConfigure\";\nimport { KanbanUserViewLayout } from \"./KanbanUserViewLayout\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setFilterObjectToLocalStorage, getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\n\ntype SolidKanbanViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\n\nexport const SolidKanbanView = (params: SolidKanbanViewParams) => {\n\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch()\n\n const solidGlobalSearchElementRef = useRef();\n const router = useRouter();\n const searchParams = useSearchParams();\n // TODO: The initial filter state will be created based on the fields which are present on this kanban view. \n const [filters, setFilters] = useState<any>();\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n const [showArchived, setShowArchived] = useState(false);\n const sizeOptions = [\n { label: 'Compact', value: 'small', image: CompactImage },\n { label: 'Cozy', value: 'normal', image: CozyImage },\n { label: 'Comfortable', value: 'large', image: ComfortableImage }\n ]\n const [size, setSize] = useState<string | any>(sizeOptions[1].value);\n const [viewModes, setViewModes] = useState<any>([]);\n const [groupByFieldName, setGroupByFieldName] = useState<string>(\"\");\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [filterQueryString, setFilterQueryString] = useState<any>();\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const pushFiltersToRouter = (filterQueryString: any) => {\n // @ts-ignore\n router.push(`?${filterQueryString}`, undefined, { shallow: true });\n };\n\n useEffect(() => {\n if (filterQueryString) {\n pushFiltersToRouter(filterQueryString);\n }\n }, [filterQueryString]);\n\n\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findMany'),\n permissionExpression('importTransaction', 'create'),\n permissionExpression('exportTransaction', 'create'),\n permissionExpression('userViewMetadata', 'create'),\n permissionExpression('savedFilters', 'create')\n ]\n const queryData = {\n permissionNames: permissionNames\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n\n // Create the RTK slices for this entity\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useDeleteMultipleSolidEntitiesMutation,\n useLazyGetSolidEntitiesQuery,\n usePatchUpdateSolidEntityMutation\n } = entityApi;\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n // Get the kanban view layout & metadata first. \n const kanbanViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"kanban\",\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n const [kanbanViewMetaData, setKanbanViewMetaData] = useState<any>({});\n\n const {\n data: solidKanbanViewMetaData } = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);\n\n\n\n const initialFilterMethod = () => {\n\n const solidView = solidKanbanViewMetaData.data.solidView;\n const solidFieldsMetadata = solidKanbanViewMetaData.data.solidFieldsMetadata;\n\n const initialFilters: any = {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n function findCardNode(nodes: any[] = []): any {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n }\n function extractFields(nodes: any, result: any = []) {\n if (!nodes) return result;\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (nodes.children) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n }\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView.layout;\n const layoutFields = extractFields(fieldSource);\n\n for (let i = 0; i < layoutFields.length; i++) {\n const column = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[column.attrs.name];\n if (fieldMetadata) {\n\n // Form the initial filters after iterating over the columns and field metadata. \n if (['int', 'bigint', 'float', 'decimal'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['date', 'datetime', 'time', 'boolean'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['relation', 'selectionStatic', 'selectionDynamic'].includes(fieldMetadata.type)) {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n else {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.STARTS_WITH }\n }\n\n if (column.attrs.name === 'id') {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n\n // Form the \"toPopulate\" array. \n if (fieldMetadata.type === 'relation') {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n }\n\n // setFilters(initialFilters);\n const recordsInSwimlane = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane : 10;\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n // setRecordsInSwimlane(recordsInSwimlane);\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n return { recordsInSwimlane, toPopulate, toPopulateMedia }\n }\n\n\n // Initial Filter data \n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n setKanbanViewMetaData(solidKanbanViewMetaData);\n setViewModes(solidKanbanViewMetaData?.data?.viewModes);\n setGroupByFieldName(solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy || \"\");\n }\n }, [solidKanbanViewMetaData]);\n\n // All kanban view state.\n const [kanbanViewData, setKanbanViewData] = useState<any>([]);\n const [kanbanLoadMoreData, setKanbanLoadMoreData] = useState<any>({});\n const [recordsInSwimlane, setRecordsInSwimlane] = useState(10);\n const [selectedRecords, setSelectedRecords] = useState<any[]>([]);\n const [loading, setLoading] = useState<boolean>(true);\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [editActionQueryParams, setEditActionQueryParams] = useState<Record<string, string>>({});\n const [columnsCount, setColumnsCount] = useState(5);\n const [swimLaneCurrentPageNumber, setSwimLaneCurrentPageNumber] = useState(1);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);\n const [maxSwimLanesCount, setMaxSwimLanesCount] = useState<number>(0);\n const pathname = usePathname();\n // @ts-ignore\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n // Get the kanban view data.\n // const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();\n const [triggerGetSolidEntities, { data: solidEntityKanbanViewData }] = useLazyGetSolidEntitiesQuery();\n\n // Delete mutation \n const [\n deleteManySolidEntities,\n {\n isLoading: isDeleteSolidEntitiesLoading,\n isSuccess: isDeleteSolidEntitiesSucess,\n },\n ] = useDeleteMultipleSolidEntitiesMutation();\n const [\n patchKanbanView,\n {\n isLoading: isPatchKanbanViewLoading,\n },\n ] = usePatchUpdateSolidEntityMutation();\n\n // After data is fetched populate the kanban view state so as to be able to render the data. \n useEffect(() => {\n if (solidEntityKanbanViewData) {\n // Merge groupRecords by groupName: update existing, add new\n setMaxSwimLanesCount(solidEntityKanbanViewData?.meta?.totalRecords || 0);\n const groupRecords = solidEntityKanbanViewData?.groupRecords || [];\n const groupMap = new Map((kanbanViewData || []).map((g: any) => [g.groupName, g]));\n groupRecords.forEach((newGroup: any) => {\n groupMap.set(newGroup.groupName, newGroup);\n });\n const latestKanbanGroupData = Array.from(groupMap.values());\n setKanbanViewData(latestKanbanGroupData);\n const loadmoredata = Object.entries(latestKanbanGroupData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,\n limit: value.groupData.meta.perPage,\n count: value.groupData.meta.totalRecords\n };\n return acc;\n }, {});\n\n setKanbanLoadMoreData(loadmoredata)\n setLoading(false);\n }\n }, [solidEntityKanbanViewData]);\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const kanbanViewLayoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs;\n const createActionUrl = kanbanViewLayoutAttrs?.createAction && kanbanViewLayoutAttrs?.createAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = kanbanViewLayoutAttrs?.editAction && kanbanViewLayoutAttrs?.editAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.editAction?.customComponent : \"form\";\n\n if (kanbanViewLayoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: kanbanViewLayoutAttrs.createAction.name,\n actionType: kanbanViewLayoutAttrs.createAction.type,\n actionContext: kanbanViewLayoutAttrs.createAction.context,\n });\n }\n if (kanbanViewLayoutAttrs?.editAction) {\n setEditActionQueryParams({\n actionName: kanbanViewLayoutAttrs.editAction.name,\n actionType: kanbanViewLayoutAttrs.editAction.type,\n actionContext: kanbanViewLayoutAttrs.editAction.context,\n });\n }\n\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n // Fetch data after toPopulate has been populated...\n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n if (groupByFieldName) {\n\n const queryObject = getFilterObjectFromLocalStorage();\n let queryString = \"\";\n if (queryObject) {\n const filters = {\n $and: []\n }\n if (queryObject.custom_filter_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.custom_filter_predicate);\n }\n if (queryObject.search_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.search_predicate);\n }\n // if (queryObject.saved_filter_predicate) {\n // filters.$and.push(queryObject.saved_filter_predicate);\n // }\n // if (queryObject.predefined_search_predicate) {\n // filters.$and.push(queryObject.predefined_search_predicate);\n // }\n\n const queryData = {\n offset: 0,\n limit: Number(queryObject.limit) + Number(queryObject.offset),\n // fields: queryObject.fields || [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: queryObject.groupBy || groupByFieldName,\n // @ts-ignore\n populateMedia: queryObject.populateMedia || toPopulateMedia,\n populateGroup: queryObject.populateGroup || true,\n groupFilter: {\n limit: Number(queryObject.groupFilter.limit) + Number(queryObject.groupFilter.offset) || kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane,\n offset: 0,\n filters: filters,\n // @ts-ignore\n populate: queryObject.groupFilter.populate || toPopulate,\n // @ts-ignore\n populateMedia: queryObject.groupFilter.populateMedia || toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n\n\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setRecordsInSwimlane(recordsInSwimlane);\n // setFilters(filters);\n setQueryDataLoaded(true);\n\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n } else {\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n const queryData = {\n offset: 0,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane || 10,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n setRecordsInSwimlane(recordsInSwimlane);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n setQueryDataLoaded(true)\n }\n\n // triggerGetSolidEntities(queryString);\n setSelectedRecords([]);\n }\n }\n }, [isDeleteSolidEntitiesSucess, groupByFieldName, solidKanbanViewMetaData]);\n\n // clickable link allowing one to open the detail / form view.\n\n // handle bulk deletion\n const deleteBulk = () => {\n let deleteList: any = [];\n selectedRecords.forEach((element: any) => {\n deleteList.push(element.id);\n });\n deleteManySolidEntities(deleteList);\n setDialogVisible(false);\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n }\n\n\n // Individual Swimlane Load More\n const handleLoadMore = async (groupByField: string) => {\n const { offset, limit } = kanbanLoadMoreData[groupByField];\n kanbanLoadMoreData[groupByField].offset = offset + limit;\n try {\n const queryData = {\n offset: offset + limit,\n limit: limit,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n filters: {\n [groupByFieldName]: {\n $in: [groupByField],\n },\n ...filters\n }\n }\n\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n // router.push(`?${queryString}`);\n const data: any = await triggerGetSolidEntities(queryString);\n const newRecords = data.data.records;\n const mergeData = (\n kanbanViewData: any[],\n newRecords: any[],\n groupByField: string\n ) => {\n // Find the group matching the specified groupByField\n const originalData = structuredClone(kanbanViewData);\n const targetGroup = originalData.find(\n (group: any) => group.groupName === groupByField\n );\n if (targetGroup) {\n const { groupData } = targetGroup;\n\n if (targetGroup.groupData) {\n // Extract existing records\n const existingRecords = targetGroup.groupData.records;\n const updatedRecords = [...existingRecords, ...newRecords];\n targetGroup.groupData.records = updatedRecords\n\n\n // Update the meta data (you can adjust this logic as needed)\n groupData.meta.prevPage = groupData.meta.currentPage\n groupData.meta.currentPage = groupData.meta.currentPage + 1\n groupData.meta.nextPage = groupData.meta.currentPage + 1\n }\n }\n return originalData;\n };\n\n\n const updatedData = mergeData(kanbanViewData, newRecords, groupByField);\n setKanbanViewData(updatedData);\n const loadmoredata = Object.entries(updatedData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: (value.groupData.meta.currentPage - 1) * value.groupData.meta.perPage,\n limit: value.groupData.meta.perPage,\n count: value.groupData.meta.totalRecords\n };\n return acc;\n }, {});\n setKanbanLoadMoreData(loadmoredata)\n\n } catch (error) {\n console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error);\n }\n };\n\n\n // Handle drag-and-drop functionality\n // @ts-ignore\n const onDragEnd = async (result: DropResult): void => {\n const { source, destination } = result;\n if (!destination) return;\n\n const sourceGroupName = source.droppableId;\n const destinationGroupName = destination.droppableId;\n\n // Find the source and destination groups\n const sourceGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === sourceGroupName);\n const destinationGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === destinationGroupName);\n\n if (sourceGroupIndex === -1 || destinationGroupIndex === -1) return;\n\n // If dragging within the same group\n if (sourceGroupName === destinationGroupName) {\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n const updatedRecords = [...group.groupData.records];\n const [movedItem] = updatedRecords.splice(source.index, 1); // Remove the item\n updatedRecords.splice(destination.index, 0, movedItem); // Insert at the new position\n\n return {\n ...group,\n groupData: {\n ...group.groupData,\n records: updatedRecords,\n },\n };\n }\n return group;\n })\n );\n return;\n }\n\n // Deep clone the source and destination groups\n const sourceGroup = JSON.parse(JSON.stringify(kanbanViewData[sourceGroupIndex]));\n const destinationGroup = JSON.parse(JSON.stringify(kanbanViewData[destinationGroupIndex]));\n\n // Clone the records for immutability\n const sourceRecords = [...sourceGroup.groupData.records];\n const destinationRecords = [...destinationGroup.groupData.records];\n\n // Remove the item from the source\n const [movedItem] = sourceRecords.splice(source.index, 1);\n\n // Create a mutable copy of the moved item\n const updatedItem = { ...movedItem, status: destinationGroupName };\n\n // Add the updated item to the destination\n destinationRecords.splice(destination.index, 0, updatedItem);\n\n // Update the group data\n sourceGroup.groupData.records = sourceRecords;\n destinationGroup.groupData.records = destinationRecords;\n\n // Update the kanbanViewData state\n const oldkanbanViewData = structuredClone(kanbanViewData);\n try {\n const formData = new FormData();\n formData.append(groupByFieldName, destinationGroupName);\n // Update the kanbanViewData state\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n return sourceGroup;\n }\n if (group.groupName === destinationGroupName) {\n return destinationGroup;\n }\n return group;\n })\n );\n const kanbanUpdateResponse = await patchKanbanView({ id: +movedItem.id, data: formData }).unwrap();\n\n if (kanbanUpdateResponse?.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.IS_SUCCESS, detail: ERROR_MESSAGES.KANBAN_UPDATED }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DUPLICATE_KEY, detail: kanbanUpdateResponse?.error }));\n // Update the kanbanViewData state\n setKanbanViewData(oldkanbanViewData);\n }\n } catch (error: any) {\n // 6. Handle 500 or network errors\n console.error(ERROR_MESSAGES.API_ERROR, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n setKanbanViewData(oldkanbanViewData);\n }\n };\n\n\n // Handle SwimLane Pagination\n const handleSwimLanePagination = async () => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n const queryData = {\n offset: swimLaneCurrentPageNumber * swimlanesCount,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populate: toPopulate,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n\n }\n // sort: [`id:desc`],\n };\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n const data: any = await triggerGetSolidEntities(queryString);\n if (data && data?.data?.groupRecords.length > 0) {\n const updatedData = [...kanbanViewData, ...data.data.groupRecords];\n setKanbanViewData(updatedData);\n }\n setSwimLaneCurrentPageNumber(swimLaneCurrentPageNumber + 1)\n }\n }\n\n\n // Handle the custom filter and Search Filter\n const handleApplyCustomFilter = async (filterPredicates: any, persistFilter: boolean = false) => {\n\n if (solidKanbanViewMetaData) {\n const queryfilter = {\n $and: [\n ]\n }\n\n if (filterPredicates.custom_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n const customFilter = filterPredicates;\n const updatedFilter = { ...(filters || {}), ...(queryfilter || {}) };\n\n // Then update state\n setFilters(updatedFilter);\n\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n // const { toPopulate, toPopulateMedia } = initialFilterMethod();\n\n const queryData = {\n offset: 0,\n limit: swimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: updatedFilter,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n }\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n // s_filter and c_filter format that needs to be passed to the router\n // only present if handleCustomFilter is applied\n if (customFilter) {\n const urlData = structuredClone(queryData);\n // @ts-ignore\n delete urlData.filters;\n // urlData.s_filter = customFilter.s_filter || {};\n // urlData.c_filter = customFilter.c_filter || {};\n // @ts-ignore\n urlData.custom_filter_predicate = customFilter.custom_filter_predicate || {};\n // @ts-ignore\n urlData.search_predicate = customFilter.search_predicate || {};\n // @ts-ignore\n setFilterObjectToLocalStorage(urlData);\n }\n\n\n const data: any = await triggerGetSolidEntities(queryString);\n\n // Update the kanban view data with the new data based on filter\n setSwimLaneCurrentPageNumber(1);\n if (data && data?.data?.groupRecords.length > 0) {\n const updatedData = [...data.data.groupRecords];\n setKanbanViewData(updatedData);\n }\n setSelectedRecords([]);\n\n\n }\n\n }\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : \"form\";\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName\n const headerRequestStatusLabel =\n isDeleteSolidEntitiesLoading\n ? \"Deleting...\"\n : isPatchKanbanViewLoading\n ? \"Updating...\"\n : loading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex flex-column flex-grow-1\">\n <div className=\"solid-list-surface solid-kanban-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-kanban-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true &&\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n }\n\n <p className=\"m-0 view-title solid-text-wrapper\">{kanbanViewTitle}</p>\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&\n <div className=\"hidden lg:flex\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n }\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.create !== false &&\n <SolidCreateButton createButtonUrl={createButtonUrl} createActionQueryParams={createActionQueryParams} responsiveIconOnly={true} />\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'delete')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.delete !== false && selectedRecords.length > 0 && <SolidButton\n type=\"button\"\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => setDialogVisible(true)}\n >\n Delete\n </SolidButton>}\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => {\n window.location.reload()\n }}\n aria-label=\"Refresh board\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n <SolidKanbanViewConfigure\n solidKanbanViewMetaData={solidKanbanViewMetaData}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={() => window.location.reload()}\n />\n </div>\n </div>\n {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true && showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n )}\n </div>\n\n <style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>\n {solidKanbanViewMetaData && kanbanViewData &&\n <KanbanBoard groupByFieldName={groupByFieldName} kanbanViewData={kanbanViewData} maxSwimLanesCount={maxSwimLanesCount} solidKanbanViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLanePagination={handleSwimLanePagination} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editBaseUrl}></KanbanBoard>\n }\n </div>\n </div>\n\n <SolidDialog\n open={isDialogVisible}\n onOpenChange={(open) => {\n if (!open) {\n onDeleteClose();\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head\">\n <SolidDialogTitle>Confirm Delete</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to delete the selected records?</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions\">\n <SolidButton variant=\"destructive\" size=\"sm\" autoFocus onClick={deleteBulk}>\n Delete\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={onDeleteClose}>\n Cancel\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Kanban Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <KanbanUserViewLayout solidKanbanViewMetaData={solidKanbanViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidKanbanView.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { DropResult } from \"@hello-pangea/dnd\";\nimport qs from \"qs\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport KanbanBoard from \"./KanbanBoard\";\nimport CompactImage from '../../../resources/images/layout/images/compact.png';\nimport CozyImage from '../../../resources/images/layout/images/cozy.png';\nimport ComfortableImage from '../../../resources/images/layout/images/comfortable.png';\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { SolidKanbanViewConfigure } from \"./SolidKanbanViewConfigure\";\nimport { KanbanUserViewLayout } from \"./KanbanUserViewLayout\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setFilterObjectToLocalStorage, getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { solidGet } from \"../../../http/solidHttp\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\nimport { kebabCase } from \"lodash\";\n\ntype SolidKanbanViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n};\n\ntype KanbanSwimlaneDefinition = {\n value: string;\n label: string;\n};\n\nconst getKanbanSortParam = (sortValue?: string) => {\n if (!sortValue) {\n return \"id:asc\";\n }\n\n return sortValue.includes(\":\") ? sortValue : `${sortValue}:asc`;\n};\n\nconst createEmptyKanbanGroup = (\n definition: KanbanSwimlaneDefinition,\n recordsInSwimlane: number\n) => ({\n groupName: definition.value,\n groupLabel: definition.label,\n groupData: {\n records: [],\n meta: {\n totalRecords: 0,\n perPage: recordsInSwimlane,\n currentPage: 1,\n prevPage: null,\n nextPage: null,\n },\n },\n});\n\nconst mergeKanbanGroupsWithDefinitions = (\n groupRecords: any[],\n swimlaneDefinitions: KanbanSwimlaneDefinition[],\n recordsInSwimlane: number\n) => {\n if (!swimlaneDefinitions.length) {\n return groupRecords;\n }\n\n const groupMap = new Map(\n (groupRecords || []).map((group: any) => [\n String(group?.groupName),\n {\n ...group,\n groupName: String(group?.groupName ?? \"\"),\n },\n ])\n );\n\n return swimlaneDefinitions.map((definition) => {\n const existingGroup = groupMap.get(definition.value);\n if (existingGroup) {\n return {\n ...existingGroup,\n groupName: definition.value,\n groupLabel: definition.label,\n };\n }\n\n return createEmptyKanbanGroup(definition, recordsInSwimlane);\n });\n};\n\n\nexport const SolidKanbanView = (params: SolidKanbanViewParams) => {\n\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch()\n\n const solidGlobalSearchElementRef = useRef();\n const router = useRouter();\n const searchParams = useSearchParams();\n // TODO: The initial filter state will be created based on the fields which are present on this kanban view. \n const [filters, setFilters] = useState<any>();\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n const [showArchived, setShowArchived] = useState(false);\n const sizeOptions = [\n { label: 'Compact', value: 'small', image: CompactImage },\n { label: 'Cozy', value: 'normal', image: CozyImage },\n { label: 'Comfortable', value: 'large', image: ComfortableImage }\n ]\n const [size, setSize] = useState<string | any>(sizeOptions[1].value);\n const [viewModes, setViewModes] = useState<any>([]);\n const [groupByFieldName, setGroupByFieldName] = useState<string>(\"\");\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [filterQueryString, setFilterQueryString] = useState<any>();\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [swimlaneDefinitions, setSwimlaneDefinitions] = useState<KanbanSwimlaneDefinition[]>([]);\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const pushFiltersToRouter = (filterQueryString: any) => {\n // @ts-ignore\n router.push(`?${filterQueryString}`, undefined, { shallow: true });\n };\n\n useEffect(() => {\n if (filterQueryString) {\n pushFiltersToRouter(filterQueryString);\n }\n }, [filterQueryString]);\n\n\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findMany'),\n permissionExpression('importTransaction', 'create'),\n permissionExpression('exportTransaction', 'create'),\n permissionExpression('userViewMetadata', 'create'),\n permissionExpression('savedFilters', 'create')\n ]\n const queryData = {\n permissionNames: permissionNames\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n\n // Create the RTK slices for this entity\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useDeleteMultipleSolidEntitiesMutation,\n useLazyGetSolidEntitiesQuery,\n usePatchUpdateSolidEntityMutation\n } = entityApi;\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n // Get the kanban view layout & metadata first. \n const kanbanViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"kanban\",\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n const [kanbanViewMetaData, setKanbanViewMetaData] = useState<any>({});\n\n const { data: solidKanbanViewMetaData } = useGetSolidViewLayoutQuery(kanbanViewMetaDataQs);\n\n const initialFilterMethod = () => {\n\n const solidView = solidKanbanViewMetaData.data.solidView;\n const solidFieldsMetadata = solidKanbanViewMetaData.data.solidFieldsMetadata;\n\n const initialFilters: any = {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n function findCardNode(nodes: any[] = []): any {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n }\n function extractFields(nodes: any, result: any = []) {\n if (!nodes) return result;\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (nodes.children) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n }\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView.layout;\n const layoutFields = extractFields(fieldSource);\n\n for (let i = 0; i < layoutFields.length; i++) {\n const column = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[column.attrs.name];\n if (fieldMetadata) {\n\n // Form the initial filters after iterating over the columns and field metadata. \n if (['int', 'bigint', 'float', 'decimal'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['date', 'datetime', 'time', 'boolean'].includes(fieldMetadata.type)) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.EQUALS }\n }\n else if (['relation', 'selectionStatic', 'selectionDynamic'].includes(fieldMetadata.type)) {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n else {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.STARTS_WITH }\n }\n\n if (column.attrs.name === 'id') {\n initialFilters[column.attrs.name] = { value: null, matchMode: FilterMatchMode.IN }\n }\n\n // Form the \"toPopulate\" array. \n if (fieldMetadata.type === 'relation') {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n }\n\n // setFilters(initialFilters);\n const recordsInSwimlane = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane : 10;\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n // setRecordsInSwimlane(recordsInSwimlane);\n // setToPopulate(toPopulate);\n // setToPopulateMedia(toPopulateMedia);\n return { recordsInSwimlane, toPopulate, toPopulateMedia }\n }\n\n\n // Initial Filter data \n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n setKanbanViewMetaData(solidKanbanViewMetaData);\n setViewModes(solidKanbanViewMetaData?.data?.viewModes);\n setGroupByFieldName(solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy || \"\");\n }\n }, [solidKanbanViewMetaData]);\n\n // All kanban view state.\n const [kanbanViewData, setKanbanViewData] = useState<any>([]);\n const [kanbanLoadMoreData, setKanbanLoadMoreData] = useState<any>({});\n const [recordsInSwimlane, setRecordsInSwimlane] = useState(10);\n const [selectedRecords, setSelectedRecords] = useState<any[]>([]);\n const [loading, setLoading] = useState<boolean>(true);\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [editActionQueryParams, setEditActionQueryParams] = useState<Record<string, string>>({});\n const [columnsCount, setColumnsCount] = useState(5);\n const [swimLaneCurrentPageNumber, setSwimLaneCurrentPageNumber] = useState(1);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);\n const [maxSwimLanesCount, setMaxSwimLanesCount] = useState<number>(0);\n const [rawKanbanGroupRecords, setRawKanbanGroupRecords] = useState<any[]>([]);\n const [serverSwimLaneCount, setServerSwimLaneCount] = useState<number>(0);\n const pathname = usePathname();\n // @ts-ignore\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n // Get the kanban view data.\n // const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();\n const [triggerGetSolidEntities, { data: solidEntityKanbanViewData }] = useLazyGetSolidEntitiesQuery();\n\n // Delete mutation \n const [\n deleteManySolidEntities,\n {\n isLoading: isDeleteSolidEntitiesLoading,\n isSuccess: isDeleteSolidEntitiesSucess,\n },\n ] = useDeleteMultipleSolidEntitiesMutation();\n const [\n patchKanbanView,\n {\n isLoading: isPatchKanbanViewLoading,\n },\n ] = usePatchUpdateSolidEntityMutation();\n\n // After data is fetched populate the kanban view state so as to be able to render the data. \n useEffect(() => {\n if (solidEntityKanbanViewData) {\n setServerSwimLaneCount(solidEntityKanbanViewData?.meta?.totalRecords || 0);\n setRawKanbanGroupRecords(solidEntityKanbanViewData?.groupRecords || []);\n setLoading(false);\n }\n }, [solidEntityKanbanViewData]);\n\n useEffect(() => {\n const mergedKanbanGroupData = mergeKanbanGroupsWithDefinitions(\n rawKanbanGroupRecords,\n swimlaneDefinitions,\n recordsInSwimlane\n );\n setKanbanViewData(mergedKanbanGroupData);\n setMaxSwimLanesCount(swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : serverSwimLaneCount);\n\n const loadmoredata = Object.entries(mergedKanbanGroupData).reduce((acc: any, [, value]: any) => {\n acc[value.groupName] = {\n offset: ((value.groupData?.meta?.currentPage || 1) - 1) * (value.groupData?.meta?.perPage || recordsInSwimlane),\n limit: value.groupData?.meta?.perPage || recordsInSwimlane,\n count: value.groupData?.meta?.totalRecords || 0\n };\n return acc;\n }, {});\n\n setKanbanLoadMoreData(loadmoredata);\n }, [rawKanbanGroupRecords, recordsInSwimlane, serverSwimLaneCount, swimlaneDefinitions]);\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const kanbanViewLayoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs;\n const createActionUrl = kanbanViewLayoutAttrs?.createAction && kanbanViewLayoutAttrs?.createAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = kanbanViewLayoutAttrs?.editAction && kanbanViewLayoutAttrs?.editAction?.type === \"custom\" ? kanbanViewLayoutAttrs?.editAction?.customComponent : \"form\";\n\n if (kanbanViewLayoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: kanbanViewLayoutAttrs.createAction.name,\n actionType: kanbanViewLayoutAttrs.createAction.type,\n actionContext: kanbanViewLayoutAttrs.createAction.context,\n });\n }\n if (kanbanViewLayoutAttrs?.editAction) {\n setEditActionQueryParams({\n actionName: kanbanViewLayoutAttrs.editAction.name,\n actionType: kanbanViewLayoutAttrs.editAction.type,\n actionContext: kanbanViewLayoutAttrs.editAction.context,\n });\n }\n\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n useEffect(() => {\n const loadSwimlaneDefinitions = async () => {\n const fieldMeta = solidKanbanViewMetaData?.data?.solidFieldsMetadata?.[groupByFieldName];\n const layoutAttrs = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs || {};\n\n if (!groupByFieldName || !fieldMeta) {\n setSwimlaneDefinitions([]);\n return;\n }\n\n if (fieldMeta.type === \"selectionStatic\" && Array.isArray(fieldMeta.selectionStaticValues)) {\n const staticDefinitions = fieldMeta.selectionStaticValues\n .map((item: string) => {\n const [rawValue, rawLabel] = String(item).split(\":\");\n const value = (rawValue ?? \"\").trim();\n const label = (rawLabel ?? rawValue ?? \"\").trim();\n return { value, label };\n })\n .filter((item: KanbanSwimlaneDefinition) => item.value !== \"\");\n\n setSwimlaneDefinitions(staticDefinitions);\n return;\n }\n\n if (\n fieldMeta.type === \"relation\" &&\n fieldMeta.relationType === \"many-to-one\" &&\n fieldMeta.relationCoModelSingularName\n ) {\n try {\n const orderBy = getKanbanSortParam(layoutAttrs.swimlanesOrderBy);\n const relationUserKeyField = fieldMeta?.relationModel?.userKeyField?.name || \"id\";\n const response = await solidGet(`/${kebabCase(fieldMeta.relationCoModelSingularName)}`, {\n params: {\n offset: 0,\n limit: 100,\n sort: [orderBy],\n },\n });\n\n const records = response?.data?.data?.records || [];\n const relationDefinitions = records\n .map((record: any) => ({\n value: String(record?.id ?? \"\"),\n label: String(record?.[relationUserKeyField] ?? record?.id ?? \"\"),\n }))\n .filter((item: KanbanSwimlaneDefinition) => item.value !== \"\");\n\n setSwimlaneDefinitions(relationDefinitions);\n return;\n } catch (error) {\n console.error(ERROR_MESSAGES.API_ERROR, error);\n }\n }\n\n setSwimlaneDefinitions([]);\n };\n\n loadSwimlaneDefinitions();\n }, [groupByFieldName, solidKanbanViewMetaData])\n\n // Fetch data after toPopulate has been populated...\n useEffect(() => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n const resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;\n if (groupByFieldName) {\n\n const queryObject = getFilterObjectFromLocalStorage();\n let queryString = \"\";\n if (queryObject) {\n const filters = {\n $and: []\n }\n if (queryObject.custom_filter_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.custom_filter_predicate);\n }\n if (queryObject.search_predicate) {\n // @ts-ignore\n filters.$and.push(queryObject.search_predicate);\n }\n // if (queryObject.saved_filter_predicate) {\n // filters.$and.push(queryObject.saved_filter_predicate);\n // }\n // if (queryObject.predefined_search_predicate) {\n // filters.$and.push(queryObject.predefined_search_predicate);\n // }\n\n const queryData = {\n offset: 0,\n limit: swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : Number(queryObject.limit) + Number(queryObject.offset),\n // fields: queryObject.fields || [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: queryObject.groupBy || groupByFieldName,\n // @ts-ignore\n populateMedia: queryObject.populateMedia || toPopulateMedia,\n populateGroup: queryObject.populateGroup || true,\n groupFilter: {\n limit: Number(queryObject.groupFilter.limit) + Number(queryObject.groupFilter.offset) || kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane,\n offset: 0,\n filters: filters,\n // @ts-ignore\n populate: queryObject.groupFilter.populate || toPopulate,\n // @ts-ignore\n populateMedia: queryObject.groupFilter.populateMedia || toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n\n\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setRecordsInSwimlane(recordsInSwimlane);\n // setFilters(filters);\n setQueryDataLoaded(true);\n\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n } else {\n const { recordsInSwimlane, toPopulate, toPopulateMedia } = initialFilterMethod();\n const queryData = {\n offset: 0,\n limit: resolvedSwimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane || 10,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n // sort: [`id:desc`],\n };\n setRecordsInSwimlane(recordsInSwimlane);\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n setQueryDataLoaded(true)\n }\n\n // triggerGetSolidEntities(queryString);\n setSelectedRecords([]);\n }\n }\n }, [groupByFieldName, isDeleteSolidEntitiesSucess, solidKanbanViewMetaData, swimlaneDefinitions]);\n\n // clickable link allowing one to open the detail / form view.\n\n // handle bulk deletion\n const deleteBulk = () => {\n let deleteList: any = [];\n selectedRecords.forEach((element: any) => {\n deleteList.push(element.id);\n });\n deleteManySolidEntities(deleteList);\n setDialogVisible(false);\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n }\n\n\n // Individual Swimlane Load More\n const handleLoadMore = async (groupByField: string) => {\n const { offset, limit } = kanbanLoadMoreData[groupByField];\n kanbanLoadMoreData[groupByField].offset = offset + limit;\n try {\n const queryData = {\n offset: offset + limit,\n limit: limit,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n filters: {\n [groupByFieldName]: {\n $in: [groupByField],\n },\n ...filters\n }\n }\n\n\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n // router.push(`?${queryString}`);\n const data: any = await triggerGetSolidEntities(queryString);\n const newRecords = data.data.records;\n const mergeData = (\n kanbanViewData: any[],\n newRecords: any[],\n groupByField: string\n ) => {\n // Find the group matching the specified groupByField\n const originalData = structuredClone(kanbanViewData);\n const targetGroup = originalData.find(\n (group: any) => group.groupName === groupByField\n );\n if (targetGroup) {\n const { groupData } = targetGroup;\n\n if (targetGroup.groupData) {\n // Extract existing records\n const existingRecords = targetGroup.groupData.records;\n const updatedRecords = [...existingRecords, ...newRecords];\n targetGroup.groupData.records = updatedRecords\n\n\n // Update the meta data (you can adjust this logic as needed)\n groupData.meta.prevPage = groupData.meta.currentPage\n groupData.meta.currentPage = groupData.meta.currentPage + 1\n groupData.meta.nextPage = groupData.meta.currentPage + 1\n }\n }\n return originalData;\n };\n\n\n const updatedData = mergeData(kanbanViewData, newRecords, groupByField);\n setKanbanViewData(updatedData);\n setRawKanbanGroupRecords((previousGroups: any[]) => {\n const existingGroups = Array.isArray(previousGroups) ? previousGroups : [];\n return updatedData\n .filter((group: any) => (group.groupData?.meta?.totalRecords || 0) > 0)\n .map((group: any) => {\n const existingGroup = existingGroups.find((item: any) => String(item.groupName) === String(group.groupName));\n return existingGroup ? { ...existingGroup, ...group } : group;\n });\n })\n\n } catch (error) {\n console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error);\n }\n };\n\n\n // Handle drag-and-drop functionality\n // @ts-ignore\n const onDragEnd = async (result: DropResult): void => {\n const { source, destination } = result;\n if (!destination) return;\n\n const sourceGroupName = source.droppableId;\n const destinationGroupName = destination.droppableId;\n\n // Find the source and destination groups\n const sourceGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === sourceGroupName);\n const destinationGroupIndex = kanbanViewData.findIndex((group: any) => group.groupName === destinationGroupName);\n\n if (sourceGroupIndex === -1 || destinationGroupIndex === -1) return;\n\n // If dragging within the same group\n if (sourceGroupName === destinationGroupName) {\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n const updatedRecords = [...group.groupData.records];\n const [movedItem] = updatedRecords.splice(source.index, 1); // Remove the item\n updatedRecords.splice(destination.index, 0, movedItem); // Insert at the new position\n\n return {\n ...group,\n groupData: {\n ...group.groupData,\n records: updatedRecords,\n },\n };\n }\n return group;\n })\n );\n return;\n }\n\n // Deep clone the source and destination groups\n const sourceGroup = JSON.parse(JSON.stringify(kanbanViewData[sourceGroupIndex]));\n const destinationGroup = JSON.parse(JSON.stringify(kanbanViewData[destinationGroupIndex]));\n\n // Clone the records for immutability\n const sourceRecords = [...sourceGroup.groupData.records];\n const destinationRecords = [...destinationGroup.groupData.records];\n\n // Remove the item from the source\n const [movedItem] = sourceRecords.splice(source.index, 1);\n\n // Create a mutable copy of the moved item\n const updatedItem = groupByFieldName\n ? { ...movedItem, [groupByFieldName]: destinationGroupName }\n : movedItem;\n\n // Add the updated item to the destination\n destinationRecords.splice(destination.index, 0, updatedItem);\n\n // Update the group data\n sourceGroup.groupData.records = sourceRecords;\n destinationGroup.groupData.records = destinationRecords;\n\n // Update the kanbanViewData state\n const oldkanbanViewData = structuredClone(kanbanViewData);\n try {\n const formData = new FormData();\n formData.append(groupByFieldName, destinationGroupName);\n // Update the kanbanViewData state\n setKanbanViewData((prevData: typeof kanbanViewData) =>\n prevData.map((group: any) => {\n if (group.groupName === sourceGroupName) {\n return sourceGroup;\n }\n if (group.groupName === destinationGroupName) {\n return destinationGroup;\n }\n return group;\n })\n );\n const kanbanUpdateResponse = await patchKanbanView({ id: +movedItem.id, data: formData }).unwrap();\n\n if (kanbanUpdateResponse?.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.IS_SUCCESS, detail: ERROR_MESSAGES.KANBAN_UPDATED }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DUPLICATE_KEY, detail: kanbanUpdateResponse?.error }));\n // Update the kanbanViewData state\n setKanbanViewData(oldkanbanViewData);\n }\n } catch (error: any) {\n // 6. Handle 500 or network errors\n console.error(ERROR_MESSAGES.API_ERROR, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: error?.data?.message || ERROR_MESSAGES.SOMETHING_WRONG }));\n setKanbanViewData(oldkanbanViewData);\n }\n };\n\n\n // Handle SwimLane Pagination\n const handleSwimLanePagination = async () => {\n\n if (solidKanbanViewMetaData) {\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n const resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;\n const queryData = {\n offset: swimLaneCurrentPageNumber * swimlanesCount,\n limit: resolvedSwimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populate: toPopulate,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: filters,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n\n }\n // sort: [`id:desc`],\n };\n // fields=status&groupBy=status&fields=count(status)&populateGroup=true\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n const data: any = await triggerGetSolidEntities(queryString);\n if (data && data?.data?.groupRecords.length > 0) {\n setRawKanbanGroupRecords((previousGroups: any[]) => {\n const groupMap = new Map((previousGroups || []).map((group: any) => [String(group.groupName), group]));\n data.data.groupRecords.forEach((group: any) => {\n groupMap.set(String(group.groupName), group);\n });\n return Array.from(groupMap.values());\n });\n }\n setSwimLaneCurrentPageNumber(swimLaneCurrentPageNumber + 1)\n }\n }\n\n\n // Handle the custom filter and Search Filter\n const handleApplyCustomFilter = async (filterPredicates: any, persistFilter: boolean = false) => {\n\n if (solidKanbanViewMetaData) {\n const queryfilter = {\n $and: [\n ]\n }\n\n if (filterPredicates.custom_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n // @ts-ignore\n queryfilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n const customFilter = filterPredicates;\n const updatedFilter = { ...(filters || {}), ...(queryfilter || {}) };\n\n // Then update state\n setFilters(updatedFilter);\n\n\n const swimlanesCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;\n const resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;\n // const { toPopulate, toPopulateMedia } = initialFilterMethod();\n\n const queryData = {\n offset: 0,\n limit: resolvedSwimlanesCount,\n // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],\n groupBy: groupByFieldName,\n populateMedia: toPopulateMedia,\n populateGroup: true,\n groupFilter: {\n limit: recordsInSwimlane,\n offset: 0,\n filters: updatedFilter,\n populate: toPopulate,\n populateMedia: toPopulateMedia\n }\n }\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true\n });\n\n // s_filter and c_filter format that needs to be passed to the router\n // only present if handleCustomFilter is applied\n if (customFilter) {\n const urlData = structuredClone(queryData);\n // @ts-ignore\n delete urlData.filters;\n // urlData.s_filter = customFilter.s_filter || {};\n // urlData.c_filter = customFilter.c_filter || {};\n // @ts-ignore\n urlData.custom_filter_predicate = customFilter.custom_filter_predicate || {};\n // @ts-ignore\n urlData.search_predicate = customFilter.search_predicate || {};\n // @ts-ignore\n setFilterObjectToLocalStorage(urlData);\n }\n\n\n const data: any = await triggerGetSolidEntities(queryString);\n\n // Update the kanban view data with the new data based on filter\n setSwimLaneCurrentPageNumber(1);\n if (data && data?.data?.groupRecords.length > 0) {\n setRawKanbanGroupRecords([...data.data.groupRecords]);\n } else {\n setRawKanbanGroupRecords([]);\n }\n setSelectedRecords([]);\n\n\n }\n\n }\n\n useEffect(() => {\n if (solidKanbanViewMetaData) {\n const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === \"custom\" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : \"form\";\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl)\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl)\n }\n }\n }, [solidKanbanViewMetaData])\n\n const kanbanViewTitle = solidKanbanViewMetaData?.data?.solidView?.displayName\n const entityDisplayName = solidKanbanViewMetaData?.data?.solidView?.model?.displayName || params.modelName;\n const headerRequestStatusLabel = isDeleteSolidEntitiesLoading ? \"Deleting...\" : isPatchKanbanViewLoading ? \"Updating...\" : loading || !queryDataLoaded ? \"Loading...\" : null;\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n\n console.log(`Logging kanban data: `, solidKanbanViewMetaData); \n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex flex-column flex-grow-1\">\n <div className=\"solid-list-surface solid-kanban-surface flex flex-column flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-kanban-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n {params.embeded !== true &&\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n }\n\n <p className=\"m-0 view-title solid-text-wrapper\">{kanbanViewTitle}</p>\n <div className=\"hidden lg:flex\">\n {/* Keep global search mounted for now because kanban bootstrap/filter hydration still flows through this element. */}\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n </div>\n\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.create !== false &&\n <SolidCreateButton createButtonUrl={createButtonUrl} createActionQueryParams={createActionQueryParams} responsiveIconOnly={true} />\n }\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'delete')}`) && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.delete !== false && selectedRecords.length > 0 && <SolidButton\n type=\"button\"\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => setDialogVisible(true)}\n >\n Delete\n </SolidButton>}\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => {\n window.location.reload()\n }}\n aria-label=\"Refresh board\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n <SolidKanbanViewConfigure\n solidKanbanViewMetaData={solidKanbanViewMetaData}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleRefreshView={() => window.location.reload()}\n />\n </div>\n </div>\n {showGlobalSearchElement && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement viewType=\"kanban\" showSaveFilterPopup={showSaveFilterPopup} setShowSaveFilterPopup={setShowSaveFilterPopup} ref={solidGlobalSearchElementRef} viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>\n </div>\n )}\n </div>\n\n <style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>\n {solidKanbanViewMetaData && kanbanViewData &&\n <KanbanBoard groupByFieldName={groupByFieldName} kanbanViewData={kanbanViewData} maxSwimLanesCount={maxSwimLanesCount} solidKanbanViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLanePagination={handleSwimLanePagination} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editBaseUrl}></KanbanBoard>\n }\n </div>\n </div>\n\n <SolidConfirmDialog\n open={isDialogVisible}\n onCancel={onDeleteClose}\n onConfirm={deleteBulk}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={<p className=\"solid-shadcn-dialog-text\">{`Are you sure you want to delete the selected ${entityDisplayName} records?`}</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Kanban Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <KanbanUserViewLayout solidKanbanViewMetaData={solidKanbanViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n};\n"]}