@solidstarters/solid-core-ui 1.1.37 → 1.1.40

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 (238) hide show
  1. package/dist/components/common/SolidBreadcrumb.d.ts +1 -1
  2. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
  3. package/dist/components/common/SolidBreadcrumb.js +5 -3
  4. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  5. package/dist/components/common/SolidFormHeader.d.ts +9 -0
  6. package/dist/components/common/SolidFormHeader.d.ts.map +1 -0
  7. package/dist/components/common/SolidFormHeader.js +22 -0
  8. package/dist/components/common/SolidFormHeader.js.map +1 -0
  9. package/dist/components/common/SolidFormStepper.d.ts +8 -1
  10. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  11. package/dist/components/common/SolidFormStepper.js +144 -7
  12. package/dist/components/common/SolidFormStepper.js.map +1 -1
  13. package/dist/components/common/SolidModuleHome.d.ts +6 -0
  14. package/dist/components/common/SolidModuleHome.d.ts.map +1 -0
  15. package/dist/components/common/SolidModuleHome.js +12 -0
  16. package/dist/components/common/SolidModuleHome.js.map +1 -0
  17. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  18. package/dist/components/core/form/SolidFormView.js +22 -15
  19. package/dist/components/core/form/SolidFormView.js.map +1 -1
  20. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  21. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  22. package/dist/components/core/kanban/KanbanBoard.js +4 -3
  23. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  24. package/dist/components/core/kanban/KanbanCard.d.ts +1 -1
  25. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  26. package/dist/components/core/kanban/KanbanCard.js +48 -25
  27. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  28. package/dist/components/core/kanban/KanbanColumn.d.ts +4 -1
  29. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  30. package/dist/components/core/kanban/KanbanColumn.js +6 -5
  31. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  32. package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
  33. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  34. package/dist/components/core/kanban/SolidKanbanView.js +174 -125
  35. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  36. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +11 -0
  37. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
  38. package/dist/components/core/kanban/SolidKanbanViewFields.js +144 -0
  39. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
  40. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
  41. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
  42. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
  43. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
  44. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
  45. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
  46. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +74 -0
  47. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
  48. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
  49. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
  50. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +21 -0
  51. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
  52. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
  53. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
  54. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +82 -0
  55. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
  56. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
  57. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
  58. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +8 -0
  59. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
  60. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
  61. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
  62. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
  63. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
  64. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
  65. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
  66. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +22 -0
  67. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
  68. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
  69. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
  70. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
  71. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
  72. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
  73. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
  74. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
  75. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
  76. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
  77. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
  78. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +8 -0
  79. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
  80. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
  81. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
  82. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
  83. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
  84. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
  85. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
  86. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +8 -0
  87. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
  88. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
  89. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
  90. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
  91. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
  92. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
  93. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
  94. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +8 -0
  95. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
  96. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
  97. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
  98. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +8 -0
  99. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
  100. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
  101. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
  102. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +32 -0
  103. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
  104. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
  105. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
  106. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +24 -0
  107. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
  108. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
  109. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
  110. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +12 -0
  111. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
  112. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
  113. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
  114. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +8 -0
  115. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
  116. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
  117. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
  118. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
  119. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
  120. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
  121. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
  122. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
  123. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
  124. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
  125. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
  126. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +16 -0
  127. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
  128. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
  129. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
  130. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
  131. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
  132. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
  133. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
  134. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
  135. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
  136. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
  137. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
  138. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +8 -0
  139. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
  140. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  141. package/dist/components/core/list/SolidListView.js +28 -27
  142. package/dist/components/core/list/SolidListView.js.map +1 -1
  143. package/dist/components/core/list/SolidListViewColumn.js +1 -1
  144. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  145. package/dist/components/core/list/SolidListViewConfigure.d.ts +2 -0
  146. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -0
  147. package/dist/components/core/list/SolidListViewConfigure.js +115 -0
  148. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -0
  149. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts +1 -1
  150. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  151. package/dist/components/core/list/columns/SolidShortTextColumn.js +48 -4
  152. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  153. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts +2 -0
  154. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts.map +1 -0
  155. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +10 -0
  156. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -0
  157. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.d.ts +2 -0
  158. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.d.ts.map +1 -0
  159. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.js +7 -0
  160. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.js.map +1 -0
  161. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  162. package/dist/components/core/model/CreateModel.js +2 -2
  163. package/dist/components/core/model/CreateModel.js.map +1 -1
  164. package/dist/components/core/model/FieldMetaDataForm.js +1 -6
  165. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  166. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  167. package/dist/components/core/module/CreateModule.js +2 -2
  168. package/dist/components/core/module/CreateModule.js.map +1 -1
  169. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  170. package/dist/components/core/users/CreateUser.js +2 -2
  171. package/dist/components/core/users/CreateUser.js.map +1 -1
  172. package/dist/helpers/registry.d.ts.map +1 -1
  173. package/dist/helpers/registry.js +4 -0
  174. package/dist/helpers/registry.js.map +1 -1
  175. package/dist/index.d.ts +2 -1
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +2 -1
  178. package/dist/index.js.map +1 -1
  179. package/dist/redux/api/solidEntityApi.d.ts +1 -0
  180. package/dist/redux/api/solidEntityApi.d.ts.map +1 -1
  181. package/dist/redux/api/solidEntityApi.js +10 -0
  182. package/dist/redux/api/solidEntityApi.js.map +1 -1
  183. package/dist/resources/globals.css +135 -10
  184. package/dist/resources/themes/solid-dark-purple/theme.css +1 -0
  185. package/dist/resources/themes/solid-light-purple/theme.css +5 -4
  186. package/package.json +2 -1
  187. package/src/components/common/SolidBreadcrumb.tsx +5 -4
  188. package/src/components/common/SolidFormHeader.tsx +22 -0
  189. package/src/components/common/SolidFormStepper.tsx +208 -56
  190. package/src/components/common/SolidModuleHome.tsx +68 -0
  191. package/src/components/core/form/SolidFormView.tsx +14 -6
  192. package/src/components/core/kanban/KanbanBoard.tsx +9 -4
  193. package/src/components/core/kanban/KanbanCard.tsx +58 -31
  194. package/src/components/core/kanban/KanbanColumn.tsx +65 -59
  195. package/src/components/core/kanban/SolidKanbanView.tsx +195 -96
  196. package/src/components/core/kanban/SolidKanbanViewFields.tsx +163 -0
  197. package/src/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  198. package/src/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  199. package/src/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  200. package/src/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  201. package/src/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  202. package/src/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +13 -0
  203. package/src/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  204. package/src/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  205. package/src/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  206. package/src/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  207. package/src/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  208. package/src/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  209. package/src/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  210. package/src/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +13 -0
  211. package/src/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  212. package/src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +68 -0
  213. package/src/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +60 -0
  214. package/src/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  215. package/src/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  216. package/src/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +13 -0
  217. package/src/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  218. package/src/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +29 -0
  219. package/src/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  220. package/src/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  221. package/src/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  222. package/src/components/core/list/SolidListView.tsx +24 -20
  223. package/src/components/core/list/SolidListViewColumn.tsx +1 -1
  224. package/src/components/core/{common/SolidConfigureLayoutElement.tsx → list/SolidListViewConfigure.tsx} +118 -70
  225. package/src/components/core/list/columns/SolidShortTextColumn.tsx +45 -10
  226. package/src/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +19 -0
  227. package/src/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.tsx +11 -0
  228. package/src/components/core/model/CreateModel.tsx +2 -1
  229. package/src/components/core/model/FieldMetaDataForm.tsx +6 -6
  230. package/src/components/core/module/CreateModule.tsx +2 -1
  231. package/src/components/core/users/CreateUser.tsx +4 -3
  232. package/src/helpers/registry.ts +4 -0
  233. package/src/index.ts +2 -1
  234. package/src/redux/api/solidEntityApi.tsx +7 -1
  235. package/src/resources/globals.css +135 -10
  236. package/src/resources/themes/solid-dark-purple/theme.css +1 -0
  237. package/src/resources/themes/solid-light-purple/theme.css +5 -4
  238. package/src/types/solid-core.d.ts +4 -0
@@ -0,0 +1,68 @@
1
+ 'use client';
2
+ import React, { useState } from 'react';
3
+ import { Column } from "primereact/column";
4
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
5
+ import { Dialog } from 'primereact/dialog';
6
+ import { Document, Page, pdfjs } from "react-pdf";
7
+
8
+ pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
9
+
10
+
11
+ const SolidMediaMultipleKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox }: SolidKanbanViewFieldsParams) => {
12
+ // const filterable = column.attrs.filterable;
13
+ const [visible, setVisible] = useState(false);
14
+ const header = fieldMetadata.displayName;
15
+ // const fileData = data && data._media[fieldMetadata.name].length > 0 && data._media[fieldMetadata.name].map((i: any) => {
16
+ // const fileData = { mimeType: i.mimeType, url: i._full_url }
17
+ // return fileData
18
+ // }
19
+ // );
20
+ const fileData = [
21
+ { mimeType: "image/jpeg", url: "https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png" },
22
+ { mimeType: "application/pdf", url: "http://localhost:8080/media-files-storage/Holiday List 2025.pdf" },
23
+ { mimeType: "application/vnd.ms-excel", url: "http://localhost:8080/media-files-storage/PF Form.xls" }
24
+ ]
25
+
26
+ return (
27
+ <>
28
+ {fileData && fileData.map((file: any) => {
29
+ return (
30
+ <>
31
+ <div>
32
+ {file.mimeType.startsWith("image/") &&
33
+ <img src={file.url}
34
+ onClick={(event) => {
35
+ event.stopPropagation();
36
+ setLightboxUrls([{ src: file.url }]);
37
+ setOpenLightbox(true);
38
+ }}
39
+ className='image-preview'
40
+ alt={header} />}
41
+ {/* Render PDF - Open Lightbox on Click */}
42
+ {file.mimeType.includes("pdf") && (
43
+ <>
44
+ <i className="pi pi-file-pdf" style={{ fontSize: "24px", color: "red", cursor: "pointer" }} onClick={() => setVisible(true)}></i>
45
+ <Dialog header="PDF Preview" visible={visible} style={{ width: "" }} onHide={() => setVisible(false)} modal>
46
+ <Document file={file.url}>
47
+ <Page pageNumber={1} />
48
+ </Document>
49
+ </Dialog>
50
+ </>
51
+ )}
52
+ {/* Excel or Other Files - Show Download Icon */}
53
+ {(file.mimeType.includes("excel") || file.mimeType.includes("spreadsheet")) && (
54
+ <a href={file.url} download target="_blank" rel="noopener noreferrer">
55
+ <i className="pi pi-file-excel">Download</i>
56
+ </a>
57
+ )}
58
+ </div>
59
+ </>
60
+ );
61
+ }
62
+ )}
63
+ </>
64
+ );
65
+
66
+ };
67
+
68
+ export default SolidMediaMultipleKanbanField;
@@ -0,0 +1,60 @@
1
+ 'use client';
2
+ import React, { useState } from 'react';
3
+ import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
+ import { InputTypes, SolidVarInputsFilterElement } from "../SolidVarInputsFilterElement";
5
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
6
+ import { FormEvent } from "primereact/ts-helpers";
7
+ import { FilterMatchMode } from 'primereact/api';
8
+ import { Document, Page, pdfjs } from "react-pdf";
9
+ import { Dialog } from "primereact/dialog";
10
+
11
+ pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
12
+
13
+
14
+ const SolidMediaSingleKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox }: SolidKanbanViewFieldsParams) => {
15
+ const [visible, setVisible] = useState(false);
16
+ const header = fieldMetadata.displayName;
17
+ const url = data && data._media && data._media[fieldMetadata.name].length > 0 && data._media[fieldMetadata.name].map((i: any) => i._full_url)[0];
18
+ const mimeType = data && data._media && data._media[fieldMetadata.name].length > 0 && data._media[fieldMetadata.name].map((i: any) => i.mimeType)[0];
19
+ // const mimeType: string = "excel";
20
+ // const url = "http://localhost:8080/media-files-storage/Holiday List 2025.pdf";
21
+ // const url = "http://localhost:8080/media-files-storage/PF Form.xls";
22
+
23
+
24
+
25
+ return (
26
+ <>
27
+ {mimeType && mimeType.includes("image/") &&
28
+ <img className='image-preview'
29
+ src={url}
30
+ onClick={(event) => {
31
+ event.stopPropagation();
32
+ setLightboxUrls([{ src: url }]);
33
+ setOpenLightbox(true);
34
+ }}
35
+ alt={header} />}
36
+
37
+ {/* Render PDF - Open Lightbox on Click */}
38
+ {mimeType && mimeType.includes("pdf") && (
39
+ <>
40
+ <i className="pi pi-file-pdf" style={{ fontSize: "24px", color: "red", cursor: "pointer" }} onClick={() => setVisible(true)}></i>
41
+ <Dialog header="PDF Preview" visible={visible} style={{ width: "" }} onHide={() => setVisible(false)} modal>
42
+ <Document file={url}>
43
+ <Page pageNumber={1} />
44
+ </Document>
45
+ </Dialog>
46
+ </>
47
+ )}
48
+ {/* Excel or Other Files - Show Download Icon */}
49
+ {mimeType && (mimeType.includes("excel") || mimeType.includes("spreadsheet")) && (
50
+ <a href={url} download target="_blank" rel="noopener noreferrer">
51
+ <i className="pi pi-file-excel">Download</i>
52
+ </a>
53
+ )}
54
+
55
+ </>
56
+ );
57
+
58
+ };
59
+
60
+ export default SolidMediaSingleKanbanField;
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+ import SolidRelationManyToOneKanbanField from './relations/SolidRelationManyToOneKanbanField';
4
+
5
+ const SolidRelationKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
6
+ if (fieldMetadata.relationType === 'many-to-one') {
7
+ return SolidRelationManyToOneKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
8
+ }
9
+ // TODO: Support one-to-many
10
+ // TODO: Support many-to-many
11
+ };
12
+
13
+ export default SolidRelationKanbanField;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+ import SolidShortTextKanbanField from './SolidShortTextKanbanField';
4
+
5
+ const SolidRichTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
6
+ return SolidShortTextKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
7
+ };
8
+
9
+ export default SolidRichTextKanbanField;
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+
4
+ const SolidSelectionDynamicKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
5
+
6
+
7
+ return (
8
+ <p>{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}`: ""}</p>
9
+ );
10
+
11
+ };
12
+
13
+ export default SolidSelectionDynamicKanbanField;
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+
4
+
5
+ const SolidSelectionStaticKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
6
+
7
+
8
+
9
+ return (
10
+ <p>{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}`: ""}</p>
11
+ );
12
+ };
13
+
14
+ export default SolidSelectionStaticKanbanField;
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+
4
+ const SolidShortTextKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout, data, setLightboxUrls, setOpenLightbox }: SolidKanbanViewFieldsParams) => {
5
+ const renderMode = fieldLayout?.attrs?.renderMode ? fieldLayout?.attrs?.renderMode : "text";
6
+
7
+ return (
8
+ <>
9
+ {renderMode === "text" &&
10
+ <p>{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}` : ""}</p>
11
+ }
12
+ {renderMode === "image" &&
13
+ <img
14
+ src={data[fieldMetadata.name]}
15
+ onClick={(event) => {
16
+ event.stopPropagation();
17
+ setLightboxUrls([{ src: data[fieldMetadata.name] }]);
18
+ setOpenLightbox(true);
19
+ }}
20
+ className='image-preview'
21
+ ></img>
22
+
23
+ }
24
+ </>
25
+ );
26
+
27
+ };
28
+
29
+ export default SolidShortTextKanbanField;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+
4
+ const SolidTimeKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
5
+
6
+ return (
7
+ <p>{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}`: ""}</p>
8
+ );
9
+
10
+ };
11
+
12
+ export default SolidTimeKanbanField;
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ import { SolidKanbanViewFieldsParams } from '../SolidKanbanViewFields';
3
+
4
+ const SolidUuidKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
5
+
6
+
7
+ return (
8
+ <p>{data && data[fieldMetadata.name] ? `${data[fieldMetadata.name]}`: ""}</p>
9
+ );
10
+
11
+ };
12
+
13
+ export default SolidUuidKanbanField;
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { FilterMatchMode } from 'primereact/api';
3
+ import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
+ import { FormEvent } from "primereact/ts-helpers";
5
+ import { InputTypes, SolidVarInputsFilterElement } from "../../SolidVarInputsFilterElement";
6
+ import { SolidKanbanViewFieldsParams } from '../../SolidKanbanViewFields';
7
+
8
+ const SolidRelationManyToOneKanbanField = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => {
9
+
10
+ return (
11
+ <></>
12
+ );
13
+
14
+ };
15
+
16
+ export default SolidRelationManyToOneKanbanField;
@@ -27,7 +27,6 @@ import { useRouter } from "next/navigation";
27
27
  import { ListViewRowActionPopup } from "./ListViewRowActionPopup";
28
28
  import FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from "@/components/core/common/FilterComponent";
29
29
  import { SolidLayoutViews } from '../common/SolidLayoutViews'
30
- import { SolidConfigureLayoutElement } from '../common/SolidConfigureLayoutElement'
31
30
  import { FilterIcon } from '../../modelsComponents/filterIcon';
32
31
  import { OverlayPanel } from "primereact/overlaypanel";
33
32
  import { Toast } from "primereact/toast";
@@ -37,11 +36,13 @@ import CozyImage from '../../../resources/images/layout/images/cozy.png';
37
36
  import ComfortableImage from '../../../resources/images/layout/images/comfortable.png';
38
37
  import ListImage from '../../../resources/images/layout/images/cozy.png';
39
38
  import KanbanImage from '../../../resources/images/layout/images/kanban.png';
39
+ import { capitalize } from "lodash";
40
40
  import Lightbox from "yet-another-react-lightbox";
41
41
  import Counter from "yet-another-react-lightbox/plugins/counter";
42
42
  import Download from "yet-another-react-lightbox/plugins/download";
43
43
  import "yet-another-react-lightbox/styles.css";
44
44
  import "yet-another-react-lightbox/plugins/counter.css";
45
+ import { SolidListViewConfigure } from "./SolidListViewConfigure";
45
46
 
46
47
  const getRandomInt = (min: number, max: number) => {
47
48
  return Math.floor(Math.random() * (max - min + 1)) + min;
@@ -212,6 +213,22 @@ export const SolidListView = (params: SolidListViewParams) => {
212
213
  const [editButtonUrl, setEditButtonUrl] = useState<string>();
213
214
  const [showArchived, setShowArchived] = useState(false);
214
215
 
216
+ const sizeOptions = [
217
+ { label: 'Compact', value: 'small', image: CompactImage },
218
+ { label: 'Cozy', value: 'normal', image: CozyImage },
219
+ { label: 'Comfortable', value: 'large', image: ComfortableImage }
220
+ ]
221
+
222
+ // const viewModes = [
223
+ // { label: 'List ', value: 'list', image: ListImage },
224
+ // { label: 'Kanban', value: 'kanban', image: KanbanImage },
225
+ // ]
226
+
227
+ const [size, setSize] = useState<string | any>(sizeOptions[1].value);
228
+ const [viewModes, setViewModes] = useState<any>([]);
229
+
230
+
231
+
215
232
  // Custom Row Action
216
233
  const [listViewRowActionPopupState, setListViewRowActionPopupState] = useState(false);
217
234
  const [listViewRowActionData, setListRowActionData] = useState<any>();
@@ -240,6 +257,8 @@ export const SolidListView = (params: SolidListViewParams) => {
240
257
  if (solidListViewMetaData) {
241
258
  const createActionUrl = solidListViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidListViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === "custom" ? solidListViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : "form/new";
242
259
  const editActionUrl = solidListViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidListViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === "custom" ? solidListViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : "form";
260
+ const viewModes = solidListViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews && solidListViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews.length > 0 && solidListViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view } });
261
+ setViewModes(viewModes);
243
262
  if (createActionUrl) {
244
263
  setCreateButtonUrl(createActionUrl)
245
264
  }
@@ -624,19 +643,6 @@ export const SolidListView = (params: SolidListViewParams) => {
624
643
  setListViewRowActionPopupState(false)
625
644
  }
626
645
 
627
- const sizeOptions = [
628
- { label: 'Compact', value: 'small', image: CompactImage },
629
- { label: 'Cozy', value: 'normal', image: CozyImage },
630
- { label: 'Comfortable', value: 'large', image: ComfortableImage }
631
- ]
632
-
633
- const viewModes = [
634
- { label: 'List ', value: 'list', image: ListImage },
635
- { label: 'Kanban', value: 'kanban', image: KanbanImage },
636
- ]
637
-
638
- const [size, setSize] = useState<string | any>(sizeOptions[1].value);
639
- const [view, setView] = useState<string | any>(viewModes[0].value);
640
646
 
641
647
  const listViewTitle = solidListViewMetaData?.data?.solidView?.displayName
642
648
 
@@ -677,7 +683,8 @@ export const SolidListView = (params: SolidListViewParams) => {
677
683
  ></Button>}
678
684
 
679
685
  {params.embeded === false && (solidListViewMetaData?.data?.solidView?.layout?.attrs?.configureView !== false) &&
680
- <SolidConfigureLayoutElement
686
+ <SolidListViewConfigure
687
+ listViewMetaData={listViewMetaData}
681
688
  setShowArchived={setShowArchived}
682
689
  showArchived={showArchived}
683
690
  viewData={solidListViewMetaData}
@@ -685,13 +692,11 @@ export const SolidListView = (params: SolidListViewParams) => {
685
692
  setSize={setSize}
686
693
  size={size}
687
694
  viewModes={viewModes}
688
- setView={setView}
689
- view={view}
690
695
  params={params}
691
696
  actionsAllowed={actionsAllowed}
692
697
  selectedRecords={selectedRecords}
693
698
  setDialogVisible={setDialogVisible}
694
- ></SolidConfigureLayoutElement>
699
+ />
695
700
  }
696
701
 
697
702
  </div>
@@ -885,5 +890,4 @@ export const SolidListView = (params: SolidListViewParams) => {
885
890
  }
886
891
  </div>
887
892
  );
888
- };
889
-
893
+ };
@@ -92,7 +92,7 @@ export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, colu
92
92
  return SolidDecimalColumn({ solidListViewMetaData, fieldMetadata, column });
93
93
  }
94
94
  if (fieldMetadata.type === 'shortText') {
95
- return SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column });
95
+ return SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });
96
96
  }
97
97
  if (fieldMetadata.type === 'longText') {
98
98
  return SolidLongTextColumn({ solidListViewMetaData, fieldMetadata, column });
@@ -1,6 +1,7 @@
1
1
  "use client"
2
2
  import { deleteManyPermission, deletePermission } from "@/helpers/permissions";
3
3
  import Image from "next/image";
4
+ import { usePathname, useRouter } from "next/navigation";
4
5
  import { Accordion, AccordionTab } from "primereact/accordion";
5
6
  import { Button } from "primereact/button";
6
7
  import { Checkbox, CheckboxChangeEvent } from "primereact/checkbox";
@@ -9,15 +10,53 @@ import { OverlayPanel } from "primereact/overlaypanel";
9
10
  import { RadioButton } from "primereact/radiobutton";
10
11
  import { useEffect, useRef, useState } from "react";
11
12
 
13
+ interface FieldMetadata {
14
+ displayName: string;
15
+ }
16
+
12
17
  interface FilterColumns {
13
18
  name: string;
14
19
  key: string;
20
+ isChecked: boolean;
15
21
  }
16
- export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, viewData, sizeOptions, setSize, size, viewModes, setView, view, params, actionsAllowed, selectedRecords, setDialogVisible }: any) => {
22
+ export const SolidListViewConfigure = ({ listViewMetaData, setShowArchived, showArchived, viewData, sizeOptions, setSize, size, viewModes, params, actionsAllowed, selectedRecords, setDialogVisible }: any) => {
23
+ if (!listViewMetaData) {
24
+ return;
25
+ }
26
+ if (!listViewMetaData.data) {
27
+ return;
28
+ }
29
+
30
+ const solidView = listViewMetaData?.data?.solidView;
31
+
32
+ // This is a key value map of field name vs field metadata.
33
+ const solidFieldsMetadata = listViewMetaData?.data?.solidFieldsMetadata as Record<string, FieldMetadata>;
17
34
 
18
35
  // const [visible, setVisible] = useState<boolean>(false);
19
36
  const op = useRef(null);
20
37
  const customizeLayout = useRef<OverlayPanel | null>(null);
38
+ const pathname = usePathname();
39
+ const router = useRouter();
40
+ const [view, setView] = useState<string>("");
41
+
42
+ const handleViewChange = (newView: string) => {
43
+ if (view === newView) return; // Prevent unnecessary updates
44
+ const pathSegments = pathname.split('/').filter(Boolean);
45
+ pathSegments[pathSegments.length - 1] = newView; // Replace the last part with new view
46
+ const newPath = '/' + pathSegments.join('/');
47
+ router.push(newPath);
48
+ };
49
+
50
+ useEffect(() => {
51
+ if (typeof pathname === 'string') {
52
+ const pathSegments = pathname.split('/').filter(Boolean);
53
+ if (pathSegments.length > 0) {
54
+ setView(pathSegments[pathSegments.length - 1]);
55
+ }
56
+ }
57
+ }, [])
58
+
59
+
21
60
  const [isOverlayOpen, setIsOverlayOpen] = useState(false);
22
61
  useEffect(() => {
23
62
  const handleClickOutside = (event: MouseEvent) => {
@@ -38,23 +77,30 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
38
77
  return () => document.removeEventListener("click", handleClickOutside);
39
78
  }, [isOverlayOpen])
40
79
 
41
- const categories: FilterColumns[] = [
42
- { name: 'ID', key: 'A' },
43
- { name: 'Tracker Date', key: 'M' },
44
- { name: 'Production', key: 'P' },
45
- { name: 'Research', key: 'R' }
46
- ];
47
- const [selectedCategories, setSelectedCategories] = useState<FilterColumns[]>([categories[1]]);
80
+ if (!solidView || !solidFieldsMetadata) {
81
+ return;
82
+ }
83
+
84
+ const checkedFieldNames = new Set(solidView.layout.children.map((col: { attrs: { name: string } }) => col.attrs.name));
85
+
86
+
87
+ const solidListColumns: FilterColumns[] = Object.entries(solidFieldsMetadata).map(([key, field]) => ({
88
+ name: field.displayName,
89
+ key,
90
+ isChecked: checkedFieldNames.has(key),
91
+ }));
92
+
93
+ const [selectedColumns, setSelectedColumns] = useState<FilterColumns[]>(solidListColumns.filter(col => col.isChecked));
48
94
 
49
95
  const onCategoryChange = (e: CheckboxChangeEvent) => {
50
- let _selectedCategories = [...selectedCategories];
96
+ let _selectedColumns = [...selectedColumns];
51
97
 
52
98
  if (e.checked)
53
- _selectedCategories.push(e.value);
99
+ _selectedColumns.push(e.value);
54
100
  else
55
- _selectedCategories = _selectedCategories.filter(category => category.key !== e.value.key);
101
+ _selectedColumns = _selectedColumns.filter(column => column.key !== e.value.key);
56
102
 
57
- setSelectedCategories(_selectedCategories);
103
+ setSelectedColumns(_selectedColumns);
58
104
  };
59
105
 
60
106
  return (
@@ -87,8 +133,8 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
87
133
  <Button text icon='pi pi-upload' label="Export" size="small" severity="secondary" className="text-left gap-2 text-base" />
88
134
  {/* <Button text icon='pi pi-share-alt' label="Share" size="small" severity="secondary" className="text-left gap-2" /> */}
89
135
  {/* {viewData?.data?.solidView?.model?.enableSoftDelete &&
90
- <Button text severity="secondary" size="small" className="text-left w-13rem" label={showArchived ? "Hide Archived Records" : "Show Archived Records"} iconPos="left" onClick={() => { setShowArchived(!showArchived); }} />
91
- } */}
136
+ <Button text severity="secondary" size="small" className="text-left w-13rem" label={showArchived ? "Hide Archived Records" : "Show Archived Records"} iconPos="left" onClick={() => { setShowArchived(!showArchived); }} />
137
+ } */}
92
138
  {viewData?.data?.solidView?.model?.enableSoftDelete && (
93
139
  <div className="flex align-items-center px-3 gap-2 mt-2 mb-1">
94
140
  <Checkbox
@@ -131,35 +177,39 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
131
177
  setTimeout(() => setIsOverlayOpen(false), 50); // ✅ Ensure state updates
132
178
  }}
133
179
  >
180
+
134
181
  <div className="solid-layout-accordion">
135
- <Accordion multiple expandIcon="pi pi-chevron-down" collapseIcon="pi pi-chevron-up">
136
- <AccordionTab header="Switch Type">
137
- <div className="flex flex-column gap-1 p-1">
138
- {viewModes.map((option: any) => (
139
- <div key={option.value} className={`flex align-items-center ${option.value === view ? 'solid-active-view' : 'solid-view'}`}>
140
- <RadioButton
141
- inputId={option.value}
142
- name="views"
143
- value={option.value}
144
- onChange={(e) => setView(e.value)}
145
- checked={option.value === view}
146
- />
147
- <label htmlFor={option.value} className="ml-2 flex align-items-center justify-content-between w-full">
148
- {option.label}
149
- <Image
182
+ <Accordion multiple expandIcon="pi pi-chevron-down" collapseIcon="pi pi-chevron-up" activeIndex={[2]}>
183
+ {viewModes && viewModes.length > 0 &&
184
+ <AccordionTab header="Switch Type">
185
+ <div className="flex flex-column gap-1 p-1">
186
+ {viewModes.map((option: any) => (
187
+ <div key={option.value} className={`flex align-items-center ${option.value === view ? 'solid-active-view' : 'solid-view'}`}>
188
+ <RadioButton
189
+ inputId={option.value}
190
+ name="views"
191
+ value={option.value}
192
+ // onChange={(e) => router}
193
+ onChange={() => handleViewChange(option.value)}
194
+ checked={option.value === view}
195
+ />
196
+ <label htmlFor={option.value} className="ml-2 flex align-items-center justify-content-between w-full">
197
+ {option.label}
198
+ {/* <Image
150
199
  src={option.image}
151
200
  alt={option.value}
152
201
  fill
153
202
  className='relative row-spacing-img'
154
- />
155
- </label>
156
- </div>
157
- ))}
158
- </div>
159
- </AccordionTab>
160
- <AccordionTab header="List">
161
- <div className="flex flex-column gap-1 p-1">
162
- <p className="m-0 px-3">Row Spacing</p>
203
+ /> */}
204
+ </label>
205
+ </div>
206
+ ))}
207
+ </div>
208
+ </AccordionTab>
209
+ }
210
+ <AccordionTab header="Row Spacing">
211
+ <div className="flex flex-column gap-1 p-1flex flex-column gap-1 p-1">
212
+ {/* <p className="m-0 px-3">Row Spacing</p> */}
163
213
  {sizeOptions.map((option: any) => (
164
214
  <div key={option.value} className={`flex align-items-center ${option.value === size ? 'solid-active-view' : 'solid-view'}`}>
165
215
  <RadioButton
@@ -182,39 +232,37 @@ export const SolidConfigureLayoutElement = ({ setShowArchived, showArchived, vie
182
232
  ))}
183
233
  </div>
184
234
  </AccordionTab>
185
- </Accordion>
186
- </div>
187
- <Divider className="m-0" />
188
- <div className="pl-3 pt-3 flex align-items-center justify-content-between">
189
- <p className="m-0">Column Selector</p>
190
- {/* <Button text label="Save Layout" icon="pi pi-plus" /> */}
191
- </div>
192
- <div className="flex flex-column gap-3 p-3 cogwheel-column-filter">
193
- {categories.map((category) => {
194
- return (
195
- <div key={category.key} className="flex align-items-center gap-1">
196
- <Checkbox
197
- inputId={category.key}
198
- name="category"
199
- value={category}
200
- onChange={onCategoryChange}
201
- checked={selectedCategories.some((item) => item.key === category.key)}
202
- className="text-base"
203
- />
204
- <label htmlFor={category.key} className="ml-2 text-base">
205
- {category.name}
206
- </label>
235
+ <AccordionTab header="Column Selector">
236
+ <div className="flex flex-column gap-1 p-1">
237
+ <div className="flex flex-column gap-3 px-3 cogwheel-column-filter">
238
+ {solidListColumns.map((column) => {
239
+ return (
240
+ <div key={column.key} className="flex align-items-center gap-1">
241
+ <Checkbox
242
+ inputId={column.key}
243
+ name="column"
244
+ value={column}
245
+ onChange={onCategoryChange}
246
+ checked={selectedColumns.some((item) => item.key === column.key)}
247
+ className="text-base"
248
+ />
249
+ <label htmlFor={column.key} className="ml-2 text-base">
250
+ {column.name}
251
+ </label>
252
+ </div>
253
+ );
254
+ })}
255
+ </div>
256
+ <div className="p-3 flex gap-2">
257
+ <Button label="Apply" size="small" />
258
+ <Button outlined label="Cancel" size="small"
259
+ // @ts-ignore
260
+ onClick={(e) => op.current.hide(e)}
261
+ />
262
+ </div>
207
263
  </div>
208
- );
209
- })}
210
- </div>
211
- <Divider className="m-0" />
212
- <div className="p-3 flex gap-2">
213
- <Button label="Apply" size="small" />
214
- <Button outlined label="Cancel" size="small"
215
- // @ts-ignore
216
- onClick={(e) => op.current.hide(e)}
217
- />
264
+ </AccordionTab>
265
+ </Accordion>
218
266
  </div>
219
267
  </OverlayPanel>
220
268
  </div>