@solidstarters/solid-core-ui 1.1.17 → 1.1.19

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 (295) hide show
  1. package/dist/components/Svg/FileSvg.d.ts +4 -0
  2. package/dist/components/Svg/FileSvg.d.ts.map +1 -0
  3. package/dist/components/Svg/FileSvg.js +15 -0
  4. package/dist/components/Svg/FileSvg.js.map +1 -0
  5. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  6. package/dist/components/auth/AuthLayout.js +6 -6
  7. package/dist/components/auth/AuthLayout.js.map +1 -1
  8. package/dist/components/auth/SolidForgotPassword.js +1 -1
  9. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  10. package/dist/components/auth/SolidInitialLoginOtp.js +1 -1
  11. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  12. package/dist/components/auth/SolidInitiateRegisterOtp.js +1 -1
  13. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  14. package/dist/components/auth/SolidResetPassword.js +1 -1
  15. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  16. package/dist/components/common/DropzonePlaceholder.d.ts +6 -1
  17. package/dist/components/common/DropzonePlaceholder.d.ts.map +1 -1
  18. package/dist/components/common/DropzonePlaceholder.js +8 -2
  19. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  20. package/dist/components/common/FileReaderExt.d.ts.map +1 -1
  21. package/dist/components/common/FileReaderExt.js +2 -1
  22. package/dist/components/common/FileReaderExt.js.map +1 -1
  23. package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -1
  24. package/dist/components/common/SingleSelectAutoCompleteField.js +3 -1
  25. package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -1
  26. package/dist/components/core/common/SolidConfigureLayoutElement.d.ts.map +1 -1
  27. package/dist/components/core/common/SolidConfigureLayoutElement.js +28 -6
  28. package/dist/components/core/common/SolidConfigureLayoutElement.js.map +1 -1
  29. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  30. package/dist/components/core/common/SolidGlobalSearchElement.js +6 -6
  31. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  32. package/dist/components/core/form/SolidFormView.js +3 -5
  33. package/dist/components/core/form/SolidFormView.js.map +1 -1
  34. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  35. package/dist/components/core/form/fields/SolidBooleanField.js +9 -7
  36. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  37. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  38. package/dist/components/core/form/fields/SolidDateField.js +7 -5
  39. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  40. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  41. package/dist/components/core/form/fields/SolidDateTimeField.js +7 -5
  42. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  43. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  44. package/dist/components/core/form/fields/SolidDecimalField.js +9 -7
  45. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  46. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  47. package/dist/components/core/form/fields/SolidIntegerField.js +9 -7
  48. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  49. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  50. package/dist/components/core/form/fields/SolidJsonField.js +6 -4
  51. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  52. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  53. package/dist/components/core/form/fields/SolidLongTextField.js +8 -6
  54. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  55. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  56. package/dist/components/core/form/fields/SolidMediaMultipleField.js +61 -57
  57. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  58. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  59. package/dist/components/core/form/fields/SolidMediaSingleField.js +74 -91
  60. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  61. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  62. package/dist/components/core/form/fields/SolidRichTextField.js +9 -7
  63. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  64. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  65. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +10 -8
  66. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  67. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  68. package/dist/components/core/form/fields/SolidSelectionStaticField.js +10 -8
  69. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  70. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  71. package/dist/components/core/form/fields/SolidShortTextField.js +8 -6
  72. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  73. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  74. package/dist/components/core/form/fields/SolidTimeField.js +7 -5
  75. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  76. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  77. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +15 -11
  78. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  79. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts +1 -0
  80. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  81. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +66 -7
  82. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  83. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  84. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +12 -10
  85. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  86. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  87. package/dist/components/core/list/SolidListView.js +42 -34
  88. package/dist/components/core/list/SolidListView.js.map +1 -1
  89. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  90. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +9 -2
  91. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  92. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  93. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +10 -3
  94. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  95. package/dist/components/core/model/CreateModel.js +3 -4
  96. package/dist/components/core/model/CreateModel.js.map +1 -1
  97. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  98. package/dist/components/core/model/FieldMetaData.js +54 -1
  99. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  100. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  101. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  102. package/dist/components/core/model/FieldMetaDataForm.js +118 -51
  103. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  104. package/dist/components/core/module/CreateModule.js +5 -5
  105. package/dist/components/core/module/CreateModule.js.map +1 -1
  106. package/dist/components/core/users/CreateUser.js +1 -2
  107. package/dist/components/core/users/CreateUser.js.map +1 -1
  108. package/dist/components/layout/AppConfig.js +1 -1
  109. package/dist/components/layout/navbar-two-menu.js +1 -1
  110. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  111. package/dist/components/layout/user-profile-menu.js +1 -1
  112. package/dist/components/layout/user-profile-menu.js.map +1 -1
  113. package/dist/helpers/downloadMediaFile.d.ts +2 -0
  114. package/dist/helpers/downloadMediaFile.d.ts.map +1 -0
  115. package/dist/helpers/downloadMediaFile.js +66 -0
  116. package/dist/helpers/downloadMediaFile.js.map +1 -0
  117. package/dist/helpers/getAcceptedFileTypes.d.ts +4 -0
  118. package/dist/helpers/getAcceptedFileTypes.d.ts.map +1 -0
  119. package/dist/helpers/getAcceptedFileTypes.js +20 -0
  120. package/dist/helpers/getAcceptedFileTypes.js.map +1 -0
  121. package/dist/index.js +2 -2
  122. package/dist/nextAuth/authProviders.d.ts.map +1 -1
  123. package/dist/nextAuth/authProviders.js +15 -10
  124. package/dist/nextAuth/authProviders.js.map +1 -1
  125. package/dist/redux/api/modelApi.d.ts +2 -1
  126. package/dist/redux/api/modelApi.d.ts.map +1 -1
  127. package/dist/redux/api/modelApi.js +9 -2
  128. package/dist/redux/api/modelApi.js.map +1 -1
  129. package/dist/stylesheets/globals.css +2476 -0
  130. package/dist/stylesheets/styles/SF-Pro-Display-Regular.otf +0 -0
  131. package/dist/stylesheets/styles/layout/_config.scss +54 -0
  132. package/dist/stylesheets/styles/layout/_content.scss +77 -0
  133. package/dist/stylesheets/styles/layout/_footer.scss +8 -0
  134. package/dist/stylesheets/styles/layout/_main.scss +47 -0
  135. package/dist/stylesheets/styles/layout/_menu.scss +185 -0
  136. package/dist/stylesheets/styles/layout/_mixins.scss +13 -0
  137. package/dist/stylesheets/styles/layout/_responsive.scss +99 -0
  138. package/dist/stylesheets/styles/layout/_topbar.scss +149 -0
  139. package/dist/stylesheets/styles/layout/_typography.scss +63 -0
  140. package/dist/stylesheets/styles/layout/_utils.scss +27 -0
  141. package/dist/stylesheets/styles/layout/_variables.scss +3 -0
  142. package/dist/stylesheets/styles/layout/layout.scss +11 -0
  143. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Black.otf +0 -0
  144. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
  145. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
  146. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Light.otf +0 -0
  147. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
  148. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
  149. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
  150. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
  151. package/dist/stylesheets/themes/solid-dark-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
  152. package/dist/stylesheets/themes/solid-dark-purple/theme.css +9051 -0
  153. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Black.otf +0 -0
  154. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Bold.otf +0 -0
  155. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Heavy.otf +0 -0
  156. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Light.otf +0 -0
  157. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Medium.otf +0 -0
  158. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Regular.otf +0 -0
  159. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Semibold.otf +0 -0
  160. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Thin.otf +0 -0
  161. package/dist/stylesheets/themes/solid-light-purple/fonts/SF-Pro-Display-Ultralight.otf +0 -0
  162. package/dist/stylesheets/themes/solid-light-purple/theme.css +9077 -0
  163. package/package.json +1 -1
  164. package/src/components/Svg/FileSvg.tsx +18 -0
  165. package/src/components/auth/AuthLayout.tsx +7 -5
  166. package/src/components/auth/SolidForgotPassword.tsx +1 -1
  167. package/src/components/auth/SolidInitialLoginOtp.tsx +1 -1
  168. package/src/components/auth/SolidInitiateRegisterOtp.tsx +1 -1
  169. package/src/components/auth/SolidResetPassword.tsx +1 -1
  170. package/src/components/common/DropzonePlaceholder.tsx +22 -9
  171. package/src/components/common/FileReaderExt.tsx +5 -3
  172. package/src/components/common/SingleSelectAutoCompleteField.tsx +3 -1
  173. package/src/components/core/common/SolidConfigureLayoutElement.tsx +72 -31
  174. package/src/components/core/common/SolidGlobalSearchElement.tsx +7 -6
  175. package/src/components/core/form/SolidFormView.tsx +4 -4
  176. package/src/components/core/form/fields/SolidBooleanField.tsx +6 -3
  177. package/src/components/core/form/fields/SolidDateField.tsx +6 -3
  178. package/src/components/core/form/fields/SolidDateTimeField.tsx +6 -3
  179. package/src/components/core/form/fields/SolidDecimalField.tsx +6 -3
  180. package/src/components/core/form/fields/SolidIntegerField.tsx +6 -3
  181. package/src/components/core/form/fields/SolidJsonField.tsx +6 -3
  182. package/src/components/core/form/fields/SolidLongTextField.tsx +6 -3
  183. package/src/components/core/form/fields/SolidMediaMultipleField.tsx +122 -98
  184. package/src/components/core/form/fields/SolidMediaSingleField.tsx +115 -126
  185. package/src/components/core/form/fields/SolidRichTextField.tsx +7 -3
  186. package/src/components/core/form/fields/SolidSelectionDynamicField.tsx +6 -3
  187. package/src/components/core/form/fields/SolidSelectionStaticField.tsx +6 -3
  188. package/src/components/core/form/fields/SolidShortTextField.tsx +8 -4
  189. package/src/components/core/form/fields/SolidTimeField.tsx +7 -4
  190. package/src/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +29 -25
  191. package/src/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +92 -2
  192. package/src/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +5 -1
  193. package/src/components/core/list/SolidListView.tsx +12 -3
  194. package/src/components/core/list/columns/SolidMediaMultipleColumn.tsx +18 -0
  195. package/src/components/core/list/columns/SolidMediaSingleColumn.tsx +21 -0
  196. package/src/components/core/model/CreateModel.tsx +4 -4
  197. package/src/components/core/model/FieldMetaData.tsx +25 -1
  198. package/src/components/core/model/FieldMetaDataForm.tsx +108 -18
  199. package/src/components/core/module/CreateModule.tsx +5 -5
  200. package/src/components/core/users/CreateUser.tsx +2 -2
  201. package/src/components/layout/AppConfig.tsx +1 -1
  202. package/src/components/layout/navbar-two-menu.tsx +1 -1
  203. package/src/components/layout/user-profile-menu.tsx +7 -8
  204. package/src/helpers/downloadMediaFile.tsx +19 -0
  205. package/src/helpers/getAcceptedFileTypes.tsx +22 -0
  206. package/src/nextAuth/authProviders.tsx +3 -2
  207. package/src/redux/api/modelApi.ts +9 -2
  208. package/dist/components/common/FilterComponent.d.ts +0 -3
  209. package/dist/components/common/FilterComponent.d.ts.map +0 -1
  210. package/dist/components/common/FilterComponent.js +0 -214
  211. package/dist/components/common/FilterComponent.js.map +0 -1
  212. package/dist/components/core/filter/columns/SolidBigintField.d.ts +0 -4
  213. package/dist/components/core/filter/columns/SolidBigintField.d.ts.map +0 -1
  214. package/dist/components/core/filter/columns/SolidBigintField.js +0 -8
  215. package/dist/components/core/filter/columns/SolidBigintField.js.map +0 -1
  216. package/dist/components/core/filter/columns/SolidBooleanField.d.ts +0 -4
  217. package/dist/components/core/filter/columns/SolidBooleanField.d.ts.map +0 -1
  218. package/dist/components/core/filter/columns/SolidBooleanField.js +0 -27
  219. package/dist/components/core/filter/columns/SolidBooleanField.js.map +0 -1
  220. package/dist/components/core/filter/columns/SolidComputedField.d.ts +0 -4
  221. package/dist/components/core/filter/columns/SolidComputedField.d.ts.map +0 -1
  222. package/dist/components/core/filter/columns/SolidComputedField.js +0 -22
  223. package/dist/components/core/filter/columns/SolidComputedField.js.map +0 -1
  224. package/dist/components/core/filter/columns/SolidDateField.d.ts +0 -9
  225. package/dist/components/core/filter/columns/SolidDateField.d.ts.map +0 -1
  226. package/dist/components/core/filter/columns/SolidDateField.js +0 -35
  227. package/dist/components/core/filter/columns/SolidDateField.js.map +0 -1
  228. package/dist/components/core/filter/columns/SolidDatetimeField.d.ts +0 -4
  229. package/dist/components/core/filter/columns/SolidDatetimeField.d.ts.map +0 -1
  230. package/dist/components/core/filter/columns/SolidDatetimeField.js +0 -24
  231. package/dist/components/core/filter/columns/SolidDatetimeField.js.map +0 -1
  232. package/dist/components/core/filter/columns/SolidDecimalField.d.ts +0 -4
  233. package/dist/components/core/filter/columns/SolidDecimalField.d.ts.map +0 -1
  234. package/dist/components/core/filter/columns/SolidDecimalField.js +0 -8
  235. package/dist/components/core/filter/columns/SolidDecimalField.js.map +0 -1
  236. package/dist/components/core/filter/columns/SolidExternalIdField.d.ts +0 -4
  237. package/dist/components/core/filter/columns/SolidExternalIdField.d.ts.map +0 -1
  238. package/dist/components/core/filter/columns/SolidExternalIdField.js +0 -25
  239. package/dist/components/core/filter/columns/SolidExternalIdField.js.map +0 -1
  240. package/dist/components/core/filter/columns/SolidFloatField.d.ts +0 -4
  241. package/dist/components/core/filter/columns/SolidFloatField.d.ts.map +0 -1
  242. package/dist/components/core/filter/columns/SolidFloatField.js +0 -8
  243. package/dist/components/core/filter/columns/SolidFloatField.js.map +0 -1
  244. package/dist/components/core/filter/columns/SolidIdField.d.ts +0 -4
  245. package/dist/components/core/filter/columns/SolidIdField.d.ts.map +0 -1
  246. package/dist/components/core/filter/columns/SolidIdField.js +0 -25
  247. package/dist/components/core/filter/columns/SolidIdField.js.map +0 -1
  248. package/dist/components/core/filter/columns/SolidIntField.d.ts +0 -4
  249. package/dist/components/core/filter/columns/SolidIntField.d.ts.map +0 -1
  250. package/dist/components/core/filter/columns/SolidIntField.js +0 -34
  251. package/dist/components/core/filter/columns/SolidIntField.js.map +0 -1
  252. package/dist/components/core/filter/columns/SolidLongTextField.d.ts +0 -4
  253. package/dist/components/core/filter/columns/SolidLongTextField.d.ts.map +0 -1
  254. package/dist/components/core/filter/columns/SolidLongTextField.js +0 -8
  255. package/dist/components/core/filter/columns/SolidLongTextField.js.map +0 -1
  256. package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts +0 -4
  257. package/dist/components/core/filter/columns/SolidMediaMultipleField.d.ts.map +0 -1
  258. package/dist/components/core/filter/columns/SolidMediaMultipleField.js +0 -35
  259. package/dist/components/core/filter/columns/SolidMediaMultipleField.js.map +0 -1
  260. package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts +0 -4
  261. package/dist/components/core/filter/columns/SolidMediaSingleField.d.ts.map +0 -1
  262. package/dist/components/core/filter/columns/SolidMediaSingleField.js +0 -35
  263. package/dist/components/core/filter/columns/SolidMediaSingleField.js.map +0 -1
  264. package/dist/components/core/filter/columns/SolidRelationField.d.ts +0 -4
  265. package/dist/components/core/filter/columns/SolidRelationField.d.ts.map +0 -1
  266. package/dist/components/core/filter/columns/SolidRelationField.js +0 -12
  267. package/dist/components/core/filter/columns/SolidRelationField.js.map +0 -1
  268. package/dist/components/core/filter/columns/SolidRichTextField.d.ts +0 -4
  269. package/dist/components/core/filter/columns/SolidRichTextField.d.ts.map +0 -1
  270. package/dist/components/core/filter/columns/SolidRichTextField.js +0 -8
  271. package/dist/components/core/filter/columns/SolidRichTextField.js.map +0 -1
  272. package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts +0 -4
  273. package/dist/components/core/filter/columns/SolidSelectionDynamicField.d.ts.map +0 -1
  274. package/dist/components/core/filter/columns/SolidSelectionDynamicField.js +0 -25
  275. package/dist/components/core/filter/columns/SolidSelectionDynamicField.js.map +0 -1
  276. package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts +0 -4
  277. package/dist/components/core/filter/columns/SolidSelectionStaticField.d.ts.map +0 -1
  278. package/dist/components/core/filter/columns/SolidSelectionStaticField.js +0 -26
  279. package/dist/components/core/filter/columns/SolidSelectionStaticField.js.map +0 -1
  280. package/dist/components/core/filter/columns/SolidShortTextField.d.ts +0 -4
  281. package/dist/components/core/filter/columns/SolidShortTextField.d.ts.map +0 -1
  282. package/dist/components/core/filter/columns/SolidShortTextField.js +0 -33
  283. package/dist/components/core/filter/columns/SolidShortTextField.js.map +0 -1
  284. package/dist/components/core/filter/columns/SolidTimeField.d.ts +0 -4
  285. package/dist/components/core/filter/columns/SolidTimeField.d.ts.map +0 -1
  286. package/dist/components/core/filter/columns/SolidTimeField.js +0 -24
  287. package/dist/components/core/filter/columns/SolidTimeField.js.map +0 -1
  288. package/dist/components/core/filter/columns/SolidUuidField.d.ts +0 -4
  289. package/dist/components/core/filter/columns/SolidUuidField.d.ts.map +0 -1
  290. package/dist/components/core/filter/columns/SolidUuidField.js +0 -25
  291. package/dist/components/core/filter/columns/SolidUuidField.js.map +0 -1
  292. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts +0 -4
  293. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.d.ts.map +0 -1
  294. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js +0 -54
  295. package/dist/components/core/filter/columns/relations/SolidRelationManyToOneField.js.map +0 -1
@@ -11,6 +11,10 @@ import { Schema } from "yup";
11
11
  import { FormikObject, ISolidField, SolidFieldProps } from "./ISolidField";
12
12
  import { FileReaderExt } from "@/components/common/FileReaderExt";
13
13
  import { ProgressBar } from "primereact/progressbar";
14
+ import Link from "next/link";
15
+ import getAcceptedFileTypes from "@/helpers/getAcceptedFileTypes";
16
+ import { downloadMediaFile } from "@/helpers/downloadMediaFile";
17
+
14
18
  export class SolidMediaSingleField implements ISolidField {
15
19
 
16
20
  private fieldContext: SolidFieldProps;
@@ -78,15 +82,15 @@ export class SolidMediaSingleField implements ISolidField {
78
82
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
79
83
  const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
80
84
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
85
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
81
86
 
82
87
  const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);
83
88
  const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();
84
- const [imagesPreview, setImagesPreview] = useState<string | ArrayBuffer | null>(null);
85
- const [uploadProgress, setUploadProgress] = useState<number>(0);
86
89
  const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);
87
- const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);
88
- const [uploadedSize, setUploadedSize] = useState<string>("0 MB");
90
+ const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string } | null>(null);
89
91
  const [totalSize, setTotalSize] = useState<string>("0 KB");
92
+ const [isReplaceImageDialogVisible, setReplaceImageDialogVisible] = useState(false);
93
+ const [newFileToUpload, setNewFileToUpload] = useState<any>(null);
90
94
 
91
95
  const formatFileSize = (size: number) => {
92
96
  return size >= 1024 * 1024
@@ -94,151 +98,121 @@ export class SolidMediaSingleField implements ISolidField {
94
98
  : `${(size / 1024).toFixed(1)} KB`;
95
99
  };
96
100
 
97
- const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
98
- const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
99
-
100
- const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;
101
- const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;
102
-
103
101
  const [
104
102
  deleteMedia,
105
103
  { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },
106
104
  ] = useDeleteMediaMutation();
107
105
 
108
- const handleDelete = () => {
109
- imageToBeDeletedData.e.stopPropagation();
110
- if (imageToBeDeletedData.imagesPreview.id) {
111
- deleteMedia(imageToBeDeletedData.imagesPreview.id);
112
- }
113
- formik.setFieldValue(fieldLayoutInfo.attrs.name, null);
114
- setDeleteImageDialogVisible(false);
115
- };
116
106
  const handleCancelUpload = (e: React.MouseEvent) => {
117
107
  e.stopPropagation();
118
108
  if (imageToBeDeletedData) {
119
109
  deleteMedia(imageToBeDeletedData);
120
110
  }
121
111
  e.stopPropagation();
122
- setUploadProgress(0);
123
112
  setUploadCompleted(false);
124
113
  setFileDetails(null);
125
114
  formik.setFieldValue(fieldLayoutInfo.attrs.name, null);
126
115
  setDeleteImageDialogVisible(false);
127
116
  };
128
117
 
129
- const handleDropImage = (acceptedFiles: File[]) => {
130
- // const file = acceptedFiles[0];
131
- // if (file) {
132
- // formik.setFieldValue(fieldLayoutInfo.attrs.name, file);
133
- // } else {
134
- // console.error("No file was accepted");
135
- // }
118
+ const handleDropImage = (acceptedFiles: any[]) => {
136
119
  const file = acceptedFiles[0];
137
120
  if (!file) return;
121
+ if (fileDetails) {
122
+ // If a file is already uploaded, show the confirmation dialog
123
+ setNewFileToUpload(file);
124
+ setReplaceImageDialogVisible(true);
125
+ } else {
126
+ // If no file is present, proceed with upload
127
+ uploadFile(file);
128
+ }
129
+ };
138
130
 
131
+ const uploadFile = (file: any) => {
139
132
  setUploadCompleted(false);
140
- setUploadProgress(0);
141
133
  setTotalSize(formatFileSize(file.size));
142
- setUploadedSize("0 KB");
143
- setFileDetails({ name: file.name, type: file.type });
134
+ setFileDetails({ name: file.name, type: file.type, fileUrl: file.fileUrl });
144
135
 
145
136
  const reader = new FileReader();
146
-
147
- reader.onloadstart = () => {
148
- setUploadProgress(0);
149
- setUploadedSize("0 KB");
150
- };
151
- reader.onprogress = (event) => {
152
- if (event.loaded && event.total) {
153
- const percent = Math.round((event.loaded / event.total) * 100);
154
- setUploadProgress(percent);
155
- setUploadedSize(formatFileSize(event.loaded));
156
- }
157
- };
158
-
159
137
  reader.onloadend = () => {
160
- setUploadProgress(100);
161
138
  setUploadCompleted(true);
162
- setUploadedSize(totalSize); // Set uploaded size to total size after completion
163
139
  };
164
-
165
140
  reader.readAsDataURL(file);
166
141
  formik.setFieldValue(fieldLayoutInfo.attrs.name, file);
167
142
  };
143
+ const handleReplaceFile = () => {
144
+ // Delete the existing file first
145
+ if (imageToBeDeletedData) {
146
+ deleteMedia(imageToBeDeletedData);
147
+ }
168
148
 
169
- // useEffect(() => {
170
- // const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
149
+ setUploadCompleted(false);
150
+ setFileDetails(null);
151
+ formik.setFieldValue(fieldLayoutInfo.attrs.name, null);
171
152
 
172
- // if (fieldValue instanceof File) {
173
- // setImagesPreview(URL.createObjectURL(fieldValue)); // Generate preview URL for file
174
- // }
175
- // if (typeof fieldValue === 'object') {
176
- // setImagesPreview(fieldValue); // Generate preview URL for file
177
- // }
178
- // if (!fieldValue) {
179
- // setImagesPreview(null);
180
- // }
181
- // }, [formik.values, fieldLayoutInfo.attrs.name]);
153
+ // Proceed with uploading new file
154
+ if (newFileToUpload) {
155
+ uploadFile(newFileToUpload);
156
+ setNewFileToUpload(null);
157
+ }
158
+
159
+ setReplaceImageDialogVisible(false);
160
+ };
182
161
  useEffect(() => {
183
162
  const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];
184
163
 
185
164
  if (fieldValue && typeof fieldValue === "object") {
186
- const fileUrl = fieldValue._full_url;
187
- if (typeof fileUrl === "string" && fileUrl.length > 0) {
188
- const fileName = fileUrl.split("/").pop(); // Extract filename from URL
189
- setFileDetails({ name: fileName || "Unknown File", type: "Uploaded File" });
190
-
191
- // Set upload progress
192
- setUploadProgress(100);
193
- setUploadCompleted(true);
194
- setImageToBeDeletedData(fieldValue.id)
195
- // Ensure Formik has the existing file URL
196
- formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
165
+ let fileUrl = "";
166
+ let fileName = "Unknown File";
167
+
168
+ if (fieldValue instanceof File) {
169
+ // Handle new file upload
170
+ fileUrl = fieldValue.name;
171
+ fileName = fileUrl;
172
+ } else if (fieldValue._full_url) {
173
+ // Handle updated file from backend
174
+ fileUrl = fieldValue._full_url;
175
+ fileName = fieldValue.relativeUri?.split("/").pop() || "Unknown File";
197
176
  }
177
+
178
+ setFileDetails({ name: fileName, type: "Uploaded File", fileUrl });
179
+
180
+ // Set upload progress
181
+ setUploadCompleted(true);
182
+ setImageToBeDeletedData(fieldValue.id);
183
+ formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
198
184
  }
199
185
  }, [formik.values, fieldLayoutInfo.attrs.name]);
200
186
 
201
-
202
187
  const {
203
188
  getRootProps: getRootProps,
204
189
  getInputProps: getInputProps,
205
190
  isDragActive: isDragActive,
206
191
  } = useDropzone({
207
192
  onDrop: handleDropImage,
208
- accept: {
209
- "image/jpeg": [],
210
- "image/png": [],
211
- },
212
- maxSize: 2 * 1024 * 1024, // 2MB
193
+ accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),
194
+ maxSize: fieldMetadata.mediaMaxSizeKb * 1024,
213
195
  });
214
196
 
215
197
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
216
198
 
217
- const imageFormatHandler = (preview: any) => {
218
- if (typeof preview === 'string') {
219
- return preview; // Existing URLs
220
- }
221
- if (preview instanceof File) {
222
- return URL.createObjectURL(preview); // Generate preview URL for File
223
- }
224
- if (typeof preview === 'object') {
225
- return preview._full_url
226
- }
227
- return ""; // Fallback for invalid cases
228
- }
229
-
230
199
  return (
231
200
  <div className={className}>
232
201
  <div className="flex flex-column gap-2 mt-4">
233
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
234
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
235
- </label>
202
+ {showFieldLabel != false &&
203
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
204
+ &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
205
+ </label>
206
+ }
236
207
  <div
237
208
  {...getRootProps()}
238
209
  className="solid-dropzone-wrapper"
239
210
  >
240
211
  <input {...getInputProps()} />
241
- <DropzonePlaceholder />
212
+ <DropzonePlaceholder
213
+ mediaTypes={fieldMetadata.mediaTypes}
214
+ mediaMaxSizeKb={fieldMetadata.mediaMaxSizeKb}
215
+ />
242
216
  </div>
243
217
  {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
244
218
  <Message severity="error" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />
@@ -248,46 +222,47 @@ export class SolidMediaSingleField implements ISolidField {
248
222
  <div className="flex align-items-center gap-2">
249
223
  <FileReaderExt fileDetails={fileDetails} />
250
224
  <div className="w-full flex flex-column gap-1">
251
- <div className="flex align-items-center justify-content-between">
252
- <div className="font-bold">{fileDetails.name}</div>
253
- <div className="cancel-upload-button" onClick={() => setDeleteImageDialogVisible(true)}>
254
- <svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" fill="none">
255
- <path d="M0.6 6L0 5.4L2.4 3L0 0.6L0.6 0L3 2.4L5.4 0L6 0.6L3.6 3L6 5.4L5.4 6L3 3.6L0.6 6Z" fill="#4B4D52" />
256
- </svg>
225
+ <div className="flex align-items-start justify-content-between">
226
+ <Link className="font-bold w-9" href={process.env.NEXT_PUBLIC_BACKEND_API_URL + `/${fileDetails?.fileUrl}`} target="_blank">{fileDetails.name}</Link>
227
+ <div className="flex align-items-center gap-2">
228
+ <div>
229
+ <Button
230
+ text
231
+ icon={"pi pi-download"}
232
+ size="small"
233
+ severity="secondary"
234
+ // className="p-2"
235
+ style={{
236
+ height: 16,
237
+ width: 16
238
+ }}
239
+ onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}
240
+ />
241
+ </div>
242
+ <div>
243
+ <Button
244
+ text
245
+ icon={"pi pi-times"}
246
+ size="small"
247
+ severity="secondary"
248
+ // className="p-2"
249
+ style={{
250
+ height: 16,
251
+ width: 16
252
+ }}
253
+ onClick={() => setDeleteImageDialogVisible(true)}
254
+ />
255
+ </div>
257
256
  </div>
258
257
  </div>
259
258
  {
260
- uploadCompleted ?
261
- <div className="flex align-items-center gap-2 text-sm">
262
- {totalSize} of {totalSize}
263
- <svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
264
- <circle cx="2" cy="2" r="2" fill="#C1C1C1" />
265
- </svg>
266
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
267
- <mask id="mask0_2480_8635" style={{ maskType: 'alpha' }} maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
268
- <rect width="20" height="20" fill="#D9D9D9" />
269
- </mask>
270
- <g mask="url(#mask0_2480_8635)">
271
- <path d="M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 6.295 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z" fill="#722ED1" />
272
- </g>
273
- </svg>
274
- Completed
275
- </div>
276
- :
277
- <div className="flex align-items-center gap-2 text-sm">
278
- {uploadedSize} of {totalSize}
279
- <svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" fill="none">
280
- <circle cx="2" cy="2" r="2" fill="#C1C1C1" />
281
- </svg>
282
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
283
- <path d="M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z" fill="black" />
284
- </svg>
285
- Uploading ${uploadProgress}% Completed
286
- </div>
259
+ uploadCompleted &&
260
+ <div className="flex align-items-center gap-2 text-sm">
261
+ {totalSize}
262
+ </div>
287
263
  }
288
264
  </div>
289
265
  </div>
290
- <ProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className="mt-2" />
291
266
  </div>
292
267
  )}
293
268
  </div>
@@ -303,7 +278,21 @@ export class SolidMediaSingleField implements ISolidField {
303
278
  )}
304
279
  onHide={() => setDeleteImageDialogVisible(false)}
305
280
  >
306
- <p>Are you sure you want to delete image?</p>
281
+ <p>Are you sure you want to delete media?</p>
282
+ </Dialog>
283
+ <Dialog
284
+ visible={isReplaceImageDialogVisible}
285
+ header="Replace Image"
286
+ modal
287
+ footer={() => (
288
+ <div className="flex justify-content-center">
289
+ <Button label="Yes, Replace" icon="pi pi-check" className='small-button' severity="danger" onClick={handleReplaceFile} />
290
+ <Button label="Cancel" icon="pi pi-times" className='small-button' onClick={() => setReplaceImageDialogVisible(false)} />
291
+ </div>
292
+ )}
293
+ onHide={() => setReplaceImageDialogVisible(false)}
294
+ >
295
+ <p>An media is already uploaded. Do you want to delete it and upload a new one?</p>
307
296
  </Dialog>
308
297
  </div>
309
298
  );
@@ -61,6 +61,8 @@ export class SolidRichTextField implements ISolidField {
61
61
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
62
62
  const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
63
63
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
64
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
65
+
64
66
  const [text, setText] = useState();
65
67
 
66
68
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
@@ -74,9 +76,11 @@ export class SolidRichTextField implements ISolidField {
74
76
  return (
75
77
  <div className={className}>
76
78
  <div className="flex flex-column gap-2 mt-4">
77
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
78
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
79
- </label>
79
+ {showFieldLabel != false &&
80
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
81
+ &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
82
+ </label>
83
+ }
80
84
  <Editor
81
85
  readOnly={formReadonly || fieldReadonly}
82
86
  disabled={formDisabled || fieldDisabled}
@@ -55,6 +55,7 @@ export class SolidSelectionDynamicField implements ISolidField {
55
55
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
56
56
  const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
57
57
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
58
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
58
59
 
59
60
  const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
60
61
  const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
@@ -94,9 +95,11 @@ export class SolidSelectionDynamicField implements ISolidField {
94
95
  return (
95
96
  <div className={className}>
96
97
  <div className="flex flex-column gap-2 mt-4">
97
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
98
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
99
- </label>
98
+ {showFieldLabel != false &&
99
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
100
+ &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
101
+ </label>
102
+ }
100
103
  <AutoComplete
101
104
  readOnly={formReadonly || fieldReadonly}
102
105
  disabled={formDisabled || fieldDisabled}
@@ -76,6 +76,7 @@ export class SolidSelectionStaticField implements ISolidField {
76
76
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
77
77
  const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
78
78
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
79
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
79
80
 
80
81
  const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
81
82
  const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
@@ -99,9 +100,11 @@ export class SolidSelectionStaticField implements ISolidField {
99
100
  return (
100
101
  <div className={className}>
101
102
  <div className="flex flex-column gap-2 mt-4">
102
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
103
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
104
- </label>
103
+ {showFieldLabel != false &&
104
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
105
+ &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
106
+ </label>
107
+ }
105
108
  <AutoComplete
106
109
  readOnly={formReadonly || fieldReadonly}
107
110
  disabled={formDisabled || fieldDisabled}
@@ -68,6 +68,8 @@ export class SolidShortTextField implements ISolidField {
68
68
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
69
69
  const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
70
70
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
71
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
72
+
71
73
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
72
74
 
73
75
  const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
@@ -79,11 +81,13 @@ export class SolidShortTextField implements ISolidField {
79
81
  return (
80
82
  <div className={className}>
81
83
  <div className="flex flex-column gap-2 mt-4">
82
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
83
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
84
+ {showFieldLabel != false &&
85
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
86
+ &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
84
87
 
85
- {/* &nbsp; {fieldDescription && <span className="form_field_help_text">`(${fieldDescription})` </span>} */}
86
- </label>
88
+ {/* &nbsp; {fieldDescription && <span className="form_field_help_text">`(${fieldDescription})` </span>} */}
89
+ </label>
90
+ }
87
91
  <InputText
88
92
  readOnly={formReadonly || fieldReadonly}
89
93
  disabled={formDisabled || fieldDisabled}
@@ -51,7 +51,8 @@ export class SolidTimeField implements ISolidField {
51
51
  const calendarRef = useRef<any>(null); // Reference for the Calendar component
52
52
  const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
53
53
  const solidFormViewMetaData = this.fieldContext.solidFormViewMetaData;
54
-
54
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
55
+
55
56
  const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
56
57
 
57
58
  const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
@@ -60,10 +61,12 @@ export class SolidTimeField implements ISolidField {
60
61
  return (
61
62
  <div className={className}>
62
63
  <div className="flex flex-column gap-2 mt-4">
63
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
64
+ {showFieldLabel != false &&
65
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
64
66
 
65
- &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
66
- </label>
67
+ &nbsp; {fieldDescription && <span className="form_field_help">({fieldDescription}) </span>}
68
+ </label>
69
+ }
67
70
  <Calendar
68
71
  disabled={formDisabled || fieldDisabled}
69
72
  ref={calendarRef} // Attach ref to Calendar
@@ -136,6 +136,7 @@ export class SolidRelationManyToManyField implements ISolidField {
136
136
  const fieldLayoutInfo = this.fieldContext.field;
137
137
  const className = fieldLayoutInfo.attrs?.className || 'field col-12';
138
138
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
139
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
139
140
 
140
141
  // auto complete specific code.
141
142
  const entityApi = createSolidEntityApi(fieldMetadata.relationModelSingularName);
@@ -235,9 +236,11 @@ export class SolidRelationManyToManyField implements ISolidField {
235
236
  return (
236
237
  <div className={className}>
237
238
  <div className="flex align-items-center gap-3">
238
- <label className="form-field-label">
239
- {capitalize(fieldLayoutInfo.attrs.name)}
240
- </label>
239
+ {showFieldLabel != false &&
240
+ <label className="form-field-label">
241
+ {capitalize(fieldLayoutInfo.attrs.name)}
242
+ </label>
243
+ }
241
244
  {fieldLayoutInfo.attrs.inlineCreate === "true" &&
242
245
  this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
243
246
  }
@@ -291,6 +294,7 @@ export class SolidRelationManyToManyField implements ISolidField {
291
294
  const fieldLayoutInfo = this.fieldContext.field;
292
295
  const className = fieldLayoutInfo.attrs?.className || 'field col-12';
293
296
  const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;
297
+ const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
294
298
 
295
299
  // auto complete specific code.
296
300
  const entityApi = createSolidEntityApi(fieldMetadata.relationModelSingularName);
@@ -358,29 +362,29 @@ export class SolidRelationManyToManyField implements ISolidField {
358
362
 
359
363
  return (
360
364
  <div className={className}>
361
- <div className="flex flex-column gap-2 mt-4">
362
- <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
363
-
365
+ {showFieldLabel != false &&
366
+ <label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">
367
+ {fieldLabel}
364
368
  </label>
365
- <div className="flex align-items-center gap-3">
366
- <AutoComplete
367
- readOnly={readOnly}
368
- disabled={disabled}
369
- multiple
370
- {...formik.getFieldProps(fieldLayoutInfo.attrs.name)}
371
- id={fieldLayoutInfo.attrs.name}
372
- field="label"
373
- value={formik.values[fieldLayoutInfo.attrs.name] || ''}
374
- dropdown
375
- suggestions={autoCompleteItems}
376
- completeMethod={autoCompleteSearch}
377
- onChange={formik.handleChange}
378
- className="solid-standard-autocomplete w-full"
379
- />
380
- {fieldLayoutInfo.attrs.inlineCreate === "true" &&
381
- this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
382
- }
383
- </div>
369
+ }
370
+ <div className="flex align-items-center gap-3">
371
+ <AutoComplete
372
+ readOnly={readOnly}
373
+ disabled={disabled}
374
+ multiple
375
+ {...formik.getFieldProps(fieldLayoutInfo.attrs.name)}
376
+ id={fieldLayoutInfo.attrs.name}
377
+ field="label"
378
+ value={formik.values[fieldLayoutInfo.attrs.name] || ''}
379
+ dropdown
380
+ suggestions={autoCompleteItems}
381
+ completeMethod={autoCompleteSearch}
382
+ onChange={formik.handleChange}
383
+ className="solid-standard-autocomplete w-full"
384
+ />
385
+ {fieldLayoutInfo.attrs.inlineCreate === "true" &&
386
+ this.renderSolidFormEmbededView(formik, customCreateHandler, visibleCreateRelationEntity, setvisibleCreateRelationEntity)
387
+ }
384
388
  </div>
385
389
  </div>
386
390
  );