@solidxai/core-ui 0.1.12-beta.6 → 0.1.12-beta.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 (286) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +19 -17
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +59 -34
  5. package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
  6. package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
  7. package/dist/components/common/BackendReconnectIndicator.js +25 -0
  8. package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
  9. package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
  10. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  11. package/dist/components/common/SettingsComponent.js +7 -3
  12. package/dist/components/common/SettingsComponent.js.map +1 -1
  13. package/dist/components/common/SettingsComponent.module.css +144 -12
  14. package/dist/components/common/SettingsComponent.tsx +22 -3
  15. package/dist/components/common/SolidAdmin.d.ts.map +1 -1
  16. package/dist/components/common/SolidAdmin.js +7 -2
  17. package/dist/components/common/SolidAdmin.js.map +1 -1
  18. package/dist/components/common/SolidAdmin.tsx +7 -2
  19. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
  20. package/dist/components/common/SolidBreadcrumb.js +1 -6
  21. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  22. package/dist/components/common/SolidBreadcrumb.tsx +1 -8
  23. package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
  24. package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
  25. package/dist/components/common/SolidMaterialSymbol.js +69 -0
  26. package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
  27. package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
  28. package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
  29. package/dist/components/common/SolidToastProvider.js +14 -1
  30. package/dist/components/common/SolidToastProvider.js.map +1 -1
  31. package/dist/components/common/SolidToastProvider.tsx +19 -1
  32. package/dist/components/core/card/CardGrid.d.ts +1 -1
  33. package/dist/components/core/card/CardGrid.d.ts.map +1 -1
  34. package/dist/components/core/card/CardGrid.js +2 -2
  35. package/dist/components/core/card/CardGrid.js.map +1 -1
  36. package/dist/components/core/card/CardGrid.tsx +4 -0
  37. package/dist/components/core/card/CardItem.d.ts +2 -0
  38. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  39. package/dist/components/core/card/CardItem.js +7 -2
  40. package/dist/components/core/card/CardItem.js.map +1 -1
  41. package/dist/components/core/card/CardItem.tsx +30 -8
  42. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  43. package/dist/components/core/card/SolidCardView.js +87 -21
  44. package/dist/components/core/card/SolidCardView.js.map +1 -1
  45. package/dist/components/core/card/SolidCardView.tsx +96 -40
  46. package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
  47. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  48. package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
  49. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  50. package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
  51. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
  52. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  53. package/dist/components/core/common/SolidGlobalSearchElement.js +4 -3
  54. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  55. package/dist/components/core/common/SolidGlobalSearchElement.tsx +15 -19
  56. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  57. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +43 -16
  58. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  59. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +24 -2
  60. package/dist/components/core/form/SolidFormFooter.js +1 -1
  61. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  62. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  63. package/dist/components/core/form/SolidFormLayouts.js +1 -1
  64. package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
  65. package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
  66. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  67. package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
  68. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  69. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
  70. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
  72. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  73. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
  74. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
  76. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  77. package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
  78. package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
  79. package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
  80. package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
  81. package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
  82. package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
  83. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  84. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
  85. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  86. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
  87. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  88. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
  89. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  90. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
  91. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  92. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
  93. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  94. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
  95. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
  96. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
  97. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
  98. package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
  99. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  100. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  101. package/dist/components/core/kanban/KanbanBoard.js +2 -2
  102. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  103. package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
  104. package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
  105. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  106. package/dist/components/core/kanban/KanbanCard.js +10 -5
  107. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  108. package/dist/components/core/kanban/KanbanCard.tsx +28 -12
  109. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
  110. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  111. package/dist/components/core/kanban/KanbanColumn.js +2 -2
  112. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  113. package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
  114. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  115. package/dist/components/core/kanban/SolidKanbanView.js +154 -25
  116. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  117. package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
  118. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  119. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  120. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
  121. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  122. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
  123. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidDataTable.js +3 -2
  125. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  126. package/dist/components/core/list/SolidDataTable.tsx +3 -2
  127. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  128. package/dist/components/core/list/SolidListView.js +16 -5
  129. package/dist/components/core/list/SolidListView.js.map +1 -1
  130. package/dist/components/core/list/SolidListView.tsx +20 -8
  131. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  132. package/dist/components/core/list/SolidListViewColumn.js +1 -0
  133. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  134. package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
  135. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  136. package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
  137. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
  139. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
  140. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
  141. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
  142. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
  143. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  144. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
  145. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  146. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
  147. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
  148. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
  149. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
  150. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
  151. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  152. package/dist/components/core/locales/SolidLocale.js +1 -1
  153. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  154. package/dist/components/core/locales/SolidLocale.tsx +1 -0
  155. package/dist/components/core/model/CreateModel.css +26 -0
  156. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  157. package/dist/components/core/model/FieldMetaData.js +21 -3
  158. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  159. package/dist/components/core/model/FieldMetaData.tsx +45 -4
  160. package/dist/components/core/model/FieldMetaDataForm.css +82 -0
  161. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
  162. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  163. package/dist/components/core/model/FieldMetaDataForm.js +246 -235
  164. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  165. package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
  166. package/dist/components/core/model/FieldSelector.js +1 -1
  167. package/dist/components/core/model/FieldSelector.js.map +1 -1
  168. package/dist/components/core/model/FieldSelector.tsx +1 -1
  169. package/dist/components/core/model/ModelMetaData.js +1 -1
  170. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  171. package/dist/components/core/model/ModelMetaData.tsx +1 -1
  172. package/dist/components/core/module/CreateModule.css +55 -2
  173. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  174. package/dist/components/core/module/CreateModule.js +2 -2
  175. package/dist/components/core/module/CreateModule.js.map +1 -1
  176. package/dist/components/core/module/CreateModule.tsx +3 -2
  177. package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
  178. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
  179. package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
  180. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
  181. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
  182. package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
  183. package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
  184. package/dist/components/core/tree/SolidTreeTable.js +2 -2
  185. package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
  186. package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
  187. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  188. package/dist/components/core/tree/SolidTreeView.js +44 -16
  189. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  190. package/dist/components/core/tree/SolidTreeView.tsx +55 -24
  191. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  192. package/dist/components/core/users/CreateUser.js +45 -32
  193. package/dist/components/core/users/CreateUser.js.map +1 -1
  194. package/dist/components/core/users/CreateUser.tsx +15 -4
  195. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
  196. package/dist/components/layout/AdminHeaderActions.js +10 -9
  197. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  198. package/dist/components/layout/AdminHeaderActions.tsx +2 -0
  199. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  200. package/dist/components/layout/AppSidebar.js +2 -1
  201. package/dist/components/layout/AppSidebar.js.map +1 -1
  202. package/dist/components/layout/AppSidebar.tsx +12 -5
  203. package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
  204. package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
  205. package/dist/components/layout/SolidMenuItemIcon.js +20 -0
  206. package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
  207. package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
  208. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  209. package/dist/components/layout/navbar-two-menu.js +6 -7
  210. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  211. package/dist/components/layout/navbar-two-menu.tsx +4 -12
  212. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  213. package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
  214. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  215. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
  216. package/dist/helpers/backendHealthMonitor.d.ts +39 -0
  217. package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
  218. package/dist/helpers/backendHealthMonitor.js +255 -0
  219. package/dist/helpers/backendHealthMonitor.js.map +1 -0
  220. package/dist/helpers/backendHealthMonitor.ts +177 -0
  221. package/dist/helpers/helpers.d.ts +1 -0
  222. package/dist/helpers/helpers.d.ts.map +1 -1
  223. package/dist/helpers/helpers.js +9 -0
  224. package/dist/helpers/helpers.js.map +1 -1
  225. package/dist/helpers/helpers.ts +11 -1
  226. package/dist/helpers/menuItemIcons.d.ts +34 -0
  227. package/dist/helpers/menuItemIcons.d.ts.map +1 -0
  228. package/dist/helpers/menuItemIcons.js +144 -0
  229. package/dist/helpers/menuItemIcons.js.map +1 -0
  230. package/dist/helpers/menuItemIcons.ts +191 -0
  231. package/dist/helpers/relationDisplay.d.ts +3 -0
  232. package/dist/helpers/relationDisplay.d.ts.map +1 -0
  233. package/dist/helpers/relationDisplay.js +92 -0
  234. package/dist/helpers/relationDisplay.js.map +1 -0
  235. package/dist/helpers/relationDisplay.ts +101 -0
  236. package/dist/helpers/settingsPayload.d.ts +1 -0
  237. package/dist/helpers/settingsPayload.d.ts.map +1 -1
  238. package/dist/helpers/settingsPayload.js.map +1 -1
  239. package/dist/helpers/settingsPayload.ts +1 -0
  240. package/dist/helpers/solidIcons.d.ts +2 -0
  241. package/dist/helpers/solidIcons.d.ts.map +1 -1
  242. package/dist/helpers/solidIcons.js +8 -0
  243. package/dist/helpers/solidIcons.js.map +1 -1
  244. package/dist/helpers/solidIcons.tsx +10 -1
  245. package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
  246. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
  247. package/dist/helpers/waitForBackendAvailability.js +35 -22
  248. package/dist/helpers/waitForBackendAvailability.js.map +1 -1
  249. package/dist/helpers/waitForBackendAvailability.ts +18 -12
  250. package/dist/http/solidHttp.d.ts.map +1 -1
  251. package/dist/http/solidHttp.js +10 -4
  252. package/dist/http/solidHttp.js.map +1 -1
  253. package/dist/http/solidHttp.ts +9 -4
  254. package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -0
  255. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  256. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  257. package/dist/redux/api/datasourceIntrospectionApi.ts +4 -0
  258. package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
  259. package/dist/redux/api/fetchBaseQuery.js +9 -3
  260. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  261. package/dist/redux/api/fetchBaseQuery.tsx +9 -3
  262. package/dist/redux/store/StoreProvider.d.ts.map +1 -1
  263. package/dist/redux/store/StoreProvider.js +4 -3
  264. package/dist/redux/store/StoreProvider.js.map +1 -1
  265. package/dist/redux/store/StoreProvider.tsx +4 -3
  266. package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
  267. package/dist/resources/globals.css +341 -49
  268. package/dist/resources/solid-custom.css +464 -11
  269. package/dist/resources/solid-responsive.css +31 -20
  270. package/dist/resources/solid-tailwind-generated.css +1 -1
  271. package/dist/routes/AppEventListener.d.ts.map +1 -1
  272. package/dist/routes/AppEventListener.js +23 -0
  273. package/dist/routes/AppEventListener.js.map +1 -1
  274. package/dist/routes/AppEventListener.tsx +29 -0
  275. package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
  276. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
  277. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  278. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
  279. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  280. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
  281. package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
  282. package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
  283. package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
  284. package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
  285. package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
  286. package/package.json +1 -1
@@ -32,21 +32,26 @@ interface KanbanCardProps {
32
32
  cardNode?: any;
33
33
  DynamicCardWidget?: any;
34
34
  onDelete?: (record: Data) => void;
35
+ onRecover?: (record: Data) => void;
36
+ showArchived?: boolean;
35
37
  }
36
38
 
37
- const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData, index, isDragDisabled = false, setLightboxUrls, setOpenLightbox, editButtonUrl, groupByFieldName, group, cardNode, DynamicCardWidget, onDelete }) => {
39
+ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData, index, isDragDisabled = false, setLightboxUrls, setOpenLightbox, editButtonUrl, groupByFieldName, group, cardNode, DynamicCardWidget, onDelete, onRecover, showArchived }) => {
38
40
  const router = useRouter()
41
+ const isArchivedRecord = data?.deletedAt !== null && data?.deletedAt !== undefined;
39
42
 
40
43
  const persistReturnView = () => {
41
44
  storeCurrentModelViewContext();
42
45
  };
43
46
 
44
47
  const openRecord = () => {
48
+ if (isArchivedRecord) return;
45
49
  persistReturnView();
46
50
  router.push(`${editButtonUrl}/${data?.id}`);
47
51
  };
48
52
 
49
53
  const openEdit = () => {
54
+ if (isArchivedRecord) return;
50
55
  persistReturnView();
51
56
  router.push(`${editButtonUrl}/${data?.id}`);
52
57
  };
@@ -65,14 +70,25 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
65
70
  </button>
66
71
  </SolidDropdownMenuTrigger>
67
72
  <SolidDropdownMenuContent className="solid-custom-overlay" align="end">
68
- <SolidDropdownMenuItem
69
- className="solid-header-dropdown-item"
70
- onSelect={openEdit}
71
- >
72
- <SolidIcon name="si-pencil" className="solid-header-action-button-icon" aria-hidden />
73
- <span className="solid-header-action-button-label">Edit</span>
74
- </SolidDropdownMenuItem>
75
- {onDelete ? (
73
+ {!isArchivedRecord ? (
74
+ <SolidDropdownMenuItem
75
+ className="solid-header-dropdown-item"
76
+ onSelect={openEdit}
77
+ >
78
+ <SolidIcon name="si-pencil" className="solid-header-action-button-icon" aria-hidden />
79
+ <span className="solid-header-action-button-label">Edit</span>
80
+ </SolidDropdownMenuItem>
81
+ ) : null}
82
+ {showArchived && data?.deletedAt !== null && data?.deletedAt !== undefined && onRecover ? (
83
+ <SolidDropdownMenuItem
84
+ className="solid-header-dropdown-item"
85
+ onSelect={() => onRecover(data)}
86
+ >
87
+ <SolidIcon name="si-refresh" className="solid-header-action-button-icon" aria-hidden />
88
+ <span className="solid-header-action-button-label">Recover</span>
89
+ </SolidDropdownMenuItem>
90
+ ) : null}
91
+ {onDelete && (data?.deletedAt === null || data?.deletedAt === undefined) ? (
76
92
  <SolidDropdownMenuItem
77
93
  className="solid-header-dropdown-item solid-header-dropdown-item-danger"
78
94
  onSelect={() => onDelete(data)}
@@ -102,12 +118,12 @@ const KanbanCard: React.FC<KanbanCardProps> = ({ data, solidKanbanViewMetaData,
102
118
  {/* <p className="kanban-card-content">{data.content}</p> */}
103
119
  <div
104
120
  style={{
105
- opacity: snapshot.isDragging ? 0.9 : 1,
121
+ opacity: snapshot.isDragging ? 0.9 : (isArchivedRecord ? 0.55 : 1),
106
122
  transform: snapshot.isDragging ? "rotate(-2deg)" : "",
107
- cursor: isDragDisabled ? "pointer" : "grab"
123
+ cursor: isArchivedRecord ? "default" : (isDragDisabled ? "pointer" : "grab")
108
124
  }}
109
125
  elevation={snapshot.isDragging ? 3 : 1}
110
- className="solid-kanban-card"
126
+ className={`solid-kanban-card${isArchivedRecord ? " greyed-out-row" : ""}`}
111
127
  onClick={openRecord}
112
128
  >
113
129
  {renderKanbanAction(data)}
@@ -20,9 +20,11 @@ interface KanbanColumnProps {
20
20
  toggleFold: (groupByField: string) => void;
21
21
  handleLoadMore: (groupByField: string) => void;
22
22
  onDelete?: (record: GroupData) => void;
23
+ onRecover?: (record: GroupData) => void;
24
+ showArchived?: boolean;
23
25
  setLightboxUrls: any;
24
26
  setOpenLightbox: any;
25
27
  }
26
- declare const KanbanColumn: ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, onDelete, setLightboxUrls, setOpenLightbox, editButtonUrl }: KanbanColumnProps) => import("react/jsx-runtime").JSX.Element;
28
+ declare const KanbanColumn: ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, onDelete, onRecover, setLightboxUrls, setOpenLightbox, editButtonUrl, showArchived }: KanbanColumnProps) => import("react/jsx-runtime").JSX.Element;
27
29
  export default KanbanColumn;
28
30
  //# sourceMappingURL=KanbanColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"AAcA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAA;CACrB;AAGD,QAAA,MAAM,YAAY,yMAAiN,iBAAiB,4CA0EnP,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"AAcA,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAA;CACrB;AAGD,QAAA,MAAM,YAAY,kOAA0O,iBAAiB,4CA0E5Q,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -15,13 +15,13 @@ import { asCompatibleReactNode, CompatibleDroppable } from "../common/dndCompat"
15
15
  import { SolidButton, SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIcon, } from "../../shad-cn-ui";
16
16
  // @ts-ignore
17
17
  var KanbanColumn = function (_a) {
18
- var groupByField = _a.groupByField, solidKanbanViewMetaData = _a.solidKanbanViewMetaData, group = _a.group, groupData = _a.groupData, _b = _a.isKanbanDragEnabled, isKanbanDragEnabled = _b === void 0 ? true : _b, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget, toggleFold = _a.toggleFold, handleLoadMore = _a.handleLoadMore, onDelete = _a.onDelete, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, editButtonUrl = _a.editButtonUrl;
18
+ var groupByField = _a.groupByField, solidKanbanViewMetaData = _a.solidKanbanViewMetaData, group = _a.group, groupData = _a.groupData, _b = _a.isKanbanDragEnabled, isKanbanDragEnabled = _b === void 0 ? true : _b, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget, toggleFold = _a.toggleFold, handleLoadMore = _a.handleLoadMore, onDelete = _a.onDelete, onRecover = _a.onRecover, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, editButtonUrl = _a.editButtonUrl, showArchived = _a.showArchived;
19
19
  return (_jsxs("div", { className: group.folded ? "kanban-column kanban-column-folded" : "kanban-column", children: [_jsxs("div", { className: "kaban-heading-area", children: [group.folded &&
20
20
  _jsx("a", { onClick: function (e) { return toggleFold(groupByField); }, children: _jsxs("div", { className: "flex items-center", children: [_jsxs("div", { className: "kanban-arrow-icon-container", children: [_jsx(SolidIcon, { name: "si-sort-up-fill", "aria-hidden": true }), _jsx(SolidIcon, { name: "si-sort-down-fill", "aria-hidden": true })] }), _jsxs("p", { className: "kanban-group-heading", children: ["".concat(group.label), _jsx("span", { className: "kanban-count-badge", children: group.count })] })] }) }), !group.folded &&
21
21
  _jsx("div", { className: "flex items-center", children: _jsxs("p", { className: "kanban-group-heading", children: ["".concat(group.label), _jsx("span", { className: "kanban-count-badge", children: group.count })] }) }), !group.folded &&
22
22
  _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger kanban-column-cogwheel", "aria-label": "Open ".concat(group.label, " lane options"), children: _jsx(SolidIcon, { name: "si-cog", "aria-hidden": true }) }) }), _jsx(SolidDropdownMenuContent, { className: "solid-custom-overlay kanban-options-panel", align: "start", children: _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item kanban-fold-action-button", onSelect: function () { return toggleFold(groupByField); }, children: [_jsx(SolidIcon, { name: "si-angle-double-left", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Fold" })] }) })] })] }), !group.folded && (_jsx(CompatibleDroppable, { droppableId: groupByField, isDropDisabled: !isKanbanDragEnabled, children: function (provided) { return (_jsxs("div", __assign({ ref: provided.innerRef }, provided.droppableProps, { style: { minHeight: "100px" }, children: [groupData.map(function (data, index) { return (
23
23
  // @ts-ignore
24
- _jsx(KanbanCard, { data: data, solidKanbanViewMetaData: solidKanbanViewMetaData, index: index, isDragDisabled: !isKanbanDragEnabled, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, editButtonUrl: editButtonUrl, groupByFieldName: groupByField, group: group, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget, onDelete: onDelete }, data.id)); }), asCompatibleReactNode(provided.placeholder), group.count > 0 && (group.count > (group.limit * group.currentPage)) &&
24
+ _jsx(KanbanCard, { data: data, solidKanbanViewMetaData: solidKanbanViewMetaData, index: index, isDragDisabled: !isKanbanDragEnabled || Boolean(data === null || data === void 0 ? void 0 : data.deletedAt), setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, editButtonUrl: editButtonUrl, groupByFieldName: groupByField, group: group, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget, onDelete: onDelete, onRecover: onRecover, showArchived: showArchived }, data.id)); }), asCompatibleReactNode(provided.placeholder), group.count > 0 && (group.count > (group.limit * group.currentPage)) &&
25
25
  _jsx(SolidButton, { type: "button", variant: "ghost", size: "sm", className: "kaban-load-more", onClick: function () { return handleLoadMore(groupByField); }, children: "Load more data... (".concat(group.count - (group.limit * group.currentPage), " remaining)") })] }))); } }))] }));
26
26
  };
27
27
  export default KanbanColumn;
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanColumn.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DroppableProvided } from \"@hello-pangea/dnd\";\nimport KanbanCard from \"./KanbanCard\";\nimport { asCompatibleReactNode, CompatibleDroppable } from \"../common/dndCompat\";\nimport {\n SolidButton,\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\n// Define types for props\ninterface Group {\n label: string;\n count: number;\n folded: boolean;\n limit: number;\n currentPage: number;\n}\n\ninterface GroupData {\n id: string;\n title: string;\n groupByField: string;\n}\n\ninterface KanbanColumnProps {\n groupByField: string;\n group: Group;\n groupData: GroupData[];\n isKanbanDragEnabled?: boolean;\n cardNode?: any;\n DynamicCardWidget?: any;\n toggleFold: (groupByField: string) => void;\n handleLoadMore: (groupByField: string) => void;\n onDelete?: (record: GroupData) => void;\n setLightboxUrls: any,\n setOpenLightbox: any\n}\n\n// @ts-ignore\nconst KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled = true, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, onDelete, setLightboxUrls, setOpenLightbox, editButtonUrl }: KanbanColumnProps) => {\n return (\n <div className={group.folded ? \"kanban-column kanban-column-folded\" : \"kanban-column\"}>\n <div className=\"kaban-heading-area\">\n {group.folded &&\n <a onClick={e => toggleFold(groupByField)}>\n <div className=\"flex items-center\">\n <div className=\"kanban-arrow-icon-container\">\n <SolidIcon name=\"si-sort-up-fill\" aria-hidden />\n <SolidIcon name=\"si-sort-down-fill\" aria-hidden />\n </div>\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n </a>\n }\n\n {!group.folded &&\n <div className=\"flex items-center\">\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n }\n {!group.folded &&\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger kanban-column-cogwheel\"\n aria-label={`Open ${group.label} lane options`}\n >\n <SolidIcon name=\"si-cog\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay kanban-options-panel\" align=\"start\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item kanban-fold-action-button\"\n onSelect={() => toggleFold(groupByField)}\n >\n <SolidIcon name=\"si-angle-double-left\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Fold</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n }\n </div>\n {!group.folded && (\n <CompatibleDroppable droppableId={groupByField} isDropDisabled={!isKanbanDragEnabled}>\n {(provided: DroppableProvided) => (\n <div\n ref={provided.innerRef}\n {...provided.droppableProps}\n style={{ minHeight: \"100px\" }}\n >\n {groupData.map((data, index) => (\n // @ts-ignore\n <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} onDelete={onDelete} />\n ))}\n {asCompatibleReactNode(provided.placeholder)}\n {group.count > 0 && (group.count > (group.limit * group.currentPage)) &&\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"kaban-load-more\"\n onClick={() => handleLoadMore(groupByField)}\n >\n {`Load more data... (${group.count - (group.limit * group.currentPage)} remaining)`}\n </SolidButton>\n }\n </div>\n )}\n </CompatibleDroppable>\n )}\n </div>\n );\n};\n\nexport default KanbanColumn;\n"]}
1
+ {"version":3,"file":"KanbanColumn.js","sourceRoot":"","sources":["../../../../src/components/core/kanban/KanbanColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { DroppableProvided } from \"@hello-pangea/dnd\";\nimport KanbanCard from \"./KanbanCard\";\nimport { asCompatibleReactNode, CompatibleDroppable } from \"../common/dndCompat\";\nimport {\n SolidButton,\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\n// Define types for props\ninterface Group {\n label: string;\n count: number;\n folded: boolean;\n limit: number;\n currentPage: number;\n}\n\ninterface GroupData {\n id: string;\n title: string;\n groupByField: string;\n}\n\ninterface KanbanColumnProps {\n groupByField: string;\n group: Group;\n groupData: GroupData[];\n isKanbanDragEnabled?: boolean;\n cardNode?: any;\n DynamicCardWidget?: any;\n toggleFold: (groupByField: string) => void;\n handleLoadMore: (groupByField: string) => void;\n onDelete?: (record: GroupData) => void;\n onRecover?: (record: GroupData) => void;\n showArchived?: boolean;\n setLightboxUrls: any,\n setOpenLightbox: any\n}\n\n// @ts-ignore\nconst KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled = true, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, onDelete, onRecover, setLightboxUrls, setOpenLightbox, editButtonUrl, showArchived }: KanbanColumnProps) => {\n return (\n <div className={group.folded ? \"kanban-column kanban-column-folded\" : \"kanban-column\"}>\n <div className=\"kaban-heading-area\">\n {group.folded &&\n <a onClick={e => toggleFold(groupByField)}>\n <div className=\"flex items-center\">\n <div className=\"kanban-arrow-icon-container\">\n <SolidIcon name=\"si-sort-up-fill\" aria-hidden />\n <SolidIcon name=\"si-sort-down-fill\" aria-hidden />\n </div>\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n </a>\n }\n\n {!group.folded &&\n <div className=\"flex items-center\">\n <p className=\"kanban-group-heading\">{`${group.label}`}<span className=\"kanban-count-badge\">{group.count}</span></p>\n </div>\n }\n {!group.folded &&\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger kanban-column-cogwheel\"\n aria-label={`Open ${group.label} lane options`}\n >\n <SolidIcon name=\"si-cog\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay kanban-options-panel\" align=\"start\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item kanban-fold-action-button\"\n onSelect={() => toggleFold(groupByField)}\n >\n <SolidIcon name=\"si-angle-double-left\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Fold</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n }\n </div>\n {!group.folded && (\n <CompatibleDroppable droppableId={groupByField} isDropDisabled={!isKanbanDragEnabled}>\n {(provided: DroppableProvided) => (\n <div\n ref={provided.innerRef}\n {...provided.droppableProps}\n style={{ minHeight: \"100px\" }}\n >\n {groupData.map((data, index) => (\n // @ts-ignore\n <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled || Boolean(data?.deletedAt)} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} onDelete={onDelete} onRecover={onRecover} showArchived={showArchived} />\n ))}\n {asCompatibleReactNode(provided.placeholder)}\n {group.count > 0 && (group.count > (group.limit * group.currentPage)) &&\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"kaban-load-more\"\n onClick={() => handleLoadMore(groupByField)}\n >\n {`Load more data... (${group.count - (group.limit * group.currentPage)} remaining)`}\n </SolidButton>\n }\n </div>\n )}\n </CompatibleDroppable>\n )}\n </div>\n );\n};\n\nexport default KanbanColumn;\n"]}
@@ -36,12 +36,14 @@ interface KanbanColumnProps {
36
36
  toggleFold: (groupByField: string) => void;
37
37
  handleLoadMore: (groupByField: string) => void;
38
38
  onDelete?: (record: GroupData) => void;
39
+ onRecover?: (record: GroupData) => void;
40
+ showArchived?: boolean;
39
41
  setLightboxUrls: any,
40
42
  setOpenLightbox: any
41
43
  }
42
44
 
43
45
  // @ts-ignore
44
- const KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled = true, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, onDelete, setLightboxUrls, setOpenLightbox, editButtonUrl }: KanbanColumnProps) => {
46
+ const KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData, isKanbanDragEnabled = true, cardNode, DynamicCardWidget, toggleFold, handleLoadMore, onDelete, onRecover, setLightboxUrls, setOpenLightbox, editButtonUrl, showArchived }: KanbanColumnProps) => {
45
47
  return (
46
48
  <div className={group.folded ? "kanban-column kanban-column-folded" : "kanban-column"}>
47
49
  <div className="kaban-heading-area">
@@ -95,7 +97,7 @@ const KanbanColumn = ({ groupByField, solidKanbanViewMetaData, group, groupData,
95
97
  >
96
98
  {groupData.map((data, index) => (
97
99
  // @ts-ignore
98
- <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} onDelete={onDelete} />
100
+ <KanbanCard key={data.id} data={data} solidKanbanViewMetaData={solidKanbanViewMetaData} index={index} isDragDisabled={!isKanbanDragEnabled || Boolean(data?.deletedAt)} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} editButtonUrl={editButtonUrl} groupByFieldName={groupByField} group={group} cardNode={cardNode} DynamicCardWidget={DynamicCardWidget} onDelete={onDelete} onRecover={onRecover} showArchived={showArchived} />
99
101
  ))}
100
102
  {asCompatibleReactNode(provided.placeholder)}
101
103
  {group.count > 0 && (group.count > (group.limit * group.currentPage)) &&
@@ -1 +1 @@
1
- {"version":3,"file":"SolidKanbanView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanView.tsx"],"names":[],"mappings":"AA2CA,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAmEF,eAAO,MAAM,eAAe,WAAY,qBAAqB,4CAq8B5D,CAAC"}
1
+ {"version":3,"file":"SolidKanbanView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/kanban/SolidKanbanView.tsx"],"names":[],"mappings":"AA2CA,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAmEF,eAAO,MAAM,eAAe,WAAY,qBAAqB,4CAsjC5D,CAAC"}
@@ -213,7 +213,7 @@ export var SolidKanbanView = function (params) {
213
213
  }, [params.modelName]);
214
214
  // Create the RTK slices for this entity
215
215
  var entityApi = createSolidEntityApi(params.modelName);
216
- var useDeleteMultipleSolidEntitiesMutation = entityApi.useDeleteMultipleSolidEntitiesMutation, useLazyGetSolidEntitiesQuery = entityApi.useLazyGetSolidEntitiesQuery, usePatchUpdateSolidEntityMutation = entityApi.usePatchUpdateSolidEntityMutation;
216
+ var useDeleteMultipleSolidEntitiesMutation = entityApi.useDeleteMultipleSolidEntitiesMutation, useLazyGetSolidEntitiesQuery = entityApi.useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery = entityApi.useLazyRecoverSolidEntityByIdQuery, usePatchUpdateSolidEntityMutation = entityApi.usePatchUpdateSolidEntityMutation;
217
217
  var menuItemId = searchParams.get("menuItemId");
218
218
  var menuItemName = searchParams.get("menuItemName");
219
219
  var actionId = searchParams.get("actionId");
@@ -347,19 +347,20 @@ export var SolidKanbanView = function (params) {
347
347
  var editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || "form");
348
348
  // Get the kanban view data.
349
349
  // const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();
350
- var _22 = useLazyGetSolidEntitiesQuery(), triggerGetSolidEntities = _22[0], solidEntityKanbanViewData = _22[1].data;
350
+ var triggerGetSolidEntities = useLazyGetSolidEntitiesQuery()[0];
351
+ var _22 = useLazyRecoverSolidEntityByIdQuery(), triggerRecoverSolidEntityById = _22[0], isRecoveringRecord = _22[1].isLoading;
351
352
  // Delete mutation
352
353
  var _23 = useDeleteMultipleSolidEntitiesMutation(), deleteManySolidEntities = _23[0], _24 = _23[1], isDeleteSolidEntitiesLoading = _24.isLoading, isDeleteSolidEntitiesSucess = _24.isSuccess;
353
354
  var _25 = usePatchUpdateSolidEntityMutation(), patchKanbanView = _25[0], isPatchKanbanViewLoading = _25[1].isLoading;
354
- // After data is fetched populate the kanban view state so as to be able to render the data.
355
- useEffect(function () {
356
- var _a;
357
- if (solidEntityKanbanViewData) {
358
- setServerSwimLaneCount(((_a = solidEntityKanbanViewData === null || solidEntityKanbanViewData === void 0 ? void 0 : solidEntityKanbanViewData.meta) === null || _a === void 0 ? void 0 : _a.totalRecords) || 0);
359
- setRawKanbanGroupRecords((solidEntityKanbanViewData === null || solidEntityKanbanViewData === void 0 ? void 0 : solidEntityKanbanViewData.groupRecords) || []);
360
- setLoading(false);
355
+ var applyArchivedQueryState = function (queryData) {
356
+ if (showArchived) {
357
+ queryData.showSoftDeleted = "inclusive";
358
+ if (queryData.groupFilter) {
359
+ queryData.groupFilter.showSoftDeleted = "inclusive";
360
+ }
361
361
  }
362
- }, [solidEntityKanbanViewData]);
362
+ return queryData;
363
+ };
363
364
  useEffect(function () {
364
365
  var mergedKanbanGroupData = mergeKanbanGroupsWithDefinitions(rawKanbanGroupRecords, swimlaneDefinitions, recordsInSwimlane);
365
366
  setKanbanViewData(mergedKanbanGroupData);
@@ -481,6 +482,9 @@ export var SolidKanbanView = function (params) {
481
482
  var queryObject = getFilterObjectFromLocalStorage();
482
483
  var queryString = "";
483
484
  if (queryObject) {
485
+ setShowArchived(queryObject.showArchived === true ||
486
+ queryObject.showArchived === "true" ||
487
+ queryObject.showSoftDeleted === "inclusive");
484
488
  var filters_1 = {
485
489
  $and: []
486
490
  };
@@ -521,13 +525,15 @@ export var SolidKanbanView = function (params) {
521
525
  setToPopulate(toPopulate_1);
522
526
  setToPopulateMedia(toPopulateMedia_1);
523
527
  setRecordsInSwimlane(recordsInSwimlane_1);
524
- // setFilters(filters);
528
+ setFilters(filters_1);
525
529
  setQueryDataLoaded(true);
526
530
  queryString = qs.stringify(queryData, {
527
531
  encodeValuesOnly: true
528
532
  });
529
533
  }
530
534
  else {
535
+ setShowArchived(false);
536
+ var defaultFilters = { $and: [] };
531
537
  var _o = initialFilterMethod(), recordsInSwimlane_2 = _o.recordsInSwimlane, toPopulate_2 = _o.toPopulate, toPopulateMedia_2 = _o.toPopulateMedia;
532
538
  var queryData = {
533
539
  offset: 0,
@@ -539,7 +545,7 @@ export var SolidKanbanView = function (params) {
539
545
  groupFilter: {
540
546
  limit: ((_l = (_k = (_j = (_h = kanbanViewMetaData === null || kanbanViewMetaData === void 0 ? void 0 : kanbanViewMetaData.data) === null || _h === void 0 ? void 0 : _h.solidView) === null || _j === void 0 ? void 0 : _j.layout) === null || _k === void 0 ? void 0 : _k.attrs) === null || _l === void 0 ? void 0 : _l.recordsInSwimlane) || 10,
541
547
  offset: 0,
542
- filters: filters,
548
+ filters: defaultFilters,
543
549
  populate: toPopulate_2,
544
550
  populateMedia: toPopulateMedia_2
545
551
  }
@@ -548,6 +554,7 @@ export var SolidKanbanView = function (params) {
548
554
  setRecordsInSwimlane(recordsInSwimlane_2);
549
555
  setToPopulate(toPopulate_2);
550
556
  setToPopulateMedia(toPopulateMedia_2);
557
+ setFilters(defaultFilters);
551
558
  // fields=status&groupBy=status&fields=count(status)&populateGroup=true
552
559
  queryString = qs.stringify(queryData, {
553
560
  encodeValuesOnly: true
@@ -559,6 +566,83 @@ export var SolidKanbanView = function (params) {
559
566
  }
560
567
  }
561
568
  }, [groupByFieldName, isDeleteSolidEntitiesSucess, solidKanbanViewMetaData, swimlaneDefinitions]);
569
+ var loadKanbanBoard = function (nextFilters) {
570
+ if (nextFilters === void 0) { nextFilters = filters; }
571
+ return __awaiter(void 0, void 0, void 0, function () {
572
+ var swimlanesCount, resolvedSwimlanesCount, queryData, response, error_2;
573
+ var _a, _b, _c, _d, _e, _f;
574
+ return __generator(this, function (_g) {
575
+ switch (_g.label) {
576
+ case 0:
577
+ if (!solidKanbanViewMetaData || !groupByFieldName || !queryDataLoaded)
578
+ return [2 /*return*/];
579
+ setLoading(true);
580
+ _g.label = 1;
581
+ case 1:
582
+ _g.trys.push([1, 3, 4, 5]);
583
+ swimlanesCount = ((_d = (_c = (_b = (_a = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _a === void 0 ? void 0 : _a.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.swimlanesCount) || 5;
584
+ resolvedSwimlanesCount = swimlaneDefinitions.length > 0 ? swimlaneDefinitions.length : swimlanesCount;
585
+ queryData = applyArchivedQueryState({
586
+ offset: 0,
587
+ limit: resolvedSwimlanesCount,
588
+ groupBy: groupByFieldName,
589
+ populate: toPopulate,
590
+ populateMedia: toPopulateMedia,
591
+ populateGroup: true,
592
+ groupFilter: {
593
+ limit: recordsInSwimlane,
594
+ offset: 0,
595
+ filters: nextFilters,
596
+ populate: toPopulate,
597
+ populateMedia: toPopulateMedia,
598
+ },
599
+ });
600
+ return [4 /*yield*/, triggerGetSolidEntities(qs.stringify(queryData, {
601
+ encodeValuesOnly: true
602
+ })).unwrap()];
603
+ case 2:
604
+ response = _g.sent();
605
+ setServerSwimLaneCount(((_e = response === null || response === void 0 ? void 0 : response.meta) === null || _e === void 0 ? void 0 : _e.totalRecords) || 0);
606
+ setRawKanbanGroupRecords((response === null || response === void 0 ? void 0 : response.groupRecords) || []);
607
+ setSelectedRecords([]);
608
+ return [3 /*break*/, 5];
609
+ case 3:
610
+ error_2 = _g.sent();
611
+ dispatch(showToast({
612
+ severity: "error",
613
+ summary: "Failed to load board",
614
+ detail: ((_f = error_2 === null || error_2 === void 0 ? void 0 : error_2.data) === null || _f === void 0 ? void 0 : _f.message) || (error_2 === null || error_2 === void 0 ? void 0 : error_2.message) || "Unable to load kanban data.",
615
+ life: 4000,
616
+ }));
617
+ setServerSwimLaneCount(0);
618
+ setRawKanbanGroupRecords([]);
619
+ return [3 /*break*/, 5];
620
+ case 4:
621
+ setLoading(false);
622
+ return [7 /*endfinally*/];
623
+ case 5: return [2 /*return*/];
624
+ }
625
+ });
626
+ });
627
+ };
628
+ useEffect(function () {
629
+ if (!queryDataLoaded || !solidKanbanViewMetaData || !groupByFieldName)
630
+ return;
631
+ void loadKanbanBoard(filters);
632
+ }, [groupByFieldName, queryDataLoaded, recordsInSwimlane, showArchived, solidKanbanViewMetaData, swimlaneDefinitions, toPopulate, toPopulateMedia]);
633
+ useEffect(function () {
634
+ if (!queryDataLoaded)
635
+ return;
636
+ var persistedFilterObject = getFilterObjectFromLocalStorage() || {};
637
+ var nextPersistedFilterObject = __assign(__assign({}, persistedFilterObject), { showArchived: showArchived });
638
+ if (showArchived) {
639
+ nextPersistedFilterObject.showSoftDeleted = "inclusive";
640
+ }
641
+ else {
642
+ delete nextPersistedFilterObject.showSoftDeleted;
643
+ }
644
+ setFilterObjectToLocalStorage(nextPersistedFilterObject);
645
+ }, [queryDataLoaded, showArchived]);
562
646
  // clickable link allowing one to open the detail / form view.
563
647
  // handle bulk deletion
564
648
  var deleteBulk = function () {
@@ -578,9 +662,46 @@ export var SolidKanbanView = function (params) {
578
662
  setSelectedRecords(record ? [record] : []);
579
663
  setDialogVisible(true);
580
664
  };
665
+ var handleRecoverRecord = function (record) { return __awaiter(void 0, void 0, void 0, function () {
666
+ var response, error_3;
667
+ var _a, _b;
668
+ return __generator(this, function (_c) {
669
+ switch (_c.label) {
670
+ case 0:
671
+ if (!(record === null || record === void 0 ? void 0 : record.id))
672
+ return [2 /*return*/];
673
+ _c.label = 1;
674
+ case 1:
675
+ _c.trys.push([1, 4, , 5]);
676
+ return [4 /*yield*/, triggerRecoverSolidEntityById(record.id).unwrap()];
677
+ case 2:
678
+ response = _c.sent();
679
+ dispatch(showToast({
680
+ severity: "success",
681
+ summary: "Success",
682
+ detail: ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.message) || "Record recovered successfully.",
683
+ life: 3000,
684
+ }));
685
+ return [4 /*yield*/, loadKanbanBoard(filters)];
686
+ case 3:
687
+ _c.sent();
688
+ return [3 /*break*/, 5];
689
+ case 4:
690
+ error_3 = _c.sent();
691
+ dispatch(showToast({
692
+ severity: "error",
693
+ summary: "Recover Failed",
694
+ detail: ((_b = error_3 === null || error_3 === void 0 ? void 0 : error_3.data) === null || _b === void 0 ? void 0 : _b.message) || (error_3 === null || error_3 === void 0 ? void 0 : error_3.message) || "Unable to recover the selected record.",
695
+ life: 4000,
696
+ }));
697
+ return [3 /*break*/, 5];
698
+ case 5: return [2 /*return*/];
699
+ }
700
+ });
701
+ }); };
581
702
  // Individual Swimlane Load More
582
703
  var handleLoadMore = function (groupByField) { return __awaiter(void 0, void 0, void 0, function () {
583
- var _a, offset, limit, queryData, queryString, data, newRecords, mergeData, updatedData_1, error_2;
704
+ var _a, offset, limit, queryData, queryString, data, newRecords, mergeData, updatedData_1, error_4;
584
705
  var _b;
585
706
  return __generator(this, function (_c) {
586
707
  switch (_c.label) {
@@ -590,7 +711,7 @@ export var SolidKanbanView = function (params) {
590
711
  _c.label = 1;
591
712
  case 1:
592
713
  _c.trys.push([1, 3, , 4]);
593
- queryData = {
714
+ queryData = applyArchivedQueryState({
594
715
  offset: offset + limit,
595
716
  limit: limit,
596
717
  populate: toPopulate,
@@ -599,7 +720,7 @@ export var SolidKanbanView = function (params) {
599
720
  filters: __assign((_b = {}, _b[groupByFieldName] = {
600
721
  $in: [groupByField],
601
722
  }, _b), filters)
602
- };
723
+ });
603
724
  queryString = qs.stringify(queryData, {
604
725
  encodeValuesOnly: true
605
726
  });
@@ -639,8 +760,8 @@ export var SolidKanbanView = function (params) {
639
760
  });
640
761
  return [3 /*break*/, 4];
641
762
  case 3:
642
- error_2 = _c.sent();
643
- console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error_2);
763
+ error_4 = _c.sent();
764
+ console.error(ERROR_MESSAGES.LOAD_MORE_DATA, error_4);
644
765
  return [3 /*break*/, 4];
645
766
  case 4: return [2 /*return*/];
646
767
  }
@@ -649,7 +770,7 @@ export var SolidKanbanView = function (params) {
649
770
  // Handle drag-and-drop functionality
650
771
  // @ts-ignore
651
772
  var onDragEnd = function (result) { return __awaiter(void 0, void 0, void 0, function () {
652
- var source, destination, sourceGroupName, destinationGroupName, sourceGroupIndex, destinationGroupIndex, sourceGroup, destinationGroup, sourceRecords, destinationRecords, movedItem, updatedItem, oldkanbanViewData, formData, kanbanUpdateResponse, error_3;
773
+ var source, destination, sourceGroupName, destinationGroupName, sourceGroupIndex, destinationGroupIndex, sourceGroup, destinationGroup, sourceRecords, destinationRecords, movedItem, updatedItem, oldkanbanViewData, formData, kanbanUpdateResponse, error_5;
653
774
  var _a;
654
775
  var _b;
655
776
  return __generator(this, function (_c) {
@@ -722,10 +843,10 @@ export var SolidKanbanView = function (params) {
722
843
  }
723
844
  return [3 /*break*/, 4];
724
845
  case 3:
725
- error_3 = _c.sent();
846
+ error_5 = _c.sent();
726
847
  // 6. Handle 500 or network errors
727
- console.error(ERROR_MESSAGES.API_ERROR, error_3);
728
- dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: ((_b = error_3 === null || error_3 === void 0 ? void 0 : error_3.data) === null || _b === void 0 ? void 0 : _b.message) || ERROR_MESSAGES.SOMETHING_WRONG }));
848
+ console.error(ERROR_MESSAGES.API_ERROR, error_5);
849
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: ((_b = error_5 === null || error_5 === void 0 ? void 0 : error_5.data) === null || _b === void 0 ? void 0 : _b.message) || ERROR_MESSAGES.SOMETHING_WRONG }));
729
850
  setKanbanViewData(oldkanbanViewData);
730
851
  return [3 /*break*/, 4];
731
852
  case 4: return [2 /*return*/];
@@ -759,6 +880,7 @@ export var SolidKanbanView = function (params) {
759
880
  }
760
881
  // sort: [`id:desc`],
761
882
  };
883
+ applyArchivedQueryState(queryData);
762
884
  queryString = qs.stringify(queryData, {
763
885
  encodeValuesOnly: true
764
886
  });
@@ -830,6 +952,7 @@ export var SolidKanbanView = function (params) {
830
952
  populateMedia: toPopulateMedia
831
953
  }
832
954
  };
955
+ applyArchivedQueryState(queryData);
833
956
  queryString = qs.stringify(queryData, {
834
957
  encodeValuesOnly: true
835
958
  });
@@ -846,6 +969,12 @@ export var SolidKanbanView = function (params) {
846
969
  // @ts-ignore
847
970
  urlData.search_predicate = customFilter.search_predicate || {};
848
971
  // @ts-ignore
972
+ urlData.showArchived = showArchived;
973
+ if (showArchived) {
974
+ // @ts-ignore
975
+ urlData.showSoftDeleted = "inclusive";
976
+ }
977
+ // @ts-ignore
849
978
  setFilterObjectToLocalStorage(urlData);
850
979
  }
851
980
  return [4 /*yield*/, triggerGetSolidEntities(queryString)];
@@ -881,7 +1010,7 @@ export var SolidKanbanView = function (params) {
881
1010
  }, [solidKanbanViewMetaData]);
882
1011
  var kanbanViewTitle = (_b = (_a = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _a === void 0 ? void 0 : _a.solidView) === null || _b === void 0 ? void 0 : _b.displayName;
883
1012
  var entityDisplayName = ((_e = (_d = (_c = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _c === void 0 ? void 0 : _c.solidView) === null || _d === void 0 ? void 0 : _d.model) === null || _e === void 0 ? void 0 : _e.displayName) || params.modelName;
884
- var headerRequestStatusLabel = isDeleteSolidEntitiesLoading ? "Deleting..." : isPatchKanbanViewLoading ? "Updating..." : loading || !queryDataLoaded ? "Loading..." : null;
1013
+ var headerRequestStatusLabel = isDeleteSolidEntitiesLoading ? "Deleting..." : isPatchKanbanViewLoading ? "Updating..." : isRecoveringRecord ? "Recovering..." : loading || !queryDataLoaded ? "Loading..." : null;
885
1014
  var handleRefreshView = function () {
886
1015
  var _a, _b;
887
1016
  if (hasStoredFilterPredicates(getFilterObjectFromLocalStorage())) {
@@ -889,7 +1018,7 @@ export var SolidKanbanView = function (params) {
889
1018
  (_b = (_a = solidGlobalSearchElementRef.current) === null || _a === void 0 ? void 0 : _a.clearAppliedFilters) === null || _b === void 0 ? void 0 : _b.call(_a, { preserveGrouping: true });
890
1019
  return;
891
1020
  }
892
- window.location.reload();
1021
+ loadKanbanBoard(filters);
893
1022
  };
894
1023
  var toggleBothSidebars = function () {
895
1024
  if (visibleNavbar) {
@@ -901,8 +1030,8 @@ export var SolidKanbanView = function (params) {
901
1030
  };
902
1031
  console.log("Logging kanban data: ", solidKanbanViewMetaData);
903
1032
  return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content flex flex-col flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-kanban-surface flex flex-col flex-1 min-h-0", children: [_jsxs("div", { className: "page-header solid-list-toolbar solid-kanban-toolbar flex-col lg:flex-row", children: [_jsxs("div", { className: "flex justify-between w-full", children: [_jsxs("div", { className: "solid-list-toolbar-left flex w-full items-center gap-3", children: [_jsx("p", { className: "m-0 view-title solid-text-wrapper", children: kanbanViewTitle }), _jsx("div", { className: "hidden lg:flex", children: _jsx(SolidGlobalSearchElement, { viewType: "kanban", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidKanbanViewMetaData, handleApplyCustomFilter: handleApplyCustomFilter }) })] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions", children: [_jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }), _jsx("div", { className: "flex lg:hidden", children: _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); }, "aria-label": "Toggle search", leftIcon: _jsx(SolidIcon, { name: "si-search", "aria-hidden": true }) }) }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) && ((_h = (_g = (_f = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _f === void 0 ? void 0 : _f.solidView) === null || _g === void 0 ? void 0 : _g.layout) === null || _h === void 0 ? void 0 : _h.attrs.create) !== false &&
904
- _jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, responsiveIconOnly: true }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'delete'))) && ((_l = (_k = (_j = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _j === void 0 ? void 0 : _j.solidView) === null || _k === void 0 ? void 0 : _k.layout) === null || _l === void 0 ? void 0 : _l.attrs.delete) !== false && selectedRecords.length > 0 && _jsx(SolidButton, { type: "button", variant: "destructive", size: "sm", onClick: function () { return setDialogVisible(true); }, children: "Delete" }), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: handleRefreshView, "aria-label": "Refresh board", leftIcon: _jsx(SolidIcon, { name: "si-refresh", "aria-hidden": true }) }), _jsx(SolidKanbanViewConfigure, { solidKanbanViewMetaData: solidKanbanViewMetaData, modelName: params.modelName, actionsAllowed: actionsAllowed, viewModes: viewModes, setLayoutDialogVisible: setLayoutDialogVisible, setShowSaveFilterPopup: setShowSaveFilterPopup, filters: filters, handleRefreshView: handleRefreshView })] })] }), showGlobalSearchElement && (_jsx("div", { className: "flex lg:hidden", children: _jsx(SolidGlobalSearchElement, { viewType: "kanban", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidKanbanViewMetaData, handleApplyCustomFilter: handleApplyCustomFilter }) }))] }), _jsx("style", { children: ".p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}" }), solidKanbanViewMetaData && kanbanViewData &&
905
- _jsx(KanbanBoard, { groupByFieldName: groupByFieldName, kanbanViewData: kanbanViewData, maxSwimLanesCount: maxSwimLanesCount, solidKanbanViewMetaData: solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data, setKanbanViewData: setKanbanViewData, handleLoadMore: handleLoadMore, onDragEnd: onDragEnd, handleSwimLanePagination: handleSwimLanePagination, onDelete: actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'delete'))) && ((_p = (_o = (_m = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _m === void 0 ? void 0 : _m.solidView) === null || _o === void 0 ? void 0 : _o.layout) === null || _p === void 0 ? void 0 : _p.attrs.delete) !== false ? openDeleteDialogForRecord : undefined, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, editButtonUrl: editBaseUrl })] }) }), _jsx(SolidConfirmDialog, { open: isDialogVisible, onCancel: onDeleteClose, onConfirm: deleteBulk, className: "solid-shadcn-confirm-dialog solid-delete-confirm-dialog", headerClassName: "solid-shadcn-dialog-head", bodyClassName: "solid-shadcn-dialog-body", footerClassName: "solid-shadcn-dialog-actions", separatorClassName: "solid-shadcn-dialog-sep", showSeparator: true, title: "Delete ".concat(entityDisplayName), message: _jsx("p", { className: "solid-shadcn-dialog-text", children: selectedRecords.length === 1
1033
+ _jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, responsiveIconOnly: true }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'delete'))) && ((_l = (_k = (_j = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _j === void 0 ? void 0 : _j.solidView) === null || _k === void 0 ? void 0 : _k.layout) === null || _l === void 0 ? void 0 : _l.attrs.delete) !== false && selectedRecords.length > 0 && _jsx(SolidButton, { type: "button", variant: "destructive", size: "sm", onClick: function () { return setDialogVisible(true); }, children: "Delete" }), _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: handleRefreshView, "aria-label": "Refresh board", leftIcon: _jsx(SolidIcon, { name: "si-refresh", "aria-hidden": true }) }), _jsx(SolidKanbanViewConfigure, { solidKanbanViewMetaData: solidKanbanViewMetaData, modelName: params.modelName, actionsAllowed: actionsAllowed, viewModes: viewModes, setShowArchived: setShowArchived, showArchived: showArchived, setLayoutDialogVisible: setLayoutDialogVisible, setShowSaveFilterPopup: setShowSaveFilterPopup, filters: filters, handleRefreshView: handleRefreshView })] })] }), showGlobalSearchElement && (_jsx("div", { className: "flex lg:hidden", children: _jsx(SolidGlobalSearchElement, { viewType: "kanban", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidKanbanViewMetaData, handleApplyCustomFilter: handleApplyCustomFilter }) }))] }), _jsx("style", { children: ".p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}" }), solidKanbanViewMetaData && kanbanViewData &&
1034
+ _jsx(KanbanBoard, { groupByFieldName: groupByFieldName, kanbanViewData: kanbanViewData, maxSwimLanesCount: maxSwimLanesCount, solidKanbanViewMetaData: solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data, setKanbanViewData: setKanbanViewData, handleLoadMore: handleLoadMore, onDragEnd: onDragEnd, handleSwimLanePagination: handleSwimLanePagination, onDelete: actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'delete'))) && ((_p = (_o = (_m = solidKanbanViewMetaData === null || solidKanbanViewMetaData === void 0 ? void 0 : solidKanbanViewMetaData.data) === null || _m === void 0 ? void 0 : _m.solidView) === null || _o === void 0 ? void 0 : _o.layout) === null || _p === void 0 ? void 0 : _p.attrs.delete) !== false ? openDeleteDialogForRecord : undefined, onRecover: handleRecoverRecord, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, editButtonUrl: editBaseUrl, showArchived: showArchived })] }) }), _jsx(SolidConfirmDialog, { open: isDialogVisible, onCancel: onDeleteClose, onConfirm: deleteBulk, className: "solid-shadcn-confirm-dialog solid-delete-confirm-dialog", headerClassName: "solid-shadcn-dialog-head", bodyClassName: "solid-shadcn-dialog-body", footerClassName: "solid-shadcn-dialog-actions", separatorClassName: "solid-shadcn-dialog-sep", showSeparator: true, title: "Delete ".concat(entityDisplayName), message: _jsx("p", { className: "solid-shadcn-dialog-text", children: selectedRecords.length === 1
906
1035
  ? "Are you sure you want to delete this ".concat(entityDisplayName, " record?")
907
1036
  : "Are you sure you want to delete the selected ".concat(entityDisplayName, " records?") }), confirmLabel: "Delete", cancelLabel: "Cancel" }), openLightbox && (_jsx(SolidLightbox, { open: openLightbox, slides: lightboxSlides, onClose: function () { return setOpenLightbox(false); } })), _jsxs(SolidDialog, { open: isLayoutDialogVisible, onOpenChange: setLayoutDialogVisible, className: "solid-kanban-layout-dialog", style: { width: "min(800px, calc(100vw - 32px))" }, children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: "Change Kanban Layout" }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { className: "solid-kanban-layout-dialog-body", children: _jsx(KanbanUserViewLayout, { solidKanbanViewMetaData: solidKanbanViewMetaData, setLayoutDialogVisible: setLayoutDialogVisible }) })] })] }));
908
1037
  };