@solidstarters/solid-core-ui 1.1.38 → 1.1.41

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 (200) hide show
  1. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +1 -1
  2. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  3. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  4. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  5. package/dist/components/core/kanban/KanbanBoard.js +4 -3
  6. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  7. package/dist/components/core/kanban/KanbanCard.d.ts +1 -1
  8. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  9. package/dist/components/core/kanban/KanbanCard.js +48 -25
  10. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  11. package/dist/components/core/kanban/KanbanColumn.d.ts +4 -1
  12. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  13. package/dist/components/core/kanban/KanbanColumn.js +6 -5
  14. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  15. package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
  16. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  17. package/dist/components/core/kanban/SolidKanbanView.js +174 -125
  18. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  19. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +11 -0
  20. package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
  21. package/dist/components/core/kanban/SolidKanbanViewFields.js +144 -0
  22. package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
  23. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
  24. package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
  25. package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
  26. package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
  27. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
  28. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
  29. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +74 -0
  30. package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
  31. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
  32. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
  33. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +21 -0
  34. package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
  35. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
  36. package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
  37. package/dist/components/core/kanban/SolidVarInputsFilterElement.js +82 -0
  38. package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
  39. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
  40. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
  41. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +8 -0
  42. package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
  43. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
  44. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
  45. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
  46. package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
  47. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
  48. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
  49. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +22 -0
  50. package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
  51. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
  52. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
  53. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
  54. package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
  55. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
  56. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
  57. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
  58. package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
  59. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
  60. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
  61. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +8 -0
  62. package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
  63. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
  64. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
  65. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
  66. package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
  67. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
  68. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
  69. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +8 -0
  70. package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
  71. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
  72. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
  73. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
  74. package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
  75. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
  76. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
  77. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +8 -0
  78. package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
  79. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
  80. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
  81. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +8 -0
  82. package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
  83. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
  84. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
  85. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +32 -0
  86. package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
  87. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
  88. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
  89. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +24 -0
  90. package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
  91. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
  92. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
  93. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +12 -0
  94. package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
  95. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
  96. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
  97. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +8 -0
  98. package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
  99. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
  100. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
  101. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
  102. package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
  103. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
  104. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
  105. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
  106. package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
  107. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
  108. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
  109. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +16 -0
  110. package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
  111. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
  112. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
  113. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
  114. package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
  115. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
  116. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
  117. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
  118. package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
  119. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
  120. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
  121. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +8 -0
  122. package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
  123. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidListView.js +28 -27
  125. package/dist/components/core/list/SolidListView.js.map +1 -1
  126. package/dist/components/core/list/SolidListViewColumn.js +1 -1
  127. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  128. package/dist/components/core/list/SolidListViewConfigure.d.ts +2 -0
  129. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -0
  130. package/dist/components/core/list/SolidListViewConfigure.js +115 -0
  131. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -0
  132. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts +1 -1
  133. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  134. package/dist/components/core/list/columns/SolidShortTextColumn.js +48 -4
  135. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  136. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts +2 -0
  137. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts.map +1 -0
  138. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +10 -0
  139. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -0
  140. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.d.ts +2 -0
  141. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.d.ts.map +1 -0
  142. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.js +7 -0
  143. package/dist/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.js.map +1 -0
  144. package/dist/components/core/model/FieldMetaDataForm.js +1 -6
  145. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  146. package/dist/helpers/registry.d.ts.map +1 -1
  147. package/dist/helpers/registry.js +4 -0
  148. package/dist/helpers/registry.js.map +1 -1
  149. package/dist/index.d.ts +1 -1
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +1 -1
  152. package/dist/index.js.map +1 -1
  153. package/dist/resources/globals.css +20 -1
  154. package/dist/resources/themes/solid-dark-purple/theme.css +1 -0
  155. package/dist/resources/themes/solid-light-purple/theme.css +5 -4
  156. package/package.json +2 -1
  157. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +1 -1
  158. package/src/components/core/kanban/KanbanBoard.tsx +9 -4
  159. package/src/components/core/kanban/KanbanCard.tsx +58 -31
  160. package/src/components/core/kanban/KanbanColumn.tsx +65 -59
  161. package/src/components/core/kanban/SolidKanbanView.tsx +195 -96
  162. package/src/components/core/kanban/SolidKanbanViewFields.tsx +163 -0
  163. package/src/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
  164. package/src/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
  165. package/src/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
  166. package/src/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
  167. package/src/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
  168. package/src/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +13 -0
  169. package/src/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
  170. package/src/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
  171. package/src/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
  172. package/src/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
  173. package/src/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
  174. package/src/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
  175. package/src/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
  176. package/src/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +13 -0
  177. package/src/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
  178. package/src/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +68 -0
  179. package/src/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +60 -0
  180. package/src/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
  181. package/src/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
  182. package/src/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +13 -0
  183. package/src/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
  184. package/src/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +29 -0
  185. package/src/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
  186. package/src/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
  187. package/src/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
  188. package/src/components/core/list/SolidListView.tsx +24 -20
  189. package/src/components/core/list/SolidListViewColumn.tsx +1 -1
  190. package/src/components/core/{common/SolidConfigureLayoutElement.tsx → list/SolidListViewConfigure.tsx} +118 -70
  191. package/src/components/core/list/columns/SolidShortTextColumn.tsx +45 -10
  192. package/src/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +19 -0
  193. package/src/components/core/list/widgets/SolidShortTextFieldTextRenderModeWidget copy.tsx +11 -0
  194. package/src/components/core/model/FieldMetaDataForm.tsx +6 -6
  195. package/src/helpers/registry.ts +4 -0
  196. package/src/index.ts +1 -1
  197. package/src/resources/globals.css +20 -1
  198. package/src/resources/themes/solid-dark-purple/theme.css +1 -0
  199. package/src/resources/themes/solid-light-purple/theme.css +5 -4
  200. package/src/types/solid-core.d.ts +4 -0
@@ -1,3 +1,5 @@
1
+ // @ts-nocheck
2
+
1
3
  "use client";
2
4
  import { createPermission, deletePermission, updatePermission } from "@/helpers/permissions";
3
5
  import { createSolidEntityApi } from "@/redux/api/solidEntityApi";
@@ -13,6 +15,19 @@ import { useEffect, useRef, useState } from "react";
13
15
  import { SolidCreateButton } from "../common/SolidCreateButton";
14
16
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
15
17
  import KanbanBoard from "./KanbanBoard";
18
+ import CompactImage from '../../../resources/images/layout/images/compact.png';
19
+ import CozyImage from '../../../resources/images/layout/images/cozy.png';
20
+ import ComfortableImage from '../../../resources/images/layout/images/comfortable.png';
21
+ import ListImage from '../../../resources/images/layout/images/cozy.png';
22
+ import KanbanImage from '../../../resources/images/layout/images/kanban.png';
23
+ import { capitalize } from "lodash";
24
+ import Lightbox from "yet-another-react-lightbox";
25
+ import Counter from "yet-another-react-lightbox/plugins/counter";
26
+ import Download from "yet-another-react-lightbox/plugins/download";
27
+ import "yet-another-react-lightbox/styles.css";
28
+ import "yet-another-react-lightbox/plugins/counter.css";
29
+
30
+
16
31
 
17
32
  type SolidKanbanViewParams = {
18
33
  moduleName: string;
@@ -27,12 +42,26 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
27
42
  // TODO: The initial filter state will be created based on the fields which are present on this kanban view.
28
43
  const [filters, setFilters] = useState<any>();
29
44
  const [toPopulate, setToPopulate] = useState<string[]>([]);
45
+ const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);
30
46
  const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);
31
47
  const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);
32
-
48
+ const [showArchived, setShowArchived] = useState(false);
49
+ const sizeOptions = [
50
+ { label: 'Compact', value: 'small', image: CompactImage },
51
+ { label: 'Cozy', value: 'normal', image: CozyImage },
52
+ { label: 'Comfortable', value: 'large', image: ComfortableImage }
53
+ ]
54
+ const [size, setSize] = useState<string | any>(sizeOptions[1].value);
55
+ const [viewModes, setViewModes] = useState<any>([]);
56
+ const [groupByFieldName, setGroupByFieldName] = useState<string>("");
57
+ const [groupedView, setGroupedView] = useState(true);
33
58
  const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();
34
- useEffect(() => {
59
+ const [openLightbox, setOpenLightbox] = useState(false);
60
+ const [lightboxUrls, setLightboxUrls] = useState({});
61
+
35
62
 
63
+
64
+ useEffect(() => {
36
65
  const fetchPermissions = async () => {
37
66
  if (params.modelName) {
38
67
  const permissionNames = [
@@ -93,6 +122,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
93
122
 
94
123
  const initialFilters: any = {};
95
124
  const toPopulate: string[] = [];
125
+ const toPopulateMedia: string[] = [];
96
126
  function extractFields(node: any, result: any = []) {
97
127
  if (node.type === "field") {
98
128
  result.push(node);
@@ -135,28 +165,41 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
135
165
  if (fieldMetadata.type === 'relation' && fieldMetadata.relationType === 'many-to-one') {
136
166
  toPopulate.push(fieldMetadata.name);
137
167
  }
168
+ if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.relationType === 'mediaMultiple') {
169
+ toPopulateMedia.push(fieldMetadata.name);
170
+ }
138
171
  }
139
172
  // setFilters(initialFilters);
140
- setRows(kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsCount ? kanbanViewMetaData?.data?.solidView?.layout?.attrs.recordsCount : 25)
141
- setToPopulate(toPopulate);
173
+ const rows = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane : 25;
174
+ // setToPopulate(toPopulate);
175
+ // setToPopulateMedia(toPopulateMedia);
176
+ return { rows, toPopulate, toPopulateMedia }
142
177
  }
143
178
 
179
+
180
+ // Initial Filter data
144
181
  useEffect(() => {
145
182
 
146
183
  if (solidKanbanViewMetaData) {
147
184
  setKanbanViewMetaData(solidKanbanViewMetaData);
148
- initialFilterMethod()
185
+ const { rows, toPopulate, toPopulateMedia } = initialFilterMethod()
186
+ setRows(rows);
187
+ setToPopulate(toPopulate);
188
+ setToPopulateMedia(toPopulateMedia);
189
+ const viewModes = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews.length > 0 && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view } });
190
+ setViewModes(viewModes);
191
+ if (solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.grouped !== false) {
192
+ setGroupByFieldName(solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy)
193
+ } else {
194
+ setGroupByFieldName("deletedTracker");
195
+ setGroupedView(false);
196
+ }
149
197
  }
150
198
  }, [solidKanbanViewMetaData]);
151
199
 
152
-
153
-
154
-
155
200
  // All kanban view state.
156
201
  const [kanbanViewData, setKanbanViewData] = useState<any>([]);
157
202
  const [kanbanLoadMoreData, setKanbanLoadMoreData] = useState<any>({});
158
- const [filterValues, setFilterValues] = useState([{ field: '', operator: '', value: '' }]);
159
- const [first, setFirst] = useState(0);
160
203
  const [rows, setRows] = useState(25);
161
204
  const [selectedRecords, setSelectedRecords] = useState<any[]>([]);
162
205
  const [loading, setLoading] = useState<boolean>(true);
@@ -170,6 +213,18 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
170
213
  // const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();
171
214
  const [triggerGetSolidEntities, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidEntitiesQuery();
172
215
 
216
+ // Delete mutation
217
+ const [
218
+ deleteManySolidEntities,
219
+ {
220
+ isLoading: isSolidEntitiesDeleted,
221
+ isSuccess: isDeleteSolidEntitiesSucess,
222
+ isError: isSolidEntitiesDeleteError,
223
+ error: SolidEntitiesDeleteError,
224
+ data: DeletedSolidEntities,
225
+ },
226
+ ] = useDeleteMultipleSolidEntitiesMutation();
227
+
173
228
 
174
229
  // After data is fetched populate the kanban view state so as to be able to render the data.
175
230
  useEffect(() => {
@@ -190,18 +245,6 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
190
245
  }
191
246
  }, [solidEntityKanbanViewData]);
192
247
 
193
- // Delete mutation
194
- const [
195
- deleteManySolidEntities,
196
- {
197
- isLoading: isSolidEntitiesDeleted,
198
- isSuccess: isDeleteSolidEntitiesSucess,
199
- isError: isSolidEntitiesDeleteError,
200
- error: SolidEntitiesDeleteError,
201
- data: DeletedSolidEntities,
202
- },
203
- ] = useDeleteMultipleSolidEntitiesMutation();
204
-
205
248
 
206
249
 
207
250
 
@@ -212,8 +255,8 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
212
255
  if (solidKanbanViewMetaData) {
213
256
  const createActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.type === "custom" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.createAction?.customComponent : "form/new";
214
257
  const editActionUrl = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction && solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.type === "custom" ? solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.editAction?.customComponent : "form";
215
- if (solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.pageSize) {
216
- setColumnsCount(solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize)
258
+ if (solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.swimlanesCount) {
259
+ setColumnsCount(solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount)
217
260
  }
218
261
  if (createActionUrl) {
219
262
  setCreateButtonUrl(createActionUrl)
@@ -221,23 +264,24 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
221
264
  if (editActionUrl) {
222
265
  setEditButtonUrl(editActionUrl)
223
266
  }
224
- }
225
- if (solidKanbanViewMetaData) {
226
- const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
227
- const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize || 5;
228
267
 
229
- if (toPopulate) {
268
+
269
+ const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
270
+ if (groupByFieldName &&( toPopulate || toPopulateMedia)) {
271
+
230
272
  const queryData = {
231
273
  offset: 0,
232
274
  limit: columnsToLoadCount,
233
275
  fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
234
276
  groupBy: groupByFieldName,
235
- populate: toPopulate,
277
+ populateMedia: toPopulateMedia,
236
278
  populateGroup: true,
237
279
  groupFilter: {
238
- limit: kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsCount,
280
+ limit: kanbanViewMetaData?.data?.solidView?.layout?.attrs?.recordsInSwimlane || 10,
239
281
  offset: 0,
240
- filters: filters
282
+ filters: filters,
283
+ populate: toPopulate,
284
+ populateMedia: toPopulateMedia
241
285
  }
242
286
  // sort: [`id:desc`],
243
287
  };
@@ -250,54 +294,56 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
250
294
  setSelectedRecords([]);
251
295
  }
252
296
  }
253
-
254
- }, [isDeleteSolidEntitiesSucess, toPopulate, solidKanbanViewMetaData]);
297
+ }, [isDeleteSolidEntitiesSucess, toPopulate, groupByFieldName,solidKanbanViewMetaData]);
255
298
 
256
299
 
257
300
 
258
301
 
259
302
  // clear Filter
260
303
 
261
- const clearFilter = async () => {
262
- if (solidKanbanViewMetaData) {
263
- // initialFilterMethod()
264
- }
265
- setFilters(null);
266
- if (solidKanbanViewMetaData) {
267
- const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
268
- const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize || 5;
269
-
270
- if (toPopulate) {
271
- const queryData = {
272
- offset: 0,
273
- limit: columnsToLoadCount,
274
- fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
275
- groupBy: groupByFieldName,
276
- populate: toPopulate,
277
- populateGroup: true,
278
- groupFilter: {
279
- limit: rows,
280
- offset: 0,
281
- }
282
- // sort: [`id:desc`],
283
- };
284
- // fields=status&groupBy=status&fields=count(status)&populateGroup=true
285
- const queryString = qs.stringify(queryData, {
286
- encodeValuesOnly: true
287
- });
288
-
289
- const data: any = await triggerGetSolidEntities(queryString);
290
- if (data && data?.data?.groupRecords.length > 0) {
291
- const updatedData = [...data.data.groupRecords];
292
- setKanbanViewData(updatedData);
293
- }
294
- setSelectedRecords([]);
295
- }
296
- }
297
-
298
- // @ts-ignore
299
- solidGlobalSearchElementRef.current.clearFilter()
300
- };
304
+ // const clearFilter = async () => {
305
+ // if (solidKanbanViewMetaData) {
306
+ // // initialFilterMethod()
307
+ // }
308
+ // setFilters(null);
309
+ // if (solidKanbanViewMetaData) {
310
+ //
311
+ // const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
312
+
313
+ // if (toPopulate || toPopulateMedia) {
314
+
315
+ // const queryData = {
316
+ // offset: 0,
317
+ // limit: columnsToLoadCount,
318
+ // fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
319
+ // groupBy: groupByFieldName,
320
+ // populate: toPopulate,
321
+ // populateMedia: toPopulateMedia,
322
+ // populateGroup: true,
323
+ // groupFilter: {
324
+ // limit: rows,
325
+ // offset: 0,
326
+
327
+ // }
328
+ // // sort: [`id:desc`],
329
+ // };
330
+ // // fields=status&groupBy=status&fields=count(status)&populateGroup=true
331
+ // const queryString = qs.stringify(queryData, {
332
+ // encodeValuesOnly: true
333
+ // });
334
+
335
+ // const data: any = await triggerGetSolidEntities(queryString);
336
+ // if (data && data?.data?.groupRecords.length > 0) {
337
+ // const updatedData = [...data.data.groupRecords];
338
+ // setKanbanViewData(updatedData);
339
+ // }
340
+ // setSelectedRecords([]);
341
+ // }
342
+ // }
343
+
344
+ // // @ts-ignore
345
+ // solidGlobalSearchElementRef.current.clearFilter()
346
+ // };
301
347
 
302
348
 
303
349
 
@@ -317,6 +363,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
317
363
  selectedRecords.forEach((element: any) => {
318
364
  deleteList.push(element.id);
319
365
  });
366
+ console.log(deleteList);
320
367
  deleteManySolidEntities(deleteList);
321
368
  setDialogVisible(false);
322
369
  };
@@ -327,11 +374,11 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
327
374
  setSelectedRecords([]);
328
375
  }
329
376
 
330
- const handleLoadMore = async (status: string) => {
331
- const { offset, limit, records } = kanbanLoadMoreData[status];
377
+ const handleLoadMore = async (groupByField: string) => {
378
+ const { offset, limit, records } = kanbanLoadMoreData[groupByField];
332
379
  const newLoadMoreData = kanbanLoadMoreData;
333
- kanbanLoadMoreData[status].offset = offset + limit;
334
- const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
380
+ kanbanLoadMoreData[groupByField].offset = offset + limit;
381
+
335
382
  try {
336
383
  // const queryData = {
337
384
  // offset: 0,
@@ -346,9 +393,12 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
346
393
  const queryData = {
347
394
  offset: offset + limit,
348
395
  limit: limit,
396
+ populate:toPopulate,
397
+ populateMedia: toPopulateMedia,
398
+ populateGroup: true,
349
399
  filters: {
350
400
  [groupByFieldName]: {
351
- $in: [status],
401
+ $in: [groupByField],
352
402
  },
353
403
  ...filters
354
404
  }
@@ -365,12 +415,12 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
365
415
  const mergeData = (
366
416
  kanbanViewData: any[],
367
417
  newRecords: any[],
368
- status: string
418
+ groupByField: string
369
419
  ) => {
370
- // Find the group matching the specified status
420
+ // Find the group matching the specified groupByField
371
421
  const originalData = structuredClone(kanbanViewData);
372
422
  const targetGroup = originalData.find(
373
- (group: any) => group.groupName === status
423
+ (group: any) => group.groupName === groupByField
374
424
  );
375
425
  if (targetGroup) {
376
426
  const { groupData } = targetGroup;
@@ -394,7 +444,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
394
444
  };
395
445
 
396
446
 
397
- const updatedData = mergeData(kanbanViewData, newRecords, status);
447
+ const updatedData = mergeData(kanbanViewData, newRecords, groupByField);
398
448
  setKanbanViewData(updatedData);
399
449
  const loadmoredata = Object.entries(updatedData).reduce((acc: any, [key, value]: any) => {
400
450
  acc[value.groupName] = {
@@ -426,6 +476,29 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
426
476
 
427
477
  if (sourceGroupIndex === -1 || destinationGroupIndex === -1) return;
428
478
 
479
+ // If dragging within the same group
480
+ if (sourceGroupName === destinationGroupName) {
481
+ setKanbanViewData((prevData: typeof kanbanViewData) =>
482
+ prevData.map((group: any) => {
483
+ if (group.groupName === sourceGroupName) {
484
+ const updatedRecords = [...group.groupData.records];
485
+ const [movedItem] = updatedRecords.splice(source.index, 1); // Remove the item
486
+ updatedRecords.splice(destination.index, 0, movedItem); // Insert at the new position
487
+
488
+ return {
489
+ ...group,
490
+ groupData: {
491
+ ...group.groupData,
492
+ records: updatedRecords,
493
+ },
494
+ };
495
+ }
496
+ return group;
497
+ })
498
+ );
499
+ return;
500
+ }
501
+
429
502
  // Deep clone the source and destination groups
430
503
  const sourceGroup = JSON.parse(JSON.stringify(kanbanViewData[sourceGroupIndex]));
431
504
  const destinationGroup = JSON.parse(JSON.stringify(kanbanViewData[destinationGroupIndex]));
@@ -462,22 +535,25 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
462
535
  };
463
536
 
464
537
 
538
+
465
539
  const handleSwimLinPagination = async () => {
466
540
 
467
541
  if (solidKanbanViewMetaData) {
468
- const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
469
- const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize || 5;
542
+
543
+ const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
470
544
  const queryData = {
471
545
  offset: swimLaneCurrentPageNumber * columnsToLoadCount,
472
546
  limit: columnsToLoadCount,
473
547
  fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
474
548
  groupBy: groupByFieldName,
475
- populate: toPopulate,
476
549
  populateGroup: true,
477
550
  groupFilter: {
478
551
  limit: rows,
479
552
  offset: 0,
480
- filters: filters
553
+ filters: filters,
554
+ populate: toPopulate,
555
+ populateMedia: toPopulateMedia
556
+
481
557
  }
482
558
  // sort: [`id:desc`],
483
559
  };
@@ -497,8 +573,8 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
497
573
 
498
574
  const handleApplyCustomFilter = async (filters: any) => {
499
575
 
500
- const groupByFieldName = solidKanbanViewMetaData?.data?.solidView?.layout?.attrs?.groupBy;
501
- const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.pageSize || 5;
576
+
577
+ const columnsToLoadCount = solidKanbanViewMetaData?.data.solidView?.layout?.attrs?.swimlanesCount || 5;
502
578
  setFilters(filters)
503
579
 
504
580
  if (toPopulate) {
@@ -507,12 +583,14 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
507
583
  limit: columnsToLoadCount,
508
584
  fields: [`${groupByFieldName}`, `count(${groupByFieldName})`],
509
585
  groupBy: groupByFieldName,
510
- populate: toPopulate,
511
586
  populateGroup: true,
512
587
  groupFilter: {
513
588
  limit: rows,
514
589
  offset: 0,
515
- filters: filters
590
+ filters: filters,
591
+ populate: toPopulate,
592
+ populateMedia: toPopulateMedia
593
+
516
594
  }
517
595
  // sort: [`id:desc`],
518
596
  };
@@ -553,7 +631,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
553
631
 
554
632
 
555
633
  return (
556
- <div className="page-parent-wrapper">
634
+ <>
557
635
  <div className="flex gap-3 mb-4 align-items-center justify-content-between kanban-view">
558
636
  <div className="flex gap-3 mb-4 align-items-center" >
559
637
 
@@ -569,7 +647,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
569
647
  className="small-button"
570
648
  severity="danger"
571
649
  />}
572
- {isFilterApplied &&
650
+ {/* {isFilterApplied &&
573
651
  <Button
574
652
  type="button"
575
653
  icon="pi pi-filter-slash"
@@ -579,7 +657,7 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
579
657
  onClick={clearFilter}
580
658
  className="small-button"
581
659
  />
582
- }
660
+ } */}
583
661
 
584
662
  {solidKanbanViewMetaData?.data?.solidView?.layout?.attrs.enableGlobalSearch === true &&
585
663
  // <SolidGlobalSearchElement viewData={solidKanbanViewMetaData} handleApplyCustomFilter={handleApplyCustomFilter} ></SolidGlobalSearchElement>
@@ -588,12 +666,25 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
588
666
  }
589
667
  </div>
590
668
 
669
+ {/* <SolidListViewConfigure
670
+ setShowArchived={setShowArchived}
671
+ showArchived={showArchived}
672
+ viewData={solidKanbanViewMetaData}
673
+ sizeOptions={sizeOptions}
674
+ setSize={setSize}
675
+ size={size}
676
+ viewModes={viewModes}
677
+ params={params}
678
+ actionsAllowed={actionsAllowed}
679
+ selectedRecords={selectedRecords}
680
+ setDialogVisible={setDialogVisible}
681
+ ></SolidListViewConfigure> */}
591
682
  {/* <SolidConfigureLayoutElement></SolidConfigureLayoutElement> */}
592
683
 
593
684
  </div>
594
685
  <style>{`.p-datatable .p-datatable-loading-overlay {background-color: rgba(0, 0, 0, 0.0);}`}</style>
595
686
  {solidKanbanViewMetaData && kanbanViewData &&
596
- <KanbanBoard kanbanViewData={kanbanViewData} solidViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLinPagination={handleSwimLinPagination}></KanbanBoard>
687
+ <KanbanBoard groupedView={groupedView} kanbanViewData={kanbanViewData} solidKanbanViewMetaData={solidKanbanViewMetaData?.data} setKanbanViewData={setKanbanViewData} handleLoadMore={handleLoadMore} onDragEnd={onDragEnd} handleSwimLinPagination={handleSwimLinPagination} setLightboxUrls={setLightboxUrls} setOpenLightbox={setOpenLightbox} ></KanbanBoard>
597
688
  }
598
689
 
599
690
  <Dialog
@@ -610,7 +701,15 @@ export const SolidKanbanView = (params: SolidKanbanViewParams) => {
610
701
  >
611
702
  <p>Are you sure you want to delete the selected records?</p>
612
703
  </Dialog>
613
- </div>
704
+ {openLightbox &&
705
+ <Lightbox
706
+ open={openLightbox}
707
+ plugins={[Counter, Download]}
708
+ close={() => setOpenLightbox(false)}
709
+ slides={lightboxUrls}
710
+ />
711
+ }
712
+ </>
614
713
  );
615
714
  };
616
715
 
@@ -0,0 +1,163 @@
1
+ "use client";
2
+ import SolidBigintKanbanField from "./kanban-fields/SolidBigintKanbanField";
3
+ import SolidBooleanKanbanField from "./kanban-fields/SolidBooleanKanbanField";
4
+ import SolidComputedKanbanField from "./kanban-fields/SolidComputedKanbanField";
5
+ import SolidDateKanbanField from "./kanban-fields/SolidDateKanbanField";
6
+ import SolidDatetimeKanbanField from "./kanban-fields/SolidDatetimeKanbanField";
7
+ import SolidDecimalKanbanField from "./kanban-fields/SolidDecimalKanbanField";
8
+ import SolidExternalIdKanbanField from "./kanban-fields/SolidExternalIdKanbanField";
9
+ import SolidFloatKanbanField from "./kanban-fields/SolidFloatKanbanField";
10
+ import SolidIntKanbanField from "./kanban-fields/SolidIntKanbanField";
11
+ import SolidLongTextKanbanField from "./kanban-fields/SolidLongTextKanbanField";
12
+ import SolidMediaMultipleKanbanField from "./kanban-fields/SolidMediaMultipleKanbanField";
13
+ import SolidMediaSingleKanbanField from "./kanban-fields/SolidMediaSingleKanbanField";
14
+ import SolidRelationKanbanField from "./kanban-fields/SolidRelationKanbanField";
15
+ import SolidRichTextKanbanField from "./kanban-fields/SolidRichTextKanbanField";
16
+ import SolidSelectionDynamicKanbanField from "./kanban-fields/SolidSelectionDynamicKanbanField";
17
+ import SolidSelectionStaticKanbanField from "./kanban-fields/SolidSelectionStaticKanbanField";
18
+ import SolidShortTextKanbanField from "./kanban-fields/SolidShortTextKanbanField";
19
+ import SolidTimeKanbanField from "./kanban-fields/SolidTimeKanbanField";
20
+ import SolidUuidKanbanField from "./kanban-fields/SolidUuidKanbanField";
21
+
22
+ export type SolidKanbanViewFieldsParams = {
23
+ solidKanbanViewMetaData: any;
24
+ fieldMetadata: any,
25
+ fieldLayout: any,
26
+ data: any,
27
+ setLightboxUrls?: any,
28
+ setOpenLightbox?:any
29
+ };
30
+
31
+ export const getNumberOfInputs = (matchMode: any): number | null => {
32
+ if (matchMode.label && matchMode.label === 'Not In') {
33
+ matchMode = 'notIn';
34
+ }
35
+
36
+ switch (matchMode) {
37
+ case 'between':
38
+ return 2;
39
+ case 'in':
40
+ case 'notIn':
41
+ return null;
42
+ case 'startsWith':
43
+ case 'contains':
44
+ case 'notContains':
45
+ case 'endsWith':
46
+ case 'equals':
47
+ case 'notEquals':
48
+ case 'lt':
49
+ case 'lte':
50
+ case 'gt':
51
+ case 'gte':
52
+ return 1;
53
+ default:
54
+ return 1; // Default to single input if no specific match is found
55
+ }
56
+ }
57
+
58
+ // // @ts-ignore
59
+ // const components = require.context('./kanban-fields', false, /Solid.*Column\.tsx$/);
60
+
61
+ // // Define a function to dynamically load components based on type
62
+ // const loadComponentByType = async (type: string) => {
63
+ // try {
64
+ // const componentName = `./kanban-fields/Solid${type.charAt(0).toUpperCase() + type.slice(1)}Column.tsx`;
65
+
66
+ // // Dynamically import the component based on type
67
+ // const componentModule = await import(componentName);
68
+
69
+ // return componentModule.default;
70
+ // } catch (error) {
71
+ // console.error(`Failed to load component for type: ${type}`, error);
72
+ // return null;
73
+ // }
74
+ // };
75
+
76
+ export const SolidKanbanViewFields = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data, setLightboxUrls, setOpenLightbox }: SolidKanbanViewFieldsParams) => {
77
+
78
+ // And finally we can implement additional switching logic based on certain special fields.
79
+ if (fieldMetadata.name === 'id') {
80
+ return SolidIntKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
81
+ }
82
+
83
+ if (fieldMetadata.type === 'int') {
84
+ return SolidIntKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
85
+ }
86
+ if (fieldMetadata.type === 'bigint') {
87
+ return SolidBigintKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
88
+ }
89
+ if (fieldMetadata.type === 'float') {
90
+ return SolidFloatKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
91
+ }
92
+ if (fieldMetadata.type === 'decimal') {
93
+ return SolidDecimalKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
94
+ }
95
+ if (fieldMetadata.type === 'shortText') {
96
+ return SolidShortTextKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data,setLightboxUrls, setOpenLightbox });
97
+ }
98
+ if (fieldMetadata.type === 'longText') {
99
+ return SolidLongTextKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
100
+ }
101
+ if (fieldMetadata.type === 'richText') {
102
+ return SolidRichTextKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
103
+ }
104
+ if (fieldMetadata.type === 'boolean') {
105
+ return SolidBooleanKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
106
+ }
107
+ if (fieldMetadata.type === 'date') {
108
+ return SolidDateKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
109
+ }
110
+ if (fieldMetadata.type === 'datetime') {
111
+ return SolidDatetimeKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
112
+ }
113
+ if (fieldMetadata.type === 'time') {
114
+ return SolidTimeKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
115
+ }
116
+ if (fieldMetadata.type === 'relation') {
117
+ return SolidRelationKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
118
+ }
119
+ if (fieldMetadata.type === 'mediaSingle') {
120
+ return SolidMediaSingleKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data ,setLightboxUrls, setOpenLightbox});
121
+ }
122
+ if (fieldMetadata.type === 'mediaMultiple') {
123
+ return SolidMediaMultipleKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data,setLightboxUrls, setOpenLightbox });
124
+ }
125
+ if (fieldMetadata.type === 'selectionStatic') {
126
+ return SolidSelectionStaticKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
127
+ }
128
+ if (fieldMetadata.type === 'selectionDynamic') {
129
+ return SolidSelectionDynamicKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
130
+ }
131
+ if (fieldMetadata.type === 'computed') {
132
+ return SolidComputedKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
133
+ }
134
+ if (fieldMetadata.type === 'externalId') {
135
+ return SolidExternalIdKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
136
+ }
137
+ if (fieldMetadata.type === 'uuid') {
138
+ return SolidUuidKanbanField({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
139
+ }
140
+ // // Load everything else based on type and dynamically.
141
+ // else {
142
+ // const ComponentFound = await loadComponentByType(fieldMetadata.type);
143
+ // const ComponentNotFound = ({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }: SolidKanbanViewFieldsParams) => (
144
+ // <Column
145
+ // key={fieldMetadata.name}
146
+ // field={fieldMetadata.name}
147
+ // header={fieldMetadata.displayName}
148
+ // className="text-sm"
149
+ // sortable={false}
150
+ // filter={false}
151
+ // showFilterOperator={false}
152
+ // body={() => (<span>Type not supported</span>)}
153
+ // style={{ minWidth: "12rem" }}
154
+ // headerClassName="table-header-fs"
155
+ // ></Column>
156
+ // );
157
+
158
+ // return ComponentFound ? ComponentFound({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data }) : ComponentNotFound({ solidKanbanViewMetaData, fieldMetadata, fieldLayout,data });
159
+ // }
160
+
161
+ // TODO: we can implement additional switching logic based on the widget type being used to render the list view data.
162
+
163
+ };