@solidstarters/solid-core-ui 1.1.26 → 1.1.28

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 (228) hide show
  1. package/dist/components/auth/SolidChangeForcePassword.js +0 -3
  2. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  3. package/dist/components/common/SolidBreadcrumb.d.ts +6 -1
  4. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
  5. package/dist/components/common/SolidBreadcrumb.js +27 -7
  6. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  7. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  8. package/dist/components/core/common/FilterComponent.js +3 -3
  9. package/dist/components/core/common/FilterComponent.js.map +1 -1
  10. package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
  11. package/dist/components/core/filter/SolidManyToOneFilterElement.d.ts.map +1 -1
  12. package/dist/components/core/filter/SolidManyToOneFilterElement.js +1 -1
  13. package/dist/components/core/filter/SolidManyToOneFilterElement.js.map +1 -1
  14. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.d.ts.map +1 -1
  15. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.js +1 -1
  16. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.js.map +1 -1
  17. package/dist/components/core/filter/SolidSelectionStaticFilterElement.d.ts.map +1 -1
  18. package/dist/components/core/filter/SolidSelectionStaticFilterElement.js +1 -1
  19. package/dist/components/core/filter/SolidSelectionStaticFilterElement.js.map +1 -1
  20. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  21. package/dist/components/core/filter/SolidVarInputsFilterElement.js +7 -7
  22. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  23. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  24. package/dist/components/core/filter/fields/SolidBooleanField.js +5 -5
  25. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  26. package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
  27. package/dist/components/core/filter/fields/SolidDateField.js +5 -5
  28. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  29. package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
  30. package/dist/components/core/filter/fields/SolidDatetimeField.js +5 -5
  31. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  32. package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
  33. package/dist/components/core/filter/fields/SolidExternalIdField.js +5 -5
  34. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  35. package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
  36. package/dist/components/core/filter/fields/SolidIdField.js +5 -5
  37. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  38. package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
  39. package/dist/components/core/filter/fields/SolidIntField.js +6 -6
  40. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  41. package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
  42. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +5 -5
  43. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  44. package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
  45. package/dist/components/core/filter/fields/SolidMediaSingleField.js +5 -5
  46. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  47. package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  48. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +5 -5
  49. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  50. package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
  51. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +5 -5
  52. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  53. package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
  54. package/dist/components/core/filter/fields/SolidShortTextField.js +5 -5
  55. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  56. package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
  57. package/dist/components/core/filter/fields/SolidTimeField.js +5 -5
  58. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  59. package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
  60. package/dist/components/core/filter/fields/SolidUuidField.js +5 -5
  61. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  62. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  63. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +5 -5
  64. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  65. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  66. package/dist/components/core/form/SolidFormView.js +23 -14
  67. package/dist/components/core/form/SolidFormView.js.map +1 -1
  68. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  69. package/dist/components/core/form/fields/SolidBooleanField.js +4 -4
  70. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  71. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  72. package/dist/components/core/form/fields/SolidDateField.js +7 -7
  73. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  74. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  75. package/dist/components/core/form/fields/SolidDateTimeField.js +7 -7
  76. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  77. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  78. package/dist/components/core/form/fields/SolidDecimalField.js +4 -4
  79. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  80. package/dist/components/core/form/fields/SolidEmailField.d.ts +11 -0
  81. package/dist/components/core/form/fields/SolidEmailField.d.ts.map +1 -0
  82. package/dist/components/core/form/fields/SolidEmailField.js +75 -0
  83. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -0
  84. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  85. package/dist/components/core/form/fields/SolidIntegerField.js +4 -4
  86. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  87. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  88. package/dist/components/core/form/fields/SolidJsonField.js +2 -2
  89. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  90. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  91. package/dist/components/core/form/fields/SolidLongTextField.js +2 -2
  92. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  93. package/dist/components/core/form/fields/SolidMediaMultipleField.js +4 -4
  94. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  95. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  96. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  97. package/dist/components/core/form/fields/SolidPasswordField.d.ts +11 -0
  98. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -0
  99. package/dist/components/core/form/fields/SolidPasswordField.js +73 -0
  100. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -0
  101. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  102. package/dist/components/core/form/fields/SolidRichTextField.js +2 -2
  103. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  104. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  105. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +4 -4
  106. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  107. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  108. package/dist/components/core/form/fields/SolidSelectionStaticField.js +5 -5
  109. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  110. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  111. package/dist/components/core/form/fields/SolidShortTextField.js +4 -4
  112. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  113. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  114. package/dist/components/core/form/fields/SolidTimeField.js +7 -7
  115. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  116. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  117. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +3 -3
  118. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  119. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +1 -1
  120. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  121. package/dist/components/core/list/SolidListView.d.ts +2 -0
  122. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  123. package/dist/components/core/list/SolidListView.js +30 -8
  124. package/dist/components/core/list/SolidListView.js.map +1 -1
  125. package/dist/components/core/list/SolidListViewColumn.d.ts +3 -1
  126. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  127. package/dist/components/core/list/SolidListViewColumn.js +3 -3
  128. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  129. package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
  130. package/dist/components/core/list/columns/SolidDateColumn.js +6 -2
  131. package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
  132. package/dist/components/core/list/columns/SolidDatetimeColumn.d.ts.map +1 -1
  133. package/dist/components/core/list/columns/SolidDatetimeColumn.js +6 -2
  134. package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
  135. package/dist/components/core/list/columns/SolidExternalIdColumn.d.ts.map +1 -1
  136. package/dist/components/core/list/columns/SolidExternalIdColumn.js +6 -2
  137. package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidIdColumn.d.ts.map +1 -1
  139. package/dist/components/core/list/columns/SolidIdColumn.js +6 -2
  140. package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
  141. package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
  142. package/dist/components/core/list/columns/SolidIntColumn.js +6 -2
  143. package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
  144. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts +1 -1
  145. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  146. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +17 -4
  147. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  148. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts +1 -1
  149. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  150. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +10 -3
  151. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  152. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.d.ts.map +1 -1
  153. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +6 -2
  154. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
  155. package/dist/components/core/list/columns/SolidSelectionStaticColumn.d.ts.map +1 -1
  156. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +6 -2
  157. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
  158. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  159. package/dist/components/core/list/columns/SolidShortTextColumn.js +6 -2
  160. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  161. package/dist/components/core/list/columns/SolidTimeColumn.d.ts.map +1 -1
  162. package/dist/components/core/list/columns/SolidTimeColumn.js +6 -2
  163. package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
  164. package/dist/components/core/list/columns/SolidUuidColumn.d.ts.map +1 -1
  165. package/dist/components/core/list/columns/SolidUuidColumn.js +6 -2
  166. package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
  167. package/dist/components/core/model/FieldMetaDataForm.js +1 -1
  168. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  169. package/dist/resources/globals.css +16 -2
  170. package/package.json +6 -2
  171. package/publish.js +16 -0
  172. package/src/components/auth/SolidChangeForcePassword.tsx +3 -3
  173. package/src/components/common/SolidBreadcrumb.tsx +36 -7
  174. package/src/components/core/common/FilterComponent.tsx +8 -6
  175. package/src/components/core/common/SolidGlobalSearchElement.tsx +1 -1
  176. package/src/components/core/filter/SolidManyToOneFilterElement.tsx +8 -7
  177. package/src/components/core/filter/SolidSelectionDynamicFilterElement.tsx +4 -3
  178. package/src/components/core/filter/SolidSelectionStaticFilterElement.tsx +4 -3
  179. package/src/components/core/filter/SolidVarInputsFilterElement.tsx +12 -7
  180. package/src/components/core/filter/fields/SolidBooleanField.tsx +16 -12
  181. package/src/components/core/filter/fields/SolidDateField.tsx +17 -13
  182. package/src/components/core/filter/fields/SolidDatetimeField.tsx +20 -15
  183. package/src/components/core/filter/fields/SolidExternalIdField.tsx +17 -13
  184. package/src/components/core/filter/fields/SolidIdField.tsx +25 -21
  185. package/src/components/core/filter/fields/SolidIntField.tsx +27 -23
  186. package/src/components/core/filter/fields/SolidMediaMultipleField.tsx +17 -14
  187. package/src/components/core/filter/fields/SolidMediaSingleField.tsx +17 -14
  188. package/src/components/core/filter/fields/SolidSelectionDynamicField.tsx +17 -13
  189. package/src/components/core/filter/fields/SolidSelectionStaticField.tsx +17 -13
  190. package/src/components/core/filter/fields/SolidShortTextField.tsx +17 -13
  191. package/src/components/core/filter/fields/SolidTimeField.tsx +17 -12
  192. package/src/components/core/filter/fields/SolidUuidField.tsx +17 -13
  193. package/src/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +17 -13
  194. package/src/components/core/form/SolidFormView.tsx +14 -1
  195. package/src/components/core/form/fields/SolidBooleanField.tsx +28 -26
  196. package/src/components/core/form/fields/SolidDateField.tsx +28 -26
  197. package/src/components/core/form/fields/SolidDateTimeField.tsx +29 -27
  198. package/src/components/core/form/fields/SolidDecimalField.tsx +20 -18
  199. package/src/components/core/form/fields/SolidEmailField.tsx +113 -0
  200. package/src/components/core/form/fields/SolidIntegerField.tsx +24 -22
  201. package/src/components/core/form/fields/SolidJsonField.tsx +22 -20
  202. package/src/components/core/form/fields/SolidLongTextField.tsx +24 -22
  203. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +6 -6
  204. package/src/components/core/form/fields/SolidMediaSingleField.tsx +2 -2
  205. package/src/components/core/form/fields/SolidPasswordField.tsx +113 -0
  206. package/src/components/core/form/fields/SolidRichTextField.tsx +24 -21
  207. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +28 -26
  208. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +30 -28
  209. package/src/components/core/form/fields/SolidShortTextField.tsx +25 -23
  210. package/src/components/core/form/fields/SolidTimeField.tsx +29 -27
  211. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +17 -15
  212. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1 -1
  213. package/src/components/core/list/SolidListView.tsx +38 -5
  214. package/src/components/core/list/SolidListViewColumn.tsx +6 -4
  215. package/src/components/core/list/columns/SolidDateColumn.tsx +5 -2
  216. package/src/components/core/list/columns/SolidDatetimeColumn.tsx +5 -2
  217. package/src/components/core/list/columns/SolidExternalIdColumn.tsx +5 -2
  218. package/src/components/core/list/columns/SolidIdColumn.tsx +5 -2
  219. package/src/components/core/list/columns/SolidIntColumn.tsx +5 -2
  220. package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +38 -10
  221. package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +21 -13
  222. package/src/components/core/list/columns/SolidSelectionDynamicColumn.tsx +5 -2
  223. package/src/components/core/list/columns/SolidSelectionStaticColumn.tsx +5 -2
  224. package/src/components/core/list/columns/SolidShortTextColumn.tsx +5 -2
  225. package/src/components/core/list/columns/SolidTimeColumn.tsx +5 -2
  226. package/src/components/core/list/columns/SolidUuidColumn.tsx +5 -2
  227. package/src/components/core/model/FieldMetaDataForm.tsx +1 -1
  228. package/src/resources/globals.css +16 -2
@@ -37,6 +37,11 @@ import CozyImage from '../../../resources/images/layout/images/cozy.png';
37
37
  import ComfortableImage from '../../../resources/images/layout/images/comfortable.png';
38
38
  import ListImage from '../../../resources/images/layout/images/cozy.png';
39
39
  import KanbanImage from '../../../resources/images/layout/images/kanban.png';
40
+ import Lightbox from "yet-another-react-lightbox";
41
+ import Counter from "yet-another-react-lightbox/plugins/counter";
42
+ import Download from "yet-another-react-lightbox/plugins/download";
43
+ import "yet-another-react-lightbox/styles.css";
44
+ import "yet-another-react-lightbox/plugins/counter.css";
40
45
 
41
46
  const getRandomInt = (min: number, max: number) => {
42
47
  return Math.floor(Math.random() * (max - min + 1)) + min;
@@ -163,7 +168,7 @@ export const SolidListView = (params: SolidListViewParams) => {
163
168
  if (fieldMetadata.type === 'relation' && fieldMetadata.relationType === 'many-to-one') {
164
169
  toPopulate.push(fieldMetadata.name);
165
170
  }
166
- if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.relationType === 'mediaMultiple') {
171
+ if (fieldMetadata.type === 'mediaSingle' || fieldMetadata.type === 'mediaMultiple') {
167
172
  toPopulateMedia.push(fieldMetadata.name);
168
173
  }
169
174
  }
@@ -475,6 +480,7 @@ export const SolidListView = (params: SolidListViewParams) => {
475
480
  onClick={(e) =>
476
481
  // @ts-ignore
477
482
  {
483
+ e.stopPropagation();
478
484
  op.current.toggle(e);
479
485
  setSelectedSolidViewData(solidViewData)
480
486
  }
@@ -582,6 +588,9 @@ export const SolidListView = (params: SolidListViewParams) => {
582
588
  setSelectedRecoverRecords([]);
583
589
  }
584
590
 
591
+ const [openLightbox, setOpenLightbox] = useState(false);
592
+ const [lightboxUrls, setLightboxUrls] = useState({});
593
+
585
594
  // Render columns dynamically based on metadata
586
595
  const renderColumnsDynamically = (solidListViewMetaData: any) => {
587
596
  if (!solidListViewMetaData) {
@@ -601,7 +610,7 @@ export const SolidListView = (params: SolidListViewParams) => {
601
610
  return;
602
611
  }
603
612
 
604
- return SolidListViewColumn({ solidListViewMetaData, fieldMetadata, column });
613
+ return SolidListViewColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });
605
614
 
606
615
  });
607
616
  };
@@ -616,7 +625,7 @@ export const SolidListView = (params: SolidListViewParams) => {
616
625
  }
617
626
 
618
627
  const sizeOptions = [
619
- { label: 'Compact', value: 'small', image: CompactImage},
628
+ { label: 'Compact', value: 'small', image: CompactImage },
620
629
  { label: 'Cozy', value: 'normal', image: CozyImage },
621
630
  { label: 'Comfortable', value: 'large', image: ComfortableImage }
622
631
  ]
@@ -646,7 +655,7 @@ export const SolidListView = (params: SolidListViewParams) => {
646
655
  {actionsAllowed.includes(`${createPermission(params.modelName)}`) && solidListViewMetaData?.data?.solidView?.layout?.attrs?.create !== false && params.embeded == true && params.inlineCreate == true &&
647
656
  // < SolidCreateButton url={createButtonUrl} />
648
657
  <Button type="button" icon="pi pi-plus" label="Add" size='small'
649
- onClick={() => params.handlePopUpOpen(true)}
658
+ onClick={() => params.handlePopUpOpen("new")}
650
659
  ></Button>
651
660
  }
652
661
  {showArchived && <Button type="button" icon="pi pi-refresh" label="Recover" size='small' severity="secondary"
@@ -709,6 +718,22 @@ export const SolidListView = (params: SolidListViewParams) => {
709
718
  paginatorClassName="solid-paginator"
710
719
  paginatorTemplate="RowsPerPageDropdown CurrentPageReport PrevPageLink NextPageLink"
711
720
  currentPageReportTemplate="{first} - {last} of {totalRecords}"
721
+ onRowClick={(e) => {
722
+ const rowData = e.data;
723
+ if (
724
+ !(
725
+ actionsAllowed.includes(updatePermission(params.modelName)) &&
726
+ solidListViewMetaData?.data?.solidView?.layout?.attrs?.edit !== false
727
+ )
728
+ ) {
729
+ return;
730
+ }
731
+ if (params.embeded == true) {
732
+ params.handlePopUpOpen(rowData?.id);
733
+ } else {
734
+ router.push(`${editButtonUrl}/${rowData?.id}`);
735
+ }
736
+ }}
712
737
  >
713
738
 
714
739
  <Column selectionMode="multiple" headerStyle={{ width: "3em" }} />
@@ -717,7 +742,7 @@ export const SolidListView = (params: SolidListViewParams) => {
717
742
  {actionsAllowed.includes(`${updatePermission(params.modelName)}`) && solidListViewMetaData?.data?.solidView?.layout?.attrs?.edit !== false &&
718
743
  <Column frozen alignFrozen="right" body={(rowData) => (
719
744
  rowData?.deletedAt ? (
720
- <a onClick={() => recoverById(rowData.id)} className="retrieve-button">
745
+ <a onClick={(event) => { event.stopPropagation(); recoverById(rowData.id) }} className="retrieve-button">
721
746
  <i className="pi pi-refresh" style={{ fontSize: "1rem" }} />
722
747
  </a>
723
748
  ) :
@@ -836,6 +861,14 @@ export const SolidListView = (params: SolidListViewParams) => {
836
861
  </div>
837
862
  </div>
838
863
  </Dialog>
864
+ {openLightbox &&
865
+ <Lightbox
866
+ open={openLightbox}
867
+ plugins={[Counter, Download]}
868
+ close={() => setOpenLightbox(false)}
869
+ slides={lightboxUrls}
870
+ />
871
+ }
839
872
  </div>
840
873
  );
841
874
  };
@@ -22,7 +22,9 @@ import SolidUuidColumn from "./columns/SolidUuidColumn";
22
22
  export type SolidListViewColumnParams = {
23
23
  solidListViewMetaData: any;
24
24
  fieldMetadata: any,
25
- column: any
25
+ column: any,
26
+ setLightboxUrls?: any,
27
+ setOpenLightbox?: any
26
28
  };
27
29
 
28
30
  export const getNumberOfInputs = (matchMode: any): number | null => {
@@ -70,7 +72,7 @@ export const getNumberOfInputs = (matchMode: any): number | null => {
70
72
  // }
71
73
  // };
72
74
 
73
- export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
75
+ export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {
74
76
 
75
77
  // And finally we can implement additional switching logic based on certain special fields.
76
78
  if (fieldMetadata.name === 'id') {
@@ -114,10 +116,10 @@ export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, colu
114
116
  return SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column });
115
117
  }
116
118
  if (fieldMetadata.type === 'mediaSingle') {
117
- return SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column });
119
+ return SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });
118
120
  }
119
121
  if (fieldMetadata.type === 'mediaMultiple') {
120
- return SolidMediaMultipleColumn({ solidListViewMetaData, fieldMetadata, column });
122
+ return SolidMediaMultipleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });
121
123
  }
122
124
  if (fieldMetadata.type === 'selectionStatic') {
123
125
  return SolidSelectionStaticColumn({ solidListViewMetaData, fieldMetadata, column });
@@ -47,7 +47,7 @@ const SolidDateColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
47
47
  <Column
48
48
  key={fieldMetadata.name}
49
49
  field={fieldMetadata.name}
50
- header={header}
50
+ // header={header}
51
51
  // className="text-sm"
52
52
  sortable={column.attrs.sortable}
53
53
  // filter={filterable}
@@ -57,7 +57,10 @@ const SolidDateColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
57
57
  filterElement={filterTemplate}
58
58
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
59
59
  // style={{ minWidth: "12rem" }}
60
- headerClassName="table-header-fs"
60
+ // headerClassName="table-header-fs"
61
+ header={() => {
62
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
63
+ }}
61
64
  body={(rowData) => (
62
65
  <SolidTableRowCell
63
66
  value={rowData[fieldMetadata.name]}
@@ -35,7 +35,7 @@ const SolidDatetimeColumn = ({ solidListViewMetaData, fieldMetadata, column }: S
35
35
  <Column
36
36
  key={fieldMetadata.name}
37
37
  field={fieldMetadata.name}
38
- header={header}
38
+ // header={header}
39
39
  // className="text-sm"
40
40
  sortable={column.attrs.sortable}
41
41
  // filter={filterable}
@@ -45,7 +45,10 @@ const SolidDatetimeColumn = ({ solidListViewMetaData, fieldMetadata, column }: S
45
45
  filterElement={filterTemplate}
46
46
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
47
47
  // style={{ minWidth: "12rem" }}
48
- headerClassName="table-header-fs"
48
+ // headerClassName="table-header-fs"
49
+ header={() => {
50
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
51
+ }}
49
52
  body={(rowData) => (
50
53
  <SolidTableRowCell
51
54
  value={rowData[fieldMetadata.name]}
@@ -37,7 +37,7 @@ const SolidExternalIdColumn = ({ solidListViewMetaData, fieldMetadata, column }:
37
37
  <Column
38
38
  key={fieldMetadata.name}
39
39
  field={fieldMetadata.name}
40
- header={header}
40
+ // header={header}
41
41
  // className="text-sm"
42
42
  sortable={column.attrs.sortable}
43
43
  // filter={filterable}
@@ -47,7 +47,10 @@ const SolidExternalIdColumn = ({ solidListViewMetaData, fieldMetadata, column }:
47
47
  filterElement={filterTemplate}
48
48
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
49
49
  // style={{ minWidth: "12rem" }}
50
- headerClassName="table-header-fs"
50
+ // headerClassName="table-header-fs"
51
+ header={() => {
52
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
53
+ }}
51
54
  body={(rowData) => (
52
55
  <SolidTableRowCell
53
56
  value={rowData[fieldMetadata.name]}
@@ -36,7 +36,7 @@ const SolidIdColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidLi
36
36
  <Column
37
37
  key={fieldMetadata.name}
38
38
  field={fieldMetadata.name}
39
- header={header}
39
+ // header={header}
40
40
  // className="text-sm"
41
41
  sortable={column.sortable}
42
42
  // filter={filterable}
@@ -46,7 +46,10 @@ const SolidIdColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidLi
46
46
  filterElement={filterTemplate}
47
47
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
48
48
  // style={{ minWidth: "12rem" }}
49
- headerClassName="table-header-fs"
49
+ // headerClassName="table-header-fs"
50
+ header={() => {
51
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
52
+ }}
50
53
  body={(rowData) => (
51
54
  <SolidTableRowCell
52
55
  value={rowData[fieldMetadata.name]}
@@ -44,7 +44,7 @@ const SolidIntColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidL
44
44
  <Column
45
45
  key={fieldMetadata.name}
46
46
  field={fieldMetadata.name}
47
- header={header}
47
+ // header={header}
48
48
  // className="text-sm"
49
49
  sortable={column.attrs.sortable}
50
50
  // filter={filterable}
@@ -54,7 +54,10 @@ const SolidIntColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidL
54
54
  filterElement={filterTemplate}
55
55
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
56
56
  // style={{ minWidth: "12rem" }}
57
- headerClassName="table-header-fs"
57
+ // headerClassName="table-header-fs"
58
+ header={() => {
59
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
60
+ }}
58
61
  body={(rowData) => (
59
62
  <SolidTableRowCell
60
63
  value={rowData[fieldMetadata.name]}
@@ -2,37 +2,65 @@
2
2
  import React from 'react';
3
3
  import { Column } from "primereact/column";
4
4
  import { SolidListViewColumnParams } from '../SolidListViewColumn';
5
+ import { Button } from 'primereact/button';
6
+
7
+ const SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {
8
+ console.log("rendered");
5
9
 
6
- const SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
7
10
  // const filterable = column.attrs.filterable;
8
11
  const filterable = false;
9
12
  const showFilterOperator = false;
10
13
  const columnDataType = undefined;
11
14
  const header = column.attrs.label ?? fieldMetadata.displayName;
12
15
  const imageBodyTemplate = (product: any) => {
16
+
13
17
  if (!product?._media?.[fieldMetadata.name]) return null;
14
18
 
15
19
  const imageUrls = product._media[fieldMetadata.name].map((i: any) => i._full_url);
16
20
 
17
21
  return (
18
- <>
19
- {imageUrls.map((url: string, index: number) => (
22
+ imageUrls.length > 0 ?
23
+ <div className='flex gap-2 align-items-end'>
20
24
  <img
21
- key={index}
22
- src={url}
23
- alt={`product-image-${index}`}
24
- className="w-6rem shadow-2 border-round"
25
+ src={imageUrls[0]}
26
+ alt={`product-image-multiple`}
27
+ className="shadow-2 border-round"
28
+ width={40}
29
+ height={40}
30
+ style={{ objectFit: "cover" }}
31
+ onClick={(event) => {
32
+ event.stopPropagation();
33
+ setLightboxUrls(imageUrls.map((img: string) => ({ src: img, downloadUrl: img })));
34
+ setOpenLightbox(true);
35
+ }}
36
+ />
37
+ <Button
38
+ type='button'
39
+ text
40
+ size='small'
41
+ label='View All'
42
+ className='view-media-button'
43
+ onClick={(event) => {
44
+ event.stopPropagation();
45
+ setLightboxUrls(imageUrls.map((img: string) => ({ src: img })));
46
+ setOpenLightbox(true);
47
+ }}
25
48
  />
26
- ))}
27
- </>
49
+ </div>
50
+ :
51
+ <div
52
+ style={{ height: 40, width: 40 }}
53
+ >
54
+ </div>
28
55
  );
29
56
  };
57
+
30
58
  return (
31
59
  <Column
32
60
  key={fieldMetadata.name}
33
61
  field={fieldMetadata.name}
34
- body={imageBodyTemplate}
35
62
  header={header}
63
+ body={imageBodyTemplate}
36
64
  // className="text-sm"
37
65
  sortable={column.attrs.sortable}
38
66
  // filter={filterable}
@@ -5,31 +5,39 @@ import { InputTypes, SolidVarInputsFilterElement } from "../SolidVarInputsFilter
5
5
  import { SolidListViewColumnParams } from '../SolidListViewColumn';
6
6
  import { FormEvent } from "primereact/ts-helpers";
7
7
  import { FilterMatchMode } from 'primereact/api';
8
+ import { Button } from 'primereact/button';
8
9
 
9
- const SolidMediaSingleColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
10
+ const SolidMediaSingleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {
10
11
  // const filterable = column.attrs.filterable;
11
12
 
12
13
  const filterable = false;
13
14
  const showFilterOperator = false;
14
15
  const columnDataType = undefined;
15
16
  const header = column.attrs.label ?? fieldMetadata.displayName;
16
-
17
17
  const imageBodyTemplate = (product: any) => {
18
18
  if (!product?._media?.[fieldMetadata.name]) return null;
19
-
20
19
  const imageUrls = product._media[fieldMetadata.name].map((i: any) => i._full_url);
21
20
 
22
21
  return (
23
- <>
24
- {imageUrls.map((url: string, index: number) => (
25
- <img
26
- key={index}
27
- src={url}
28
- alt={`product-image-${index}`}
29
- className="w-6rem shadow-2 border-round"
30
- />
31
- ))}
32
- </>
22
+ imageUrls.length > 0 ?
23
+ <img
24
+ src={imageUrls[0]}
25
+ alt="product-image-single"
26
+ className="shadow-2 border-round"
27
+ width={40}
28
+ height={40}
29
+ style={{ objectFit: "cover" }}
30
+ onClick={(event) => {
31
+ event.stopPropagation();
32
+ setLightboxUrls([{ src: imageUrls[0], downloadUrl: imageUrls[0] }]);
33
+ setOpenLightbox(true);
34
+ }}
35
+ />
36
+ :
37
+ <div
38
+ style={{ height: 40, width: 40 }}
39
+ >
40
+ </div>
33
41
  );
34
42
  };
35
43
 
@@ -37,7 +37,7 @@ const SolidSelectionDynamicColumn = ({ solidListViewMetaData, fieldMetadata, col
37
37
  <Column
38
38
  key={fieldMetadata.name}
39
39
  field={fieldMetadata.name}
40
- header={header}
40
+ // header={header}
41
41
  // className="text-sm"
42
42
  sortable={column.attrs.sortable}
43
43
  // filter={filterable}
@@ -47,7 +47,10 @@ const SolidSelectionDynamicColumn = ({ solidListViewMetaData, fieldMetadata, col
47
47
  filterElement={filterTemplate}
48
48
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
49
49
  // style={{ minWidth: "12rem" }}
50
- headerClassName="table-header-fs"
50
+ // headerClassName="table-header-fs"
51
+ header={() => {
52
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
53
+ }}
51
54
  body={(rowData) => (
52
55
  <SolidTableRowCell
53
56
  value={rowData[fieldMetadata.name]}
@@ -39,7 +39,7 @@ const SolidSelectionStaticColumn = ({ solidListViewMetaData, fieldMetadata, colu
39
39
  <Column
40
40
  key={fieldMetadata.name}
41
41
  field={fieldMetadata.name}
42
- header={header}
42
+ // header={header}
43
43
  // className="text-sm"
44
44
  sortable={column.attrs.sortable}
45
45
  // filter={filterable}
@@ -49,7 +49,10 @@ const SolidSelectionStaticColumn = ({ solidListViewMetaData, fieldMetadata, colu
49
49
  filterElement={filterTemplate}
50
50
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
51
51
  // style={{ minWidth: "12rem" }}
52
- headerClassName="table-header-fs"
52
+ // headerClassName="table-header-fs"
53
+ header={() => {
54
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
55
+ }}
53
56
  body={(rowData) => (
54
57
  <SolidTableRowCell
55
58
  value={rowData[fieldMetadata.name]}
@@ -44,7 +44,7 @@ const SolidShortTextColumn = ({ solidListViewMetaData, fieldMetadata, column }:
44
44
  <Column
45
45
  key={fieldMetadata.name}
46
46
  field={fieldMetadata.name}
47
- header={header}
47
+ // header={header}
48
48
  // className="text-sm"
49
49
  sortable={column.attrs.sortable}
50
50
  // filter={filterable}
@@ -54,7 +54,10 @@ const SolidShortTextColumn = ({ solidListViewMetaData, fieldMetadata, column }:
54
54
  filterElement={filterTemplate}
55
55
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
56
56
  // style={{ minWidth: "12rem" }}
57
- headerClassName="table-header-fs"
57
+ // headerClassName="table-header-fs"
58
+ header={() => {
59
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
60
+ }}
58
61
  body={(rowData) => (
59
62
  <SolidTableRowCell
60
63
  value={rowData[fieldMetadata.name]}
@@ -35,7 +35,7 @@ const SolidTimeColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
35
35
  <Column
36
36
  key={fieldMetadata.name}
37
37
  field={fieldMetadata.name}
38
- header={header}
38
+ // header={header}
39
39
  // className="text-sm"
40
40
  sortable={column.attrs.sortable}
41
41
  // filter={filterable}
@@ -45,7 +45,10 @@ const SolidTimeColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
45
45
  filterElement={filterTemplate}
46
46
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
47
47
  // style={{ minWidth: "12rem" }}
48
- headerClassName="table-header-fs"
48
+ // headerClassName="table-header-fs"
49
+ header={() => {
50
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
51
+ }}
49
52
  body={(rowData) => (
50
53
  <SolidTableRowCell
51
54
  value={rowData[fieldMetadata.name]}
@@ -36,7 +36,7 @@ const SolidUuidColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
36
36
  <Column
37
37
  key={fieldMetadata.name}
38
38
  field={fieldMetadata.name}
39
- header={header}
39
+ // header={header}
40
40
  // className="text-sm"
41
41
  sortable={column.attrs.sortable}
42
42
  // filter={filterable}
@@ -46,7 +46,10 @@ const SolidUuidColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
46
46
  filterElement={filterTemplate}
47
47
  filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
48
48
  // style={{ minWidth: "12rem" }}
49
- headerClassName="table-header-fs"
49
+ // headerClassName="table-header-fs"
50
+ header={() => {
51
+ return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace:'nowrap', textOverflow:'ellipsis', overflow:'hidden'}}>{header}</div>)
52
+ }}
50
53
  body={(rowData) => (
51
54
  <SolidTableRowCell
52
55
  value={rowData[fieldMetadata.name]}
@@ -1869,7 +1869,7 @@ const FieldMetaDataForm = ({ setIsDirty, modelMetaData, fieldMetaData, setFieldM
1869
1869
  )}
1870
1870
 
1871
1871
  {isUserKeyFields && (
1872
- <div className="field col-6 flex-flex-column gap-2">
1872
+ <div className="field col-6 flex-flex-column gap-2 mt-3">
1873
1873
  <label
1874
1874
  htmlFor="userKey"
1875
1875
  className="form-field-label"
@@ -424,7 +424,7 @@ a {
424
424
  white-space: nowrap;
425
425
  overflow: hidden;
426
426
  text-overflow: ellipsis;
427
- max-width: 15ch;
427
+ /* max-width: 15ch; */
428
428
  }
429
429
 
430
430
  .solid-table-row {
@@ -2363,7 +2363,7 @@ li.header-li-px {
2363
2363
  }
2364
2364
 
2365
2365
  .solid-global-search-filter .p-fieldset .p-fieldset-content {
2366
- padding: 0 1.25rem;
2366
+ padding: 0 0.25rem;
2367
2367
  }
2368
2368
 
2369
2369
  .custom-filter-condition-btn {
@@ -2549,4 +2549,18 @@ li.header-li-px {
2549
2549
  border: 1px solid #d1d5db;
2550
2550
  border-bottom-right-radius: 6px;
2551
2551
  border-bottom-left-radius: 6px;
2552
+ }
2553
+
2554
+ .view-media-button {
2555
+ padding: 0;
2556
+ font-weight: 500;
2557
+ font-size: 1rem;
2558
+ }
2559
+
2560
+ .view-media-button.p-button.p-button-text:not(:disabled):active {
2561
+ background-color: transparent;
2562
+ }
2563
+
2564
+ .view-media-button.p-button.p-button-text:not(:disabled):hover {
2565
+ background-color: transparent;
2552
2566
  }